[Skiboot] [PATCH v1] external/mambo: Updates for POWER9 and POWER10 configuration

Nicholas Piggin npiggin at gmail.com
Wed Aug 25 15:47:56 AEST 2021


Update SIM_CTRL1 bits:
- Set the LPAR-per-core mode bit. This is required for SMT KVM to work.
- Disable hardware atomic RC updates. This matches hardware.
- Disable LM on POWER10 (already disabled on POWER9).
- Disable TM nesting, TCHECK mask, mttfhar under suspend, and
  DISABLE_INST_FORCE_CIT_BIT on POWER10.
- Enable DEXCR, HILE, ROP, BHRB disable, block BHRB writes in PR=0,
  BFLOAT, RFC02628 on POWER10.

Update PVR and mambo f000f bits:
- Set POWER10 to DD2.0

Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
 external/mambo/skiboot.tcl | 11 ++++++-----
 hw/xscom.c                 |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/external/mambo/skiboot.tcl b/external/mambo/skiboot.tcl
index 0ecb55a77..48039ba80 100644
--- a/external/mambo/skiboot.tcl
+++ b/external/mambo/skiboot.tcl
@@ -134,9 +134,9 @@ if { $default_config == "PEGASUS" } {
 }
 
 if { $default_config == "P9" } {
-    # PVR configured for POWER9 DD2.3 Scale out 24 Core (ie SMT4)
+    # PVR configured for POWER9 DD2.3 Scale out 24 Core (ie SMT4), LPAR-per-thread
     myconf config processor/initial/PVR 0x4e1203
-    myconf config processor/initial/SIM_CTRL1 0x4228301710000000
+    myconf config processor/initial/SIM_CTRL1 0x42683c1710000000
 
     if { $mconf(numa) } {
         myconf config memory_region_id_shift 45
@@ -144,9 +144,10 @@ if { $default_config == "P9" } {
 }
 
 if { $default_config == "P10" } {
-    # PVR configured for POWER10 DD1.0
-    myconf config processor/initial/PVR 0x800100
-    myconf config processor/initial/SIM_CTRL1 0xc228100400000000
+    # PVR configured for POWER10 DD2.0, big-core, LPAR-per-thread
+    # Small-core has bit 0x1000 set.
+    myconf config processor/initial/PVR 0x800200
+    myconf config processor/initial/SIM_CTRL1 0x0c1cdc1400000000
 
     if { $mconf(numa) } {
         myconf config memory_region_id_shift 44
diff --git a/hw/xscom.c b/hw/xscom.c
index 347457242..298fe0c90 100644
--- a/hw/xscom.c
+++ b/hw/xscom.c
@@ -826,7 +826,7 @@ int64_t xscom_read_cfam_chipid(uint32_t partid, uint32_t *chip_id)
 	 */
 	if (chip_quirk(QUIRK_NO_F000F)) {
 		if (proc_gen == proc_gen_p10)
-			val = 0x120DA04980000000UL; /* P10 DD1.0 */
+			val = 0x220DA04980000000UL; /* P10 DD2.0 */
 		else if (proc_gen == proc_gen_p9)
 			val = 0x203D104980000000UL; /* P9 Nimbus DD2.3 */
 		else
-- 
2.23.0



More information about the Skiboot mailing list