The size of I/O ranges can be anything from 16 bytes to 2G bytes.

Lower the minimum for memory mapped I/O from 32 bytes to 16 bytes.
This fixes bus enumeration on ia64 now that the Diva auxiliary
serial port is attached to.
This commit is contained in:
Marcel Moolenaar 2006-04-27 04:53:18 +00:00
parent b16affc0ac
commit d95bd0c34a

View file

@ -860,12 +860,12 @@ pci_add_map(device_t pcib, device_t bus, device_t dev,
* isn't clear, we know we have a BAR that doesn't conform to the
* spec, so ignore it. Also, sanity check the size of the data
* areas to the type of memory involved. Memory must be at least
* 32 bytes in size, while I/O ranges must be at least 4.
* 16 bytes in size, while I/O ranges must be at least 4.
*/
if ((testval & 0x1) == 0x1 &&
(testval & 0x2) != 0)
return (barlen);
if ((type == SYS_RES_MEMORY && ln2size < 5) ||
if ((type == SYS_RES_MEMORY && ln2size < 4) ||
(type == SYS_RES_IOPORT && ln2size < 2))
return (barlen);