Stefan Lankes
84945aee64
add MSR and X2APIC support
2012-07-22 13:16:17 +02:00
Stefan Lankes
f83f29abb7
add automatic detection of fence instructions
2012-07-17 22:33:29 +02:00
Stefan Lankes
c32a30726a
some code cleanups
2012-07-17 12:44:18 -07:00
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
654e91b0a2
add LAPIC support of the 64bit kernel
2012-06-10 21:38:01 +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
45313d47f2
add build environment for 64bit code
...
=> environment build 64bit kernel, but the kernel is not tested!
=> work in progess
2012-05-24 10:49:45 +02:00
Stefan Lankes
c42642aadc
remove typo
2011-09-22 21:36:05 +02:00
Stefan Lankes
e6fb99beb4
add inline assembler functions to determine the MSB and LSB
2011-09-01 13:31:41 -07:00
Stefan Lankes
721bf94599
add missing "cc" in the clobber list
2011-08-26 08:38:30 +02:00
Stefan Lankes
9631d861c3
Merge branch 'libsocket'
2011-08-24 09:39:17 +02:00
Stefan Lankes
9c15383d2c
add first running version of our svm system
2011-08-19 00:11:36 -07:00
Stefan Lankes
0ba7e146ab
fix bug: use AT&T instead of Intel style
2011-08-18 12:15:05 +02: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
452aa3b1d1
cosmetic changes and add some scheduling statistics
2011-08-03 19:37:05 +02:00
Stefan Lankes
d203a070f4
add IPI support to flush the TLB on the other cores
2011-07-19 07:16:49 +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
29ab43f289
First steps to realize Inter-Core-Communication via RCCE
2011-04-23 00:13:12 -07:00
Stefan Lankes
68564c3238
Merge branch 'tests'
...
Conflicts:
include/metalsvm/spinlock.h
include/metalsvm/spinlock_types.h
kernel/tasks.c
2011-04-18 15:36:22 +02:00
Stefan Lankes
47f37e3b00
use memory barriers instead of read memory barriers to determine the current TSC
...
=> more accurate caclculation of the timer frequency
+ minor cosmetic changes
2011-04-18 15:07:45 +02:00
Stefan Lankes
02cf1d87f2
resolve some merge conflicts
2011-04-14 08:58:07 +02:00
Stefan Lankes
b5908af744
Merge branch 'master' of git.lfbs.rwth-aachen.de:metalsvm into doxygen
...
Conflicts:
.gitignore
arch/x86/include/asm/apic.h
arch/x86/include/asm/page.h
arch/x86/include/asm/processor.h
arch/x86/kernel/idt.c
2011-04-14 08:40:52 +02:00
Stefan Lankes
eeb49cdb90
add the SCC support of a initial ramdisk
2011-04-13 11:03:34 -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
030243f200
introduce the hlt instruction
2011-04-08 16:01:44 +02:00
Stefan Lankes
683f8cca1e
add macro to simplify the using of th hlt instruction
2011-04-06 05:38:44 -07:00
Stefan Lankes
f0e4a2b833
add the support of the memory type MPBT
...
=> seesection "10.1.2 Internal Cache Changes" of SCC External Architecture Specification (R1.1)
2011-04-05 23:43:44 -07:00
Stefan Lankes
9918db81ec
fix bugs in initialization of RCCE
...
at first, we have to enable paging and to disable caching for the configuration registers
2011-04-05 01:55:02 -07:00
Jacek Galowicz
f411498368
Commented another bunch of header files.
2011-04-04 18:12:08 +02:00
Stefan Lankes
f9ec7ccadc
redesign of the SCC's init routines
2011-03-25 20:28:43 +01:00
Stefan Lankes
c738a64d57
integration of RCCE in MetalSVM (untested version)
...
Attention: currently, MetalSVM didn't support the floating point unit
=> no using of RCCE_wtime
=> no using of the data type RCCE_double
=> RCCE_init expect an integer value as frequency in MHZ
2011-03-24 11:21:38 +01: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
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
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
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
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
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
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
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
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
2a6664f01a
- first steps to intialize the a Rock Creek system
...
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@59 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-10 15:20:27 +00:00
stefan
7294c47c98
- add code to detect pci interfaces
...
- code restructuring
- remove some typos in debug messages
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@42 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-05 11:53:02 +00:00
stefan
9825532c82
- remove obsolete files
...
- the function join_kernel_task delivers the return value of the task, which is watinting for
-spinlocks supports irq save functions
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@21 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-03 10:20:32 +00:00
stefan
0aea73bdc7
- add a simple memory mangement unit
...
- use a bitmask to mark used pages (see lecture notes "BS")
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@7 315a16e6-25f9-4109-90ae-ca3045a26c18
2010-08-02 07:43:56 +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