Embedded Intel Atom® Processors
Technological Conversations about Intel Atom® Hardware, Software, Firmware, Graphics

Atom C3558 I2C problem

CPaul10
Novice
2,603 Views

Hello,

I got a case based on Intel Atom C3558 or C3508 platform.

I installed Ubuntu 16.04 LTS on it and upgrade kernel from 4.4.0 to 4.19.68.

The options of I2C driver as below:

CONFIG_I2C=y

CONFIG_ACPI_I2C_OPREGION=y

CONFIG_I2C_BOARDINFO=y

CONFIG_I2C_COMPAT=y

CONFIG_I2C_CHARDEV=y

CONFIG_I2C_MUX=y

CONFIG_I2C_MUX_PCA954x=y

CONFIG_I2C_HELPER_AUTO=y

CONFIG_I2C_SMBUS=y

CONFIG_I2C_ALGOBIT=y

CONFIG_I2C_I801=y

CONFIG_I2C_ISCH=y

CONFIG_I2C_ISMT=y

CONFIG_I2C_SCMI=y

CONFIG_I2C_DESIGNWARE_CORE=y

CONFIG_I2C_DESIGNWARE_PLATFORM=y

CONFIG_I2C_GPIO=y

CONFIG_I2C_GPIO_FAULT_INJECTOR=y

CONFIG_I2C_STUB=m

CONFIG_I2C_DEBUG_CORE=y

CONFIG_I2C_DEBUG_ALGO=y

CONFIG_I2C_DEBUG_BUS=y

I can see the i2c-bus right now.

 root@ubuntu:/mnt/sata/tmp/linux-4.19.68# i2cdetect -l

i2c-1 smbus    SMBus iSMT adapter at dff9c000  SMBus adapter

i2c-0 smbus    SMBus I801 adapter at e000    SMBus adapter

 

But the console always show 'ismt_smbus 0000:00:12.0: completion wait timed out' slowly after I type 'i2cdetect -r -y 0'.​

​The part of kernel message:

[ 223.435938] i2c i2c-0: ioctl, cmd=0x703, arg=0x77

[ 223.435945] i2c i2c-0: ioctl, cmd=0x720, arg=0x7fff072d4e80

[ 223.435951] ismt_smbus 0000:00:12.0: I2C_SMBUS_BYTE: READ

[ 223.435956] ismt_smbus 0000:00:12.0: dev=0000000097c6a9f6

[ 223.435961] ismt_smbus 0000:00:12.0: data=00000000bd2538c3

[ 223.435965] ismt_smbus 0000:00:12.0: dma_buffer=00000000010c23ac

[ 223.435969] ismt_smbus 0000:00:12.0: dma_size=1

[ 223.435973] ismt_smbus 0000:00:12.0: dma_direction=2

[ 223.435978] ismt_smbus 0000:00:12.0: dma_addr = 0x000000041eb21450

[ 223.435982] ismt_smbus 0000:00:12.0: Dump of the descriptor struct: 0x0

[ 223.435986] ismt_smbus 0000:00:12.0: Descriptor struct: 000000002753df16

[ 223.435990] ismt_smbus 0000:00:12.0: tgtaddr_rw=0xEF

[ 223.435994] ismt_smbus 0000:00:12.0: wr_len_cmd=0x00

[ 223.435997] ismt_smbus 0000:00:12.0: rd_len=  0x01

[ 223.436001] ismt_smbus 0000:00:12.0: control=  0x48

[ 223.436005] ismt_smbus 0000:00:12.0: status=  0x00

[ 223.436008] ismt_smbus 0000:00:12.0: retry=   0x00

[ 223.436012] ismt_smbus 0000:00:12.0: rxbytes=  0x00

[ 223.436016] ismt_smbus 0000:00:12.0: txbytes=  0x00

[ 223.436019] ismt_smbus 0000:00:12.0: dptr_low= 0x1EB21450

[ 223.436023] ismt_smbus 0000:00:12.0: dptr_high= 0x00000004

[ 223.436027] ismt_smbus 0000:00:12.0: Dump of the iSMT General Registers

[ 223.436032] ismt_smbus 0000:00:12.0:  GCTRL.... : (0x000000002b8f2e9f)=0x0

[ 223.436038] ismt_smbus 0000:00:12.0:  SMTICL... : (0x00000000c5e22f6a)=0x0000000000000000

[ 223.436043] ismt_smbus 0000:00:12.0:  ERRINTMSK : (0x00000000d5ebe998)=0x0

[ 223.436048] ismt_smbus 0000:00:12.0:  ERRAERMSK : (0x00000000782e6751)=0x0

[ 223.436053] ismt_smbus 0000:00:12.0:  ERRSTS... : (0x00000000ec163d70)=0x0

[ 223.436057] ismt_smbus 0000:00:12.0:  ERRINFO.. : (0x00000000686e7974)=0x0

[ 223.436061] ismt_smbus 0000:00:12.0: Dump of the iSMT Master Registers

[ 223.436066] ismt_smbus 0000:00:12.0:  MDBA..... : (0x000000008a1869d5)=0x000000041EAF3000

[ 223.436071] ismt_smbus 0000:00:12.0:  MCTRL.... : (0x0000000016b85d1c)=0x19

[ 223.436076] ismt_smbus 0000:00:12.0:  MSTS..... : (0x000000003fc61b21)=0x0

[ 223.436081] ismt_smbus 0000:00:12.0:  MDS...... : (0x000000009d8a4724)=0x1

[ 223.436086] ismt_smbus 0000:00:12.0:  RPOLICY.. : (0x00000000b726b856)=0x61020

[ 223.436092] ismt_smbus 0000:00:12.0:  SPGT..... : (0x000000007b3be4e3)=0x5

[ 224.454041] ismt_smbus 0000:00:12.0: completion wait timed out

 

Do you have any idea for this issue?

The final purpose :

I would like to read/write the data of sensors by I2C.

The architecture:

C3558/C3508 ---> pca9548_0 ---> sensors

---> pca9548_1 ---> sensors

---> pca9548_2 ---> sensors

---> pca9548_3 ---> sensors

 

0 Kudos
5 Replies
CarlosAM_INTEL
Moderator
2,069 Views

Hello, @CPaul10​:

 

Thank you for contacting Intel Embedded Community.

 

Could you please tell us if the affected designs have been designed by you or by a third-party company? In case that they are third-party units please give the part number, model, name of the manufacturer, where it is stated the information related to it. In case that it is your design, could you please clarify it has been reviewed by Intel?

 

By the way, Could you please let us know where you obtain and the version of the affected driver?

 

We are waiting for your reply.

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
CPaul10
Novice
2,069 Views

Sorry for Incomplete message.

1.

third-party company:ADLINK

model:Express-DN7

(https://www.adlinktech.com/Products/Computer_on_Modules/COMExpressType7/Express-DN7?lang=en)

​cpu:Intel Atom C3558 / C3508

2.

I got the Ubuntu 16.04 LTS Server from https://ubuntu.com.

I got the Linux Kernel from https://www.kernel.org.

​Kernel Version:4.19.68

 

 

0 Kudos
CarlosAM_INTEL
Moderator
2,070 Views

Hello, @CPaul10​:

 

Thanks for your reply.

 

We would like to help you with this third-party issue but the proper information is handled by its manufacturer and the Operating System (OS) developers. Due to this fact as a reference, please address the consultations related to this situation to the channels listed at the following websites:

 

https://www.adlinktech.com/en/Askanexpert.aspx

https://askubuntu.com/

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
CPaul10
Novice
2,070 Views

Thanks.

0 Kudos
CarlosAM_INTEL
Moderator
2,071 Views

Hello, @CPaul10​:

 

Thanks for your update.

 

You are welcome, please do not hesitate to contact us again in case you will have questions related to Intel Embedded devices.

 

Best regards,

@Mæcenas_INTEL​.

0 Kudos
Reply