Skip to contentSkip to conversation

What kind of Linux address must I use to set the SAR reg. of the DMA ctrl ?

DISCUSSION Callebaut Benoit 2 participants 2 messages May 7, 2003

lore
Share & tools
lore
#0 lore raw

Hello,
I am writing the code to start a DMA transfer with the built-in DMA controller of the MPC8245. The purpose is to do Memory to PCI transfers. The PCI part seems to be OK ( memory of the device is written) the the source address seems to be wrong since I read 0XFFFFFFFF as data in the device. I tried with bus and physical address (using virt_to_bus & virt_to_phys functions) but this doesn't give good results.
So I ask myself which kind of linux address must I use to configure the SAR register of the Dual channel DMA controller ?

If It works I will post a patch of my work.

Thanks

------------------------------------------------------------------------------
----
Benoit Callebaut
Software Development Engineer
Barco | Control Rooms
Noordlaan 5, 8520 Kuurne, Belgium

Tel +32(0)56 36 84 28
Fax +32(0)56 36 86 05

mailto:[email protected]
http://www.barcocontrolrooms.com

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#1 lore raw
Quoted 10 lines · Callebaut Benoit

Hello,
I am writing the code to start a DMA transfer with the built-in DMA controller of the MPC8245. The purpose is to do Memory to PCI transfers. The PCI part seems to be OK ( memory of the device is written) the the source address seems to be wrong since I read 0XFFFFFFFF as data in the device. I tried with bus and physical address (using virt_to_bus & virt_to_phys functions) but this doesn't give good results.
So I ask myself which kind of linux address must I use to configure the SAR register of the Dual channel DMA controller ?

Well, there's no special "linux address". The DMA controller takes a physical address. I think you are specifically asking about configuring the source address register when doing a Mem->PCI transfer. In that case, if you are using lowmem system memory as the source address, then virt_to_phys will generate the correct physical system memory address.

Regards,
--
Matt Porter
[email protected]

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/