Skip to content

Commit

Permalink
Adds a Medusa image (#1806)
Browse files Browse the repository at this point in the history
The primary purpose of this PR is to sketch out an initial stab at an
image for Medusa, our QSFP front IO test fixture (details on that in RFD
405). The Medusa-specific logic lives in `medusa-seq-server`. The
current goal is just to support hardware bringup, and thus that
sequencer just attempts to power on the front IO board and then program
its FPGAs. It also checks the status of the various power rails on
Medusa and exposes an interface to control those rails (on Sidecar this
functionality is handled by the FPGA).

An adjacent piece of work here is that Medusa does not have any fans to
control and that broke the previous mold of "everything with `thermal`
has fans". `thermal` logs `sensor` data _and_ wants to control fan
speeds off that data. So the Medusa thermal BSP looks a bit odd compared
to the others. Additionally, the `transceivers` task had a
`thermal-control` feature flag added to gate the interactions with
`thermal` (Sidecar will have this feature set, Medusa will not).

Lastly, there's some ugliness that I did for the sake of expediency
given my personal situation. Until I can actually land #1805, Medusa
simply copies some code from Sidecar. Once this PR lands, I will extend
#1805 to cleanup Medusa as well.

Closes #1571

---------

Co-authored-by: Cliff L. Biffle <cliff@oxide.computer>
  • Loading branch information
Aaron-Hartwig and cbiffle committed Jun 13, 2024
1 parent 8dc8a4d commit c7f0b3e
Show file tree
Hide file tree
Showing 35 changed files with 2,592 additions and 28 deletions.
58 changes: 58 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 27 additions & 0 deletions app/medusa/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
edition = "2021"
readme = "README.md"
name = "medusa"
version = "0.1.0"

[features]
dump = ["kern/dump"]

[dependencies]
cortex-m = { workspace = true }
cortex-m-rt = { workspace = true }
cfg-if = { workspace = true }
stm32h7 = { workspace = true, features = ["rt", "stm32h753"] }

drv-stm32h7-startup = { path = "../../drv/stm32h7-startup", features = ["h753"] }
kern = { path = "../../sys/kern" }

[build-dependencies]
build-util = {path = "../../build/util"}

# this lets you use `cargo fix`!
[[bin]]
name = "medusa"
test = false
doctest = false
bench = false
5 changes: 5 additions & 0 deletions app/medusa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Medusa Service Processor (SP) firmware

The Medusa is a test fixture for the QSFP Front IO board.

This folder contains the firmware that runs on its service processor (SP).
Loading

0 comments on commit c7f0b3e

Please sign in to comment.