rpi-expert

Answers Raspberry Pi 5 low-level hardware questions using BCM2712 and RP1 sources under clean-room rules.

2|Updated May 13, 2026
One-click install
npx skills add https://github.com/curtisgalloway/public-skills --skill rpi-expert-curtisgalloway
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rpi-expert
Source: https://github.com/curtisgalloway/public-skills/tree/main/plugins/driver-porting/skills/rpi-expert
Command: npx skills add https://github.com/curtisgalloway/public-skills --skill rpi-expert-curtisgalloway

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Bringing up an OS or writing bare-metal code on the Raspberry Pi 5 requires accurate knowledge of the BCM2712 SoC and RP1 southbridge — memory maps, boot chain hand-off, interrupts, clocks — but there is no public BCM2712 peripherals datasheet, and reading GPL driver source directly can contaminate clean-room reimplementation efforts. ## Core Features & Use Cases - Board-specific knowledge base: Provides memory map and MMIO addresses, device tree structure, boot chain and EL2 hand-off contract, PSCI/SMP, GIC-400 interrupts, timers, clocks, UART/GPIO, and PCIe/RP1 topology for the Pi 5 and CM5. - Curated source cache: Clones and maintains the Raspberry Pi Linux tree, ARM Trusted Firmware-A, firmware blobs, and official datasheets under a local resource directory for grounded answers. - Clean-room subagent isolation: Runs as a delegated subagent so the main agent never reads GPL source, returning hardware facts and mechanism descriptions without any source code. - Use Case: While porting an OS to the Pi 5, ask where the debug UART lives and how secondary cores start; the expert returns the PL011 address 0x10_7D00_1000 and the PSCI CPU_ON mechanism with citations, not code. ## Quick Start Ask the agent to spawn the rpi-expert subagent and answer a specific Raspberry Pi 5 bring-up question, such as where the debug UART is mapped and how the boot chain hands off to your kernel.

Frequently Asked Questions about rpi-expert

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the Raspberry Pi 5 debug UART address for early console?▼

The Pi 5 debug UART is the on-SoC PL011 uart10 at physical address 0x10_7D00_1000, exposed on the dedicated 3-pin debug connector. Use earlycon=pl011,0x107d001000,115200n8; the 40-pin header UART is RP1's uart0 behind PCIe and unavailable early.

Is there a public BCM2712 peripherals datasheet?▼

No public BCM2712 peripherals datasheet exists; the commonly cited link is dead per Raspberry Pi staff. The device tree is the primary public address map, and the BCM2711 datasheet covers shared IP blocks like PL011, system timer, mailbox, and SDHCI.

How does SMP secondary core startup work on Raspberry Pi 5?▼

Secondary cores start exclusively via PSCI CPU_ON calls to TF-A BL31; there is no spin-table. CPU reg values 0x000 through 0x300 are MPIDR affinities where Aff1 identifies the core.

Why can't my bare-metal code reach RP1 peripherals on the Pi 5?▼

RP1 sits behind the internal x4 PCIe link, which firmware resets before kernel launch by default. Set pciex4_reset=0 in config.txt so firmware leaves the root complex and RP1 BARs configured, then access RP1 through the CPU physical window at 0x1F_0000_0000.

Can the main agent read the rpi5-resources cache directly?▼

No. The cache contains GPL-licensed Linux and TF-A source, so only the rpi-expert subagent reads it and returns clean-room facts. Direct access by the main agent would break the clean-room boundary protecting differently-licensed target code.