amd64/162708: FreeBSD 9.0-RC2 amd64 fails to boot on Dell
jhb at FreeBSD.org
Thu Dec 8 15:50:11 UTC 2011
The following reply was made to PR amd64/162708; it has been noted by GNATS.
From: John Baldwin <jhb at FreeBSD.org>
To: "David J. Weller-Fahy" <dave-freebsd-gnats at weller-fahy.com>
Cc: Peter Jeremy <peterjeremy at acm.org>, freebsd-gnats-submit at freebsd.org
Subject: Re: amd64/162708: FreeBSD 9.0-RC2 amd64 fails to boot on Dell Optiplex
Date: Thu, 08 Dec 2011 10:48:37 -0500
On 12/3/11 10:11 PM, David J. Weller-Fahy wrote:
> * John Baldwin<jhb at freebsd.org> [2011-11-29 15:30 -0500]:
>> Try adding 'debug.acpi.disabled=hostres' at the loader prompt.
> Ah-hah - that worked! The delay was me testing that booting from CD,
> then upgrading my 8.2 w/ ZFS v28 system to 9.0-RC2 via freebsd-update,
> including "debug.acpi.disabled=hostres" in my `/boot/loader.conf`, and
> completing the update (including performing a complete reinstall of all
> ports using portmaster).
> Thanks for the help, and is there anything I need to try to see what
> needs to be fixed? Do you need information from this machine?
> I'm keeping the second hard-drive clear right now just in case I need to
> do some test installs.
Well, it's more that your BIOS is providing inaccurate or incomplete
information about what address ranges your Host-PCI bridges
understand. That's not easily fixable (the tunable just ignores what
the BIOS says). At some point what I may do is make the check more
lenient so that always we trust requests for specific ranges. Hmm, can
you try this patch without the tunable:
@@ -511,8 +511,16 @@
sc = device_get_softc(dev);
res = pcib_host_res_alloc(&sc->ap_host_res, child, type, rid,
+ * XXX: If this is a request for a specific range, assume it is
+ * correct and pass it up to the parent. What we probably want to
+ * do long-term is explicitly trust any firmware-configured
+ * resources during the initial bus scan on boot and then disable
+ * this after that.
if (res == NULL && start + count - 1 == end)
- res = acpi_alloc_sysres(child, type, rid, start, end, count, flags);
+ res = bus_generic_alloc_resource(dev, child, type, rid, start, end,
+ count, flags);
return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
More information about the freebsd-amd64