Startup IPI does not launch the AP code to the right address
Posted: Tue Mar 10, 2020 7:48 pm
Hey there!
I am taking back my old kernel because I need it for some class work.
The issue I have is the following:
On QEMU and VirtualBox everything is ok, but on a real hardware platform, when sending the startup IPI to a core, this core triple faults and the computer restarts.
The code I have at the reset address : 0x8000 is a simple :
So, it looks like the init IPI and startup IPI work great as the AP starts.
However, when debugging on QEMU I can see that the AP core actually starts fetching at 0x0.
The value I write for the SIPI in the LAPIC register is 0x0000_4608.
I checked the memory content at 0x8000 (mapped 1:1) and it is the correct code.
If you have any idea of what is going on let me know!
Thanks in advance!
I am taking back my old kernel because I need it for some class work.
The issue I have is the following:
On QEMU and VirtualBox everything is ok, but on a real hardware platform, when sending the startup IPI to a core, this core triple faults and the computer restarts.
The code I have at the reset address : 0x8000 is a simple :
Code: Select all
ap_start_:
hlt
jmp ap_start
However, when debugging on QEMU I can see that the AP core actually starts fetching at 0x0.
The value I write for the SIPI in the LAPIC register is 0x0000_4608.
I checked the memory content at 0x8000 (mapped 1:1) and it is the correct code.
If you have any idea of what is going on let me know!
Thanks in advance!