[Skiboot] [PATCH 2/8] hw/phb4: Look for the hub-id from in the PBCQ node

Oliver O'Halloran oohall at gmail.com
Mon Mar 18 17:10:52 AEDT 2019


The hub-id is stored in the PBCQ node rather than the stack node so we
never add it to the PHB node. This breaks the lxvpd slot lookup code
since the hub-id is encoded in the VPD record that we need to find the
slot information.

Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
 hw/phb4.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/hw/phb4.c b/hw/phb4.c
index e103ee5fd93b..8af3d34f93a9 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -5842,9 +5842,15 @@ static void phb4_probe_stack(struct dt_node *stk_node, uint32_t pec_index,
 	dt_add_property_cells(np, "ibm,phb-stack", stk_node->phandle);
 	dt_add_property_cells(np, "ibm,phb-stack-index", stk_index);
 	dt_add_property_cells(np, "ibm,chip-id", gcid);
-	if (dt_has_node_property(stk_node, "ibm,hub-id", NULL))
-		dt_add_property_cells(np, "ibm,hub-id",
-				      dt_prop_get_u32(stk_node, "ibm,hub-id"));
+
+	/* read the hub-id out of the pbcq node */
+	if (dt_has_node_property(stk_node->parent, "ibm,hub-id", NULL)) {
+		uint32_t hub_id;
+
+		hub_id = dt_prop_get_u32(stk_node->parent, "ibm,hub-id");
+		dt_add_property_cells(np, "ibm,hub-id", hub_id);
+	}
+
 	if (dt_has_node_property(stk_node, "ibm,loc-code", NULL)) {
 		const char *lc = dt_prop_get(stk_node, "ibm,loc-code");
 		dt_add_property_string(np, "ibm,loc-code", lc);
-- 
2.20.1



More information about the Skiboot mailing list