Commit Graph

126 Commits (bbdc69395483916856746c3c7bfaa8c8d26979f4)

Author SHA1 Message Date
Rejeesh Kutty 56ddce1e8c dmac: create fifo interface to avoid being treated as axi control stream 2014-05-27 10:25:14 -04:00
Rejeesh Kutty fa998a406b dma: parameter fix 2014-04-24 15:50:16 -04:00
Rejeesh Kutty 314ec3d343 altera-9250/dma: make id width generic 2014-04-24 14:54:19 -04:00
Lars-Peter Clausen dc7b3e085c axi_dmac: Fix issues with non 64-bit AXI masters
Make sure that the address generator behaves correctly when the buswidth is not
64-bit. Also since the source and destination can have different widths add
separate parameters for source and destination address alignment.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 14:54:22 +02:00
Lars-Peter Clausen 36ef882da0 axi_dmac: data_mover: Improve timing
We do not know which 'last' condition to use before hand, but we can pre-compute
the result for both conditions and then use them. This removes the comparison
from the already pretty long combinatorial path.

Also simplify a few expressions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 14:06:44 +02:00
Lars-Peter Clausen 090d3aee04 axi_dmac: Change C_DMA_LENGTH_WIDTH default to 24
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Lars-Peter Clausen cb630e36a9 axi_dmac: src_fifo_inf: Simplify data path
Improves timing a bit

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Lars-Peter Clausen 4c9647f289 axi_dmac: axi_register_slice: Provide default values for registers
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Lars-Peter Clausen fa5ba6c09d axi_dmac: Make cyclic mode runtime configurable
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Lars-Peter Clausen 7ca43f4920 axi_dmac: address_generator: Make 'len' registered
Slightly improves the timing.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Lars-Peter Clausen 66e6c1cc21 axi_dmac: axi_register_slice: Remove reset "latch" from datapath
Move the datapath updates out of the else branch of the reset condition.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-04-10 13:50:39 +02:00
Rejeesh Kutty 724bd70a06 altera additions and replacements 2014-04-01 11:18:10 -04:00
Rejeesh Kutty d3d26e1220 lower the address space requirements 2014-03-26 11:03:45 -04:00
Lars-Peter Clausen 9b4539b7c2 axi_dmac: Add option to configure the FIFO size
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-26 12:51:35 +01:00
Lars-Peter Clausen ca7a70650d axi_dmac: Delay up_ack by one clock cycle
The read data also becomes available only with a delay of one clock cycle,
sending the ack too early will result in bogus register reads.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-25 14:35:52 +01:00
Lars-Peter Clausen a230e6505a axi_dmac: Add option to configure AXI standard 2014-03-25 12:47:27 +01:00
Rejeesh Kutty ef960a29c7 altera files 2014-03-24 13:27:27 -04:00
Adrian Costina 551319a670 Modified data mover to improve timing 2014-03-20 18:22:18 +02:00
Lars-Peter Clausen e373b85954 axi_dmac: Fix Vivado warnings
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-18 20:59:13 +01:00
Lars-Peter Clausen 29d590c951 axi_dmac: response_generator: Do not generate responses during ID sync
During an ID sync the request_id might increment, we should not generate a
response in this case. Since the ID sync only happens when the core is disabled
check that the core is enabled before generating a response.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-18 19:12:13 +01:00
Lars-Peter Clausen df1c4f0786 axi_dmac: data_mover: Improve timing
The pending_burst signal and the expression id != request_id are almost
identical. pending_burst goes high with a delay of one clock cycle, but the
important thing is that it goes low on the same clock cycle as the expression.
By using pending_burst here instead of 'id != request_id' we can reduce the
fanout of the 'id' register and improve the timing of the core.
2014-03-18 19:06:26 +01:00
Lars-Peter Clausen 522a222d3a axi_dmac: Fix default value for DMA type
Vivado doesn't handle the case where we use symbolic constants for the default
value properly, so update this to use plain integers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-17 13:20:49 +01:00
Lars-Peter Clausen f02ba999ae axi_dmac: Add support for DMA bus widths other than 64 bit
There were a few place in the core where it assumed a 64-bit wide bus. Make this
configurable using parameters. The patch also adds support for having different
DMA bus widths on the source and destination side.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-13 13:20:10 +01:00
Lars-Peter Clausen 8326022adc axi_dmac: address_generator: Fix disable race condition
If the address generator is disabled the very same cycle as it tries to put a
new address on the bus, it will keep sending this address forever and the core
will lock up

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-07 18:40:49 +01:00
Lars-Peter Clausen 6da9c65a08 axi_dmac: Add support for zero latency transfer switching
Right now there is always a period of one clock cycle where we can not transfer
any data when switching between two transfers. This patch modifies the data
mover to allow for zero latency. This fixes problems on the FMCOMMS1 platform

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2014-03-07 18:39:20 +01:00
Adrian Costina 831c19ea84 Added axi_dmac, axi_fifo and misc files in library 2014-03-06 18:16:02 +02:00