OK, that does help. IMO the documentation could be improved by placing that info panel after the heading rather than its current placement (or linking both repositories in the snippet below), because it is off the bottom of the screen for a typical 1920x1080 resolution and the immediate sentence I saw and went to while skimming for a new repo URL was
Toradex provides source files of Device Trees and Device Tree Overlays for the add-on products available in the webshop. For information about these overlays, see the Toradex Device Tree Overlays repository on Github and …
Hello @bw908 ,
thanks for your feedback. We’ll pass your suggestion to the development webpage team.
Did the answer from @jeremias.tx solve your issue? If so, please mark his answer as a solution.
I am still having problems getting the system to boot 6.2.x with any sort of non-builtin devicetree.
I have checked out the kernel and devicetree repos per the article and am attempting to build the OS with the reference verdin-nonwifi-dev.dts file and no filesystem customizations of any kind. My tcbuild.yaml has this:
easy-installer:
local: torizon-core-docker-verdin-imx8mp-Tezi_6.2.0+build.2.tar
[snip]
device-tree:
# >> Directories where to look for include files.
include-dirs:
- linux/include/
# >> Custom device tree source:
custom: my_dts/imx8mp-verdin-nonwifi-dev.dts
(The my_dts folder does contain the additional imx8mp-verdin dtsi files required that are not in include)
However, it fails to boot. The serial port shows the following in the output. The RCU stall message repeats several times before the system eventually watchdogs and resets 3 times before rolling back to the previous 6.2 build (which was made with the customization section completely commented out).
device_remove: Device 'mmc@30b60000.blk' failed to remove, but children are gone
[ 0.859661] clk: failed to reparent gic to sys_pll2_500m: -16
[ 0.882406] imx-drm display-subsystem: no available port
[ 1.018168] pca953x 3-0021: failed writing register
[ 22.297538] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 22.303651] rcu: 2-...0: (0 ticks this GP) idle=b15/1/0x4000000000000000 softirq=48/48 fqs=1049
The imx8mp-verdin-nonwifi-dev.dts device tree that you’re applying it’s unmodified correct? Also did you copy it from the same Linux source that you just cloned?
Also, here is a successful boot (after rollback) to a deploy without the ‘customization’ section:
The missing hardware errors are expected, this is a custom carrier board but there is nothing incompatible with the dev board dts.
U-Boot SPL 2020.04-5.7.0+git.33bb8e968332 (Jan 01 1970 - 00:00:00 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
Training FAILED
Quad die, dual rank failed, attempting dual die, single rank configuration.
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
Find FIT header 0x4803a600, size 969
Need continue download 1024
Download 840704, total fit 842160
NOTICE: BL31: v2.2(release):toradex_imx_5.4.70_2.3.0-g2fa8c6349e
NOTICE: BL31: Built : 00:00:00, Jan 1 1970
U-Boot 2020.04-5.7.0+git.33bb8e968332 (Jan 01 1970 - 00:00:00 +0000)
CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 46C
Reset cause: POR
DRAM: 4 GiB
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Model: Toradex Verdin iMX8M Plus Quad 4GB IT V1.1A, Serial# 07321331
MISSING TORADEX CARRIER CONFIG BLOCKS
BuildInfo:
- ATF 2fa8c63
- U-Boot 2020.04-5.7.0+git.33bb8e968332
flash target is MMC:2
Net: eth1: ethernet@30be0000, eth0: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Saving Environment to MMC... Writing to MMC(2)... OK
Normal Boot
Warning: Bootlimit (3) exceeded. Using altbootcmd.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2(part 0) is current device
Scanning mmc 2:1...
Found U-Boot script /boot.scr
973 bytes read in 6 ms (158.2 KiB/s)
## Executing script at 47000000
Saving Environment to MMC... Writing to MMC(2)... OK
5474 bytes read in 13 ms (411.1 KiB/s)
Rollback enabled. Booting previously deployed version.
89643 bytes read in 16 ms (5.3 MiB/s)
118 bytes read in 14 ms (7.8 KiB/s)
Applying Overlay: verdin-imx8mp_hdmi_overlay.dtbo
2219 bytes read in 19 ms (113.3 KiB/s)
Applying Overlay: verdin-imx8mp_dsi-to-hdmi_overlay.dtbo
3165 bytes read in 19 ms (162.1 KiB/s)
Applying Overlay: verdin-imx8mp_spidev_overlay.dtbo
561 bytes read in 18 ms (30.3 KiB/s)
13355717 bytes read in 57 ms (223.5 MiB/s)
Uncompressed size: 35342848 = 0x21B4A00
11523429 bytes read in 50 ms (219.8 MiB/s)
## Flattened Device Tree blob at 44000000
Booting using the fdt blob at 0x44000000
Loading Device Tree to 00000000fdbba000, end 00000000fdbf2fff ... OK
Starting kernel ...
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
unable to select a mode
device_remove: Device 'mmc@30b60000.blk' failed to remove, but children are gone
[ 0.863821] clk: failed to reparent gic to sys_pll2_500m: -16
[ 1.008883] pca953x 3-0021: failed writing register
[ 2.315606] +V3.3_SW: Underflow of regulator enable count
[ 2.525286] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 2.536983] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 2.545259] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
Starting version 250.5+
[ 4.155515] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 4.171902] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 4.180223] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
[ 4.271708] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 4.288613] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 4.296943] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
[ 5.129270] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 5.141466] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 5.149779] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
[ 5.237257] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 5.249237] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 5.257583] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
[ 5.391175] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@32c00000/mipi_dsi@32e60000 to encoder DSI-37: -517
[ 5.403237] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 5.411525] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517
[ 5.468218] ina2xx 3-0040: error configuring the device: -6
[ 5.495013] nau8822 3-001a: Failed to issue reset: -6
[ 5.740004] fsl-aud2htx 30cb0000.aud2htx: failed to pcm register
[ 5.770202] imx-hdmi sound-hdmi: snd_soc_register_card failed (-517)
[ 23.236421] The last update failed and you are in a rollback state.
[ 23.243106] Unfortunately the logs are unavailable, probably because the update failed before starting userspace applications.
TorizonCore 6.2.0+build.2 Maverick-MM-1 ttymxc2
Yes, and to confirm I just tried it by using the same path you did, which is in the kernel tree. Same result. Here is the full serial output, perhaps you see something I am missing.
U-Boot SPL 2020.04-5.7.0+git.33bb8e968332 (Jan 01 1970 - 00:00:00 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
Training FAILED
Quad die, dual rank failed, attempting dual die, single rank configuration.
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
Find FIT header 0x4803a600, size 969
Need continue download 1024
Download 840704, total fit 842160
NOTICE: BL31: v2.2(release):toradex_imx_5.4.70_2.3.0-g2fa8c6349e
NOTICE: BL31: Built : 00:00:00, Jan 1 1970
U-Boot 2020.04-5.7.0+git.33bb8e968332 (Jan 01 1970 - 00:00:00 +0000)
CPU: i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 40C
Reset cause: POR
DRAM: 4 GiB
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Model: Toradex Verdin iMX8M Plus Quad 4GB IT V1.1A, Serial# 07321331
MISSING TORADEX CARRIER CONFIG BLOCKS
BuildInfo:
- ATF 2fa8c63
- U-Boot 2020.04-5.7.0+git.33bb8e968332
flash target is MMC:2
Net: eth1: ethernet@30be0000, eth0: ethernet@30bf0000 [PRIME]
Fastboot: Normal
Saving Environment to MMC... Writing to MMC(2)... OK
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2(part 0) is current device
Scanning mmc 2:1...
Found U-Boot script /boot.scr
973 bytes read in 6 ms (158.2 KiB/s)
## Executing script at 47000000
5474 bytes read in 12 ms (445.3 KiB/s)
89643 bytes read in 17 ms (5 MiB/s)
14 bytes read in 14 ms (1000 Bytes/s)
13355717 bytes read in 55 ms (231.6 MiB/s)
Uncompressed size: 35342848 = 0x21B4A00
11523429 bytes read in 49 ms (224.3 MiB/s)
## Flattened Device Tree blob at 44000000
Booting using the fdt blob at 0x44000000
Loading Device Tree to 00000000fdbbb000, end 00000000fdbf3fff ... OK
Starting kernel ...
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x2 !
switch failed 1/183/0x0 !
switch failed 1/183/0x1 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
switch failed 1/183/0x0 !
unable to select a mode
device_remove: Device 'mmc@30b60000.blk' failed to remove, but children are gone
[ 0.862791] clk: failed to reparent gic to sys_pll2_500m: -16
[ 0.885320] imx-drm display-subsystem: no available port
[ 1.021755] pca953x 3-0021: failed writing register
[ 23.027358] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 23.033477] rcu: 0-...0: (1 GPs behind) idle=b0b/1/0x4000000000000000 softirq=51/52 fqs=840
[ 86.077365] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 86.083469] rcu: 0-...0: (1 GPs behind) idle=b0b/1/0x4000000000000000 softirq=51/52 fqs=3981
[ 149.127350] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 149.133454] rcu: 0-...0: (1 GPs behind) idle=b0b/1/0x4000000000000000 softirq=51/52 fqs=7133
[ 212.177355] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 212.183458] rcu: 0-...0: (1 GPs behind) idle=b0b/1/0x4000000000000000 softirq=51/52 fqs=10186
[ 243.687399] INFO: task kworker/u8:0:9 blocked for more than 122 seconds.
[ 243.694110] Not tainted 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore
[ 243.701091] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 243.708934] task:kworker/u8:0 state:D stack: 0 pid: 9 ppid: 2 flags:0x00000008
[ 243.717306] Workqueue: events_unbound deferred_probe_work_func
[ 243.723154] Call trace:
[ 243.725600] __switch_to+0x104/0x15c
[ 243.729190] __schedule+0x2f0/0x860
[ 243.732691] schedule+0x68/0x134
[ 243.735927] schedule_preempt_disabled+0x24/0x40
[ 243.740561] __mutex_lock.constprop.0+0x18c/0x56c
[ 243.745274] __mutex_lock_slowpath+0x14/0x20
[ 243.749567] mutex_lock+0x48/0x54
[ 243.752889] clk_prepare_lock+0x44/0xa0
[ 243.756734] clk_hw_create_clk+0xb8/0x190
[ 243.760763] of_clk_get_from_provider+0x34/0x40
[ 243.765303] of_clk_set_defaults+0xbc/0x3a0
[ 243.769500] platform_probe+0x3c/0xe0
[ 243.773171] really_probe+0xbc/0x46c
[ 243.776762] __driver_probe_device+0x114/0x190
[ 243.781218] driver_probe_device+0x40/0x100
[ 243.785409] __device_attach_driver+0xbc/0x160
[ 243.789873] bus_for_each_drv+0x78/0xd0
[ 243.793720] __device_attach+0xa8/0x1e4
[ 243.797570] device_initial_probe+0x14/0x20
[ 243.801765] bus_probe_device+0x9c/0xa4
[ 243.805607] deferred_probe_work_func+0x94/0xe4
[ 243.810153] process_one_work+0x1d4/0x480
[ 243.814176] worker_thread+0x13c/0x470
[ 243.817941] kthread+0x150/0x160
[ 243.821178] ret_from_fork+0x10/0x20
[ 243.824780] INFO: task kworker/u8:2:103 blocked for more than 123 seconds.
[ 243.831668] Not tainted 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore
[ 243.838641] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 243.846480] task:kworker/u8:2 state:D stack: 0 pid: 103 ppid: 2 flags:0x00000008
[ 243.854852] Workqueue: events_unbound async_run_entry_fn
[ 243.860184] Call trace:
[ 243.862632] __switch_to+0x104/0x15c
[ 243.866216] __schedule+0x2f0/0x860
[ 243.869731] schedule+0x68/0x134
[ 243.872972] schedule_preempt_disabled+0x24/0x40
[ 243.877608] __mutex_lock.constprop.0+0x18c/0x56c
[ 243.882322] __mutex_lock_slowpath+0x14/0x20
[ 243.886601] mutex_lock+0x48/0x54
[ 243.889929] clk_prepare_lock+0x44/0xa0
[ 243.893771] clk_get_rate+0x20/0x7c
[ 243.897277] imx6_pcie_probe+0x910/0xf4c
[ 243.901208] platform_probe+0x68/0xe0
[ 243.904878] really_probe+0xbc/0x46c
[ 243.908468] __driver_probe_device+0x114/0x190
[ 243.912924] driver_probe_device+0x40/0x100
[ 243.917124] __device_attach_driver+0xbc/0x160
[ 243.921577] bus_for_each_drv+0x78/0xd0
[ 243.925423] __device_attach_async_helper+0xac/0xfc
[ 243.930320] async_run_entry_fn+0x34/0x180
[ 243.934427] process_one_work+0x1d4/0x480
[ 243.938450] worker_thread+0x13c/0x470
[ 243.942209] kthread+0x150/0x160
[ 243.945446] ret_from_fork+0x10/0x20
[ 243.949047] INFO: task hwrng:215 blocked for more than 123 seconds.
[ 243.955319] Not tainted 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore
[ 243.962294] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 243.970139] task:hwrng state:D stack: 0 pid: 215 ppid: 2 flags:0x00000008
[ 243.978510] Call trace:
[ 243.980957] __switch_to+0x104/0x15c
[ 243.984542] __schedule+0x2f0/0x860
[ 243.988059] schedule+0x68/0x134
[ 243.991299] schedule_timeout+0x17c/0x1c0
[ 243.995314] wait_for_completion+0x80/0x120
[ 243.999514] caam_rng_read_one.constprop.0+0x250/0x3bc
[ 244.004665] caam_read+0x84/0xb0
[ 244.007920] hwrng_fillfn+0xec/0x1d0
[ 244.011507] kthread+0x150/0x160
[ 244.014744] ret_from_fork+0x10/0x20
[ 244.018338] INFO: task kworker/1:2:217 blocked for more than 123 seconds.
[ 244.025133] Not tainted 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore
[ 244.032105] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 244.039949] task:kworker/1:2 state:D stack: 0 pid: 217 ppid: 2 flags:0x00000008
[ 244.048323] Workqueue: events dbs_work_handler
[ 244.052779] Call trace:
[ 244.055226] __switch_to+0x104/0x15c
[ 244.058819] __schedule+0x2f0/0x860
[ 244.062317] schedule+0x68/0x134
[ 244.065553] schedule_preempt_disabled+0x24/0x40
[ 244.070186] __mutex_lock.constprop.0+0x18c/0x56c
[ 244.074899] __mutex_lock_slowpath+0x14/0x20
[ 244.079186] mutex_lock+0x48/0x54
[ 244.082510] clk_prepare_lock+0x44/0xa0
[ 244.086351] clk_round_rate+0x34/0x184
[ 244.090118] dev_pm_opp_set_rate+0xc0/0x270
[ 244.094312] set_target+0x30/0x40
[ 244.097640] __cpufreq_driver_target+0x1c4/0x340
[ 244.102269] od_dbs_update+0xc0/0x1a4
[ 244.105943] dbs_work_handler+0x40/0x7c
[ 244.109803] process_one_work+0x1d4/0x480
[ 244.113822] worker_thread+0x13c/0x470
[ 244.117587] kthread+0x150/0x160
[ 244.120824] ret_from_fork+0x10/0x20
[ 244.124414] INFO: task kworker/0:2:225 blocked for more than 123 seconds.
[ 244.131214] Not tainted 5.15.77-6.2.0+git.aa0ff7e3554e #1-TorizonCore
[ 244.138187] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 244.146026] task:kworker/0:2 state:D stack: 0 pid: 225 ppid: 2 flags:0x00000008
[ 244.154398] Workqueue: pm pm_runtime_work
[ 244.158427] Call trace:
[ 244.160874] __switch_to+0x104/0x15c
[ 244.164460] __schedule+0x2f0/0x860
[ 244.167962] schedule+0x68/0x134
[ 244.171201] schedule_timeout+0x98/0x1c0
[ 244.175132] msleep+0x30/0x44
[ 244.178115] hub_activate+0x870/0x920
[ 244.181786] hub_resume+0x3c/0x130
[ 244.185197] usb_resume_interface.part.0.isra.0+0x90/0x100
[ 244.190700] usb_suspend_both+0xd8/0x260
[ 244.194633] usb_runtime_suspend+0x34/0x8c
[ 244.198749] __rpm_callback+0x48/0x1a0
[ 244.202507] rpm_callback+0x6c/0x80
[ 244.206007] rpm_suspend+0x108/0x62c
[ 244.209597] __pm_runtime_suspend+0x5c/0xbc
[ 244.213792] usb_runtime_idle+0x40/0x5c
[ 244.217644] __rpm_callback+0x48/0x1a0
[ 244.221404] rpm_idle+0x198/0x2a4
[ 244.224728] pm_runtime_work+0xa4/0xd0
[ 244.228499] process_one_work+0x1d4/0x480
[ 244.232518] worker_thread+0x13c/0x470
[ 244.236276] kthread+0x150/0x160
[ 244.239519] ret_from_fork+0x10/0x20
[ 244.243111] Kernel panic - not syncing: hung_task: blocked tasks
[ 244.249124] SMP: stopping secondary CPUs
[ 245.253051] SMP: failed to stop secondary CPUs 0,3
[ 245.257851] Kernel Offset: disabled
[ 245.261343] CPU features: 0x00002001,20000846
[ 245.265704] Memory Limit: none
[ 245.268764] Rebooting in 5 seconds..
Are you suggesting it won’t be possible to field update devices to 6.x that were originally flashed with 5.x? That’d be somewhat concerning…
You can but not with just TorizonCore Builder. Upgrading between major software versions is not a simple process as there are a lot of differences between two major versions like 5.X and 6.X. Notably you’ll need to update the bootloader as well. More details on this process are specified on this page: Bootloader Updates in Torizon OS | Toradex Developer Center
Please read this page carefully since updating the bootloader is not a trivial process as you can imagine. Support for offline bootloader updates is yet to come.