Commit graph

33 commits

Author SHA1 Message Date
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
494ee1299a unified and extended pagefault exception handler
some cleanup
2014-01-09 13:32:00 +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
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
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
cf76781baa first steps to support affinity on the touch 2011-11-16 03:12:09 -08:00
Pablo Reble
7b6a2424e0 - implemented first draft of L2 flush 2011-11-08 09:22:49 -08:00
Stefan Lankes
0a0452b7a1 prepare SVM subsystem to support also other consitency modells 2011-08-23 07:40:20 -07:00
Stefan Lankes
6e55a3a874 add some debug messages and remove obsolete macros 2011-08-16 16:08:04 -07:00
Stefan Lankes
c1cb54ae90 cosmetic changes 2011-08-15 06:36:38 -07: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
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
Jacek Galowicz
6a9ca105f1 recently forgot to document page flags. This commit catches up. 2011-04-03 18:58:01 +02:00
Jacek Galowicz
1581d3e075 Added a doxyfile and documented arch/x86/include/asm/page.h 2011-04-01 20:13:26 +02:00
Stefan Lankes
6f092641ba remove memory leak and redesign of the internal memory accounting 2011-03-04 22:44:53 +01:00
Stefan Lankes
56ee331596 add nested spinlocks
- required to avoid deadlocks
2011-03-04 11:38:40 +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
187df97227 delete wrong comment 2011-02-24 19:08:51 +01:00
Stefan Lankes
e157f93104 create also for kernel tasks a new PGD 2011-02-24 18:44:11 +01:00
Stefan Lankes
54d636d25c after process termination, the PGD and its PGTs will be freed 2011-02-24 18:32:58 +01:00
Stefan Lankes
6f23361bf5 include only required headers 2011-02-24 10:19:34 +01:00
Stefan Lankes
16efb49204 remove obsolete function arguments 2011-02-24 10:15:58 +01:00
Stefan Lankes
b4884cde2d add a function to change the pape permissions 2011-02-24 09:36:05 +01:00
Stefan Lankes
c355adb300 create a new pgd for each process 2011-02-18 21:20:15 +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