Steven Stallion wrote:
>> Masa Murayama wrote:
>>     
>>> ----- Original Message -----
>>>
>>>       
>>> Typical sparc IOMMU DVMA range is 0xff000000 - 0xffffffff, the highest
>>> 16Mbyte in PCI memory sparce. Threfore,  PCI master devices *must*
>>> support the range for dma.
>>>
>>>  Recently I saw the same message for BCM4401 driver on sparc,
>>> the divece only supports the dma range of 0x00000000 - 0x40000000,
>>> the lowest 1Gbyte. So bcm4401 doesn't work on sparc.
>>>
>>>       
>> Right.  An interesting data point about SPARC -- I had forgotten that
>> limitation.  There are a few other devices I've run into in the past
>> that had this limitation.
>>
>> These days, it seems most device mfgr's understand that it is important
>> to support at least the full 32-bit address space, and more and more --
>> the full 64-bit address space.
>>     
>
> Thinking back, this does make a bit of sense. It seems odd that the
> RTL8029AS would not support the full 32-bit range of addressing, but then
> again, it doesn't support bus mastering either.
>   

If it doesn't support bus mastering, then you can't *really* use DMA.  
At least not DMA like I thought you were talking about.  (You can use 
3rd party DMA, but that becomes really hellish, and may not even be 
portable.  I've never seen 3rd party DMA used for anything except ISA 
devices.  Use PIO instead.)

For all intents and purposes, DMA == bus mastering.

> Is there a good place I can RTFM on PCI support in Solaris on SPARC and
> x86? I didn't know that SPARC had an addressing limitation for PCI devices
> - I would have thought the IOMMU could have handled that.
>   

Even an IOMMU has to deal with address limitations -- some of the 
physical address space (PCI addresses) have to be available for PCI 
register and on-device memory.  (For example, framebuffers can wind up 
chewing up a lot of the physical address space.)

Address space is a finite resource.

I'm not aware of any SPARC specific PCI FAQs.

    -- Garrett


_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to