Hello,
I followed the AN5317 on how to start the Cortex M7 of my IMX8MP custom board. The result is mixed and I need some clarifications on this
i. Starting firmware automatically by remote PROC driver during Linux Kernel boot time does not work for me. I tried all I can and read up similar issues on the formn but it still did not work.
After building the images and starting ´he linux image of my board, the cortex M7 is not started. It's state is offline. But the firmware name is the name of my binary as an elf format.
I checked the logs and extract from the log file is below:
Jan 1 00:00:06 vmr5-vlp4 user.err kernel: imx-rproc imx8mp-cm7: failed to find syscon
Jan 1 00:00:06 vmr5-vlp4 user.err kernel: imx-rproc imx8mp-cm7: mbox_request_channel_byname() could not locate channel named "txdb"
Jan 1 00:00:06 vmr5-vlp4 user.info kernel: imx-rproc imx8mp-cm7: No txdb, ret 0
Jan 1 00:00:06 vmr5-vlp4 user.info kernel: remoteproc remoteproc0: imx-rproc is available
Jan 1 00:00:06 vmr5-vlp4 user.warn kernel: remoteproc remoteproc0: Direct firmware load for spi_int_transfer_master.elf failed with error -2
Jan 1 00:00:06 vmr5-vlp4 user.info kernel: remoteproc remoteproc0: powering up imx-rproc
Jan 1 00:00:06 vmr5-vlp4 user.warn kernel: remoteproc remoteproc0: Direct firmware load for spi_int_transfer_master.elf failed with error -2
Jan 1 00:00:06 vmr5-vlp4 user.err kernel: remoteproc remoteproc0: request_firmware failed: -2
I tried looking into this log messages but I could not get the solution.
Please How can I start the firmware of the cortex M7 remotely using the PROC driver.
ii Booting firmware early using U-Boot and controlling firmware using SysFS interface :- this method works fine however I want to clarify, the command below
$ echo start > /sys/class/remoteproc/remoteproc0/state
It only works when the firmware was already started in the Cortex M7 using u-boot command? That means if the firmware is not started using u-boot command this option would not work? And why was this designed like this?
iii I need some clarity on the following instructions
cp.b ${loadaddr} 0x7e0000 0x3f938
bootaux 0x7e0000
According to section 6.1 of the application note the address 0x7e0000 is in the Cortext-A53, why do we copy the binary to cortex-A53 and not to the Cortex-M7?
Also the bootaux command communicates with the cortex-A53 and not Cortex-M7?
Thanks