summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/i386/include/arch/romcc_io.h2
-rw-r--r--src/config/Options.lb5
-rw-r--r--src/mainboard/via/epia-m/Options.lb10
3 files changed, 16 insertions, 1 deletions
diff --git a/src/arch/i386/include/arch/romcc_io.h b/src/arch/i386/include/arch/romcc_io.h
index adda3f8ef8..983835a093 100644
--- a/src/arch/i386/include/arch/romcc_io.h
+++ b/src/arch/i386/include/arch/romcc_io.h
@@ -168,7 +168,7 @@ static inline __attribute__((always_inline)) void pci_write_config32(device_t de
#define PCI_DEV_INVALID (0xffffffffU)
static device_t pci_locate_device(unsigned pci_id, device_t dev)
{
- for(; dev <= PCI_DEV(255, 31, 7); dev += PCI_DEV(0,0,1)) {
+ for(; dev <= PCI_DEV(CONFIG_MAX_PCI_BUSES, 31, 7); dev += PCI_DEV(0,0,1)) {
unsigned int id;
id = pci_read_config32(dev, 0);
if (id == pci_id) {
diff --git a/src/config/Options.lb b/src/config/Options.lb
index 1342366fe9..2f3d8dd1c0 100644
--- a/src/config/Options.lb
+++ b/src/config/Options.lb
@@ -490,6 +490,11 @@ define CONFIG_SYS_CLK_FREQ
export used
comment "System clock frequency in MHz"
end
+define CONFIG_MAX_PCI_BUSES
+ default 255
+ export always
+ comment "Maximum number of PCI buses to search for devices"
+end
###############################################
# SMP options
###############################################
diff --git a/src/mainboard/via/epia-m/Options.lb b/src/mainboard/via/epia-m/Options.lb
index 6c3193e78d..735d4421a0 100644
--- a/src/mainboard/via/epia-m/Options.lb
+++ b/src/mainboard/via/epia-m/Options.lb
@@ -38,6 +38,7 @@ uses CONFIG_CONSOLE_SERIAL8250
uses CONFIG_UDELAY_TSC
uses CONFIG_PCI_ROM_RUN
uses CONFIG_CONSOLE_VGA
+uses CONFIG_MAX_PCI_BUSES
## ROM_SIZE is the size of boot ROM that this board will use.
default ROM_SIZE = 256*1024
@@ -121,5 +122,14 @@ default CROSS_COMPILE=""
default CC="$(CROSS_COMPILE)gcc -m32"
default HOSTCC="gcc"
+##
+## Set this to the max PCI bus number you
+## would ever use for PCI config IO.
+## Setting this number very high will make
+## pci_locate_device take a long time when
+## it can't find a device.
+##
+default CONFIG_MAX_PCI_BUSES = 5
+
end