diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2019-04-12 14:05:29 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2019-04-17 15:56:34 +1000 |
commit | 53ef0db6e2efbf9678699db4a57df26cdd89e462 (patch) | |
tree | 926c52210c2b53aeb73e910b7c0cb145e7d15ab0 /core | |
parent | ac226d2c98ad95db44e1f2c27775c1b557af876b (diff) | |
download | skiboot-53ef0db6e2efbf9678699db4a57df26cdd89e462.zip skiboot-53ef0db6e2efbf9678699db4a57df26cdd89e462.tar.gz skiboot-53ef0db6e2efbf9678699db4a57df26cdd89e462.tar.bz2 |
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 <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/cpu.c | 18 | ||||
-rw-r--r-- | core/init.c | 3 |
2 files changed, 2 insertions, 19 deletions
@@ -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); |