Skip to content
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

Add SMBIOS bootrom version to config files #703

Merged
merged 1 commit into from
May 8, 2024

Conversation

hawkw
Copy link
Member

@hawkw hawkw commented May 8, 2024

Presently, the BIOS version string in Propolis' SMBIOS tables is hardcoded to a default value. It would be nice to instead use the OVMF version for the BIOS version string.

Because Propolis' understanding of bootroms is just a path on the filesystem to some kind of file, it's not aware of the OVMF version, or, indeed, that the bootrom even is OVMF (and it could conceivably be anything). Therefore, the bootrom version must be provided externally, such as by the Oxide control plane in the case of propolis-server, or by the user when running standalone.

This PR adds a config field bootrom_version to the TOML config files for propolis-server and propolis-standalone which can be used to provide a value for the bootrom version string. If the version string is not provided, Propolis will continue to use the current default values.

I considered changing the config format to move the bootrom path field and bootrom_version string field into a bootrom table, as in:

[bootrom]
path = "/path/to/OVMF_CODE.fd"
version = "edk2-stable202402"

However, this would break existing configs, and I don't think it's so much nicer than

bootrom = "/path/to/OVMF_CODE.fd"
bootrom_version = "edk2-stable202402"

to justify breakage. I'm happy to change the format if others disagree.

Along with #702, this branch implements the changes described in #701.

Presently, the BIOS version string in Propolis' SMBIOS tables is
hardcoded to a default value. It would be nice to instead use the OVMF
version for the BIOS version string.

Because Propolis' understanding of bootroms is just a path on the
filesystem to some kind of file, it's not aware of the OVMF version, or,
indeed, that the bootrom even *is* OVMF (and it could conceivably be
anything). Therefore, the bootrom version must be provided externally,
such as by the Oxide control plane in the case of `propolis-server`, or
by the user when running standalone.

This PR adds a config field `bootrom_version` to the TOML config
files for `propolis-server` and `propolis-standalone` which can be used
to provide a value for the bootrom version string. If the version string
is not provided, Propolis will continue to use the current default
values.

I considered changing the config format to move the `bootrom` path field
and `bootrom_version` string field into a `bootrom` table, as in:

```toml
[bootrom]
path = "/path/to/OVMF_CODE.fd"
version = "edk2-stable202402"
```

However, this would break existing configs, and I don't think it's
so much nicer than

```toml
bootrom = "/path/to/OVMF_CODE.fd"
bootrom_version = "edk2-stable202402"
````

to justify breakage. I'm happy to change the format if others disagree.

Along with #702, this branch implements the changes described in #701.
@hawkw hawkw requested review from luqmana and pfmooney May 8, 2024 16:04
@hawkw hawkw changed the title Add bootrom version to config files Add SMBIOS bootrom version to config files May 8, 2024
@hawkw hawkw merged commit 4591a60 into master May 8, 2024
10 checks passed
@hawkw hawkw deleted the eliza/somebios-bootrom-version branch May 8, 2024 19:31
pfmooney pushed a commit to pfmooney/propolis that referenced this pull request May 16, 2024
Picks up:

    * 9f69dea - Actually provision read-only downstairs! (oxidecomputer#728)
    * 92ae012 - crutest use SIGUSR1 to stop tests (oxidecomputer#699)
    * 47f3569 - Add build info and version commands (oxidecomputer#709)
    * 07f0a9e - Give up on a downstairs (oxidecomputer#725)
    * 9985a4c - Slightly better versioning between upstairs and downstairs (oxidecomputer#705)
    * 0b34a53 - Fix paths in method scripts (oxidecomputer#703)
    * 12b65eb - [smf] Allow Crucible Zones to be self-assembling (oxidecomputer#498)

Also updates uuid dep to 1.3.2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants