From: Johan Jonker <jbx6244@gmail.com>
To: kever.yang@rock-chips.com
Cc: sjg@chromium.org, philipp.tomsich@vrull.eu,
dario.binacchi@amarulasolutions.com,
michael@amarulasolutions.com, u-boot@lists.denx.de
Subject: [PATCH v3 7/7] rockchip: doc: add rkmtd.rst
Date: Thu, 12 Oct 2023 22:52:46 +0200 [thread overview]
Message-ID: <95fbbaee-2c74-a788-e016-52b269730b2e@gmail.com> (raw)
In-Reply-To: <9fffc997-fd13-eba2-3a73-a8e86816667c@gmail.com>
Add documention for Rockchip rkmtd virtual block device.
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
Changed V3:
New patch
---
doc/board/rockchip/index.rst | 1 +
doc/board/rockchip/rkmtd.rst | 105 +++++++++++++++++++++++++++++++++++
2 files changed, 106 insertions(+)
create mode 100644 doc/board/rockchip/rkmtd.rst
diff --git a/doc/board/rockchip/index.rst b/doc/board/rockchip/index.rst
index 0c377e9bbba0..9a87a035e95e 100644
--- a/doc/board/rockchip/index.rst
+++ b/doc/board/rockchip/index.rst
@@ -8,3 +8,4 @@ Rockchip
:maxdepth: 2
rockchip
+ rkmtd
diff --git a/doc/board/rockchip/rkmtd.rst b/doc/board/rockchip/rkmtd.rst
new file mode 100644
index 000000000000..1481380ba6c5
--- /dev/null
+++ b/doc/board/rockchip/rkmtd.rst
@@ -0,0 +1,105 @@
+.. SPDX-License-Identifier: GPL-2.0+
+.. Copyright (C) 2023 Johan Jonker <jbx6244@gmail.com>
+
+RKMTD
+=====
+
+Info
+----
+
+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.
+
+Limitations
+-----------
+
+- Support with CONFIG_ROCKCHIP_NAND MTD driver only.
+- Support for Rockchip boot block header type 1 only.
+- Pattern for listed NAND IDs only. (Logic still not disclosed by Rockchip)
+- The MTD framework driver data and NAND ID must be extracted at a lower level.
+
+Available rkmtd commands
+------------------------
+
+.. code-block:: bash
+
+ rkmtd bind <label> - bind RKMTD device
+ rkmtd unbind <label> - unbind RKMTD device
+ rkmtd info [<label>] - show all available RKMTD devices
+ rkmtd dev [<label>] - show or set current RKMTD device
+
+U-boot settings
+---------------
+
+Config to enable Rockchip MTD support:
+
+.. code-block:: bash
+
+ CONFIG_MTD=y
+ CONFIG_MTD_RAW_NAND=y
+ CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT=y
+ CONFIG_SYS_NAND_USE_FLASH_BBT=y
+ CONFIG_ROCKCHIP_NAND=y
+
+Option to keep existing NAND data unchanged:
+
+.. code-block:: bash
+
+ CONFIG_ROCKCHIP_NAND_SKIP_BBTSCAN=y
+
+Commands to enable:
+
+.. code-block:: bash
+
+ CONFIG_CMD_USB=y
+ CONFIG_CMD_RKMTD=y
+ CONFIG_CMD_ROCKUSB=y
+ CONFIG_CMD_USB_MASS_STORAGE=y
+
+Linux Host (PC) tool commands combinations that work
+----------------------------------------------------
+
+.. table::
+ :widths: 20 44
+
+ ==================== ============================================
+ U-boot Linux
+ ==================== ============================================
+ rkmtd bind 0
+ rockusb 0 rkmtd 0
+ upgrade_tool pl
+
+ upgrade_tool rl 64 512 idbloader_backup.img
+
+ upgrade_tool wl 64 idbloader.img
+
+ upgrade_tool rd
+
+ rkdeveloptool ppt
+
+ rkdeveloptool rl 64 512 idbloader_backup.img
+
+ rkdeveloptool wlx loader1 idbloader.img
+
+ rkdeveloptool wl 64 idbloader.img
+
+ rkdeveloptool rd
+
+ rkflashtool r 64 512 > idbloader_backup.img
+
+ rkflashtool w 64 512 < idbloader.img
+ ums 0 rkmtd 0
+ dd if=/dev/sda1 of=idbloader_backup.img
+
+ dd if=idbloader.img of=/dev/sda1
+ ==================== ============================================
--
2.39.2
next prev parent reply other threads:[~2023-10-12 21:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-12 20:49 [PATCH v3 0/7] Add rkmtd command Johan Jonker
2023-10-12 20:51 ` [PATCH v3 2/7] rockchip: dm: prepare rkmtd UCLASS Johan Jonker
2023-10-13 16:57 ` Simon Glass
2023-10-13 17:27 ` Johan Jonker
2023-10-12 20:51 ` [PATCH v3 3/7] rockchip: block: add rkmtd class and drivers Johan Jonker
2023-10-13 7:15 ` Kever Yang
2023-10-12 20:51 ` [PATCH v3 4/7] rockchip: block: blk-uclass: disable bounce buffer support for rkmtd Johan Jonker
2023-10-13 7:15 ` Kever Yang
2023-10-12 20:52 ` [PATCH v3 5/7] rockchip: cmd: add rkmtd command Johan Jonker
2023-10-13 15:14 ` Simon Glass
2023-10-12 20:52 ` [PATCH v3 6/7] rockchip: test: dm: add rkmtd test Johan Jonker
2023-10-13 7:15 ` Kever Yang
2023-10-14 18:19 ` Simon Glass
2023-10-12 20:52 ` Johan Jonker [this message]
2023-10-13 7:16 ` [PATCH v3 7/7] rockchip: doc: add rkmtd.rst Kever Yang
2023-10-13 15:15 ` Simon Glass
2023-10-14 4:21 ` [PATCH v3] rockchip: configs: sandbox: enable rkmtd command Johan Jonker
2023-10-14 18:20 ` Simon Glass
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=95fbbaee-2c74-a788-e016-52b269730b2e@gmail.com \
--to=jbx6244@gmail.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=kever.yang@rock-chips.com \
--cc=michael@amarulasolutions.com \
--cc=philipp.tomsich@vrull.eu \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.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