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