i.MX8QM: remoteproc: change maximum size allowed of the firmware to load on the cortex M4 cores

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8QM: remoteproc: change maximum size allowed of the firmware to load on the cortex M4 cores

527 Views
asconcepcion
Contributor I

Hi,

I've been using the remoteproc framework to load ELF files from some of the examples within the MCUXPRESSO SDK without no issues. However, there are some examples like the ones using the lwip stack that give this error:

[ 18.561040] remoteproc remoteproc0: bad phdr da 0x88000000 mem 0xd8
[ 18.567349] remoteproc remoteproc0: Failed to load program segments: -22
[ 18.574197] remoteproc remoteproc0: Boot failed: -22

I think the issue could be that the linker scripts for the lwip examples set bigger memory regions for the heap and stack (4KB for each, whereas other examples set them to 1KB), and remoteproc is somehow limited. If so, could you please indicate how to change that limitation? I've been taking a look at the device-tree file "imx8qm-mek.dts", as there are some interesting nodes related to memory (vdev0vring0, vdev0vring1...) but don't know if I am actually following the right direction.

Thanks in advance.

0 Kudos
1 Reply

487 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello,

The first thing that I would like to point is that this M4 examples are not meant to be run at the same time as the Cortex-A, from SDK example readme:

#### Please note this application can't support running with Linux BSP! ####

This example aims to show the basic usage of the IP's function, some of the used Pads/Resources are also used by Cortex-A core.

Regarding memory allocation you may take a look to the kernel documentation for this, the nodes that you're looking into are used for RPMSG.

https://source.codeaurora.org/external/imx/linux-imx/tree/Documentation/devicetree/bindings/remotepr...

https://source.codeaurora.org/external/imx/linux-imx/tree/Documentation/devicetree/bindings/reserved...

BR,
Aldo.

0 Kudos