Peter Marheine has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/57298 )
Change subject: mb/google/zork: correct MST probes ......................................................................
mb/google/zork: correct MST probes
It turns out that putting a device ref in an overridetree at a different point in the tree will generate a duplicate device definition, such that the change introducing this support was ignoring the device presence specified by overridetree.cb and only using the baseboard configuration. I believe testing of that change was not redone after the baseboard was changed to disable the MST, so that conflicting behavior was not noticed.
The incorrect behavior generated a disabled device for the MST at the location specified by the baseboard, and one with the probe as a child of the soc. At runtime this did a fw_config probe of the "I2C 00:4a" device, and later probed a different "I2C 00:4a" which was already disabled. As the disabled one came later, it seems to have completely disabled the MST, discarding the results of the variant-specific probe.
BUG=b:185862297 TEST=10EC2141 device is now present on a Dali berknip BRANCH=zork
Change-Id: I2a8feb544f3fc198fe6313b226ad8995aad31c3e --- M src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb M src/mainboard/google/zork/variants/berknip/overridetree.cb M src/mainboard/google/zork/variants/morphius/overridetree.cb M src/mainboard/google/zork/variants/trembyle/overridetree.cb M src/mainboard/google/zork/variants/woomax/overridetree.cb 5 files changed, 66 insertions(+), 18 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/98/57298/1
diff --git a/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb b/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb index 824a007..f8e5d9a 100644 --- a/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb +++ b/src/mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb @@ -372,7 +372,7 @@ end device ref lpc_bridge on chip ec/google/chromeec - device pnp 0c09.0 on + device pnp 0c09.0 alias cros_ec on chip ec/google/chromeec/i2c_tunnel register "uid" = "0" register "remote_bus" = "8" @@ -398,7 +398,7 @@ register "name" = ""MSTH"" register "uid" = "1" register "remote_bus" = "9" - device generic 1.0 on + device generic 1.0 alias cros_ec_i2c_9 on chip drivers/i2c/generic register "hid" = ""10EC2141"" register "name" = ""MSTH"" diff --git a/src/mainboard/google/zork/variants/berknip/overridetree.cb b/src/mainboard/google/zork/variants/berknip/overridetree.cb index 793be78..434d4b3 100644 --- a/src/mainboard/google/zork/variants/berknip/overridetree.cb +++ b/src/mainboard/google/zork/variants/berknip/overridetree.cb @@ -104,6 +104,22 @@ # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit + + device ref lpc_bridge on + chip ec/google/chromeec + device ref cros_ec on + chip ec/google/chromeec/i2c_tunnel + device ref cros_ec_i2c_9 on + chip drivers/i2c/generic + device ref db_mst on + probe USB_DAUGHTERBOARD BERKNIP_DB_DALI + end + end + end + end + end + end + end end # domain
device ref i2c_2 on @@ -179,8 +195,4 @@ end end
- device ref db_mst on - probe USB_DAUGHTERBOARD BERKNIP_DB_DALI - end - end # chip soc/amd/picasso diff --git a/src/mainboard/google/zork/variants/morphius/overridetree.cb b/src/mainboard/google/zork/variants/morphius/overridetree.cb index bb5e0e7..c5507e9 100644 --- a/src/mainboard/google/zork/variants/morphius/overridetree.cb +++ b/src/mainboard/google/zork/variants/morphius/overridetree.cb @@ -80,6 +80,22 @@ # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit + + device ref lpc_bridge on + chip ec/google/chromeec + device ref cros_ec on + chip ec/google/chromeec/i2c_tunnel + device ref cros_ec_i2c_9 on + chip drivers/i2c/generic + device ref db_mst on + probe USB_DAUGHTERBOARD MORPHIUS_DB_DALI + end + end + end + end + end + end + end end # domain
device ref i2c_2 on @@ -144,8 +160,4 @@ end end
- device ref db_mst on - probe USB_DAUGHTERBOARD MORPHIUS_DB_DALI - end - end # chip soc/amd/picasso diff --git a/src/mainboard/google/zork/variants/trembyle/overridetree.cb b/src/mainboard/google/zork/variants/trembyle/overridetree.cb index 394b3bc..c4ddc57 100644 --- a/src/mainboard/google/zork/variants/trembyle/overridetree.cb +++ b/src/mainboard/google/zork/variants/trembyle/overridetree.cb @@ -53,6 +53,22 @@ # See AMD 55570-B1 Table 13: PCI Device ID Assignments. device domain 0 on subsystemid 0x1022 0x1510 inherit + + device ref lpc_bridge on + chip ec/google/chromeec + device ref cros_ec on + chip ec/google/chromeec/i2c_tunnel + device ref cros_ec_i2c_9 on + chip drivers/i2c/generic + device ref db_mst on + probe USB_DAUGHTERBOARD TREMBYLE_DB_DALI_HDMI + end + end + end + end + end + end + end end # domain
device ref i2c_2 on @@ -113,8 +129,4 @@ end end
- device ref db_mst on - probe USB_DAUGHTERBOARD TREMBYLE_DB_DALI_HDMI - end - end # chip soc/amd/picasso diff --git a/src/mainboard/google/zork/variants/woomax/overridetree.cb b/src/mainboard/google/zork/variants/woomax/overridetree.cb index 82a060f..dd2bddd 100644 --- a/src/mainboard/google/zork/variants/woomax/overridetree.cb +++ b/src/mainboard/google/zork/variants/woomax/overridetree.cb @@ -87,6 +87,22 @@ chip drivers/usb/acpi device usb 3.2 off end end + + device ref lpc_bridge on + chip ec/google/chromeec + device ref cros_ec on + chip ec/google/chromeec/i2c_tunnel + device ref cros_ec_i2c_9 on + chip drivers/i2c/generic + device ref db_mst on + probe USB_DAUGHTERBOARD WOOMAX_DB_DALI + end + end + end + end + end + end + end end # domain
device ref i2c_2 on @@ -117,8 +133,4 @@ end end
- device ref db_mst on - probe USB_DAUGHTERBOARD WOOMAX_DB_DALI - end - end # chip soc/amd/picasso