Skip to content

toolchain: build the Ambarella S3L one - #2765

Merged
openipc-ai merged 1 commit into
masterfrom
ambarella-s3l-toolchain
Nov 6, 2026
Merged

openipc-ai merged 1 commit into
masterfrom
ambarella-s3l-toolchain

Conversation

@openipc-ai

@openipc-ai openipc-ai commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

s3l_lite_defconfig downloads toolchain.ambarella-s3l.tgz, which was never published because the board wasn't in this list. The URL returns 404, so make BOARD=s3l_lite can't start without a hand-built toolchain.

This adds s3l_lite to the list in toolchain.yml. make BOARD=s3l_lite toolname gives toolchain.ambarella-s3l, so the upload lands at the URL the defconfig asks for.

Merge #2764 first. The toolchain is built from s3l_lite_defconfig, and master still targets a Cortex-A7 until #2764 is in. The full run skips anything already published, so an A7 toolchain published first would stay until someone named it for a rebuild. The order after merging is #2764, then this PR, then a toolchain run with platforms: s3l_lite.

Tested: ci-matrix.py --self-test passes, the workflow parses as YAML, and the toolchain name resolves as above.

Not tested: the toolchain build itself. toolchain.yml runs by manual dispatch only, so its first real run is after merge. The result will be recorded here.

Hardware evidence: none. No image built with this toolchain has run on a camera, and it reaches no deployed one: s3l_lite isn't in the build matrix or the releases. The one S3L board known to be running OpenIPC uses its owner's glibc armhf toolchain.

S3L stays in UNBUILT_FAMILIES in ci-matrix.py, so this PR doesn't add it to the firmware build matrix.

s3l_lite_defconfig downloads toolchain.ambarella-s3l.tgz, which was
never published, because the board was not in this list. So
`make BOARD=s3l_lite` cannot start without a hand-built toolchain.

The board stays out of ci-matrix.py's ALL_BOARDS. This only makes the
toolchain exist.
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

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

Grey Divider


Remediation recommended

1. Toolchain build for S3L ships without any board evidence 📘 Rule violation ≡ Correctness
Description
The diff adds s3l_lite to the platforms list in toolchain.yml, so a manual toolchain run
will build and publish the toolchain that s3l_lite_defconfig downloads for every image built from
that defconfig. The PR description says the toolchain build itself is untested and that its first
real run happens after merge, and no hardware output, boot log, or before/after evidence is given
for the board. Because the published toolchain becomes the build input for every s3l_lite image,
this change alters image bytes, yet the only evidence offered is that ci-matrix.py --self-test
passes, the YAML parses, and the name resolves.
Code

.github/workflows/toolchain.yml[R73-74]

+          # Ambarella
+          s3l_lite
Evidence
The PR states the toolchain build is not tested and offers only self-test, parse, and
name-resolution evidence, while the workflow change feeds the s3l_lite image build, which the rule
treats as needing board-level evidence rather than CI-only checks.

Rule 3: Hardware evidence is present and honest
.github/workflows/toolchain.yml[73-74]

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 `s3l_lite` entry added to `.github/workflows/toolchain.yml` (lines 73-74) becomes the build input for `s3l_lite_defconfig` images, but the PR description supplies only self-test, YAML-parse, and name-resolution evidence and states the toolchain build is untested.
## Fix Focus Areas
- .github/workflows/toolchain.yml[73-74]
## Recommended Fix
Add to the PR description the evidence this change class admits: the output of a real `toolchain` run with `platforms: s3l_lite` (or a clearly labelled plan to run it), the published toolchain URL and checksum, and a statement of which S3L board it has been booted on, or state plainly that no hardware exists yet and that the change reaches no deployed camera.

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


2. Full toolchain run would publish an A7 S3L toolchain 🐞 Bug ≡ Correctness
Description
Adding s3l_lite to the ALL list makes the no-input full run build it from s3l_lite_defconfig
as it exists on master, which still sets BR2_cortex_a7=y. The full run skips any toolchain already
published, so that Cortex-A7 artifact would stay under toolchain.ambarella-s3l.tgz until someone
names the board explicitly for a rebuild.
Code

.github/workflows/toolchain.yml[R73-74]

+          # Ambarella
+          s3l_lite
Evidence
The ALL list in the select job is the default set for a dispatch with empty platforms, and the
build step skips any toolchain whose URL already answers wget --spider. The defconfig on this
branch still selects BR2_cortex_a7=y, so a full run before #2764 lands would build and publish the
wrong architecture. The PR description calls for the order #2764, then this PR, then a named run,
but that order exists only in prose and nothing in the diff enforces it.

.github/workflows/toolchain.yml[70-76]
br-ext-chip-ambarella/configs/s3l_lite_defconfig[1-5]
.github/workflows/toolchain.yml[27-43]

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 S3L board is added to the default toolchain list in `.github/workflows/toolchain.yml` while `br-ext-chip-ambarella/configs/s3l_lite_defconfig` on master still targets Cortex-A7. An empty-input full run after this merges would publish an A7 toolchain under the URL the S3L defconfig consumes, and the skip-if-published logic would keep it.
## Fix Focus Areas
- .github/workflows/toolchain.yml[73-74]
- br-ext-chip-ambarella/configs/s3l_lite_defconfig[1-5]
## Recommended Fix
Do not merge this PR until #2764 (the Cortex-A7 to S3L architecture change) is on master, and rebase onto it so the defconfig the workflow reads is the corrected one. Alternatively, keep the list entry out of the default set until the toolchain has been built once. Verify the first published artifact by running the `toolchain` workflow with `platforms: s3l_lite` and checking the archive's ELF architecture.

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


Grey Divider

Tip of the day
💡 Did you know, you can switch off images and animations for a plain-text comment

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

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

Copy link
Copy Markdown

PR Summary by Qodo

Publish the Ambarella S3L toolchain through the manual workflow

⚙️ Configuration changes ✨ Enhancement 🕐 Less than 10 minutes

Grey Divider

AI Description

• Add s3l_lite to the toolchain workflow so it can publish the asset required by its defconfig.
• Keep S3L out of the firmware CI matrix; merge #2764 before running the toolchain workflow.
Diagram

graph TD
  SELECT["Platform selection"] --> MATRIX["Toolchain job"] --> MAKE["Make toolchain"] --> RELEASE[("Release asset")] --> CONFIG["S3L defconfig"]
Loading
High-Level Assessment

Adding the board to the existing curated toolchain list is the smallest appropriate change and leaves firmware CI selection untouched. Merge #2764 first, then run the manual workflow with platforms: s3l_lite to build the intended toolchain; the build itself remains unverified.

Files changed (1) +3 / -0

Other (1) +3 / -0
toolchain.ymlInclude s3l_lite in toolchain platform selection +3/-0

Include s3l_lite in toolchain platform selection

• Adds s3l_lite to the manual workflow's curated platform list. This permits a toolchain job to publish toolchain.ambarella-s3l.tgz, the archive requested by the board's defconfig.

.github/workflows/toolchain.yml

@openipc-ai
openipc-ai merged commit 7e0aab9 into master Nov 6, 2026
30 of 31 checks passed
@openipc-ai
openipc-ai deleted the ambarella-s3l-toolchain branch November 6, 2026 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant