summaryrefslogtreecommitdiff
path: root/src/mainboard/prodrive/atlas/smbios.c
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2023-03-22 13:25:09 +0100
committerLean Sheng Tan <sheng.tan@9elements.com>2023-03-24 16:39:17 +0000
commit56c1c4dff9c7ccd8968a3e32be800375bf3d5b78 (patch)
treef8614b97e6f66a63fe48cc1558f7e4dc37b12bea /src/mainboard/prodrive/atlas/smbios.c
parent964079f77cced3aedc468a888b6b6f32cfbec7c9 (diff)
mb/prodrive/atlas: Implement initial VPD support
Atlas stores VPD (Vital Product Data) in an I2C EEPROM, which is only connected to the EC. In order for the host (x86) to be able to access the VPD, the EC reads the EEPROM contents into a buffer in EC RAM and provides the host with read-only access to this EC RAM buffer through EMI (Embedded Memory Interface) 0. The VPD layout is designed to be extensible yet backwards compatible. The code in coreboot uses the revision field to know which fields are valid, and will populate the rest with fallback values. Use the serial number and part number in VPD to populate SMBIOS tables. Change-Id: I2d3d70fee22548daa73ef98af56c98e950dc5e9d Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/73937 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Diffstat (limited to 'src/mainboard/prodrive/atlas/smbios.c')
-rw-r--r--src/mainboard/prodrive/atlas/smbios.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mainboard/prodrive/atlas/smbios.c b/src/mainboard/prodrive/atlas/smbios.c
new file mode 100644
index 0000000000..1167a807ac
--- /dev/null
+++ b/src/mainboard/prodrive/atlas/smbios.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <smbios.h>
+
+#include "vpd.h"
+
+const char *smbios_mainboard_serial_number(void)
+{
+ return get_emi_eeprom_vpd()->serial_number;
+}