Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Apr 2011 14:51:40 -0700
From:      Nate Lawson <nate@root.org>
To:        freebsd-acpi@freebsd.org
Subject:   Re: Atheros 9285 & Atheros AR8131
Message-ID:  <4D9CE06C.3070002@root.org>
In-Reply-To: <201104061600.53572.jhb@freebsd.org>
References:  <AANLkTi=-rourdUbyH0MVceHi81vAHcNdpaxjpmxJ_BCk@mail.gmail.com>	<AANLkTinPAF6dQ0Y4se2B7yqQxVBktv3X1_MUFkfb75dC@mail.gmail.com>	<201103281406.27334.jhb@freebsd.org> <201104061600.53572.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 4/6/2011 1:00 PM, John Baldwin wrote:
> On Monday, March 28, 2011 2:06:27 pm John Baldwin wrote:
>> We've never figured out what is zeroing the registers in the PCI-PCI bridges.
>> I suspect it is not something in the ASL, but is a side effect of some BIOS
>> code that runs in SMM when ACPI is turned on.
> 
> Ok, so I have a patch to rework how PCI-PCI bridges manage resources for
> devices.  This patch applies to HEAD, no idea if it applies to older branches
> (likely not).  You will need to add the option 'NEW_PCIB' to your kernel
> config after applying this patch.
> 
>   http://www.FreeBSD.org/~jhb/patches/pcib_new.patch
> 
> For my local testing I used a hack to wipe out the PCI-PCI bridges in my
> test machine similar to what the BIOS does on these machines.  The bridges
> all grew windows to match their original BIOS-assigned windows based on the
> BIOS-assigned resources in the BARs of the child devices.
> 
> These patches should also let us allocate new resources from scratch for
> devices behind PCI-PCI bridges once we have better support for determining what
> are valid PCI address ranges in the Host-PCI bridge drivers.

Wow, awesome work. This is really useful for fixing a common problem.

Should bus_adjust_resource() be a DEVMETHOD or is this something that
should be done automatically within rman_alloc_resource(), possibly
based on a device flag?

-- 
Nate




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D9CE06C.3070002>