From OSDev Wiki
Jump to: navigation, search

The original quick conversion was a bit of a mess. This is my 1st whack at cleaning it up a bit. I think it looks much better now. ;) I can't find JHawthorn's instructions on how to fix the Forum links in the See Also section -- sorry. Bewing 01:56, 19 March 2007 (CDT)

FYI: Post:83433 ;) - Combuster 04:52, 19 March 2007 (CDT)

Thanks for that link -- OK, I fixed those See Also links. Bewing 21:49, 5 April 2007 (CDT)

APIC in uniprocessor x86 machines...

The article seems to focus on APIC being multiprocessor machines, but in fact many older AMD/Intel machines have an option in BIOS that allows PIC/APIC selection. - Brynet-Inc (Please sign your posts)

The idea is, you can simply forget about the APIC when dealing with uniprocessor machines, even though some of its features are very useful to the developer. Most of the useful contents is completely independent of a multiprocessor machine anyway. - Combuster 15:32, 8 July 2007 (CDT)

Sanity APIC Timer Check

So, I attempted to condense Brendan's timer using CPU speed detection code in English. Could anyone check it over for mistakes?

  • Init the PIT at 4hz and setup the APIC timer.
  • Wait for the PIT to start.
  • Set the APIC timer count to 0xFFFFFFFF, and start.
  • Wait for next PIT IRQ.
  • Stop the APIC and PIT timers.
  • ((0xFFFFFFFF - APIC's current count) * 32) / frequency / divider = New APIC count

--Alboin 18:18, 9 June 2008 (CDT)

Well, as far as mistakes goes ... you can't possibly mean 4hz. 400Hz? 4KHz?
Bewing 15:42, 11 June 2008 (CDT)

(The code I'm referring to is on the main APIC in the links section.) According to Brendan's comment: ";Configure the RTC or PIT timer for an IRQ every 250 mS (4 Hz)"--Alboin 15:53, 11 June 2008 (CDT)
However, "You might also want to play with how long the duration of the fixed time value is - 250 mS is relatively long considering the speed of even the slowest CPU's bus." -- Would changing that affect the rest of the process? (eg. the 32, or the 128/4)--Alboin 15:55, 11 June 2008 (CDT)
-- Well, I don't know what Brendan was thinking ... but the absolute lowest possible PIT frequency is 18.2Hz. You can't get to 4. So I'd suggest using a different number. Bewing 22:59, 12 June 2008 (CDT)
The only real remark I have is that Bus frequency = APIC frequency != CPU frequency. Other than that, it's a good impression. - Combuster 16:15, 11 June 2008 (CDT)

By the by, where do you think a short bit on determining the bus frequency should go? I'm not feeling love with it in here...(Cat:x86?)--Alboin 16:47, 12 June 2008 (CDT)

Detecting CPU Speed, maybe? - Combuster 12:16, 19 June 2008 (UTC)
Personal tools