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>
This commit is contained in:
Angel Pons 2021-12-02 11:45:50 +01:00 committed by Felix Held
parent 012dc590b3
commit 4a0dee21ae
4 changed files with 14 additions and 0 deletions

View File

@ -10,3 +10,5 @@ ramstage-y += ramstage.c
ramstage-y += mainboard.c ramstage-y += mainboard.c
ramstage-y += eeprom.c ramstage-y += eeprom.c
ramstage-y += smbios.c ramstage-y += smbios.c
$(call add_vbt_to_cbfs, vbt-avalanche.bin, avalanche-data.vbt)

Binary file not shown.

View File

@ -63,6 +63,7 @@ _Static_assert(sizeof(struct eeprom_board_settings) == (10 + sizeof(uint32_t)),
struct __packed eeprom_bmc_settings { struct __packed eeprom_bmc_settings {
uint8_t pcie_mux; uint8_t pcie_mux;
uint8_t hsi; uint8_t hsi;
uint8_t efp3_displayport;
}; };
#define HERMES_SERIAL_NUMBER_LENGTH 32 #define HERMES_SERIAL_NUMBER_LENGTH 32

View File

@ -8,6 +8,7 @@
#include <crc_byte.h> #include <crc_byte.h>
#include <device/device.h> #include <device/device.h>
#include <device/dram/spd.h> #include <device/dram/spd.h>
#include <drivers/intel/gma/opregion.h>
#include <gpio.h> #include <gpio.h>
#include <intelblocks/gpio.h> #include <intelblocks/gpio.h>
#include <intelblocks/pmclib.h> #include <intelblocks/pmclib.h>
@ -18,6 +19,16 @@
#include "eeprom.h" #include "eeprom.h"
#include "gpio.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 */ /* FIXME: Example code below */
static void mb_configure_dp1_pwr(bool enable) static void mb_configure_dp1_pwr(bool enable)