Commit graph

26 commits

Author SHA1 Message Date
0e6f7b1e32 added more exception names 2014-01-30 14:38:08 +01:00
494ee1299a unified and extended pagefault exception handler
some cleanup
2014-01-09 13:32:00 +01:00
Stefan Lankes
09ec6dcc3a some code cleanups
=> simplify the handling of FPU exceptions
2012-07-18 20:56:23 +02:00
Stefan Lankes
f83f29abb7 add automatic detection of fence instructions 2012-07-17 22:33:29 +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
5fe4f8895b minor optimizations and additional output messages 2011-10-07 16:10:34 +02:00
Stefan Lankes
81d384b1b0 minor changes in the code style 2011-08-28 08:54:18 -07:00
Stefan Lankes
d5bfc4f28c avoid races on SMP systems
=> signalizes with a new flag, that a task switch is finished
2011-08-01 22:01:39 +02:00
Stefan Lankes
5290cd0002 using of the correct data types
=> avoids some conflicts on other architectures
2011-07-30 22:46:08 +02:00
Stefan Lankes
ab37b024b0 simply the scheduler => move code from entry.asm to timer.c 2011-07-21 09:59:29 +02:00
Stefan Lankes
e57a447fda minor changes in using the per_core macro, add additional output messages by an exception & cosmetic changes 2011-07-20 09:47:46 +02:00
Stefan Lankes
d05ffcacac we use the same handler for exceptions and interrupts => interrupts has to push a virtual error code on the stack 2011-07-19 09:10:12 +02:00
Stefan Lankes
ff1bc7c470 remove typo 2011-07-11 23:42:25 -07:00
root
7724b70d55 upgrade to newest metalsvm 2011-06-27 11:39:01 +02:00
Stefan Lankes
cdd16a2b9f add the SSE support
=> context switch stores also the SSE registers
2011-05-28 23:35:46 +02:00
Stefan Lankes
0c411fd702 add basic support of sbrk and fix bug in saving of the fpu context 2011-04-21 07:32:20 +02:00
Stefan Lankes
7cb05d8f4a first version to support the FPU
- seems to work
- currently, we didn't support SIMD instructions
2011-04-21 07:32:10 +02:00
Jacek Galowicz
dfe2c817de Continued the small documentation journey.
Edited Doxyfile - will show static functions and vars now, because some
of them were interesting for documentation.
2011-04-04 11:27:49 +02: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
f28fd84c68 - redesign of the apic code
- add ioapic support
- currently, all irq will forwarded to the boot processor



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@293 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-29 02:39:10 +00:00
stefan
bc67c946af - add APIC support for the SCC
- seems to work, only the APIC timer doesn't work!


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@273 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 05:33:02 +00:00
stefan
08cbc0a257 - add the first steps to support the (local and IO) APIC
- remove some typos in the comments


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@196 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-25 16:58:31 +00:00
stefan
6e0bbaf55e - increase the readability by using macros instead of some hard-coded numbers
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@123 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-24 05:43:39 +00:00
stefan
71188c92f9 - complete restart of the project
- support of TSS-based task switching
- add a mailbox template
- suport of user level task
- support of system calls


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@47 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-09 11:47:51 +00:00
stefan
9160888a8d - cosmetic changes
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@46 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-05 13:50:03 +00:00
stefan
9778b7b790 - first steps to realize a SVM subsystem in a VM
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@2 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-07-31 15:53:30 +00:00