Re: DMA driver

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Anwar,

Firstly, Q4. The "Driver" is the software, the "Adaptor" refers to
hardware.

Q3. How you implement DMA on your device should be in line with the
CEDDK support for DMA. This is where HalTranslateSystemAddress, etc.
come in. Generally DMA controllers work using physical addresses, but
what physical address region they use will depend on where they are in
the hardware. For example if the DMA controller is part of the CPU
device then it will use system physical addresses, if it is part of a
PCI bus device, it may well use the physical PCI bus addresses. You
need to support conversions between the various physical addresses
that your DMA controller uses in CEDDK.

Q2. We don't have a stream driver interface to the DMA controller in
our target. CEDDK has been extended to include custom calls such as
HalAllocateDmaChan(), HalFreeDmaChan().... etc. Other drivers call
these directly to impliment DMA transfers.

Q1. Burst size is what a memory/bus support in burst mode. Burst mode
is where the address is sent at the start of a transaction, and then
data is sent on consecutive bus transactions without the address being
resent. So a burst size of 4 would be a bus cycle of
<Addr><Data[0]><Data[1]><Data[2]><Data[3]>. This type of access is
typical of DRAM, SDRAM and PCI bus.

Regards,
Andrew.

On Jul 9, 9:59 am, Anwar <sm.anwa...@xxxxxxxxx> wrote:
Hi,
I am sort of a newbie to DMA.
But now i am supposes to make a DMA driver, basically a driver which
will talking to the DMA controler on my board.
For this I have few questions
1) What is burst size and how is it related to DMA
2) Would making the DMA driver similiar to a stream interface driver
be a correct design?
3) Do I need to modify the API's HalTranslateSystemAddress or
HalAllocateCommonBuffer etc for the same
4) What is the difference between a DMA driver and a DMA adapter?

Thanks
Anwar


.



Relevant Pages

  • dma timeout
    ... my *old hdd* got up with dma mode. ... PIIX4: IDE controller at PCI slot 00:04.1 ... ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ... hda: attached ide-disk driver. ...
    (Debian-User)
  • Re: [PATCH v2] PL330: Add PL330 DMA controller driver
    ... "DMA API" referenced below refers to? ... In that case I really like this clear separation between hardware driver ...     A request is a sequence of DMA 'xfers' to be done before the DMA ... +/* A req is a sequence of one or more xfer units. ...
    (Linux-Kernel)
  • Re: [RFC v2 2/5] dmaengine: Add slave DMA interface
    ... DMA engine driver is free to decide on its own. ... with, than slave transfers, which may be quite slow depending on the ...
    (Linux-Kernel)
  • Re: [PATCH] Blackfin: blackfin on-chip SPI controller driver
    ... patch, rather than initial-plus-cleanups. ... Please put this in Kconfig up with the other SPI controller drivers, ... relevant points in the driver. ... place to reverse any DMA mappings ... ...
    (Linux-Kernel)
  • [PATCH] (Longhaul 1/5) PCI: Protect bus master DMA from Longhaul by rw semaphores
    ... I'm trying not to break DMA. ... Current version of longhaul simply clears bus master bit on every device. ... they can easily saturate the PCI bus all the time). ... It is always possible to add support for longhaul to driver. ...
    (Linux-Kernel)