diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 8bc49b18adcc..1bf62c999394 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -154,44 +155,10 @@ static int smbios_processor_name(u8 *start) return smbios_add_string(start, str); } -static const char *get_dimm_manufacturer_name(const uint16_t mod_id) -{ - switch (mod_id) { - case 0x9b85: - return "Crucial"; - case 0x4304: - return "Ramaxel"; - case 0x4f01: - return "Transcend"; - case 0x9801: - return "Kingston"; - case 0x987f: - return "Hynix"; - case 0x9e02: - return "Corsair"; - case 0xb004: - return "OCZ"; - case 0xad80: - return "Hynix/Hyundai"; - case 0x3486: - return "Super Talent"; - case 0xcd04: - return "GSkill"; - case 0xce80: - return "Samsung"; - case 0xfe02: - return "Elpida"; - case 0x2c80: - return "Micron"; - default: - return NULL; - } -} - /* this function will fill the corresponding manufacturer */ void smbios_fill_dimm_manufacturer_from_id(uint16_t mod_id, struct smbios_type17 *t) { - const char *const manufacturer = get_dimm_manufacturer_name(mod_id); + const char *const manufacturer = spd_manufacturer_name(mod_id); if (manufacturer) { t->manufacturer = smbios_add_string(t->eos, manufacturer); diff --git a/src/device/dram/Makefile.inc b/src/device/dram/Makefile.inc index f7118dbbc24b..69fcfa8844b1 100644 --- a/src/device/dram/Makefile.inc +++ b/src/device/dram/Makefile.inc @@ -1,3 +1,3 @@ romstage-y += ddr4.c ddr3.c ddr2.c ddr_common.c -ramstage-y += ddr4.c ddr3.c ddr2.c ddr_common.c +ramstage-y += ddr4.c ddr3.c ddr2.c ddr_common.c spd.c diff --git a/src/device/dram/spd.c b/src/device/dram/spd.c new file mode 100644 index 000000000000..9a9a767fc278 --- /dev/null +++ b/src/device/dram/spd.c @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include + +const char *spd_manufacturer_name(const uint16_t mod_id) +{ + switch (mod_id) { + case 0x9b85: + return "Crucial"; + case 0x4304: + return "Ramaxel"; + case 0x4f01: + return "Transcend"; + case 0x9801: + return "Kingston"; + case 0x987f: + return "Hynix"; + case 0x9e02: + return "Corsair"; + case 0xb004: + return "OCZ"; + case 0xad80: + return "Hynix/Hyundai"; + case 0x3486: + return "Super Talent"; + case 0xcd04: + return "GSkill"; + case 0xce80: + return "Samsung"; + case 0xfe02: + return "Elpida"; + case 0x2c80: + return "Micron"; + default: + return NULL; + } +} diff --git a/src/include/device/dram/spd.h b/src/include/device/dram/spd.h new file mode 100644 index 000000000000..c677f4ce9b2a --- /dev/null +++ b/src/include/device/dram/spd.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef DEVICE_DRAM_SPD_H +#define DEVICE_DRAM_SPD_H + +#include + +const char *spd_manufacturer_name(const uint16_t mod_id); + +#endif /* DEVICE_DRAM_SPD_H */