Page 1 of 1
start up AP in i5
Posted: Thu Sep 25, 2014 7:33 pm
by watermirror
Hi,
i have write a function to start up AP in i7 4770. but when i use the same function to run in i5 processor, the AP can not start up. I can assure there is no error in local apic esr, and the ap's entry address is correct.
is there any better way to detect the error?
Re: start up AP in i5
Posted: Thu Sep 25, 2014 8:10 pm
by Brendan
Hi,
watermirror wrote:i have write a function to start up AP in i7 4770. but when i use the same function to run in i5 processor, the AP can not start up. I can assure there is no error in local apic esr, and the ap's entry address is correct.
is there any better way to detect the error?
There is no other way to detect the error (if the error is detectable at all).
It is easy to make mistakes though, like forgetting that you have to write zero to the ESR before reading it, or getting the AP startup sequence wrong in a way that causes "works by accident on some hardware".
Cheers,
Brendan
Re: start up AP in i5
Posted: Thu Sep 25, 2014 11:46 pm
by xenos
Unfortunately I don't have access to Combuster's crystal ball, but my tarot says there's something wrong with your AP startup sequences. What does your startup function look like - LAPIC ID detection, IPI sequence, timeouts, AP trampoline code? What exactly happens when you run it on i5? Also my experience has shown that AMD SimNow! is quite useful for testing AP startup code as it fails even on small mistakes, which Bochs and QEMU seem to ignore (at least my code had such a mistake in it which made only SimNow! fail).