[PATCH v4 0/8] Add rkmtd command
Johan Jonker
jbx6244 at gmail.com
Mon Oct 16 00:30:01 CEST 2023
The command rkmtd creates a virtual block device to transfer
Rockchip boot block data to and from NAND with block orientated
tools like "ums" and "rockusb".
It uses the Rockchip MTD driver to scan for boot blocks and copies
data from the first block in a GPT formatted virtual disk.
Data must be written in U-boot "idbloader.img" format and start at
partition "loader1" offset 64. The data header is parsed
for length and offset. When the last sector is received
it erases up to 5 erase blocks on NAND and writes boot blocks
in a pattern depending on the NAND ID. Data is then verified.
When a block turns out bad the block header is discarded.
Changed V4:
Sort includes
Replace constant by define
Enable rkmtd command in sandbox defconfig
Fix minor things in test
Changed V3:
Add documetation
Add test
Split driver from command
Split header
Use devm_kzalloc
Remove out of memory debug
Restyle
Changed V2:
Rename to rkmtd
Johan Jonker (8):
mtd: nand: raw: rockchip_nfc: add NAND_SKIP_BBTSCAN option
rockchip: dm: prepare rkmtd UCLASS
rockchip: block: add rkmtd class and drivers
rockchip: block: blk-uclass: disable bounce buffer support for rkmtd
rockchip: cmd: add rkmtd command
rockchip: test: dm: add rkmtd test
rockchip: doc: add rkmtd.rst
rockchip: configs: sandbox: enable rkmtd command
cmd/Kconfig | 8 +
cmd/Makefile | 1 +
cmd/rkmtd.c | 204 +++++
configs/sandbox64_defconfig | 1 +
configs/sandbox_defconfig | 1 +
disk/part.c | 4 +
doc/board/rockchip/index.rst | 1 +
doc/board/rockchip/rkmtd.rst | 105 +++
drivers/block/Kconfig | 7 +
drivers/block/Makefile | 2 +
drivers/block/blk-uclass.c | 7 +-
drivers/block/rkmtd.c | 1135 +++++++++++++++++++++++++++
drivers/mtd/nand/raw/Kconfig | 9 +
drivers/mtd/nand/raw/rockchip_nfc.c | 3 +
include/dm/uclass-id.h | 1 +
include/rkmtd.h | 191 +++++
test/dm/Makefile | 1 +
test/dm/rkmtd.c | 200 +++++
18 files changed, 1878 insertions(+), 3 deletions(-)
create mode 100644 cmd/rkmtd.c
create mode 100644 doc/board/rockchip/rkmtd.rst
create mode 100644 drivers/block/rkmtd.c
create mode 100644 include/rkmtd.h
create mode 100644 test/dm/rkmtd.c
--
2.39.2
More information about the U-Boot
mailing list