Colibri iMX7D

Hi,

  1. Built in RN5T618 PMIC reboot issue. No atomic I2C transfer handler. The same on 5.0.0-build 3 and and on the latest monthly 5.1.0:

    root@colibri-imx7:~# [   29.518686] reboot: Restarting system
    [   29.522466] ------------[ cut here ]------------
    [   29.527182] WARNING: CPU: 0 PID: 1 at drivers/i2c/i2c-core.h:40 i2c_transfer+0xfc/0x108
    [   29.535320] No atomic I2C transfer handler for 'i2c-0'
    [   29.540543] Modules linked in: rfcomm bnep btusb btintel imx_sdma virt_dma mcp251x snd_soc_sgtl5000 can_dev secvio bluetooth libcomposite configfs
    [   29.553913] CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 5.4.47-5.0.0+git.9e7307657fc1 #1
    [   29.562489] Hardware name: Freescale i.MX7 Dual (Device Tree)
    [   29.568350] [<8010e09c>] (unwind_backtrace) from [<8010af48>] (show_stack+0x10/0x14)
    [   29.576232] [<8010af48>] (show_stack) from [<80901f64>] (dump_stack+0x90/0xa4)
    [   29.583585] [<80901f64>] (dump_stack) from [<80123e40>] (__warn+0xbc/0xd8)
    [   29.590582] [<80123e40>] (__warn) from [<80123ee0>] (warn_slowpath_fmt+0x84/0x94)
    [   29.598197] [<80123ee0>] (warn_slowpath_fmt) from [<8063ded4>] (i2c_transfer+0xfc/0x108)
    [   29.606430] [<8063ded4>] (i2c_transfer) from [<80584cfc>] (regmap_i2c_read+0x4c/0x68)
    [   29.614399] [<80584cfc>] (regmap_i2c_read) from [<80580fd4>] (_regmap_raw_read+0xec/0x150)
    [   29.622809] [<80580fd4>] (_regmap_raw_read) from [<80581070>] (_regmap_bus_read+0x38/0x60)
    [   29.631218] [<80581070>] (_regmap_bus_read) from [<8058022c>] (_regmap_read+0x60/0xb8)
    [   29.639273] [<8058022c>] (_regmap_read) from [<80580620>] (_regmap_update_bits+0x8c/0xc4)
    [   29.647594] [<80580620>] (_regmap_update_bits) from [<80581570>] (regmap_update_bits_base+0x4c/0x70)
    [   29.695765] [<80581570>] (regmap_update_bits_base) from [<8058bec8>] (rn5t618_trigger_poweroff_sequence+0x5c/0x64)
    [   29.747773] [<8058bec8>] (rn5t618_trigger_poweroff_sequence) from [<8058bedc>] (rn5t618_restart+0xc/0x2c)
    [   29.797551] [<8058bedc>] (rn5t618_restart) from [<801424d4>] (notifier_call_chain+0x48/0x84)
    [   29.846282] [<801424d4>] (notifier_call_chain) from [<8014254c>] (atomic_notifier_call_chain+0x1c/0x24)
    [   29.896233] [<8014254c>] (atomic_notifier_call_chain) from [<80109aa0>] (machine_restart+0x78/0x7c)
    [   29.946145] [<80109aa0>] (machine_restart) from [<80143d44>] (__do_sys_reboot+0xf8/0x1bc)
    [   29.995220] [<80143d44>] (__do_sys_reboot) from [<80101000>] (ret_fast_syscall+0x0/0x54)
    [   30.044494] Exception stack(0x8c05ffa8 to 0x8c05fff0)
    [   30.070013] ffa0:                   00478bc0 00000000 fee1dead 28121969 01234567 01234567
    [   30.118705] ffc0: 00478bc0 00000000 00000000 00000058 00000003 00000000 00000000 004785fc
    [   30.167128] ffe0: 00000058 7ed4cc6c 76d15e35 76c9abe6
    [   30.192059] ---[ end trace 90a6992ed82142da ]---
    

The same issue due to missing atomic I2C handler on 5.1.0.

  1. Small issue with DT:

    [    0.001524] arch_timer: multiple nodes in dt, skipping
    

Looks like timer is defined twice in the root of DT / and in /soc . One time in imx7s.dtsi, and the 2nd time in imx7d.dtsi, which includes imx7s.dtsi.

Hi @Edward

Thanks for writing to the Toradex Community!

This is known bug with handling of Watchdog driver, which will be corrected in near Future.

Best regards,
Jaski

Hi @jaski.tx,

Are you sure it’s due to Watchdog? New version of this RNT5xxx PMIC uses atomic transfer handler from I2C driver, which current Toradex kernel lacks in i2c-imx.c driver. I tried fixing it my self using i2c-imx.c from other source. Reboot issue went away. So are you sure it’s watchdog issue?

Regards,
Edward

Yes, we are using the PMIC Watchdog as Watchdog for iMX7. Perfect that you find a solution. We got a fix which should be integrated in our nightly builds.

Best regards,
Jaski

Hi @jaski.tx

Thank you very much for fixes.
Yes, sorry, this PMIC is multifunction device including watchdog.

Best Regards,
Edward

You are welcome.

Best regards,
Jaski

HI @pravin

You will need this patch for the kernel.

Best regards,
Jaski

Do you mind sharing this device tree patch. i have same problem with my imx7d-colibri-emmc-eval-v3.dtb

Thanks Jaski. I used this to backport and it did fix my patched kernel based on Toradex imx7d-colibri-emmc-eval.

Perfect that your issue is solved.

Best regards,
Jaski