Skip to content

xm530: add anbiux A8B-3MP (IPC-RB-BLK530AI, ATBM6032 USB WiFi) - #130

Open
yatotoshka wants to merge 1 commit into
OpenIPC:masterfrom
yatotoshka:xm530-lite-anbiux-a8b-3mp
Open

yatotoshka wants to merge 1 commit into
OpenIPC:masterfrom
yatotoshka:xm530-lite-anbiux-a8b-3mp

Conversation

@yatotoshka

@yatotoshka yatotoshka commented Aug 26, 2026 •

Copy link
Copy Markdown

Problem

No XM530 device exists in builder. This camera (anbiux A8B-3MP, board
IPC-RB-BLK530AI-0235P-AB0 V1.03, XM530AI + SmartSens SC3335) carries an
AltoBeam ATBM6032 USB WiFi (007a:8888) with power-down on gpio 96; the stock
xm530_lite image has neither the driver nor a bring-up path for it.

What this change does

Device profile xm530_lite_anbiux-a8b-3mp (commit 61ab904, rebased on 31bbf17):

  • xm530_lite_anbiux-a8b-3mp_defconfig — a snapshot of xm530_lite_defconfig
    plus atbm60xx (603x, USB), and with the MT7601U firmware dropped (this
    radio is not an MT7601U).
  • customizer.sh — on first boot sets wlandev=atbm603x-xm530 (the
    bring-up case in firmware's /etc/wireless/usb), wifipdn=96 (the case
    reads the PDN gpio from the wifipdn env at run time), and the upgrade url
    to this device's builder release, so the Web UI update keeps pulling this
    device's image; reboots after 3 s.
  • xm530_lite.list — prunes the wifi stacks this radio does not use (xm711 +
    its compat shim) to leave room for the atbm60xx module in the 5M
    rootfs.
  • ci-matrix.py — joins SMOKE_TARGETS (the vendor:xiongmai trait must be
    covered or the matrix self-test refuses to select a build matrix) and the
    README device table gets its row.

The OPENIPC_FW_REPO builder.sh override and the firmware_repo build-one
input (previously commit 826ab1d) were split out into a separate PR
(fork branch firmware-repo-override) per review — they are a general
build feature, not part of this device.

Dependency

OpenIPC/firmware#2316
(rebased to a single commit 683a548b, 2026-09-30): without it the image has
no atbm603x-xm530 case in /etc/wireless/usb, no depmod pass over the
merged target (the vendor modules.dep leaves dwc_otg/wifi_pdn
invisible to modprobe), and no cfg80211 coexistence. Proposed merge order:
#2316 first, then this profile — with both merged, the nightly builds a
functional image for this device. Until #2316 lands, the image can be built
with OPENIPC_FW_REPO=https://github.com/yatotoshka/firmware.git OPENIPC_FW_REV=xiongmai-atbm60xx-wifi builder.sh xm530_lite_anbiux-a8b-3mp
(or via build-one once the split firmware_repo input PR merges) — it
publishes xm530_lite_anbiux-a8b-3mp-nor.tgz, the same name the customizer's
upgrade url points at.

Hardware tested on

XM530AI (marking 30WX1), board IPC-RB-BLK530AI-0235P-AB0 V1.03, SmartSens
SC3335, AltoBeam ATBM6032 USB WiFi (007a:8888), PDN on gpio 96, 128GB FAT32
(SDXC) card.

Evidence

Re-verified 2026-09-06 from a factory-clean state (env wiped) on the current
nightly (master+4c34a66): the chip, PDN gpio 96 and the load order
(dwc_otg → wifi_pdn → atbm603x) are proven on this camera — it is associated
and takes a DHCP lease:

wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether f4:b1:9c:a8:ca:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.243/24 brd 192.168.1.255 scope global wlan0
[atbm_log]:wlan0: authenticated
[atbm_log]:wlan0: associated

The Web UI is reachable over both the Ethernet address (192.168.1.242) and the
Wi-Fi address (192.168.1.243).

Status: the camera currently loads the driver from a prebuilt blob (built
from the same atbm_60xx revision firmware#2316 pins) plus a local init
script. The profile's clean-build path (customizer wlandev/wifipdn →
S40network → the atbm603x-xm530 case) will be verified end to end by a
build of this branch once firmware#2316 merges.

Scope

  • No binary files added (defconfig + shell + list only)
  • Common configuration stays in OpenIPC/firmware; this profile carries only the per-device delta
  • Follows the processor_flavor_vendor-model naming and the minimal-file layout from the README
  • The OPENIPC_FW_REPO change is split out into its own PR
  • Clean-build path verified on-device (pending: merge order above + workflow approval)

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

PR Summary by Qodo

Add XM530 Lite profile for the anbiux A8B-3MP camera

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Adds an XM530 Lite profile selecting ATBM6032 USB Wi-Fi and removing unused radio components.
• Configures first-boot Wi-Fi power-down settings and the device-specific upgrade URL.
• Registers the camera in CI smoke coverage and the supported-device table.
Diagram

graph TD
  D["Device config"] --> B["Image build"] --> C["First-boot customizer"] --> E[("U-Boot environment")] --> N["Firmware Wi-Fi init"] --> W["ATBM6032 Wi-Fi"]
  X["Module exclusions"] --> B
  P["Firmware PR 2316"] --> N
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Bundle Wi-Fi bring-up in the device overlay
  • ➕ Could make this profile less dependent on the firmware PR's merge timing.
  • ➖ Would duplicate shared driver initialization and module dependency fixes outside upstream firmware.

Recommendation: Keep the device-specific settings in builder and shared Wi-Fi bring-up in firmware; that preserves a small profile and a reusable driver path. Merge firmware PR #2316 first, then verify a clean build on the camera before treating the profile as functional.

Files changed (5) +96 / -0

Enhancement (2) +90 / -0
xm530_lite_anbiux-a8b-3mp_defconfigDefine the XM530 Lite ATBM6032 build +71/-0

Define the XM530 Lite ATBM6032 build

• Adds an XM530 Lite device configuration selecting the ATBM60XX 603X USB driver and disabling unused MT7601U firmware. It retains the XM530 kernel, 8 MB flash, and standard Lite packages.

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig

customizer.shSet first-boot Wi-Fi and upgrade settings +19/-0

Set first-boot Wi-Fi and upgrade settings

• Sets the firmware Wi-Fi device case, PDN GPIO 96, and the device-specific release URL in the boot environment. Schedules a reboot to apply the settings.

devices/xm530_lite_anbiux-a8b-3mp/general/overlay/usr/share/openipc/customizer.sh

Documentation (1) +1 / -0
README.mdList the anbiux A8B-3MP camera +1/-0

List the anbiux A8B-3MP camera

• Adds its XM530AI SoC, SC3335 sensor, USB radio, 8 MB NOR flash, and in-progress status to the supported-device table.

README.md

Other (2) +5 / -0
ci-matrix.pyCover Xiongmai in CI smoke targets +1/-0

Cover Xiongmai in CI smoke targets

• Adds the new XM530 profile to SMOKE_TARGETS, covering the Xiongmai vendor trait required by the matrix self-test.

.github/scripts/ci-matrix.py

xm530_lite.listExclude unused XM711 Wi-Fi modules +4/-0

Exclude unused XM711 Wi-Fi modules

• Removes xm711.ko and its compat shim from this device's rootfs to make room for the ATBM60XX module.

devices/xm530_lite_anbiux-a8b-3mp/general/scripts/excludes/xm530_lite.list

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📜 Skill insights (0)

Grey Divider


Action required

1. Pinned builds never use the Wi-Fi fork 🐞 Bug ≡ Correctness
Description
builder.sh ignores OPENIPC_FW_REPO and clones OpenIPC/firmware even when the workflow supplies
the fork URL. For this target, it then attempts to check out xiongmai-atbm60xx-wifi in the
upstream clone, so the build cannot use the branch containing the required Wi-Fi support.
Code

.github/workflows/master.yml[R317-318]

+          OPENIPC_FW_REPO: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'https://github.com/yatotoshka/firmware.git' || '' }}
+          OPENIPC_FW_REV: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'xiongmai-atbm60xx-wifi' || '' }}
Evidence
The workflow passes the fork URL and branch to the build, but the builder's clone command uses a
literal upstream URL; only the revision variable is read.

.github/workflows/master.yml[308-318]
.github/workflows/master.yml[331-344]
builder.sh[129-138]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The device-specific CI pin sets a firmware fork URL, but builder.sh always clones the upstream repository.
## Fix Focus Areas
- .github/workflows/master.yml[317-318]
- builder.sh[129-138]
## Recommended Fix
Update builder.sh to clone `OPENIPC_FW_REPO` when set, falling back to the current upstream URL otherwise. Retain the revision checkout and make clone or checkout failures stop the build.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Nightly builders cannot make this image 📘 Rule violation ☼ Reliability
Description
xm530_lite_anbiux-a8b-3mp_defconfig selects the ATBM60XX USB package supplied only by the stated
unmerged firmware dependency, while builder.sh defaults to upstream OpenIPC firmware. When
pull-request or nightly CI selects this target without OPENIPC_FW_REPO and OPENIPC_FW_REV, the
required XM530 driver and bring-up path are unavailable and no functional archive can be produced.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[R49-51]

+BR2_PACKAGE_ATBM60XX=y
+BR2_PACKAGE_ATBM60XX_MODEL_603X=y
+BR2_PACKAGE_ATBM60XX_INTERFACE_USB=y
Evidence
Rule 9 requires the complete device firmware to build successfully and produce its archive. The new
defconfig requires ATBM60XX USB support, while the standard builder defaults to upstream firmware
and the regular CI build supplies no custom firmware repository or revision; the PR description
explicitly identifies the required firmware change as an unmerged dependency without which this
device cannot be built.

Rule 8: Device Firmware Must Build Successfully and Fit the Target Flash
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[49-51]
builder.sh[129-143]
.github/workflows/master.yml[189-217]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new device requires firmware changes that are not present in the upstream repository cloned by automated builds.
## Issue Context
The manual `build-one` workflow exposes repository and revision overrides, but the regular PR and nightly workflow invokes `builder.sh` without them. Ensure the dependency is merged upstream before this device is registered, or provide a suitably pinned compatible firmware source for this target in automated CI.
## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[49-51]
- .github/workflows/master.yml[189-217]
- builder.sh[129-143]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Remove unused MT7601U firmware ✓ Resolved
Description
The device defconfig enables MediaTek MT7601U firmware even though this board uses the AltoBeam
ATBM6032 USB radio. This adds unrelated payload to an 8 MB image whose device-specific exclusions
already prune other unused WiFi stacks for space.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[62]

+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y
Evidence
Compliance rule 6 permits only hardware-required device payload. The defconfig identifies the radio
as ATBM6032 and enables ATBM60XX_MODEL_603X with USB at lines 48-51, while line 62 separately
enables firmware for the unrelated MediaTek MT7601U chipset; the customizer confirms the runtime
profile is atbm603x-xm530-usb.

Rule 5: Device Overlay and Kernel Payload Must Be Minimal and Necessary
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[48-51]
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]
devices/xm530_lite_anbiux-a8b-3mp/general/overlay/usr/share/openipc/customizer.sh[10-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The device defconfig selects MT7601U firmware that is not used by the board's ATBM6032 radio.
## Issue Context
The device is configured for `atbm60xx` over USB and uses `atbm603x-xm530-usb`; the extra MediaTek firmware conflicts with the requirement to keep device payload minimal, especially for the configured 8 MB flash.
## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View action required (1)
4. New vendor breaks CI ✓ Resolved
Description
Adding BR2_OPENIPC_SOC_VENDOR="xiongmai" creates a new build trait, but no Xiongmai target is
added to SMOKE_TARGETS; ci-matrix.py --self-test therefore reports the uncovered
vendor:xiongmai trait and exits before the build matrix is selected. Because every PR, nightly,
and manual run executes that self-test, this device will not be built or published and its
configured latest/...-nor.tgz upgrade URL will have no release artifact.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38]

+BR2_OPENIPC_SOC_VENDOR="xiongmai"
Evidence
The new defconfig is the repository's only Xiongmai target. The selector derives a vendor: trait
from every defconfig, requires every trait among built targets to be represented by SMOKE_TARGETS,
and the workflow runs this self-test unconditionally before selecting a matrix.

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38-40]
.github/scripts/ci-matrix.py[104-120]
.github/scripts/ci-matrix.py[146-174]
.github/scripts/ci-matrix.py[347-360]
.github/workflows/master.yml[48-55]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new Xiongmai device introduces the `vendor:xiongmai` CI trait, but the smoke matrix contains no target with that trait. The mandatory matrix self-test consequently fails and prevents all builds from starting.
## Issue Context
Add `xm530_lite_anbiux-a8b-3mp` to `SMOKE_TARGETS` (or replace an existing smoke target only if all existing trait and shared-directory coverage remains intact), then run `python3 .github/scripts/ci-matrix.py --self-test`.
## Fix Focus Areas
- .github/scripts/ci-matrix.py[104-120]
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38-38]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
Review mode: ⚖️ Balanced: This adds a new runtime device profile, Wi-Fi bring-up configuration, filesystem pruning, and CI/build integration with unresolved dependency and build-path risks, warranting a complete single-pass review.

Grey Divider

Tip of the day
💡 Did you know, you can route each severity your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit 6372b60 ⚖️ Balanced

Results up to commit N/A


🐞 Bugs (1) 📘 Rule violations (1) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)


Action required
1. Pinned builds never use the Wi-Fi fork 🐞 Bug ≡ Correctness
Description
builder.sh ignores OPENIPC_FW_REPO and clones OpenIPC/firmware even when the workflow supplies
the fork URL. For this target, it then attempts to check out xiongmai-atbm60xx-wifi in the
upstream clone, so the build cannot use the branch containing the required Wi-Fi support.
Code

.github/workflows/master.yml[R317-318]

+          OPENIPC_FW_REPO: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'https://github.com/yatotoshka/firmware.git' || '' }}
+          OPENIPC_FW_REV: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'xiongmai-atbm60xx-wifi' || '' }}
Evidence
The workflow passes the fork URL and branch to the build, but the builder's clone command uses a
literal upstream URL; only the revision variable is read.

.github/workflows/master.yml[308-318]
.github/workflows/master.yml[331-344]
builder.sh[129-138]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The device-specific CI pin sets a firmware fork URL, but builder.sh always clones the upstream repository.
## Fix Focus Areas
- .github/workflows/master.yml[317-318]
- builder.sh[129-138]
## Recommended Fix
Update builder.sh to clone `OPENIPC_FW_REPO` when set, falling back to the current upstream URL otherwise. Retain the revision checkout and make clone or checkout failures stop the build.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Nightly builders cannot make this image 📘 Rule violation ☼ Reliability
Description
xm530_lite_anbiux-a8b-3mp_defconfig selects the ATBM60XX USB package supplied only by the stated
unmerged firmware dependency, while builder.sh defaults to upstream OpenIPC firmware. When
pull-request or nightly CI selects this target without OPENIPC_FW_REPO and OPENIPC_FW_REV, the
required XM530 driver and bring-up path are unavailable and no functional archive can be produced.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[R49-51]

+BR2_PACKAGE_ATBM60XX=y
+BR2_PACKAGE_ATBM60XX_MODEL_603X=y
+BR2_PACKAGE_ATBM60XX_INTERFACE_USB=y
Evidence
Rule 9 requires the complete device firmware to build successfully and produce its archive. The new
defconfig requires ATBM60XX USB support, while the standard builder defaults to upstream firmware
and the regular CI build supplies no custom firmware repository or revision; the PR description
explicitly identifies the required firmware change as an unmerged dependency without which this
device cannot be built.

Rule 8: Device Firmware Must Build Successfully and Fit the Target Flash
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[49-51]
builder.sh[129-143]
.github/workflows/master.yml[189-217]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new device requires firmware changes that are not present in the upstream repository cloned by automated builds.
## Issue Context
The manual `build-one` workflow exposes repository and revision overrides, but the regular PR and nightly workflow invokes `builder.sh` without them. Ensure the dependency is merged upstream before this device is registered, or provide a suitably pinned compatible firmware source for this target in automated CI.
## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[49-51]
- .github/workflows/master.yml[189-217]
- builder.sh[129-143]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Remove unused MT7601U firmware ✓ Resolved
Description
The device defconfig enables MediaTek MT7601U firmware even though this board uses the AltoBeam
ATBM6032 USB radio. This adds unrelated payload to an 8 MB image whose device-specific exclusions
already prune other unused WiFi stacks for space.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[62]

+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y
Evidence
Compliance rule 6 permits only hardware-required device payload. The defconfig identifies the radio
as ATBM6032 and enables ATBM60XX_MODEL_603X with USB at lines 48-51, while line 62 separately
enables firmware for the unrelated MediaTek MT7601U chipset; the customizer confirms the runtime
profile is atbm603x-xm530-usb.

Rule 5: Device Overlay and Kernel Payload Must Be Minimal and Necessary
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[48-51]
devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]
devices/xm530_lite_anbiux-a8b-3mp/general/overlay/usr/share/openipc/customizer.sh[10-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The device defconfig selects MT7601U firmware that is not used by the board's ATBM6032 radio.
## Issue Context
The device is configured for `atbm60xx` over USB and uses `atbm603x-xm530-usb`; the extra MediaTek firmware conflicts with the requirement to keep device payload minimal, especially for the configured 8 MB flash.
## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View action required (1)
4. New vendor breaks CI ✓ Resolved
Description
Adding BR2_OPENIPC_SOC_VENDOR="xiongmai" creates a new build trait, but no Xiongmai target is
added to SMOKE_TARGETS; ci-matrix.py --self-test therefore reports the uncovered
vendor:xiongmai trait and exits before the build matrix is selected. Because every PR, nightly,
and manual run executes that self-test, this device will not be built or published and its
configured latest/...-nor.tgz upgrade URL will have no release artifact.
Code

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38]

+BR2_OPENIPC_SOC_VENDOR="xiongmai"
Evidence
The new defconfig is the repository's only Xiongmai target. The selector derives a vendor: trait
from every defconfig, requires every trait among built targets to be represented by SMOKE_TARGETS,
and the workflow runs this self-test unconditionally before selecting a matrix.

devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38-40]
.github/scripts/ci-matrix.py[104-120]
.github/scripts/ci-matrix.py[146-174]
.github/scripts/ci-matrix.py[347-360]
.github/workflows/master.yml[48-55]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new Xiongmai device introduces the `vendor:xiongmai` CI trait, but the smoke matrix contains no target with that trait. The mandatory matrix self-test consequently fails and prevents all builds from starting.
## Issue Context
Add `xm530_lite_anbiux-a8b-3mp` to `SMOKE_TARGETS` (or replace an existing smoke target only if all existing trait and shared-directory coverage remains intact), then run `python3 .github/scripts/ci-matrix.py --self-test`.
## Fix Focus Areas
- .github/scripts/ci-matrix.py[104-120]
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[38-38]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y
BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Remove unused mt7601u firmware 📘 Rule violation ⚙ Maintainability

5

The device defconfig enables MediaTek MT7601U firmware even though this board uses the AltoBeam
ATBM6032 USB radio. This adds unrelated payload to an 8 MB image whose device-specific exclusions
already prune other unused WiFi stacks for space.
Agent Prompt
## Issue description
The device defconfig selects MT7601U firmware that is not used by the board's ATBM6032 radio.

## Issue Context
The device is configured for `atbm60xx` over USB and uses `atbm603x-xm530-usb`; the extra MediaTek firmware conflicts with the requirement to keep device payload minimal, especially for the configured 8 MB flash.

## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[61-62]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch 2 times, most recently from eb208b1 to e8f06b6 Compare August 26, 2026 14:50
@yatotoshka
yatotoshka marked this pull request as draft August 27, 2026 14:02
@yatotoshka
yatotoshka marked this pull request as ready for review August 27, 2026 14:02
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit e8f06b6

@yatotoshka
yatotoshka marked this pull request as draft September 6, 2026 20:59
@yatotoshka
yatotoshka marked this pull request as ready for review September 6, 2026 20:59
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 826ab1d

@yatotoshka
yatotoshka marked this pull request as draft September 7, 2026 16:17
@yatotoshka
yatotoshka marked this pull request as ready for review September 7, 2026 16:17
Comment on lines +49 to +51
BR2_PACKAGE_ATBM60XX=y
BR2_PACKAGE_ATBM60XX_MODEL_603X=y
BR2_PACKAGE_ATBM60XX_INTERFACE_USB=y

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Nightly builders cannot make this image 📘 Rule violation ☼ Reliability

8

xm530_lite_anbiux-a8b-3mp_defconfig selects the ATBM60XX USB package supplied only by the stated
unmerged firmware dependency, while builder.sh defaults to upstream OpenIPC firmware. When
pull-request or nightly CI selects this target without OPENIPC_FW_REPO and OPENIPC_FW_REV, the
required XM530 driver and bring-up path are unavailable and no functional archive can be produced.
Agent Prompt
## Issue description
The new device requires firmware changes that are not present in the upstream repository cloned by automated builds.

## Issue Context
The manual `build-one` workflow exposes repository and revision overrides, but the regular PR and nightly workflow invokes `builder.sh` without them. Ensure the dependency is merged upstream before this device is registered, or provide a suitably pinned compatible firmware source for this target in automated CI.

## Fix Focus Areas
- devices/xm530_lite_anbiux-a8b-3mp/br-ext-chip-xiongmai/configs/xm530_lite_anbiux-a8b-3mp_defconfig[49-51]
- .github/workflows/master.yml[189-217]
- builder.sh[129-143]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 826ab1d

@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from 826ab1d to 61ab904 Compare September 30, 2026 19:33
@yatotoshka
yatotoshka marked this pull request as draft September 30, 2026 20:20
@yatotoshka
yatotoshka marked this pull request as ready for review September 30, 2026 20:20
@yatotoshka
yatotoshka marked this pull request as draft September 30, 2026 20:21
@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from 61ab904 to 4215239 Compare September 30, 2026 20:24
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 61ab904

@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from 4215239 to 0986178 Compare September 30, 2026 20:27
@yatotoshka
yatotoshka marked this pull request as ready for review September 30, 2026 20:27
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 0986178

@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from 0986178 to 8d7b609 Compare September 30, 2026 21:02
@yatotoshka
yatotoshka marked this pull request as draft September 30, 2026 21:06
@yatotoshka
yatotoshka marked this pull request as ready for review September 30, 2026 21:06
Comment thread .github/workflows/master.yml Outdated
Comment on lines +317 to +318
OPENIPC_FW_REPO: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'https://github.com/yatotoshka/firmware.git' || '' }}
OPENIPC_FW_REV: ${{ matrix.platform == 'xm530_lite_anbiux-a8b-3mp' && 'xiongmai-atbm60xx-wifi' || '' }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Pinned builds never use the wi-fi fork 🐞 Bug ≡ Correctness

builder.sh ignores OPENIPC_FW_REPO and clones OpenIPC/firmware even when the workflow supplies
the fork URL. For this target, it then attempts to check out xiongmai-atbm60xx-wifi in the
upstream clone, so the build cannot use the branch containing the required Wi-Fi support.
Agent Prompt
## Issue description
The device-specific CI pin sets a firmware fork URL, but builder.sh always clones the upstream repository.
## Fix Focus Areas
- .github/workflows/master.yml[317-318]
- builder.sh[129-138]
## Recommended Fix
Update builder.sh to clone `OPENIPC_FW_REPO` when set, falling back to the current upstream URL otherwise. Retain the revision checkout and make clone or checkout failures stop the build.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 8d7b609

The defconfig selects the atbm60xx driver (603x, USB) on top of
xm530_lite, and drops the MT7601U firmware this radio does not use.
The customizer sets wlandev to the atbm603x-xm530 case in
firmware's /etc/wireless/usb and wifipdn to the PDN gpio the case
reads at run time (after which S40network applies the MAC and runs
ifup), and points the upgrade url at this device's builder release.

Depends on OpenIPC/firmware#2316: it provides the bring-up case, the
depmod pass that makes the driver stack resolvable by modprobe, and
the cfg80211 coexistence (the vendor rewrite ships as
cfg80211_xm711.ko, atbm60xx uses the in-tree module). This profile
stays a draft until firmware#2316 merges; once it lands, the regular
CI builds a functional image for this device from upstream firmware.

xm530_lite_anbiux-a8b-3mp joins SMOKE_TARGETS: the vendor:xiongmai
trait must be covered or ci-matrix.py's self-test refuses to select a
build matrix.
@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from 8d7b609 to 6372b60 Compare September 30, 2026 22:03
@yatotoshka
yatotoshka marked this pull request as draft September 30, 2026 22:16
@yatotoshka
yatotoshka marked this pull request as ready for review September 30, 2026 22:16
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 6372b60

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants