I have encountered a problem with a box with many PCI devices. During boot the kernel reports "PCI: Cannot allocate resource region 0 of device xx:yy:zz" as can be seen in the attached dmesg. Analyzing the output of lspci it seems that the problem is due to lack of I/O space. A lot of I/O space is used by the stuff on the mainboard and each PCI bridge is allocated 8k of I/O space so by the time I reach PCI bridge number 4 no further I/O ports can be found. I have read that PCI bridge I/O space must be allocated in 4k blocks so it seems it should be possible to cut space used by each bridge in half, provided that the I/O ranges behind the bridge will fit in 4k. In this case I have 4 devices and a total of 6 I/O ranges behind each bridge with two of the ranges 16 bytes long and 4 32 bytes long. These are configured at 1k intervals and hence the need for 8k on the bridge instead of 4k. I have tried to use setpci to remap the devices by taking the devices behind one of the correctly configured bridges and remapping the 6 I/O ranges at 256byte intervals instead of 1k and then shrinking the I/O region for the bridge to 4k. I have also assigned the I/O space freed by the previous operation to one of the incorrectly configured bridges and mapped the I/O ranges for the devices behind this bridge to 256byte intervals. This approach seems at least somewhat successfull, but it causes other problems since changing the bridge and device configuration with setpci does not change the kernel structures representing the pci devices - this causes problems when loading a driver for the modules. Any suggestions on how to fix this problem are highly appreciated. \Lars Knudsen