xref: /freebsd/sys/contrib/alpine-hal/al_hal_udma_regs_gen.h (revision d002f039aeb370370cd2cba63ad55cc4cf16c932)
1*3fc36ee0SWojciech Macek /*******************************************************************************
249b49cdaSZbigniew Bodek Copyright (C) 2015 Annapurna Labs Ltd.
349b49cdaSZbigniew Bodek 
449b49cdaSZbigniew Bodek This file may be licensed under the terms of the Annapurna Labs Commercial
549b49cdaSZbigniew Bodek License Agreement.
649b49cdaSZbigniew Bodek 
749b49cdaSZbigniew Bodek Alternatively, this file can be distributed under the terms of the GNU General
849b49cdaSZbigniew Bodek Public License V2 as published by the Free Software Foundation and can be
949b49cdaSZbigniew Bodek found at http://www.gnu.org/licenses/gpl-2.0.html
1049b49cdaSZbigniew Bodek 
1149b49cdaSZbigniew Bodek Alternatively, redistribution and use in source and binary forms, with or
1249b49cdaSZbigniew Bodek without modification, are permitted provided that the following conditions are
1349b49cdaSZbigniew Bodek met:
1449b49cdaSZbigniew Bodek 
1549b49cdaSZbigniew Bodek     *     Redistributions of source code must retain the above copyright notice,
1649b49cdaSZbigniew Bodek this list of conditions and the following disclaimer.
1749b49cdaSZbigniew Bodek 
1849b49cdaSZbigniew Bodek     *     Redistributions in binary form must reproduce the above copyright
1949b49cdaSZbigniew Bodek notice, this list of conditions and the following disclaimer in
2049b49cdaSZbigniew Bodek the documentation and/or other materials provided with the
2149b49cdaSZbigniew Bodek distribution.
2249b49cdaSZbigniew Bodek 
2349b49cdaSZbigniew Bodek THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
2449b49cdaSZbigniew Bodek ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2549b49cdaSZbigniew Bodek WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2649b49cdaSZbigniew Bodek DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
2749b49cdaSZbigniew Bodek ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2849b49cdaSZbigniew Bodek (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2949b49cdaSZbigniew Bodek LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
3049b49cdaSZbigniew Bodek ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3149b49cdaSZbigniew Bodek (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3249b49cdaSZbigniew Bodek SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3349b49cdaSZbigniew Bodek 
3449b49cdaSZbigniew Bodek *******************************************************************************/
3549b49cdaSZbigniew Bodek 
3649b49cdaSZbigniew Bodek /**
3749b49cdaSZbigniew Bodek  * @file   al_hal_udma_regs_gen.h
3849b49cdaSZbigniew Bodek  *
3949b49cdaSZbigniew Bodek  * @brief C Header file for the UDMA general registers
4049b49cdaSZbigniew Bodek  *
4149b49cdaSZbigniew Bodek  */
4249b49cdaSZbigniew Bodek 
4349b49cdaSZbigniew Bodek #ifndef __AL_HAL_UDMA_GEN_REG_H
4449b49cdaSZbigniew Bodek #define __AL_HAL_UDMA_GEN_REG_H
4549b49cdaSZbigniew Bodek 
4649b49cdaSZbigniew Bodek #include "al_hal_udma_iofic_regs.h"
4749b49cdaSZbigniew Bodek 
4849b49cdaSZbigniew Bodek #ifdef __cplusplus
4949b49cdaSZbigniew Bodek extern "C" {
5049b49cdaSZbigniew Bodek #endif
5149b49cdaSZbigniew Bodek /*
5249b49cdaSZbigniew Bodek * Unit Registers
5349b49cdaSZbigniew Bodek */
5449b49cdaSZbigniew Bodek 
5549b49cdaSZbigniew Bodek 
5649b49cdaSZbigniew Bodek 
5749b49cdaSZbigniew Bodek struct udma_gen_dma_misc {
5849b49cdaSZbigniew Bodek 	/* [0x0] Reserved register for the interrupt controller */
5949b49cdaSZbigniew Bodek 	uint32_t int_cfg;
6049b49cdaSZbigniew Bodek 	/* [0x4] Revision register */
6149b49cdaSZbigniew Bodek 	uint32_t revision;
6249b49cdaSZbigniew Bodek 	/* [0x8] Reserved for future use */
6349b49cdaSZbigniew Bodek 	uint32_t general_cfg_1;
6449b49cdaSZbigniew Bodek 	/* [0xc] Reserved for future use */
6549b49cdaSZbigniew Bodek 	uint32_t general_cfg_2;
6649b49cdaSZbigniew Bodek 	/* [0x10] Reserved for future use */
6749b49cdaSZbigniew Bodek 	uint32_t general_cfg_3;
6849b49cdaSZbigniew Bodek 	/* [0x14] Reserved for future use */
6949b49cdaSZbigniew Bodek 	uint32_t general_cfg_4;
7049b49cdaSZbigniew Bodek 	/* [0x18] General timer configuration */
7149b49cdaSZbigniew Bodek 	uint32_t general_cfg_5;
7249b49cdaSZbigniew Bodek 	uint32_t rsrvd[57];
7349b49cdaSZbigniew Bodek };
7449b49cdaSZbigniew Bodek struct udma_gen_mailbox {
7549b49cdaSZbigniew Bodek 	/*
7649b49cdaSZbigniew Bodek 	 * [0x0] Mailbox interrupt generator.
7749b49cdaSZbigniew Bodek 	 * Generates interrupt to neighbor DMA
7849b49cdaSZbigniew Bodek 	 */
7949b49cdaSZbigniew Bodek 	uint32_t interrupt;
8049b49cdaSZbigniew Bodek 	/* [0x4] Mailbox message data out */
8149b49cdaSZbigniew Bodek 	uint32_t msg_out;
8249b49cdaSZbigniew Bodek 	/* [0x8] Mailbox message data in */
8349b49cdaSZbigniew Bodek 	uint32_t msg_in;
8449b49cdaSZbigniew Bodek 	uint32_t rsrvd[13];
8549b49cdaSZbigniew Bodek };
8649b49cdaSZbigniew Bodek struct udma_gen_axi {
8749b49cdaSZbigniew Bodek 	/* [0x0] Configuration of the AXI masters */
8849b49cdaSZbigniew Bodek 	uint32_t cfg_1;
8949b49cdaSZbigniew Bodek 	/* [0x4] Configuration of the AXI masters */
9049b49cdaSZbigniew Bodek 	uint32_t cfg_2;
9149b49cdaSZbigniew Bodek 	/* [0x8] Configuration of the AXI masters. Endianess configuration */
9249b49cdaSZbigniew Bodek 	uint32_t endian_cfg;
9349b49cdaSZbigniew Bodek 	uint32_t rsrvd[61];
9449b49cdaSZbigniew Bodek };
9549b49cdaSZbigniew Bodek struct udma_gen_sram_ctrl {
9649b49cdaSZbigniew Bodek 	/* [0x0] Timing configuration */
9749b49cdaSZbigniew Bodek 	uint32_t timing;
9849b49cdaSZbigniew Bodek };
99*3fc36ee0SWojciech Macek struct udma_gen_tgtid {
100*3fc36ee0SWojciech Macek 	/* [0x0] Target-ID control */
101*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtid_0;
102*3fc36ee0SWojciech Macek 	/* [0x4] TX queue 0/1 Target-ID */
103*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtid_1;
104*3fc36ee0SWojciech Macek 	/* [0x8] TX queue 2/3 Target-ID */
105*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtid_2;
106*3fc36ee0SWojciech Macek 	/* [0xc] RX queue 0/1 Target-ID */
107*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtid_3;
108*3fc36ee0SWojciech Macek 	/* [0x10] RX queue 2/3 Target-ID */
109*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtid_4;
11049b49cdaSZbigniew Bodek };
111*3fc36ee0SWojciech Macek struct udma_gen_tgtaddr {
112*3fc36ee0SWojciech Macek 	/* [0x0] TX queue 0/1 Target-Address */
113*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtaddr_0;
114*3fc36ee0SWojciech Macek 	/* [0x4] TX queue 2/3 Target-Address */
115*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtaddr_1;
116*3fc36ee0SWojciech Macek 	/* [0x8] RX queue 0/1 Target-Address */
117*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtaddr_2;
118*3fc36ee0SWojciech Macek 	/* [0xc] RX queue 2/3 Target-Address */
119*3fc36ee0SWojciech Macek 	uint32_t cfg_tgtaddr_3;
12049b49cdaSZbigniew Bodek };
12149b49cdaSZbigniew Bodek struct udma_gen_vmpr {
12249b49cdaSZbigniew Bodek 	/* [0x0] TX VMPR control */
12349b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_0;
12449b49cdaSZbigniew Bodek 	/* [0x4] TX VMPR Address High Regsiter */
12549b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_1;
126*3fc36ee0SWojciech Macek 	/* [0x8] TX queue Target-ID values */
12749b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_2;
128*3fc36ee0SWojciech Macek 	/* [0xc] TX queue Target-ID values */
12949b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_3;
13049b49cdaSZbigniew Bodek 	/* [0x10] RX VMPR control */
13149b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_4;
13249b49cdaSZbigniew Bodek 	/* [0x14] RX VMPR Buffer2 MSB address */
13349b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_5;
134*3fc36ee0SWojciech Macek 	/* [0x18] RX queue Target-ID values */
13549b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_6;
136*3fc36ee0SWojciech Macek 	/* [0x1c] RX queue BUF1 Target-ID values */
13749b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_7;
138*3fc36ee0SWojciech Macek 	/* [0x20] RX queue BUF2 Target-ID values */
13949b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_8;
140*3fc36ee0SWojciech Macek 	/* [0x24] RX queue Direct Data Placement Target-ID values */
14149b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_9;
14249b49cdaSZbigniew Bodek 	/* [0x28] RX VMPR BUF1 Address High Regsiter */
14349b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_10;
14449b49cdaSZbigniew Bodek 	/* [0x2c] RX VMPR BUF2 Address High Regsiter */
14549b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_11;
14649b49cdaSZbigniew Bodek 	/* [0x30] RX VMPR DDP Address High Regsiter */
14749b49cdaSZbigniew Bodek 	uint32_t cfg_vmpr_12;
14849b49cdaSZbigniew Bodek 	uint32_t rsrvd[3];
14949b49cdaSZbigniew Bodek };
15049b49cdaSZbigniew Bodek 
15149b49cdaSZbigniew Bodek struct udma_gen_regs {
15249b49cdaSZbigniew Bodek 	struct udma_iofic_regs interrupt_regs;					/* [0x0000] */
15349b49cdaSZbigniew Bodek 	struct udma_gen_dma_misc dma_misc;                   /* [0x2080] */
15449b49cdaSZbigniew Bodek 	struct udma_gen_mailbox mailbox[4];                  /* [0x2180] */
15549b49cdaSZbigniew Bodek 	struct udma_gen_axi axi;                             /* [0x2280] */
15649b49cdaSZbigniew Bodek 	struct udma_gen_sram_ctrl sram_ctrl[25];             /* [0x2380] */
15749b49cdaSZbigniew Bodek 	uint32_t rsrvd_1[2];
158*3fc36ee0SWojciech Macek 	struct udma_gen_tgtid tgtid;                           /* [0x23ec] */
159*3fc36ee0SWojciech Macek 	struct udma_gen_tgtaddr tgtaddr;                       /* [0x2400] */
16049b49cdaSZbigniew Bodek 	uint32_t rsrvd_2[252];
16149b49cdaSZbigniew Bodek 	struct udma_gen_vmpr vmpr[4];                        /* [0x2800] */
16249b49cdaSZbigniew Bodek };
16349b49cdaSZbigniew Bodek 
16449b49cdaSZbigniew Bodek 
16549b49cdaSZbigniew Bodek /*
16649b49cdaSZbigniew Bodek * Registers Fields
16749b49cdaSZbigniew Bodek */
16849b49cdaSZbigniew Bodek 
16949b49cdaSZbigniew Bodek 
17049b49cdaSZbigniew Bodek /**** int_cfg register ****/
17149b49cdaSZbigniew Bodek /*
17249b49cdaSZbigniew Bodek  * MSIX data width
17349b49cdaSZbigniew Bodek  * 1 - 64 bit
17449b49cdaSZbigniew Bodek  * 0 – 32 bit
17549b49cdaSZbigniew Bodek  */
17649b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_MSIX_64 (1 << 0)
17749b49cdaSZbigniew Bodek /* General configuration */
17849b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_RESERVED_3_1_MASK 0x0000000E
17949b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_RESERVED_3_1_SHIFT 1
18049b49cdaSZbigniew Bodek /* MSIx AXI QoS */
18149b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_MSIX_AXI_QOS_MASK 0x00000070
18249b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_MSIX_AXI_QOS_SHIFT 4
18349b49cdaSZbigniew Bodek 
18449b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_RESERVED_31_7_MASK 0xFFFFFF80
18549b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_INT_CFG_RESERVED_31_7_SHIFT 7
18649b49cdaSZbigniew Bodek 
18749b49cdaSZbigniew Bodek /**** revision register ****/
18849b49cdaSZbigniew Bodek /* Design programming interface  revision ID */
18949b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_PROGRAMMING_ID_MASK 0x00000FFF
19049b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_PROGRAMMING_ID_SHIFT 0
19149b49cdaSZbigniew Bodek /* Design minor revision ID */
19249b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_MINOR_ID_MASK 0x00FFF000
19349b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_MINOR_ID_SHIFT 12
19449b49cdaSZbigniew Bodek /* Design major revision ID */
19549b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_MAJOR_ID_MASK 0xFF000000
19649b49cdaSZbigniew Bodek #define UDMA_GEN_DMA_MISC_REVISION_MAJOR_ID_SHIFT 24
19749b49cdaSZbigniew Bodek 
19849b49cdaSZbigniew Bodek /**** Interrupt register ****/
19949b49cdaSZbigniew Bodek /* Generate interrupt to another DMA */
20049b49cdaSZbigniew Bodek #define UDMA_GEN_MAILBOX_INTERRUPT_SET   (1 << 0)
20149b49cdaSZbigniew Bodek 
20249b49cdaSZbigniew Bodek /**** cfg_2 register ****/
20349b49cdaSZbigniew Bodek /*
20449b49cdaSZbigniew Bodek  * Enable arbitration promotion.
20549b49cdaSZbigniew Bodek  * Increment master priority after configured number of arbitration cycles
20649b49cdaSZbigniew Bodek  */
20749b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_CFG_2_ARB_PROMOTION_MASK 0x0000000F
20849b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_CFG_2_ARB_PROMOTION_SHIFT 0
20949b49cdaSZbigniew Bodek 
21049b49cdaSZbigniew Bodek /**** endian_cfg register ****/
21149b49cdaSZbigniew Bodek /* Swap M2S descriptor read and completion descriptor write.  */
21249b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_ENDIAN_CFG_SWAP_M2S_DESC (1 << 0)
21349b49cdaSZbigniew Bodek /* Swap M2S data read. */
21449b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_ENDIAN_CFG_SWAP_M2S_DATA (1 << 1)
21549b49cdaSZbigniew Bodek /* Swap S2M descriptor read and completion descriptor write.  */
21649b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_ENDIAN_CFG_SWAP_S2M_DESC (1 << 2)
21749b49cdaSZbigniew Bodek /* Swap S2M data write. */
21849b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_ENDIAN_CFG_SWAP_S2M_DATA (1 << 3)
21949b49cdaSZbigniew Bodek /*
22049b49cdaSZbigniew Bodek  * Swap 32 or 64 bit mode:
22149b49cdaSZbigniew Bodek  * 0 - Swap groups of 4 bytes
22249b49cdaSZbigniew Bodek  * 1 - Swap groups of 8 bytes
22349b49cdaSZbigniew Bodek  */
22449b49cdaSZbigniew Bodek #define UDMA_GEN_AXI_ENDIAN_CFG_SWAP_64B_EN (1 << 4)
22549b49cdaSZbigniew Bodek 
22649b49cdaSZbigniew Bodek /**** timing register ****/
22749b49cdaSZbigniew Bodek /* Write margin */
22849b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMA_MASK 0x0000000F
22949b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMA_SHIFT 0
23049b49cdaSZbigniew Bodek /* Write margin enable */
23149b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMEA   (1 << 8)
23249b49cdaSZbigniew Bodek /* Read margin */
23349b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMB_MASK 0x000F0000
23449b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMB_SHIFT 16
23549b49cdaSZbigniew Bodek /* Read margin enable */
23649b49cdaSZbigniew Bodek #define UDMA_GEN_SRAM_CTRL_TIMING_RMEB   (1 << 24)
23749b49cdaSZbigniew Bodek 
238*3fc36ee0SWojciech Macek /**** cfg_tgtid_0 register ****/
239*3fc36ee0SWojciech Macek /* For M2S queues 3:0, enable usage of the Target-ID from the buffer address 63:56 */
240*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_TX_Q_TGTID_DESC_EN_MASK 0x0000000F
241*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_TX_Q_TGTID_DESC_EN_SHIFT 0
24249b49cdaSZbigniew Bodek /*
243*3fc36ee0SWojciech Macek  * For M2S queues 3:0, enable usage of the Target-ID from the configuration register
244*3fc36ee0SWojciech Macek  * (cfg_tgtid_1/2 used for M2S queue_x)
24549b49cdaSZbigniew Bodek  */
246*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_TX_Q_TGTID_QUEUE_EN_MASK 0x000000F0
247*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_TX_Q_TGTID_QUEUE_EN_SHIFT 4
248*3fc36ee0SWojciech Macek /* use Target-ID_n [7:0] from MSI-X Controller for MSI-X message  */
249*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_MSIX_TGTID_SEL (1 << 8)
250*3fc36ee0SWojciech Macek /* Enable write to all Target-ID_n registers in the MSI-X Controller */
251*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_MSIX_TGTID_ACCESS_EN (1 << 9)
252*3fc36ee0SWojciech Macek /* For S2M queues 3:0, enable usage of the Target-ID from the buffer address 63:56 */
253*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_RX_Q_TGTID_DESC_EN_MASK 0x000F0000
254*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_RX_Q_TGTID_DESC_EN_SHIFT 16
25549b49cdaSZbigniew Bodek /*
256*3fc36ee0SWojciech Macek  * For S2M queues 3:0, enable usage of the Target-ID from the configuration register
257*3fc36ee0SWojciech Macek  * (cfg_tgtid_3/4 used for M2S queue_x)
25849b49cdaSZbigniew Bodek  */
259*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_RX_Q_TGTID_QUEUE_EN_MASK 0x00F00000
260*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_0_RX_Q_TGTID_QUEUE_EN_SHIFT 20
26149b49cdaSZbigniew Bodek 
262*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_SHIFT(qid)	(((qid) & 0x1) ? 16 : 0)
263*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_MASK(qid)	(((qid) & 0x1) ? 0xFFFF0000 : 0x0000FFFF)
26449b49cdaSZbigniew Bodek 
265*3fc36ee0SWojciech Macek /**** cfg_tgtid_1 register ****/
266*3fc36ee0SWojciech Macek /* TX queue 0 Target-ID value */
267*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_1_TX_Q_0_TGTID_MASK 0x0000FFFF
268*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_1_TX_Q_0_TGTID_SHIFT 0
269*3fc36ee0SWojciech Macek /* TX queue 1 Target-ID value */
270*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_1_TX_Q_1_TGTID_MASK 0xFFFF0000
271*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_1_TX_Q_1_TGTID_SHIFT 16
27249b49cdaSZbigniew Bodek 
273*3fc36ee0SWojciech Macek /**** cfg_tgtid_2 register ****/
274*3fc36ee0SWojciech Macek /* TX queue 2 Target-ID value */
275*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_2_TX_Q_2_TGTID_MASK 0x0000FFFF
276*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_2_TX_Q_2_TGTID_SHIFT 0
277*3fc36ee0SWojciech Macek /* TX queue 3 Target-ID value */
278*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_2_TX_Q_3_TGTID_MASK 0xFFFF0000
279*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_2_TX_Q_3_TGTID_SHIFT 16
28049b49cdaSZbigniew Bodek 
281*3fc36ee0SWojciech Macek /**** cfg_tgtid_3 register ****/
282*3fc36ee0SWojciech Macek /* RX queue 0 Target-ID value */
283*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_3_RX_Q_0_TGTID_MASK 0x0000FFFF
284*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_3_RX_Q_0_TGTID_SHIFT 0
285*3fc36ee0SWojciech Macek /* RX queue 1 Target-ID value */
286*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_3_RX_Q_1_TGTID_MASK 0xFFFF0000
287*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_3_RX_Q_1_TGTID_SHIFT 16
28849b49cdaSZbigniew Bodek 
289*3fc36ee0SWojciech Macek /**** cfg_tgtid_4 register ****/
290*3fc36ee0SWojciech Macek /* RX queue 2 Target-ID value */
291*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_4_RX_Q_2_TGTID_MASK 0x0000FFFF
292*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_4_RX_Q_2_TGTID_SHIFT 0
293*3fc36ee0SWojciech Macek /* RX queue 3 Target-ID value */
294*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_4_RX_Q_3_TGTID_MASK 0xFFFF0000
295*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTID_CFG_TGTID_4_RX_Q_3_TGTID_SHIFT 16
29649b49cdaSZbigniew Bodek 
297*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_SHIFT(qid)	(((qid) & 0x1) ? 16 : 0)
298*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_MASK(qid)	(((qid) & 0x1) ? 0xFFFF0000 : 0x0000FFFF)
29949b49cdaSZbigniew Bodek 
300*3fc36ee0SWojciech Macek /**** cfg_tgtaddr_0 register ****/
301*3fc36ee0SWojciech Macek /* TX queue 0 Target-Address value */
302*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_0_TX_Q_0_TGTADDR_MASK 0x0000FFFF
303*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_0_TX_Q_0_TGTADDR_SHIFT 0
304*3fc36ee0SWojciech Macek /* TX queue 1 Target-Address value */
305*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_0_TX_Q_1_TGTADDR_MASK 0xFFFF0000
306*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_0_TX_Q_1_TGTADDR_SHIFT 16
30749b49cdaSZbigniew Bodek 
308*3fc36ee0SWojciech Macek /**** cfg_tgtaddr_1 register ****/
309*3fc36ee0SWojciech Macek /* TX queue 2 Target-Address value */
310*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_1_TX_Q_2_TGTADDR_MASK 0x0000FFFF
311*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_1_TX_Q_2_TGTADDR_SHIFT 0
312*3fc36ee0SWojciech Macek /* TX queue 3 Target-Address value */
313*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_1_TX_Q_3_TGTADDR_MASK 0xFFFF0000
314*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_1_TX_Q_3_TGTADDR_SHIFT 16
315*3fc36ee0SWojciech Macek 
316*3fc36ee0SWojciech Macek /**** cfg_tgtaddr_2 register ****/
317*3fc36ee0SWojciech Macek /* RX queue 0 Target-Address value */
318*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_2_RX_Q_0_TGTADDR_MASK 0x0000FFFF
319*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_2_RX_Q_0_TGTADDR_SHIFT 0
320*3fc36ee0SWojciech Macek /* RX queue 1 Target-Address value */
321*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_2_RX_Q_1_TGTADDR_MASK 0xFFFF0000
322*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_2_RX_Q_1_TGTADDR_SHIFT 16
323*3fc36ee0SWojciech Macek 
324*3fc36ee0SWojciech Macek /**** cfg_tgtaddr_3 register ****/
325*3fc36ee0SWojciech Macek /* RX queue 2 Target-Address value */
326*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_3_RX_Q_2_TGTADDR_MASK 0x0000FFFF
327*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_3_RX_Q_2_TGTADDR_SHIFT 0
328*3fc36ee0SWojciech Macek /* RX queue 3 Target-Address value */
329*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_3_RX_Q_3_TGTADDR_MASK 0xFFFF0000
330*3fc36ee0SWojciech Macek #define UDMA_GEN_TGTADDR_CFG_TGTADDR_3_RX_Q_3_TGTADDR_SHIFT 16
33149b49cdaSZbigniew Bodek 
33249b49cdaSZbigniew Bodek /**** cfg_vmpr_0 register ****/
33349b49cdaSZbigniew Bodek /* TX High Address Select Per Q */
33449b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_0_TX_Q_HISEL_MASK 0x0000003F
33549b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_0_TX_Q_HISEL_SHIFT 0
336*3fc36ee0SWojciech Macek /* TX Data Target-ID Enable Per Q */
337*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_0_TX_Q_DATA_TGTID_EN (1 << 7)
338*3fc36ee0SWojciech Macek /* TX Prefetch Target-ID Enable Per Q */
339*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_0_TX_Q_PREF_TGTID_EN (1 << 28)
340*3fc36ee0SWojciech Macek /* TX Completions Target-ID Enable Per Q */
341*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_0_TX_Q_CMPL_TGTID_EN (1 << 29)
34249b49cdaSZbigniew Bodek 
34349b49cdaSZbigniew Bodek /**** cfg_vmpr_2 register ****/
344*3fc36ee0SWojciech Macek /* TX queue Prefetch Target-ID */
345*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_2_TX_Q_PREF_TGTID_MASK 0x0000FFFF
346*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_2_TX_Q_PREF_TGTID_SHIFT 0
347*3fc36ee0SWojciech Macek /* TX queue Completion Target-ID */
348*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_2_TX_Q_CMPL_TGTID_MASK 0xFFFF0000
349*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_2_TX_Q_CMPL_TGTID_SHIFT 16
35049b49cdaSZbigniew Bodek 
35149b49cdaSZbigniew Bodek /**** cfg_vmpr_3 register ****/
352*3fc36ee0SWojciech Macek /* TX queue Data Target-ID */
353*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_3_TX_Q_DATA_TGTID_MASK 0x0000FFFF
354*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_3_TX_Q_DATA_TGTID_SHIFT 0
355*3fc36ee0SWojciech Macek /* TX queue Data Target-ID select */
356*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_3_TX_Q_DATA_TGTID_SEL_MASK 0xFFFF0000
357*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_3_TX_Q_DATA_TGTID_SEL_SHIFT 16
35849b49cdaSZbigniew Bodek 
35949b49cdaSZbigniew Bodek /**** cfg_vmpr_4 register ****/
36049b49cdaSZbigniew Bodek /* RX Data Buffer1 - High Address Select Per Q */
36149b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF1_HISEL_MASK 0x0000003F
36249b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF1_HISEL_SHIFT 0
363*3fc36ee0SWojciech Macek /* RX Data Buffer1 Target-ID Enable Per Q */
364*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF1_TGTID_EN (1 << 7)
36549b49cdaSZbigniew Bodek /* RX Data Buffer2 - High Address Select Per Q */
36649b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF2_HISEL_MASK 0x00003F00
36749b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF2_HISEL_SHIFT 8
368*3fc36ee0SWojciech Macek /* RX Data Buffer2 Target-ID Enable Per Q */
369*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF2_TGTID_EN (1 << 15)
37049b49cdaSZbigniew Bodek /* RX Direct Data Placement - High Address Select Per Q */
37149b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_DDP_HISEL_MASK 0x003F0000
37249b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_DDP_HISEL_SHIFT 16
373*3fc36ee0SWojciech Macek /* RX Direct Data Placement Target-ID Enable Per Q */
374*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_DDP_TGTID_EN (1 << 23)
37549b49cdaSZbigniew Bodek /* RX Buffer 2 MSB address word selects per bytes, per queue */
37649b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF2_MSB_ADDR_SEL_MASK 0x0F000000
37749b49cdaSZbigniew Bodek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_BUF2_MSB_ADDR_SEL_SHIFT 24
378*3fc36ee0SWojciech Macek /* RX Prefetch Target-ID Enable Per Q */
379*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_PREF_TGTID_EN (1 << 28)
380*3fc36ee0SWojciech Macek /* RX Completions Target-ID Enable Per Q */
381*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_4_RX_Q_CMPL_TGTID_EN (1 << 29)
38249b49cdaSZbigniew Bodek 
38349b49cdaSZbigniew Bodek /**** cfg_vmpr_6 register ****/
384*3fc36ee0SWojciech Macek /* RX queue Prefetch Target-ID */
385*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_6_RX_Q_PREF_TGTID_MASK 0x0000FFFF
386*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_6_RX_Q_PREF_TGTID_SHIFT 0
387*3fc36ee0SWojciech Macek /* RX queue Completion Target-ID */
388*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_6_RX_Q_CMPL_TGTID_MASK 0xFFFF0000
389*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_6_RX_Q_CMPL_TGTID_SHIFT 16
39049b49cdaSZbigniew Bodek 
39149b49cdaSZbigniew Bodek /**** cfg_vmpr_7 register ****/
392*3fc36ee0SWojciech Macek /* RX queue Data Buffer 1 Target-ID */
393*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_7_RX_Q_BUF1_TGTID_MASK 0x0000FFFF
394*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_7_RX_Q_BUF1_TGTID_SHIFT 0
395*3fc36ee0SWojciech Macek /* RX queue Data Buffer 1 Target-ID select */
396*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_7_RX_Q_BUF1_TGTID_SEL_MASK 0xFFFF0000
397*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_7_RX_Q_BUF1_TGTID_SEL_SHIFT 16
39849b49cdaSZbigniew Bodek 
39949b49cdaSZbigniew Bodek /**** cfg_vmpr_8 register ****/
400*3fc36ee0SWojciech Macek /* RX queue Data Buffer 2 Target-ID */
401*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_8_RX_Q_BUF2_TGTID_MASK 0x0000FFFF
402*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_8_RX_Q_BUF2_TGTID_SHIFT 0
403*3fc36ee0SWojciech Macek /* RX queue Data Buffer 2 Target-ID select */
404*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_8_RX_Q_BUF2_TGTID_SEL_MASK 0xFFFF0000
405*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_8_RX_Q_BUF2_TGTID_SEL_SHIFT 16
40649b49cdaSZbigniew Bodek 
40749b49cdaSZbigniew Bodek /**** cfg_vmpr_9 register ****/
408*3fc36ee0SWojciech Macek /* RX queue DDP Target-ID */
409*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_9_RX_Q_DDP_TGTID_MASK 0x0000FFFF
410*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_9_RX_Q_DDP_TGTID_SHIFT 0
411*3fc36ee0SWojciech Macek /* RX queue DDP Target-ID select */
412*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_9_RX_Q_DDP_TGTID_SEL_MASK 0xFFFF0000
413*3fc36ee0SWojciech Macek #define UDMA_GEN_VMPR_CFG_VMPR_9_RX_Q_DDP_TGTID_SEL_SHIFT 16
41449b49cdaSZbigniew Bodek 
41549b49cdaSZbigniew Bodek #ifdef __cplusplus
41649b49cdaSZbigniew Bodek }
41749b49cdaSZbigniew Bodek #endif
41849b49cdaSZbigniew Bodek 
41949b49cdaSZbigniew Bodek #endif /* __AL_HAL_UDMA_GEN_REG_H */
420