diff options
author | Tim Chu <Tim.Chu@quantatw.com> | 2020-12-23 19:15:21 -0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2021-02-27 09:40:26 +0000 |
commit | 31b4209201c91359305ffb7a877249103340d349 (patch) | |
tree | de5d17b482bdd0002e9e51c4742d187d41119e33 | |
parent | 0185d6d7604f0de5ea16c20860b25b8202a29d0a (diff) |
arch/x86/smbios: Update SMBIOS type 17 asset tag
Add SMBIOS type 17 asset tag. Use dimm locator as default value.
Tested=Execute "dmidecode -t 17" to check asset tag field is correct.
Signed-off-by: Tim Chu <Tim.Chu@quantatw.com>
Change-Id: I323e6b4cf6b11ede253d5a2a4bfc976a3f432b05
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48886
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jonathan Zhang <jonzhang@fb.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r-- | src/arch/x86/smbios.c | 1 | ||||
-rw-r--r-- | src/arch/x86/smbios_defaults.c | 9 | ||||
-rw-r--r-- | src/include/smbios.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 1bf62c9993..4c20d52dfd 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -283,6 +283,7 @@ static int create_smbios_type17_for_dimm(struct dimm_info *dimm, smbios_fill_dimm_manufacturer_from_id(dimm->mod_id, t); smbios_fill_dimm_serial_number(dimm, t); + smbios_fill_dimm_asset_tag(dimm, t); smbios_fill_dimm_locator(dimm, t); /* put '\0' in the end of data */ diff --git a/src/arch/x86/smbios_defaults.c b/src/arch/x86/smbios_defaults.c index 3d26bbbd85..c7377d6284 100644 --- a/src/arch/x86/smbios_defaults.c +++ b/src/arch/x86/smbios_defaults.c @@ -18,6 +18,15 @@ __weak void smbios_fill_dimm_locator(const struct dimm_info *dimm, struct smbios t->bank_locator = smbios_add_string(t->eos, locator); } +__weak void smbios_fill_dimm_asset_tag(const struct dimm_info *dimm, struct smbios_type17 *t) +{ + char buf[40]; + + snprintf(buf, sizeof(buf), "Channel-%d-DIMM-%d-AssetTag", + dimm->channel_num, dimm->dimm_num); + t->asset_tag = smbios_add_string(t->eos, buf); +} + __weak const char *smbios_mainboard_bios_version(void) { return NULL; diff --git a/src/include/smbios.h b/src/include/smbios.h index 5cbd3c3e97..91f031ae94 100644 --- a/src/include/smbios.h +++ b/src/include/smbios.h @@ -958,6 +958,8 @@ struct smbios_type127 { void smbios_fill_dimm_manufacturer_from_id(uint16_t mod_id, struct smbios_type17 *t); +void smbios_fill_dimm_asset_tag(const struct dimm_info *dimm, + struct smbios_type17 *t); void smbios_fill_dimm_locator(const struct dimm_info *dimm, struct smbios_type17 *t); |