summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/gpxe/smbios.h19
-rw-r--r--src/interface/smbios/smbios_settings.c8
2 files changed, 27 insertions, 0 deletions
diff --git a/src/include/gpxe/smbios.h b/src/include/gpxe/smbios.h
index 2b0fcbd10..a2942366d 100644
--- a/src/include/gpxe/smbios.h
+++ b/src/include/gpxe/smbios.h
@@ -113,6 +113,25 @@ struct smbios_system_information {
/** SMBIOS system information structure type */
#define SMBIOS_TYPE_SYSTEM_INFORMATION 1
+/** SMBIOS enclosure information structure */
+struct smbios_enclosure_information {
+ /** SMBIOS structure header */
+ struct smbios_header header;
+ /** Manufacturer string */
+ uint8_t manufacturer;
+ /** Type string */
+ uint8_t type;
+ /** Version string */
+ uint8_t version;
+ /** Serial number string */
+ uint8_t serial;
+ /** Asset tag */
+ uint8_t asset_tag;
+} __attribute__ (( packed ));
+
+/** SMBIOS enclosure information structure type */
+#define SMBIOS_TYPE_ENCLOSURE_INFORMATION 3
+
/**
* SMBIOS entry point descriptor
*
diff --git a/src/interface/smbios/smbios_settings.c b/src/interface/smbios/smbios_settings.c
index 61c2d9192..ec594c52c 100644
--- a/src/interface/smbios/smbios_settings.c
+++ b/src/interface/smbios/smbios_settings.c
@@ -198,4 +198,12 @@ struct setting smbios_named_settings[] __setting = {
serial ),
.type = &setting_type_string,
},
+ {
+ .name = "asset",
+ .description = "Asset tag",
+ .tag = SMBIOS_STRING_TAG ( SMBIOS_TYPE_ENCLOSURE_INFORMATION,
+ struct smbios_enclosure_information,
+ asset_tag ),
+ .type = &setting_type_string,
+ },
};