2020-04-05 15:46:45 +02:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2015-05-06 00:07:29 +02:00
|
|
|
|
|
|
|
#include <console/console.h>
|
|
|
|
#include <device/device.h>
|
|
|
|
#include <device/pci.h>
|
2019-03-01 12:43:02 +01:00
|
|
|
#include <device/pci_ops.h>
|
2015-09-10 00:05:06 +02:00
|
|
|
#include <fsp/util.h>
|
2015-05-06 00:07:29 +02:00
|
|
|
#include <soc/pci_devs.h>
|
|
|
|
#include <soc/ramstage.h>
|
|
|
|
|
2019-03-21 15:38:06 +01:00
|
|
|
#include "chip.h"
|
|
|
|
|
2015-05-06 00:07:29 +02:00
|
|
|
static struct device_operations pci_domain_ops = {
|
|
|
|
.read_resources = pci_domain_read_resources,
|
|
|
|
.set_resources = pci_domain_set_resources,
|
|
|
|
.scan_bus = pci_domain_scan_bus,
|
|
|
|
};
|
|
|
|
|
|
|
|
static struct device_operations cpu_bus_ops = {
|
2020-04-05 14:05:24 +02:00
|
|
|
.read_resources = noop_read_resources,
|
|
|
|
.set_resources = noop_set_resources,
|
2015-04-21 00:20:28 +02:00
|
|
|
.init = soc_init_cpus
|
2015-05-06 00:07:29 +02:00
|
|
|
};
|
|
|
|
|
2018-05-24 22:29:44 +02:00
|
|
|
static void enable_dev(struct device *dev)
|
2015-05-06 00:07:29 +02:00
|
|
|
{
|
|
|
|
/* Set the operations if it is a special bus type */
|
|
|
|
if (dev->path.type == DEVICE_PATH_DOMAIN) {
|
|
|
|
dev->ops = &pci_domain_ops;
|
2020-03-19 00:31:58 +01:00
|
|
|
|
2015-05-06 00:07:29 +02:00
|
|
|
} else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER) {
|
|
|
|
dev->ops = &cpu_bus_ops;
|
2020-03-19 00:31:58 +01:00
|
|
|
|
2015-05-06 00:07:29 +02:00
|
|
|
} else if (dev->path.type == DEVICE_PATH_PCI) {
|
|
|
|
/* Handle south cluster enablement. */
|
|
|
|
if (PCI_SLOT(dev->path.pci.devfn) > GFX_DEV &&
|
|
|
|
(dev->ops == NULL || dev->ops->enable == NULL)) {
|
|
|
|
southcluster_enable_dev(dev);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-04-21 22:45:32 +02:00
|
|
|
__weak void board_silicon_USB2_override(SILICON_INIT_UPD *params)
|
2017-08-26 11:53:35 +02:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2015-04-21 00:20:28 +02:00
|
|
|
void soc_silicon_init_params(SILICON_INIT_UPD *params)
|
|
|
|
{
|
2018-05-22 01:18:00 +02:00
|
|
|
struct device *dev = pcidev_on_root(LPC_DEV, LPC_FUNC);
|
2015-09-09 23:12:16 +02:00
|
|
|
struct soc_intel_braswell_config *config;
|
|
|
|
|
|
|
|
if (!dev) {
|
2021-01-16 17:31:40 +01:00
|
|
|
printk(BIOS_ERR, "Error! Device (%s) not found, %s!\n",
|
|
|
|
dev_path(dev), __func__);
|
2015-09-09 23:12:16 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-07-13 21:16:25 +02:00
|
|
|
config = config_of(dev);
|
2015-04-21 00:20:28 +02:00
|
|
|
|
|
|
|
/* Set the parameters for SiliconInit */
|
|
|
|
printk(BIOS_DEBUG, "Updating UPD values for SiliconInit\n");
|
2020-03-19 00:31:58 +01:00
|
|
|
params->PcdSdcardMode = config->PcdSdcardMode;
|
|
|
|
params->PcdEnableHsuart0 = config->PcdEnableHsuart0;
|
|
|
|
params->PcdEnableHsuart1 = config->PcdEnableHsuart1;
|
|
|
|
params->PcdEnableAzalia = config->PcdEnableAzalia;
|
|
|
|
params->PcdEnableSata = config->PcdEnableSata;
|
|
|
|
params->PcdEnableXhci = config->PcdEnableXhci;
|
|
|
|
params->PcdEnableLpe = config->PcdEnableLpe;
|
|
|
|
params->PcdEnableDma0 = config->PcdEnableDma0;
|
|
|
|
params->PcdEnableDma1 = config->PcdEnableDma1;
|
|
|
|
params->PcdEnableI2C0 = config->PcdEnableI2C0;
|
|
|
|
params->PcdEnableI2C1 = config->PcdEnableI2C1;
|
|
|
|
params->PcdEnableI2C2 = config->PcdEnableI2C2;
|
|
|
|
params->PcdEnableI2C3 = config->PcdEnableI2C3;
|
|
|
|
params->PcdEnableI2C4 = config->PcdEnableI2C4;
|
|
|
|
params->PcdEnableI2C5 = config->PcdEnableI2C5;
|
|
|
|
params->PcdEnableI2C6 = config->PcdEnableI2C6;
|
|
|
|
params->GraphicsConfigPtr = 0;
|
|
|
|
params->AzaliaConfigPtr = 0;
|
|
|
|
params->PunitPwrConfigDisable = config->PunitPwrConfigDisable;
|
|
|
|
params->ChvSvidConfig = config->ChvSvidConfig;
|
|
|
|
params->DptfDisable = config->DptfDisable;
|
|
|
|
params->PcdEmmcMode = config->PcdEmmcMode;
|
2020-12-11 17:20:16 +01:00
|
|
|
params->PcdUsb3ClkSsc = 1;
|
|
|
|
params->PcdDispClkSsc = 1;
|
|
|
|
params->PcdSataClkSsc = 1;
|
2020-03-19 00:31:58 +01:00
|
|
|
|
|
|
|
params->Usb2Port0PerPortPeTxiSet = config->Usb2Port0PerPortPeTxiSet;
|
|
|
|
params->Usb2Port0PerPortTxiSet = config->Usb2Port0PerPortTxiSet;
|
|
|
|
params->Usb2Port0IUsbTxEmphasisEn = config->Usb2Port0IUsbTxEmphasisEn;
|
|
|
|
params->Usb2Port0PerPortTxPeHalf = config->Usb2Port0PerPortTxPeHalf;
|
|
|
|
|
|
|
|
params->Usb2Port1PerPortPeTxiSet = config->Usb2Port1PerPortPeTxiSet;
|
|
|
|
params->Usb2Port1PerPortTxiSet = config->Usb2Port1PerPortTxiSet;
|
|
|
|
params->Usb2Port1IUsbTxEmphasisEn = config->Usb2Port1IUsbTxEmphasisEn;
|
|
|
|
params->Usb2Port1PerPortTxPeHalf = config->Usb2Port1PerPortTxPeHalf;
|
|
|
|
|
|
|
|
params->Usb2Port2PerPortPeTxiSet = config->Usb2Port2PerPortPeTxiSet;
|
|
|
|
params->Usb2Port2PerPortTxiSet = config->Usb2Port2PerPortTxiSet;
|
|
|
|
params->Usb2Port2IUsbTxEmphasisEn = config->Usb2Port2IUsbTxEmphasisEn;
|
|
|
|
params->Usb2Port2PerPortTxPeHalf = config->Usb2Port2PerPortTxPeHalf;
|
|
|
|
|
|
|
|
params->Usb2Port3PerPortPeTxiSet = config->Usb2Port3PerPortPeTxiSet;
|
|
|
|
params->Usb2Port3PerPortTxiSet = config->Usb2Port3PerPortTxiSet;
|
|
|
|
params->Usb2Port3IUsbTxEmphasisEn = config->Usb2Port3IUsbTxEmphasisEn;
|
|
|
|
params->Usb2Port3PerPortTxPeHalf = config->Usb2Port3PerPortTxPeHalf;
|
|
|
|
|
|
|
|
params->Usb2Port4PerPortPeTxiSet = config->Usb2Port4PerPortPeTxiSet;
|
|
|
|
params->Usb2Port4PerPortTxiSet = config->Usb2Port4PerPortTxiSet;
|
|
|
|
params->Usb2Port4IUsbTxEmphasisEn = config->Usb2Port4IUsbTxEmphasisEn;
|
|
|
|
params->Usb2Port4PerPortTxPeHalf = config->Usb2Port4PerPortTxPeHalf;
|
|
|
|
|
|
|
|
params->Usb3Lane0Ow2tapgen2deemph3p5 = config->Usb3Lane0Ow2tapgen2deemph3p5;
|
|
|
|
params->Usb3Lane1Ow2tapgen2deemph3p5 = config->Usb3Lane1Ow2tapgen2deemph3p5;
|
|
|
|
params->Usb3Lane2Ow2tapgen2deemph3p5 = config->Usb3Lane2Ow2tapgen2deemph3p5;
|
|
|
|
params->Usb3Lane3Ow2tapgen2deemph3p5 = config->Usb3Lane3Ow2tapgen2deemph3p5;
|
|
|
|
|
2020-12-11 17:20:16 +01:00
|
|
|
params->PcdSataInterfaceSpeed = 3;
|
2020-03-19 00:31:58 +01:00
|
|
|
params->PcdPchUsbSsicPort = config->PcdPchUsbSsicPort;
|
|
|
|
params->PcdPchUsbHsicPort = config->PcdPchUsbHsicPort;
|
2020-12-11 17:20:16 +01:00
|
|
|
params->PcdPcieRootPortSpeed = 0;
|
2020-03-19 00:31:58 +01:00
|
|
|
params->PcdPchSsicEnable = config->PcdPchSsicEnable;
|
2020-12-11 17:20:16 +01:00
|
|
|
params->PcdRtcLock = 0;
|
2020-03-19 00:31:58 +01:00
|
|
|
params->PMIC_I2CBus = config->PMIC_I2CBus;
|
|
|
|
params->ISPEnable = config->ISPEnable;
|
|
|
|
params->ISPPciDevConfig = config->ISPPciDevConfig;
|
|
|
|
params->PcdSdDetectChk = config->PcdSdDetectChk;
|
|
|
|
params->I2C0Frequency = config->I2C0Frequency;
|
|
|
|
params->I2C1Frequency = config->I2C1Frequency;
|
|
|
|
params->I2C2Frequency = config->I2C2Frequency;
|
|
|
|
params->I2C3Frequency = config->I2C3Frequency;
|
|
|
|
params->I2C4Frequency = config->I2C4Frequency;
|
|
|
|
params->I2C5Frequency = config->I2C5Frequency;
|
|
|
|
params->I2C6Frequency = config->I2C6Frequency;
|
2017-08-26 11:47:15 +02:00
|
|
|
|
2017-08-26 11:53:35 +02:00
|
|
|
board_silicon_USB2_override(params);
|
2015-04-21 00:20:28 +02:00
|
|
|
}
|
|
|
|
|
2020-03-19 00:31:58 +01:00
|
|
|
void soc_display_silicon_init_params(const SILICON_INIT_UPD *old, SILICON_INIT_UPD *new)
|
2015-04-21 00:20:28 +02:00
|
|
|
{
|
|
|
|
/* Display the parameters for SiliconInit */
|
|
|
|
printk(BIOS_SPEW, "UPD values for SiliconInit:\n");
|
2020-03-19 00:31:58 +01:00
|
|
|
|
|
|
|
fsp_display_upd_value("PcdSdcardMode", 1,
|
|
|
|
old->PcdSdcardMode,
|
|
|
|
new->PcdSdcardMode);
|
|
|
|
fsp_display_upd_value("PcdEnableHsuart0", 1,
|
|
|
|
old->PcdEnableHsuart0,
|
|
|
|
new->PcdEnableHsuart0);
|
|
|
|
fsp_display_upd_value("PcdEnableHsuart1", 1,
|
|
|
|
old->PcdEnableHsuart1,
|
|
|
|
new->PcdEnableHsuart1);
|
|
|
|
fsp_display_upd_value("PcdEnableAzalia", 1,
|
|
|
|
old->PcdEnableAzalia,
|
|
|
|
new->PcdEnableAzalia);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("AzaliaConfigPtr", 4,
|
2020-03-19 00:31:58 +01:00
|
|
|
(uint32_t)old->AzaliaConfigPtr,
|
|
|
|
(uint32_t)new->AzaliaConfigPtr);
|
|
|
|
|
|
|
|
fsp_display_upd_value("PcdEnableSata", 1, old->PcdEnableSata, new->PcdEnableSata);
|
|
|
|
fsp_display_upd_value("PcdEnableXhci", 1, old->PcdEnableXhci, new->PcdEnableXhci);
|
|
|
|
fsp_display_upd_value("PcdEnableLpe", 1, old->PcdEnableLpe, new->PcdEnableLpe);
|
|
|
|
fsp_display_upd_value("PcdEnableDma0", 1, old->PcdEnableDma0, new->PcdEnableDma0);
|
|
|
|
fsp_display_upd_value("PcdEnableDma1", 1, old->PcdEnableDma1, new->PcdEnableDma1);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C0", 1, old->PcdEnableI2C0, new->PcdEnableI2C0);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C1", 1, old->PcdEnableI2C1, new->PcdEnableI2C1);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C2", 1, old->PcdEnableI2C2, new->PcdEnableI2C2);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C3", 1, old->PcdEnableI2C3, new->PcdEnableI2C3);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C4", 1, old->PcdEnableI2C4, new->PcdEnableI2C4);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C5", 1, old->PcdEnableI2C5, new->PcdEnableI2C5);
|
|
|
|
fsp_display_upd_value("PcdEnableI2C6", 1, old->PcdEnableI2C6, new->PcdEnableI2C6);
|
|
|
|
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PcdGraphicsConfigPtr", 4,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->GraphicsConfigPtr,
|
|
|
|
new->GraphicsConfigPtr);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("GpioFamilyInitTablePtr", 4,
|
2015-04-21 00:20:28 +02:00
|
|
|
(uint32_t)old->GpioFamilyInitTablePtr,
|
|
|
|
(uint32_t)new->GpioFamilyInitTablePtr);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("GpioPadInitTablePtr", 4,
|
2015-04-21 00:20:28 +02:00
|
|
|
(uint32_t)old->GpioPadInitTablePtr,
|
|
|
|
(uint32_t)new->GpioPadInitTablePtr);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PunitPwrConfigDisable", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->PunitPwrConfigDisable,
|
|
|
|
new->PunitPwrConfigDisable);
|
|
|
|
|
|
|
|
fsp_display_upd_value("ChvSvidConfig", 1, old->ChvSvidConfig, new->ChvSvidConfig);
|
|
|
|
fsp_display_upd_value("DptfDisable", 1, old->DptfDisable, new->DptfDisable);
|
|
|
|
fsp_display_upd_value("PcdEmmcMode", 1, old->PcdEmmcMode, new->PcdEmmcMode);
|
|
|
|
fsp_display_upd_value("PcdUsb3ClkSsc", 1, old->PcdUsb3ClkSsc, new->PcdUsb3ClkSsc);
|
|
|
|
fsp_display_upd_value("PcdDispClkSsc", 1, old->PcdDispClkSsc, new->PcdDispClkSsc);
|
|
|
|
fsp_display_upd_value("PcdSataClkSsc", 1, old->PcdSataClkSsc, new->PcdSataClkSsc);
|
|
|
|
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port0PerPortPeTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port0PerPortPeTxiSet,
|
|
|
|
new->Usb2Port0PerPortPeTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port0PerPortTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port0PerPortTxiSet,
|
|
|
|
new->Usb2Port0PerPortTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port0IUsbTxEmphasisEn", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port0IUsbTxEmphasisEn,
|
|
|
|
new->Usb2Port0IUsbTxEmphasisEn);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port0PerPortTxPeHalf", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port0PerPortTxPeHalf,
|
|
|
|
new->Usb2Port0PerPortTxPeHalf);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port1PerPortPeTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port1PerPortPeTxiSet,
|
|
|
|
new->Usb2Port1PerPortPeTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port1PerPortTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port1PerPortTxiSet,
|
|
|
|
new->Usb2Port1PerPortTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port1IUsbTxEmphasisEn", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port1IUsbTxEmphasisEn,
|
|
|
|
new->Usb2Port1IUsbTxEmphasisEn);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port1PerPortTxPeHalf", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port1PerPortTxPeHalf,
|
|
|
|
new->Usb2Port1PerPortTxPeHalf);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port2PerPortPeTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port2PerPortPeTxiSet,
|
|
|
|
new->Usb2Port2PerPortPeTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port2PerPortTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port2PerPortTxiSet,
|
|
|
|
new->Usb2Port2PerPortTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port2IUsbTxEmphasisEn", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port2IUsbTxEmphasisEn,
|
|
|
|
new->Usb2Port2IUsbTxEmphasisEn);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port2PerPortTxPeHalf", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port2PerPortTxPeHalf,
|
|
|
|
new->Usb2Port2PerPortTxPeHalf);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port3PerPortPeTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port3PerPortPeTxiSet,
|
|
|
|
new->Usb2Port3PerPortPeTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port3PerPortTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port3PerPortTxiSet,
|
|
|
|
new->Usb2Port3PerPortTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port3IUsbTxEmphasisEn", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port3IUsbTxEmphasisEn,
|
|
|
|
new->Usb2Port3IUsbTxEmphasisEn);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port3PerPortTxPeHalf", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port3PerPortTxPeHalf,
|
|
|
|
new->Usb2Port3PerPortTxPeHalf);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port4PerPortPeTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port4PerPortPeTxiSet,
|
|
|
|
new->Usb2Port4PerPortPeTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port4PerPortTxiSet", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port4PerPortTxiSet,
|
|
|
|
new->Usb2Port4PerPortTxiSet);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port4IUsbTxEmphasisEn", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port4IUsbTxEmphasisEn,
|
|
|
|
new->Usb2Port4IUsbTxEmphasisEn);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb2Port4PerPortTxPeHalf", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb2Port4PerPortTxPeHalf,
|
|
|
|
new->Usb2Port4PerPortTxPeHalf);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb3Lane0Ow2tapgen2deemph3p5", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb3Lane0Ow2tapgen2deemph3p5,
|
|
|
|
new->Usb3Lane0Ow2tapgen2deemph3p5);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb3Lane1Ow2tapgen2deemph3p5", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb3Lane1Ow2tapgen2deemph3p5,
|
|
|
|
new->Usb3Lane1Ow2tapgen2deemph3p5);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb3Lane2Ow2tapgen2deemph3p5", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb3Lane2Ow2tapgen2deemph3p5,
|
|
|
|
new->Usb3Lane2Ow2tapgen2deemph3p5);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("Usb3Lane3Ow2tapgen2deemph3p5", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->Usb3Lane3Ow2tapgen2deemph3p5,
|
|
|
|
new->Usb3Lane3Ow2tapgen2deemph3p5);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PcdSataInterfaceSpeed", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->PcdSataInterfaceSpeed,
|
|
|
|
new->PcdSataInterfaceSpeed);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PcdPchUsbSsicPort", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->PcdPchUsbSsicPort,
|
|
|
|
new->PcdPchUsbSsicPort);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PcdPchUsbHsicPort", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->PcdPchUsbHsicPort,
|
|
|
|
new->PcdPchUsbHsicPort);
|
2015-10-16 01:17:58 +02:00
|
|
|
fsp_display_upd_value("PcdPcieRootPortSpeed", 1,
|
2020-03-19 00:31:58 +01:00
|
|
|
old->PcdPcieRootPortSpeed,
|
|
|
|
new->PcdPcieRootPortSpeed);
|
|
|
|
fsp_display_upd_value("PcdPchSsicEnable", 1,
|
|
|
|
old->PcdPchSsicEnable,
|
|
|
|
new->PcdPchSsicEnable);
|
|
|
|
|
|
|
|
fsp_display_upd_value("PcdLogoPtr", 4, old->PcdLogoPtr, new->PcdLogoPtr);
|
|
|
|
fsp_display_upd_value("PcdLogoSize", 4, old->PcdLogoSize, new->PcdLogoSize);
|
|
|
|
fsp_display_upd_value("PcdRtcLock", 1, old->PcdRtcLock, new->PcdRtcLock);
|
|
|
|
fsp_display_upd_value("PMIC_I2CBus", 1, old->PMIC_I2CBus, new->PMIC_I2CBus);
|
|
|
|
fsp_display_upd_value("ISPEnable", 1, old->ISPEnable, new->ISPEnable);
|
|
|
|
fsp_display_upd_value("ISPPciDevConfig", 1, old->ISPPciDevConfig, new->ISPPciDevConfig);
|
|
|
|
fsp_display_upd_value("PcdSdDetectChk", 1, old->PcdSdDetectChk, new->PcdSdDetectChk);
|
2015-04-21 00:20:28 +02:00
|
|
|
}
|
|
|
|
|
2015-05-06 00:07:29 +02:00
|
|
|
/* Called at BS_DEV_INIT_CHIPS time -- very early. Just after BS_PRE_DEVICE. */
|
|
|
|
static void soc_init(void *chip_info)
|
|
|
|
{
|
2015-04-21 00:20:28 +02:00
|
|
|
soc_init_pre_device(chip_info);
|
2015-05-06 00:07:29 +02:00
|
|
|
}
|
|
|
|
|
2015-04-21 00:20:28 +02:00
|
|
|
struct chip_operations soc_intel_braswell_ops = {
|
|
|
|
CHIP_NAME("Intel Braswell SoC")
|
2015-05-06 00:07:29 +02:00
|
|
|
.enable_dev = enable_dev,
|
2020-03-19 00:31:58 +01:00
|
|
|
.init = soc_init,
|
2015-05-06 00:07:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct pci_operations soc_pci_ops = {
|
2019-03-20 09:59:47 +01:00
|
|
|
.set_subsystem = &pci_dev_set_subsystem,
|
2015-05-06 00:07:29 +02:00
|
|
|
};
|
2017-08-26 11:47:15 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
Return SoC stepping type
|
|
|
|
|
|
|
|
@retval SOC_STEPPING SoC stepping type
|
|
|
|
**/
|
|
|
|
int SocStepping(void)
|
|
|
|
{
|
2018-05-22 01:18:00 +02:00
|
|
|
struct device *dev = pcidev_on_root(LPC_DEV, LPC_FUNC);
|
2020-03-19 00:31:58 +01:00
|
|
|
const u8 revid = pci_read_config8(dev, 0x8);
|
2017-08-26 11:47:15 +02:00
|
|
|
|
|
|
|
switch (revid & B_PCH_LPC_RID_STEPPING_MASK) {
|
|
|
|
case V_PCH_LPC_RID_A0:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA0;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A1:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA1;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A2:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA2;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A3:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA3;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A4:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA4;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A5:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA5;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A6:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA6;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_A7:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocA7;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B0:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB0;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B1:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB1;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B2:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB2;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B3:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB3;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B4:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB4;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B5:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB5;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B6:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB6;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_B7:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocB7;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C0:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC0;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C1:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC1;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C2:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC2;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C3:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC3;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C4:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC4;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C5:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC5;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C6:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC6;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_C7:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocC7;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D0:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD0;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D1:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD1;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D2:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD2;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D3:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD3;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D4:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD4;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D5:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD5;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D6:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD6;
|
2017-08-26 11:47:15 +02:00
|
|
|
case V_PCH_LPC_RID_D7:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocD7;
|
2017-08-26 11:47:15 +02:00
|
|
|
default:
|
2020-03-19 00:31:58 +01:00
|
|
|
return SocSteppingMax;
|
2017-08-26 11:47:15 +02:00
|
|
|
}
|
|
|
|
}
|