Another AMD issue with APIC timer / TSC?
Posted: Thu May 05, 2011 12:20 am
I also have another issue, which is related to why I couldn't get more than 3 cores on my 4 core AMD Athlon to run. This issue seems to be related to hlt disabling APIC timer and/or TSC.
In order to get my OS to boot with 4 cores, I needed to change the null-loop like this:
If I remove the busy-loop on core 3, RDOS will hang early in the boot-process. When invoking the crash-debugger, it can be seen that core 0 has two threads ready to run, but they never become scheduled, probably because the timer never expires.
Anybody have an idea about this?
In order to get my OS to boot with 4 cores, I needed to change the null-loop like this:
Code: Select all
null_loop_start:
GetApicId ; gets the APIC ID into edx
cmp edx,3
stopl:
jz stopl ; if it is core 3, do a busy loop
null_loop:
hlt ; for other cores, do a hlt to save power
jmp null_loop
Anybody have an idea about this?