Add OPAL version details to the dump stack arch description, which is
printed in case of an oops.

eg: Hardware name: ... opal:v6.2

Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
---
 arch/powerpc/platforms/powernv/setup.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/powerpc/platforms/powernv/setup.c 
b/arch/powerpc/platforms/powernv/setup.c
index dac545aa0308..fddc61ec1d5b 100644
--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -17,6 +17,7 @@
 #include <linux/console.h>
 #include <linux/delay.h>
 #include <linux/irq.h>
+#include <linux/seq_buf.h>
 #include <linux/seq_file.h>
 #include <linux/of.h>
 #include <linux/of_fdt.h>
@@ -207,8 +208,33 @@ static void __init pnv_setup_arch(void)
        pnv_rng_init();
 }
 
+static void __init pnv_add_dump_stack_arch_desc(void)
+{
+       struct device_node *dn;
+       const char *version;
+
+       dn = of_find_node_by_path("/ibm,opal/firmware");
+       if (!dn)
+               return;
+
+       version = of_get_property(dn, "version", NULL);
+       if (!version)
+               version = of_get_property(dn, "git-id", NULL);
+
+       if (version)
+               seq_buf_printf(&ppc_hw_desc, "opal:%s", version);
+
+       version = of_get_property(dn, "mi-version", NULL);
+       if (version)
+               seq_buf_printf(&ppc_hw_desc, "mi:%s", version);
+
+       of_node_put(dn);
+}
+
 static void __init pnv_init(void)
 {
+       pnv_add_dump_stack_arch_desc();
+
        /*
         * Initialize the LPC bus now so that legacy serial
         * ports can be found on it
-- 
2.37.3

Reply via email to