mirror of
https://github.com/shenmintao/aic8800d80.git
synced 2026-09-26 17:44:16 +00:00
test: add legacy D80 firmware for issue 58
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
# Issue #58: legacy firmware test for D80 MCU revision 1
|
||||
|
||||
This branch is an experimental build for
|
||||
[issue #58](https://github.com/shenmintao/aic8800d80/issues/58). It is intended
|
||||
only for AIC8800D80 devices reported as:
|
||||
|
||||
```text
|
||||
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`](https://github.com/radxa-pkg/aic8800/commit/254d47e6a131dbed5ba32131972f4719f3e1c7fe).
|
||||
The normal FMAC file has SHA-256
|
||||
`1ec680c2b63dcaa0e5d33c5fb6d1857d030f8145c05c385e243760388a61a0da`.
|
||||
|
||||
## Install the test branch
|
||||
|
||||
From an existing clone:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
1. The `chip_id` and `chip_mcu_id` lines, and whether firmware upload completes.
|
||||
2. Whether nearby SSIDs can be scanned.
|
||||
3. Whether Wi-Fi association succeeds.
|
||||
4. Whether the interface receives an address by DHCP.
|
||||
5. Whether the gateway and an Internet address can be pinged, and whether real
|
||||
traffic works.
|
||||
6. Whether Bluetooth still enumerates and works through the kernel's standard
|
||||
`btusb` driver. This test does not install or use `aic_btusb`.
|
||||
|
||||
Useful commands:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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`:
|
||||
|
||||
```bash
|
||||
git switch main
|
||||
git pull --ff-only
|
||||
sudo ./install.sh
|
||||
sudo reboot
|
||||
```
|
||||
Reference in New Issue
Block a user