Felix Held submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Arthur Heymans: Looks good to me, approved Marshall Dawson: Looks good to me, but someone else must approve
vc/amd/opensil/genoa_poc/mpio: don't add duplicate MPIO descriptors

When the device right below the MPIO chip driver has downstream devices
without another chip in between, those downstream devices will also have
their chip_ops entry set to vendorcode_amd_opensil_genoa_poc_mpio_ops.
To avoid adding the same MPIO descriptor again for those additional
downstream devices, make sure that the chip_info pointer of the device
isn't the same as the one of the parent device, since that's only the
case for those additional downstream devices.

TEST=Onyx still boots to the payload and the MPIO configuration reported
from the openSIL code is still the same

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Suggested-by: Nico Huber <nico.h@gmx.de>
Change-Id: I6ba90fdc83ba089127e6722778bfef29dd480bb4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80149
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
---
M src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c
index 28e529d..89314ba 100644
--- a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c
+++ b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c
@@ -186,8 +186,9 @@
mpio_global_config(mpio_data);
nbio_config();

- /* Find all devices with this chip */
+ /* Find all devices with this chip that are directly below the chip */
for (struct device *dev = &dev_root; dev; dev = dev->next)
- if (dev->chip_ops == &vendorcode_amd_opensil_genoa_poc_mpio_ops)
+ if (dev->chip_ops == &vendorcode_amd_opensil_genoa_poc_mpio_ops &&
+ dev->chip_info != dev->bus->dev->chip_info)
per_device_config(mpio_data, dev->bus->dev, dev->chip_info);
}

To view, visit change 80149. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: main
Gerrit-Change-Id: I6ba90fdc83ba089127e6722778bfef29dd480bb4
Gerrit-Change-Number: 80149
Gerrit-PatchSet: 5
Gerrit-Owner: Felix Held <felix-coreboot@felixheld.de>
Gerrit-Reviewer: Arthur Heymans <arthur@aheymans.xyz>
Gerrit-Reviewer: Felix Held <felix-coreboot@felixheld.de>
Gerrit-Reviewer: Marshall Dawson <marshalldawson3rd@gmail.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged