mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Clement Leger <cleger@kalray.eu>
To: Sascha Hauer <s.hauer@pengutronix.de>, barebox@lists.infradead.org
Cc: Clement Leger <cleger@kalray.eu>,
	Oleksij Rempel <linux@rempel-privat.de>
Subject: [PATCH v6 0/8] elf: add better bootm support
Date: Fri, 12 Jun 2020 09:10:28 +0200	[thread overview]
Message-ID: <20200612071036.27864-1-cleger@kalray.eu> (raw)

Currently, when booting an elf file using "bootm /dev/mtdx", bootm will
simply pass the file to the bootm handler and the read done on it will
read the entire flash partition. This series starts by some cleanup and
then modify the elf loader to load the elf file without copying the whole
elf file to an intermediate buffer. Only the elf header is copied in
order to parse the elf file into a list of segment and then, the segments
are loaded directly from the file.

A special handling for the elf file is also added in bootm data to allow
using directly the elf file structure. Finally the mips bootm handler is
modified to use bootm_load_os directly instead of manual elf loading.

Compilation for both mips and arm has been tested but run on qemu-malta was not
possible. Changes have been tested on kvx architecture for which bootm support
has been added and will be submitted.

Changes v5 -> v6
 - Add missing elf boundaries computation patch

Changes v4 -> v5
 - Rework elf loading to load from file rather than a buffer
 - Use calloc instead of xzalloc in elf file loading
 - Add check of program headers in elf check

Changes v3 -> v4
 - Fix init of elf entry address to be used by bootm_load_elf

Changes v2 -> v3
 - Integrate elf loading in bootm_load_os
 - Add patch to remove now unused elf_load_image/elf_release_image
 - Use malloc instead of xmalloc and check return value

Changes v1 -> v2
 - Add BOOTM_ELF config to select elf support and add checks in code
 - Add an elf_get_mem_size function to avoid computing elf size in bootm.c
 - Use xmalloc and read_full in elf_open instead of xzalloc/read
 - Fix data->elf NULL reset
 - Remove elf struct entirely from mips bootm code

Clement Leger (8):
  common: elf: add computation of elf boundaries
  common: elf: fix warning on 32 bits architectures
  common: elf: use calloc instead of xzalloc
  common: elf: check number of elf program headers
  common: elf: load elf directly from file
  common: elf: add elf_open, elf_close and elf_load
  common: bootm: add support for elf file loading
  mips: lib: bootm: use bootm elf loading capabilities

 arch/mips/lib/bootm.c |  25 ++---
 common/Kconfig        |   8 ++
 common/bootm.c        |  33 ++++++
 common/elf.c          | 231 +++++++++++++++++++++++++++++++++++-------
 include/bootm.h       |   3 +
 include/elf.h         |  16 ++-
 6 files changed, 261 insertions(+), 55 deletions(-)

-- 
2.17.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

             reply	other threads:[~2020-06-12  7:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-12  7:10 Clement Leger [this message]
2020-06-12  7:10 ` [PATCH v6 1/8] common: elf: add computation of elf boundaries Clement Leger
2020-06-12  7:10 ` [PATCH v6 2/8] common: elf: fix warning on 32 bits architectures Clement Leger
2020-06-12  7:10 ` [PATCH v6 3/8] common: elf: use calloc instead of xzalloc Clement Leger
2020-06-12  7:10 ` [PATCH v6 4/8] common: elf: check number of elf program headers Clement Leger
2020-06-12  7:10 ` [PATCH v6 5/8] common: elf: load elf directly from file Clement Leger
2020-06-12  7:10 ` [PATCH v6 6/8] common: elf: add elf_open, elf_close and elf_load Clement Leger
2020-06-12  7:10 ` [PATCH v6 7/8] common: bootm: add support for elf file loading Clement Leger
2020-06-12  7:10 ` [PATCH v6 8/8] mips: lib: bootm: use bootm elf loading capabilities Clement Leger
2020-06-12  7:41 ` [PATCH v6 0/8] elf: add better bootm support Oleksij Rempel
2020-06-12  7:44   ` Clément Leger
2020-06-15 14:15 ` Sascha Hauer

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=20200612071036.27864-1-cleger@kalray.eu \
    --to=cleger@kalray.eu \
    --cc=barebox@lists.infradead.org \
    --cc=linux@rempel-privat.de \
    --cc=s.hauer@pengutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox