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 boards are 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)
32 - Rockchip Evb-RK3229 (evb-rk3229)
34 - Rockchip Evb-RK3288 (evb-rk3288)
35 - Firefly-RK3288 (firefly-rk3288)
36 - MQmaker MiQi (miqi-rk3288)
37 - Phytec RK3288 PCM-947 (phycore-rk3288)
38 - PopMetal-RK3288 (popmetal-rk3288)
39 - Radxa Rock 2 Square (rock2)
40 - Tinker-RK3288 (tinker-rk3288)
41 - Google Jerry (chromebook_jerry)
42 - Google Mickey (chromebook_mickey)
43 - Google Minnie (chromebook_minnie)
44 - Google Speedy (chromebook_speedy)
45 - Amarula Vyasa-RK3288 (vyasa-rk3288)
47 - Rockchip Evb-RK3308 (evb-rk3308)
48 - Roc-cc-RK3308 (roc-cc-rk3308)
50 - Rockchip Evb-RK3328 (evb-rk3328)
51 - Pine64 Rock64 (rock64-rk3328)
52 - Firefly-RK3328 (roc-cc-rk3328)
53 - Radxa Rockpi E (rock-pi-e-rk3328)
57 - Rockchip Sheep (sheep-rk3368)
58 - Theobroma Systems RK3368-uQ7 SoM - Lion (lion-rk3368)
60 - 96boards RK3399 Ficus (ficus-rk3399)
61 - 96boards Rock960 (rock960-rk3399)
62 - Firefly-RK3399 (firefly_rk3399)
63 - Firefly ROC-RK3399-PC
64 - FriendlyElec NanoPC-T4 (nanopc-t4-rk3399)
65 - FriendlyElec NanoPi M4 (nanopi-m4-rk3399)
66 - FriendlyElec NanoPi M4B (nanopi-m4b-rk3399)
67 - FriendlyARM NanoPi NEO4 (nanopi-neo4-rk3399)
68 - Google Bob (chromebook_bob)
69 - Google Kevin (chromebook_kevin)
70 - Khadas Edge (khadas-edge-rk3399)
71 - Khadas Edge-Captain (khadas-edge-captain-rk3399)
72 - Khadas Edge-V (hadas-edge-v-rk3399)
73 - Orange Pi RK3399 (orangepi-rk3399)
74 - Pine64 RockPro64 (rockpro64-rk3399)
75 - Radxa ROCK Pi 4 (rock-pi-4-rk3399)
76 - Rockchip Evb-RK3399 (evb_rk3399)
77 - Theobroma Systems RK3399-Q7 SoM - Puma (puma_rk3399)
79 - Rockchip Evb-rv1108 (evb-rv1108)
80 - Elgin-R1 (elgin-rv1108)
88 TF-A would require to build for ARM64 Rockchip SoCs platforms.
92 git clone https://github.com/ARM-software/arm-trusted-firmware.git
93 cd arm-trusted-firmware
95 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399
97 Specify the PLAT= with desired Rockchip platform to build TF-A for.
102 To build rk3328 boards::
104 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
105 make evb-rk3328_defconfig
108 To build rk3288 boards::
110 make evb-rk3288_defconfig
113 To build rk3368 boards::
115 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
116 make evb-px5_defconfig
119 To build rk3399 boards::
121 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf
122 make evb-rk3399_defconfig
128 1. Package the image with U-Boot TPL/SPL
129 -----------------------------------------
134 All Rockchip platforms, except rk3128 (which doesn't use SPL) are now
135 supporting single boot image using binman and pad_cat.
137 To write an image that boots from an SD card (assumed to be /dev/sda)::
139 sudo dd if=u-boot-rockchip.bin of=/dev/sda seek=64
145 eMMC flash would probe on mmc0 in most of the Rockchip platforms.
147 Create GPT partition layout as defined in configurations::
150 gpt write mmc 0 $partitions
152 Connect the USB-OTG cable between host and target device.
154 Launch fastboot at target::
158 Upon successful gadget connection,host show the USB device like::
161 Bus 001 Device 020: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode
165 sudo fastboot -i 0x2207 flash loader1 idbloader.img
166 sudo fastboot -i 0x2207 flash loader2 u-boot.itb
168 Note: for Rockchip 32-bit platforms the U-Boot proper image
174 Generating idbloader for SPI boot would require to input a multi image
175 image format to mkimage tool instead of concerting (like for MMC boot).
177 SPL-alone SPI boot image::
179 ./tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader.img
181 TPL+SPL SPI boot image::
183 ./tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin idbloader.img
185 Copy SPI boot images into SD card and boot from SD::
188 load mmc 1:1 $kernel_addr_r idbloader.img
189 sf erase 0 +$filesize
190 sf write $kernel_addr_r 0 ${filesize}
191 load mmc 1:1 ${kernel_addr_r} u-boot.itb
192 sf erase 0x60000 +$filesize
193 sf write $kernel_addr_r 0x60000 ${filesize}
195 2. Package the image with Rockchip miniloader
196 ---------------------------------------------
198 Image package with Rockchip miniloader requires robin [1].
205 ./tools/mkimage -n px30 -T rksd -d rkbin/bin/rk33/px30_ddr_333MHz_v1.15.bin idbloader.img
206 cat rkbin/bin/rk33/px30_miniloader_v1.22.bin >> idbloader.img
207 sudo dd if=idbloader.img of=/dev/sda seek=64
214 ./tools/trust_merger RKTRUST/PX30TRUST.ini
215 sudo dd if=trust.img of=/dev/sda seek=24576
221 rbink/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img 0x200000
222 sudo dd if=uboot.img of=/dev/sda seek=16384
225 1. 0x200000 is load address and it's an optional in some platforms.
226 2. rkbin binaries are kept on updating, so would recommend to use the latest versions.
231 - Add Rockchip idbloader image building
232 - Add Rockchip TPL image building
233 - Document SPI flash boot
234 - Add missing SoC's with it boards list
236 [1] https://github.com/rockchip-linux/rkbin
238 .. Jagan Teki <jagan@amarulasolutions.com>
239 .. Wednesday 28 October 2020 06:47:26 PM IST