gateway: add sp_component_vpd_get - #11273
Merged
Merged
Conversation
jgallagher
approved these changes
Sep 11, 2026
| )] | ||
| pub struct PmbusDevice { | ||
| /// `MFR_ID` (PMBus command 0x99). | ||
| pub mfr_id: Option<Vec<u8>>, |
Contributor
There was a problem hiding this comment.
Entirely for my own curiosity - who/what is going to end up parsing the contents of these fields?
Member
Author
There was a problem hiding this comment.
The problem with these is that their contents vary a lot based on the device. In the immediate future, my plans are mainly to use the PMBus VPD fields for the MWOCP68/MWOCP67 rectifiers in the gateway hardware-component metrics for the power shelf, and use them to start inventorying the PSUs (see #11047). The PSUs are currently the only field-replaceable units whose identity is determined via these PMBus commands, so I think we won't immediately be reading them for other devices, but we may eventually.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Now that oxidecomputer/hubris#2650 and oxidecomputer/management-gateway-service#500 have merged, we now have a
gateway-sp-commsAPI for reading VPD from individual components exposed by the SP. This includes PMBus devices (including, importantly, the rectifiers in the power shelf) and FRU EEPROMs, such as those on fan modules, sharkfins, and so forth. This branch updates our dependency ongateway-sp-commsto oxidecomputer/management-gateway-service@438cd18, and adds an HTTP API to MGS for Nexus to actually read component VPD.One note here is that, because I implemented the
gateway-messagesand Hubris side of this in a way that allows hubris to read the raw VPD EEPROM contents into trailing data,1 Hubris isn't parsing barcodes the way it does for the baseboard VPD. Thus, MGS has to do this parsing, which this branch implements. This is a bit duplicative, but I don't hate doing it here.Since this updates MGS, it also picks up some other new APIs, but I haven't added HTTP API endpoints for them. I'd prefer to do that separately.
Closes #11256
Footnotes
Which was a design decision I ended up making largely to handle the fact that parsing an MPN1 barcode, where the only length limit is that the entire barcode will not exceed 128 bytes, would require representing each of the 4 pieces as a 128b array, making the barcode 512B long and making a fan tray with 3 MPN1 barcodes not fit in a MGS datagram... ↩