* Re: [PATCH] APIC physical broadcast for i82489DX [not found] <200410071609.i97G9reQ003072@hera.kernel.org> @ 2004-10-07 18:32 ` William Lee Irwin III 2004-10-07 22:12 ` Maciej W. Rozycki 0 siblings, 1 reply; 4+ messages in thread From: William Lee Irwin III @ 2004-10-07 18:32 UTC (permalink / raw) To: Linux Kernel Mailing List; +Cc: macro On Thu, Oct 07, 2004 at 03:24:23PM +0000, Linux Kernel Mailing List wrote: > ChangeSet 1.2133, 2004/10/07 08:24:23-07:00, macro@linux-mips.org > [PATCH] APIC physical broadcast for i82489DX > The physical broadcast ID is determined incorrectly for the i82489DX, > which uses 8-bit physical addressing (32-bit logical). > apic.c | 2 +- > 1 files changed, 1 insertion(+), 1 deletion(-) > diff -Nru a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c > --- a/arch/i386/kernel/apic.c 2004-10-07 09:10:03 -07:00 > +++ b/arch/i386/kernel/apic.c 2004-10-07 09:10:03 -07:00 > @@ -91,7 +91,7 @@ > unsigned int lvr, version; > lvr = apic_read(APIC_LVR); > version = GET_APIC_VERSION(lvr); > - if (version >= 0x14) > + if (!APIC_INTEGRATED(version) || version >= 0x14) > return 0xff; > else > return 0xf; This is the same as version <= 0xf || version >= 0x14; I'm rather suspicious, as the docs have long since been purged, making this hopeless for anyone without archives (or a good memory) dating back to that time to check. All that's really needed is citing the version that comes out of the version register and checking other APIC implementations to verify they don't have versions tripping this check, the latter of which is feasible for those relying on still-extant documentation. Better yet would be dredging up the docs... So, what is the range of the version numbers reported by i82489DX's? -- wli ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] APIC physical broadcast for i82489DX 2004-10-07 18:32 ` [PATCH] APIC physical broadcast for i82489DX William Lee Irwin III @ 2004-10-07 22:12 ` Maciej W. Rozycki 2004-10-07 22:45 ` William Lee Irwin III 0 siblings, 1 reply; 4+ messages in thread From: Maciej W. Rozycki @ 2004-10-07 22:12 UTC (permalink / raw) To: William Lee Irwin III; +Cc: Linux Kernel Mailing List On Thu, 7 Oct 2004, William Lee Irwin III wrote: > > @@ -91,7 +91,7 @@ > > unsigned int lvr, version; > > lvr = apic_read(APIC_LVR); > > version = GET_APIC_VERSION(lvr); > > - if (version >= 0x14) > > + if (!APIC_INTEGRATED(version) || version >= 0x14) > > return 0xff; > > else > > return 0xf; > > This is the same as version <= 0xf || version >= 0x14; I'm rather I suppose defining a macro called something like APIC_XAPIC(x) to (x >= 0x14) might actually have some sense, although unlike with the i82489DX, there is no promise for this to be always true. > suspicious, as the docs have long since been purged, making this AFAIK i82489DX documents were never available online and I suppose they might have never existed in a PDF form. You could have ordered hardcopies in mid 90's. > hopeless for anyone without archives (or a good memory) dating back to > that time to check. All that's really needed is citing the version that > comes out of the version register and checking other APIC > implementations to verify they don't have versions tripping this check, The APIC_INTEGRATED() macro reflects the range reserved for the i82489DX. Both "Multiprocessor Specification" and "IA-32 Intel Architecture Software Developer's Manual, Vol.3" which are available online specify it clearly and explicitly. AFAIK, there is no integrated APIC implementation that would violate it (unlike with I/O APICs), so what's the problem? If a buggy chip appears, we can revisit this assumption. > the latter of which is feasible for those relying on still-extant > documentation. Better yet would be dredging up the docs... So, what is > the range of the version numbers reported by i82489DX's? The i82489DX datasheet documents 0x01 for the chip and the implementations I've encountered so far agree. Maciej ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] APIC physical broadcast for i82489DX 2004-10-07 22:12 ` Maciej W. Rozycki @ 2004-10-07 22:45 ` William Lee Irwin III 0 siblings, 0 replies; 4+ messages in thread From: William Lee Irwin III @ 2004-10-07 22:45 UTC (permalink / raw) To: Maciej W. Rozycki; +Cc: Linux Kernel Mailing List On Thu, 7 Oct 2004, William Lee Irwin III wrote: >> This is the same as version <= 0xf || version >= 0x14; I'm rather On Thu, Oct 07, 2004 at 11:12:55PM +0100, Maciej W. Rozycki wrote: > I suppose defining a macro called something like APIC_XAPIC(x) to (x >= > 0x14) might actually have some sense, although unlike with the i82489DX, > there is no promise for this to be always true. There is a presumption there that higher APIC revisions will be backward-compatible and will have comparable version numbers, yes. On Thu, 7 Oct 2004, William Lee Irwin III wrote: >> suspicious, as the docs have long since been purged, making this On Thu, Oct 07, 2004 at 11:12:55PM +0100, Maciej W. Rozycki wrote: > AFAIK i82489DX documents were never available online and I suppose they > might have never existed in a PDF form. You could have ordered hardcopies > in mid 90's. Which probably either predated or coincided with my earliest use of computers. On Thu, 7 Oct 2004, William Lee Irwin III wrote: >> hopeless for anyone without archives (or a good memory) dating back to >> that time to check. All that's really needed is citing the version that >> comes out of the version register and checking other APIC >> implementations to verify they don't have versions tripping this check, On Thu, Oct 07, 2004 at 11:12:55PM +0100, Maciej W. Rozycki wrote: > The APIC_INTEGRATED() macro reflects the range reserved for the i82489DX. > Both "Multiprocessor Specification" and "IA-32 Intel Architecture Software > Developer's Manual, Vol.3" which are available online specify it clearly > and explicitly. AFAIK, there is no integrated APIC implementation that > would violate it (unlike with I/O APICs), so what's the problem? If a > buggy chip appears, we can revisit this assumption. Only documentation; this is probably as good as it gets, so I'm happy with this level of explanation, for instance, saying what the revision numbers are. On Thu, 7 Oct 2004, William Lee Irwin III wrote: >> the latter of which is feasible for those relying on still-extant >> documentation. Better yet would be dredging up the docs... So, what is >> the range of the version numbers reported by i82489DX's? On Thu, Oct 07, 2004 at 11:12:55PM +0100, Maciej W. Rozycki wrote: > The i82489DX datasheet documents 0x01 for the chip and the > implementations I've encountered so far agree. Since it's not available online this will have to do. I seem to have turned up some vague evidence they were made into PDF's ca. 1993, but don't really expect that to mean anything. -- wli ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] APIC physical broadcast for i82489DX @ 2004-10-07 1:28 Maciej W. Rozycki 0 siblings, 0 replies; 4+ messages in thread From: Maciej W. Rozycki @ 2004-10-07 1:28 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel Ingo, The physical broadcast ID is determined incorrectly for the i82489DX, which uses 8-bit physical addressing (32-bit logical). Please apply the following patch. Maciej Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> patch-mips-2.6.9-rc2-20040920-apic-broadcast-0 diff -up --recursive --new-file linux-mips-2.6.9-rc2-20040920.macro/arch/i386/kernel/apic.c linux-mips-2.6.9-rc2-20040920/arch/i386/kernel/apic.c --- linux-mips-2.6.9-rc2-20040920.macro/arch/i386/kernel/apic.c 2004-09-20 03:57:43.000000000 +0000 +++ linux-mips-2.6.9-rc2-20040920/arch/i386/kernel/apic.c 2004-10-07 01:10:37.000000000 +0000 @@ -91,7 +91,7 @@ int get_physical_broadcast(void) unsigned int lvr, version; lvr = apic_read(APIC_LVR); version = GET_APIC_VERSION(lvr); - if (version >= 0x14) + if (!APIC_INTEGRATED(version) || version >= 0x14) return 0xff; else return 0xf; ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-10-07 23:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200410071609.i97G9reQ003072@hera.kernel.org>
2004-10-07 18:32 ` [PATCH] APIC physical broadcast for i82489DX William Lee Irwin III
2004-10-07 22:12 ` Maciej W. Rozycki
2004-10-07 22:45 ` William Lee Irwin III
2004-10-07 1:28 Maciej W. Rozycki
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.