pluto_hdl_adi/library/axi_dmac
Lars-Peter Clausen ee57f869f1 axi_dmac: Fix bus resize block reset
When the source and destination bus widths don't match a resize block is
inserted on the side of the narrower bus. This resize block can contain
partial data.

To ensure that there is no residual partial data is left in the resize
block after a transfer shutdown the resize block is reset when the DMA is
disabled.

Currently this is implemented by tying the reset signal of the resize block
to the enable signal of the DMA. This enable signal is only a indicator
though that the DMA should shutdown. For a proper shutdown outstanding
transactions still need to be completed.

The data that is in the resize block might be required to complete those
transactions. So performing the reset when the enable signal goes low can
lead to a situation where the DMA tries to complete a transaction but can't
do it because the data required to do so has been erased by resetting the
resize block. This leads to a dead lock and the system has to be rebooted
to recover from it.

To solve this use the sync_id signal to reset the resize block. The sync_id
signal will only be asserted when both the destination and source side
module have indicated that they are ready to be reset and there are no more
pending transactions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-05-02 09:37:02 +02:00
..
bd axi_dmac: Limit MAX_BYTES_PER_BURST to maximum supported value 2018-04-24 12:49:24 +02:00
2d_transfer.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
Makefile axi_dmac: adding missing dependency for Intel flow 2018-04-17 16:34:41 +03:00
address_generator.v axi_dmac: Remove unused pause signal from address generator 2018-04-11 15:09:54 +03:00
axi_dmac.v axi_dmac: Limit MAX_BYTES_PER_BURST to maximum supported value 2018-04-24 12:49:24 +02:00
axi_dmac_constr.sdc axi_dmac: removed harmful SDC constraint 2018-04-17 16:34:41 +03:00
axi_dmac_constr.ttcl axi_dmac: In SDP mode REGCEB is connected to GND 2018-04-11 15:09:54 +03:00
axi_dmac_hw.tcl axi_dmac: Limit MAX_BYTES_PER_BURST to maximum supported value 2018-04-24 12:49:24 +02:00
axi_dmac_ip.tcl axi_dmac: AXI3 support on Intel qsys 2018-04-17 15:12:01 +03:00
axi_register_slice.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
data_mover.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
dest_axi_mm.v axi_dmac: Remove unused pause signal from address generator 2018-04-11 15:09:54 +03:00
dest_axi_stream.v axi_dmac: Fix some indentation errors 2018-04-11 15:09:54 +03:00
dest_fifo_inf.v axi_dmac: Fix some indentation errors 2018-04-11 15:09:54 +03:00
inc_id.h axi_dmac: Fix some data width mismatches 2017-08-01 15:22:29 +02:00
request_arb.v axi_dmac: Fix bus resize block reset 2018-05-02 09:37:02 +02:00
request_generator.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
resp.h Added axi_dmac, axi_fifo and misc files in library 2014-03-06 18:16:02 +02:00
response_generator.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
response_handler.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
splitter.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
src_axi_mm.v axi_dmac: Remove unused pause signal from address generator 2018-04-11 15:09:54 +03:00
src_axi_stream.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00
src_fifo_inf.v license: Fix a spelling mistake 2018-04-11 15:09:54 +03:00