u-boot/board/theobroma-systems/puma_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
..
fit_spl_atf.its rockchip: ARM64: split RK3399-Q7 board off the RK3399-EVB board 2017-04-15 10:13:17 -06:00
Kconfig rockchip: ARM64: split RK3399-Q7 board off the RK3399-EVB board 2017-04-15 10:13:17 -06:00
MAINTAINERS rockchip: ARM64: split RK3399-Q7 board off the RK3399-EVB board 2017-04-15 10:13:17 -06:00
Makefile rockchip: ARM64: split RK3399-Q7 board off the RK3399-EVB board 2017-04-15 10:13:17 -06:00
puma-rk3399.c rockchip: correct the bank0 ram size 2017-07-11 12:13:45 +02:00
README rockchip: board: puma_rk3399: build FIT image via u-boot.itb 2017-06-07 07:29:19 -06:00

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

The RK3399-Q7 (Puma) is a system-on-module featuring the Rockchip
RK3399 in a Qseven-compatible form-factor.

RK3399-Q7 features:
	* CPU: ARMv8 64bit Big-Little architecture,
		* Big: dual-core Cortex-A72
		* Little: quad-core Cortex-A53
		* IRAM: 200KB
	* DRAM: 4GB-128MB dual-channel
	* eMMC: onboard eMMC
	* SD/MMC
	* GbE (onboard Micrel KSZ9031) Gigabit ethernet PHY
	* USB:
		* USB3.0 dual role port
		* 2x USB3.0 host, 1x USB2.0 host via onboard USB3.0 hub
	* Display: HDMI/eDP/MIPI
	* Camera: 2x CSI (one on the edge connector, one on the Q7 specified CSI ZIF)
	* NOR Flash: onboard SPI NOR
	* Companion Controller: onboard additional Cortex-M0 microcontroller
		* RTC
		* fan controller
		* CAN

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

Get the Source and build ATF/Cortex-M0 binaries
===============================================

  > git clone git://git.theobroma-systems.com/arm-trusted-firmware.git
  > git clone git://git.theobroma-systems.com/rk3399-cortex-m0.git

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

  > cd arm-trusted-firmware
  > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
  > cp build/rk3399/release/bl31.bin ../u-boot

Compile the M0 firmware
=======================

  > cd ../rk3399-cortex-m0
  > make CROSS_COMPILE=arm-cortex_m0-eabi-
  > cp rk3399m0.bin ../u-boot

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

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

Package the image
=================

	> tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin spl.img
	> make CROSS_COMPILE=aarch64-linux-gnu- u-boot.itb

Flash the image
===============

Copy the SPL to offset 32k and the FIT image containing the payloads
(U-Boot proper, ATF, M0 Firmware, devicetree) to offset 256k on a SD
card.

  > dd if=spl.img of=/dev/sdb seek=64
  > dd if=u-boot.itb of=/dev/sdb seek=512

After powering up the board (with the inserted SD card), you should see
a U-Boot console on UART0 (115200n8).