Subject: Re: Ethernet adapter
To: Marcus Comstedt <marcus@idonex.se>
From: Jason R Thorpe <thorpej@zembu.com>
List: tech-kern
Date: 01/28/2001 14:46:30
On Sun, Jan 28, 2001 at 11:33:41PM +0100, Marcus Comstedt wrote:

[ BCC'd to port-dreamcast, and redirected to teck-kern -- this could be
  considered a generic bus_dma issue. ]

 > Ok, I've found the PCI configuration space (I was fooled by the fact
 > that SEGA has set a different VID/DID in the EEPROM), so I guess I
 > should just make a proper PCI bus implementation and use if_rtk_pci.
 > There is one problem though.  There is only 32K of DMA space available
 > (AFAICT, PCI DMA goes to an embedded memory in the PCI bridge chip),
 > and the rtl81x9reg.h has a hardcoded RX buffer size of 64K.  Clearly
 > this must be changed to 16K or 8K for the Dreamcast.  Any ideas on a
 > nice way to do this?

This is an issue that could affect at least one Alpha system, as well --
The Avalon A12 Multiprocessor -- the PCI on that system can't DMA to
main memory, only to an SRAM buffer (it's used for the Ethernet on that
device, as well :-)

I'm not really sure the best way to do this -- I guess a maybe a new
bus_dma call -- bus_dma_availspace()?  That could return the amount
of DMA space currently available.

I suspect the only systems on which this is really an issue are those
which have a PCI bus that's designed to deal with exactly one device.

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>