From: Martin Wilck <martin.wilck@fujitsu-siemens.com>
To: linux-kernel@vger.kernel.org, wli@holomorphy.com
Cc: Gerhard Wichert <Gerhard.Wichert@fujitsu-siemens.com>
Subject: APIC version and 8-bit APIC IDs
Date: Fri, 12 Aug 2005 13:13:37 +0200 [thread overview]
Message-ID: <42FC8461.2040102@fujitsu-siemens.com> (raw)
Hi William, hello everyone,
The MP_valid_apicid() function [arch/i386/kernel/mpparse.c] checks
whether the APIC version field is >=20 in order to determine whether the
CPU supports 8-bit physical APIC ids.
We currently have two modern processors oin our labs (Intel Xeon MP, AMD
Dual-Core Opteron 875) for which this test is wrong because their APIC
ids are both 16, but they _do_ support 8-bit APIC ids. This leads to
erratic error messages and to valid CPUs not being detected.
Unfortunately I cannot tell why this is so, and what test should be used
instead to make sure a CPU supports 8-bit APIC IDs.
The AMD BIOS and kernel developer's guide for Athlon64 and Opteron
processors says
"When both ApicExtId and ApicExtBrdCst in the HyperTransport"
Transaction Control Register are set, all 8 bits of APIC ID are used."
This refers to the TCR register. Reading that would require PCI
configuration space access before the APICs are set up, I don't know if
that's possible.
(http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF)
The Intel Manual simply says
"For the Pentium 4 and Intel Xeon Processors, the xAPIC specification
extends the local APIC field to 8 bits". The CPUs we have are Xeon MP
(family 15, model 4); their local APIC version is 16, and they do
support 8-bit APIC-IDs.
I guess it's up to the Intel an AMD people to have a final word on this,
but the current implementation is clearly wrong for these latest CPU types.
Regards
Martin
--
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
next reply other threads:[~2005-08-12 11:13 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-12 11:13 Martin Wilck [this message]
[not found] <42FC8461.2040102@fujitsu-siemens.com.suse.lists.linux.kernel>
2005-08-12 11:43 ` APIC version and 8-bit APIC IDs Andi Kleen
2005-08-12 13:21 ` Martin Wilck
2005-08-12 13:32 ` Andi Kleen
2005-08-12 13:51 ` Martin Wilck
2005-08-12 14:55 ` Martin Wilck
2005-08-12 14:57 ` Andi Kleen
2005-08-12 16:37 ` yhlu
2005-08-12 16:42 ` Andi Kleen
2005-08-12 17:44 ` yhlu
2005-08-22 9:50 ` Martin Wilck
2005-08-23 11:10 ` Maciej W. Rozycki
2005-08-26 14:01 ` Martin Wilck
2005-08-26 14:50 ` Maciej W. Rozycki
2005-08-29 7:25 ` Martin Wilck
2005-08-12 18:19 ` Siddha, Suresh B
2005-08-12 18:22 ` Andi Kleen
2005-08-12 18:40 ` Siddha, Suresh B
2005-08-12 18:50 ` Andi Kleen
2005-08-31 13:13 ` Martin Wilck
2005-08-31 13:25 ` Maciej W. Rozycki
2005-08-31 14:27 ` Martin Wilck
[not found] ` <4315B2D9.6080700@fujitsu-siemens.com>
[not found] ` <Pine.LNX.4.61L.0508311450020.10940@blysk.ds.pg.gda.pl>
2005-08-31 14:50 ` Martin Wilck
2005-08-31 14:40 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42FC8461.2040102@fujitsu-siemens.com \
--to=martin.wilck@fujitsu-siemens.com \
--cc=Gerhard.Wichert@fujitsu-siemens.com \
--cc=linux-kernel@vger.kernel.org \
--cc=wli@holomorphy.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.