pluto_hdl_adi/library
Lars-Peter Clausen 8ddcffcafc axi_dmac: Enforce transfer length and stride alignments
In its current implementation the DMAC requires that the length of a
transfer is aligned to the widest interface. E.g. if the widest interface
is 128 bits wide the length of the transfer needs to be a multiple of 16
bytes.

If the requested length is not aligned to the interface width it will be
rounded up.

This works fine as long as both interfaces have the same width. If they
have different widths it is possible that the length is rounded up to
different values on the source and destination side. In that case the DMA
will deadlock because the transfer lengths don't match and either not enough
of too much data is delivered from the source to the destination side.

Currently it is up to software to make sure that such an invalid
configuration is not possible.

Also enforce this requirement in the DMAC itself by setting the LSBs of the
transfer length to a fixed 1 so that the length is always aligned to the
widest interface.

Software can also use this to discover the length alignment requirement, by
first writing a zero to the length register and then reading the register
back. The LSBs of the read back value will be non-zero indicating the
alignment requirement.

In a similar way the stride needs to be aligned to the width of its
respective interface, so the generated addresses stay aligned. Enforce this
in the same way by keeping the LSBs cleared.

Increment the minor version number to reflect these changes.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2018-07-03 13:44:34 +02:00
..
altera util_dacfifo_bypass: Update comments 2018-06-11 17:26:04 +03:00
axi_ad5766 Remove unused DMA overflow signal from DAC DMA interfaces 2018-05-02 17:21:20 +02:00
axi_ad6676 axi_ad6676: Use the generic JESD204 ADC receiver core 2018-05-02 17:21:20 +02:00
axi_ad7616 Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_ad9122 Remove unused DMA overflow signal from DAC DMA interfaces 2018-05-02 17:21:20 +02:00
axi_ad9144 axi_ad9144: Hide unused ports in DUAL mode 2018-05-02 17:21:20 +02:00
axi_ad9152 axi_ad9152: Use the generic JESD204 DAC transmitter core 2018-05-02 17:21:20 +02:00
axi_ad9162 Remove unused DMA overflow signal from DAC DMA interfaces 2018-05-02 17:21:20 +02:00
axi_ad9250 axi_ad9250: Use the generic JESD204 ADC receiver core 2018-05-02 17:21:20 +02:00
axi_ad9265 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9361 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9371 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9434 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9467 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9625 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9671 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9680 axi_ad9680: Use the generic JESD204 ADC receiver core 2018-05-02 17:21:20 +02:00
axi_ad9684 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_ad9739a Remove unused DMA overflow signal from DAC DMA interfaces 2018-05-02 17:21:20 +02:00
axi_ad9963 Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_adc_decimate Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_adc_trigger Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_adrv9009 axi_adrv9009: Split DATAPATH parameter in multiple parameters. Map the parameters in the CONFIG register 2018-06-29 11:10:39 +03:00
axi_clkgen library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
axi_dac_interpolate Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_dmac axi_dmac: Enforce transfer length and stride alignments 2018-07-03 13:44:34 +02:00
axi_fmcadc5_sync Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_generic_adc Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_gpreg Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_hdmi_rx library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
axi_hdmi_tx Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_i2s_adi Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_intr_monitor Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_logic_analyzer Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_mc_controller library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
axi_mc_current_monitor Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_mc_speed Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
axi_rd_wr_combiner Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_spdif_rx library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
axi_spdif_tx Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
axi_usb_fx3 Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
cn0363 Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
common Remove unused DMA underflow signal from ADC DMA interface 2018-05-02 17:21:20 +02:00
cordic_demod Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
interfaces Add quiet mode to the Makefile system 2018-04-11 15:09:54 +03:00
jesd204 jesd204: Update Makefiles 2018-06-11 11:30:47 +03:00
scripts ad_ip_alt.tcl: ad_ip_addfile: Add support for header files 2018-05-03 14:49:06 +02:00
spi_engine Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_adcfifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_axis_fifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_axis_resize Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_axis_upscale Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_bsplit library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
util_cdc util_cdc: Silence warnings about unused sequential logic 2018-06-06 09:38:19 +02:00
util_cic Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_clkdiv Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_cpack library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
util_dacfifo util_dacfifo: Reduce logic on high fan-out dma_wren_s signal 2018-06-11 09:50:43 +02:00
util_delay Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_extract Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_fir_dec Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_fir_int Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_gmii_to_rgmii Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_i2c_mixer Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_mfifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_pulse_gen Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_rfifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_sigma_delta_spi Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_tdd_sync Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_upack library: Remove empty constraint files 2018-04-11 15:09:54 +03:00
util_var_fifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
util_wfifo Move Altera IP core dependency tracking to library Makefiles 2018-04-11 15:09:54 +03:00
xilinx axi_dacfifo: Always use equal or not equal 2018-06-13 14:58:49 +01:00
Makefile jesd204: Update Makefiles 2018-06-11 11:30:47 +03:00