Skip to content

Add Zephyr board defs for Raspberry Pi Picos#10917

Open
tannewt wants to merge 2 commits intoadafruit:mainfrom
tannewt:zephyr_picos
Open

Add Zephyr board defs for Raspberry Pi Picos#10917
tannewt wants to merge 2 commits intoadafruit:mainfrom
tannewt:zephyr_picos

Conversation

@tannewt
Copy link
Copy Markdown
Member

@tannewt tannewt commented Apr 1, 2026

Add board defs for rpi_pico_zephyr, rpi_pico_w_zephyr, rpi_pico2_zephyr, and rpi_pico2_w_zephyr. Flash partitions (NVM at 0x180000, CircuitPy at 0x181000) match the native raspberrypi port so users can switch between ports without reformatting.

Also enable MICROPY_NLR_THUMB_USE_LONG_JUMP for the Zephyr port to fix Cortex-M0+ linker relocation errors in nlr_push.

Devices should enumerate but may have bugs after that. These board definitions are meant to make it easier to test the current state of the Zephyr port.

I started to debug the wifi scan but decided not to dig further. So, there are a couple small wifi related changes.

Add board defs for rpi_pico_zephyr, rpi_pico_w_zephyr,
rpi_pico2_zephyr, and rpi_pico2_w_zephyr. Flash partitions
(NVM at 0x180000, CircuitPy at 0x181000) match the native
raspberrypi port so users can switch between ports without
reformatting.

Also enable MICROPY_NLR_THUMB_USE_LONG_JUMP for the Zephyr
port to fix Cortex-M0+ linker relocation errors in nlr_push.

Devices should enumerate but may have bugs after that. These board
definitions are meant to make it easier to test the current state
of the Zephyr port.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tannewt tannewt requested a review from dhalbert April 1, 2026 19:11
@tannewt tannewt marked this pull request as ready for review April 1, 2026 19:11
dhalbert
dhalbert previously approved these changes Apr 1, 2026
Copy link
Copy Markdown
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine.

These per-board .conf and .overlay files: is there a way to factor out the common parts? If, say, we wanted to change the partition stuff on all the RP2350 boards, there would be many to change.

@tannewt
Copy link
Copy Markdown
Member Author

tannewt commented Apr 1, 2026

These per-board .conf and .overlay files: is there a way to factor out the common parts? If, say, we wanted to change the partition stuff on all the RP2350 boards, there would be many to change.

.overlay is pretty easy because we can #include other files. .conf is trickier I think because we'd need to add some CMake code to do it.

I'm planning to follow up with a bootloader and partition scheme that can do this factoring out for partitions. I may actually do it in a separate repo so that it is shared amongst all zephyr based Adafruit projects.

@tannewt tannewt requested a review from dhalbert April 2, 2026 17:20
@tannewt
Copy link
Copy Markdown
Member Author

tannewt commented Apr 2, 2026

Please approve again. I forgot to update zephyr with a fix for USB. (It's harder to remember because it isn't a submodule.)

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.

2 participants