Intel® SoC FPGA Embedded Development Suite
Support for SoC FPGA Software Development, SoC FPGA HPS Architecture, HPS SoC Boot and Configuration, Operating Systems
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
321 Discussions

Arria 10 HPS I2C (designware) issue?

GGeor25
Beginner
736 Views

Hello community,

I have a problem with i2c on arria 10 hps. After some time the I2C communication stops and the most curious thing is that it stops with bus free conditions. E.g. SDA and SCL are high. The problem is only with one of the slaves on the big network. The slave is Microchip PIC micro MCU. But before blaming PICmicro I want to be sure that Arria i2c works fine. For me it is not normal the bus to be free and no attempts for slaves access to be present from master side.

The CPUs are not blocked and the system is running

Info: Linux 4.9.76.

Not always but sometimes information like this is yelled on the terminal:

-----------

[ 360.815901] INFO: task kworker/0:2:914 blocked for more than 120 seconds.

[ 360.822663]      Not tainted 4.9.76-rt61-ltsi-rt-csc5-AUTOINC+413d2d0a9b #1

[ 360.829680] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

[ 360.837476] kworker/0:2    D   0  914     2 0x00000000

[ 360.842968] Workqueue: events set_brightness_delayed

[ 360.847942] [<8079b778>] (__schedule) from [<8079ba74>] (schedule+0x60/0xfc)

[ 360.854972] [<8079ba74>] (schedule) from [<8079ceb0>] (__rt_mutex_slowlock+0x88/0x15c)

[ 360.862862] [<8079ceb0>] (__rt_mutex_slowlock) from [<8079d4ac>] (rt_mutex_slowlock_locked+0xd8/0x260)

[ 360.872135] [<8079d4ac>] (rt_mutex_slowlock_locked) from [<8079d69c>] (rt_mutex_slowlock.constprop.8+0x68/0xa0)

[ 360.882185] [<8079d69c>] (rt_mutex_slowlock.constprop.8) from [<8079d9c8>] (rt_mutex_lock_state+0x9c/0xc4)

[ 360.891803] [<8079d9c8>] (rt_mutex_lock_state) from [<8079da0c>] (rt_mutex_lock+0x1c/0x20)

[ 360.900037] [<8079da0c>] (rt_mutex_lock) from [<8079f764>] (_mutex_lock+0x18/0x1c)

[ 360.907588] [<8079f764>] (_mutex_lock) from [<80540ae4>] (ccuss_smbus_request+0x20/0x24)

[ 360.915675] [<80540ae4>] (ccuss_smbus_request) from [<804a30d8>] (__ccuss_gpio_set+0x38/0x84)

[ 360.924184] [<804a30d8>] (__ccuss_gpio_set) from [<804a3374>] (ccuss_gpio_set+0x50/0x5c)

[ 360.932259] [<804a3374>] (ccuss_gpio_set) from [<8049cfe4>] (_gpiod_set_raw_value+0x70/0x160)

[ 360.940762] [<8049cfe4>] (_gpiod_set_raw_value) from [<8049e380>] (gpiod_set_value_cansleep+0x58/0xa0)

[ 360.950045] [<8049e380>] (gpiod_set_value_cansleep) from [<8062c340>] (gpio_led_set+0x64/0x68)

[ 360.958632] [<8062c340>] (gpio_led_set) from [<8062c3ac>] (gpio_led_set_blocking+0x18/0x20)

[ 360.966960] [<8062c3ac>] (gpio_led_set_blocking) from [<8062aecc>] (set_brightness_delayed+0x80/0xc4)

[ 360.976153] [<8062aecc>] (set_brightness_delayed) from [<8013d444>] (process_one_work+0x1f8/0x570)

[ 360.985083] [<8013d444>] (process_one_work) from [<8013e118>] (worker_thread+0x68/0x614)

[ 360.993149] [<8013e118>] (worker_thread) from [<80143718>] (kthread+0x118/0x120)

[ 361.000525] [<80143718>] (kthread) from [<80108218>] (ret_from_fork+0x14/0x3c)

[ 361.007744] INFO: task cat:29294 blocked for more than 120 seconds.

[ 361.014108]      Not tainted 4.9.76-rt61-ltsi-rt-csc5-AUTOINC+413d2d0a9b #1

[ 361.021131] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

[ 361.028928] cat            D   0 29294  1982 0x00000000

[ 361.034433] [<8079b778>] (__schedule) from [<8079ba74>] (schedule+0x60/0xfc)

[ 361.041465] [<8079ba74>] (schedule) from [<8079de7c>] (schedule_timeout+0x90/0x34c)

[ 361.049098] [<8079de7c>] (schedule_timeout) from [<8018b3e4>] (msleep+0x3c/0x48)

[ 361.056478] [<8018b3e4>] (msleep) from [<80540be8>] (ccuss_smbus_read_word_data+0x3c/0x4c)

[ 361.064727] [<80540be8>] (ccuss_smbus_read_word_data) from [<8064a848>] (ccuss_iio_read_raw+0x40/0x7c)

[ 361.074003] [<8064a848>] (ccuss_iio_read_raw) from [<80646e70>] (iio_read_channel_info+0x98/0x9c)

[ 361.082854] [<80646e70>] (iio_read_channel_info) from [<80518750>] (dev_attr_show+0x2c/0x58)

[ 361.091266] [<80518750>] (dev_attr_show) from [<802c19cc>] (sysfs_kf_seq_show+0x98/0x100)

[ 361.099420] [<802c19cc>] (sysfs_kf_seq_show) from [<802c02b8>] (kernfs_seq_show+0x34/0x38)

[ 361.107665] [<802c02b8>] (kernfs_seq_show) from [<802767b8>] (seq_read+0xbc/0x4ec)

[ 361.115855] [<802767b8>] (seq_read) from [<802c1118>] (kernfs_fop_read+0x148/0x1dc)

[ 361.123791] [<802c1118>] (kernfs_fop_read) from [<80250150>] (do_readv_writev+0x310/0x3e0)

[ 361.132035] [<80250150>] (do_readv_writev) from [<80250270>] (vfs_readv+0x50/0x68)

[ 361.139580] [<80250270>] (vfs_readv) from [<80283034>] (default_file_splice_read+0x180/0x294)

[ 361.148077] [<80283034>] (default_file_splice_read) from [<80282b84>] (do_splice_to+0x8c/0xa0)

[ 361.156658] [<80282b84>] (do_splice_to) from [<80282c4c>] (splice_direct_to_actor+0xb4/0x25c)

[ 361.165154] [<80282c4c>] (splice_direct_to_actor) from [<80282e8c>] (do_splice_direct+0x98/0xc0)

[ 361.173909] [<80282e8c>] (do_splice_direct) from [<80250754>] (do_sendfile+0x1b4/0x334)

[ 361.181887] [<80250754>] (do_sendfile) from [<802512f0>] (SyS_sendfile64+0x11c/0x148)

[ 361.189694] [<802512f0>] (SyS_sendfile64) from [<80108140>] (ret_fast_syscall+0x0/0x50)

--------

And after some debugging the issue appears only when STOP_DET and TX_ABORT interrupt appear simultaniously.

Any suggestions?

 

0 Kudos
1 Reply
EBERLAZARE_I_Intel
265 Views

Hi,

 

I suggest you to look thoroughly the Intel FPGA Avalon I2C (Master) Core document, Chapter 15 page 164.

 

Best Regards.

Reply