2015-04-01 20:26:28 +00:00
|
|
|
####################################################################################
|
2023-01-18 13:15:22 +00:00
|
|
|
## Copyright (c) 2018 - 2023 Analog Devices, Inc.
|
2021-09-15 15:03:11 +00:00
|
|
|
### SPDX short identifier: BSD-1-Clause
|
2015-04-01 20:26:28 +00:00
|
|
|
## Auto-generated, do not modify!
|
|
|
|
####################################################################################
|
2018-03-23 09:19:51 +00:00
|
|
|
|
|
|
|
LIBRARY_NAME := axi_dmac
|
2015-04-01 20:26:28 +00:00
|
|
|
|
2018-12-19 09:35:31 +00:00
|
|
|
GENERIC_DEPS += ../common/ad_mem_asym.v
|
2018-03-27 09:21:09 +00:00
|
|
|
GENERIC_DEPS += ../common/up_axi.v
|
|
|
|
GENERIC_DEPS += address_generator.v
|
|
|
|
GENERIC_DEPS += axi_dmac.v
|
2018-05-09 16:02:41 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_burst_memory.v
|
2017-08-05 05:57:38 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_regmap.v
|
|
|
|
GENERIC_DEPS += axi_dmac_regmap_request.v
|
2017-09-21 14:02:44 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_reset_manager.v
|
2018-05-09 16:02:41 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_resize_dest.v
|
|
|
|
GENERIC_DEPS += axi_dmac_resize_src.v
|
2018-08-10 14:47:21 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_response_manager.v
|
2017-08-05 05:57:38 +00:00
|
|
|
GENERIC_DEPS += axi_dmac_transfer.v
|
2018-03-27 09:21:09 +00:00
|
|
|
GENERIC_DEPS += axi_register_slice.v
|
|
|
|
GENERIC_DEPS += data_mover.v
|
|
|
|
GENERIC_DEPS += dest_axi_mm.v
|
|
|
|
GENERIC_DEPS += dest_axi_stream.v
|
|
|
|
GENERIC_DEPS += dest_fifo_inf.v
|
2022-03-31 11:33:10 +00:00
|
|
|
GENERIC_DEPS += dmac_2d_transfer.v
|
axi_dmac: Add support for DMA Scatter-Gather
This commit introduces a different interface to submit transfers, using
DMA descriptors.
The structure of the DMA descriptor is as follows:
struct dma_desc {
u32 flags,
u32 id,
u64 dest_addr,
u64 src_addr,
u64 next_sg_addr,
u32 y_len,
u32 x_len,
u32 src_stride,
u32 dst_stride,
};
The 'flags' field currently offers two control bits:
- bit 0: if set, the transfer will complete after this last descriptor
is processed, and the DMA core will go back to idle state; if cleared,
the next DMA descriptor pointed to by 'next_sg_addr' will be loaded.
- bit 1: if set, an end-of-transfer interrupt will be raised after the
memory segment pointed to by this descriptor has been transferred.
The 'id' field corresponds to an identifier of the descriptor.
The 'dest_addr' and 'src_addr' contain the destination and source
addresses to use for the transfer, respectively.
The 'x_len' field contains the number of bytes to transfer,
minus one.
The 'y_len', 'src_stride' and 'dst_stride' fields are only useful for
2D transfers, and should be set to zero if 2D transfers are not
required.
To start a transfer, the address of the first DMA descriptor must be
written to register 0x47c and the HWDESC bit of CONTROL register must
be set. The Scatter-Gather transfer is queued similarly to the simple
transfers, by writing 1 in TRANSFER_SUBMIT.
The Scatter-Gather interface has a dedicated AXI-MM bus configured for
read transfers, with its own dedicated clock, which can be asynchronous.
The Scatter-Gather reset is generated by the reset manager to reset the
logic after completing any pending transactions on the bus.
When the Scatter-Gather is enabled during runtime, the legacy cyclic
functionality of the DMA is disabled.
Signed-off-by: Ionut Podgoreanu <ionut.podgoreanu@analog.com>
2023-08-10 10:10:24 +00:00
|
|
|
GENERIC_DEPS += dmac_sg.v
|
2018-06-28 11:14:14 +00:00
|
|
|
GENERIC_DEPS += inc_id.vh
|
2018-03-27 09:21:09 +00:00
|
|
|
GENERIC_DEPS += request_arb.v
|
|
|
|
GENERIC_DEPS += request_generator.v
|
2018-06-28 11:14:14 +00:00
|
|
|
GENERIC_DEPS += resp.vh
|
2018-03-27 09:21:09 +00:00
|
|
|
GENERIC_DEPS += response_generator.v
|
|
|
|
GENERIC_DEPS += response_handler.v
|
|
|
|
GENERIC_DEPS += splitter.v
|
|
|
|
GENERIC_DEPS += src_axi_mm.v
|
|
|
|
GENERIC_DEPS += src_axi_stream.v
|
|
|
|
GENERIC_DEPS += src_fifo_inf.v
|
2016-12-09 21:06:41 +00:00
|
|
|
|
2018-03-27 09:21:09 +00:00
|
|
|
XILINX_DEPS += axi_dmac_constr.ttcl
|
|
|
|
XILINX_DEPS += axi_dmac_ip.tcl
|
2018-12-19 09:35:31 +00:00
|
|
|
XILINX_DEPS += axi_dmac_pkg_sv.ttcl
|
2018-03-27 09:21:09 +00:00
|
|
|
XILINX_DEPS += bd/bd.tcl
|
2015-04-01 20:26:28 +00:00
|
|
|
|
2018-03-27 09:21:09 +00:00
|
|
|
XILINX_DEPS += ../interfaces/fifo_rd.xml
|
|
|
|
XILINX_DEPS += ../interfaces/fifo_rd_rtl.xml
|
|
|
|
XILINX_DEPS += ../interfaces/fifo_wr.xml
|
|
|
|
XILINX_DEPS += ../interfaces/fifo_wr_rtl.xml
|
|
|
|
|
|
|
|
XILINX_LIB_DEPS += util_axis_fifo
|
|
|
|
XILINX_LIB_DEPS += util_cdc
|
|
|
|
|
2018-08-13 13:59:02 +00:00
|
|
|
INTEL_DEPS += ../util_axis_fifo/util_axis_fifo.v
|
2021-09-30 13:20:02 +00:00
|
|
|
INTEL_DEPS += ../util_axis_fifo/util_axis_fifo_address_generator.v
|
2018-08-13 13:59:02 +00:00
|
|
|
INTEL_DEPS += ../util_cdc/sync_bits.v
|
|
|
|
INTEL_DEPS += ../util_cdc/sync_event.v
|
axi_dmac: Add support for DMA Scatter-Gather
This commit introduces a different interface to submit transfers, using
DMA descriptors.
The structure of the DMA descriptor is as follows:
struct dma_desc {
u32 flags,
u32 id,
u64 dest_addr,
u64 src_addr,
u64 next_sg_addr,
u32 y_len,
u32 x_len,
u32 src_stride,
u32 dst_stride,
};
The 'flags' field currently offers two control bits:
- bit 0: if set, the transfer will complete after this last descriptor
is processed, and the DMA core will go back to idle state; if cleared,
the next DMA descriptor pointed to by 'next_sg_addr' will be loaded.
- bit 1: if set, an end-of-transfer interrupt will be raised after the
memory segment pointed to by this descriptor has been transferred.
The 'id' field corresponds to an identifier of the descriptor.
The 'dest_addr' and 'src_addr' contain the destination and source
addresses to use for the transfer, respectively.
The 'x_len' field contains the number of bytes to transfer,
minus one.
The 'y_len', 'src_stride' and 'dst_stride' fields are only useful for
2D transfers, and should be set to zero if 2D transfers are not
required.
To start a transfer, the address of the first DMA descriptor must be
written to register 0x47c and the HWDESC bit of CONTROL register must
be set. The Scatter-Gather transfer is queued similarly to the simple
transfers, by writing 1 in TRANSFER_SUBMIT.
The Scatter-Gather interface has a dedicated AXI-MM bus configured for
read transfers, with its own dedicated clock, which can be asynchronous.
The Scatter-Gather reset is generated by the reset manager to reset the
logic after completing any pending transactions on the bus.
When the Scatter-Gather is enabled during runtime, the legacy cyclic
functionality of the DMA is disabled.
Signed-off-by: Ionut Podgoreanu <ionut.podgoreanu@analog.com>
2023-08-10 10:10:24 +00:00
|
|
|
INTEL_DEPS += ../util_cdc/sync_gray.v
|
2018-08-13 13:59:02 +00:00
|
|
|
INTEL_DEPS += axi_dmac_constr.sdc
|
|
|
|
INTEL_DEPS += axi_dmac_hw.tcl
|
2015-04-01 20:26:28 +00:00
|
|
|
|
2018-03-23 09:19:51 +00:00
|
|
|
include ../scripts/library.mk
|