oxidecomputer / oxidecomputer/hubris

I2C codegen could use some love

Open
#501 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

developer-experience Triaged H2'26
Dominant language
Rust
Stars
3.6k
Forks
239
Avg merge
1d 12h
Merged PRs (30d)
23

Description

The I2C codegen in build-i2c dates back to early Hubris development, and has languished as other systems have been improved.

For example, we do a manual search through the I2C mux table, when this could be known at compile time.

Making this system more robust / ergonomic / obvious would have downstream benefits for future development.

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 by reading the build-i2c codegen and the referenced I2C server code in drv/stm32h7-i2c-server/src/main.rs, especially lines 48-73. Compare the current manual I2C mux-table search with how other improved systems handle similar information. Done means the I2C codegen is more robust, ergonomic, and obvious, including addressing the cited compile-time opportunity.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, embedded-iot
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.