T4240RDB: Target hangs while scanning I2C bus 0; requires hard reboot

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

T4240RDB: Target hangs while scanning I2C bus 0; requires hard reboot

1,987 Views
abdurrehman
Contributor III

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

Labels (1)
Tags (2)
0 Kudos
Reply
4 Replies

1,508 Views
rnouse
Contributor I

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.

1,508 Views
yipingwang
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

1,508 Views
abdurrehman
Contributor III

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 

0 Kudos
Reply

1,508 Views
yipingwang
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------