svn commit: r232403 - in head/sys: dev/acpica dev/cardbus dev/pci powerpc/ofw sparc64/pci

John Baldwin jhb at freebsd.org
Fri Mar 2 22:21:55 UTC 2012


On Friday, March 02, 2012 4:45:52 pm Marius Strobl wrote:
> On Fri, Mar 02, 2012 at 08:38:05PM +0000, John Baldwin wrote:
> > Author: jhb
> > Date: Fri Mar  2 20:38:04 2012
> > New Revision: 232403
> > URL: http://svn.freebsd.org/changeset/base/232403
> > 
> > Log:
> >   - Add a bus_dma tag to each PCI bus that is a child of a Host-PCI bridge.
> >     The tag enforces a single restriction that all DMA transactions must not
> >     cross a 4GB boundary.  Note that while this restriction technically only
> >     applies to PCI-express, this change applies it to all PCI devices as it
> >     is simpler to implement that way and errs on the side of caution.
> 
> Hrm, wouldn't it have been more appropriate to implement this in the
> Host-PCI bridges instead? Probably for anything but x86 this would
> allow to easily distinguish at least between PCI and PCI-Express capable
> bus hierarchies and would move the PAE workaround to the MD bits to
> where it belongs.

The PAE workaround is dying as I've already fixed HEAD to make boundary arguments
use a bus_addr_t.  However, I committed it in this fashion so it can be MFC'd
since I can't merge the boundary KBI change.

The reason I did not do this in the Host-PCI bridge drivers is that we would have
to do this in umpteen different drivers, and all for a change that is mandated by
the PCI spec and not specific to the various specs the Host-PCI bridge drivers
all cater to (OFW, ACPI, MPTable, various and sundry embedded platforms, etc.).

-- 
John Baldwin


More information about the svn-src-all mailing list