summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2019-04-12 14:05:29 +1000
committerStewart Smith <stewart@linux.ibm.com>2019-04-17 15:56:34 +1000
commit53ef0db6e2efbf9678699db4a57df26cdd89e462 (patch)
tree926c52210c2b53aeb73e910b7c0cb145e7d15ab0 /core
parentac226d2c98ad95db44e1f2c27775c1b557af876b (diff)
downloadtalos-skiboot-53ef0db6e2efbf9678699db4a57df26cdd89e462.tar.gz
talos-skiboot-53ef0db6e2efbf9678699db4a57df26cdd89e462.zip
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.c18
-rw-r--r--core/init.c3
2 files changed, 2 insertions, 19 deletions
diff --git a/core/cpu.c b/core/cpu.c
index d9d47133..62c02017 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 eeee2d9e..0fe6c168 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);
OpenPOWER on IntegriCloud