public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v3 0/9] spl: Use common function for loading/parsing images
@ 2022-05-05 20:16 Sean Anderson
  2022-05-05 20:16 ` [PATCH v3 1/9] spl: Add generic spl_load function Sean Anderson
                   ` (9 more replies)
  0 siblings, 10 replies; 18+ messages in thread
From: Sean Anderson @ 2022-05-05 20:16 UTC (permalink / raw)
  To: Tom Rini, u-boot
  Cc: Stefan Roese, Marek Vasut, Simon Glass, Pali Rohár,
	Marek Behún, Sean Anderson, Jagan Teki,
	Nathan Barrett-Morrison

This series adds support for loading all image types (Legacy, FIT (with
and without LOAD_FIT_FULL), and i.MX) to the MMC, SPI, NOR, NET, FAT,
and EXT load methods. It does this by introducing a helper function
which handles the minutiae of invoking the proper parsing function, and
reading the rest of the image.

Hopefully, this will make it easier for load methods to support all
image types that U-Boot supports, without having undocumented
unsupported image types. I applied this to several loaders which were
invoking spl_load_simple_fit and/or spl_parse_image_header, but I did
not use it with others (e.g. DFU/RAM) which had complications in the
mix.

Here's some bloat-o-meter for j7200_evm_a72_defconfig with ext4 support
enabled:

add/remove: 1/0 grow/shrink: 2/4 up/down: 224/-236 (-12)
Function                                     old     new   delta
spl_load                                       -     176    +176
spl_fit_read                                  60     104     +44
spl_load_image_ext                           364     368      +4
spl_nor_load_image                           120     108     -12
spl_spi_load_image                           280     228     -52
spl_load_image_fat                           320     264     -56
spl_mmc_load                                 716     600    -116
Total: Before=264556, After=264544, chg -0.00%

ext4 support is +48 bytes, because the original image support was so
bare-bones (just legacy/raw images). For most boards with a few load
methods (where one of them isn't ext4), this series should be no bloat
or a net negative. However, in the worst case this series will add
150-180 bytes.

I have only tested EXT and MMC raw loaders. Please try booting your
favorite board with NOR/SPI flash or SPI falcon mode.

Changes in v3:
- Fix using ffs instead of fls
- Fix using not initializing bl_len when info->filename was NULL
- Fix failing on success

Changes in v2:
- Use reverse-xmas-tree style for locals in spl_simple_read. This is not
  complete, since overhead depends on bl_mask.
- Convert semihosting as well
- Consolidate spi_load_image_os into spl_spi_load_image

Sean Anderson (9):
  spl: Add generic spl_load function
  spl: Convert ext to use spl_load
  spl: Convert fat to spl_load
  spl: Convert mmc to spl_load
  spl: Convert net to spl_load
  spl: Convert nor to spl_load
  spl: Convert semihosting to spl_load
  spl: Convert spi to spl_load
  spl: spi: Consolidate spi_load_image_os into spl_spi_load_image

 common/spl/spl.c             |  68 ++++++++++++++++++
 common/spl/spl_ext.c         |  24 +++++--
 common/spl/spl_fat.c         |  40 +++--------
 common/spl/spl_mmc.c         |  73 ++-----------------
 common/spl/spl_net.c         |  24 ++-----
 common/spl/spl_nor.c         |  35 ++--------
 common/spl/spl_semihosting.c |  39 +++++------
 common/spl/spl_spi.c         | 131 ++++++++++-------------------------
 include/spl.h                |  30 +++++++-
 9 files changed, 193 insertions(+), 271 deletions(-)

-- 
2.35.1.1320.gc452695387.dirty


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-06-16 15:42 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-05 20:16 [PATCH v3 0/9] spl: Use common function for loading/parsing images Sean Anderson
2022-05-05 20:16 ` [PATCH v3 1/9] spl: Add generic spl_load function Sean Anderson
2022-06-16  9:42   ` Xavier Drudis Ferran
2022-06-16 15:41     ` Sean Anderson
2022-05-05 20:16 ` [PATCH v3 2/9] spl: Convert ext to use spl_load Sean Anderson
2022-05-05 20:16 ` [PATCH v3 3/9] spl: Convert fat to spl_load Sean Anderson
2022-05-06 16:18   ` Tom Rini
2022-05-05 20:16 ` [PATCH v3 4/9] spl: Convert mmc " Sean Anderson
2022-05-06 16:18   ` Tom Rini
2022-05-05 20:16 ` [PATCH v3 5/9] spl: Convert net " Sean Anderson
2022-05-06 16:19   ` Tom Rini
2022-05-05 20:16 ` [PATCH v3 6/9] spl: Convert nor " Sean Anderson
2022-05-05 20:16 ` [PATCH v3 7/9] spl: Convert semihosting " Sean Anderson
2022-05-05 20:16 ` [PATCH v3 8/9] spl: Convert spi " Sean Anderson
2022-05-06 16:18   ` Tom Rini
2022-05-06 16:28     ` Sean Anderson
2022-05-05 20:16 ` [PATCH v3 9/9] spl: spi: Consolidate spi_load_image_os into spl_spi_load_image Sean Anderson
2022-06-15 17:30 ` [PATCH v3 0/9] spl: Use common function for loading/parsing images Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox