diff options
author | Tom Rini <trini@konsulko.com> | 2023-10-24 09:39:52 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-10-24 09:39:52 -0400 |
commit | 5cab3515f8c9796015739c1750b8933291c816be (patch) | |
tree | a661c61e1645b6d26c622b818afd09bacff3624b /doc | |
parent | 1b2a3d08c0440db4ee37d748b491673f1db0d384 (diff) | |
parent | d039b1b551e8dbb2c309d35bb19b7866caa4dcc1 (diff) | |
download | u-boot-5cab3515f8c9796015739c1750b8933291c816be.zip u-boot-5cab3515f8c9796015739c1750b8933291c816be.tar.gz u-boot-5cab3515f8c9796015739c1750b8933291c816be.tar.bz2 |
Merge tag 'u-boot-rockchip-20231024' of https://source.denx.de/u-boot/custodians/u-boot-rockchipWIP/24Oct2023
- Add Board: rk3588 NanoPC-T6, Orange Pi 5, Orange Pi 5 Plus;
- clk driver fix for rk3568 and rk3588;
- rkmtd cmd support for rockchip nand device;
- dts update and sync from linux;
Diffstat (limited to 'doc')
-rw-r--r-- | doc/board/rockchip/index.rst | 1 | ||||
-rw-r--r-- | doc/board/rockchip/rkmtd.rst | 105 | ||||
-rw-r--r-- | doc/board/rockchip/rockchip.rst | 3 |
3 files changed, 109 insertions, 0 deletions
diff --git a/doc/board/rockchip/index.rst b/doc/board/rockchip/index.rst index 0c377e9..9a87a03 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 0000000..1481380 --- /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 + ==================== ============================================ diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst index 8262fc0..ffbebd0 100644 --- a/doc/board/rockchip/rockchip.rst +++ b/doc/board/rockchip/rockchip.rst @@ -115,8 +115,11 @@ List of mainline supported Rockchip boards: - Rockchip EVB (evb-rk3588) - Edgeble Neural Compute Module 6A SoM - Neu6a (neu6a-io-rk3588) - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588) + - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588) - Radxa ROCK 5A (rock5a-rk3588s) - Radxa ROCK 5B (rock5b-rk3588) + - Xunlong Orange Pi 5 (orangepi-5-rk3588s) + - Xunlong Orange Pi 5 Plus (orangepi-5-plus-rk3588) * rv1108 - Rockchip Evb-rv1108 (evb-rv1108) |