a755ac5d5e
implemented Performance Monitoring Counters and added a simple test benchmark
2014-01-30 14:36:22 +01:00
a3d621142a
added paging and memory related CPUID feature flags
2014-01-28 11:09:00 +01:00
f0f3a6d4f6
added seperate x86 UART routines for HW debugging (115200 baud, 8N1)
2014-01-28 11:07:09 +01:00
5a20e0953f
we do not need syncronization for virt_to_phys (atomic memory access)
2014-01-09 16:55:05 +01:00
d5f60ef542
fixed two smaller bugs and some compiler warnings
2014-01-09 16:12:13 +01:00
a00177ec09
adapted c runtime and syscalls to x86-64 ABI calling convention
2014-01-09 14:04:02 +01:00
d7644300a8
code cleanup of task creation and some additions to the previous commit
2014-01-09 13:59:01 +01:00
88a2e573c6
replaced old 32bit only page_copy by new generic one
2014-01-09 13:33:21 +01:00
494ee1299a
unified and extended pagefault exception handler
...
some cleanup
2014-01-09 13:32:00 +01:00
d5ac6e6092
added macros for x86 control registers & some MSRs
2014-01-09 13:13:59 +01:00
066e29fde9
added NX bit support
...
renamed some CPP macros
2014-01-09 12:49:04 +01:00
c21ea42058
added page_dump() and page_stats() for testing and demonstration of page_iterate()
2013-12-03 16:40:14 +01:00
8fe165c162
added page_iterate(): a recursive page tree walker
2013-12-03 16:34:34 +01:00
443ffdf012
replaced PAGE_ALIGN macro by PAGE_CEIL, PAGE_FLOOR pair
2013-12-03 15:29:05 +01:00
2923b1a7ed
cleanup of macros and comments, idention etc...
2013-12-03 15:26:21 +01:00
af5fa15d8d
fixed possible wrap-around in tlb_flush functions
2013-11-20 12:04:55 +01:00
421e7ec66e
added missing multiboot #defines
2013-11-20 11:20:52 +01:00
fca96e9851
unified paging preprocessor #defines and naming scheme
2013-10-24 12:36:05 +02:00
Steffen Vogel
9b47b3ef45
refactored paging code to be more universial and suitable for 64bit paging
2013-10-16 17:50:37 +02:00
f361783f4b
Merge branch 'cleanup' into vogel
2013-10-16 17:34:18 +02:00
dac9b20c18
some comments cleaned up
2013-10-16 13:42:58 +02:00
5424397b47
debug kernel messages over virtual uart port in qemu
...
use 'telnet localhost 12346' to listen
2013-10-10 11:39:41 +02:00
Stefan Lankes
4131221b9a
By entering/leaving the kernel, DS and ES registers will be saved/restored.
2012-08-24 20:21:21 +02:00
Stefan Lankes
3e01fbad68
add a more flexible interface to determine PCI information
...
=> now, we determine also the size of the IO address space
2012-07-26 09:07:20 +02:00
Stefan Lankes
7f7dd4585f
add the support of ELF64
2012-07-22 20:12:24 +02:00
Stefan Lankes
84945aee64
add MSR and X2APIC support
2012-07-22 13:16:17 +02:00
Stefan Lankes
4775e5e11e
use static stacks only for the idle tasks
...
=> all other stacks will be created on demand
2012-07-19 22:07:59 +02: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
c32a30726a
some code cleanups
2012-07-17 12:44:18 -07:00
Stefan Lankes
9d422ed700
define the function shmalloc to allocate a shared page
...
caution, the function returns the physical address
2012-07-15 05:57:39 -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
Jacek Galowicz
ecb3fb5af2
Reverted the removal of configure_idt_entry()
...
Commit 227cc19890
"add alpha version of x64 support"
removed configure_idt_entry(), but this is used within the
lguest branch.
2012-06-13 09:57:01 +02:00
Jacek Galowicz
49eb099b80
Reverted the removal of configure_gdt_entry()
...
Commit 227cc19890
"add alpha version of x64 support"
removed configure_gdt_entry(), but this is used within the
lguest branch.
2012-06-13 09:36:28 +02:00
Stefan Lankes
e230fdcf15
usage of 64bit TSS descriptors and some code cleanups
2012-06-11 16:16:35 +02:00
Stefan Lankes
1e275732c5
simplify the APIC and GDT code
2012-06-10 23:40:22 +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
b9b962ea73
revise software multitasking
...
=> remove hardware multitasking
2012-05-21 15:04:05 +02:00
Stefan Lankes
dceb8485d9
increasing the support of affinity-on-first-touch
2011-12-14 01:39:12 -08:00
Stefan Lankes
7ed258a1fb
remove buf in the calucaltion of the MPB address
...
+ increasing the readabilty
+ add additional performance counters for the page allocation
2011-11-21 13:39:01 -08:00
Stefan Lankes
cf76781baa
first steps to support affinity on the touch
2011-11-16 03:12:09 -08:00
Pablo Reble
1636501973
- fix merge conflicts
2011-11-10 01:09:31 -08:00
Pablo Reble
a114e3997d
Merge branch 'svm', remote branch 'origin/svm' into svm
...
Conflicts:
arch/x86/mm/svm.c
2011-11-09 07:56:54 -08:00
Pablo Reble
7b6a2424e0
- implemented first draft of L2 flush
2011-11-08 09:22:49 -08:00
Stefan Lankes
d24958f8b1
Merge branch 'svm' of git.lfbs.rwth-aachen.de:metalsvm into svm
2011-11-08 01:12:13 -08:00
Stefan Lankes
198c1dcebd
merge Simon's current version of our mailbox system
2011-11-07 13:01:57 -08:00
Stefan Lankes
9dbde43197
rename svmmalloc to svm_malloc, rename svmfree to svm_free, add the function svm_barrier
2011-11-07 12:19:57 -08:00
Stefan Lankes
a5503ad23a
add function icc_wait, which waits for a specific mail tag
2011-11-07 11:25:54 -08:00