[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DMA function



>I have an ISA core that I am trying to port to PCI platform. This ISA core
>uses host DMA channel to achive data transfer. I understand in PCI
>environment the preferred way to do DMA is: a) need to be a PCI master. b)
>provide all the DMA registers in the master.
>
>Is there any other way to achive this, and be compatible with ISA DMA scheme
>(i.e. using host DMA capability) in PCI? How does a PCI card signal the host
>DMA controller to intiate DMA transfer? Can any of you shed some lights on
>this issue. Can any of you share your experience of porting any ISA
>functions with DMA to PCI?


PCI devices use a request/grant style arbitration, then drive their own
address and data onto the bus, i.e. they are bus masters.

The ISA DMA architecture was very limited and no, you can't realistically
emulate it without leaping through some enormous hoops.  ISA DMA could only
transfer 8 bit or 16 bit single cycles, only to memory in the first 16MB, and
could not cross 64K boundaries.  In fact, the ISA DMA host Controllers are
ONLY connected to the 8MHz ISA bus, so would not work very well for the 33MHz
PCI bus.  ISA DMA typically had a 1-4MByte/sec peak speed, whereas PCI bus
mastering can burst at up to 133Mbyte/sec.

-jrp