indiedroid-nova-expert

Provides hardware facts and bring-up guidance for Indiedroid Nova and Rockchip RK3588S boards.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Bringing up an OS or bare-metal code on Rockchip RK3588S boards requires accurate memory maps, MMIO addresses, boot-chain details, and interrupt controller specifics that are scattered across device trees, datasheets, and kernel sources. This Skill supplies that board knowledge while enforcing a clean-room boundary so GPL kernel source never leaks into differently-licensed target code. ## Core Features & Use Cases - Board quick-facts: Delivers concrete RK3588S details such as the GIC-600 (GICv3) register map, DesignWare 8250 debug UART at 0xFEB5_0000 with 1.5 Mbaud console, 24 MHz architected timer, CRU clock/reset control, and GRF-based pinmux. - Boot chain and SMP guidance: Documents the BootROM → DDR blob → TF-A BL31 → U-Boot → EL2 kernel flow, PSCI CPU_ON secondary-core startup, and SCMI-over-SMC for CPU DVFS. - Clean-room subagent workflow: Runs as a delegated subagent that clones mainline Linux, TF-A, U-Boot, and rkbin sources, reads them for behavior, and reports facts without pasting source code. - Use Case: While porting an OS to the Indiedroid Nova, ask why the console stays silent from reset; the expert explains the UART2 IOMUX must be configured via the GRF using the uart2m0_xfer pin group before output appears. ## Quick Start Ask the agent to spawn the indiedroid-nova-expert subagent and answer a specific RK3588S hardware question, such as how to initialize the GIC-600 redistributors on secondary cores.

Frequently Asked Questions about indiedroid-nova-expert

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

FAQPage Schema
How do I set up the debug UART console on RK3588S boards?▼

The RK3588S debug console is a DesignWare 8250 UART at 0xFEB5_0000 with reg-shift 2 and mmio32 access, defaulting to 1.5 Mbaud 8N1. You must configure the GRF IOMUX for the uart2m0_xfer pin group on the Indiedroid Nova before any output appears.

How do I bring up secondary CPU cores on the RK3588?▼

Secondary cores start via PSCI CPU_ON over SMC, with MPIDR values of N<<8 for core N (Aff1 = core index, Aff0 = 0). The boot core is typically CPU0, a Cortex-A55, and the kernel is entered at EL2 with MMU and D-cache off.

Does the RK3588 use GICv2 or GICv3?▼

The RK3588 uses a GIC-600, which is GICv3, not GICv2. The CPU interface uses ICC_*_EL1 system registers, each core must wake its redistributor by clearing GICR_WAKER.ProcessorSleep, and device tree interrupt cells use 4 fields.

Why is my RK3588 bare-metal console silent despite the correct UART address?▼

Silence usually means the UART2 pins were never muxed through the GRF pinctrl, which U-Boot normally does for you. A from-reset bare-metal path must set the IOMUX registers itself, and the peripheral's CRU clock gate and reset may also need clearing.

Can the main agent read RK3588 kernel source directly when using this skill?▼

No. The skill is designed to run as a delegated subagent so the orchestrating agent never pulls GPL kernel source into its context, preserving the clean-room boundary for differently-licensed target code. The subagent returns hardware facts and behavior descriptions only.