1*d26f375aSKever YangIntroduction 2*d26f375aSKever Yang============ 3*d26f375aSKever Yang 4*d26f375aSKever YangRK3399 key features we might use in U-Boot: 5*d26f375aSKever Yang* CPU: ARMv8 64bit Big-Little architecture, 6*d26f375aSKever Yang* Big: dual-core Cortex-A72 7*d26f375aSKever Yang* Little: quad-core Cortex-A53 8*d26f375aSKever Yang* IRAM: 200KB 9*d26f375aSKever Yang* DRAM: 4GB-128MB dual-channel 10*d26f375aSKever Yang* eMMC: support eMMC 5.0/5.1, suport HS400, HS200, DDR50 11*d26f375aSKever Yang* SD/MMC: support SD 3.0, MMC 4.51 12*d26f375aSKever Yang* USB: USB3.0 typc-C port *2 with dwc3 controller 13*d26f375aSKever Yang* USB2.0 EHCI host port *2 14*d26f375aSKever Yang* Display: RGB/HDMI/DP/MIPI/EDP 15*d26f375aSKever Yang 16*d26f375aSKever Yangevb key features: 17*d26f375aSKever Yang* regulator: pwm regulator for CPU B/L 18*d26f375aSKever Yang* PMIC: rk808 19*d26f375aSKever Yang* debug console: UART2 20*d26f375aSKever Yang 21*d26f375aSKever YangIn order to support Arm Trust Firmware(ATF), we need to use the 22*d26f375aSKever Yangminiloader from rockchip which: 23*d26f375aSKever Yang* do DRAM init 24*d26f375aSKever Yang* load and verify ATF image 25*d26f375aSKever Yang* load and verify U-Boot image 26*d26f375aSKever Yang 27*d26f375aSKever YangHere is the step-by-step to boot to U-Boot on rk3399. 28*d26f375aSKever Yang 29*d26f375aSKever YangGet the Source and prebuild binary 30*d26f375aSKever Yang================================== 31*d26f375aSKever Yang 32*d26f375aSKever Yang > mkdir ~/evb_rk3399 33*d26f375aSKever Yang > cd ~/evb_rk3399 34*d26f375aSKever Yang > git clone https://github.com/ARM-software/arm-trusted-firmware.git 35*d26f375aSKever Yang > git clone https://github.com/rockchip-linux/rkbin 36*d26f375aSKever Yang > git clone https://github.com/rockchip-linux/rkflashtool 37*d26f375aSKever Yang 38*d26f375aSKever YangCompile the ATF 39*d26f375aSKever Yang=============== 40*d26f375aSKever Yang 41*d26f375aSKever Yang > cd arm-trusted-firmware 42*d26f375aSKever Yang > make realclean 43*d26f375aSKever Yang > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31 44*d26f375aSKever Yang 45*d26f375aSKever YangCompile the U-Boot 46*d26f375aSKever Yang================== 47*d26f375aSKever Yang 48*d26f375aSKever Yang > cd ../u-boot 49*d26f375aSKever Yang > make CROSS_COMPILE=aarch64-linux-gnu- evb-rk3399_defconfig all 50*d26f375aSKever Yang 51*d26f375aSKever YangCompile the rkflashtool 52*d26f375aSKever Yang======================= 53*d26f375aSKever Yang 54*d26f375aSKever Yang > cd ../rkflashtool 55*d26f375aSKever Yang > make 56*d26f375aSKever Yang 57*d26f375aSKever YangPackage the image for miniloader 58*d26f375aSKever Yang================================ 59*d26f375aSKever Yang > cd .. 60*d26f375aSKever Yang > cp arm-trusted-firmware/build/rk3399/release/bl31.bin rkbin/rk33 61*d26f375aSKever Yang > ./rkbin/tools/trust_merger rkbin/tools/RK3399TRUST.ini 62*d26f375aSKever Yang > ./rkbin/tools/loaderimage --pack --uboot u-boot/u-boot-dtb.bin uboot.img 63*d26f375aSKever Yang > mkdir image 64*d26f375aSKever Yang > mv trust.img ./image/ 65*d26f375aSKever Yang > mv uboot.img ./image/rk3399evb-uboot.bin 66*d26f375aSKever Yang 67*d26f375aSKever YangFlash the image 68*d26f375aSKever Yang=============== 69*d26f375aSKever YangPower on(or reset with RESET KEY) with MASKROM KEY preesed, and then: 70*d26f375aSKever Yang 71*d26f375aSKever Yang > ./rkflashtool/rkflashloader rk3399evb 72*d26f375aSKever Yang 73*d26f375aSKever YangYou should be able to get U-Boot log message in console/UART2 now. 74