1 .. SPDX-License-Identifier: GPL-2.0+
2 .. Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
10 This document describes the information about Rockchip supported boards
16 Rockchip is SoC solutions provider for tablets & PCs, streaming media
17 TV boxes, AI audio & vision, IoT hardware.
19 A wide range of Rockchip SoCs with associated boardsare supported in
22 List of mainline supported rockchip boards:
25 - Rockchip Evb-RK3036 (evb-rk3036)
26 - Kylin (kylin_rk3036)
28 - Rockchip Evb-RK3128 (evb-rk3128)
30 - Rockchip Evb-RK3229 (evb-rk3229)
32 - Rockchip Evb-RK3288 (evb-rk3288)
33 - Firefly-RK3288 (firefly-rk3288)
34 - MQmaker MiQi (miqi-rk3288)
35 - Phytec RK3288 PCM-947 (phycore-rk3288)
36 - PopMetal-RK3288 (popmetal-rk3288)
37 - Radxa Rock 2 Square (rock2)
38 - Tinker-RK3288 (tinker-rk3288)
39 - Google Jerry (chromebook_jerry)
40 - Google Mickey (chromebook_mickey)
41 - Google Minnie (chromebook_minnie)
42 - Google Speedy (chromebook_speedy)
43 - Amarula Vyasa-RK3288 (vyasa-rk3288)
45 - Rockchip Evb-RK3308 (evb-rk3308)
46 - Roc-cc-RK3308 (roc-cc-rk3308)
48 - Rockchip Evb-RK3328 (evb-rk3328)
49 - Pine64 Rock64 (rock64-rk3328)
50 - Firefly-RK3328 (roc-cc-rk3328)
51 - Radxa Rockpi E (rock-pi-e-rk3328)
55 - Rockchip Sheep (sheep-rk3368)
56 - Theobroma Systems RK3368-uQ7 SoM - Lion (lion-rk3368)
58 - 96boards RK3399 Ficus (ficus-rk3399)
59 - 96boards Rock960 (rock960-rk3399)
60 - Firefly-RK3399 (firefly_rk3399)
61 - Firefly ROC-RK3399-PC
62 - FriendlyElec NanoPC-T4 (nanopc-t4-rk3399)
63 - FriendlyElec NanoPi M4 (nanopi-m4-rk3399)
64 - FriendlyElec NanoPi M4B (nanopi-m4b-rk3399)
65 - FriendlyARM NanoPi NEO4 (nanopi-neo4-rk3399)
66 - Google Bob (chromebook_bob)
67 - Khadas Edge (khadas-edge-rk3399)
68 - Khadas Edge-Captain (khadas-edge-captain-rk3399)
69 - Khadas Edge-V (hadas-edge-v-rk3399)
70 - Orange Pi RK3399 (orangepi-rk3399)
71 - Pine64 RockPro64 (rockpro64-rk3399)
72 - Radxa ROCK Pi 4 (rock-pi-4-rk3399)
73 - Rockchip Evb-RK3399 (evb_rk3399)
74 - Theobroma Systems RK3399-Q7 SoM - Puma (puma_rk3399)
76 - Rockchip Evb-rv1108 (evb-rv1108)
77 - Elgin-R1 (elgin-rv1108)
87 TF-A would require to build for ARM64 Rockchip SoCs platforms.
91 git clone https://github.com/ARM-software/arm-trusted-firmware.git
92 cd arm-trusted-firmware
94 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399
96 Specify the PLAT= with desired rockchip platform to build TF-A for.
101 To build rk3328 boards::
103 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
104 make evb-rk3328_defconfig
107 To build rk3288 boards::
109 make evb-rk3288_defconfig
112 To build rk3368 boards::
114 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
115 make evb-px5_defconfig
118 To build rk3399 boards::
120 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
121 make evb-rk3399_defconfig
127 1. Package the image with U-Boot TPL/SPL
128 -----------------------------------------
133 All rockchip platforms, except rk3128 (which doesn't use SPL) are now
134 supporting single boot image using binman and pad_cat.
136 To write an image that boots from an SD card (assumed to be /dev/sda)::
138 sudo dd if=u-boot-rockchip.bin of=/dev/sda seek=64
144 eMMC flash would probe on mmc0 in most of the rockchip platforms.
146 Create GPT partition layout as defined in configurations::
149 gpt write mmc 0 $partitions
151 Connect the USB-OTG cable between host and target device.
153 Launch fastboot at target::
157 Upon successful gadget connection,host show the USB device like::
160 Bus 001 Device 020: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
164 sudo fastboot -i 0x2207 flash loader1 idbloader.img
165 sudo fastboot -i 0x2207 flash loader2 u-boot.itb
167 Note: for rockchip 32-bit platforms the U-Boot proper image
173 Generating idbloader for SPI boot would require to input a multi image
174 image format to mkimage tool instead of concerting (like for MMC boot).
176 SPL-alone SPI boot image::
178 ./tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader.img
180 TPL+SPL SPI boot image::
182 ./tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin idbloader.img
184 Copy SPI boot images into SD card and boot from SD::
187 load mmc 1:1 $kernel_addr_r idbloader.img
188 sf erase 0 +$filesize
189 sf write $kernel_addr_r 0 ${filesize}
190 load mmc 1:1 ${kernel_addr_r} u-boot.itb
191 sf erase 0x60000 +$filesize
192 sf write $kernel_addr_r 0x60000 ${filesize}
194 2. Package the image with Rockchip miniloader
195 ---------------------------------------------
197 Image package with Rockchip miniloader requires robin [1].
204 ./tools/mkimage -n px30 -T rksd -d rkbin/bin/rk33/px30_ddr_333MHz_v1.15.bin idbloader.img
205 cat rkbin/bin/rk33/px30_miniloader_v1.22.bin >> idbloader.img
206 sudo dd if=idbloader.img of=/dev/sda seek=64
213 ./tools/trust_merger RKTRUST/PX30TRUST.ini
214 sudo dd if=trust.img of=/dev/sda seek=24576
220 rbink/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img 0x200000
221 sudo dd if=uboot.img of=/dev/sda seek=16384
224 1. 0x200000 is load address and it's an optional in some platforms.
225 2. rkbin binaries are kept on updating, so would recommend to use the latest versions.
230 - Add rockchip idbloader image building
231 - Add rockchip TPL image building
232 - Document SPI flash boot
233 - Add missing SoC's with it boards list
235 [1] https://github.com/rockchip-linux/rkbin
237 .. Jagan Teki <jagan@amarulasolutions.com>
238 .. Wednesday 28 October 2020 06:47:26 PM IST