Enhancement request: add --board or BOARD= to scripts (for Main SOC) #126
|
@jnilo1 Thanks for your quick actions on #124 and other enhancement requests. Could you please start to add command/makefile option to specify alternative boards for all related scripts including efr32 firmware build, so we can have builds for all boards in one branch? Thanks a lot! |
Replies: 10 comments
|
Hi @hlyi, Agreed in principle — with v3.10.0 the kernel side already works this way ( What "BOARD=" means for the radio firmwareThe G4's radio is an EFR32MG13P732HI — a different chip from the Lidl's EFR32MG1B232F256GM48, not just different wiring: different flash/RAM size, different part number for the slc generator, its own Gecko bootloader build (23-Bootloader), and its own pin/VCOM routing. So a board entry on the radio side is a per-board configuration set, roughly: with the build scripts ( The deal: sharing in both directionsI have no G4 hardware, and radio firmware is not something I will ship untested: a wrong pin map or bootloader layout bricks the chip side until SWD rescue. So the split I propose:
And to make the G4 a first-class citizen rather than scattered comments across five discussions, please post the complete parameter set that makes your box work, so I can turn it into a dedicated G4 documentation page in the repo (a "ports to other boards" section). Concretely:
Everything we shipped in v3.10.0 for the G4 was built blind on your reports — the documentation page closes the loop, and the next G4 owner gets a working recipe instead of an archaeology project. To size the first stepWhich firmware variants do you actually need for the G4 — NCP only, or also OT-RCP / the standalone router? I would rather wire P.S. — you have opened five enhancement requests and we have shipped a release largely built around your port; if the project is useful to you, a star on the repo is the cheapest way to say so. 😉 |
|
@jnilo1 Thanks a lot for adding the support of alternative board! I just created PR #127 for testing the alternative build. Need your help to address the following issues before the alternative build can coexist with the default one:
P.S. Sorry, I thought I already "star'ed" the project, maybe I doubled clicked it. Anyway, you are deserving more stars, I wish I could give multiple stars! Again, greatly appreciate your support! |
|
Hi @hlyi, Thanks for PR #127 — full review posted there (summary: the DTS compiles and merges cleanly against v3.10.0; the boothold relocation is conceptually right but needs the kernel/userspace side to follow, which we are taking on; two trivial fixes on your side). Point-by-point on the four items: 1. Per-board kernel config — already in place, give it a try
A common-file + fragment merge would only become necessary if a board someday needs config deltas beyond the DTB choice (different drivers, sizes, …). None is needed for the G4 so far, so we'd rather not add the machinery speculatively. 2.
|
|
@jnilo1 Thanks for accepting the PR and creating
I will test |
|
Hi @hlyi, Great round — point by point: 1. Per-board kernel configGlad it worked as designed, thanks for confirming. 2. Bootloader
|
|
Hi @jnilo1 ,
Some questions regarding your setting |
|
Hi @hlyi, Noted on 1–3 — glad the 1 s hold is reliable, and we'll wait for your parameter set and radio results for the doc page. Your You were right: the 1-1 mapping holds on both boardsThe visual re-test falsified our "LAN LED on B2" claim. Ground truth on the Lidl, verified by eye:
So the Lidl LAN LED is on B6 = LED_PORT4, matching its switch port 4 — exactly the Table 36 1-1 naming you read from the spec. Your G4 (port 0 → B2 = LED_PORT0) follows it too. The wrong claim traced back to an early bring-up misdiagnosis: B2 had been driven as a GPIO, the LED didn't react, and that was read as "the LED is hardwired to the ASIC output, bypassing the pin mux" — when in fact the LED simply was never on B2. The pin mux works exactly as documented. Which means v2.8 as shipped had a regressionWith
Note the prebuilt Lidl kernel image on the branch still predates this fix; it will be refreshed with the next batch. Your G4 builds compile the DTS from source, so you get the fix on your next build with nothing to do. Why we still keep the property declaredFull credit: deriving the LED pads from |
|
@jnilo1 Thanks for debugging this! And glad to hear we are aligned. I tested this build on Sengled G4. It worked as expected 👍 Since we have a different thread #130 for radio build support, this thread is for main SoC multiple platform support, which you already successfully accomplished it. Shall we merge this branch to main, and I can close this discussion? |
|
Glad the build works as expected on the G4 — and thanks again for catching the LED-pad regression; that was a good save. On merging to
|
Glad the build works as expected on the G4 — and thanks again for catching the LED-pad regression; that was a good save.
On merging to
mainThe SoC-side multi-board support is done and accepted, so from your side this thread's goal is reached. The one nuance is when it reaches
main:v3.11.0-preis the public integration branch, and it merges intomainas a single squashed commit at the v3.11.0 release — not before. That release will also carry two things still landing on the branch:BOARD=work from #130 (the EFR32 half of the same generalization), andSo nothing is lost by leaving
preto accumulate a little longer —…