All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 0/3] imx: bootaux elf firmware support
Date: Mon, 3 Apr 2017 13:20:24 +0200	[thread overview]
Message-ID: <20170403132024.514307fd@jawa> (raw)
In-Reply-To: <20170329195827.6217-1-stefan@agner.ch>

Hi Stefan,

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

> From: Stefan Agner <stefan.agner@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 #

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?

> 
> 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.

> 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.

> 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
> 




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

  parent reply	other threads:[~2017-04-03 11:20 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-29 19:58 [U-Boot] [PATCH 0/3] imx: bootaux elf firmware support Stefan Agner
2017-03-29 19:58 ` [U-Boot] [PATCH 1/3] imx: imx-common: move aux core image parsing to common code Stefan Agner
2017-03-29 19:58 ` [U-Boot] [PATCH 2/3] imx: imx-common: add elf firmware support Stefan Agner
2017-03-29 19:58 ` [U-Boot] [PATCH 3/3] ARM: vf610: add auxiliary core boot support Stefan Agner
2017-04-03 11:20 ` Lukasz Majewski [this message]
2017-04-03 21:36   ` [U-Boot] [PATCH 0/3] imx: bootaux elf firmware support Stefan Agner
2017-04-03 22:07     ` Marek Vasut
2017-04-03 22:42       ` Stefan Agner
2017-04-03 23:34         ` Marek Vasut
2017-04-04  0:02           ` Stefan Agner
2017-04-04  8:46             ` Lukasz Majewski
2017-04-04  9:22             ` Marek Vasut
2017-04-04 17:57               ` Stefan Agner
2017-04-04 18:38                 ` Marek Vasut
2017-04-04 19:45                   ` Stefan Agner
2017-04-04 20:17                     ` Marek Vasut
2017-04-04 21:39                       ` Stefan Agner
2017-04-04  8:25       ` Lukasz Majewski
2017-04-04  8:23     ` Lukasz Majewski
2017-04-04 18:59       ` Stefan Agner
2017-04-05 15:15         ` Lukasz Majewski
2017-04-05 18:20           ` Stefan Agner
2017-04-05 19:10             ` Tom Rini
2017-04-05 19:54               ` Lukasz Majewski
2017-04-05 19:56               ` Stefan Agner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170403132024.514307fd@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.