Upstream TF-A has support for RK3588 since v2.12 so let's document how to use upstream TF-A instead of the prebuilt binary blob from Rockchip if one wants to do that. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
137 lines
3.7 KiB
ReStructuredText
137 lines
3.7 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+
|
|
|
|
SOM-RK3588-Q7 Tiger
|
|
===================
|
|
|
|
The RK3588-Q7 SoM is a Qseven-compatible (70mm x 70mm, MXM-230
|
|
connector) system-on-module from Theobroma Systems, featuring the
|
|
Rockchip RK3588.
|
|
|
|
It provides the following feature set:
|
|
|
|
* up to 16GB LPDDR4x
|
|
* on-module eMMC
|
|
* SD card (on a baseboard) via edge connector
|
|
* Gigabit Ethernet with on-module GbE PHY
|
|
* HDMI/eDP
|
|
* MIPI-DSI
|
|
* 4x MIPI-CSI (3x on FPC connectors, 1x over Q7)
|
|
* HDMI input over FPC connector
|
|
* CAN
|
|
* USB
|
|
|
|
- 1x USB 3.0 dual-role (direct connection)
|
|
- 2x USB 3.0 host + 1x USB 2.0 host
|
|
|
|
* PCIe
|
|
|
|
- 1x PCIe 2.1 Gen3, 4 lanes
|
|
- 2xSATA / 2x PCIe 2.1 Gen1, 2 lanes
|
|
|
|
* on-module ATtiny816 companion controller, implementing:
|
|
|
|
- low-power RTC functionality (ISL1208 emulation)
|
|
- fan controller (AMC6821 emulation)
|
|
|
|
* on-module Secure Element with Global Platform 2.2.1 compliant
|
|
JavaCard environment
|
|
|
|
Here is the step-by-step to boot to U-Boot on SOM-RK3588-Q7 Tiger from Theobroma
|
|
Systems.
|
|
|
|
Get DDR init (TPL) binary
|
|
-------------------------
|
|
|
|
.. prompt:: bash
|
|
|
|
git clone https://github.com/rockchip-linux/rkbin
|
|
cd rkbin
|
|
export ROCKCHIP_TPL=$(readlink -f bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v*.bin | head -1)
|
|
sed -i 's/^uart baudrate=.*$/uart baudrate=115200/' tools/ddrbin_param.txt
|
|
sed -i 's/^uart iomux=.*$/uart iomux=2/' tools/ddrbin_param.txt
|
|
python3 ./tools/ddrbin_tool.py rk3588 tools/ddrbin_param.txt "$ROCKCHIP_TPL"
|
|
./tools/boot_merger RKBOOT/RK3588MINIALL.ini
|
|
export RKDB=$(readlink -f rk3588_spl_loader_v*.bin | head -1)
|
|
|
|
This will setup all required external dependencies for compiling U-Boot. This will
|
|
be updated in the future once U-Boot gains support for open-source DRAM initialization
|
|
in TPL.
|
|
|
|
Get TF-A
|
|
--------
|
|
|
|
There are two possible options, pick one or the other. Note that the instructions need
|
|
to be run from the ``rkbin`` directory.
|
|
|
|
Prebuilt binary from Rockchip
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. prompt:: bash
|
|
|
|
export BL31=$(readlink -f bin/rk35/rk3588_bl31_v*.elf | head -1)
|
|
|
|
Upstream
|
|
~~~~~~~~
|
|
|
|
.. prompt:: bash
|
|
|
|
cd ../
|
|
git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
|
|
cd trusted-firmware-a
|
|
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3588 bl31
|
|
export BL31=$PWD/build/rk3588/release/bl31/bl31.elf
|
|
|
|
Build U-Boot
|
|
------------
|
|
|
|
.. prompt:: bash
|
|
|
|
cd ../u-boot
|
|
make CROSS_COMPILE=aarch64-linux-gnu- tiger-rk3588_defconfig all
|
|
|
|
.. note::
|
|
If using upstream TF-A, one should disable ``SPL_ATF_NO_PLATFORM_PARAM`` symbol in
|
|
U-Boot config (via e.g. ``make CROSS_COMPILE=aarch64-linux-gnu- menuconfig``) which
|
|
will, among other things, enable console output in TF-A.
|
|
|
|
This will build ``u-boot-rockchip.bin`` which can be written to an MMC device
|
|
(eMMC or SD card).
|
|
|
|
Flash the image
|
|
---------------
|
|
|
|
Copy ``u-boot-rockchip.bin`` to offset 32k for SD/eMMC.
|
|
|
|
SD-Card
|
|
~~~~~~~
|
|
|
|
.. prompt:: bash
|
|
|
|
dd if=u-boot-rockchip.bin of=/dev/sdX seek=64
|
|
|
|
.. note::
|
|
|
|
Replace ``/dev/sdX`` to match your SD card kernel device.
|
|
|
|
eMMC
|
|
~~~~
|
|
|
|
``rkdeveloptool`` allows to flash the on-board eMMC via the USB OTG interface
|
|
with help of the Rockchip loader binary.
|
|
|
|
To enter the USB flashing mode on Haikou baseboard, remove any SD card, insert a
|
|
micro-USB cable in the ``Q7 USB P1`` connector (P8), move ``SW5`` switch into
|
|
``BIOS Disable`` mode, power cycle or reset the board and move ``SW5`` switch
|
|
back to ``Normal Boot`` mode. A new USB device should have appeared on your PC
|
|
(check with ``lsusb -d 2207:350b``).
|
|
|
|
To flash U-Boot on the eMMC with ``rkdeveloptool``:
|
|
|
|
.. prompt:: bash
|
|
|
|
git clone https://github.com/rockchip-linux/rkdeveloptool
|
|
cd rkdeveloptool
|
|
autoreconf -i && CPPFLAGS=-Wno-format-truncation ./configure && make
|
|
./rkdeveloptool db "$RKDB"
|
|
./rkdeveloptool wl 64 ../u-boot-rockchip.bin
|