x86, uv: More Westmere support on SGI UV
Enable Westmere support for all APIC modes on SGI UV. Signed-off-by: Russ Anderson <rja@sgi.com> LKML-Reference: <20101028224132.GB15804@sgi.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
committed by
H. Peter Anvin
parent
c8f730b1ab
commit
0520bd8438
@@ -71,7 +71,7 @@ static int early_get_nodeid(void)
|
|||||||
return node_id.s.node_id;
|
return node_id.s.node_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init early_get_apic_pnode_shift(void)
|
static void __init early_get_apic_pnode_shift(void)
|
||||||
{
|
{
|
||||||
unsigned long *mmr;
|
unsigned long *mmr;
|
||||||
|
|
||||||
@@ -83,8 +83,6 @@ static int __init early_get_apic_pnode_shift(void)
|
|||||||
* Old bios, use default value
|
* Old bios, use default value
|
||||||
*/
|
*/
|
||||||
uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT;
|
uvh_apicid.s.pnode_shift = UV_APIC_PNODE_SHIFT;
|
||||||
|
|
||||||
return uvh_apicid.s.pnode_shift;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||||
@@ -93,6 +91,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|||||||
|
|
||||||
if (!strcmp(oem_id, "SGI")) {
|
if (!strcmp(oem_id, "SGI")) {
|
||||||
nodeid = early_get_nodeid();
|
nodeid = early_get_nodeid();
|
||||||
|
early_get_apic_pnode_shift();
|
||||||
x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range;
|
x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range;
|
||||||
x86_platform.nmi_init = uv_nmi_init;
|
x86_platform.nmi_init = uv_nmi_init;
|
||||||
if (!strcmp(oem_table_id, "UVL"))
|
if (!strcmp(oem_table_id, "UVL"))
|
||||||
@@ -101,7 +100,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|||||||
uv_system_type = UV_X2APIC;
|
uv_system_type = UV_X2APIC;
|
||||||
else if (!strcmp(oem_table_id, "UVH")) {
|
else if (!strcmp(oem_table_id, "UVH")) {
|
||||||
__get_cpu_var(x2apic_extra_bits) =
|
__get_cpu_var(x2apic_extra_bits) =
|
||||||
nodeid << (early_get_apic_pnode_shift() - 1);
|
nodeid << (uvh_apicid.s.pnode_shift - 1);
|
||||||
uv_system_type = UV_NON_UNIQUE_APIC;
|
uv_system_type = UV_NON_UNIQUE_APIC;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user