u-boot/board/rockchip/evb_rk3399
Kever Yang 975e4abad2 rockchip: correct the bank0 ram size
The bank0 ram size should be the DRAM size minus reserved size,
the DRAM size may be 1GB, 2GB, 4GB, we can not hard code it.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Added DECLARE_GLOBAL_DATA_PTR for RK3328, RK3368 and RK3399:
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2017-07-11 12:13:45 +02:00
..
evb-rk3399.c rockchip: correct the bank0 ram size 2017-07-11 12:13:45 +02:00
Kconfig ARM64: rockchip: add support for rk3399 SoC based evb 2016-07-25 20:46:45 -06:00
MAINTAINERS rockchip: rk3399: update MAINTAINER file 2016-08-27 08:48:23 -06:00
Makefile ARM64: rockchip: add support for rk3399 SoC based evb 2016-07-25 20:46:45 -06:00
README ARM64: evb-rk3399: add a README for this board setup 2016-07-25 20:46:46 -06:00

Introduction
============

RK3399 key features we might use in U-Boot:
* CPU: ARMv8 64bit Big-Little architecture,
*      Big: dual-core Cortex-A72
*      Little: quad-core Cortex-A53
* IRAM: 200KB
* DRAM: 4GB-128MB dual-channel
* eMMC: support eMMC 5.0/5.1, suport HS400, HS200, DDR50
* SD/MMC: support SD 3.0, MMC 4.51
* USB: USB3.0 typc-C port *2 with dwc3 controller
*      USB2.0 EHCI host port *2
* Display: RGB/HDMI/DP/MIPI/EDP

evb key features:
* regulator: pwm regulator for CPU B/L
* PMIC: rk808
* debug console: UART2

In order to support Arm Trust Firmware(ATF), we need to use the
miniloader from rockchip which:
* do DRAM init
* load and verify ATF image
* load and verify U-Boot image

Here is the step-by-step to boot to U-Boot on rk3399.

Get the Source and prebuild binary
==================================

  > mkdir ~/evb_rk3399
  > cd ~/evb_rk3399
  > git clone https://github.com/ARM-software/arm-trusted-firmware.git
  > git clone https://github.com/rockchip-linux/rkbin
  > git clone https://github.com/rockchip-linux/rkflashtool

Compile the ATF
===============

  > cd arm-trusted-firmware
  > make realclean
  > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31

Compile the U-Boot
==================

  > cd ../u-boot
  > make CROSS_COMPILE=aarch64-linux-gnu- evb-rk3399_defconfig all

Compile the rkflashtool
=======================

  > cd ../rkflashtool
  > make

Package the image for miniloader
================================
  > cd ..
  > cp arm-trusted-firmware/build/rk3399/release/bl31.bin rkbin/rk33
  > ./rkbin/tools/trust_merger rkbin/tools/RK3399TRUST.ini
  > ./rkbin/tools/loaderimage --pack --uboot u-boot/u-boot-dtb.bin uboot.img
  > mkdir image
  > mv trust.img ./image/
  > mv uboot.img ./image/rk3399evb-uboot.bin

Flash the image
===============
Power on(or reset with RESET KEY) with MASKROM KEY preesed, and then:

  > ./rkflashtool/rkflashloader rk3399evb

You should be able to get U-Boot log message in console/UART2 now.