aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2021-11-09 17:59:32 +1000
committerCédric Le Goater <clg@kaod.org>2021-11-09 20:22:58 +0100
commite7569d0553b24c513d3066391973dd91b88c14ed (patch)
tree0e9faecee8ee2d91a47e0c38c0c5d6cbf565386e
parentd7cc47e5bc15c231cd92c666fe13a04f638cd904 (diff)
downloadskiboot-e7569d0553b24c513d3066391973dd91b88c14ed.zip
skiboot-e7569d0553b24c513d3066391973dd91b88c14ed.tar.gz
skiboot-e7569d0553b24c513d3066391973dd91b88c14ed.tar.bz2
hdata: add mmu-pid-bits and mmu-lpid-bits for POWER10 CPUs
This adds ibm,mmu-pid-bits and a new ibm,mmu-lpid-bits to POWER10 CPUs. POWER9 Linux has some workarounds for processors bugs that means it's probably safer to not add the entries there. Linux already hard codes these values correctly on these processors, but this allows more flexibility to change things. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
-rw-r--r--external/mambo/skiboot.tcl5
-rw-r--r--hdata/cpu-common.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index fb6c935..ebabeb7 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -553,6 +553,11 @@ for { set c 0 } { $c < $mconf(cpus) } { incr c } {
mysim of addprop $cpu_node array64 "ibm,pa-features" reg
}
+ if { $default_config == "P10" } {
+ mysim of addprop $cpu_node int "ibm,mmu-pid-bits" 20
+ mysim of addprop $cpu_node int "ibm,mmu-lpid-bits" 12
+ }
+
set irqreg [list]
for { set t 0 } { $t < $mconf(threads) } { incr t } {
mysim mcm 0 cpu $c thread $t set spr pc $mconf(boot_pc)
diff --git a/hdata/cpu-common.c b/hdata/cpu-common.c
index bf821c1..2248f9b 100644
--- a/hdata/cpu-common.c
+++ b/hdata/cpu-common.c
@@ -123,6 +123,10 @@ struct dt_node * add_core_common(struct dt_node *cpus,
if (proc_gen >= proc_gen_p9)
dt_add_property_cells(cpu, "ibm,processor-radix-AP-encodings",
0x0000000c, 0xa0000010, 0x20000015, 0x4000001e);
+ if (proc_gen >= proc_gen_p10) {
+ dt_add_property_cells(cpu, "ibm,mmu-pid-bits", 20);
+ dt_add_property_cells(cpu, "ibm,mmu-lpid-bits", 12);
+ }
/* HPT segment page size encodings, common to all supported CPUs */
dt_add_property_cells(cpu, "ibm,segment-page-sizes",