powerpc/pseries: Add firmware details to the hardware description
Add firmware version details to the hardware description, which is printed at boot and in case of an oops. Use /hypervisor if we find it, though currently it only exists if we're running under qemu. Look for "ibm,powervm-partition" which is specified in PAPR+ v2.11 and tells us we're running under PowerVM. Failing that look for "ibm,fw-net-version" which is seen on PowerVM going back to at least Power6. eg: Hardware name: ... of:IBM,FW860.42 (SV860_138) hv:phyp Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220930082709.55830-6-mpe@ellerman.id.au
This commit is contained in:
parent
37576cb096
commit
8535a1afff
|
@ -41,6 +41,7 @@
|
|||
#include <linux/of_pci.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/swiotlb.h>
|
||||
#include <linux/seq_buf.h>
|
||||
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/processor.h>
|
||||
|
@ -1011,6 +1012,33 @@ static void __init pSeries_cmo_feature_init(void)
|
|||
pr_debug(" <- fw_cmo_feature_init()\n");
|
||||
}
|
||||
|
||||
static void __init pseries_add_hw_description(void)
|
||||
{
|
||||
struct device_node *dn;
|
||||
const char *s;
|
||||
|
||||
dn = of_find_node_by_path("/openprom");
|
||||
if (dn) {
|
||||
if (of_property_read_string(dn, "model", &s) == 0)
|
||||
seq_buf_printf(&ppc_hw_desc, "of:%s ", s);
|
||||
|
||||
of_node_put(dn);
|
||||
}
|
||||
|
||||
dn = of_find_node_by_path("/hypervisor");
|
||||
if (dn) {
|
||||
if (of_property_read_string(dn, "compatible", &s) == 0)
|
||||
seq_buf_printf(&ppc_hw_desc, "hv:%s ", s);
|
||||
|
||||
of_node_put(dn);
|
||||
return;
|
||||
}
|
||||
|
||||
if (of_property_read_bool(of_root, "ibm,powervm-partition") ||
|
||||
of_property_read_bool(of_root, "ibm,fw-net-version"))
|
||||
seq_buf_printf(&ppc_hw_desc, "hv:phyp ");
|
||||
}
|
||||
|
||||
/*
|
||||
* Early initialization. Relocation is on but do not reference unbolted pages
|
||||
*/
|
||||
|
@ -1018,6 +1046,8 @@ static void __init pseries_init(void)
|
|||
{
|
||||
pr_debug(" -> pseries_init()\n");
|
||||
|
||||
pseries_add_hw_description();
|
||||
|
||||
#ifdef CONFIG_HVC_CONSOLE
|
||||
if (firmware_has_feature(FW_FEATURE_LPAR))
|
||||
hvc_vio_init_early();
|
||||
|
|
Loading…
Reference in New Issue