@@ -159,8 +159,13 @@ void add_opal_node(void)
dt_add_property_cells(opal_node, "#address-cells", 0);
dt_add_property_cells(opal_node, "#size-cells", 0);
- dt_add_property_strings(opal_node, "compatible", "ibm,opal-v2",
- "ibm,opal-v3");
+
+ if (proc_gen < proc_gen_p9)
+ dt_add_property_strings(opal_node, "compatible", "ibm,opal-v2",
+ "ibm,opal-v3");
+ else
+ dt_add_property_strings(opal_node, "compatible", "ibm,opal-v3");
+
dt_add_property_cells(opal_node, "opal-msg-async-num", OPAL_MAX_ASYNC_COMP);
dt_add_property_cells(opal_node, "opal-msg-size", sizeof(struct opal_msg));
dt_add_property_u64(opal_node, "opal-base-address", base);
@@ -5,6 +5,7 @@
; v2 is maintained for possible compatibility with very, very old kernels
; it will go away at some point in the future. Detect and rely on ibm,opal-v3
+; ibm,opal-v2 is *NOT* present on POWER9 and above.
ibm,associativity-reference-points = <0x4 0x3>;
ibm,heartbeat-ms = <0x7d0>;
@@ -15,11 +15,15 @@ OPAL_REINIT_CPUS
Can now be extended beyond HILE BE/LE bits. If invalid flags are set on
POWER9, OPAL_UNSUPPORTED will be returned.
+Device Tree
+-----------
+- /ibm,opal/ compatible property now just lists ibm,opal-v3 and no longer
+ ibm,opal-v2 (power9 and above only)
+
TODO
----
Things we still have to do for POWER9:
-- remove opal-v2 from compatible string.
- PCI to use async API rather than returning delays
- deprecate/remove v1 APIs where there's a V2
- Fix this FWTS warning:
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> --- core/opal.c | 9 +++++++-- doc/device-tree/ibm,opal.txt | 1 + doc/opal-api/power9-changes.txt | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-)