aboutsummaryrefslogtreecommitdiff
path: root/include/chip.h
diff options
context:
space:
mode:
authorGautham R. Shenoy <ego@linux.vnet.ibm.com>2020-05-26 12:51:50 +0530
committerOliver O'Halloran <oohall@gmail.com>2020-06-03 17:15:50 +1000
commitec3c45f3889cd5f7615db5615dd6824abe32f759 (patch)
tree64b79e42f0f213a75bc93784fd769e98cf784aeb /include/chip.h
parentcecc251c45b4d348e8110b2d2367b5ea4a404d51 (diff)
downloadskiboot-ec3c45f3889cd5f7615db5615dd6824abe32f759.zip
skiboot-ec3c45f3889cd5f7615db5615dd6824abe32f759.tar.gz
skiboot-ec3c45f3889cd5f7615db5615dd6824abe32f759.tar.bz2
occ: Fix false negatives in wait_for_all_occ_init()
Currently the wait_for_all_occ_init() function determines that the OCCs associated with every Chip has been initialized by verifying if the "Valid" bit in pstate table of that OCC is set. However, on chips where all the EX units are guarded, the OCC, even though it is active, does not update the pstate_table. Currently as a result of this, OPAL concludes that the OCC is not functional and not only disable Pstate initialization, but incorrectly report that that OCCs were not initialized, thereby cutting other features such as sensors. Fix this by ensuring that * We check if there is atleast one active EX unit in the chip before checking if the OCC is active. * On platforms with OCC-OPAL communication interface version 0x90 * wait_for_all_occ_init() only checks if the occ_state in the OCC dynamic area is set to "Active State". * move the "Valid" bit check to add_cpu_pstate_properties(), which is where we create the device-tree entries for frequency scaling. Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Tested-by: Pavaman Subramaniyam <pavsubra@in.ibm.com> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'include/chip.h')
-rw-r--r--include/chip.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/chip.h b/include/chip.h
index f76c837..b79b63e 100644
--- a/include/chip.h
+++ b/include/chip.h
@@ -192,6 +192,9 @@ struct proc_chip {
/* Used by hw/dio-p9.c */
struct p9_dio *dio;
+
+ /* Used during OCC init */
+ bool ex_present;
};
extern uint32_t pir_to_chip_id(uint32_t pir);