Skip to content

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

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

xm530: add anbiux A8B-3MP (IPC-RB-BLK530AI, ATBM6032 USB WiFi)#130
yatotoshka wants to merge 2 commits 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 e8f06b6):

  • 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-usb (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, 8188fu) 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.

Build support (commit 826ab1d):

  • builder.sh — the firmware clone is routed through
    ${OPENIPC_FW_REPO:-https://github.com/OpenIPC/firmware.git}; with the
    variable unset the behaviour is exactly as before.
  • build-one — new firmware_repo input next to the existing firmware_ref,
    so a device that depends on unmerged firmware changes can be built against a
    fork.
  • It lives in this PR because this device cannot be built against upstream
    master until xm530: bring up the AltoBeam ATBM6032 USB WiFi chip firmware#2316 is merged; the input is what makes that
    build possible (and is generally useful for any cross-repo bisect against a
    fork).

Dependency

OpenIPC/firmware#2316 (rebased
on upstream master 317b443d, 2026-09-06; draft until its clean-build path is
verified on-device): without it the image has no atbm60xx module, no
/etc/wireless/usb case, and no depmod pass over the merged target (the
vendor modules.dep leaves dwc_otg/wifi_pdn invisible to modprobe), so
the radio cannot load. It also makes the vendor cfg80211 rewrite coexist with
the in-tree one instead of over it. This profile keeps the atbm60xx selection
explicit in its defconfig snapshot and adds the per-device parts: first-boot
wlandev/wifipdn, the device upgrade url, and the prune list.

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/wifipdnS40network → the
wireless/usb case) is what a build of this branch will verify end to end.

How to build (before #2316 is merged)

build-one with platform=xm530_lite_anbiux-a8b-3mp,
firmware_repo=https://github.com/yatotoshka/firmware.git,
firmware_ref=xiongmai-atbm60xx-wifi → publishes
xm530_lite_anbiux-a8b-3mp-nor.tgz, the same name the customizer's upgrade url
points at.

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 a default-preserving override (unset → identical clone behaviour as before)

@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 Anbiux A8B-3MP XM530 profile and forkable firmware builds

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

Grey Divider

AI Description

• Adds an XM530 profile with ATBM6032 USB Wi-Fi support and device-specific boot settings.
• Prunes unused wireless modules to fit the XM530 lite image.
• Allows CI builds to clone pinned firmware refs from alternate repositories.
Diagram

graph TD
  A["Build-One Workflow"] -->|repo and ref| B["Builder Script"] -->|clone| C["Firmware Source"] -->|prepare| D["Merged Build Tree"] -->|compile| E["XM530 Image"] -->|first boot| F["Device Customizer"] -->|configure| G["ATBM6032 WiFi"]
  H["XM530 Profile"] -->|overlay and config| D
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Wait for upstream firmware merge
2. Carry firmware changes in builder
  • ➕ Makes the device build self-contained in one repository
  • ➕ Avoids exposing an alternate firmware repository input
  • ➖ Duplicates common firmware and driver logic
  • ➖ Breaks separation between device profiles and shared firmware support
  • ➖ Increases long-term maintenance and divergence risk

Recommendation: Keep the PR's default-preserving firmware repository override and device-local profile. It enables immediate testing against the dependent fork without duplicating shared firmware logic, while remaining useful for future cross-repository bisects after the dependency merges.

Files changed (7) +109 / -5

Enhancement (2) +90 / -0
xm530_lite_anbiux-a8b-3mp_defconfigDefine the XM530 Anbiux firmware profile +71/-0

Define the XM530 Anbiux firmware profile

• Adds an 8 MB XM530 lite Buildroot configuration selecting the Xiongmai platform and ATBM60XX 603X USB driver. It excludes unrelated MT7601U firmware while retaining the standard camera services and Web UI.

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

customizer.shConfigure ATBM6032 Wi-Fi on first boot +19/-0

Configure ATBM6032 Wi-Fi on first boot

• Sets the device-specific upgrade URL, selects the XM530 ATBM603X USB bring-up path, and records GPIO 96 as the Wi-Fi power-down pin. It schedules a reboot so the persisted environment settings take effect.

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

Tests (1) +1 / -0
ci-matrix.pyCover the Xiongmai profile in smoke builds +1/-0

Cover the Xiongmai profile in smoke builds

• Adds the Anbiux XM530 target to 'SMOKE_TARGETS', ensuring the new 'vendor:xiongmai' trait remains represented and passes matrix self-validation.

.github/scripts/ci-matrix.py

Documentation (1) +1 / -0
README.mdList the Anbiux A8B-3MP device +1/-0

List the Anbiux A8B-3MP device

• Documents the XM530AI camera, SC3335 sensor, ATBM603X USB radio, 8 MB NOR flash, and current support status.

README.md

Other (3) +17 / -5
build-one.ymlExpose an alternate firmware repository input +5/-1

Expose an alternate firmware repository input

• Adds the optional 'firmware_repo' workflow input and exports it as 'OPENIPC_FW_REPO'. This allows one-off builds to pair a firmware fork with an explicit branch, tag, or SHA.

.github/workflows/build-one.yml

builder.shClone firmware from a configurable repository +7/-4

Clone firmware from a configurable repository

• Routes both shallow and ref-pinned firmware clones through 'OPENIPC_FW_REPO', retaining the upstream OpenIPC repository as the default. This supports forks carrying firmware changes not yet merged upstream.

builder.sh

xm530_lite.listRemove unused Xiongmai wireless modules +5/-0

Remove unused Xiongmai wireless modules

• Excludes the XM711, compatibility, and RTL8188FU modules from this device image. The reclaimed root filesystem space accommodates the required 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. Remove unused MT7601U firmware 📘 Rule violation ⚙ Maintainability
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


2. New vendor breaks CI 🐞 Bug ≡ Correctness
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 changes firmware build routing, CI inputs, device configuration, boot-time WiFi initialization, and artifact upgrade behavior across several independent paths, so it carries meaningful integration risk but not enough dense logic to warrant redundant extended review.

Grey Divider

Tip of the day
💡 Did you know, you can show, collapse, or hide each part of a finding: code, evidence, and all

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit 826ab1d ⚖️ Balanced

Results up to commit e8f06b6


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


Action required
1. Remove unused MT7601U firmware 📘 Rule violation ⚙ Maintainability
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


2. New vendor breaks CI 🐞 Bug ≡ Correctness
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


Results up to commit adc174d


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


Action required
1. Remove unused MT7601U firmware 📘 Rule violation ⚙ Maintainability 5
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


2. New vendor breaks CI 🐞 Bug ≡ Correctness
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:<value>
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

BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="xiongmai"

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

2. New vendor breaks ci 🐞 Bug ≡ Correctness

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.
Agent Prompt
## 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

@yatotoshka
yatotoshka force-pushed the xm530-lite-anbiux-a8b-3mp branch from adc174d to eb208b1 Compare August 26, 2026 14:44
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-usb case in
firmware's /etc/wireless/usb and wifipdn to the PDN gpio (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).

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 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

builder.sh hardcoded the OpenIPC/firmware clone URL, so a device could
never be built against a fork carrying unmerged changes (e.g. the
xiongmai ATBM6032 USB WiFi branch). Route the clone through
${OPENIPC_FW_REPO:-https://github.com/OpenIPC/firmware.git} and expose
it as the firmware_repo input of build-one, next to firmware_ref.
@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

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