summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndrew Donnellan <andrew.donnellan@au1.ibm.com>2018-06-29 12:57:09 +1000
committerStewart Smith <stewart@linux.ibm.com>2018-07-03 01:25:36 -0500
commita36b40799055d0ff070f87376a486caed5c3a475 (patch)
tree1b768346509295956d43875a5c770335ed19a70e /include
parent6ede024c810ffeb64814a8d6c4c338f12d357458 (diff)
downloadblackbird-skiboot-a36b40799055d0ff070f87376a486caed5c3a475.tar.gz
blackbird-skiboot-a36b40799055d0ff070f87376a486caed5c3a475.zip
npu2: Use same compatible string for NVLink and OpenCAPI link nodes in device tree
Currently, we distinguish between NPU links for NVLink devices and OpenCAPI devices through the use of two different compatible strings - ibm,npu-link and ibm,npu-link-opencapi. As we move towards supporting configurations with both NVLink and OpenCAPI devices behind a single NPU, we need to detect the device type as part of presence detection, which can't happen until well after the point where the HDAT or platform code has created the NPU device tree nodes. Changing a node's compatible string after it's been created is a bit ugly, so instead we should move the device type to a new property which we can add to the node later on. Get rid of the ibm,npu-link-opencapi compatible string, add a new ibm,npu-link-type property, and a helper function to check the link type. Add an "unknown" device type in preparation for later patches to detect device type dynamically. These device tree bindings are entirely internal to skiboot and are not consumed directly by Linux, so this shouldn't break anything (other than internal BML lab environments). Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/npu2.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/npu2.h b/include/npu2.h
index eb4af5e6..4c2e20e0 100644
--- a/include/npu2.h
+++ b/include/npu2.h
@@ -81,6 +81,7 @@ struct npu2_pcie_bar {
};
enum npu2_dev_type {
+ NPU2_DEV_TYPE_UNKNOWN,
NPU2_DEV_TYPE_NVLINK,
NPU2_DEV_TYPE_OPENCAPI,
};
@@ -191,6 +192,7 @@ static inline struct phb *npu2_dev_to_phb(struct npu2_dev *ndev)
}
}
+enum npu2_dev_type npu2_dt_link_dev_type(struct dt_node *link);
void npu2_write_4b(struct npu2 *p, uint64_t reg, uint32_t val);
uint32_t npu2_read_4b(struct npu2 *p, uint64_t reg);
void npu2_write(struct npu2 *p, uint64_t reg, uint64_t val);
OpenPOWER on IntegriCloud