Until recently we have been succesfully launching our M4 firmware from the /boot directory in the form of a bin file, setting the environt variable in uboot
setenv m4boot 'fatload mmc 0 ${loadaddr} m4_0.bin && bootaux ${loadaddr} 0'
However we have outgrown the space available in the m_text memory (TCM) so have moved const variables and strings into m_data2.
This results in an enormous, mostly empty bin file, so we want to load the M4 executable from an axf file.
However
Colibri iMX8X # fatload mmc 0 ${loadaddr} text_ndb.axf
197320 bytes read in 34 ms (5.5 MiB/s)
Colibri iMX8X # bootaux ${loadaddr} 0
Power on aux core 0
Copy image from 0x89000000 to 0x34fe0000
Start M4
bootaux complete
doesn’t work (the result is a device reboot).
fatload appears to work, and loads the file.
I assume the problem is that nothing is actually interpretting the elf format, and placing the data into the correct places in memory, and the raw data in the file is just being placed in memory.
So, first, I am assuming this is possible - is it ? I’ve seen various posts mentioning this approach although it’s not clear if they are working.
I’ve seen bootelf but our uboot doesn’t have this.
Can bootaux intepret and load the elf data ? Should the fatload be given a different address to load the elf data to initially ?
´U-Boot 2020.04-5.5.0-devel+git.ebd108076039 (Oct 26 2021 - 09:33:45 +0000)´