x86: SGI UV: Map MMIO-High memory range
UV depends on the MMRHI space being identity mapped. The patch: x86: Make 64-bit efi_ioremap use ioremap on MMIO regions changed this to make efi regions at a different address using ioremap. Add the identity mapping to uv_system_init. ( Note this code was previously present but was deleted when BIOS added the ranges to the EFI map - previous efi code identify mapped the ranges. ) Signed-off-by: Jack Steiner <steiner@sgi.com> LKML-Reference: <20090909154339.GA7946@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
8dc579e868
Коммит
daf7b9c921
|
@ -389,6 +389,16 @@ static __init void map_gru_high(int max_pnode)
|
||||||
map_high("GRU", gru.s.base, shift, max_pnode, map_wb);
|
map_high("GRU", gru.s.base, shift, max_pnode, map_wb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static __init void map_mmr_high(int max_pnode)
|
||||||
|
{
|
||||||
|
union uvh_rh_gam_mmr_overlay_config_mmr_u mmr;
|
||||||
|
int shift = UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR_BASE_SHFT;
|
||||||
|
|
||||||
|
mmr.v = uv_read_local_mmr(UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR);
|
||||||
|
if (mmr.s.enable)
|
||||||
|
map_high("MMR", mmr.s.base, shift, max_pnode, map_uc);
|
||||||
|
}
|
||||||
|
|
||||||
static __init void map_mmioh_high(int max_pnode)
|
static __init void map_mmioh_high(int max_pnode)
|
||||||
{
|
{
|
||||||
union uvh_rh_gam_mmioh_overlay_config_mmr_u mmioh;
|
union uvh_rh_gam_mmioh_overlay_config_mmr_u mmioh;
|
||||||
|
@ -643,6 +653,7 @@ void __init uv_system_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
map_gru_high(max_pnode);
|
map_gru_high(max_pnode);
|
||||||
|
map_mmr_high(max_pnode);
|
||||||
map_mmioh_high(max_pnode);
|
map_mmioh_high(max_pnode);
|
||||||
|
|
||||||
uv_cpu_init();
|
uv_cpu_init();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче