U-Boot Development Status

Amlogic SoCs support is done via full Driver Model support with default boot scheme including EFI boot support.

Mainline U-Boot is limited to be used with Linux 4.16+, where the Power Domain handling has been added.

Development is done on the master branch of U-Boot.

Official Amlogic U-Boot Documentation: https://u-boot.readthedocs.io/en/latest/board/amlogic/index.html

A custodian tree is available at https://gitlab.denx.de/u-boot/custodians/u-boot-amlogic

A mailing list has been created : u-boot-amlogic@groups.io (https://groups.io/g/u-boot-amlogic)

E-Mails Archives are available at: https://lore.kernel.org/u-boot-amlogic/

U-Boot mainlining progress

v2024.10 (Work In Progress)

  • Switch meson dwc3/usb PHY to set_mode callback for switching USB mode

v2024.07

v2024.04

  • Add support for new GXL MDIO mux, with driver and Linux DT sync from v6.4

  • clk: meson: add Hardware Clock measure driver

v2024.01

  • add Amlogic A1 clock driver

  • add Amlogic A1 reset support

  • add USB Device support for Amlogic A1

  • enable RNG on Amlogic A1 & Amlogic S4

  • move Amlogic Secure Monitor to standalone driver

  • sync A1 with Linux and add missing UART compatible

  • Fix environment saving for new Android boot features on vim3*_android

  • Add SPIFC support for Amlogic A1

  • Add DFU RAM boot step when booting over USB

v2023.10

  • add support for Amlogic A1 SoC and ad401 board

  • add support for Videostrong KII Pro

  • introduce secure power domain for A1 SoC

v2023.07

  • meson_uart empty logic fix

  • Add initial support for BPI-CM4

  • Spring Cleanup of Amlogic board documentation

  • add support for BananaPi M2-Pro

  • add support for BananaPi M2S

  • add support for Radxa Zero2

  • add support for WeTek Hub and WeTek Play2

  • switch LibreTech-CC v2 and WeTek Core2 to EE powerdomain

  • add support for Beelink GT1 Ultimate

v2023.04

  • Switch USB Gadget to DM ! Finally, the last legacy bit is now over

  • jethub j100: add rescue boot from microSD

  • move meson sm command to cmd/meson and add efusedump sub-command

  • Add new boards:

    • Odroid Go Ultra, a portable console based on S922X

    • Odroid-N2L, a smaller version of the N2+

v2023.01

  • Implement setbrg op to meson serial device

  • Re-add the old PHY reset binding for nanopi-k2

v2022.10

  • Updated work e-mail of Neil Armstrong

  • fixup error on efuse commands return

  • add documentation on boot flow

v2022.07

  • Add AXG support for SARADC, including minimal ao-clk driver

  • Update Amlogic documentation for Matrix & Jethub D1

v2022.04

  • CONFIG_NET_RANDOM_ETHADDR cleanup

  • android boot support for Khadas VIM3/L

v2022.01

  • Add new SoC ID for S905Y2 found in Radxa Zero

  • pcie_dw_meson: fix usb fail when pci link fails to go up

  • Sync Amlogic DT from Linux 5.14

  • dwc3-meson-gxl: add AXG compatible

  • dts: keep back HW order for MMC devices since change in Upstream Linux

  • Cleanup local AXG DT USB nodes now everything is upstream

  • distro_bootcmd: run pci enum for scsi_boot just like it is done for nvme_boot

  • New Boards:

    • Odroid-HC4: a variant of Odroid-C4 with 2 SATA ports (via PCIe-SATA bridge)

    • Beelink GS-King X: A variant of the other Beelink board with 2 SATA ports (via USB3-SATA bridge)

    • Banana Pi M5: another credit card SBC

    • JetHub D1/H1: home automation controllers

    • Radxa Zero: another RPi Zero sized SBC

v2021.10

  • Add SMBIOS info for Khadas VIM boards

  • Fix meson-axg-mipi PHY build

  • Fix VIM3 board phy-names property setup

  • Return correct value for non emmc boot sources on VIM3

  • add kernel compression vars

  • odroid-n2: fix fdtfile suffix for n2-plus

  • sei610 & meson64_android cleanups to prepare android 11 boot support

  • use Android BCB mechanism for reboot reason instead of HW reboot flag

  • Switch meson64_android boot flow to use abootimg for A/B, AVB and DTBO support

v2021.07

  • Add proper Ethernet glue to drop mach-meson code

  • Add proper MDIO mux driver to drop mach-meson code

  • Add support for PCIe for A113d/G12A/G12B/SM1

v2021.04

  • HDMI BROKEN on G12A/G12B/SM1 HDMI is broken, this patch must be applied to fix it

  • sync amlogic GX & AXG DT to Linux 5.10

  • Add new MESON_EE driver support for GXBB & AXG

  • Add support for Libretech-CC v2, Wetek Core2, Beelink GT-King/Pro boards

  • add driver for TDO tl070wsh30 panel driver

  • meson: isolate loading of socinfo

  • Add soc_rev to environment

  • Enable G12A support for saradc

  • Add correct mmcdev on VIM3(L) & Odroid-N2(C4)

  • Read MAC from fuses for VIM3 & VIM3L boards

  • Add support for ADC function button on VIM3 & VIM3L

v2021.01

  • HDMI BROKEN on G12A/G12B/SM1 HDMI is broken, this patch must be applied to fix it

  • Add PWM driver

v2020.10

  • Add support for Odroid-C4

  • Supports fused MAC address on Odroid-N2 & Odroid-C4

v2020.07

  • USB Gadget support for GXL/GXM boards

  • USB Host support for Odroid-C2

  • add support for Libre Computer AML-S905D-PC and AML-S912-PC

v2020.04

  • Khadas VIM3L support

v2020.01

  • Add support for HDMI/CVBS outpuut for G12A/G12B/SM1

  • Add support for Khadas VIM3 board

  • Add support for SEI Robotic SEI610 board

v2019.10

  • add support for unique generated MAC adresses from SoC serial

  • adds support for the Odroid-N2 board

  • adds support for the SEI Robotic SEI510 board

v2019.07

  • Add support for Amlogic p200 & p201 Reference Designs

  • Add Amlogic SoC information display

  • Add support for the Libretech-AC AML-S805X-AC board

  • Amlogic G12A SoC support and U200 reference board

  • USB2/USB3 + OTG Support for Amlogic G12A SoC

  • add support for getting pinmux status

Note: booting Libretech-AC AML-S805X-AC board with an USB device plugged in the first USB port (next to the IR received) will fail, this will be fixed in v2019.10

v2019.04

  • Add support for HDMI output, only enabled on libretech-cc

  • Finally fixed VIM2 usb support

v2019.01

  • Add support for AXG SoC family

  • Add support for the S400 board

  • Add support for the SPIFC Controller

v2018.11

  • Add preliminary support for VPU Power Domain

  • Support for Khadas VIM2

v2018.09

  • Support for FriendlyElec Nanopi-k2

  • Fix P212 Ethernet setup

v2018.07

  • Support for GXBB, GXL & GXM SAR ADC

  • Device Tree synchronized with 4.16

  • Amlogic code cleanup

  • Add small Amlogic GX Clock driver

  • Enable of USB support for Libretech-CC ** Enabled for P212 and Khadas VIM, but Broken**

  • Enable of ADC support for Libretech-CC

v2018.05

  • Support for GXL & GXM USB Phys and Host Controller

  • Support for GXBB, GXL & GXM Reset Controller

v2018.03

  • BROKEN Avoid this version, the MMC driver crashes on a division by zero, please stick to v2018.01, the bug has been fixed in v2018.05

v2018.01

  • Support for GXL Internal PHY

  • Support for I2C Controller

  • Support for GXL SoC

  • Add BLx memory hole handling as reserved memory for FDT and EFI

  • Support for new Boards :

    • Support for P212

    • Support for Khadas VIM

    • Support for LibreTech-CC (Potato)

Mainline U-Boot Support Matrix

SoCs

S905

S805X S905X S905W

S912 S905D

A113X

S905X2 S905D2 S905Y2

S922X A311D

S905X3 S905D3

UART

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Pinctrl/GPIO

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Clock Control

Yes

Yes

Yes

Yes

Yes

Yes

Yes

PWM

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Reset Control

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Infrared Decoder

No

No

No

No

No

No

No

Ethernet

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Multi-core

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Fuse access

Yes

Yes

Yes

Yes

Yes

Yes

Yes

SPI (FC)

Yes

Yes

Yes

Yes

Yes

Yes

No

SPI (CC)

No

No

No

No

No

No

No

I2C

Yes

Yes

Yes

Yes

Yes

Yes

Yes

USB

Yes

Yes

Yes

Yes

Yes

Yes

Yes

USB OTG

No

Yes

Yes

Yes

Yes

Yes

Yes

eMMC

Yes

Yes

Yes

Yes

Yes

Yes

Yes

SDCard

Yes

Yes

Yes

Yes

Yes

Yes

Yes

NAND

No

No

No

No

No

No

No

ADC

Yes

Yes

Yes

Yes

No

No

No

CVBS Output

Yes

Yes

Yes

N/A

Yes

Yes

Yes

HDMI Output

Yes

Yes

Yes

N/A

Yes

Yes

Yes

CEC

No

No

No

N/A

No

No

No

Thermal Sensor

No

No

No

No

No

No

No

LCD/LVDS Output

No

N/A

No

No

No

No

No

MIPI DSI Output

N/A

N/A

N/A

No

No

No

No

SoC Rev/Info

Yes

Yes

Yes

Yes

Yes

Yes

Yes

PCIe (+NVMe)

N/A

N/A

N/A

Yes

Yes

Yes

Yes

Watchdog

N/A

Yes

N/A

N/A

N/A

N/A

N/A

Work in Progress

  • DSI Output support for AXG

TODO

  • Port Linux NAND driver to U-Boot

  • Add support for 32bit Meson 6/8/8b