]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Commit a workaround to a problem with resource allocation. This helps
authorWarner Losh <imp@FreeBSD.org>
Fri, 16 Sep 2005 07:02:29 +0000 (07:02 +0000)
committerWarner Losh <imp@FreeBSD.org>
Fri, 16 Sep 2005 07:02:29 +0000 (07:02 +0000)
commitdca20690844e8823d9ae30fd44c0bc0a1d3733f7
tree88c0768ee21a17c271fe121dfdb70bdf9f50ddd4
parent9689258fb581d087258138fc49d77ff316b6d4f1
Commit a workaround to a problem with resource allocation.  This helps
with some Dell servers that booted w/o a problem[*] on 5.4, but failed
with 6.0-BETA.

On the PCI bus, when we do lazy resource allocation, we narrow the
range requested as we pass through bridges to reflect how the bridges
are programmed and what addresses they pass.  However, when we're
doing an allocation on a bus that's directly connected to a host
bridge, no such translation can take place.  We already had a fallback
range for memory requests, but none for ioports.  As such, provide a
fallback for I/O ports so we don't allocate location 0, which will
have undesired side effects when the resources are actually used.

This fixes a problem with booting a Dell server with usb in the
kernel.  However, it is an unsatisfying solution.  I don't like the
hard coded value, and I think we should start narrowing the resources
returned to not be in the so-called isa alias area (where the ranage &
0x0300 must be 0 iirc).  Doing such filtering will have to wait for
another day.

This may be a good 6 candidate, maybe after its had a chance to be
refined.

Tested by: glebius@
sys/dev/acpica/acpi_pcib_acpi.c
sys/i386/pci/pci_bus.c