Hello all,
When I boot my board (Intel Comet Lake based) using Coreboot I have one too many I2C busses compared to the stock AMI BIOS. Using i2cdetect under Ubuntu with the stock BIOS it shows:
$ i2cdetect -l
i2c-3 unknown i915 gmbus dpc N/A i2c-1 unknown Synopsys DesignWare I2C adapter N/A i2c-6 unknown DPDDC-A N/A i2c-4 unknown i915 gmbus misc N/A i2c-2 unknown i915 gmbus dpb N/A i2c-0 unknown SMBus I801 adapter at efa0 N/A i2c-7 unknown DPDDC-C N/A i2c-5 unknown i915 gmbus dpd N/A
When I run the same command having booted using Coreboot then it gives:
$ i2cdetect -l
i2c-3 unknown i915 gmbus dpb N/A i2c-1 unknown SMBus I801 adapter at efa0 N/A i2c-8 unknown DPDDC-C N/A i2c-6 unknown i915 gmbus dpd N/A i2c-4 unknown i915 gmbus dpc N/A i2c-2 unknown Synopsys DesignWare I2C adapter N/A i2c-0 unknown Synopsys DesignWare I2C adapter N/A i2c-7 unknown DPDDC-A N/A i2c-5 unknown i915 gmbus misc N/A
I’m guessing these are controlled by the devices that are configured in the devicetree.cb file. What I have currently that appears to be related to I2C is:
register "SerialIoDevMode" = "{ [PchSerialIoIndexI2C0] = PchSerialIoPci, [PchSerialIoIndexI2C1] = PchSerialIoPci, [PchSerialIoIndexI2C2] = PchSerialIoPci, [PchSerialIoIndexI2C3] = PchSerialIoPci, [PchSerialIoIndexI2C4] = PchSerialIoDisabled, [PchSerialIoIndexI2C5] = PchSerialIoDisabled, }”
device pci 15.0 on end # I2C #0 device pci 15.1 off end # I2C #1 device pci 15.2 off end # I2C #2 device pci 15.3 off end # I2C #3 device pci 19.0 off end # I2C #4 device pci 19.1 off end # I2C #5 device pci 1f.4 on end # SMBus
The definitions of “on” and “off” are based on lspci only reporting PCI devices 15.0 and 1f.4 when Linux is booted using the stock BIOS.
-Andy.