[PATCH] x86, UV: UV2 fix for hub part number

From: Jack Steiner
Date: Fri Oct 07 2011 - 12:40:05 EST


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.

Signed-off-by: Jack Steiner <steiner@xxxxxxx>


---
arch/x86/include/asm/uv/uv_mmrs.h | 1 +
arch/x86/kernel/apic/x2apic_uv_x.c | 2 ++
2 files changed, 3 insertions(+)

Index: linux/arch/x86/include/asm/uv/uv_mmrs.h
===================================================================
--- linux.orig/arch/x86/include/asm/uv/uv_mmrs.h 2011-10-07 11:17:23.000000000 -0500
+++ linux/arch/x86/include/asm/uv/uv_mmrs.h 2011-10-07 11:21:07.555566441 -0500
@@ -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
Index: linux/arch/x86/kernel/apic/x2apic_uv_x.c
===================================================================
--- linux.orig/arch/x86/kernel/apic/x2apic_uv_x.c 2011-10-07 11:20:28.000000000 -0500
+++ linux/arch/x86/kernel/apic/x2apic_uv_x.c 2011-10-07 11:21:56.574608699 -0500
@@ -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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/