mb/prodrive/atlas: Implement initial VPD support
commit56c1c4dff9c7ccd8968a3e32be800375bf3d5b78
authorAngel Pons <th3fanbus@gmail.com>
Wed, 22 Mar 2023 12:25:09 +0000 (22 13:25 +0100)
committerLean Sheng Tan <sheng.tan@9elements.com>
Fri, 24 Mar 2023 16:39:17 +0000 (24 16:39 +0000)
treef8614b97e6f66a63fe48cc1558f7e4dc37b12bea
parent964079f77cced3aedc468a888b6b6f32cfbec7c9
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>
src/mainboard/prodrive/atlas/Makefile.inc
src/mainboard/prodrive/atlas/mainboard.c
src/mainboard/prodrive/atlas/smbios.c [new file with mode: 0644]
src/mainboard/prodrive/atlas/vpd.c [new file with mode: 0644]
src/mainboard/prodrive/atlas/vpd.h [new file with mode: 0644]