Message ID | 20230909093333.11976-1-massimo.pegorer+oss@gmail.com |
---|---|
State | Accepted |
Commit | 9841fe21197e9cfcbd64ecb257e298b9eec8a385 |
Delegated to: | Kever Yang |
Headers | show |
Series | rockchip: Use an external TPL binary on RK3308 | expand |
On 2023/9/9 17:33, Massimo Pegorer wrote: > Update and improve documentation about build steps for SoCs that > require using TF-A and TPL binaries provided by Rockchip, such as > rk3308. Add rk3308 boards case to rST document. Add ROCK Pi S in > the list of supported boards. Minor page format improvements. > > Signed-off-by: Massimo Pegorer <massimo.pegorer+oss@gmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Thanks, - Kever > --- > doc/README.rockchip | 10 +------- > doc/board/rockchip/rockchip.rst | 43 +++++++++++++++++++++++++++------ > 2 files changed, 36 insertions(+), 17 deletions(-) > > diff --git a/doc/README.rockchip b/doc/README.rockchip > index 52b5140eca..84caff8a24 100644 > --- a/doc/README.rockchip > +++ b/doc/README.rockchip > @@ -38,16 +38,8 @@ Building > (or you can use another cross compiler if you prefer) > > 2. To build RK3308 board: > - - Get the rkbin > - => git clone https://github.com/rockchip-linux/rkbin.git > > - - Compile U-Boot > - => cd /path/to/u-boot > - => export BL31=/path/to/rkbin/bin/rk33/rk3308_bl31_v2.22.elf > - => make roc-cc-rk3308_defconfig > - => make CROSS_COMPILE=aarch64-linux-gnu- all > - => ./tools/mkimage -n rk3308 -T rksd -d /path/to/rkbin/bin/rk33/rk3308_ddr_589MHz_uart2_m0_v1.26.bin idbloader.img > - => cat spl/u-boot-spl.bin >> idbloader.img > + See doc/board/rockchip/rockchip.rst > > 3. To build RK3399 board: > > diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst > index de9fe8e642..d0fa7a9c8f 100644 > --- a/doc/board/rockchip/rockchip.rst > +++ b/doc/board/rockchip/rockchip.rst > @@ -53,6 +53,7 @@ List of mainline supported Rockchip boards: > - Google Speedy (chromebook_speedy) > - Amarula Vyasa-RK3288 (vyasa-rk3288) > * rk3308 > + - Radxa ROCK Pi S (rock-pi-s-rk3308) > - Rockchip Evb-RK3308 (evb-rk3308) > - Roc-cc-RK3308 (roc-cc-rk3308) > * rk3326 > @@ -142,6 +143,19 @@ To build TF-A: > > Specify the PLAT= with desired Rockchip platform to build TF-A for. > > +For SoCs whose TF-A code is not available as open source, use BL31 binary provided by Rockchip: > + > +.. code-block:: bash > + > + git clone --depth 1 https://github.com/rockchip-linux/rkbin > + > +TPL > +^^^ > + > +For some SoCs U-Boot sources lack of support to inizialize DRAM. > +In these cases, to get a fully functional image following :ref:`PackageWithTPLandSPL`, use DDR binary provided by Rockchip rkbin repository as ROCKCHIP_TPL when building U-Boot. > +Otherwise, follow :ref:`PackageWithRockchipMiniloader`. > + > U-Boot > ^^^^^^ > > @@ -172,6 +186,15 @@ To build rk3288 boards: > make evb-rk3288_defconfig > make CROSS_COMPILE=arm-linux-gnueabihf- > > +To build rk3308 boards: > + > +.. code-block:: bash > + > + export BL31=../rkbin/bin/rk33/rk3308_bl31_v2.26.elf > + export ROCKCHIP_TPL=../rkbin/bin/rk33/rk3308_ddr_589MHz_uartX_mY_v2.07.bin > + make evb-rk3308_defconfig > + make CROSS_COMPILE=aarch64-linux-gnu- > + > To build rk3328 boards: > > .. code-block:: bash > @@ -218,11 +241,13 @@ To build rk3588 boards: > Flashing > -------- > > +.. _`PackageWithTPLandSPL`: > + > 1. Package the image with U-Boot TPL/SPL > ------------------------------------------ > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > SD Card > -^^^^^^^ > +""""""" > > All Rockchip platforms (except rk3128 which doesn't use SPL) are now > supporting a single boot image using binman. > @@ -235,7 +260,7 @@ To write an image that boots from a SD card (assumed to be /dev/sda): > sync > > eMMC > -^^^^ > +"""" > > eMMC flash would probe on mmc0 in most of the Rockchip platforms. > > @@ -274,7 +299,7 @@ For Rockchip 32-bit platforms the U-Boot proper image > is u-boot-dtb.img > > SPI > -^^^ > +""" > > Write u-boot-rockchip-spi.bin to offset 0 of SPI flash. > > @@ -286,8 +311,10 @@ Copy u-boot-rockchip-spi.bin into SD card and boot from SD: > load mmc 1:1 $kernel_addr_r u-boot-rockchip-spi.bin > sf update $fileaddr 0 $filesize > > +.. _`PackageWithRockchipMiniloader`: > + > 2. Package the image with Rockchip miniloader > ---------------------------------------------- > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Image package with Rockchip miniloader requires rkbin [1]. > > @@ -327,14 +354,14 @@ Note: > 2. 0x200000 is a load address and is an option for some platforms. > > 3. Package the RK3066 image with U-Boot TPL/SPL on NAND > -------------------------------------------------------- > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Unlike later SoC models the rk3066 BootROM doesn't have SDMMC support. > If all other boot options fail then it enters into a BootROM mode on the USB OTG port. > This method loads TPL/SPL on NAND with U-Boot and kernel on SD card. > > SD Card > -^^^^^^^ > +""""""" > > U-Boot expects a GPT partition map and a boot directory structure with files on the SD card. > > @@ -369,7 +396,7 @@ To write a U-Boot image to the SD card (assumed to be /dev/sda): > sync > > NAND > -^^^^ > +"""" > > Bring device in BootROM mode: >
diff --git a/doc/README.rockchip b/doc/README.rockchip index 52b5140eca..84caff8a24 100644 --- a/doc/README.rockchip +++ b/doc/README.rockchip @@ -38,16 +38,8 @@ Building (or you can use another cross compiler if you prefer) 2. To build RK3308 board: - - Get the rkbin - => git clone https://github.com/rockchip-linux/rkbin.git - - Compile U-Boot - => cd /path/to/u-boot - => export BL31=/path/to/rkbin/bin/rk33/rk3308_bl31_v2.22.elf - => make roc-cc-rk3308_defconfig - => make CROSS_COMPILE=aarch64-linux-gnu- all - => ./tools/mkimage -n rk3308 -T rksd -d /path/to/rkbin/bin/rk33/rk3308_ddr_589MHz_uart2_m0_v1.26.bin idbloader.img - => cat spl/u-boot-spl.bin >> idbloader.img + See doc/board/rockchip/rockchip.rst 3. To build RK3399 board: diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst index de9fe8e642..d0fa7a9c8f 100644 --- a/doc/board/rockchip/rockchip.rst +++ b/doc/board/rockchip/rockchip.rst @@ -53,6 +53,7 @@ List of mainline supported Rockchip boards: - Google Speedy (chromebook_speedy) - Amarula Vyasa-RK3288 (vyasa-rk3288) * rk3308 + - Radxa ROCK Pi S (rock-pi-s-rk3308) - Rockchip Evb-RK3308 (evb-rk3308) - Roc-cc-RK3308 (roc-cc-rk3308) * rk3326 @@ -142,6 +143,19 @@ To build TF-A: Specify the PLAT= with desired Rockchip platform to build TF-A for. +For SoCs whose TF-A code is not available as open source, use BL31 binary provided by Rockchip: + +.. code-block:: bash + + git clone --depth 1 https://github.com/rockchip-linux/rkbin + +TPL +^^^ + +For some SoCs U-Boot sources lack of support to inizialize DRAM. +In these cases, to get a fully functional image following :ref:`PackageWithTPLandSPL`, use DDR binary provided by Rockchip rkbin repository as ROCKCHIP_TPL when building U-Boot. +Otherwise, follow :ref:`PackageWithRockchipMiniloader`. + U-Boot ^^^^^^ @@ -172,6 +186,15 @@ To build rk3288 boards: make evb-rk3288_defconfig make CROSS_COMPILE=arm-linux-gnueabihf- +To build rk3308 boards: + +.. code-block:: bash + + export BL31=../rkbin/bin/rk33/rk3308_bl31_v2.26.elf + export ROCKCHIP_TPL=../rkbin/bin/rk33/rk3308_ddr_589MHz_uartX_mY_v2.07.bin + make evb-rk3308_defconfig + make CROSS_COMPILE=aarch64-linux-gnu- + To build rk3328 boards: .. code-block:: bash @@ -218,11 +241,13 @@ To build rk3588 boards: Flashing -------- +.. _`PackageWithTPLandSPL`: + 1. Package the image with U-Boot TPL/SPL ------------------------------------------ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SD Card -^^^^^^^ +""""""" All Rockchip platforms (except rk3128 which doesn't use SPL) are now supporting a single boot image using binman. @@ -235,7 +260,7 @@ To write an image that boots from a SD card (assumed to be /dev/sda): sync eMMC -^^^^ +"""" eMMC flash would probe on mmc0 in most of the Rockchip platforms. @@ -274,7 +299,7 @@ For Rockchip 32-bit platforms the U-Boot proper image is u-boot-dtb.img SPI -^^^ +""" Write u-boot-rockchip-spi.bin to offset 0 of SPI flash. @@ -286,8 +311,10 @@ Copy u-boot-rockchip-spi.bin into SD card and boot from SD: load mmc 1:1 $kernel_addr_r u-boot-rockchip-spi.bin sf update $fileaddr 0 $filesize +.. _`PackageWithRockchipMiniloader`: + 2. Package the image with Rockchip miniloader ---------------------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Image package with Rockchip miniloader requires rkbin [1]. @@ -327,14 +354,14 @@ Note: 2. 0x200000 is a load address and is an option for some platforms. 3. Package the RK3066 image with U-Boot TPL/SPL on NAND -------------------------------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Unlike later SoC models the rk3066 BootROM doesn't have SDMMC support. If all other boot options fail then it enters into a BootROM mode on the USB OTG port. This method loads TPL/SPL on NAND with U-Boot and kernel on SD card. SD Card -^^^^^^^ +""""""" U-Boot expects a GPT partition map and a boot directory structure with files on the SD card. @@ -369,7 +396,7 @@ To write a U-Boot image to the SD card (assumed to be /dev/sda): sync NAND -^^^^ +"""" Bring device in BootROM mode:
Update and improve documentation about build steps for SoCs that require using TF-A and TPL binaries provided by Rockchip, such as rk3308. Add rk3308 boards case to rST document. Add ROCK Pi S in the list of supported boards. Minor page format improvements. Signed-off-by: Massimo Pegorer <massimo.pegorer+oss@gmail.com> --- doc/README.rockchip | 10 +------- doc/board/rockchip/rockchip.rst | 43 +++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 17 deletions(-)