diff options
-rw-r--r-- | src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c | 8 | ||||
-rw-r--r-- | src/vendorcode/amd/opensil/genoa_poc/mpio/chip.h | 1 | ||||
-rw-r--r-- | src/vendorcode/amd/opensil/stub/mpio/chip.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c index 61233a9a94..2d32ca5e64 100644 --- a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c +++ b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c @@ -134,6 +134,14 @@ static void per_device_config(MPIOCLASS_INPUT_BLK *mpio_data, struct device *dev printk(BIOS_DEBUG, "Setting MPIO port for domain 0x%x, PCI %d:%d\n", domain, PCI_SLOT(devfn), PCI_FUNC(devfn)); + if (config->type == IFTYPE_UNUSED) { + if (is_dev_enabled(dev)) { + printk(BIOS_WARNING, "Unused MPIO engine, disabling PCI device.\n"); + dev->enabled = false; + } + return; + } + if (config->bmc) { setup_bmc_lanes(config->start_lane, 0); // TODO support multiple sockets return; diff --git a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.h b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.h index deb40387d3..4a78ef5f2b 100644 --- a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.h +++ b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.h @@ -17,6 +17,7 @@ */ enum mpio_type { + IFTYPE_UNUSED, IFTYPE_PCIE, IFTYPE_SATA, }; diff --git a/src/vendorcode/amd/opensil/stub/mpio/chip.h b/src/vendorcode/amd/opensil/stub/mpio/chip.h index f2fb5da6a9..96f60bea4c 100644 --- a/src/vendorcode/amd/opensil/stub/mpio/chip.h +++ b/src/vendorcode/amd/opensil/stub/mpio/chip.h @@ -3,6 +3,7 @@ #include <types.h> enum mpio_engine_type { + IFTYPE_UNUSED, IFTYPE_PCIE, IFTYPE_SATA, }; |