Dear all,
I have been trying to boot a kernel >= 2.6.33 without any success. After a few days looking at the issue I got some hints on what may be happening.
When the OS boots an idle core, it sends the core an interruption with a memory address pointing to a trampoline code.
Until version 2.6.32, this address was fixed at mem. address 0x6000.
Now it does some kind of memory allocation, and the new address seems to be 0x10000. Requiring a larger jump than before.
I have manually allocated the 0x6000 address for the trampoline and got a 2.6.33 kernel to boot, but with lots of memory corruption warnings.
The main cause of the error lies in src/arch/x86/isa/insts/general_purpose/control_transfer/jump.py
There is a "fault "new GeneralProtection(0)", flags=(CEZF,)" instruction after checking a segment address "andi t0, t2, 0xFC, flags=(EZF,), dataSize=2"
Commenting this fault leads inmediately to another panic "Far jumps to system descriptors aren't implemented".
Has anyone fixed this succesfully?
Thanks a lot for your time.