u-boot/doc/board/anbernic/rgxx3.rst
Chris Morgan 6cf6fe2537 board: rockchip: add Anbernic RGXX3 Series Devices
The Anbernic RGxx3 is a "pseudo-device" that encompasses the following
devices:

 - Anbernic RG353M
 - Anbernic RG353P
 - Anbernic RG353V
 - Anbernic RG353VS
 - Anbernic RG503

The rk3566-anbernic-rgxx3.dtsi is synced with upstream Linux, but
rk3566-anbernic-rgxx3.dts is a U-Boot specific devicetree that
is used for all RGxx3 devices.

Via the board.c file, the bootloader automatically sets the correct
fdtfile, board, and board_name environment variables so that the
correct devicetree can be passed to Linux. It is also possible to
simply hard-code a single devicetree in the boot.scr file and use
that to load Linux as well.

The common specifications for each device are:

 - Rockchip RK3566 SoC
 - 2 external SDMMC slots
 - 1 USB-C host port, 1 USB-C peripheral port
 - 1 mini-HDMI output
 - MIPI-DSI based display panel
 - ADC controlled joysticks with a GPIO mux
 - GPIO buttons
 - A PWM controlled vibrator
 - An ADC controlled button

All of the common features are defined in the devicetree synced from
upstream Linux.

TODO: DSI panel auto-detection for the RG353 devices (requires porting
of DSI controller driver and DSI-DPHY driver to send DSI commands to
the panel).

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2023-05-06 17:45:05 +08:00

47 lines
1.4 KiB
ReStructuredText

.. SPDX-License-Identifier: GPL-2.0+
U-Boot for Anbernic RGxx3 Devices
=================================
This allows U-Boot to boot the following Anbernic devices:
- Anbernic RG353M
- Anbernic RG353P
- Anbernic RG353V
- Anbernic RG353VS
- Anbernic RG503
The correct device is detected automatically by comparing ADC values
from ADC channel 1. In the event of an RG353V, an attempt is then made
to probe for an eMMC and if it fails the device is assumed to be an
RG353VS. Based on the detected device, the environment variables
"board", "board_name", and "fdtfile" are set to the correct values
corresponding to the board which can be read by a boot script to boot
with the correct device tree.
Please note that there are some versions of the RG353 devices with
different panels. Panel auto-detection is planned for a later date.
Building U-Boot
---------------
.. code-block:: bash
$ export CROSS_COMPILE=aarch64-none-elf-
$ export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.34.elf
$ export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1056MHz_v1.13.bin
$ make anbernic-rgxx3_defconfig
$ make
This will build ``u-boot-rockchip.bin`` which can be written to an SD
card.
Image installation
------------------
Write the ``u-boot-rockchip.bin`` to an SD card offset 32kb from the
start.
.. code-block:: bash
$ dd if=u-boot-rockchip.bin of=/dev/mmcblk0 bs=512 seek=64