RE: DMA support

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

 



Hi Kirill,

>From the lspci output, it appears you have a PLX-9054.
Told you it was popular!

So the board has registers as follows:

>     Region 0: Memory at de600000 (32-bit, non-prefetchable) [size=256]

PLX-specific control registers. This is where the DMA controller
registers can be accessed. The PLX 9054 data sheet append lists all
of these registers.

>     Region 2: Memory at de500000 (32-bit, non-prefetchable) [size=1M]
>     Region 3: Memory at de000000 (32-bit, non-prefetchable) [size=2M]

These are two board specific memory regions.

Assuming a 'signal processing controller' means that there is
a DSP or processor on the board, then these two regions probably
correspond to regions of the DSP/CPU memory map on the
board.

Do you have information on the memory map of these two regions?

I can send you a driver that finds the PLX-9054 device and allows
you to memory map these regions. I can also show how to mmap
the two other regions - this allows programmed I/O from
user space - good for checking things out.

To perform DMA, you need to use 'kernel memory'. This is because
the board DMA controller needs to move data to/from physical
addresses. The kernel buffer can be obtained most easily with
kmallocs, or you can use a user-space buffer and kiobuf.
We can discuss either method once you confirm you have details
of the memory map.

Regards,
Dave



> -----Original Message-----
> From: kernelnewbies-bounce@nl.linux.org
> [mailto:kernelnewbies-bounce@nl.linux.org]On Behalf Of Kirill Messel
> Sent: Wednesday, November 13, 2002 1:00 AM
> To: David Hawkins; kernelnewbies@nl.linux.org
> Subject: Re: DMA support
>
>
> Hello David,
>
> I will try to be specific.
>
> I am writing a custom driver for our card. This is signal processing
> controller.
>
> This is an information after lspci.
>
> 03:01.0 Signal processing controller: Unknown device 1819:0504 (rev 01)
>     Subsystem: PLX Technology, Inc.: Unknown device 9054
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B-
>     Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR-
>     Latency: 32, cache line size 08
>     Interrupt: pin A routed to IRQ 5
>     Region 0: Memory at de600000 (32-bit, non-prefetchable) [size=256]
>     Region 2: Memory at de500000 (32-bit, non-prefetchable) [size=1M]
>     Region 3: Memory at de000000 (32-bit, non-prefetchable) [size=2M]
>     Expansion ROM at dd000000 [disabled] [size=64K]
>     Capabilities: <available only to root>
>
> In principle i have windows driver, but i can not understand how it works.
>
> Thanks
> Kirill
>
>
>
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive:       http://mail.nl.linux.org/kernelnewbies/
> FAQ:           http://kernelnewbies.org/faq/

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux