metro: Bringup tracking issue

Open
#2,678 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
rust
Domain
embedded-iot

Research direction

Start with the unchecked entries in base.toml, dev.toml, and lab.toml, comparing the metro definition with the cosmo-based setup described in the issue. Work through the remaining task, configuration, feature, and FPGA-blob checklist items; done means the applicable metro bringup entries are reviewed and enabled or resolved.

Written by the indexing model from the issue text.

Description

In #2676, we added/are adding a totally-commented-out definition for metro, based on cosmo.

However, we need everything to actually work! Here's a tracking list of things that still need to be reviewed and enabled. We can make PRs for chunks of these features at a time. This is currently structured in roughly the shape of the toml definitions.

I've marked a couple "high priority" tasks as 🚨. A couple of "will definitely be different" items are marked as ⚠️.

base.toml

  • Enable measurement-handoff (this should be done as late as possible to make testing smoother)
  • [mmio] ⚠️ - FPGA map may differ
  • [caboose] - #2690
  • [tasks]
    • [tasks.jefe]
      • [tasks.jefe.config.on-state-change] - #2691 (partial
      • [tasks.jefe.config.on-task-fault] - #2690
      • [tasks.jefe.config.allowed-callers] - #2691 (partial)
    • [tasks.net] - #2691
    • [tasks.sys] - #2680
      • [tasks.sys.interrupts]
      • [tasks.sys.config.gpio-irqs.rot_irq] - #2695
      • [tasks.sys.config.gpio-irqs.seq_irq]
    • [tasks.spi2_driver] - #2691
    • [tasks.spi3_driver] - #2695
    • [tasks.i2c_driver] - #2693
      • [tasks.i2c_driver.interrupts] - #2693
    • [tasks.packrat] - #2690
    • [tasks.rng_driver] - #2690
    • [tasks.thermal]
    • [tasks.power]
    • [tasks.hiffy] - #2687
    • [tasks.metro_seq] ⚠️ - A general comment is that metro will have a new sequencer FPGA image that is not common with cosmos, though for most purposes they'll look the same barring some new features around programming the Versal etc.
    • [tasks.ignition_flash]
    • [tasks.spartan7_loader] ⚠️ - A general comment is that metro will have a new sequencer FPGA image that is not common with cosmos, though for most purposes they'll look the same barring some new features around programming the Versal etc.
      • [tasks.spartan7_loader.config]
    • [tasks.hash_driver]
    • [tasks.hf] 🚨 - We might want this for QSPI asap, see this comment
    • [tasks.update_server] - #2687
    • [tasks.sensor] - #2695
    • [tasks.host_sp_comms]
    • [tasks.udpecho] - #2691
    • [tasks.udpbroadcast] - #2691
    • [tasks.control_plane_agent]
    • [tasks.sprot] - #2695
    • [tasks.validate] - #2693
    • [tasks.vpd] - #2695
    • [tasks.user_leds] - #2685
    • [tasks.dump_agent] - #2687
    • [tasks.snitch] - #2691
    • [tasks.spd]
    • [tasks.auxflash] - #2695
    • [tasks.idle]
  • [config]
    • [[config.i2c.controllers]] - #2693
      • muxes
      • sharkfins + nvme_bmc + hscs
      • temp sensors, fan control, fan tray, hscs and vpds
      • power devices
      • DIMMs
      • NIC hot swap/fan control (this is going to be different!)
    • [config.spi.spi2] - #2691
      • [config.spi.spi2.devices.spartan7_fpga] - #2691
      • [config.spi.spi2.devices.ksz8463] - #2691
    • [config.spi.spi3] - #2695
      • [config.spi.spi3.mux_options.port_c]
      • [config.spi.spi3.devices.mux]
    • [config.spi.spi5] - #2695
      • [config.spi.spi5.mux_options.port_j]
      • [config.spi.spi5.devices.rot]
    • [config.net.vlans.*] - #2691
    • [config.net.sockets.*] - #2691 (partial)
    • [config.auxflash] - #2695
  • [[auxflash.blobs.SPA7]] - #2695 🚨 REUSING COSMO BLOBS FOR NOW! NEEDS FIX!
  • [[auxflash.blobs.ICE4]] - #2695 🚨 REUSING COSMO BLOBS FOR NOW! NEEDS FIX!

dev.toml

  • [tasks]
    • [tasks.jefe.config.allowed-callers]
    • [tasks.udprpc]
    • [tasks.fmc_demo]
    • [tasks.hiffy]
  • [config.net.sockets]
    • [config.net.sockets.rpc]
    • [config.net.sockets.fmc_test]
    • [config.net.sockets.hiffy]

lab.toml

  • tasks.metro_seq.features
    • TODO: We might want to make "stay-in-a2" a default-on feature for bringup!
  • tasks.packrat.features

CC @labbott, @nathanaelhuffman

edit(2026-09-11): Added dev.toml and lab.toml tasks.

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

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.

More from oxidecomputer/hubris

All issues in oxidecomputer/hubris

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.