3.0 KiB
Issue #58: legacy firmware test for D80 MCU revision 1
This branch is an experimental build for issue #58. It is intended only for AIC8800D80 devices reported as:
chip_id=7, chip_mcu_id=1
Do not merge this branch as a general firmware downgrade. It replaces the
complete fw/aic8800D80 firmware set so that an affected device can test one
specific hypothesis. Firmware for D80N, D80X2, DC, and other variants is not
changed.
Hypothesis
The affected device times out when an FMAC upload reaches address 0x170400.
With an upload base of 0x120000, this suggests that the old MCU revision has
an FMAC RAM window of about 0x50400 (328,704) bytes.
| Firmware | Size | End address (exclusive) | Result relative to 0x170400 |
|---|---|---|---|
| Current V5 FMAC | 358,072 bytes | 0x1776B8 |
29,368 bytes over |
| Legacy V3 FMAC in this branch | 327,037 bytes | 0x16FD7D |
1,667 bytes free |
This branch uses the complete matching D80 firmware set from Radxa SDK V3,
fixed at upstream commit
254d47e6a131dbed5ba32131972f4719f3e1c7fe.
The normal FMAC file has SHA-256
1ec680c2b63dcaa0e5d33c5fb6d1857d030f8145c05c385e243760388a61a0da.
Install the test branch
From an existing clone:
git fetch origin
git switch test/issue-58-mcu1-legacy-fw
sudo ./install.sh
Disconnect and reconnect the USB device after installation. Reboot if the device does not re-enumerate cleanly.
Verify
First save the complete kernel log and confirm that firmware upload passes the old failure address without a command timeout:
sudo dmesg -C
# Disconnect and reconnect the device, then wait for initialization.
sudo dmesg | tee issue58-legacy-fw-dmesg.txt
sudo dmesg | grep -iE 'aic|chip_id|chip_mcu_id|fmacfw|bin upload|cmd timed-out'
Please report all of the following, even if an earlier item fails:
- The
chip_idandchip_mcu_idlines, and whether firmware upload completes. - Whether nearby SSIDs can be scanned.
- Whether Wi-Fi association succeeds.
- Whether the interface receives an address by DHCP.
- Whether the gateway and an Internet address can be pinged, and whether real traffic works.
- Whether Bluetooth still enumerates and works through the kernel's standard
btusbdriver. This test does not install or useaic_btusb.
Useful commands:
iw dev
nmcli device wifi list
ip address
ip route
ping -c 4 "$(ip route | awk '/default/ {print $3; exit}')"
ping -c 4 1.1.1.1
lsusb -t
bluetoothctl list
If NetworkManager is unavailable, identify the interface with iw dev, then
replace wlan0 below with that interface name:
sudo iw dev wlan0 scan | grep SSID
Return to the current V5 firmware
The installer replaces the firmware under /lib/firmware, so merely switching
Git branches is not enough. Reinstall after returning to main:
git switch main
git pull --ff-only
sudo ./install.sh
sudo reboot