RP2350 contains two Arm Cortex-M33 cores and two open-hardware Hazard3 RISC-V cores. You pick which pair runs when you program the chip; the boot ROM detects which architecture a binary was built for and reboots into the matching mode.
What you lose in RISC-V mode
Everything works except some security features and the double-precision floating-point accelerator. If you need Arm TrustZone-based security or fast double-precision math, stay on Arm.
Building for RISC-V
- Get a RISC-V toolchain. The
raspberrypi/pico-sdk-toolsreleases contain prebuilt ones (including for Raspberry Pi OS); the Pico VS Code extension can also manage toolchains. - Configure a fresh build directory:
export PICO_TOOLCHAIN_PATH=/opt/riscv/riscv-toolchain-14/
export PICO_PLATFORM=rp2350-riscv
cmake -S . -B build-riscv -DPICO_BOARD=pico2
cmake --build build-riscv
Don't reuse an Arm build directory; the platform is fixed when CMake configures it.
Switching at runtime
picotool reboot -c riscv (or -c arm) reboots an RP2350 into the chosen architecture where possible, which is handy for comparing both builds on the same board.
When it makes sense
- Learning or experimenting with RISC-V on real, cheap hardware.
- A preference for an open instruction set.
- For most products, Arm mode remains the default path with the full feature set.