Hi @rafael.tx
can you explain how I can add the argument clk-imx8mp.mcore_booted=1
to the kernel command line?
Should I do this with u-boot customization?
Or with TorizonCore Builder?
I add the following lines to tcbuild.yaml
customization:
# Customization section items.
kernel:
arguments:
# prevents Linux from disabling the root clock of the Cortex M7
- clk-imx8mp.mcore_booted=1
and if I run sudo tdx-info
I get
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/277551d6531e8143bfac04e4f70fecf5f84b7499d333e44b48a9617b3a635802/0 clk-imx8mp.mcore_booted=1
so I image the parameter is passed in the proper way.
But when I try to run M7 I get
[ 6849.243922] remoteproc remoteproc0: powering up imx-rproc
[ 6849.245325] remoteproc remoteproc0: Booting fw image firmware_imxcm7.elf, size 1251068
[ 6849.245428] imx-rproc imx8mp-cm7: map memory: 00000000b756f985+100000
[ 6849.245466] imx-rproc imx8mp-cm7: map memory: 000000005015e6c2+8000
[ 6849.245476] imx-rproc imx8mp-cm7: map memory: 00000000ad4b4323+8000
[ 6849.245484] imx-rproc imx8mp-cm7: map memory: 000000009895b7cc+1000000
[ 6849.245501] remoteproc remoteproc0: da = 0x80000000 len = 0x2a8 va = 0x00000000d40f8f5d
[ 6849.245509] remoteproc remoteproc0: da = 0x80000400 len = 0x134e8 va = 0x000000000076d005
[ 6849.245586] remoteproc remoteproc0: da = 0x800138e8 len = 0x29c88 va = 0x00000000bcbb84d2
[ 6849.245628] remoteproc remoteproc0: da = 0x80200000 len = 0x100000 va = 0x000000008633db6d
[ 6849.758963] remoteproc0#vdev0buffer: assigned reserved memory node vdevbuffer@55400000
[ 6849.869243] imx-rproc imx8mp-cm7: imx_rproc_kick: failed (0, err:-62)
[ 6849.875703] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 6849.875785] remoteproc0#vdev0buffer: registered virtio0 (type 7)
[ 6849.875794] remoteproc remoteproc0: remote processor imx-rproc is now up
and I see no output from M7 debug UART (as it should be).
I see the message
[ 6849.869243] imx-rproc imx8mp-cm7: imx_rproc_kick: failed (0, err:-62)
and it seems strange to me.
If I try
# cat /sys/class/remoteproc/remoteproc0/state
I get
running
but this is strange, since I got no output from UART.
I can add one thing: my CM7 firmware donesn’t run from TCM, but from DDR.
I changed the linker of the firmware in the proper way.
Amnd so my question is: how can remoteproc know where is the right value for the Program Counter PC?
I think that maybe this PC is not set and so it has a default value of 0x7e0000
which is inside TCM.
And so remoteproc thinks it’s running, but from the wrong PC.
I found this topic on NXP and it’s similar to what I see.
Any suggestion?