Freebios2 recovery progress... pci64 mem optimization

Eric W. Biederman ebiederman at
Fri Oct 22 11:22:48 CEST 2004

Li-Ta Lo <ollie at> writes:

> On Thu, 2004-10-21 at 20:08, Eric W. Biederman wrote:
> > With more than 4GB of memory it is used as an IOMMU so you don't
> > need bounce buffers.
> > 
> Could you tell me more about this ? 


> Is "bounce buffer" that bounce buffer for PCI DMA in the kernel ? 

Yes.  The simple explanation is that without an IOMMU the
PCI hardware that is not capable of DAC cycles must DMA to
and address below 4GB.  If it is desired for that data to
be above 4GB a temporary buffer is allocated below for
4GB (a bounce buffer) and after the DMA is complete the data
is copied to the destination buffer.

The kernel swiotlb code from the ia64 implements this behavior.

> How does an AGP aperture solve it ?

Because you can allocate a DMA target address below 4GB that
points to memory above 4GB.  So long as the IOUMMU setup is less
expensive than the memory copy this is a win.


More information about the coreboot mailing list