aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/siemens/mc_apl1
diff options
context:
space:
mode:
authorMario Scheithauer <mario.scheithauer@siemens.com>2017-09-05 15:32:49 +0200
committerWerner Zeh <werner.zeh@siemens.com>2017-09-08 10:50:30 +0000
commitb83858af5b29ef468f732591269ce7eb471d7591 (patch)
treec04f14f9487db04bc0eb66cb33064580b8161832 /src/mainboard/siemens/mc_apl1
parent65e54662e35508623505e1d01c23c6c5caf7e2de (diff)
siemens/mc_apl1: Set bus master bit for on-board PCI device
There is one on-board PCI device where bus master has to be enabled in PCI configuration space. As there is no need for a complete PCI driver for this device just set the bus master bit in mainboard_final(). Change-Id: I45202937eba11da3bea14fef6ebed70599804335 Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com> Reviewed-on: https://review.coreboot.org/21405 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Diffstat (limited to 'src/mainboard/siemens/mc_apl1')
-rw-r--r--src/mainboard/siemens/mc_apl1/mainboard.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mainboard/siemens/mc_apl1/mainboard.c b/src/mainboard/siemens/mc_apl1/mainboard.c
index 4c90aff0fc..d8374fc2a4 100644
--- a/src/mainboard/siemens/mc_apl1/mainboard.c
+++ b/src/mainboard/siemens/mc_apl1/mainboard.c
@@ -15,8 +15,9 @@
*/
#include <console/console.h>
-#include <device/pci.h>
#include <device/device.h>
+#include <device/pci.h>
+#include <device/pci_ids.h>
#include <hwilib.h>
#include <i210.h>
#include <intelblocks/lpc_lib.h>
@@ -115,6 +116,8 @@ static void mainboard_init(void *chip_info)
static void mainboard_final(void *chip_info)
{
int status;
+ uint16_t cmd = 0;
+ device_t dev = NULL;
/**
* Set up the DP2LVDS converter.
@@ -128,6 +131,14 @@ static void mainboard_final(void *chip_info)
/* Enable additional I/O decoding range on LPC for COM 3 */
lpc_open_pmio_window(0x3e8, 8);
+
+ /* Set Master Enable for on-board PCI device. */
+ dev = dev_find_device(PCI_VENDOR_ID_SIEMENS, 0x403f, 0);
+ if (dev) {
+ cmd = pci_read_config16(dev, PCI_COMMAND);
+ cmd |= PCI_COMMAND_MASTER;
+ pci_write_config16(dev, PCI_COMMAND, cmd);
+ }
}
struct chip_operations mainboard_ops = {