Skip to content

Meta: LPC port completion — Stage 3 fbuild-side items from FastLED #2845 #456

@zackees

Description

@zackees

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions