|
From: Daniel R. <cos...@gm...> - 2006-05-03 17:00:41
|
> Description M/U # LAPIC ID Ver Red > > AMD Sempron 2800+ M 1 000f0d00 2 03 17 > AMD Athlon 2200+ U 1 1 11 17 > AMD dual-core Opteron 165 M 2 000f0d00 0 11 17 > Intel Celeron M 1 000f0000 0 11 0f > Intel P4 M 1 000f12a0 1 20 17 Hi Stephen, thanks for having taken the time for a test-run ! It's good to see that the new local apic reactivation code doesn't only work on my computer but also on you uniprocessor Athlon. From the results it also looks as if the I/O APIC was much more common on modern computers than I've expected. The only thing that causes me some headach is the version number returned by your Sempron 2800+, which should actually be something in between 0x10 and 0x20 for an internal APIC. The two other values (ID and Red) seem to be perfectly sensible though.. Luckily the machine's BIOS however does support the multiprocessor table and will thus report if there's an I/O APIC. For uniprocessor systems that don't provide any multiprocessor tables we could fall back to a probing mechanism. I would propose that we simply try to read-out the I/O APIC's version number to make some sanity checks on it. If the number is between 0x10 and 0x20 we assume that it really is an I/O APIC, otherwise we'll have to retreat to the ISA PIC. It guess it should be unlikely enough that the bus-noise returned if there's no I/O APIC happens to be a valid version number ? Description M/U # ID Ver Red AMD Athlon 2600+ M 1 2 11 17 Intel Pentium 3 700 U 1 f ff ff Intel P4 2800 M 1 2 20 17 regards, cosmo86 |