1.. SPDX-License-Identifier: GPL-2.0+ 2.. Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com> 3 4ROCKCHIP 5======== 6 7About this 8---------- 9 10This document describes the information about Rockchip supported boards 11and it's usage steps. 12 13Rockchip boards 14--------------- 15 16Rockchip is SoC solutions provider for tablets & PCs, streaming media 17TV boxes, AI audio & vision, IoT hardware. 18 19A wide range of Rockchip SoCs with associated boardsare supported in 20mainline U-Boot. 21 22List of mainline supported rockchip boards: 23 24* rk3036 25 - Rockchip Evb-RK3036 (evb-rk3036) 26 - Kylin (kylin_rk3036) 27* rk3128 28 - Rockchip Evb-RK3128 (evb-rk3128) 29* rk3229 30 - Rockchip Evb-RK3229 (evb-rk3229) 31* rk3288 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) 44* rk3308 45 - Rockchip Evb-RK3308 (evb-rk3308) 46 - Roc-cc-RK3308 (roc-cc-rk3308) 47* rk3328 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) 52* rk3368 53 - GeekBox (geekbox) 54 - PX5 EVB (evb-px5) 55 - Rockchip Sheep (sheep-rk3368) 56 - Theobroma Systems RK3368-uQ7 SoM - Lion (lion-rk3368) 57* rk3399 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) 75* rv1108 76 - Rockchip Evb-rv1108 (evb-rv1108) 77 - Elgin-R1 (elgin-rv1108) 78* rv3188 79 - Radxa Rock (rock) 80 81Building 82-------- 83 84TF-A 85^^^^ 86 87TF-A would require to build for ARM64 Rockchip SoCs platforms. 88 89To build TF-A:: 90 91 git clone https://github.com/ARM-software/arm-trusted-firmware.git 92 cd arm-trusted-firmware 93 make realclean 94 make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 95 96Specify the PLAT= with desired rockchip platform to build TF-A for. 97 98U-Boot 99^^^^^^ 100 101To build rk3328 boards:: 102 103 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf 104 make evb-rk3328_defconfig 105 make 106 107To build rk3288 boards:: 108 109 make evb-rk3288_defconfig 110 make 111 112To build rk3368 boards:: 113 114 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf 115 make evb-px5_defconfig 116 make 117 118To build rk3399 boards:: 119 120 export BL31=/path/to/arm-trusted-firmware/to/bl31.elf 121 make evb-rk3399_defconfig 122 make 123 124Flashing 125-------- 126 1271. Package the image with U-Boot TPL/SPL 128----------------------------------------- 129 130SD Card 131^^^^^^^ 132 133All rockchip platforms, except rk3128 (which doesn't use SPL) are now 134supporting single boot image using binman and pad_cat. 135 136To write an image that boots from an SD card (assumed to be /dev/sda):: 137 138 sudo dd if=u-boot-rockchip.bin of=/dev/sda seek=64 139 sync 140 141eMMC 142^^^^ 143 144eMMC flash would probe on mmc0 in most of the rockchip platforms. 145 146Create GPT partition layout as defined in configurations:: 147 148 mmc dev 0 149 gpt write mmc 0 $partitions 150 151Connect the USB-OTG cable between host and target device. 152 153Launch fastboot at target:: 154 155 fastboot 0 156 157Upon successful gadget connection,host show the USB device like:: 158 159 lsusb 160 Bus 001 Device 020: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode 161 162Program the flash:: 163 164 sudo fastboot -i 0x2207 flash loader1 idbloader.img 165 sudo fastboot -i 0x2207 flash loader2 u-boot.itb 166 167Note: for rockchip 32-bit platforms the U-Boot proper image 168is u-boot-dtb.img 169 170SPI 171^^^ 172 173Generating idbloader for SPI boot would require to input a multi image 174image format to mkimage tool instead of concerting (like for MMC boot). 175 176SPL-alone SPI boot image:: 177 178 ./tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader.img 179 180TPL+SPL SPI boot image:: 181 182 ./tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin idbloader.img 183 184Copy SPI boot images into SD card and boot from SD:: 185 186 sf probe 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} 193 1942. Package the image with Rockchip miniloader 195--------------------------------------------- 196 197Image package with Rockchip miniloader requires robin [1]. 198 199Create idbloader.img 200 201.. code-block:: none 202 203 cd u-boot 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 207 208Create trust.img 209 210.. code-block:: none 211 212 cd rkbin 213 ./tools/trust_merger RKTRUST/PX30TRUST.ini 214 sudo dd if=trust.img of=/dev/sda seek=24576 215 216Create uboot.img 217 218.. code-block:: none 219 220 rbink/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img 0x200000 221 sudo dd if=uboot.img of=/dev/sda seek=16384 222 223Note: 2241. 0x200000 is load address and it's an optional in some platforms. 2252. rkbin binaries are kept on updating, so would recommend to use the latest versions. 226 227TODO 228---- 229 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 234 235[1] https://github.com/rockchip-linux/rkbin 236 237.. Jagan Teki <jagan@amarulasolutions.com> 238.. Wednesday 28 October 2020 06:47:26 PM IST 239