On an i.mx7d, I can't get reloading the m4 from linux to work. I'm trying the utility from this blog post:
The problem is that swapping between 2 different m4 binaries does not work (reloading the same binary repeatedly does work). I'm using a stock sabre board and demo examples from the nxp bsp, so hopefully this will be easy to reproduce.
Setup to reproduce the issue:
i.mx7d sabre board with imx7d-sdb-m4 device tree
Copy these files to the sabre board:
m4fwloader binary from the above blog post
hello_world_ocram.bin example from nxp's FreeRTOS BSP
hello_world_2.bin, a second m4 binary that has one extra printf() call. Replace the hello_world main.c with the attached and rebuild hello_world_ocram. Rename the binary"hello_world_2.bin"
Boot linux and run these commands:
./m4fwloader /path/to/hello_world_2.bin 0x910000
./m4fwloader /path/to/hello_world_ocram.bin 0x910000
After the first command, the m4 starts, and the messages print to the terminal.
After the second command, the m4 will not start.
Original Attachment has been moved to: main.c.zip