u-boot-brain/board/rockchip/evb_rk3328
Chen-Yu Tsai bab972948e rockchip: rk3328: Add support for ROC-RK3328-CC board
The ROC-RK3328-CC from Firefly and Libre Computer Project is a credit
card size development board based on the Rockchip RK3328 SoC, with:

  - 1/2/4 GB DDR4 DRAM
  - eMMC connector for optional module
  - micro SD card slot
  - 1 x USB 3.0 host port
  - 2 x USB 2.0 host port
  - 1 x USB 2.0 OTG port
  - HDMI video output
  - TRRS connector with audio and composite video output
  - gigabit Ethernet
  - consumer IR receiver
  - debug UART pins

The ROC-RK3328-CC has the enable pin of the SD card power switch tied
to GPIO_0_D6. This pin also has the function SDMMC0_PWREN, which is
muxed by default. SDMMC0_PWREN is an active high signal controlled by
the MMC controller, however the switch enable is active low, and
pulled low (enabled) by default to make things work on boot.

As such, we need to mux away from SDMMC0_PWREN and use GPIO to enable
power to the card. The default GPIO state for the pin is pull-down and
input, which doesn't require extra configuration when paired with the
external pull-down and active low switch.

Deal with this by enabling regulator support in SPL, and setting
"u-boot,dm-spl" for the regulator and other device nodes needed for
muxing the pin.

The device tree file is synced from the Linux kernel next-20200324.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2020-05-01 18:32:56 +08:00
..
evb-rk3328.c rockchip: rk3328: Migrate to use common board file 2019-07-29 10:27:48 +08:00
Kconfig rockchip: rk3328: add evb-rk3328 support 2017-03-16 16:03:46 -06:00
MAINTAINERS rockchip: rk3328: Add support for ROC-RK3328-CC board 2020-05-01 18:32:56 +08:00
Makefile rockchip: rk3328: add evb-rk3328 support 2017-03-16 16:03:46 -06:00
README rockchip: rk3328: add evb-rk3328 support 2017-03-16 16:03:46 -06:00

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

RK3328 key features we might use in U-Boot:
* CPU: ARMv8 64bit quad-core Cortex-A53
* IRAM: 36KB
* DRAM: 4GB-16MB dual-channel
* eMMC: support eMMC 5.0/5.1, suport HS400, HS200, DDR50
* SD/MMC: support SD 3.0, MMC 4.51
* USB: 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 rk3328.

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

  > mkdir ~/evb_rk3328
  > cd ~/evb_rk3328
  > 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 ATF
===============

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

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

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

Compile rkflashtool
=======================

  > cd ../rkflashtool
  > make

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

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

  > ./rkflashtool/rkflashloader rk3328evb

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