summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/prodrive/hermes/eeprom.h5
-rw-r--r--src/mainboard/prodrive/hermes/mainboard.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/src/mainboard/prodrive/hermes/eeprom.h b/src/mainboard/prodrive/hermes/eeprom.h
index 2f7eac7253..ac127806bf 100644
--- a/src/mainboard/prodrive/hermes/eeprom.h
+++ b/src/mainboard/prodrive/hermes/eeprom.h
@@ -86,7 +86,10 @@ struct __packed eeprom_layout {
};
char system_serial_number[HERMES_SERIAL_NUMBER_LENGTH];
char board_serial_number[HERMES_SERIAL_NUMBER_LENGTH];
- uint8_t boot_order[0x8c0];
+ uint8_t boot_order[0x200];
+ char board_part_number[HERMES_SERIAL_NUMBER_LENGTH];
+ char product_part_number[HERMES_SERIAL_NUMBER_LENGTH];
+ uint8_t unused[0x680];
union {
uint8_t raw_board_settings[0xf8];
struct eeprom_board_settings board_settings;
diff --git a/src/mainboard/prodrive/hermes/mainboard.c b/src/mainboard/prodrive/hermes/mainboard.c
index 2f0de61843..bf568abf54 100644
--- a/src/mainboard/prodrive/hermes/mainboard.c
+++ b/src/mainboard/prodrive/hermes/mainboard.c
@@ -174,6 +174,12 @@ static void mainboard_final(struct device *dev)
pmc_soc_set_afterg3_en(on);
}
+static void mainboard_smbios_strings(struct device *dev, struct smbios_type11 *t)
+{
+ t->count = smbios_add_string(t->eos, eeprom_read_serial(board_part_number, "N/A"));
+ t->count = smbios_add_string(t->eos, eeprom_read_serial(product_part_number, "N/A"));
+}
+
#if CONFIG(HAVE_ACPI_TABLES)
static void mainboard_acpi_fill_ssdt(const struct device *dev)
{
@@ -219,6 +225,7 @@ static void mainboard_enable(struct device *dev)
mb_usb2_fp2_pwr_enable(1);
dev->ops->final = mainboard_final;
+ dev->ops->get_smbios_strings = mainboard_smbios_strings;
#if CONFIG(HAVE_ACPI_TABLES)
dev->ops->acpi_fill_ssdt = mainboard_acpi_fill_ssdt;