Skip to contentSkip to conversation

x86, UV: UV2 fix for hub part number

PATCH Superseded Jack Steiner 1 participant 1 message Oct 7, 2011

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

PATCH 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);