i2c-i801 / SMBus timeouts on BayTrail board (U-Boot)
Hi,
I'm currently trying to use the SMBus on a congatec BayTrail board. This works just fine when booting via the original BIOS. But when I boot into Linux using U-Boot as bootloader, I get the following errors:
[ 81.877121] i801_smbus 0000:00:1f.3: Transaction timeout [ 81.879228] i801_smbus 0000:00:1f.3: Failed terminating the transaction [ 81.879320] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879373] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879421] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879496] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it!
...
I checked with an oscilloscope and the SMBus clock is not toggling at all in this case. My feeling is, that some basic setup is missing in this non-BIOS case. Like some clock enabling. Does anyone of you have some idea here?
Thanks,
Stefan
Hi Stefan,
Quoted 13 lines · Stefan Roese
Hi,
I'm currently trying to use the SMBus on a congatec BayTrail board. This works just fine when booting via the original BIOS. But when I boot into Linux using U-Boot as bootloader, I get the following errors:
[ 81.877121] i801_smbus 0000:00:1f.3: Transaction timeout [ 81.879228] i801_smbus 0000:00:1f.3: Failed terminating the transaction [ 81.879320] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879373] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879421] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879496] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it!
Quoted 6 lines
...
I checked with an oscilloscope and the SMBus clock is not toggling at all in this case. My feeling is, that some basic setup is missing in this non-BIOS case. Like some clock enabling. Does anyone of you have some idea here?
No immediate idea, sorry. Two ideas:
* Is this problem specific to Baytrail systems, or does i2c-i801 fail on all U-Boot systems?
* Did you try comparing the PCI configuration space of the SMBus device between original BIOS boot (working) and U-Boot boot (not working)?
Signature · 2 lines
Jean Delvare SUSE L3 Support
Hi Jean,
Quoted 21 lines · Jean Delvare
Quoted 13 lines · Stefan Roese
Hi,
I'm currently trying to use the SMBus on a congatec BayTrail board. This works just fine when booting via the original BIOS. But when I boot into Linux using U-Boot as bootloader, I get the following errors:
[ 81.877121] i801_smbus 0000:00:1f.3: Transaction timeout [ 81.879228] i801_smbus 0000:00:1f.3: Failed terminating the transaction [ 81.879320] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879373] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879421] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it! [ 81.879496] i801_smbus 0000:00:1f.3: SMBus is busy, can't use it!Quoted 6 lines
...
I checked with an oscilloscope and the SMBus clock is not toggling at all in this case. My feeling is, that some basic setup is missing in this non-BIOS case. Like some clock enabling. Does anyone of you have some idea here?
Quoted 4 lines
No immediate idea, sorry. Two ideas:
* Is this problem specific to Baytrail systems, or does i2c-i801 fail on all U-Boot systems?
I only have BayTrail systems right now.
Quoted 2 lines
* Did you try comparing the PCI configuration space of the SMBus device between original BIOS boot (working) and U-Boot boot (not working)?
The issue seems to be solved just a few minutes ago. As it seems a pin-mux configuration was missing for the SMBus pins. Now the bus can be scanned in Linux without any issues.
Thanks,
Stefan