Commit graph

28 commits

Author SHA1 Message Date
Carl-Benedikt Krüger
4d5150558a merge && test for master 2011-08-02 12:24:05 +02:00
root
7724b70d55 upgrade to newest metalsvm 2011-06-27 11:39:01 +02:00
Stefan Lankes
ea4a7477c5 set CR0's MP flag to monitor the coprocessor 2011-04-21 19:46:55 +02:00
Stefan Lankes
a563c756ee fix bug in the setup of the caching strategy 2011-04-21 09:33:49 -07: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
Stefan Lankes
624afd187c by entering a system call, we need also to push the segment descriptor on the stack 2011-04-18 15:05:27 +02:00
Stefan Lankes
0fbf2df5ac use inline assembler to load the IDT 2011-04-08 10:45:26 -07:00
Stefan Lankes
fb215aca47 redesign of the SCC bootloader and rename kernel file to metalsvm.elf 2011-03-31 12:50:42 -07:00
Stefan Lankes
5ce3ed9338 First steps to support the system calls "fork" and "wait"
- Currently, the system call "fork" doesn't work and has a memory leak
- However, it is a good starting point for further developments.
2011-03-02 13:49:36 +01:00
Stefan Lankes
cf078ec359 add a function to read the instruction pointer 2011-03-02 06:28:50 +01:00
Stefan Lankes
156bf8fa1b specify that our assembler code don't need an executable stack 2011-02-16 21:19:44 +01: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
0dd542dc47 - code cleanup
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@289 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 18:14:13 +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
c8c3035a4d - complete redesign of the APIC code
- MetalSVM detects the APIC and initializes the APIC timer
- If an a APIC is available, the PIC timer will be disabled
- SMP is currently not supported



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@233 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-04 20:15:39 +00:00
stefan
e527a3ccb6 - switched to an ELF kernel
- simplified the linker script


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@199 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-25 17:10:16 +00:00
stefan
d66ac69333 - use "add esp,4" to remove the last element on the stack
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@186 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-20 15:39:36 +00:00
stefan
b0e600da99 - prepare MetalSVM for multicore environments
- create the variable current_task on each core


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@159 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-12 14:45:03 +00:00
stefan
81df510743 - add comments
- use readable macros instead of constants
- use the same error number like newlib


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@156 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-10 22:18:55 +00:00
stefan
2819d27885 - specify output architecture
- rename entry section


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@144 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-07 21:07:27 +00:00
stefan
a6a9617775 - add the libc "newlib" and their support into MetalSVM
- programs could be load as module by the bootloader Grub



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@95 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-17 09:59:29 +00:00
stefan
ce3c5e3d57 - remove obsolete assembler code
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@62 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-10 20:20:32 +00:00
stefan
a3c5f8f5b8 - minor optimizations
- we push only the required registers



git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@53 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-09 17:49:18 +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
a9043ebf72 - create GDTs for user applications (ring 3)
- rename section osstart to multiboot


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@43 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-05 12:41:38 +00:00
stefan
e184955a2b - add Multiboot support (http://www.gnu.org/software/grub/manual/multiboot/)
- Multiboot is needed to initialize our memory management


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@14 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-02 12:32:58 +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