Werner Zeh has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56442 )
Change subject: mb/siemens/mc_apl{1,2,3,5,6}: Set PCI bus master bit only if allowed ......................................................................
mb/siemens/mc_apl{1,2,3,5,6}: Set PCI bus master bit only if allowed
Take Kconfig switch PCI_ALLOW_BUS_MASTER into account and set the PCI bus master bit for legacy devices only if it is allowed.
Change-Id: I7798a767d528419bb093f301140ab68cc8b9c5ae Signed-off-by: Werner Zeh werner.zeh@siemens.com --- M src/mainboard/siemens/mc_apl1/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl2/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c 5 files changed, 21 insertions(+), 14 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/42/56442/1
diff --git a/src/mainboard/siemens/mc_apl1/mainboard.c b/src/mainboard/siemens/mc_apl1/mainboard.c index bca0cbb..114d6e3 100644 --- a/src/mainboard/siemens/mc_apl1/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/mainboard.c @@ -215,10 +215,12 @@ /* Do board specific things */ variant_mainboard_final();
- /* Set Master Enable for on-board PCI device. */ - dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403f, 0); - if (dev) { - pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + /* Set Master Enable for on-board PCI device if allowed. */ + if (CONFIG(PCI_ALLOW_BUS_MASTER)) { + dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403f, 0); + if (dev) { + pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + } } /* Set up SPI OPCODE menu before the controller is locked. */ fast_spi_set_opcode_menu(); diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl2/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl2/mainboard.c index 1baa8ec..7d8b9f5 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl2/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl2/mainboard.c @@ -10,9 +10,11 @@ { struct device *dev;
- /* Set Master Enable for on-board PCI device. */ - dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403e, 0); - if (dev) { - pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + if (CONFIG(PCI_ALLOW_BUS_MASTER)) { + /* Set Master Enable for on-board PCI device if allowed. */ + dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403e, 0); + if (dev) { + pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + } } } diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c index 842f377..4f43782 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c @@ -36,10 +36,11 @@ */ pcr_or32(PID_LPC, PCR_LPC_PRC, (PCR_LPC_CCE_EN | PCR_LPC_PCE_EN));
- /* Set Master Enable for on-board PCI device. */ + /* Set Master Enable for on-board PCI device if allowed. */ dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403e, 0); if (dev) { - pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + if (CONFIG(PCI_ALLOW_BUS_MASTER)) + pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER);
/* Disable clock outputs 0 and 2-4 (CLKOUT) for upstream * XIO2001 PCIe to PCI Bridge. diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c index 7554fee..82528d5 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c @@ -43,10 +43,11 @@ */ pcr_rmw32(PID_MODPHY, TX_DWORD3, (0x00 << 16), (0x4a << 16));
- /* Set Master Enable for on-board PCI device. */ + /* Set Master Enable for on-board PCI device if allowed. */ dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403e, 0); if (dev) { - pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + if (CONFIG(PCI_ALLOW_BUS_MASTER)) + pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER);
/* Disable clock outputs 0-3 (CLKOUT) for upstream XIO2001 PCIe * to PCI Bridge. */ diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c index 1cecef7..2a8dd9b 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c @@ -36,10 +36,11 @@ */ pcr_or32(PID_LPC, PCR_LPC_PRC, (PCR_LPC_CCE_EN | PCR_LPC_PCE_EN));
- /* Set Master Enable for on-board PCI device. */ + /* Set Master Enable for on-board PCI device if allowed. */ dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403e, 0); if (dev) { - pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER); + if (CONFIG(PCI_ALLOW_BUS_MASTER)) + pci_or_config16(dev, PCI_COMMAND, PCI_COMMAND_MASTER);
/* Disable clock outputs 0-3 (CLKOUT) for upstream * XIO2001 PCIe to PCI Bridge.