diff options
author | Oliver O'Halloran <oohall@gmail.com> | 2019-03-18 17:10:52 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2019-03-28 15:24:12 +1100 |
commit | 0ec1e37004da9d5bd03f178170abbc41e17914a2 (patch) | |
tree | 569c15ff2d1cacc082041084fb51a2006582769e /hw | |
parent | 1c3baae4f2b3754fe6062db29697308aa85b9c82 (diff) | |
download | skiboot-0ec1e37004da9d5bd03f178170abbc41e17914a2.zip skiboot-0ec1e37004da9d5bd03f178170abbc41e17914a2.tar.gz skiboot-0ec1e37004da9d5bd03f178170abbc41e17914a2.tar.bz2 |
hw/phb4: Look for the hub-id from in the PBCQ node
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@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/phb4.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -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); |