u-boot-brain/arch/arm/mach-imx
Igor Opaniuk c0f037f6a2 mach-imx: bootaux: elf firmware support
Currently imx-specific bootaux command doesn't support ELF format
firmware for Cortex-M4 core.

This patches introduces a PoC implementation of handling elf firmware
(load_elf_image_phdr() was copy-pasted from elf.c just for PoC).
ELF64 binaries isn't supported yet.

This has the advantage that the user does not need to know to which
address the binary has been linked to. However, in order to handle
and load the elf sections to the right address, we need to translate the
Cortex-M4 core memory addresses to primary/host CPU memory
addresses (Cortex A7/A9 cores).

This allows to boot firmwares from any location with just using
bootaux, e.g.:
> tftp ${loadaddr} hello_world.elf && bootaux ${loadaddr}

Similar translation table can be found in the Linux remoteproc
driver [1].

[1] https://elixir.bootlin.com/linux/latest/source/drivers/remoteproc/imx_rproc.c

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2020-01-07 10:26:56 +01:00
..
imx8 common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
imx8m imx8m: fix rom version check to unbreak some B0 chips 2019-12-09 11:52:06 +01:00
mx2 ARM: imx: Fix typo in select option for ZMX25 2019-04-25 19:16:24 +02:00
mx3 Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mx5 common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
mx6 ARM: mx6: ddr: Add support for iMX6SX 2020-01-07 10:26:56 +01:00
mx7 mach-imx: bootaux: elf firmware support 2020-01-07 10:26:56 +01:00
mx7ulp mx7ulp: Add support for Embedded Artists COM board 2020-01-07 10:26:56 +01:00
mxs imx: Add support for i.MX28 based XEA board 2020-01-07 10:26:56 +01:00
cache.c common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
cmd_bmode.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_dek.c env: Drop environment.h header file where not needed 2019-08-11 16:43:41 -04:00
cmd_hdmidet.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cmd_nandbcb.c cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
cpu.c imx: cpu: restrict get_boot_device 2019-11-05 10:27:18 +01:00
ddrmc-vf610-calibration.c ddr: vybrid: Provide code to perform on-boot calibration 2019-02-15 12:16:50 +01:00
ddrmc-vf610-calibration.h ddr: vybrid: Provide code to perform on-boot calibration 2019-02-15 12:16:50 +01:00
ddrmc-vf610.c ddr: vybrid: Add calibration code to memory controler's (DDRMC) setup code 2019-02-15 12:16:50 +01:00
hab.c imx :hab: Add hab version command 2019-10-14 09:31:41 +02:00
i2c-mxv7.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
imx_bootaux.c mach-imx: bootaux: elf firmware support 2020-01-07 10:26:56 +01:00
init.c ARM: imx: Use IMX6_SRC_GPR10_BMODE instead of magic number 2019-11-03 17:04:16 +01:00
iomux-v3.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Kconfig tools/imximage: share DCD information via Kconfig 2019-12-27 12:55:59 +01:00
lowlevel.S imx: add lowlevel init for ARM64 2019-04-25 19:16:24 +02:00
mac.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile imx: add rom api support 2019-11-05 10:27:18 +01:00
misc.c imx: Fix potential lmb memory overwritten by stack 2019-01-28 20:35:47 +01:00
mkimage_fit_atf.sh imx: mkimage_fit_atf: Fix FIT image for correct boot order 2019-10-08 16:36:36 +02:00
mmc_env.c Revert "imx: mmc_env: update runtime SD/MMC boot env device" 2019-10-08 16:36:37 +02:00
mmdc_size.c imx: mmdc_size: Allow building it for i.MX7ULP 2019-10-14 09:31:41 +02:00
rdc-sema.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sata.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sip.c mach-imx: Adding new argument for SIP call interface 2019-11-03 17:04:16 +01:00
speed.c Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
spl_imx_romapi.c imx: add rom api support 2019-11-05 10:27:18 +01:00
spl_qspi.cfg ARM: imx: arch/arm/mach-imx/spl_qspi.cfg 2019-10-08 16:36:36 +02:00
spl_sd.cfg imx: replace CONFIG_SECURE_BOOT with CONFIG_IMX_HAB 2019-10-08 16:36:37 +02:00
spl.c imx: spl: use spl_board_boot_device for i.MX8MN 2019-11-05 10:27:18 +01:00
syscounter.c common: Move some time functions out of common.h 2019-12-02 18:23:11 -05:00
timer.c common: Move some time functions out of common.h 2019-12-02 18:23:11 -05:00
video.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00