-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Medium
-
Linux Core SDK
-
LCPD-42885
-
10.01
-
11.01
-
am64xx_sk-fs
kernel boot log shows i2c0 probe deferred. DEBUGFS also shows the interface is deferred.
- cat /sys/kernel/debug/devices_deferred
20000000.i2c
Removing "power-domains" property from main_i2c0 node in kernel k3-am64-main.dtsi makes i2c0 probe properly.
The issue only happens on SK-AM64B board, but not on TMDS64EVM. Checking the U-Boot devicetree for these two boards, "power-domains" property in &sdhci0/1 nodes is deleted in k3-am642-r5-evm.dts, but not in k3-am642-r5-sk.dts.
It seems this is what happened in R5 SPL on SK-AM64B:
- when detecting EEPROM, i2c0 device is enumerated and added to the exclusive device list in ti_sci.c;
- later when trying to boot from MMC1, sdhci1 device is enumerated and added to the exclusive device list. But somehow, i2c0 is no longer in the list.
- when later on ti_sci_cmd_release_exclusive_devices() is called, only sdhci1 is released. This caused kernel is failed to enable power-domains for i2c0.
On TMDS64EVM, since power-domains property is deleted from sdhci1 in R5 SPL, sdhci1 is not added to the exclusive device list, i2c0 is still there, and it got freed when later ti_sci_cmd_release_exclusive_devices() is called.
E2E Customer report:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1459509/sk-am64b-deferred-probe-of-i2c-bus-using-sdk-09-and-10