Allwinner A133 Firmware Work

The A133’s U-Boot is located in longan/u-boot-2018/. Common modifications include:

Pro Tip: To debug bootloader issues, use a USB to UART adapter (1500000 baud, 8N1). The A133 will spew bootrom and boot0 debug messages. If you see [ERR] no valid boot device, your boot0 is corrupt.

Allwinner A133 firmware follows a well-established ARM bootflow but adds vendor-specific layers like FEL mode, boot_package.fex, and PhoenixSuit tooling. Whether you’re bringing up a custom board or debugging a boot hang, understanding the interaction between BROM, SPL, ATF, and U-Boot is key. allwinner a133 firmware work

For development, start with Allwinner’s official SDK (Android 10 or Tina Linux) and modify device tree and sys_config.fex. For production, enable secure boot and partition signature verification to protect your firmware.


References & Tools

source build/envsetup.sh lunch a133_xxx-userdebug make -j4

Note: Mainline Linux support for A133 is incomplete (no GPU/VPU acceleration). Most production firmware uses Allwinner's Linux 5.4 BSP or Android 10. The A133’s U-Boot is located in longan/u-boot-2018/

If you are developing:

# Clone Allwinner's official BSP (not fully upstream)
repo init -u https://github.com/Allwinner-Build/manifest -b a133-master
repo sync

Upon power-on, the A133 executes code from an internal Boot ROM (BROM). This ROM is mask-programmed and cannot be modified. The BROM performs minimal hardware initialization, including: Pro Tip: To debug bootloader issues, use a

The BROM then checks the state of the boot select pins (e.g., eFuses, GPIO straps) to determine the boot priority. Typically, the order is:

If a valid boot medium is found, the BROM loads the First Stage Bootloader (also called boot0) into a small internal SRAM (typically 48KB–64KB). The boot0 image must be signed if secure boot is enabled; otherwise, a plain binary is accepted.