Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/59838 )
Change subject: mb/prodrive/hermes: Add VBT for Avalanche systems ......................................................................
mb/prodrive/hermes: Add VBT for Avalanche systems
The Hermes mainboard is used in different system configurations. The current VBT for Poseidon systems is unsuitable for Avalanche systems because display ports are connected differently.
Add a new field in the BMC config EEPROM layout and use it to choose the correct VBT for every system configuration.
Change-Id: I2647f2ae3f496b9ad75980ba86beb7800fdb0668 Signed-off-by: Angel Pons th3fanbus@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/59838 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Arthur Heymans arthur@aheymans.xyz --- M src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/avalanche-data.vbt M src/mainboard/prodrive/hermes/eeprom.h M src/mainboard/prodrive/hermes/mainboard.c 4 files changed, 14 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Arthur Heymans: Looks good to me, approved
diff --git a/src/mainboard/prodrive/hermes/Makefile.inc b/src/mainboard/prodrive/hermes/Makefile.inc index caaddec..63be66c 100644 --- a/src/mainboard/prodrive/hermes/Makefile.inc +++ b/src/mainboard/prodrive/hermes/Makefile.inc @@ -10,3 +10,5 @@ ramstage-y += mainboard.c ramstage-y += eeprom.c ramstage-y += smbios.c + +$(call add_vbt_to_cbfs, vbt-avalanche.bin, avalanche-data.vbt) diff --git a/src/mainboard/prodrive/hermes/avalanche-data.vbt b/src/mainboard/prodrive/hermes/avalanche-data.vbt new file mode 100644 index 0000000..c351331 --- /dev/null +++ b/src/mainboard/prodrive/hermes/avalanche-data.vbt Binary files differ diff --git a/src/mainboard/prodrive/hermes/eeprom.h b/src/mainboard/prodrive/hermes/eeprom.h index a42a3d7..4b609df 100644 --- a/src/mainboard/prodrive/hermes/eeprom.h +++ b/src/mainboard/prodrive/hermes/eeprom.h @@ -63,6 +63,7 @@ struct __packed eeprom_bmc_settings { uint8_t pcie_mux; uint8_t hsi; + uint8_t efp3_displayport; };
#define HERMES_SERIAL_NUMBER_LENGTH 32 diff --git a/src/mainboard/prodrive/hermes/mainboard.c b/src/mainboard/prodrive/hermes/mainboard.c index 81ed641..6ca9613 100644 --- a/src/mainboard/prodrive/hermes/mainboard.c +++ b/src/mainboard/prodrive/hermes/mainboard.c @@ -8,6 +8,7 @@ #include <crc_byte.h> #include <device/device.h> #include <device/dram/spd.h> +#include <drivers/intel/gma/opregion.h> #include <gpio.h> #include <intelblocks/gpio.h> #include <intelblocks/pmclib.h> @@ -18,6 +19,16 @@ #include "eeprom.h" #include "gpio.h"
+const char *mainboard_vbt_filename(void) +{ + const struct eeprom_bmc_settings *bmc_cfg = get_bmc_settings(); + + if (bmc_cfg && bmc_cfg->efp3_displayport) + return "vbt-avalanche.bin"; + else + return "vbt.bin"; /* Poseidon */ +} + /* FIXME: Example code below */
static void mb_configure_dp1_pwr(bool enable)