[Skiboot] [RESEND PATCH v2 2/4] npu3: Don't use the device tree to assign the phb-index of the PHB

Frederic Barrat fbarrat at linux.ibm.com
Thu Jan 23 02:03:34 AEDT 2020

On Axone, there's a 1-to-1 mapping between virtual PHBs and NPUs. We
could keep assigning the phb-index of the virtual PHB from the value
found in the npu node of the device tree, but to be consistent with
P9/npu2 and avoid confusion, this patch assigns the phb-index when the
virtual PHB is created, based on the npu index, similarly to what we
do on P9.

Reviewed-by: Reza Arbab <arbab at linux.ibm.com>
Reviewed-by: Andrew Donnellan <ajd at linux.ibm.com>
Signed-off-by: Frederic Barrat <fbarrat at linux.ibm.com>
 - new patch: separate the axone bits from the first patch

 hw/npu3-nvlink.c | 2 +-
 include/npu3.h   | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/hw/npu3-nvlink.c b/hw/npu3-nvlink.c
index 96301589..b8856ddc 100644
--- a/hw/npu3-nvlink.c
+++ b/hw/npu3-nvlink.c
@@ -1478,7 +1478,7 @@ static void npu3_dt_add_props(struct npu3 *npu)
 	dt_add_property_cells(dn, "ibm,phb-index",
-			      dt_prop_get_u32(npu->dt_node, "ibm,phb-index"));
+			      npu3_get_phb_index(npu->index));
 	dt_add_property_cells(dn, "ibm,phb-diag-data-size", 0);
 	dt_add_property_cells(dn, "ibm,opal-num-pes", NPU3_MAX_PE_NUM);
 	dt_add_property_cells(dn, "ibm,opal-reserved-pe", NPU3_RESERVED_PE_NUM);
diff --git a/include/npu3.h b/include/npu3.h
index 1c657f94..0fdad4df 100644
--- a/include/npu3.h
+++ b/include/npu3.h
@@ -177,4 +177,10 @@ int64_t npu3_map_lpar(struct phb *phb, uint64_t bdf, uint64_t lparid,
 int64_t npu3_set_relaxed_order(struct phb *phb, uint32_t gcid, int pec,
 			       bool enable);
+#define NPU3_PHB_INDEX_BASE     6 /* immediately after real PHBs */
+static inline int npu3_get_phb_index(unsigned int npu_index)
+	return NPU3_PHB_INDEX_BASE + npu_index;
 #endif /* __NPU3_H */

More information about the Skiboot mailing list