oxidecomputer / oxidecomputer/hubris

Improve flexibility of clock generator configs

Open
#668 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

product
Dominant language
Rust
Stars
3.6k
Forks
239
Avg merge
1d 12h
Merged PRs (30d)
23

Description

Currently, gimlet's clock gen config is in Rust literals in drv/gimlet-seq-server/src/payload.rs. It can be regenerated by running a Humility command, which is a little odd since it has nothing to do with debugging.

At minimum, we need to alter this so that we can have a different clock gen config per revision of the board.

I would argue that, ideally, we would also move the code generation out of Humility and into the build system, so that we could just check in the Aardvark file that defines the sequence of config writes. This would make it dramatically easier for folks doing bringup to substitute different configurations in Aardvark format, which is a need @refugeesus ran into this afternoon.

If we did this, we should switch Sidecar to use the same mechanism, as it contains a similar canned file.

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 drv/gimlet-seq-server/src/payload.rs and locating the Humility command that regenerates the clock generator configuration. Compare the Gimlet and Sidecar canned files and determine how the build system could consume an Aardvark sequence while selecting a configuration per board revision. Done means the design supports revision-specific Gimlet configurations and the proposed shared mechanism covers Sidecar.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.