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