U-Boot for Anbernic RGxx3 Devices¶
This allows U-Boot to boot the following Anbernic devices:
Anbernic RG353M
Anbernic RG353P
Anbernic RG353PS
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 or RG353P, an attempt is then made to probe for an eMMC and if it fails the device is assumed to be an RG353VS or RG353PS. 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. If the board detected is not of type RG503 (which currently has only 1 panel revision) a panel detect is then performed by probing a “dummy” display on the DSI bus and then querying the display ID. The display ID is then compared to a table to get the known compatible string for use in Linux, and this string is saved as an environment variable of “panel”.
FDT fixups are performed in the event of an RG353M to change the device name, or in the event the panel detected does not match the devicetree. This allows Linux to load the correct panel driver without having to know exactly which panel is used (as there is no user distingushable way to tell).
Building U-Boot¶
$ export CROSS_COMPILE=aarch64-linux-gnu-
$ 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. Please note that eMMC booting has not been tested at this time.
$ dd if=u-boot-rockchip.bin of=/dev/mmcblk0 bs=512 seek=64