9018781eee
replaced old kfree() calls with new signature
2013-11-20 14:11:19 +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
da30b95e9d
minor optimizations and code cleanups
2012-09-10 05:34:18 -07: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
67d2e0e633
remove obsolete and wrong line
...
- do not use reschedule in an interrupt handler!
2012-08-10 20:16:19 +02:00
Stefan Lankes
8a7463883a
disable IOAPIC's timer and add helper function to determine the version of the IOAPIC
2012-08-01 09:51:20 +02:00
Stefan Lankes
b49f2ef08a
determine all six IO base addresses
2012-08-01 09:50:07 +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
bb467767d0
enable the SMP support on systems with a X2APIC
2012-07-22 22:19:50 +02:00
Stefan Lankes
84945aee64
add MSR and X2APIC support
2012-07-22 13:16:17 +02:00
Stefan Lankes
e0a112bc2a
remove obsolete check for APIC support
2012-07-22 13:13:46 +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
ae1216f757
user a read barrier instead of a normal barrier to serialize calls of rdtsc
2012-07-19 08:28:23 +02:00
Stefan Lankes
6462e2b0fd
remove typo
2012-07-19 00:31:08 +02:00
Stefan Lankes
89c792cc03
fix bug in the calculation of esp0
2012-07-19 00:17:31 +02:00
Stefan Lankes
09ec6dcc3a
some code cleanups
...
=> simplify the handling of FPU exceptions
2012-07-18 20:56:23 +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
47fae3de67
some code cleanups
2012-07-17 14:06:48 -07: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
6013c2ec4d
add memory barriers to seralize load and store operations
...
=> required to clone a task
2012-07-16 23:05:46 +02:00
Stefan Lankes
4ebfbdf63d
Merge branch 'master' into tickless
2012-07-14 13:28:08 -07:00
Stefan Lankes
1c4c51ae50
port esp0-patch to x86_64
2012-07-14 12:15:01 +02:00
Stefan Lankes
3c1b270160
fix bug in the calculation of esp0
2012-07-14 11:16:29 +02:00
Stefan Lankes
6259892c00
initialize the kernel stack only for the boot task
2012-07-14 11:15:18 +02:00
Stefan Lankes
764134bd18
remove bug by searching lapci on a 64bit system
2012-07-10 22:43:02 +02:00
Stefan Lankes
32aee76655
remove obsolete symbols in a single environment
2012-07-10 21:48:23 +02: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
d9f311877c
Merge branch 'x64_new'
2012-06-13 11:24:10 +02:00
Stefan Lankes
be3eed681e
use the correct data type for the CR4 register
2012-06-13 11:23:05 +02:00
Stefan Lankes
ab27285843
disable obsolete 64bit code
2012-06-13 11:22:38 +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
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
e230fdcf15
usage of 64bit TSS descriptors and some code cleanups
2012-06-11 16:16:35 +02:00
Stefan Lankes
4fb03cde20
fix bug in the initialization of the stack pointer
2012-06-11 16:15:26 +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