Introduce mtd-peb API

Sascha Hauer s.hauer at pengutronix.de
Tue Mar 15 04:15:18 PDT 2016


The following series introduces and makes use of the mtd-peb API.

Raw Nand devices are best handled in a eraseblock oriented way. Also
these devices need a proper bad block handling. The regular mtd API
is stream oriented (at least for read/write). Using these functions
includes unhandy use of 64bit arithmetics and handling erasing blocks
and bad blocks requires us to align the offset back to block boundaries.

The UBI IO layer already has a nice API to handle Nand blockwise. This
series strips the API out of the UBI code and makes it available for other
users. It's names the mtd-peb API (peb for Physical Erase Block). UBI
and ubiformat are converted to this API in this series. Another user
will be the i.MX internal nand update code which is converted in another
series.

Since UBI and ubiformat now share more code this series makes the image
a little smaller. Hurray, it's been some time since this last happened.

Sascha

----------------------------------------------------------------
Sascha Hauer (16):
      mtd: Add support for marking blocks as good
      mtd: nand: Add option to print bbt in nand command
      mtd: mtdpart: Add oob_read function
      mtd: Introduce function to get mtd type string
      mtd: rename mtd_all_ff -> mtd_buf_all_ff
      mtd: Introduce mtd_check_pattern
      mtd: Introduce mtd-peb API
      ubiformat: Use mtd-peb API
      remove now unused libmtd
      mtd: ubi: Use mtd_all_ff/mtd_check_pattern
      mtd: ubi: Use mtd_peb_check_all_ff
      mtd: ubi: Use mtd_peb_torture
      mtd: ubi: Use mtd_peb_read
      mtd: ubi: Use mtd_peb_write
      mtd: ubi: Use mtd_peb_erase
      mtd: ubi: Make debug options configurable

 commands/Kconfig             |   1 -
 commands/nand.c              |  79 +++++--
 commands/ubiformat.c         | 191 +++++++--------
 drivers/mtd/Kconfig          |   9 +
 drivers/mtd/Makefile         |   2 +-
 drivers/mtd/core.c           |  67 +++++-
 drivers/mtd/mtdconcat.c      |  24 ++
 drivers/mtd/nand/nand_base.c |  61 ++++-
 drivers/mtd/partition.c      |  38 +++
 drivers/mtd/peb.c            | 537 +++++++++++++++++++++++++++++++++++++++++++
 drivers/mtd/ubi/Kconfig      |  13 ++
 drivers/mtd/ubi/attach.c     |   2 +-
 drivers/mtd/ubi/debug.h      |  51 +---
 drivers/mtd/ubi/io.c         | 415 ++-------------------------------
 drivers/mtd/ubi/misc.c       |  19 --
 drivers/mtd/ubi/ubi.h        |   2 -
 drivers/mtd/ubi/wl.c         |   5 -
 fs/devfs-core.c              |   1 +
 include/linux/mtd/mtd-abi.h  |   1 +
 include/linux/mtd/mtd.h      |   6 +-
 include/linux/mtd/nand.h     |   2 +
 include/mtd/libmtd.h         | 149 ------------
 include/mtd/libscan.h        |   3 +-
 include/mtd/libubigen.h      |   4 +-
 include/mtd/mtd-peb.h        |  21 ++
 lib/Kconfig                  |   3 -
 lib/Makefile                 |   1 -
 lib/libmtd.c                 | 368 -----------------------------
 lib/libscan.c                |  30 +--
 lib/libubigen.c              |  23 +-
 30 files changed, 994 insertions(+), 1134 deletions(-)
 create mode 100644 drivers/mtd/peb.c
 delete mode 100644 include/mtd/libmtd.h
 create mode 100644 include/mtd/mtd-peb.h
 delete mode 100644 lib/libmtd.c



More information about the barebox mailing list