oxidecomputer / oxidecomputer/hubris

Support for Raspberry Pi Pico 2 aka RP235x

Open
#2,200 5 comments 1 reaction 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.