Skip to content

arm64: add RK3576 AMP slave and microphone support - #391

Open
dairoot wants to merge 2 commits into
open-vela:dev-ai-contest-2026from
dairoot:codex/rk3576-amp-contest-2026
Open

dairoot wants to merge 2 commits into
open-vela:dev-ai-contest-2026from
dairoot:codex/rk3576-amp-contest-2026

Conversation

@dairoot

@dairoot dairoot commented Sep 19, 2026

Copy link
Copy Markdown

Summary

Add the RK3576 chip support required by contest2026_290_dairoot on KickPi K7. openvela runs on Cortex-A53 cpu3 alongside a seven-core Linux host. This submits the project's six existing nuttx-side patches to the public repository's dev-ai-contest-2026 branch.

  • Add chip selection, boot/MMU mappings, UART5 console and SoC clock/pinmux helpers.
  • Add optional CONFIG_ARM64_GIC_SLAVE support so Linux retains ownership of the GICv2 distributor.
  • Add the RPMsg/OpenAMP remote backend with the resource table and shared-memory layout used by the Linux AMP configuration.
  • Add PDM1 and SAI2 microphone capture, including corrected IOC pull encoding and PDM clock/pinmux reassertion at capture start.

Impact

The new chip is selected explicitly; ARM64_GIC_SLAVE defaults to off. Existing GIC initialization remains unchanged when this option is disabled. The AMP setup requires the matching Linux reserved-memory, interrupt-routing and peripheral-ownership configuration. Capture polls the FIFO because Linux owns the DMA controllers.

Board configuration, Linux integration and build instructions are in the competition board README. Published firmware is available in the competition Release. Board/vendor code remains in the dedicated competition repository.

Testing

  • Applied all six patches cleanly to competition baseline dd92bcf425738734d1b8aed09c2bd4dbe3f2e438. Before style cleanup, the resulting tree exactly matched the development server: e6e03a51cda52ee58a00dbbe97ad6fb9feac8544.
  • git diff --check passed.
  • tools/checkpatch.sh -g upstream/dev-ai-contest-2026..HEAD passed locally on macOS with cmake-format available.
  • Compared C tokens before and after the separate style cleanup commit: all nine changed files are identical after excluding comments and whitespace.
  • A fresh firmware build and hardware boot/RPMsg/audio tests were not rerun for this submission. Existing development records and reproduction steps are linked in the board README; they are not presented as new test results.

Add the RK3576 chip layer used by contest2026_290_dairoot on KickPi K7: boot and memory mappings, UART5, RPMsg/OpenAMP remote transport, and PDM/SAI microphone capture. Keep the GICv2 distributor under Linux ownership through the optional ARM64_GIC_SLAVE configuration.

Includes the six published nuttx-side patches, including the IOC pull encoding correction and PDM clock/pinmux reassertion on capture start. The resulting source tree is unchanged from the development branch.

Signed-off-by: dairoot <623815825@qq.com>
Correct source paths in file headers, add standard section headings, wrap long comments and expand resource-table reserved initializers. Preserve all C tokens and runtime behavior.

Signed-off-by: dairoot <623815825@qq.com>
@dairoot
dairoot requested review from a team as code owners September 19, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant