u-boot/board/theobroma-systems/ringneck_px30
Quentin Schulz 56bb09f502 rockchip: ringneck-px30/puma-rk3399: factor out storage medium selection
Ringneck PX30 and Puma RK3399 both have the same expectation with regard
to bootstd device order and U-Boot environment storage device, except
that Puma RK3399 also supports SPI Flash.

Let's move all of this into a common file where common logic can be put.

Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-01-19 10:57:36 +08:00
..
Kconfig rockchip: ringneck-px30: enforce ENV_IS_NOWHERE with Kconfig select 2023-04-21 15:16:00 +08:00
MAINTAINERS rockchip: ringneck-px30/puma-rk3399: factor out storage medium selection 2024-01-19 10:57:36 +08:00
Makefile rockchip: ringneck-px30/puma-rk3399: factor out storage medium selection 2024-01-19 10:57:36 +08:00
README rockchip: add support for PX30 Ringneck SoM on Haikou Devkit 2023-01-16 18:01:11 +08:00
ringneck-px30.c rockchip: ringneck-px30/puma-rk3399: factor out storage medium selection 2024-01-19 10:57:36 +08:00

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

The PX30-uQ7 (Ringneck) SoM is a µQseven-compatible (40mmx70mm, MXM-230
connector) system-on-module from Theobroma Systems[1], featuring the
Rockchip PX30.

It provides the following feature set:
  * up to 4GB DDR4
  * up to 128GB on-module eMMC (with 8-bit 1.8V interface)
  * SD card (on a baseboard) via edge connector
  * Fast Ethernet with on-module TI DP83825I PHY
  * MIPI-DSI/LVDS
  * MIPI-CSI
  * USB
    - 1x USB 2.0 dual-role
    - 3x USB 2.0 host
  * on-module companion controller (STM32 Cortex-M0 or ATtiny), implementing:
    - low-power RTC functionality (ISL1208 emulation)
    - fan controller (AMC6821 emulation)
    - USB<->CAN bridge controller (STM32 only)
  * on-module Espressif ESP32 for Bluetooth + 2.4GHz WiFi
  * on-module NXP SE05x Secure Element

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

Get the Source and build ATF binary
===================================

  > git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git

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

  > cd trusted-firmware-a
  > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=px30 bl31
  > cp build/px30/release/bl31/bl31.elf ../u-boot/bl31.elf

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

  > cd ../u-boot
  > make CROSS_COMPILE=aarch64-linux-gnu- ringneck-px30_defconfig all

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

Copy u-boot-rockchip.bin to offset 32k for SD/eMMC.

SD-Card
-------

  > dd if=u-boot-rockchip.bin of=/dev/sdb seek=64

eMMC
----

rkdeveloptool allows to flash the on-board eMMC via the USB OTG interface with
help of the Rockchip loader binary.

  > git clone https://github.com/rockchip-linux/rkdeveloptool
  > cd rkdeveloptool
  > autoreconf -i && ./configure && make
  > git clone https://github.com/rockchip-linux/rkbin.git
  > cd rkbin
  > ./tools/boot_merger RKBOOT/PX30MINIALL.ini
  > cd ..
  > ./rkdeveloptool db rkbin/px30_loader_v1.16.131.bin
  > ./rkdeveloptool wl 64 ../u-boot-rockchip.bin