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.