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
