diff options
author | Frederic Barrat <fbarrat@linux.ibm.com> | 2020-02-06 14:22:43 +0100 |
---|---|---|
committer | Oliver O'Halloran <oohall@gmail.com> | 2020-02-12 15:56:24 +1100 |
commit | 9de4f2284c54433f7f4ff3dc3d13a39c657e2c19 (patch) | |
tree | 4de2eb20557c61b22d57b6a57236073f73532669 /platforms | |
parent | 53408440edb30de7ad18f12db285f15a0863fbc3 (diff) | |
download | skiboot-9de4f2284c54433f7f4ff3dc3d13a39c657e2c19.zip skiboot-9de4f2284c54433f7f4ff3dc3d13a39c657e2c19.tar.gz skiboot-9de4f2284c54433f7f4ff3dc3d13a39c657e2c19.tar.bz2 |
npu2-opencapi: Allow platforms to identify physical slots
This patch lets each platform define the name of the opencapi
slots. It makes it easier to identify which physical card is
generating errors or messages in the linux or skiboot log files.
The patch provides slot names for mihawk and witherspoon. If the
platform doesn't define any, then we default to 'OPENCAPI-xxxx'
There are various ways to find out about the slot names:
skiboot log
lspci command (if the PCI hotplug driver pnv-php is loaded)
lshw
checking the device tree
and probably others....
Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com>
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'platforms')
-rw-r--r-- | platforms/astbmc/mihawk.c | 20 | ||||
-rw-r--r-- | platforms/astbmc/witherspoon.c | 20 | ||||
-rw-r--r-- | platforms/ibm-fsp/zz.c | 20 |
3 files changed, 60 insertions, 0 deletions
diff --git a/platforms/astbmc/mihawk.c b/platforms/astbmc/mihawk.c index 6816acc..d33d16b 100644 --- a/platforms/astbmc/mihawk.c +++ b/platforms/astbmc/mihawk.c @@ -55,6 +55,25 @@ static void mihawk_get_slot_info(struct phb *phb, struct pci_device *pd) slot_table_get_slot_info(phb, pd); } +static const char *mihawk_ocapi_slot_label(uint32_t chip_id, + uint32_t brick_index) +{ + const char *name = NULL; + + if (chip_id == 0) { + if (brick_index == 2) + name = "JP90NVB1"; + else + name = "JP90NVT1"; + } else { + if (brick_index == 2) + name = "JP91NVB1"; + else + name = "JP91NVT1"; + } + return name; +} + static const struct platform_ocapi mihawk_ocapi = { .i2c_engine = 1, .i2c_port = 4, @@ -69,6 +88,7 @@ static const struct platform_ocapi mihawk_ocapi = { .i2c_presence_brick4 = 0, /* unused */ .i2c_presence_brick5 = 0, /* unused */ .odl_phy_swap = true, + .ocapi_slot_label = mihawk_ocapi_slot_label, }; static const struct slot_table_entry P1E1A_x8_PLX8748_down[] = { diff --git a/platforms/astbmc/witherspoon.c b/platforms/astbmc/witherspoon.c index 0819966..0d8d33c 100644 --- a/platforms/astbmc/witherspoon.c +++ b/platforms/astbmc/witherspoon.c @@ -325,6 +325,25 @@ i2c_failed: return; } +static const char *witherspoon_ocapi_slot_label(uint32_t chip_id, + uint32_t brick_index) +{ + const char *name = NULL; + + if (chip_id == 0) { + if (brick_index == 3) + name = "OPENCAPI-GPU0"; + else if (brick_index == 4) + name = "OPENCAPI-GPU1"; + } else { + if (brick_index == 3) + name = "OPENCAPI-GPU3"; + else if (brick_index == 4) + name = "OPENCAPI-GPU4"; + } + return name; +} + static const struct platform_ocapi witherspoon_ocapi = { .i2c_engine = 1, .i2c_port = 4, @@ -348,6 +367,7 @@ static const struct platform_ocapi witherspoon_ocapi = { .i2c_presence_brick3 = 0, .i2c_presence_brick4 = 0, .i2c_presence_brick5 = 0, + .ocapi_slot_label = witherspoon_ocapi_slot_label, }; static int gpu_slot_to_num(const char *slot) diff --git a/platforms/ibm-fsp/zz.c b/platforms/ibm-fsp/zz.c index 92f4fcb..f4aa85f 100644 --- a/platforms/ibm-fsp/zz.c +++ b/platforms/ibm-fsp/zz.c @@ -15,6 +15,25 @@ #include "ibm-fsp.h" #include "lxvpd.h" +static const char *zz_ocapi_slot_label(uint32_t chip_id, + uint32_t brick_index) +{ + const char *name = NULL; + + if (chip_id == 0) { + if (brick_index == 2) + name = "P1-T5"; + else + name = "P1-T6"; + } else { + if (brick_index == 2) + name = "P1-T7"; + else + name = "P1-T8"; + } + return name; +} + /* We don't yet create NPU device nodes on ZZ, but these values are correct */ static const struct platform_ocapi zz_ocapi = { .i2c_engine = 1, @@ -30,6 +49,7 @@ static const struct platform_ocapi zz_ocapi = { .i2c_presence_brick4 = 0, /* unused */ .i2c_presence_brick5 = 0, /* unused */ .odl_phy_swap = true, + .ocapi_slot_label = zz_ocapi_slot_label, }; #define NPU_BASE 0x5011000 |