Reviving Old and Forgotten Allwinner A80 ARM Board with Mainline U-Boot, Linux and the Yocto Project @LeonAnavi
Reviving Old and Forgotten Allwinner A80 ARM Board with Mainline U-Boot, Linux and the Yocto Project  @LeonAnavi
Uploaded December 2024 | Updated September 2026, 2 weeks ago
This hobby project showcases the successful deployment of the mainline U-Boot bootloader and mainline Linux kernel on the Merrii A80 Optimus Board, a piece of hardware that has largely faded from mainstream use. Using the Yocto Project and OpenEmbedded, a custom image was built leveraging the meta-sunxi BSP layer to provide optimized support for the board's hardware features. The same approach can be applied for Cubieboard 4 which also relies on Allwinner A80 SoC. As of the moment machine merrii-a80-optimus is available for branches master and scarthgap of meta-sunxi. I added them with the following GitHub pull requests:
- for master branch:
github.com/linux-sunxi/meta-sunxi/pull/424
github.com/linux-sunxi/meta-sunxi/pull/425
- for Scarthgap:
github.com/linux-sunxi/meta-sunxi/pull/428

The tests were performed using core-image-base. For builds based on the master branch the U-Boot version is 2024.10 and the Linux kernel version is 6.6.28. For branch scarthgap the U-Boot version is 2024.1 and the Linux kernel version is same. Scarthgap is a long-term supported (LTS) released of the Yocto Project and will be maintained at least until April 2028. Please note that the master branch is a moving target and by the time you are reading this it might have changed significantly. Because of this it is recommended to use branch scarthgap of meta-sunxi:
github.com/linux-sunxi/meta-sunxi/tree/scarthgap

In terms of hardware the Merrii A80 Optimus is powered by the Allwinner A80 SoC, a big.LITTLE architecture combining a powerful octa-core ARM Cortex-A15/A7 CPU setup with a PowerVR G6230 GPU boasting 64 cores for impressive graphics performance. Complementing the processing power, the board includes 4GB of RAM and 8GB of internal storage, ensuring ample capacity for a variety of applications. Connectivity and peripheral support are robust, with integrated Bluetooth 4.0, WiFi, HDMI output, two USB host ports, and a USB 3.0 On-the-Go (OTG) port. These features make the board versatile for tasks ranging from embedded development to multimedia applications. Please note that by default if microSD card is present the board tried to boot first from it. Because of this in the video we are booting from a microSD card with our image and not from the internal storage.

The term "sunxi" comes from Allwinner's naming convention for their SoCs. In this scheme, "sun" is a prefix and "i" is the suffix. The "x" in "sunxi" is a placeholder for a specific digit representing the generation of the SoC. For example, the Allwinner A80 chip is referred to as sun9i, where the "9" indicates its generation in Allwinner's lineup. This naming system has been adopted by the open-source community as a shorthand to refer to Allwinner chips and the associated effort to support them with tools like mainline Linux and U-Boot. Thus, "sunxi" broadly represents Allwinner SoCs across generations.

Follow the steps below to build an image as shown in the video:

- Download the long term support (LTS) release Scarthgap reference Yocto distribution, Poky:

git clone -b scarthgap git.yoctoproject.org/poky poky-rauc-sunxi
cd poky-rauc-sunxi

- Download the meta-arm BSP layer:

git clone -b scarthgap git://git.yoctoproject.org/meta-arm

- Download the meta-sunxi layer:

git clone -b scarthgap github.com/linux-sunxi/meta-sunxi.git

- Download the meta-openembedded layer as it provides a recipe for nano which will be used for the demonstration:

git clone -b scarthgap git://git.openembedded.org/meta-openembedded

- Initialize the build environment:

source oe-init-build-env

- Include all layers in conf/bblayers.conf:

bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ../meta-openembedded/meta-python
bitbake-layers add-layer ../meta-arm/meta-arm-toolchain
bitbake-layers add-layer ../meta-arm/meta-arm
bitbake-layers add-layer ../meta-sunxi

- Adjust conf/local.conf by appending the following configurations to the end of the file:

MACHINE = "merrii-a80-optimus"

INIT_MANAGER = "systemd"

- Build the image:

bitbake core-image-base
Reviving Old and Forgotten Allwinner A80 ARM Board with Mainline U-Boot, Linux and the Yocto Project2025 Channel UpdateThinkCentre M75q Gen 2 RAM Upgrade: 8GB to 40GB Step-by-Step in 15 Seconds #shorts #thinkcentrePocketBeagle 2: Setting Up a Tiny Linux Single Board Computer with DebianRaspberry Pi Zero W Linux development board for Internet of Things #shortsLenovo ThinkPad Thunderbolt 3 Dock 40AC DBB9003L1 for T14 and T14s Gen 1 #shorts #thinkpadBanned on Amazon: AUKEY 1080p USB Webcam for PC #shortsRaspberry Pi RP2040 MCU on Raspberry Pi Debug Probe #shorts #raspberrypiFlash Raspberry Pi OS on Raspberry Pi Compute Module 4 eMMC from Raspberry Pi 5 using usbbootUnboxing NXP FRDM-MCXA153 Development Board #nxp #mcx #shortsGMMK Compact Barebone EditionGetting Started with Raspberry Pi Pico C/C++ SDK on RP2040 or RP2350 Microcontrollers #raspberrypi
Leon Anavi |

Reviving Old and Forgotten Allwinner A80 ARM Board with Mainline U-Boot, Linux and the Yocto Project

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER