Commit graph

574 commits

Author SHA1 Message Date
stefan
9a9df5ed2e - merge current eduOS branch to MetalSVM
=> add the support of "real" user-space applications, which could be loaded via initrd


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@394 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-02-08 18:37:56 +00:00
stefan
2bfc5a49dc - move 32bit elf header to arch/x86
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@376 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-19 07:04:50 +00:00
stefan
810b13f37e - use the function lapic_read instead of direct memory access to the apic entries
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@370 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-07 05:37:42 +00:00
stefan
15487b4817 - remove wrong multiplicator
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@369 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-07 05:34:48 +00:00
stefan
b921da960a - use the record scc_info to determine the cpu frequency
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@368 315a16e6-25f9-4109-90ae-ca3045a26c18
2011-01-06 10:49:04 +00: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
7ff346df44 - remove typo
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@344 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-15 13:39:37 +00:00
stefan
2127c42070 - remove typo
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@340 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-12-15 12:08:37 +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
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
3e1c151b5f - remove an awful bug in the calculation of the io address
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@292 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-29 02:36:40 +00:00
stefan
645ce10ed4 - cleanup pci code
- add function to determine the iobase address and the irq number of a specific device


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@291 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-27 17:28:32 +00:00
stefan
7871ef692a - add workaround to run the apic code correctly on qemu 12.5
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@290 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 18:15:09 +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
aec80ba9e4 - remove typo
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@274 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-26 05:38:01 +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
0419142d83 - add an inline C function for the assembler operation CL1FLUSHMB
- works only on the SCC


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@269 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-24 22:00:03 +00:00
stefan
6346f54594 - redesign of the function cpuid to avoid unintentional overriding of registers
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@268 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-24 19:05:04 +00:00
stefan
3ed27e697d - add some comments
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@236 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:51:19 +00:00
stefan
02ffdc2796 - add special memcpy functions for the RockCreek processor (aka SCC)
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@235 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:14:51 +00:00
stefan
b78b2349eb - add some error checks
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@234 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-11-05 06:07:39 +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
3570166889 - add missing file apic.h
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@208 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-27 10:18:46 +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
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
01ff479e11 - remove some typos in the comments
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@195 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-10-25 16:56:27 +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
c4ed163f9d - cosmetic changes
- use inline functions instead of macros


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@158 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-11 11:29:30 +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
b058e19f47 - remove typo
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@153 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-08 12:16:39 +00:00
stefan
0f72be1a9e - simplifies the array intialization
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@152 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-08 12:11:11 +00:00
stefan
ef1abb5612 - simplify the array intialization
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@151 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-08 12:07:42 +00:00
stefan
806ad22a8a - remove bug
- the function timer_set_frequency ignored its parameter


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@150 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-08 08:36:02 +00:00
stefan
af556712bd - remove endless loop
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@146 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-08 07:08:21 +00:00
stefan
bb075ea130 - add macros for cache flushing and memory barriers
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@145 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-09-07 21:10:59 +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
3c0a4afd43 - remove some obsolete debug messages
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@126 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-24 19:10:12 +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
7398111913 - add the definition "__KERNEL__" to avoid redifinition of ssize_t and off_t
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@120 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-22 10:08:38 +00:00
stefan
da2b895d68 - redesign of the initial ram disk
- now, we could map file in subdirectories


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@119 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-22 09:56:02 +00:00
stefan
5cfbfb5a32 - add a simple virtual filesystem and as simple initial ramdisk
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@102 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-17 21:20:03 +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
9813625ad7 - remove typo
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@92 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-15 14:39:05 +00:00
stefan
73aef1b9a2 - define ssize_t in printf.c
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@88 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-13 09:29:56 +00:00
stefan
440c9a31f7 - nicer output messages
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@74 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-11 14:16:11 +00:00
stefan
61907132a8 - rename some functions
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@69 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-11 13:12:55 +00:00
stefan
0b681a49c0 - add missing file
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@68 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-11 10:46:23 +00:00
stefan
03a093329f - add an optimzed version of strcpy and strncpy
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@67 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-11 10:33:25 +00:00