Index: sys/dev/pci/pci.c =================================================================== --- sys/dev/pci/pci.c (revision 362147) +++ sys/dev/pci/pci.c (working copy) @@ -5303,6 +5303,20 @@ /* This is a BAR that we failed to allocate earlier. */ mapsize = pm->pm_size; map = pm->pm_value; + +#ifndef __PCI_BAR_ZERO_VALID + /* + * Workaround for IO when booting without a system BIOS. + * + * IO port 0 is illegal on most PCI controllers and will + * malfunction if assigned to a device. + * + * Ensure we can never allocate IO port 0. + */ + if (map == 0x00000001 && start == 0) { + start = 1; + } +#endif } else { /* * Weed out the bogons, and figure out how large the