From 53ef0db6e2efbf9678699db4a57df26cdd89e462 Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Fri, 12 Apr 2019 14:05:29 +1000 Subject: asm/head.S: set POWER9 radix HID bit at entry When running in virtual memory mode, the radix MMU hid bit should not be changed, so set this in the initial boot SPR setup. As a side effect, fast reboot also has HID0:RADIX bit set by the shared spr init, so no need for an explicit call. Signed-off-by: Nicholas Piggin Signed-off-by: Stewart Smith --- core/cpu.c | 18 ++---------------- core/init.c | 3 --- 2 files changed, 2 insertions(+), 19 deletions(-) (limited to 'core') diff --git a/core/cpu.c b/core/cpu.c index d9d4713..62c0201 100644 --- a/core/cpu.c +++ b/core/cpu.c @@ -1433,20 +1433,6 @@ static int64_t cpu_change_all_hid0(struct hid0_change_req *req) return OPAL_SUCCESS; } -void cpu_set_radix_mode(void) -{ - struct hid0_change_req req; - - if (!radix_supported) - return; - - req.clr_bits = 0; - req.set_bits = SPR_HID0_POWER9_RADIX; - cleanup_global_tlb(); - current_radix_mode = true; - cpu_change_all_hid0(&req); -} - static void cpu_cleanup_one(void *param __unused) { mtspr(SPR_AMR, 0); @@ -1488,8 +1474,8 @@ void cpu_fast_reboot_complete(void) /* Fast reboot will have cleared HID0:HILE */ current_hile_mode = false; - /* On P9, restore radix mode */ - cpu_set_radix_mode(); + /* and set HID0:RADIX */ + current_radix_mode = true; } static int64_t opal_reinit_cpus(uint64_t flags) diff --git a/core/init.c b/core/init.c index eeee2d9..0fe6c16 100644 --- a/core/init.c +++ b/core/init.c @@ -1282,9 +1282,6 @@ void __noreturn __nomcount main_cpu_entry(const void *fdt) prd_register_reserved_memory(); - /* On P9, switch to radix mode by default */ - cpu_set_radix_mode(); - checksum_romem(); load_and_boot_kernel(false); -- cgit v1.1