|
@@ -341,12 +341,12 @@ static __init void map_mmioh_high(int max_pnode)
|
|
|
|
|
|
static __init void uv_rtc_init(void)
|
|
static __init void uv_rtc_init(void)
|
|
{
|
|
{
|
|
- long status, ticks_per_sec, drift;
|
|
|
|
|
|
+ long status;
|
|
|
|
+ u64 ticks_per_sec;
|
|
|
|
|
|
- status =
|
|
|
|
- x86_bios_freq_base(BIOS_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,
|
|
|
|
- &drift);
|
|
|
|
- if (status != 0 || ticks_per_sec < 100000) {
|
|
|
|
|
|
+ status = uv_bios_freq_base(BIOS_FREQ_BASE_REALTIME_CLOCK,
|
|
|
|
+ &ticks_per_sec);
|
|
|
|
+ if (status != BIOS_STATUS_SUCCESS || ticks_per_sec < 100000) {
|
|
printk(KERN_WARNING
|
|
printk(KERN_WARNING
|
|
"unable to determine platform RTC clock frequency, "
|
|
"unable to determine platform RTC clock frequency, "
|
|
"guessing.\n");
|
|
"guessing.\n");
|
|
@@ -428,6 +428,8 @@ void __init uv_system_init(void)
|
|
~((1 << n_val) - 1)) << m_val;
|
|
~((1 << n_val) - 1)) << m_val;
|
|
|
|
|
|
uv_bios_init();
|
|
uv_bios_init();
|
|
|
|
+ uv_bios_get_sn_info(0, &uv_type, &sn_partition_id,
|
|
|
|
+ &uv_coherency_id, &uv_region_size);
|
|
uv_rtc_init();
|
|
uv_rtc_init();
|
|
|
|
|
|
for_each_present_cpu(cpu) {
|
|
for_each_present_cpu(cpu) {
|
|
@@ -449,7 +451,7 @@ void __init uv_system_init(void)
|
|
uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1;
|
|
uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1;
|
|
uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
|
|
uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
|
|
uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
|
|
uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
|
|
- uv_cpu_hub_info(cpu)->coherency_domain_number = 0;/* ZZZ */
|
|
|
|
|
|
+ uv_cpu_hub_info(cpu)->coherency_domain_number = uv_coherency_id;
|
|
uv_node_to_blade[nid] = blade;
|
|
uv_node_to_blade[nid] = blade;
|
|
uv_cpu_to_blade[cpu] = blade;
|
|
uv_cpu_to_blade[cpu] = blade;
|
|
max_pnode = max(pnode, max_pnode);
|
|
max_pnode = max(pnode, max_pnode);
|