Working with firmware for the Allwinner A133 (a quad-core 64-bit Cortex-A53 SoC) generally falls into three categories: standard flashing, community-driven "mainline" development, and emergency recovery. 1. Standard Firmware Flashing
If you are trying to install or update the factory software (usually Android 10), you will need specific tools designed for Allwinner chips.
PhoenixSuit/LiveSuit: These are the primary tools used to flash .img firmware files from a Windows PC.
PhoenixCard: Used to create a "bootable" SD card that automatically flashes the firmware onto the device's internal storage (eMMC) upon startup.
ADB Dumper: For devices with an unlocked bootloader, tools like adbDumper on XDA can help you back up existing firmware before making changes. 2. Mainline Linux and U-Boot Development
For developers wanting to run "vanilla" Linux (like Ubuntu or Debian) instead of Android, the A133 is part of the sunxi community efforts.
U-Boot: The bootloader for the A133 requires specific initialization for DRAM and serial UART. Some developers use custom versions like u-boot-2022.10-Allwinner-A133 for experimentation.
FEL Mode: This is a low-level "rescue" mode built into the chip's ROM. By using sunxi-tools on a PC, you can communicate with the device over USB to upload code directly to RAM, though A133 support in these tools is often still in development. 3. Common Troubleshooting If your A133 device is "bricked" or not working: allwinner a133 firmware work
Recovery Mode: Accessing recovery often involves a specific button combination (e.g., Power + Volume Up). If standard recovery isn't working, it may require a hard reset via software tools.
Power Issues: Many Allwinner tablets fail to turn on due to broken charging jacks or dead batteries. Some can be bypassed using the universal Micro-USB/USB-C input.
Backdoor Risks: Historically, some Allwinner-provided kernel source code has contained security vulnerabilities, such as debugging "backdoors". It is recommended to use the most recent, patched firmware available from your device manufacturer. Technical Specifications for Firmware Matching
When searching for compatible firmware, ensure it matches these A133 hardware traits: CPU: Quad-core ARM Cortex-A53. GPU: Imagination PowerVR GE8300 Display Support: MIPI-DSI, RGB, LVDS, and eDP. Memory: Supports DDR3, DDR4, LPDDR3, and LPDDR4 up to 4GB. A133 support #207 - linux-sunxi/sunxi-tools - GitHub
When working with the A133, firmware engineers often encounter:
boot0 lead to random crashes. Debug by tweaking values in dram_para and using FEL to test.mmc partconf in U-Boot).For deep debugging, logic analyzers on the boot media interface (SDIO) or USB protocol analyzers for FEL are invaluable.
pack command)After compiling, Allwinner uses a unique packing system. Run: Working with firmware for the Allwinner A133 (a
./pack
This generates:
sun50iw9p1.bin: The final firmware image (boot0 + U-Boot combined).android.img or linux.img: The full system image.dragonboard.img: For USB download mode.One of the most valuable features for firmware engineers is FEL (Forced Entry Level) mode. Triggered by holding a specific button (usually the "VOL+" or "FEL" pin) during power-on or by sending a USB reset command, FEL halts the BROM and exposes a USB bulk endpoint.
In FEL mode, the SoC does not execute any external bootloader. Instead, it waits for commands over USB. This allows:
sunxi-fel tool)The sunxi-fel utility is the primary tool for interacting with FEL mode. For example:
sunxi-fel ver # Read chip ID and BROM version
sunxi-fel write 0x2000 u-boot-sunxi-with-spl.bin
sunxi-fel exec 0x2000 # Execute custom code
There is an ongoing effort to mainline A133 support in Linux kernel 6.x. However, for firmware work, stick to the BSP.
Verdict: Use the BSP for production devices. Use mainline only for learning or headless servers.
After DRAM is initialized, boot0 loads U-Boot (or a vendor-modified fork) from the storage device into DRAM and jumps to it. U-Boot on the A133 is highly customized and includes: Common Firmware Pitfalls and Debugging When working with
A typical U-Boot environment on an A133 tablet might look like:
baudrate=115200
bootcmd=mmc dev 0; load mmc 0:1 0x40000000 boot.scr; source 0x40000000
bootdelay=1
stdin=serial,usbkbd
stdout=serial,vidconsole
The boot script (boot.scr) ultimately loads the Linux kernel (zImage or Image.gz) and the board DTB into memory and calls bootz or bootm.
The A133 has a built-in “FEL” mode (Factory Emergency Loader). Short the NAND/eMMC data pin (or hold the FEL button on devkits) while powering on. The SoC will wait for a USB command.
Use sunxi-fel (Linux) or LiveSuit (Windows) to upload a new firmware:
sudo sunxi-fel version # Check connection
sudo sunxi-fel write 0x2000 u-boot-sunxi-with-spl.bin
Before diving into firmware, it is essential to understand the silicon. The A133 is a quad-core Cortex-A53 processor built on a 28nm process. It features:
The A133 lacks an internal boot ROM with flexible security fuses found in some high-end SoCs, but it employs a multi-stage bootloader approach that balances flexibility and security.