diff options
| author | Dale Hamel | 2014-03-10 23:48:37 +0100 |
|---|---|---|
| committer | Michael Brown | 2014-06-12 18:59:52 +0200 |
| commit | 7fe0735170929bcdc8364d4d5529fbb171b1aa79 (patch) | |
| tree | e20621c4588f97a7cab3f45c370ac2867afd230f | |
| parent | [igbvf] Allow changing of MAC address (diff) | |
| download | ipxe-7fe0735170929bcdc8364d4d5529fbb171b1aa79.tar.gz ipxe-7fe0735170929bcdc8364d4d5529fbb171b1aa79.tar.xz ipxe-7fe0735170929bcdc8364d4d5529fbb171b1aa79.zip | |
[smbios] Expose board serial number as ${board-serial}
With blade servers, the chassis serial number (exposed via ${serial})
may not be unique. Expose ${board-serial} as a named setting to
provide easy access to a more meaningful serial number.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
| -rw-r--r-- | src/include/ipxe/smbios.h | 17 | ||||
| -rw-r--r-- | src/interface/smbios/smbios_settings.c | 12 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/include/ipxe/smbios.h b/src/include/ipxe/smbios.h index 1a34ac04c..ef5892a21 100644 --- a/src/include/ipxe/smbios.h +++ b/src/include/ipxe/smbios.h @@ -116,6 +116,23 @@ struct smbios_system_information { /** SMBIOS system information structure type */ #define SMBIOS_TYPE_SYSTEM_INFORMATION 1 +/** SMBIOS base board information structure */ +struct smbios_base_board_information { + /** SMBIOS structure header */ + struct smbios_header header; + /** Manufacturer string */ + uint8_t manufacturer; + /** Product string */ + uint8_t product; + /** Version string */ + uint8_t version; + /** Serial number string */ + uint8_t serial; +} __attribute__ (( packed )); + +/** SMBIOS base board information structure type */ +#define SMBIOS_TYPE_BASE_BOARD_INFORMATION 2 + /** SMBIOS enclosure information structure */ struct smbios_enclosure_information { /** SMBIOS structure header */ diff --git a/src/interface/smbios/smbios_settings.c b/src/interface/smbios/smbios_settings.c index 5dcf00201..83e4320e9 100644 --- a/src/interface/smbios/smbios_settings.c +++ b/src/interface/smbios/smbios_settings.c @@ -241,3 +241,15 @@ const struct setting asset_setting __setting ( SETTING_HOST_EXTRA, asset ) = { .type = &setting_type_string, .scope = &smbios_settings_scope, }; + +/** Board serial number setting (may differ from chassis serial number) */ +const struct setting board_serial_setting __setting ( SETTING_HOST_EXTRA, + board_serial ) = { + .name = "board-serial", + .description = "Base board serial", + .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_BASE_BOARD_INFORMATION, + struct smbios_base_board_information, + serial ), + .type = &setting_type_string, + .scope = &smbios_settings_scope, +}; |
