1/1
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,
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/
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! | ||
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 ======================================================== |
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
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
>
> > 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?
>
|
1/1