Carved out from the closing of FastLED meta #2845 (Stage 3 fbuild-side items).
Background
The Stage 4 work on the FastLED side (LPC11Uxx clockless, LPC15xx clockless, APA102 SPI) shipped via FastLED #2872 + #2876. What remains on Stage 3 is split between hardware bring-up (covered at FastLED #2880) and fbuild software work, which lives here.
Items
3.1 — Real SystemInit for LPC845
FRO 30 MHz + PLL + flash wait states per NXP UM11029 §4. Currently a no-op stub in crates/fbuild-build/src/nxplpc/assets/startup_lpc845.S. The bit-bang cycle counts in FastLED clockless_arm_lpc.h derive from F_CPU = 30_000_000UL; without a real PLL config the LPC845 boots at 12 MHz IRC and timing is off by 2.5x. Hardware verification required.
3.2 — Real SystemInit for LPC804
UM11065 §4. Leave at 15 MHz default unless PLU clocking (FastLED #2848) requires a PLL boost. Document the choice in startup asm comments. Hardware verification required.
3.3 — Vector table expansion
Currently ships the ARMv6-M 16-entry system minimum. Add peripheral IRQs as drivers reach a state where they need them:
- DMA-end IRQ for the SCT + DMA-to-GPIO clockless driver (FastLED #2842 / #2850).
- SCT match IRQ for the SCT driver.
- USART RX for the AutoResearch UART hook (FastLED #2880, Stage 3.6).
3.4 — Per-chip mcu_config split in get_nxplpc_config
get_nxplpc_config currently ignores the mcu arg and returns shared config. Split when Stage 2b/2c flag divergence requires it: PLU defines for LPC804 (FastLED #2841 / #2848), FASTLED_LPC_PWM_DMA for LPC845 (FastLED #2842 / #2850).
3.7 — fbuild CI continue-on-error: true flip
Workflows at .github/workflows/build-lpc804.yml + build-lpc845.yml. Drop continue-on-error: true once 3.1 + 3.5 land and bash compile lpc845 --examples Blink is green end-to-end on real silicon.
3.8 — validate_boards.py reconciliation
Already partially filed at #421/#422 — that's the "boards in the fbuild-native registry not in the PIO source" case. Confirm the LPC845/LPC804 entries are reconciled as part of closing this meta.
Ownership
- 3.1, 3.2, 3.3, 3.4, 3.7, 3.8 — fbuild, all in
crates/fbuild-build/src/nxplpc/ and crates/fbuild-config/assets/boards/json/.
- 3.5 (linker verification on hardware) — FastLED #2880.
- 3.6 (AutoResearch UART) — FastLED #2880.
Why a meta on the fbuild side
These six items have substantial cross-dependencies (3.3 depends on which drivers ship; 3.4 on which features they activate; 3.7 on 3.1 + hardware). Tracking them in a single fbuild meta is cleaner than scattered single-item issues against a partly-complete LPC port.
References
- FastLED meta #2845 — original cross-repo roadmap (closing as superseded)
- FastLED #2880 — hardware bring-up companion
- NXP UM11029, UM11065 — LPC8xx user manuals
🤖 Filed via Claude Code on behalf of the FastLED meta-#2845 close-out.
Carved out from the closing of FastLED meta #2845 (Stage 3 fbuild-side items).
Background
The Stage 4 work on the FastLED side (LPC11Uxx clockless, LPC15xx clockless, APA102 SPI) shipped via FastLED #2872 + #2876. What remains on Stage 3 is split between hardware bring-up (covered at FastLED #2880) and fbuild software work, which lives here.
Items
3.1 — Real
SystemInitfor LPC845FRO 30 MHz + PLL + flash wait states per NXP UM11029 §4. Currently a no-op stub in
crates/fbuild-build/src/nxplpc/assets/startup_lpc845.S. The bit-bang cycle counts in FastLEDclockless_arm_lpc.hderive fromF_CPU = 30_000_000UL; without a real PLL config the LPC845 boots at 12 MHz IRC and timing is off by 2.5x. Hardware verification required.3.2 — Real
SystemInitfor LPC804UM11065 §4. Leave at 15 MHz default unless PLU clocking (FastLED #2848) requires a PLL boost. Document the choice in startup asm comments. Hardware verification required.
3.3 — Vector table expansion
Currently ships the ARMv6-M 16-entry system minimum. Add peripheral IRQs as drivers reach a state where they need them:
3.4 — Per-chip
mcu_configsplit inget_nxplpc_configget_nxplpc_configcurrently ignores themcuarg and returns shared config. Split when Stage 2b/2c flag divergence requires it: PLU defines for LPC804 (FastLED #2841 / #2848),FASTLED_LPC_PWM_DMAfor LPC845 (FastLED #2842 / #2850).3.7 — fbuild CI
continue-on-error: trueflipWorkflows at
.github/workflows/build-lpc804.yml+build-lpc845.yml. Dropcontinue-on-error: trueonce 3.1 + 3.5 land andbash compile lpc845 --examples Blinkis green end-to-end on real silicon.3.8 —
validate_boards.pyreconciliationAlready partially filed at #421/#422 — that's the "boards in the fbuild-native registry not in the PIO source" case. Confirm the LPC845/LPC804 entries are reconciled as part of closing this meta.
Ownership
crates/fbuild-build/src/nxplpc/andcrates/fbuild-config/assets/boards/json/.Why a meta on the fbuild side
These six items have substantial cross-dependencies (3.3 depends on which drivers ship; 3.4 on which features they activate; 3.7 on 3.1 + hardware). Tracking them in a single fbuild meta is cleaner than scattered single-item issues against a partly-complete LPC port.
References
🤖 Filed via Claude Code on behalf of the FastLED meta-#2845 close-out.