In scarthgap, I cannot boot the imx8mm-lpddr4-evk machine when the IMX-MIPI-HDMI MIPI-DSI to HDMI adaptor card is connected to the EVK's DSI port. I tried out whinlatter, and the problem is not present there.
The boot log is:
imx8mm-lpddr4-evk-dsi-log.txt
The logs show this circular dependency:
[ 0.046854] /soc@0/bus@30800000/i2c@30a30000/adv7535@3d: Fixed dependency cycle(s) with /soc@0/bus@32c00000/mipi_dsi@32e10000
…
[ 0.047254] /soc@0/bus@32c00000/mipi_dsi@32e10000: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/adv7535@3d
If I see this correctly, the issue is that the ADV7535 isn't ready by the time the imx_sec_dsim_drv DSI controller tries to attach it as a bridge. This attachment is deferred, the ADV7535 later probes again, and this in turn triggers another attachment attempt, which is again defered etc. But I am not knowledgeable enough in kernel matters to be certain.
I did observe a problem in the U-Boot config though:
imx8mm-lpddr4-evk-dsi-problem-u-boot-config.txt
The nodes list contains devicetree nodes that the sr_ir_v2_cmd removes before handing the DTB to the kernel. And this list includes mipi_dsi@32e10000, lcdif@32e00000, display-subsystem, and adv7535@3d - nodes involved in the infinite loop. Why this removal is done is not known to me. But, it does not work properly, because bootcmd runs run sr_ir_v2_cmd;run distro_bootcmd;run bsp_bootcmd, bsp_bootcmd calls run mmcboot, which ultimately calls loadfdt, thus wiping any changes made by the sr_ir_v2_cmd.
A quick hack made the board boot, although without a video output signal:
setenv strip_nodes 'fdt addr ${fdt_addr_r}; for i in ${nodes}; do fdt rm ${i}; done'
setenv mmcboot 'echo Booting from mmc ...; run mmcargs; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loadaddr}; else if run loadfdt; then run strip_nodes; booti ${loadaddr} - ${fdt_addr_r}; else echo WARN: Cannot load the DT; fi; fi;`
boot
(fdtfile was explicitly set to imx8mm-evk-revb-qca-wifi.dtb in this config, but the problem also happens with the default imx8mm-evk.dtb file.)
Also: An unrelated typo in nodes is present: /audo-codec-bt-sco, which probably should be /audio-codec-bt-sco.
In scarthgap, I cannot boot the imx8mm-lpddr4-evk machine when the IMX-MIPI-HDMI MIPI-DSI to HDMI adaptor card is connected to the EVK's DSI port. I tried out whinlatter, and the problem is not present there.
The boot log is:
imx8mm-lpddr4-evk-dsi-log.txt
The logs show this circular dependency:
If I see this correctly, the issue is that the ADV7535 isn't ready by the time the imx_sec_dsim_drv DSI controller tries to attach it as a bridge. This attachment is deferred, the ADV7535 later probes again, and this in turn triggers another attachment attempt, which is again defered etc. But I am not knowledgeable enough in kernel matters to be certain.
I did observe a problem in the U-Boot config though:
imx8mm-lpddr4-evk-dsi-problem-u-boot-config.txt
The
nodeslist contains devicetree nodes that thesr_ir_v2_cmdremoves before handing the DTB to the kernel. And this list includes mipi_dsi@32e10000, lcdif@32e00000, display-subsystem, and adv7535@3d - nodes involved in the infinite loop. Why this removal is done is not known to me. But, it does not work properly, becausebootcmdrunsrun sr_ir_v2_cmd;run distro_bootcmd;run bsp_bootcmd,bsp_bootcmdcallsrun mmcboot, which ultimately callsloadfdt, thus wiping any changes made by thesr_ir_v2_cmd.A quick hack made the board boot, although without a video output signal:
(
fdtfilewas explicitly set toimx8mm-evk-revb-qca-wifi.dtbin this config, but the problem also happens with the defaultimx8mm-evk.dtbfile.)Also: An unrelated typo in
nodesis present:/audo-codec-bt-sco, which probably should be/audio-codec-bt-sco.