OpenCores
no use no use 1/1 no use no use
how to use the DMA core in PCI
by Unknown on Dec 9, 2003
Not available!
Hi everyone,

I am thinking of adding the wishbone DMA core written by Rudolf
in my PCI core so that my PCI card can transfer a large amount of data
to Memory by DMA. Is that i should combine them like this :

PCI core -> DMA controller -> PCI bus

?

I am really a new comer on DMA, can any body give me a hand?

how to use the DMA core in PCI
by Unknown on Dec 9, 2003
Not available!
On Tue, 2003-12-09 at 16:56, tomko81 at hotmail.com wrote:
Hi everyone,

I am thinking of adding the wishbone DMA core written by Rudolf
in my PCI core so that my PCI card can transfer a large amount of data
to Memory by DMA. Is that i should combine them like this :

PCI core -> DMA controller -> PCI bus

?

I am really a new comer on DMA, can any body give me a hand?
So whats the exact problem that you are having ? Theoretically the scenario you described should be possible. If you are planning to do a block copy/move on the PCI bus (e.g. Read and Write from/to PCI bus), it might be a good idea to add a small buffer that you first fill from PCI bus and then write back to the new location on the PCI bus. That would allow you to use bursts access, hence faster performance. rudi ======================================================== ASICS.ws ::: Solutions for your ASIC/FPGA needs ::: ..............::: FPGAs * Full Custom ICs * IP Cores ::: FREE IP Cores -> http://www.asics.ws/
how to use the DMA core in PCI
by Unknown on Dec 9, 2003
Not available!
Dear Rudolf, Thx for your reply , i should describe my question more in detail. Actually i would like to know more about how to "add" DMA on my PCI core? As for the pci card, the way it can communicate with the PC can only through those PCI signal bus. What i don't understand is that standing on the side of motherboard , which type of command and signals need to given by the master PCI so it can know the PCI want to directly write data to memory without involve of CPU? ( i don't mean i don't know the control of those signal like FRAME,IRDY..etc as i have read the spec of PCI). What i guess is the master PCI do normal memory write operation with burst mode and give the address of physical memory on the PC at the address period. This is just my guess and please tell me am i right or not. Is that in the PCI, DMA = Master PCI read / write? If no , i have already implemented a slave PCI core,how can i add the DMA in it? Regards, TOM ----- Original Message ----- From: Rudolf Usselmann rudi at a... > To: Discussion list about free open source IP cores cores at o... > Date: Tue, 09 Dec 2003 18:02:00 +0700 Subject: Re: [oc] how to use the DMA core in PCI
On Tue, 2003-12-09 at 16:56, tomko81 at h... wrote:
> Hi everyone,
>
> I am thinking of adding the wishbone DMA core written

by Rudolf
> in my PCI core so that my PCI card can transfer a large amount

of data
> to Memory by DMA. Is that i should combine them like this :
>
> PCI core -> DMA controller -> PCI bus
>
> ?
>
> I am really a new comer on DMA, can any body give me a

hand?

So whats the exact problem that you are having ?

Theoretically the scenario you described should be
possible.

If you are planning to do a block copy/move on the PCI
bus (e.g. Read and Write from/to PCI bus), it might be
a good idea to add a small buffer that you first fill
from PCI bus and then write back to the new location on
the PCI bus. That would allow you to use bursts access,
hence faster performance.

rudi

======================================================
==
ASICS.ws ::: Solutions for your ASIC/FPGA needs ::: ..............::: FPGAs * Full Custom ICs * IP Cores ::: FREE IP Cores -> http://www.asics.ws/



how to use the DMA core in PCI
by tirmen on Dec 9, 2003
tirmen
Posts: 1
Joined: Aug 22, 2008
Last seen: Oct 5, 2022
Hi, why don´t you think of becoming pci-master/initiator. I think that´s what you need when you are planning to move HUGE memories. thomas ----- Original Message ----- From: tomko81 at h... To: cores at o... Date: Tue, 9 Dec 2003 10:56:31 +0100 Subject: [oc] how to use the DMA core in PCI


Hi everyone,

I am thinking of adding the wishbone DMA core written by
Rudolf
in my PCI core so that my PCI card can transfer a large amount of
data
to Memory by DMA. Is that i should combine them like this :

PCI core -> DMA controller -> PCI bus

?

I am really a new comer on DMA, can any body give me a hand?



how to use the DMA core in PCI
by Unknown on Dec 10, 2003
Not available!
I would like to describe more about my question. 1.If now i have a Master PCI and want to initiate on PCI board side. Is that it will directly perform DMA if it initiate normal memory read write operation. As it seems for Master CPU, it can read/write from main physical memory without involing the CPU not matter burst or not. 2. If my point is correct, is that mean i don't need any particular DMA engine in my PCI core to perform DMA? As it seems the design of PCI bus already include the idea of DMA. Can i just implement a very simple controller(like FIFO) to pass out the data one by one? As i think the operation of building up the channel directly to memory without CPU should be done by the motherboard( maybe PCI bus controller). So i feel confused about "add DMA on PCI card". 3.In the OS (like window), what it use is virtual address, and even when i ask for a block of address, it return the virtual address pointer to me. How can i know the physical address and pass to the PCI board so the master PCI can initiate with the correct physical address in memory? Thank you very much for all. ----- Original Message ----- From: tirmen at g... To: cores at o... Date: Tue, 9 Dec 2003 20:57:52 +0100 Subject: Re: [oc] how to use the DMA core in PCI
Hi, why don´t you think of becoming pci-master/initiator. I think that´s what you need when you are planning to move HUGE memories. thomas ----- Original Message ----- From: tomko81 at h... To: cores at o... Date: Tue, 9 Dec 2003 10:56:31 +0100 Subject: [oc] how to use the DMA core in PCI
>
>
> Hi everyone,
>
> I am thinking of adding the wishbone DMA core written

by
> Rudolf
> in my PCI core so that my PCI card can transfer a large amount

of
> data
> to Memory by DMA. Is that i should combine them like this :
>
> PCI core -> DMA controller -> PCI bus
>
> ?
>
> I am really a new comer on DMA, can any body give me a

hand?
>




how to use the DMA core in PCI
by Unknown on Dec 10, 2003
Not available!
On Wed, 2003-12-10 at 11:12, tomko81 at hotmail.com wrote:
I would like to describe more about my question.

1.If now i have a Master PCI and want to initiate on PCI board side. Is
that it will directly perform DMA if it initiate normal memory read write
operation. As it seems for Master CPU, it can read/write from main
physical memory without involing the CPU not matter burst or not.


I don't know anything about your PCI master interface, so I
don't know whether it includes a DMA or not. My guess is
that it does not.

2. If my point is correct, is that mean i don't need any particular DMA
engine in my PCI core to perform DMA? As it seems the design of PCI
bus already include the idea of DMA. Can i just implement a very simple
controller(like FIFO) to pass out the data one by one? As i think the
operation of building up the channel directly to memory without CPU
should be done by the motherboard( maybe PCI bus controller). So i feel
confused about "add DMA on PCI card".


Basically you hock up the DMA core to your PCI master core.
Then the CPU has to program the DMA, to tell it from where
to where and how much memory to copy. Once the CPU programmed
the DMA, the DMA will start the copy/move operation and notify
the CPU with an interrupt to tell it when it is done, or if it
encountered an error.

3.In the OS (like window), what it use is virtual address, and even when
i ask for a block of address, it return the virtual address pointer to me.
How can i know the physical address and pass to the PCI board so the
master PCI can initiate with the correct physical address in memory?


Don't use windows it's evil. Use linux, it's much more user
friendly, and I'm sure you can find help how to translate
virtual to physical address on linux.

Anybody can help here ? I don't know how to do that ...

Thank you very much for all.
Regards, rudi ======================================================== ASICS.ws ::: Solutions for your ASIC/FPGA needs ::: ..............::: FPGAs * Full Custom ICs * IP Cores ::: FREE IP Cores -> http://www.asics.ws/
how to use the DMA core in PCI
by Unknown on Dec 10, 2003
Not available!
On Tue, 2003-12-09 at 21:26, Rudolf Usselmann wrote:
On Wed, 2003-12-10 at 11:12, tomko81 at hotmail.com wrote:
> I would like to describe more about my question.
>

- snip -

> 3.In the OS (like window), what it use is virtual address, and even when
> i ask for a block of address, it return the virtual address pointer to me.
> How can i know the physical address and pass to the PCI board so the
> master PCI can initiate with the correct physical address in memory?


Don't use windows it's evil. Use linux, it's much more user
friendly, and I'm sure you can find help how to translate
virtual to physical address on linux.

Anybody can help here ? I don't know how to do that ...

> Thank you very much for all.


Regards,
rudi
========================================================
Windows is not so much evil as just sad. But regardless of the OS used, I am assuming the application is an embedded device of some sort, which would imply that the performance degradation involved in virtual memory is undesirable. So, just disable virtual memory in your memory manager, and voila! Virtual address equals Real address, and the problem is solved. If you are building a device that can tolerate page faults and swapping delays, save yourself some time, money and trouble and buy an off-the-shelf PC or SBC to host your custom peripherals. And, by the way, I CAN port applications from Windoze to Linux, but it's gonna cost you. :) Steven R. McQueen srmcqueen at mcqueentech.com
how to use the DMA core in PCI
by Unknown on Dec 10, 2003
Not available!
Actually, DMA performs transfering data from one slave to another slave. So one DMA operation including two bus transaction: read a data from one bus location and write it to another bus location. So in DMA transfer it including three components: DMA, two bus slaves (they can be different slaves or the same slave different location) DMA is a standard seperated component in a bus system. If there has a DMA controller you need not design it, esle you must design one. I think your design has no relationship with DMA. If you want to initiate access on PCI bus, just design a master interface. If other modules will initiate access to your design from PCI bus, then you must supply a PCI slave interface. your third question is very complicated, and I always struggle for RTOS. So I have no experience on it. -----ԭʼÓʼþ----- ·¢¼þÈË: tomko81 at hotmail.com [mailto:tomko81 at hotmail.com] ·¢ËÍʱ¼ä: 2003Äê12ÔÂ10ÈÕ 12:13 ÊÕ¼þÈË: tirmen at gmx.net; cores at opencores.org Ö÷Ìâ: Re: [oc] how to use the DMA core in PCI I would like to describe more about my question. 1.If now i have a Master PCI and want to initiate on PCI board side. Is that it will directly perform DMA if it initiate normal memory read write operation. As it seems for Master CPU, it can read/write from main physical memory without involing the CPU not matter burst or not. 2. If my point is correct, is that mean i don't need any particular DMA engine in my PCI core to perform DMA? As it seems the design of PCI bus already include the idea of DMA. Can i just implement a very simple controller(like FIFO) to pass out the data one by one? As i think the operation of building up the channel directly to memory without CPU should be done by the motherboard( maybe PCI bus controller). So i feel confused about "add DMA on PCI card". 3.In the OS (like window), what it use is virtual address, and even when i ask for a block of address, it return the virtual address pointer to me. How can i know the physical address and pass to the PCI board so the master PCI can initiate with the correct physical address in memory? Thank you very much for all. ----- Original Message ----- From: tirmen at g... To: cores at o... Date: Tue, 9 Dec 2003 20:57:52 +0100 Subject: Re: [oc] how to use the DMA core in PCI
Hi, why don´t you think of becoming pci-master/initiator. I think that´s what you need when you are planning to move HUGE memories. thomas ----- Original Message ----- From: tomko81 at h... To: cores at o... Date: Tue, 9 Dec 2003 10:56:31 +0100 Subject: [oc] how to use the DMA core in PCI
>
>
> Hi everyone,
>
> I am thinking of adding the wishbone DMA core written

by
> Rudolf
> in my PCI core so that my PCI card can transfer a large amount

of
> data
> to Memory by DMA. Is that i should combine them like this :
>
> PCI core -> DMA controller -> PCI bus
>
> ?
>
> I am really a new comer on DMA, can any body give me a

hand?
>

_______________________________________________ http://www.opencores.org/mailman/listinfo/cores
no use no use 1/1 no use no use
© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.