Skip to contentSkip to conversation

x86, UV - UV2 fix for hub part number

PATCH RESEND In review Jack Steiner 1 participant 2 messages Nov 29, 2011 – Dec 5, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 x86, UV - UV2 fix for hub part number

There was a mixup when the SGI UV2 hub chip was sent to be fabricated, and it ended up with the wrong part number in the HRP_NODE_ID mmr. Future versions of the chip will (may) have the correct part number. Change the UV infrastructure to recognize both part numbers as valid IDs of a UV2 hub chip.

---
 arch/x86/include/asm/uv/uv_mmrs.h  |    1 +
 arch/x86/kernel/apic/x2apic_uv_x.c |    2 ++
 2 files changed, 3 insertions(+)
arch/x86/include/asm/uv/uv_mmrs.h +1 -0
Index: linux/arch/x86/include/asm/uv/uv_mmrs.h
===================================================================
@@ -57,6 +57,7 @@
 
 #define UV1_HUB_PART_NUMBER	0x88a5
 #define UV2_HUB_PART_NUMBER	0x8eb8
+#define UV2_HUB_PART_NUMBER_X	0x1111
 
 /* Compat: if this #define is present, UV headers support UV2 */
 #define UV2_HUB_IS_SUPPORTED	1
arch/x86/kernel/apic/x2apic_uv_x.c +2 -0
Index: linux/arch/x86/kernel/apic/x2apic_uv_x.c
===================================================================
@@ -93,6 +93,8 @@ static int __init early_get_pnodeid(void
 
 	if (node_id.s.part_number == UV2_HUB_PART_NUMBER)
 		uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1;
+	if (node_id.s.part_number == UV2_HUB_PART_NUMBER_X)
+		uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1;
 
 	uv_hub_info->hub_revision = uv_min_hub_revision_id;
 	pnode = (node_id.s.node_id >> 1) & ((1 << m_n_config.s.n_skt) - 1);
#1 lore raw

[tip:x86/urgent] x86, UV: Fix UV2 hub part number

Commit-ID:  b495e039b4ce2ce4a96b3006004faf082f4d50e2
Gitweb:     http://git.kernel.org/tip/b495e039b4ce2ce4a96b3006004faf082f4d50e2
Author:     Jack Steiner <[email protected]>
AuthorDate: Tue, 29 Nov 2011 15:00:58 -0600
Committer:  Ingo Molnar <[email protected]>
CommitDate: Mon, 5 Dec 2011 11:49:52 +0100

x86, UV: Fix UV2 hub part number

There was a mixup when the SGI UV2 hub chip was sent to be fabricated, and it ended up with the wrong part number in the HRP_NODE_ID mmr. Future versions of the chip will (may) have the correct part number. Change the UV infrastructure to recognize both part numbers as valid IDs of a UV2 hub chip.

---
 arch/x86/include/asm/uv/uv_mmrs.h  |    1 +
 arch/x86/kernel/apic/x2apic_uv_x.c |    2 ++
 2 files changed, 3 insertions(+), 0 deletions(-)
arch/x86/include/asm/uv/uv_mmrs.h +1 -0
index 10474fb..cf1d736 100644
@@ -57,6 +57,7 @@
 
 #define UV1_HUB_PART_NUMBER	0x88a5
 #define UV2_HUB_PART_NUMBER	0x8eb8
+#define UV2_HUB_PART_NUMBER_X	0x1111
 
 /* Compat: if this #define is present, UV headers support UV2 */
 #define UV2_HUB_IS_SUPPORTED	1
arch/x86/kernel/apic/x2apic_uv_x.c +2 -0
index 62ae300..9d59bba 100644
@@ -93,6 +93,8 @@ static int __init early_get_pnodeid(void)
 
 	if (node_id.s.part_number == UV2_HUB_PART_NUMBER)
 		uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1;
+	if (node_id.s.part_number == UV2_HUB_PART_NUMBER_X)
+		uv_min_hub_revision_id += UV2_HUB_REVISION_BASE - 1;
 
 	uv_hub_info->hub_revision = uv_min_hub_revision_id;
 	pnode = (node_id.s.node_id >> 1) & ((1 << m_n_config.s.n_skt) - 1);