mb/ocp/deltalake: Config PCH PCIe ports in devicetree
Tested on OCP Delta Lake with lspci checking if PCIe speed is changed are expected. Change-Id: I189027c403814d68db2b7c5f41fc254a293fe3a1 Signed-off-by: Morgan Jang <Morgan_Jang@wiwynn.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41690 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
This commit is contained in:
parent
b8d0d089b3
commit
b29d16fc8a
|
@ -39,6 +39,12 @@ chip soc/intel/xeon_sp/cpx
|
|||
register "gen1_dec" = "0x00fc0601" # BIC in-band update support
|
||||
register "gen2_dec" = "0x000c0ca1" # IPMI KCS
|
||||
|
||||
# configure PCH PCIe port
|
||||
register "pch_pci_port[8]" = "{
|
||||
.ForceEnable = 0x1,
|
||||
.PortLinkSpeed = PcieAuto,
|
||||
}"
|
||||
|
||||
device cpu_cluster 0 on
|
||||
device lapic 0 on end
|
||||
end
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <FspmUpd.h>
|
||||
#include <soc/romstage.h>
|
||||
|
||||
#include "chip.h"
|
||||
#include "ipmi.h"
|
||||
#include "vpd.h"
|
||||
|
||||
|
@ -74,7 +75,21 @@ static void mainboard_config_gpios(FSPM_UPD *mupd)
|
|||
|
||||
static void mainboard_config_iio(FSPM_UPD *mupd)
|
||||
{
|
||||
uint8_t index;
|
||||
const config_t *config = config_of_soc();
|
||||
|
||||
oem_update_iio(mupd);
|
||||
|
||||
for (index = 0; index < MAX_PCH_PCIE_PORT; index++) {
|
||||
mupd->FspmConfig.PchPcieForceEnable[index] =
|
||||
config->pch_pci_port[index].ForceEnable;
|
||||
mupd->FspmConfig.PchPciePortLinkSpeed[index] =
|
||||
config->pch_pci_port[index].PortLinkSpeed;
|
||||
}
|
||||
|
||||
mupd->FspmConfig.PchPcieRootPortFunctionSwap = 0x00;
|
||||
/* The default value is 0XFF in FSP, set it to 0xFE by platform */
|
||||
mupd->FspmConfig.PchPciePllSsc = 0xFE;
|
||||
}
|
||||
|
||||
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
||||
|
|
|
@ -7,10 +7,35 @@
|
|||
#include <soc/irq.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define MAX_PCH_PCIE_PORT 20
|
||||
|
||||
/**
|
||||
UPD_PCH_PCIE_PORT:
|
||||
ForceEnable - Enable/Disable PCH PCIe port
|
||||
PortLinkSpeed - Port Link Speed. Use PCIE_LINK_SPEED to set
|
||||
**/
|
||||
struct pch_pcie_port {
|
||||
uint8_t ForceEnable;
|
||||
uint8_t PortLinkSpeed;
|
||||
};
|
||||
|
||||
/**
|
||||
PCIe Link Speed Selection
|
||||
**/
|
||||
typedef enum {
|
||||
PcieAuto = 0,
|
||||
PcieGen1,
|
||||
PcieGen2,
|
||||
PcieGen3
|
||||
} pcie_link_speed;
|
||||
|
||||
struct soc_intel_xeon_sp_cpx_config {
|
||||
/* Common struct containing soc config data required by common code */
|
||||
struct soc_intel_common_config common_soc_config;
|
||||
|
||||
/* Struct for configuring PCH PCIe port */
|
||||
struct pch_pcie_port pch_pci_port[MAX_PCH_PCIE_PORT];
|
||||
|
||||
/**
|
||||
* Interrupt Routing configuration
|
||||
* If bit7 is 1, the interrupt is disabled.
|
||||
|
|
Loading…
Reference in New Issue