Commit graph

37 commits

Author SHA1 Message Date
ff130c4538 moved VMA initialization of APIC and MultiProcessing related stuff to apic.c 2014-05-14 18:01:58 +02:00
8287ab79d3 fixed SMP with new paging code 2014-05-14 15:17:34 +02:00
ab35409aac the LAPIC page should be marked as not executable 2014-04-15 16:57:03 +02:00
00127d06cf some cleanup 2014-04-15 16:28:02 +02:00
6bd2f64687 set PG_GLOBAL flag on pagetables
this leads to global self-mapped page tables
and therefore reduces to effect of TLB shootdowns.
2014-04-15 16:27:16 +02:00
273137f2e7 fixed sys_fork and sys_execve for new paging code 2014-02-18 13:12:19 +01:00
61ec065da1 some smaller codestyle improvements 2014-02-18 13:03:52 +01:00
39bb5e8d56 fixed mapping for APIC and IOAPIC 2014-02-18 11:06:13 +01:00
d51237f3f2 fixed missing page map: Multiboot mmap_* fields are not required to be on the same page as the Multiboot info structure itself 2014-02-07 10:56:04 +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
269bffc208 unified comment fontcase 2014-01-09 13:41:22 +01:00
4514080014 enable global pages for the kernelspace 2013-12-03 15:54:58 +01:00
fff2708c5a move page map setup to arch_paging_init() 2013-12-03 15:52:16 +01:00
9441d21d89 more cleanup of old 32bit code relicts, typos and indention 2013-11-14 12:22:52 +01:00
90d884ec8d changed naming of 64bit boot paging tables according to 32bit boot tables
calculate required boot page tables as a function of KERNEL_SPACE
2013-10-25 12:02:04 +02:00
fca96e9851 unified paging preprocessor #defines and naming scheme 2013-10-24 12:36:05 +02:00
d59676dbf5 more work to make our assembly initialization more beautiful 2013-10-17 21:35:13 +02:00
3e73d6384e fixed regression 2013-10-17 13:09:20 +02:00
3be25b99d2 reorganized 64bit paging initialization 2013-10-17 11:36:02 +02:00
403c529e8b fixed copy&paste bug and moved cpu initialization in cpu_init() 2013-10-16 17:50:37 +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
1fc3e40c4e fixed some typos, added comments and some code cleanup 2013-10-10 11:09:36 +02:00
Stefan Lankes
c0a96953b4 only if CONFIG_VGA is defined, VGA will be mapped into the kernel space 2012-07-22 10:56:03 +02:00
Stefan Lankes
cbd5b5be83 disable the cache for VGA 2012-07-22 10:46:07 +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
89c792cc03 fix bug in the calculation of esp0 2012-07-19 00:17:31 +02:00
Stefan Lankes
dadc4ce7ed set task switched flag to support applications, which require FPU support 2012-07-18 20:54:04 +02:00
Stefan Lankes
1c4c51ae50 port esp0-patch to x86_64 2012-07-14 12:15:01 +02:00
Stefan Lankes
32aee76655 remove obsolete symbols in a single environment 2012-07-10 21:48:23 +02:00
Stefan Lankes
e06d910514 enable SMP support for 64bit systems 2012-06-12 23:42:02 +02:00
Stefan Lankes
a1f07c8027 map also mp_config into the address space 2012-06-12 09:20:54 +02:00
Stefan Lankes
08bcc19626 enable full (64bit) APIC support
- no SMP support
2012-06-11 21:49:17 +02:00
Stefan Lankes
4fb03cde20 fix bug in the initialization of the stack pointer 2012-06-11 16:15:26 +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
ed2186ee03 add init code, which jumps to 64bit mode and and calls main 2012-05-29 20:47:45 +02:00