Commit 9d56d878 authored by Jack Steiner's avatar Jack Steiner Committed by Tony Luck

[IA64-SGI] - Pass OS logical cpu number to the SN prom (bios)

Pass the OS logical cpu number to the PROM. This allows PROM
to log the OS logical cpu number in error records viewed thru POD.
Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent f1206641
...@@ -577,7 +577,8 @@ void __init sn_cpu_init(void) ...@@ -577,7 +577,8 @@ void __init sn_cpu_init(void)
int i; int i;
static int wars_have_been_checked; static int wars_have_been_checked;
if (smp_processor_id() == 0 && IS_MEDUSA()) { cpuid = smp_processor_id();
if (cpuid == 0 && IS_MEDUSA()) {
if (ia64_sn_is_fake_prom()) if (ia64_sn_is_fake_prom())
sn_prom_type = 2; sn_prom_type = 2;
else else
...@@ -596,6 +597,12 @@ void __init sn_cpu_init(void) ...@@ -596,6 +597,12 @@ void __init sn_cpu_init(void)
BUG(); BUG();
sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2; sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2;
/*
* Don't check status. The SAL call is not supported on all PROMs
* but a failure is harmless.
*/
(void) ia64_sn_set_cpu_number(cpuid);
/* /*
* The boot cpu makes this call again after platform initialization is * The boot cpu makes this call again after platform initialization is
* complete. * complete.
...@@ -607,7 +614,6 @@ void __init sn_cpu_init(void) ...@@ -607,7 +614,6 @@ void __init sn_cpu_init(void)
if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0) if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0)
break; break;
cpuid = smp_processor_id();
cpuphyid = get_sapicid(); cpuphyid = get_sapicid();
if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice)) if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice))
......
...@@ -85,6 +85,7 @@ ...@@ -85,6 +85,7 @@
#define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065
#define SN_SAL_SET_OS_FEATURE_SET 0x02000066 #define SN_SAL_SET_OS_FEATURE_SET 0x02000066
#define SN_SAL_INJECT_ERROR 0x02000067 #define SN_SAL_INJECT_ERROR 0x02000067
#define SN_SAL_SET_CPU_NUMBER 0x02000068
/* /*
* Service-specific constants * Service-specific constants
...@@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc) ...@@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc)
local_irq_restore(irq_flags); local_irq_restore(irq_flags);
return ret_stuff.status; return ret_stuff.status;
} }
static inline int
ia64_sn_set_cpu_number(int cpu)
{
struct ia64_sal_retval rv;
SAL_CALL_NOLOCK(rv, SN_SAL_SET_CPU_NUMBER, cpu, 0, 0, 0, 0, 0, 0);
return rv.status;
}
#endif /* _ASM_IA64_SN_SN_SAL_H */ #endif /* _ASM_IA64_SN_SN_SAL_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment