Commit graph

263 commits

Author SHA1 Message Date
Stefan Lankes
9d843a5e09 reduce obsolete lines and additional output messages 2012-06-10 08:54:08 +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
Stefan Lankes
d21e707024 Merge remote-tracking branch 'origin/master' into x64_new 2012-05-24 12:05:14 +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
fc0c903de3 reduce overhead to determine TSS 2012-05-23 11:19:46 -07:00
Stefan Lankes
50b8068a78 fix bug in inline assembler 2012-05-21 12:16:19 -07:00
Stefan Lankes
b9b962ea73 revise software multitasking
=> remove hardware multitasking
2012-05-21 15:04:05 +02:00
Jacek Galowicz
0984eb593f Commented everything 2012-04-14 09:57:18 +02:00
Jacek Galowicz
43fc6c94e5 Removed DS, ES, FS and GS registers from task switch routines 2012-04-14 09:18:36 +02:00
Jacek Galowicz
f4a7d6bd3a The context is now switched by software.
- Cleanup to be done
- Arch_fork does NOT work in this state
- Multiprocessing support not yet implemented
2012-04-14 00:34:09 +02:00
Jacek Galowicz
49533df72e Made the interrupt entry also safe the registers DS to GS.
This may be removed in the future for speed purposes.
2012-04-11 08:41:58 +02:00
Jacek Galowicz
72016236f1 Fixed two typos. 2012-04-02 14:55:29 +02:00
Jacek Galowicz
4e53aa6f95 Commented the PIT-initialization code to make it easier to understand. 2011-12-15 18:48:06 +01:00
Stefan Lankes
8551a9ea9a use "nicer" function names 2011-10-10 06:23:00 +02:00
Stefan Lankes
8f4349ee51 minor optimizations 2011-10-09 21:03:31 -07:00
Stefan Lankes
8e6b00b42e redesign of the interrupt handling
=> now, the eMAC device uses also LINT0
2011-10-09 13:04:13 -07:00
Stefan Lankes
5fe4f8895b minor optimizations and additional output messages 2011-10-07 16:10:34 +02:00
Marian Ohligs
aecd3b1c8c remove compiler warnings in drivers/char/stdio 2011-09-30 11:59:45 +02:00
Stefan Lankes
0285c6b6b7 remove obsolete debug messages 2011-09-22 21:37:57 +02:00
Stefan Lankes
e9ddfd0db2 dump current value of CR0 2011-09-22 21:36:29 +02:00
Stefan Lankes
50315a1d20 dump every minute the average cpu load 2011-09-22 10:58:03 +02:00
Marian Ohligs
df7d1cab87 - increase legibility (add kb_init & kb_finish) 2011-09-19 00:29:16 +02:00
Marian Ohligs
e572d1c502 Merge branch 'master' into ohligs
Conflicts:
	kernel/init.c
	kernel/tests.c
2011-09-09 21:23:15 +02:00
Stefan Lankes
c6339bfd2d by leaving the interrupt handler, we check if an urgent task is ready
if yes, the kernel switchs to this task
2011-09-06 06:46:52 -07:00
Marian Ohligs
f6e1118cc9 Merge branch 'master' into ohligs 2011-09-01 22:48:25 +02:00
Stefan Lankes
470039bd17 remove wrong code to realize a fast lane for driver tasks 2011-09-01 21:31:44 +02:00
Marian Ohligs
ed5dba2672 Merge branch 'master' into ohligs
Conflicts:
	kernel/tests.c
2011-08-29 14:52:23 +02:00
Stefan Lankes
38d26aecae Merge branch 'master' into demo 2011-08-28 23:59:12 -07:00
Stefan Lankes
81d384b1b0 minor changes in the code style 2011-08-28 08:54:18 -07:00
Stefan Lankes
291aeabb8a Fix huge bug! Idle task could handle its stack pointer wrong!
=> depending on the config file and the started apps, we got different failure
2011-08-28 08:42:39 -07:00
Stefan Lankes
4fe2562839 fine tuning by using the irq fast lane 2011-08-28 01:24:28 -07:00
Stefan Lankes
a748ac7257 Currently, only the SCC uses the fast lane for driver task 2011-08-27 23:18:29 -07:00
Stefan Lankes
c81c83e9ff Merge remote branch 'origin/mailbox_integration' into demo 2011-08-27 08:07:43 -07:00
Stefan Lankes
3abf062ea0 add fast lane for driver task with higher priority 2011-08-27 07:02:45 -07:00
Marian Ohligs
6ee8ee2be5 Merge branch 'master' into ohligs 2011-08-26 21:20:01 +02:00
Stefan Lankes
297421e29d remove compiler warnings 2011-08-26 03:10:40 -07:00
Marian Ohligs
6c126e96f0 - nicer output when typing 2011-08-25 14:05:11 +02:00
Marian Ohligs
378bce0ca1 - bug fix 2011-08-25 13:34:31 +02:00
Marian Ohligs
e9805be005 Merge branch 'master' into ohligs
Conflicts:
	kernel/tasks.c
	kernel/tests.c
2011-08-25 12:15:36 +02:00
Generic account for RWTHAachen Students
0d4ff65bcb fix irq reset 2011-08-24 04:25:10 -07:00
Stefan Lankes
35621d72d1 first try to realize task stealing 2011-08-18 12:16:31 +02:00
Simon Pickartz
142e4892af resolve merge conflicts 2011-08-17 23:32:39 -07: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
Generic account for RWTHAachen Students
7bf0cf184c only check irq status reg if irq_no = 124 2011-08-15 09:56:46 -07:00
Simon Pickartz
6892fa021a testing remote interrupts 2011-08-13 17:14:01 -07:00
Simon Pickartz
67a85668fa testing remote interrupts 2011-08-11 09:02:49 -07:00
Generic account for RWTHAachen Students
6995bb29e3 gic irqs seem to work now 2011-08-10 22:44:16 -07:00
Generic account for RWTHAachen Students
4b03e27a37 testing global interrupt controller 2011-08-10 00:21:21 -07:00
Simon Pickartz
d7175a72a9 testing remote interrupts 2011-08-09 14:54:30 -07:00