oxidecomputer / oxidecomputer/hubris
Support for Raspberry Pi Pico 2 aka RP235x
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
I'm fairly far along porting Hubris to a Raspberry Pico 2 board (specifically a W, but that's "just" a Pico 2 with an SPI-attached radio), and want to check in to see if contributing such a port would be welcome. I understand that Hubris is not intended to be all things to all people, but the Pico 2 seems potentially relevant because:
- the RP235x chips are veeeerrrry popular by dint of being supported by the RPi foundation
- the Cortex-M33 has an MMU, which the RP2040 lacks
- a (now-outdated, draft) RP2040 port exists
- there are interesting secure boot features that may be appealing to Hubris users
- it's possibly a good jumping-off point for RISC-V and multi-core support to already have a cheap board supported
There are a few questions/concerns that have arisen as I've worked:
- I've got most of a porting guide doc in my head - do you want one?
- It's basically necessary to build apps/tasks in a fork anyway; should ports stay in forks as a rule? (e.g. here's hubris-flipper). Being able to build apps and tasks out-of-tree would be cool.
- Peripheral abstractions can range from vry smol to exceptionally exhaustive. The e.g. LPC55 abstractions appear to be fairly extensive; how much of the RP235x datasheet should be encoded in this repository given that y'all don't use it?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked drv/rp2040-sys-api/src/lib.rs port and compare its scope with drv/lpc55-gpio-api/src/lib.rs. Before coding, clarify whether an in-repository RP235x port, a porting guide, out-of-tree app support, and which peripheral abstractions are wanted; done means an agreed contribution scope and accepted porting approach.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- raspberry-pi, rust
- Domain
- embedded-iot, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100