Commit graph

78 commits

Author SHA1 Message Date
Stefan Lankes
24914fcb4f add prototype of a tickless kernel
only by entering the kernel, the tick counter will be updated
=> by using this feature, MetalSVM supports only LwIP's raw interface,
   because we have no guarantee that the tcpip thread will get computation time
=> no NETCONN & BSD socket support
=> no load balancing support
2012-07-03 16:46:54 +02:00
Stefan Lankes
227cc19890 add alpha version of x64 support
New features:
- support of kernel tasks in 64bit mode
- support of LwIP in 64bit mode

Missing features in 64bit mode
- user-level support
- APIC support => SMP support

To create a 64bit version of the MetalSVM kernel, the compiler flags “-m64 -mno-red-zone” and the assembler flags “-felf64” has to be used. Please use qemu-system-x86_64 as test platform.

Notice, metalsvm.elf is a 32bit ELF file. However, it contains (beside the startup code) only 64bit code. This is required because GRUB doesn’t boot 64bit ELF kernels. Therefore, for disassembling via objdump the flag  “-M x86-64” has to be used.
2012-06-10 08:05:24 +02:00
Stefan Lankes
ed2186ee03 add init code, which jumps to 64bit mode and and calls main 2012-05-29 20:47:45 +02:00
Stefan Lankes
42602df6b0 insert init code for the mmnif device 2011-10-04 10:26:55 +02:00
Stefan Lankes
27e652f81d if a task exists with a higher priority, we start a rescheduling in check_workqueues. 2011-09-02 13:57:11 -07:00
Stefan Lankes
c81c83e9ff Merge remote branch 'origin/mailbox_integration' into demo 2011-08-27 08:07:43 -07:00
Generic account for RWTHAachen Students
17b104d11c Merge commit '499f43bfaf0bd7ca9387091712c0b60273bfa5d2' into mailbox_integration
Conflicts:
	arch/x86/scc/icc.c
	kernel/tests.c
2011-08-24 23:47:56 -07:00
Stefan Lankes
9631d861c3 Merge branch 'libsocket' 2011-08-24 09:39:17 +02:00
Simon Pickartz
47deea941a remove debug printfs 2011-08-21 11:38:09 -07:00
Simon Pickartz
c0f9747c67 kernel task mail_ping no STDCALL any more 2011-08-18 01:29:55 -07:00
Simon Pickartz
142e4892af resolve merge conflicts 2011-08-17 23:32:39 -07:00
Stefan Lankes
4c9855c83a redesign of the scheduler, defining of a runqueue per core
=> Currently, we work stealing isn't supported
2011-08-17 13:51:19 +02:00
Stefan Lankes
a0bae35a88 add untested prototype of an SVM system 2011-08-16 03:29:54 -07:00
Stefan Lankes
e4a170938e create a special init task (initd), which spawns all other tasks 2011-08-06 15:52:47 +02:00
Stefan Lankes
452aa3b1d1 cosmetic changes and add some scheduling statistics 2011-08-03 19:37:05 +02:00
Simon Pickartz
f344f65769 mailbox-system thread-safe now 2011-07-23 12:27:08 -07:00
Stefan Lankes
e595fae384 add SMP support
- this is experimental version
- by setting MAX_CORES to 1, you are to disable the SMP support
2011-07-18 09:14:28 +02:00
Stefan Lankes
30aaa5fda3 review of Benedikt's virtual IP device 2011-07-04 13:02:19 -07:00
Stefan Lankes
227031a41c Merge branch 'master' into network 2011-07-04 11:41:21 -07:00
Stefan Lankes
de216756d1 move mailbox example to tests.c 2011-06-29 12:29:04 -07:00
Carl-Benedikt Krüger
551834b320 ... 2011-06-27 12:44:06 +02:00
root
7724b70d55 upgrade to newest metalsvm 2011-06-27 11:39:01 +02:00
root
0b9ee12d2d ... 2011-06-21 13:14:59 +02:00
root
1f7fba81dc ... 2011-06-20 19:04:43 +02:00
root
ab32443f5b ... 2011-06-20 18:56:55 +02:00
root
7725e374a9 ... 2011-06-20 18:25:47 +02:00
Simon Pickartz
f6fed124b6 use interrupts+anylength_call now 2011-06-09 04:23:17 -07:00
Generic account for RWTHAachen Students
fbd30d8f5a testing mail_check 2011-06-08 09:23:05 -07:00
Simon Pickartz
7045bc208b merge 2011-06-08 05:00:52 -07:00
Simon Pickartz
f1aa9fa24c little mail test 2011-06-08 04:59:23 -07:00
Generic account for RWTHAachen Students
bba87c8e27 bug fix in mail_ping 2011-06-07 05:53:16 -07:00
Simon Pickartz
11e61b6816 add printfs 2011-05-31 05:47:16 -07:00
Simon Pickartz
4a1930fb9f bug fix 2011-05-31 04:29:20 -07:00
Simon Pickartz
3cf792d250 add mailbox test 2011-05-31 02:55:40 -07:00
Jacek Galowicz
394befa3a8 Color management for procedures using vga_putchar
As seen in some BSD operating systems, you can now push and pop foreground and background colors onto a stack to change the colors you see on the screen whenever kprintf/kputchar is used.

This could become useful if one wants to see kernel space kprintfs in other colors than user space printfs or error messages in red and other debugging purposes.

Beware: This is just a small and dirty hack which protects the colorstack with locks and so on. But on task switching the color will not be switched. That makes different colors for different colors persistent for all the time difficult/impossible. But I considered adding colors to the task structures a bit overdone for a small debugging-help.

[Sorry for those commit-and-pull-back-mails. Forgot that I had this stuff on the master branch while pushing my own branch onto the server.]
2011-05-25 09:26:00 +02:00
Stefan Lankes
08f5153257 add the support of inter core interrupts 2011-05-17 08:13:20 -07:00
Stefan Lankes
29ab43f289 First steps to realize Inter-Core-Communication via RCCE 2011-04-23 00:13:12 -07:00
Stefan Lankes
ba1388c13d Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into rcce 2011-04-08 07:26:55 -07:00
Stefan Lankes
d3ad7e1c66 move the call of scc_init to main function 2011-04-08 07:24:47 -07:00
Stefan Lankes
4d14ec6aa7 use HALT instead of NOP8 2011-04-08 16:02:24 +02:00
Stefan Lankes
5d94954d3a move koutput_init to the function lowlevel_init 2011-03-25 07:46:23 +01:00
Stefan Lankes
80377e4ff3 redesign of the IO interface
=> do not create an additional task to dump kernel messages
2011-03-07 20:02:24 +01:00
Stefan Lankes
1b85d32945 boot process dumps the initrd 2011-02-16 15:22:48 +01:00
Stefan Lankes
6bb932acf9 remove SVN specific commands 2011-02-16 14:20:16 +01:00
stefan
9d2b73c6cb - add a workaround to use paging and the apic at the same time
(we don't use __attribute__((optimize(0))))


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@366 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-05 20:12:07 +00:00
stefan
8646b56a63 - minor changes to support APIC
(currently, we got page fault by entering apic_calibration)
- first steps to realize a loader



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@365 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-05 10:16:53 +00:00
stefan
ab442041c1 - remove bug in the network driver
=> now, we use correct irq number


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@334 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-13 21:58:46 +00:00
stefan
45219bce2e - huge commit
- enable the paging support
- redesign of the APIC code

TODO:
- Currently, we are not able to start user-level applications.
- The RTL8139 driver does not longer work. Perhaps, a bug in the output function.
- The APIC codes doesn't work on all systems. Therefore, the code is currently disabled.



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@326 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-10 06:16:58 +00:00
stefan
c3c7468208 - some code cleanup
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@301 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-30 19:47:46 +00:00
stefan
12bfcd2f87 - add lwIP-based echo and ping servers
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@297 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-30 06:06:28 +00:00