Re: PCI DMA concepts ??

From: Heeyong (heeyong.park_at_samsung.com)
Date: 10/14/04


Date: 13 Oct 2004 17:58:04 -0700

Hi there,

I don't think normal PCI cards do the DMA instead of burst transfer.

Please check out the PCI book for burst transfer.
I recommend "PCI System Architecture" by mindShare, Inc.

Good luck,

Heeyong.

saravanan_sprt@rediffmail.com (Chanemou) wrote in message news:<d09cbbf7.0410070554.2507f6d5@posting.google.com>...
> Hi everybody.
>
> I am having some doubts with a driver for a PCI card.I learned
> how to read/write configuration and map memory to kernel space but
> confused in using how to do dma read & write.
>
> 1. The pci card has built in PCI & DMA controller.
> DMA controller registers (READ and WRITE registers) can be
> programmed by specifying (PCI_ADDRESS, LOCAL_SDRAM_ADDRESS,
> SIZE).(These registers are memory mapped via BAR3 and can be
> programmed by host system or by the Local card.)
>
> 2. on the host side I have done DMA alloc (say for 5MB )using
> HalAllocateCommonBuffer() and also created dummy ISR to perform
> Receive from the pci card.
>
> 3. for Transmitting data to the pci card , I think that I can program
> the DMA registers that are memory mapped into host side. so that the
> DMA controller does the Transfer. and generate interrupt ot host upon
> completion. Is this a correct way?
>
> 4. for Receiving from the Pci card, the card generate interrupt to the
> host after DMA transfer from pci to host memory by programming the DMA
> registers from the loca side.
>
> cld u explain for dma read and write sequence so that it wld
> be helpful for me in step a head.
>
> 5. I created a large DMA bufffer for DMA Xfer. how Read and Write use
> this buffer. or I have to allocate DMA buffer for Tx and Rx on the
> host side.
>
> 6. ReadFile and WriteFile API are meant for DMA or what? if so how
> this is performed? then whats the use of DMA controller registers on
> the pci card.?
>
> these are my few questions which really confuses me.cld u pls
> answer these questions so that it wld be helpful in proceeding
> furthur.
>
> thanks
>
> chanemou



Relevant Pages

  • Re: 2.6.20-rc2: kernel BUG at include/asm/dma-mapping.h:110!
    ... ieee1394: sbp2: convert from PCI DMA to generic DMA ... from the hbsp host data structure to the dma_map_* routines. ... the struct device pointer (which is the one from the pci_dev * for PCI ... goto alloc_fail; ...
    (Linux-Kernel)
  • [PATCH] Remove trailing whitespace in wbsd
    ... static inline void wbsd_unlock_config(struct wbsd_host* host) ... static void wbsd_request_end(struct wbsd_host* host, ... The buffer for DMA is only 64 kB. ...
    (Linux-Kernel)
  • Re: [PATCH] Remove trailing whitespace in wbsd
    ... static inline void wbsd_unlock_config(struct wbsd_host* host) ... static void wbsd_request_end(struct wbsd_host* host, ... The buffer for DMA is only 64 kB. ...
    (Linux-Kernel)
  • Re: DMA APIs gumble grumble
    ... 32-bit mask should that fail. ... 32-bit SAC addressing is done more efficiently than DAC addressing. ... DAC interfaces to the PCI DMA API for when "you really really want DAC ...
    (Linux-Kernel)
  • Re: direct memory access
    ... No, 1 ISA, 5 PCI and 1 AGP. ... PCI and AGP might be shared. ... >>> If you don't see the Advanced tab, either your hardware doesn't>> support DMA or the DMA settings are incorrect in the BIOS. ... [[With some IDE drivers/Busmastering drivers, DMA cannot be>> enabled through the device manager, but only through the driver>> settings. ...
    (microsoft.public.windowsxp.help_and_support)