|
The linker file to build a firmware running from DDR memory
(MCIMX7D_M4_ddr.ld) currently puts the firmware at the end of
the 512MiB boundary. That is not a valid memory area for the
Colibri iMX7S module (which comes with 256MiB of DDR memory).
In practise it actually does work because out-of-bound addresses
usually just mirror the content of the lower address, but it is
a behavior which should not be relied upon. This change moves
the firmware location to a valid location for all our modules
at the end of the 256MiB boundary (0x8ff00000, allows for a
firmware up to ~960kiB).
Furthermore, the VirtIO VRING offset is currently at the end of
the 1024MiB boundary. Again, due to the mirroring behavior this
worked in practise, but it should not be relied upon. Hence move
the VRING to the end of the 256MiB boundary too (0x8fff0000). The
firmware size has been choosen so that the VRING just fits after
the firmware.
Note that since the VRING offsets are hardcoded, this change needs
a corresponding change in the Linux kernel source:
arch/arm/mach-imx/imx_rpmsg.c (function imx_rpmsg_probe)
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|