soc/intel/skylake: Remove pch_enable_dev() from SoC
PCI resources MMIO space/bus master enabling is handled inside pch_dev_enable_resources() from common device code. Hence no need to have an explicit soc function to do the same. TEST=lspci from kernel console shows same pci device list without and without this patch. Change-Id: I005e486dd435e9c61ae3f5dfe3ff0e8f688d16e1 Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/22755 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
578a79d500
commit
3c838c7399
|
@ -63,17 +63,10 @@ static struct device_operations cpu_bus_ops = {
|
||||||
static void soc_enable(device_t dev)
|
static void soc_enable(device_t dev)
|
||||||
{
|
{
|
||||||
/* Set the operations if it is a special bus type */
|
/* Set the operations if it is a special bus type */
|
||||||
if (dev->path.type == DEVICE_PATH_DOMAIN) {
|
if (dev->path.type == DEVICE_PATH_DOMAIN)
|
||||||
dev->ops = &pci_domain_ops;
|
dev->ops = &pci_domain_ops;
|
||||||
} else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER) {
|
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
|
||||||
dev->ops = &cpu_bus_ops;
|
dev->ops = &cpu_bus_ops;
|
||||||
} else if (dev->path.type == DEVICE_PATH_PCI) {
|
|
||||||
/* Handle PCH device enable */
|
|
||||||
if (PCI_SLOT(dev->path.pci.devfn) > SA_DEV_SLOT_IGD &&
|
|
||||||
(dev->ops == NULL || dev->ops->enable == NULL)) {
|
|
||||||
pch_enable_dev(dev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations soc_intel_skylake_ops = {
|
struct chip_operations soc_intel_skylake_ops = {
|
||||||
|
|
|
@ -74,17 +74,10 @@ static struct device_operations cpu_bus_ops = {
|
||||||
static void soc_enable(device_t dev)
|
static void soc_enable(device_t dev)
|
||||||
{
|
{
|
||||||
/* Set the operations if it is a special bus type */
|
/* Set the operations if it is a special bus type */
|
||||||
if (dev->path.type == DEVICE_PATH_DOMAIN) {
|
if (dev->path.type == DEVICE_PATH_DOMAIN)
|
||||||
dev->ops = &pci_domain_ops;
|
dev->ops = &pci_domain_ops;
|
||||||
} else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER) {
|
else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER)
|
||||||
dev->ops = &cpu_bus_ops;
|
dev->ops = &cpu_bus_ops;
|
||||||
} else if (dev->path.type == DEVICE_PATH_PCI) {
|
|
||||||
/* Handle PCH device enable */
|
|
||||||
if (PCI_SLOT(dev->path.pci.devfn) > SA_DEV_SLOT_IGD &&
|
|
||||||
(dev->ops == NULL || dev->ops->enable == NULL)) {
|
|
||||||
pch_enable_dev(dev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations soc_intel_skylake_ops = {
|
struct chip_operations soc_intel_skylake_ops = {
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#define FSP_MEM_UPD MEMORY_INIT_UPD
|
#define FSP_MEM_UPD MEMORY_INIT_UPD
|
||||||
|
|
||||||
void soc_irq_settings(FSP_SIL_UPD *params);
|
void soc_irq_settings(FSP_SIL_UPD *params);
|
||||||
void pch_enable_dev(device_t dev);
|
|
||||||
void soc_init_pre_device(void *chip_info);
|
void soc_init_pre_device(void *chip_info);
|
||||||
void soc_fsp_load(void);
|
void soc_fsp_load(void);
|
||||||
const char *soc_acpi_name(const struct device *dev);
|
const char *soc_acpi_name(const struct device *dev);
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#define FSP_MEM_UPD FSP_M_CONFIG
|
#define FSP_MEM_UPD FSP_M_CONFIG
|
||||||
|
|
||||||
void mainboard_silicon_init_params(FSP_S_CONFIG *params);
|
void mainboard_silicon_init_params(FSP_S_CONFIG *params);
|
||||||
void pch_enable_dev(device_t dev);
|
|
||||||
void soc_fsp_load(void);
|
void soc_fsp_load(void);
|
||||||
void soc_init_pre_device(void *chip_info);
|
void soc_init_pre_device(void *chip_info);
|
||||||
void soc_irq_settings(FSP_SIL_UPD *params);
|
void soc_irq_settings(FSP_SIL_UPD *params);
|
||||||
|
|
|
@ -16,14 +16,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <arch/io.h>
|
#include <arch/io.h>
|
||||||
#include <console/console.h>
|
|
||||||
#include <delay.h>
|
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <device/pci.h>
|
#include <device/pci.h>
|
||||||
#include <device/pci_def.h>
|
|
||||||
#include <soc/pch.h>
|
#include <soc/pch.h>
|
||||||
#include <soc/pci_devs.h>
|
#include <soc/pci_devs.h>
|
||||||
#include <soc/ramstage.h>
|
|
||||||
|
|
||||||
u8 pch_revision(void)
|
u8 pch_revision(void)
|
||||||
{
|
{
|
||||||
|
@ -34,33 +30,3 @@ u16 pch_type(void)
|
||||||
{
|
{
|
||||||
return pci_read_config16(PCH_DEV_LPC, PCI_DEVICE_ID);
|
return pci_read_config16(PCH_DEV_LPC, PCI_DEVICE_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENV_RAMSTAGE
|
|
||||||
void pch_enable_dev(device_t dev)
|
|
||||||
{
|
|
||||||
/* FSP should implement routines to disable PCH IPs */
|
|
||||||
u32 reg32;
|
|
||||||
|
|
||||||
/* These devices need special enable/disable handling */
|
|
||||||
switch (PCI_SLOT(dev->path.pci.devfn)) {
|
|
||||||
case PCH_DEV_SLOT_PCIE:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dev->enabled) {
|
|
||||||
printk(BIOS_DEBUG, "%s: Disabling device\n", dev_path(dev));
|
|
||||||
|
|
||||||
/* Ensure memory, io, and bus master are all disabled */
|
|
||||||
reg32 = pci_read_config32(dev, PCI_COMMAND);
|
|
||||||
reg32 &= ~(PCI_COMMAND_MASTER |
|
|
||||||
PCI_COMMAND_MEMORY | PCI_COMMAND_IO);
|
|
||||||
pci_write_config32(dev, PCI_COMMAND, reg32);
|
|
||||||
} else {
|
|
||||||
/* Enable SERR */
|
|
||||||
reg32 = pci_read_config32(dev, PCI_COMMAND);
|
|
||||||
reg32 |= PCI_COMMAND_SERR;
|
|
||||||
pci_write_config32(dev, PCI_COMMAND, reg32);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
Loading…
Reference in New Issue