[U-Boot] [PATCH 0/3] imx: bootaux elf firmware support

Stefan Agner stefan at agner.ch
Wed Mar 29 19:58:24 UTC 2017


From: Stefan Agner <stefan.agner at toradex.com>

This patchset enables to boot elf binaries on secondary Cortex-M
class cores available on i.MX 6SoloX/7Solo/7Dual. This makes
handling and loading firmwares much more convinient since all
information where the firmware has to be loaded to is contained in
the elf headers. A typical usage looks like this:

  Colibri iMX7 # tftp ${loadaddr} firmware.elf && bootaux ${loadaddr}
  Using FEC0 device
  TFTP from server 192.168.10.1; our IP address is 192.168.10.2
  Filename 'firmware.elf'.
  Load address: 0x80800000
  Loading: ##################################################  88.3 KiB
           5.4 MiB/s
  done
  Bytes transferred = 90424 (16138 hex)
  ## Starting auxiliary core at 0x1FFF8311 ...
  Colibri iMX7 #

Note that the bootaux command retrieved the entry point (PC) from
the elf binary. Also all sections are translated to A7 addresses
in order to properly load the firmware sections into the appropriate
locations. Also cache flushes is taken care of, so that there is no
manual dcache flush necessary anymore.

The NXP FreeRTOS BSP already generates elf binaries which can be
directly used with this elf binary support.

The last patch adds bootaux support for Vybrid.


Stefan Agner (3):
  imx: imx-common: move aux core image parsing to common code
  imx: imx-common: add elf firmware support
  ARM: vf610: add auxiliary core boot support

 arch/arm/cpu/armv7/mx6/soc.c                |  30 +++++---
 arch/arm/cpu/armv7/mx7/soc.c                |  34 ++++++---
 arch/arm/cpu/armv7/vf610/generic.c          |  42 +++++++++++
 arch/arm/imx-common/Kconfig                 |   2 +-
 arch/arm/imx-common/Makefile                |   4 +-
 arch/arm/imx-common/imx_bootaux.c           | 105 +++++++++++++++++++++++-----
 arch/arm/include/asm/arch-vf610/sys_proto.h |   8 +++
 arch/arm/include/asm/imx-common/sys_proto.h |   6 ++
 configs/colibri_vf_defconfig                |   1 +
 9 files changed, 198 insertions(+), 34 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-vf610/sys_proto.h

-- 
2.12.1



More information about the U-Boot mailing list