[U-Boot] [PATCH v7 00/13] Cleaner MTD devices management

Miquel Raynal miquel.raynal at bootlin.com
Fri Aug 31 14:57:28 UTC 2018


The introduction of the SPI-NAND framework and, more widely, the
support of non parallel-NOR, parallel-NAND and SPI-NOR has shown that
extending U-Boot MTD devices/partitions handling was not
straightforward at all. While this first series [1] is a great step
forward, it is not actually usable due to purely software
limitations.

This series intends to:
* Do some cleanup in the MTD layer
* Add a new 'mtd' command that should replace in the future all the
  MTD-specific commands like 'nand' and 'sf'.
* Make deep changes in the partition handling by introducing a new way
  of managing MTD partitions (that soon will be also sent to the Linux
  kernel), and adding a generic 'mtdparts' environment variable parser
  in prevision of the 'mtdparts' command removal.
* The UBI command is also updated to stop messing with partitions that
  should just be declared in the 'mtdparts' variable.

People can now do the following without 'mtdids':
# setenv mtdparts "nor0=1m(some),-(more);spi-nand0=-(all)"

Partitions are visible with:
# mtd list

And UBI support is available with (for the above example):
# ubi part all

At least these two missing features will be added with further changes:
* 'mtd write' on NANDs should use by default the trimffs option (to
  avoid writing empty pages).
* 'nand bad' is a great way to know the list of detected bad-blocks
  and could be implemented in 'mtd'.

Of course, this series only applies on top of [1].

[1] https://lists.denx.de/pipermail/u-boot/2018-August/336780.html


Thanks,
Miquèl


Miquel Raynal (13):
  lib: strto: parse all lowercase metric prefixes in ustrtoul[l]
  lib: strto: fix metric suffix parsing in strtoul[l]
  mtd: Kconfig: remove MTD_PARTITIONS duplicated symbol
  cmd: mtdparts: accept spi-nand devices
  cmd: mtdparts: remove mandatory 'mtdparts=' prefix
  mtd: uclass: add probe function
  mtd: uclass: add a generic 'mtdparts' parser
  mtd: uclass: search for an equivalent MTD name with the mtdids
  mtd: mtdpart: implement proper partition handling
  cmd: mtd: add 'mtd' command
  cmd: mtdparts: try to probe the MTD devices as a fallback
  cmd: ubi: clean the partition handling
  cmd: mtdparts: describe as legacy

 cmd/Kconfig                    |  22 +-
 cmd/Makefile                   |   1 +
 cmd/mtd.c                      | 517 ++++++++++++++++++++++++++
 cmd/mtdparts.c                 |  46 ++-
 cmd/ubi.c                      | 100 ++---
 drivers/mtd/Kconfig            |   3 -
 drivers/mtd/Makefile           |   2 +-
 drivers/mtd/mtd-uclass.c       |  16 +
 drivers/mtd/mtdcore.c          |   2 +
 drivers/mtd/mtdpart.c          | 661 +++++++++++++++++++++------------
 include/jffs2/load_kernel.h    |   7 +-
 include/linux/mtd/mtd.h        |  31 ++
 include/linux/mtd/partitions.h |   5 +-
 include/mtd.h                  |   3 +
 lib/strto.c                    |  26 +-
 15 files changed, 1093 insertions(+), 349 deletions(-)
 create mode 100644 cmd/mtd.c

-- 
2.17.1



More information about the U-Boot mailing list