Skip to content

Cosmo support #2013

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 111 commits into from
Apr 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
048ad49
Cosmo implementation work
mkeeter Jan 7, 2025
49e1028
Add host NMI support
mkeeter Feb 25, 2025
419b746
Add fault and chassis LED handling
mkeeter Feb 25, 2025
ad8e96c
Adding cosmo-seq inital files and structure
nathanaelhuffman Mar 4, 2025
3ae1805
Update cosmo-hp and move into subfolder
nathanaelhuffman Mar 4, 2025
aa7b481
Fix Cosmo build
mkeeter Mar 5, 2025
fde625f
Add updated cosmo-seq with updated maps, still WIP
nathanaelhuffman Mar 12, 2025
2e05528
Remove state file
nathanaelhuffman Mar 12, 2025
2c9847f
Fix FPGA top location
mkeeter Mar 12, 2025
4856a22
Correct for SP5 mystery offset
mkeeter Mar 18, 2025
c15b23f
cosmo fpga map and image updates to support seq coding
nathanaelhuffman Mar 20, 2025
b5b28a5
Updates to cosmo_seq and codegen
nathanaelhuffman Mar 20, 2025
1c99982
Power on at startup
mkeeter Mar 21, 2025
552c53a
Fix priorities
mkeeter Mar 21, 2025
f0e349e
Add Sequencer (token-gated)
mkeeter Mar 21, 2025
f0f8536
Add codegen for debug types, which are unpacked in RAM
mkeeter Mar 21, 2025
4397b61
Sequencing
mkeeter Mar 24, 2025
dec934b
Sequencer polling
mkeeter Mar 24, 2025
db63144
Log state registers upon failure
mkeeter Mar 24, 2025
df12784
Remove outdated PA0 config (??)
mkeeter Mar 24, 2025
b509345
Remove debug print
mkeeter Mar 24, 2025
49eef44
Minimize diff
mkeeter Mar 24, 2025
0619f5d
Add V12_MCIO_A0HP HSC
mkeeter Mar 27, 2025
c1521e4
Fix U73 I2C address
mkeeter Mar 27, 2025
6ed0b2d
Fix incorrect resistance for ADM1272
mkeeter Mar 27, 2025
91cae79
s/gimlet/cosmo
mkeeter Mar 27, 2025
c5ee5b3
Remove confused comment
mkeeter Mar 27, 2025
7669939
Remove M2 special-casing
mkeeter Mar 28, 2025
d130632
pre-bringup update to seq FPGA image
nathanaelhuffman Apr 3, 2025
cca70ee
Add hp image updates
nathanaelhuffman Apr 7, 2025
713330c
More HP updates
nathanaelhuffman Apr 7, 2025
e15ed98
turn off the LED to save our eyes
Aaron-Hartwig Apr 7, 2025
a39a548
Finer-grained MMIO peripheral
mkeeter Apr 7, 2025
5f81fb5
Slow down fpga LED
nathanaelhuffman Apr 7, 2025
66b6b59
Add `fmc_demo` to Cosmo dev images
mkeeter Apr 7, 2025
2128c2a
Fix `cosmo_seq`'s `uses`
mkeeter Apr 7, 2025
61c458c
Fix incorrect SP -> FGPA1 reset pin
mkeeter Apr 7, 2025
eea3edc
Disable SP_TO_IGN_TRGT_FPGA_FAULT_L
mkeeter Apr 7, 2025
679db59
Bring up FMC peripheral
mkeeter Apr 7, 2025
4978ca1
Add fmc dbg shrink fmc addr size to match gimlet
nathanaelhuffman Apr 7, 2025
8c4e865
Use correct UART for Cosmo
mkeeter Apr 7, 2025
68e247b
Shrunk address spaces, ILA for FMC
nathanaelhuffman Apr 7, 2025
8ea8e8e
Add load-bearing delay
mkeeter Apr 7, 2025
cef3f6d
Fix newly-unused imports in fmc-demo-server
mkeeter Apr 8, 2025
647e572
Fix FPGA2 CS pin
mkeeter Apr 8, 2025
94c5ba6
Fix FPGA1 pins
mkeeter Apr 8, 2025
4b098c1
Fix small things
mkeeter Apr 8, 2025
7aa7a53
ice40 is up, net is up
mkeeter Apr 8, 2025
d18e774
Make LTC4282 validation not depend on FET state
mkeeter Apr 8, 2025
83f8215
Fix lm5066 validate
rmustacc Apr 8, 2025
868326d
Update nic HSC for PG_L)
nathanaelhuffman Apr 8, 2025
bc7aa4e
Disable debug LEDs, enable chassis LEDs
mkeeter Apr 8, 2025
a447d57
Fix front FPGA muxes
mkeeter Apr 8, 2025
11a6773
Five! Five virtual muxes! Ha ha ha
mkeeter Apr 8, 2025
b80f2b7
Fix mux channel for sharkfin G
mkeeter Apr 8, 2025
4c99cf5
Change type name
mkeeter Apr 8, 2025
c32cd4f
pb goes high with rail
nathanaelhuffman Apr 8, 2025
89c0e28
Hold the front FPGA in reset while loading the sequencer
mkeeter Apr 8, 2025
6a82a4f
Add sequence dbg out
nathanaelhuffman Apr 8, 2025
d425d0c
disambiguate SeqError in Sequencer API
bcantrill Apr 8, 2025
efd4c4e
move pushbutton to 20ms
nathanaelhuffman Apr 8, 2025
ba9cf37
200ms delay before rmsrstL
nathanaelhuffman Apr 8, 2025
da77b77
200ms delay after rsmrst
nathanaelhuffman Apr 8, 2025
3dc15c4
clk buff oe's tristate for pwr leakage investigation
nathanaelhuffman Apr 9, 2025
3874f9e
More mux fixes for fan control
mkeeter Apr 9, 2025
a530353
Unswizzle fans (hardware-cosmo#678)
mkeeter Apr 9, 2025
4c569d2
cargo fmt
mkeeter Apr 9, 2025
79149e1
Fix clippy warnings
mkeeter Apr 9, 2025
f621db6
More clippy fixes
mkeeter Apr 10, 2025
308585e
HDT mux enable at 1v8A1 enable
nathanaelhuffman Apr 10, 2025
417111b
More sequence delay, more debug
nathanaelhuffman Apr 10, 2025
6a41d51
bring espi out to header and ILA
nathanaelhuffman Apr 10, 2025
4b6ab30
No ILA, see if it sequences again
nathanaelhuffman Apr 10, 2025
59ced32
Load FPGA hash into registers at startup
mkeeter Apr 10, 2025
f203966
work with espi on 1v8 dbg
nathanaelhuffman Apr 10, 2025
e2723d1
Move espi1 to alert pin
nathanaelhuffman Apr 10, 2025
1d0d6aa
Fix espi default offset
mkeeter Apr 10, 2025
70488e8
Open espi eyes at PWRGD
nathanaelhuffman Apr 10, 2025
a7e2131
Add spd stuff
nathanaelhuffman Apr 10, 2025
645a1c8
1s pre-rms A1 delay
nathanaelhuffman Apr 11, 2025
287d410
Try to fix domain cross-drive
nathanaelhuffman Apr 11, 2025
b4a6cec
Stagger groupc rails by 1ms ea
nathanaelhuffman Apr 11, 2025
0e24524
Add fpga control of HDT to evaluate HDT odd voltages
nathanaelhuffman Apr 11, 2025
432dd28
disable hdt mux
nathanaelhuffman Apr 11, 2025
3a01ffa
All HDT inputs
nathanaelhuffman Apr 11, 2025
aee0f82
Really sequences, with the real fix
nathanaelhuffman Apr 15, 2025
af8427c
Switch host flash back to SP when going -> A2
mkeeter Apr 15, 2025
c729166
Working boot into OS
nathanaelhuffman Apr 16, 2025
e24aa6b
I need assistance
nathanaelhuffman Apr 17, 2025
4eba02b
Let FMC demo poke everywhere in MMIO space
mkeeter Apr 17, 2025
fbb9578
Working hotplug
nathanaelhuffman Apr 21, 2025
c78c951
Clamp PWM output
mkeeter Apr 21, 2025
e354c0e
Use pid_config.max_output instead of hard-coded 100 in full-power states
mkeeter Apr 21, 2025
b39df4f
Make SP_TO_HOST_CPU_INT_L push-pull on Cosmo only
mkeeter Apr 21, 2025
bf18bc6
Make SP_TO_SP5_NMI_SYNC_FLOOD_L push-pull
mkeeter Apr 22, 2025
e3c63b0
working IPCC, reboots still not working
nathanaelhuffman Apr 22, 2025
0c60896
Rebooting works, IPCC works, hotplug works
nathanaelhuffman Apr 23, 2025
5aeca3c
Adjust MAX5970 resistance for cosmo sharkfins
mkeeter Apr 23, 2025
6ad2595
Adjust MAX5970 current threshold for 12V U.2s
mkeeter Apr 23, 2025
dbb2ca7
Cargo format
mkeeter Apr 23, 2025
e32fb5f
Add updated FPGAs for hotplug investigation
nathanaelhuffman Apr 23, 2025
e4c9c0b
Working hotplug
nathanaelhuffman Apr 23, 2025
4744240
tagged actual fpga releases
nathanaelhuffman Apr 23, 2025
6c1b0df
Maybe T6 fix?
nathanaelhuffman Apr 24, 2025
d1f6a2a
Fix edge condition in flash writing
mkeeter Apr 24, 2025
9f0cdc8
Get VPD identity in cosmo sequencer
mkeeter Apr 24, 2025
d53176a
Configure SP_TO_SP5_PROCHOT
mkeeter Apr 25, 2025
2205b75
Fix SBRMI / SBTSI addresses
mkeeter Apr 28, 2025
3f866bf
misc FPGA fixes for APML, T6 logic etc and a real quartz release
nathanaelhuffman Apr 28, 2025
a07a13a
Fixes from Laura's review
mkeeter Apr 29, 2025
b7101cd
Bump fan speed
mkeeter Apr 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/build-boards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,33 @@ jobs:
image: ${{ matrix.image }}
os: ${{ inputs.os }}

build-cosmo:
if: ${{ inputs.board-set == 'cosmo' || inputs.board-set == 'all' }}
name: build-cosmo
strategy:
matrix:
build: [cosmo-a, cosmo-a-lab, cosmo-a-dev]
include:
- build: cosmo-a
app_name: cosmo-a
app_toml: app/cosmo/rev-a.toml
image: default
- build: cosmo-a-lab
app_name: cosmo-a-lab
app_toml: app/cosmo/rev-a-lab.toml
image: default
- build: cosmo-a-dev
app_name: cosmo-a-dev
app_toml: app/cosmo/rev-a-dev.toml
image: default
uses: ./.github/workflows/build-one.yml
with:
build: ${{ matrix.build }}
app_name: ${{ matrix.app_name }}
app_toml: ${{ matrix.app_toml }}
image: ${{ matrix.image }}
os: ${{ inputs.os }}

build-devboards:
if: ${{ inputs.board-set == 'devboards' || inputs.board-set == 'all' }}
name: build-devboards
Expand Down
42 changes: 41 additions & 1 deletion Cargo.lock

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

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

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

[dependencies]
cortex-m = { workspace = true }
cortex-m-rt ={ workspace = true }
cfg-if = { workspace = true }
stm32h7 = { workspace = true, features = ["rt", "stm32h753"] }
ringbuf = { path = "../../lib/ringbuf", optional = true }

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 = "cosmo"
test = false
bench = false

[lints]
workspace = true
8 changes: 8 additions & 0 deletions app/cosmo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Cosmo Service Processor (SP) firmware

The Cosmo is the SP5-based compute sled in the Oxide rack.

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

The Root of Trust firmware is common across multiple boards and can be found
in the [`oxide-rot-1` subfolder](../oxide-rot-1).
Loading