Hi,
We are observing system hangs while trying to `byte read` from slave address 0x61
root@t4240rdb-64b:~# i2cdetect -y -r 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- 1c -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- 32 -- 34 -- 36 -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- UU
50: 50 -- 52 -- 54 -- 56 -- -- -- -- -- -- -- -- --
60: 60
##System hangs at this point
..reboot
root@t4240rdb-64b:~# i2cget -y 0 0x61 0x02 b
##System hangs at this point
The reference board schematic does not list any device present at I2C slave address 0x61.
Any pointers on how to resolve this issue?
Thanks
AbdurRehman
Looks like you have a HW monitor such as w83795 or so (0x2f) or other SMBus complaint device that use 0x61 address for ARP:
https://www.kernel.org/doc/Documentation/i2c/smbus-protocol
On my system (aspeed soc) smbus read-byte (i2cdetect -r) discovery lead just for a little hang (for a second) at 0x61 and then continues without discovered 0x61, but regular i2cdetect shows me 0x61 address.
May be your driver can't deal with this.
Hello Abdur Rehman,
Please use the i2cdetect command as the following, it seems there is something wrong with this command.
root@t4240rdb:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- 1a -- 1c -- 1e --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- 32 -- 34 -- 36 -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- UU
50: 50 -- 52 -- 54 -- 56 -- -- -- -- -- -- -- -- --
60: 60 61 -- -- -- -- -- -- UU -- -- -- -- 6d -- --
70: 70 71 -- -- -- -- -- --
The address 61 looks not a valid chip address, please refer to the following.
root@t4240rdb:~# i2cget -y 0 0x60 0x2 b
0x50
I also do some verification in u-boot, please have a reference.
> i2c md 60 0
0000: 1e 1e 50 00 0b ff ff ff ff ff ff ff ff ff ff ff ..P.............
=> i2c md 61 0
Error reading the chip: -1
> i2c probe
Valid chip addresses: 08 1A 1C 1E 2F 32 34 36 4B 4F 50 52 54 56 60 61 68 6D 70 71
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I wonder why the system gets hanged while reading from this address in Linux although in U-Boot we only get an error and system does not hang.
Is there a reason why this invalid address shows up while scanning the bus? This phantom device is not playing well with our automated testing scripts and it will be nice if we can disable it somehow since it is not serving any purpose.
Many thanks,
AbdurRehman
Hello Abdur Rehman,
I will report this problem to Linux SDK team, Linux driver should handle this exception, probably this is hardware problem.
Please exclude the address "0x61" from your test script for T4240RDB. Only reading this address make the system enter exception status.
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------