diff options
Diffstat (limited to 'drivers/pci_auto.c')
-rw-r--r-- | drivers/pci_auto.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci_auto.c b/drivers/pci_auto.c index 969167555ea..f170c2db89e 100644 --- a/drivers/pci_auto.c +++ b/drivers/pci_auto.c @@ -34,7 +34,12 @@ void pciauto_region_init(struct pci_region* res) { - res->bus_lower = res->bus_start; + /* + * Avoid allocating PCI resources from address 0 -- this is illegal + * according to PCI 2.1 and moreover, this is known to cause Linux IDE + * drivers to fail. Use a reasonable starting value of 0x1000 instead. + */ + res->bus_lower = res->bus_start ? res->bus_start : 0x1000; } void pciauto_region_align(struct pci_region *res, unsigned long size) |