Skip to content

imx: bootaux elf firmware support

Lukasz Majewski u-boot 1 version New

Get series with b4
b4 am 20170403132024.514307fd@jawa

Versions newest first

  1. v1 Latest0 of 3 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 3 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

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

Hi Stefan,

Thanks for your patch. Please allow me to share some ideas for improvements.

Quoted 8 lines

From: Stefan Agner <[email protected]>

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:

Quoted 11 lines

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 #

I can find some other platforms (not only IMX), which would benefit from this code - the generic 'bootaux' command.

One good example would to allow multiple binaries for different SoC Cores (e.g. 2x Cortex-A8) to be loaded and started by u-boot.

Hence, I'm wondering if you could make those patches usable for other platforms as well?

Quoted 3 lines

Note that the bootaux command retrieved the entry point (PC) from the elf binary.

Could you make this code flexible enough to handle not only elf binaries, but also other data (e.g. FPGA bitstreams)?

Maybe it would better to:
-------------------------

Embrace those binaries into FIT file (*.itb)? And allow multiple binaries loading? I'm thinking of work similar to one already did by Andre Przywara for SPL:

"[PATCH v3 00/19] SPL: extend FIT loading support" posted on 31.03.2017?

In that way we would "open" many new use cases, and other platforms (e.g. FPGA's, TI, etc) could benefit from it.
One solid use case is to load different Linux binaries (or/and bare metal programs) to different SoC cores.

The "meta data" (i.e. load address, data type, description), could be extracted from the FIT format (the code is already in u-boot).

IMHO, this is very generic approach.

Quoted 3 lines

Also all sections are translated to A7 addresses
in order to properly load the firmware sections into the appropriate locations.

This would require some tiny arch specific code.

Quoted 24 lines

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,
Quoted 3 lines

198 insertions(+), 34 deletions(-) create mode 100644 arch/arm/include/asm/arch-vf610/sys_proto.h

Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de