Add SKU number and family to the SMBIOS type 1 input - #1205
Conversation
Adds the missing fields with `unset` defaults and required RFD 619 fixings.
|
Worth mentioning I used |
|
Interesting chicken and egg issue I'm not sure how (or whether) to resolve, the |
zeeshanlakhani
left a comment
There was a problem hiding this comment.
Leaving a few comments / fixins here before we bring this upstream.
|
What are the intended customer semantics of these new SMBIOS fields? How are they going to be populated and interpreted? |
|
@rmustacc the goal was to keep this semantics free in propolis while writing the values into the table per DSP0134 (but emitted as empty when unset). Nexus (nexus/src/app/instance_platform/mod.rs) and sled-agent (sled-agent/src/instance.rs) explicitly set The only intended producer/consumer pair is virtual test platforms, and a4x2 has used the table for a while now. A regression in #1178 dropped the SMBIOS input which broke sled identity and rack setup for a4x2. This PR's parent (#1200) fixes that. Since it was being corrected, I added this PR to make the table more complete against the spec. The new fields allow the emulator to declare the platform role (e.g. marking softnpu-based scrimlets for oxidecomputer/omicron#11202). Today nothing in omicron reads the new fields, and the existing type 1 fields are only read in sled-agent's SMBIOS read path which is gated on the If I'm missing something or we'd rather not bump API version for a one-off a4x2-only change, let me know. At present, omicron can still infer the role from the existing manufacturer field (or funny enough, from the fact it's set at all). |
Follow up to #1200 per discussion in comments.
The type 1 input covers 4 fields, but the table also defines SKU and Family per DSP0134 7.2. Today we emit those empty and they can't be set. This PR adds optional
sku_numberandfamilyto the input and plumbs them to the emitted table. Both default to unset.Per RFD 619 this is a new API version. Worth reviewing: downgrades are lossless-or-fail, which may or may not be the desired method.