1 /** 2 * Copyright (c) 2022 Raspberry Pi (Trading) Ltd. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 // ============================================================================= 7 // Register block : DMA 8 // Version : 1 9 // Bus type : apb 10 // Description : DMA with separate read and write masters 11 // ============================================================================= 12 #ifndef HARDWARE_REGS_DMA_DEFINED 13 #define HARDWARE_REGS_DMA_DEFINED 14 // ============================================================================= 15 // Register : DMA_CH0_READ_ADDR 16 // Description : DMA Channel 0 Read Address pointer 17 // This register updates automatically each time a read completes. 18 // The current value is the next address to be read by this 19 // channel. 20 #define DMA_CH0_READ_ADDR_OFFSET _u(0x00000000) 21 #define DMA_CH0_READ_ADDR_BITS _u(0xffffffff) 22 #define DMA_CH0_READ_ADDR_RESET _u(0x00000000) 23 #define DMA_CH0_READ_ADDR_MSB _u(31) 24 #define DMA_CH0_READ_ADDR_LSB _u(0) 25 #define DMA_CH0_READ_ADDR_ACCESS "RW" 26 // ============================================================================= 27 // Register : DMA_CH0_WRITE_ADDR 28 // Description : DMA Channel 0 Write Address pointer 29 // This register updates automatically each time a write 30 // completes. The current value is the next address to be written 31 // by this channel. 32 #define DMA_CH0_WRITE_ADDR_OFFSET _u(0x00000004) 33 #define DMA_CH0_WRITE_ADDR_BITS _u(0xffffffff) 34 #define DMA_CH0_WRITE_ADDR_RESET _u(0x00000000) 35 #define DMA_CH0_WRITE_ADDR_MSB _u(31) 36 #define DMA_CH0_WRITE_ADDR_LSB _u(0) 37 #define DMA_CH0_WRITE_ADDR_ACCESS "RW" 38 // ============================================================================= 39 // Register : DMA_CH0_TRANS_COUNT 40 // Description : DMA Channel 0 Transfer Count 41 // Program the number of bus transfers a channel will perform 42 // before halting. Note that, if transfers are larger than one 43 // byte in size, this is not equal to the number of bytes 44 // transferred (see CTRL_DATA_SIZE). 45 // 46 // When the channel is active, reading this register shows the 47 // number of transfers remaining, updating automatically each time 48 // a write transfer completes. 49 // 50 // Writing this register sets the RELOAD value for the transfer 51 // counter. Each time this channel is triggered, the RELOAD value 52 // is copied into the live transfer counter. The channel can be 53 // started multiple times, and will perform the same number of 54 // transfers each time, as programmed by most recent write. 55 // 56 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 57 // is used as a trigger, the written value is used immediately as 58 // the length of the new transfer sequence, as well as being 59 // written to RELOAD. 60 #define DMA_CH0_TRANS_COUNT_OFFSET _u(0x00000008) 61 #define DMA_CH0_TRANS_COUNT_BITS _u(0xffffffff) 62 #define DMA_CH0_TRANS_COUNT_RESET _u(0x00000000) 63 #define DMA_CH0_TRANS_COUNT_MSB _u(31) 64 #define DMA_CH0_TRANS_COUNT_LSB _u(0) 65 #define DMA_CH0_TRANS_COUNT_ACCESS "RW" 66 // ============================================================================= 67 // Register : DMA_CH0_CTRL_TRIG 68 // Description : DMA Channel 0 Control and Status 69 #define DMA_CH0_CTRL_TRIG_OFFSET _u(0x0000000c) 70 #define DMA_CH0_CTRL_TRIG_BITS _u(0xe1ffffff) 71 #define DMA_CH0_CTRL_TRIG_RESET _u(0x00000000) 72 // ----------------------------------------------------------------------------- 73 // Field : DMA_CH0_CTRL_TRIG_AHB_ERROR 74 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 75 // halts when it encounters any bus error, and always raises its 76 // channel IRQ flag. 77 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 78 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 79 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_MSB _u(31) 80 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_LSB _u(31) 81 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 82 // ----------------------------------------------------------------------------- 83 // Field : DMA_CH0_CTRL_TRIG_READ_ERROR 84 // Description : If 1, the channel received a read bus error. Write one to 85 // clear. 86 // READ_ADDR shows the approximate address where the bus error was 87 // encountered (will not be earlier, or more than 3 transfers 88 // later) 89 #define DMA_CH0_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 90 #define DMA_CH0_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 91 #define DMA_CH0_CTRL_TRIG_READ_ERROR_MSB _u(30) 92 #define DMA_CH0_CTRL_TRIG_READ_ERROR_LSB _u(30) 93 #define DMA_CH0_CTRL_TRIG_READ_ERROR_ACCESS "WC" 94 // ----------------------------------------------------------------------------- 95 // Field : DMA_CH0_CTRL_TRIG_WRITE_ERROR 96 // Description : If 1, the channel received a write bus error. Write one to 97 // clear. 98 // WRITE_ADDR shows the approximate address where the bus error 99 // was encountered (will not be earlier, or more than 5 transfers 100 // later) 101 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 102 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 103 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 104 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 105 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 106 // ----------------------------------------------------------------------------- 107 // Field : DMA_CH0_CTRL_TRIG_BUSY 108 // Description : This flag goes high when the channel starts a new transfer 109 // sequence, and low when the last transfer of that sequence 110 // completes. Clearing EN while BUSY is high pauses the channel, 111 // and BUSY will stay high while paused. 112 // 113 // To terminate a sequence early (and clear the BUSY flag), see 114 // CHAN_ABORT. 115 #define DMA_CH0_CTRL_TRIG_BUSY_RESET _u(0x0) 116 #define DMA_CH0_CTRL_TRIG_BUSY_BITS _u(0x01000000) 117 #define DMA_CH0_CTRL_TRIG_BUSY_MSB _u(24) 118 #define DMA_CH0_CTRL_TRIG_BUSY_LSB _u(24) 119 #define DMA_CH0_CTRL_TRIG_BUSY_ACCESS "RO" 120 // ----------------------------------------------------------------------------- 121 // Field : DMA_CH0_CTRL_TRIG_SNIFF_EN 122 // Description : If 1, this channel's data transfers are visible to the sniff 123 // hardware, and each transfer will advance the state of the 124 // checksum. This only applies if the sniff hardware is enabled, 125 // and has this channel selected. 126 // 127 // This allows checksum to be enabled or disabled on a 128 // per-control- block basis. 129 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 130 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 131 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_MSB _u(23) 132 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_LSB _u(23) 133 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 134 // ----------------------------------------------------------------------------- 135 // Field : DMA_CH0_CTRL_TRIG_BSWAP 136 // Description : Apply byte-swap transformation to DMA data. 137 // For byte data, this has no effect. For halfword data, the two 138 // bytes of each halfword are swapped. For word data, the four 139 // bytes of each word are swapped to reverse order. 140 #define DMA_CH0_CTRL_TRIG_BSWAP_RESET _u(0x0) 141 #define DMA_CH0_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 142 #define DMA_CH0_CTRL_TRIG_BSWAP_MSB _u(22) 143 #define DMA_CH0_CTRL_TRIG_BSWAP_LSB _u(22) 144 #define DMA_CH0_CTRL_TRIG_BSWAP_ACCESS "RW" 145 // ----------------------------------------------------------------------------- 146 // Field : DMA_CH0_CTRL_TRIG_IRQ_QUIET 147 // Description : In QUIET mode, the channel does not generate IRQs at the end of 148 // every transfer block. Instead, an IRQ is raised when NULL is 149 // written to a trigger register, indicating the end of a control 150 // block chain. 151 // 152 // This reduces the number of interrupts to be serviced by the CPU 153 // when transferring a DMA chain of many small control blocks. 154 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 155 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 156 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 157 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 158 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 159 // ----------------------------------------------------------------------------- 160 // Field : DMA_CH0_CTRL_TRIG_TREQ_SEL 161 // Description : Select a Transfer Request signal. 162 // The channel uses the transfer request signal to pace its data 163 // transfer rate. Sources for TREQ signals are internal (TIMERS) 164 // or external (DREQ, a Data Request from the system). 165 // 0x0 to 0x3a -> select DREQ n as TREQ 166 // 0x3b -> Select Timer 0 as TREQ 167 // 0x3c -> Select Timer 1 as TREQ 168 // 0x3d -> Select Timer 2 as TREQ (Optional) 169 // 0x3e -> Select Timer 3 as TREQ (Optional) 170 // 0x3f -> Permanent request, for unpaced transfers. 171 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 172 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 173 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_MSB _u(20) 174 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_LSB _u(15) 175 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 176 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 177 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 178 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 179 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 180 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 181 // ----------------------------------------------------------------------------- 182 // Field : DMA_CH0_CTRL_TRIG_CHAIN_TO 183 // Description : When this channel completes, it will trigger the channel 184 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 185 // channel)_. 186 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 187 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 188 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_MSB _u(14) 189 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_LSB _u(11) 190 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 191 // ----------------------------------------------------------------------------- 192 // Field : DMA_CH0_CTRL_TRIG_RING_SEL 193 // Description : Select whether RING_SIZE applies to read or write addresses. 194 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 195 // boundary. If 1, write addresses are wrapped. 196 #define DMA_CH0_CTRL_TRIG_RING_SEL_RESET _u(0x0) 197 #define DMA_CH0_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 198 #define DMA_CH0_CTRL_TRIG_RING_SEL_MSB _u(10) 199 #define DMA_CH0_CTRL_TRIG_RING_SEL_LSB _u(10) 200 #define DMA_CH0_CTRL_TRIG_RING_SEL_ACCESS "RW" 201 // ----------------------------------------------------------------------------- 202 // Field : DMA_CH0_CTRL_TRIG_RING_SIZE 203 // Description : Size of address wrap region. If 0, don't wrap. For values n > 204 // 0, only the lower n bits of the address will change. This wraps 205 // the address on a (1 << n) byte boundary, facilitating access to 206 // naturally-aligned ring buffers. 207 // 208 // Ring sizes between 2 and 32768 bytes are possible. This can 209 // apply to either read or write addresses, based on value of 210 // RING_SEL. 211 // 0x0 -> RING_NONE 212 #define DMA_CH0_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 213 #define DMA_CH0_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 214 #define DMA_CH0_CTRL_TRIG_RING_SIZE_MSB _u(9) 215 #define DMA_CH0_CTRL_TRIG_RING_SIZE_LSB _u(6) 216 #define DMA_CH0_CTRL_TRIG_RING_SIZE_ACCESS "RW" 217 #define DMA_CH0_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 218 // ----------------------------------------------------------------------------- 219 // Field : DMA_CH0_CTRL_TRIG_INCR_WRITE 220 // Description : If 1, the write address increments with each transfer. If 0, 221 // each write is directed to the same, initial address. 222 // 223 // Generally this should be disabled for memory-to-peripheral 224 // transfers. 225 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 226 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 227 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_MSB _u(5) 228 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_LSB _u(5) 229 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 230 // ----------------------------------------------------------------------------- 231 // Field : DMA_CH0_CTRL_TRIG_INCR_READ 232 // Description : If 1, the read address increments with each transfer. If 0, 233 // each read is directed to the same, initial address. 234 // 235 // Generally this should be disabled for peripheral-to-memory 236 // transfers. 237 #define DMA_CH0_CTRL_TRIG_INCR_READ_RESET _u(0x0) 238 #define DMA_CH0_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 239 #define DMA_CH0_CTRL_TRIG_INCR_READ_MSB _u(4) 240 #define DMA_CH0_CTRL_TRIG_INCR_READ_LSB _u(4) 241 #define DMA_CH0_CTRL_TRIG_INCR_READ_ACCESS "RW" 242 // ----------------------------------------------------------------------------- 243 // Field : DMA_CH0_CTRL_TRIG_DATA_SIZE 244 // Description : Set the size of each bus transfer (byte/halfword/word). 245 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 246 // with each transfer. 247 // 0x0 -> SIZE_BYTE 248 // 0x1 -> SIZE_HALFWORD 249 // 0x2 -> SIZE_WORD 250 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 251 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 252 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_MSB _u(3) 253 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_LSB _u(2) 254 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 255 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 256 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 257 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 258 // ----------------------------------------------------------------------------- 259 // Field : DMA_CH0_CTRL_TRIG_HIGH_PRIORITY 260 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 261 // scheduling: in each scheduling round, all high priority 262 // channels are considered first, and then only a single low 263 // priority channel, before returning to the high priority 264 // channels. 265 // 266 // This only affects the order in which the DMA schedules 267 // channels. The DMA's bus priority is not changed. If the DMA is 268 // not saturated then a low priority channel will see no loss of 269 // throughput. 270 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 271 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 272 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 273 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 274 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 275 // ----------------------------------------------------------------------------- 276 // Field : DMA_CH0_CTRL_TRIG_EN 277 // Description : DMA Channel Enable. 278 // When 1, the channel will respond to triggering events, which 279 // will cause it to become BUSY and start transferring data. When 280 // 0, the channel will ignore triggers, stop issuing transfers, 281 // and pause the current transfer sequence (i.e. BUSY will remain 282 // high if already high) 283 #define DMA_CH0_CTRL_TRIG_EN_RESET _u(0x0) 284 #define DMA_CH0_CTRL_TRIG_EN_BITS _u(0x00000001) 285 #define DMA_CH0_CTRL_TRIG_EN_MSB _u(0) 286 #define DMA_CH0_CTRL_TRIG_EN_LSB _u(0) 287 #define DMA_CH0_CTRL_TRIG_EN_ACCESS "RW" 288 // ============================================================================= 289 // Register : DMA_CH0_AL1_CTRL 290 // Description : Alias for channel 0 CTRL register 291 #define DMA_CH0_AL1_CTRL_OFFSET _u(0x00000010) 292 #define DMA_CH0_AL1_CTRL_BITS _u(0xffffffff) 293 #define DMA_CH0_AL1_CTRL_RESET "-" 294 #define DMA_CH0_AL1_CTRL_MSB _u(31) 295 #define DMA_CH0_AL1_CTRL_LSB _u(0) 296 #define DMA_CH0_AL1_CTRL_ACCESS "RW" 297 // ============================================================================= 298 // Register : DMA_CH0_AL1_READ_ADDR 299 // Description : Alias for channel 0 READ_ADDR register 300 #define DMA_CH0_AL1_READ_ADDR_OFFSET _u(0x00000014) 301 #define DMA_CH0_AL1_READ_ADDR_BITS _u(0xffffffff) 302 #define DMA_CH0_AL1_READ_ADDR_RESET "-" 303 #define DMA_CH0_AL1_READ_ADDR_MSB _u(31) 304 #define DMA_CH0_AL1_READ_ADDR_LSB _u(0) 305 #define DMA_CH0_AL1_READ_ADDR_ACCESS "RW" 306 // ============================================================================= 307 // Register : DMA_CH0_AL1_WRITE_ADDR 308 // Description : Alias for channel 0 WRITE_ADDR register 309 #define DMA_CH0_AL1_WRITE_ADDR_OFFSET _u(0x00000018) 310 #define DMA_CH0_AL1_WRITE_ADDR_BITS _u(0xffffffff) 311 #define DMA_CH0_AL1_WRITE_ADDR_RESET "-" 312 #define DMA_CH0_AL1_WRITE_ADDR_MSB _u(31) 313 #define DMA_CH0_AL1_WRITE_ADDR_LSB _u(0) 314 #define DMA_CH0_AL1_WRITE_ADDR_ACCESS "RW" 315 // ============================================================================= 316 // Register : DMA_CH0_AL1_TRANS_COUNT_TRIG 317 // Description : Alias for channel 0 TRANS_COUNT register 318 // This is a trigger register (0xc). Writing a nonzero value will 319 // reload the channel counter and start the channel. 320 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000001c) 321 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 322 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_RESET "-" 323 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_MSB _u(31) 324 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_LSB _u(0) 325 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 326 // ============================================================================= 327 // Register : DMA_CH0_AL2_CTRL 328 // Description : Alias for channel 0 CTRL register 329 #define DMA_CH0_AL2_CTRL_OFFSET _u(0x00000020) 330 #define DMA_CH0_AL2_CTRL_BITS _u(0xffffffff) 331 #define DMA_CH0_AL2_CTRL_RESET "-" 332 #define DMA_CH0_AL2_CTRL_MSB _u(31) 333 #define DMA_CH0_AL2_CTRL_LSB _u(0) 334 #define DMA_CH0_AL2_CTRL_ACCESS "RW" 335 // ============================================================================= 336 // Register : DMA_CH0_AL2_TRANS_COUNT 337 // Description : Alias for channel 0 TRANS_COUNT register 338 #define DMA_CH0_AL2_TRANS_COUNT_OFFSET _u(0x00000024) 339 #define DMA_CH0_AL2_TRANS_COUNT_BITS _u(0xffffffff) 340 #define DMA_CH0_AL2_TRANS_COUNT_RESET "-" 341 #define DMA_CH0_AL2_TRANS_COUNT_MSB _u(31) 342 #define DMA_CH0_AL2_TRANS_COUNT_LSB _u(0) 343 #define DMA_CH0_AL2_TRANS_COUNT_ACCESS "RW" 344 // ============================================================================= 345 // Register : DMA_CH0_AL2_READ_ADDR 346 // Description : Alias for channel 0 READ_ADDR register 347 #define DMA_CH0_AL2_READ_ADDR_OFFSET _u(0x00000028) 348 #define DMA_CH0_AL2_READ_ADDR_BITS _u(0xffffffff) 349 #define DMA_CH0_AL2_READ_ADDR_RESET "-" 350 #define DMA_CH0_AL2_READ_ADDR_MSB _u(31) 351 #define DMA_CH0_AL2_READ_ADDR_LSB _u(0) 352 #define DMA_CH0_AL2_READ_ADDR_ACCESS "RW" 353 // ============================================================================= 354 // Register : DMA_CH0_AL2_WRITE_ADDR_TRIG 355 // Description : Alias for channel 0 WRITE_ADDR register 356 // This is a trigger register (0xc). Writing a nonzero value will 357 // reload the channel counter and start the channel. 358 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000002c) 359 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 360 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_RESET "-" 361 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_MSB _u(31) 362 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_LSB _u(0) 363 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 364 // ============================================================================= 365 // Register : DMA_CH0_AL3_CTRL 366 // Description : Alias for channel 0 CTRL register 367 #define DMA_CH0_AL3_CTRL_OFFSET _u(0x00000030) 368 #define DMA_CH0_AL3_CTRL_BITS _u(0xffffffff) 369 #define DMA_CH0_AL3_CTRL_RESET "-" 370 #define DMA_CH0_AL3_CTRL_MSB _u(31) 371 #define DMA_CH0_AL3_CTRL_LSB _u(0) 372 #define DMA_CH0_AL3_CTRL_ACCESS "RW" 373 // ============================================================================= 374 // Register : DMA_CH0_AL3_WRITE_ADDR 375 // Description : Alias for channel 0 WRITE_ADDR register 376 #define DMA_CH0_AL3_WRITE_ADDR_OFFSET _u(0x00000034) 377 #define DMA_CH0_AL3_WRITE_ADDR_BITS _u(0xffffffff) 378 #define DMA_CH0_AL3_WRITE_ADDR_RESET "-" 379 #define DMA_CH0_AL3_WRITE_ADDR_MSB _u(31) 380 #define DMA_CH0_AL3_WRITE_ADDR_LSB _u(0) 381 #define DMA_CH0_AL3_WRITE_ADDR_ACCESS "RW" 382 // ============================================================================= 383 // Register : DMA_CH0_AL3_TRANS_COUNT 384 // Description : Alias for channel 0 TRANS_COUNT register 385 #define DMA_CH0_AL3_TRANS_COUNT_OFFSET _u(0x00000038) 386 #define DMA_CH0_AL3_TRANS_COUNT_BITS _u(0xffffffff) 387 #define DMA_CH0_AL3_TRANS_COUNT_RESET "-" 388 #define DMA_CH0_AL3_TRANS_COUNT_MSB _u(31) 389 #define DMA_CH0_AL3_TRANS_COUNT_LSB _u(0) 390 #define DMA_CH0_AL3_TRANS_COUNT_ACCESS "RW" 391 // ============================================================================= 392 // Register : DMA_CH0_AL3_READ_ADDR_TRIG 393 // Description : Alias for channel 0 READ_ADDR register 394 // This is a trigger register (0xc). Writing a nonzero value will 395 // reload the channel counter and start the channel. 396 #define DMA_CH0_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000003c) 397 #define DMA_CH0_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 398 #define DMA_CH0_AL3_READ_ADDR_TRIG_RESET "-" 399 #define DMA_CH0_AL3_READ_ADDR_TRIG_MSB _u(31) 400 #define DMA_CH0_AL3_READ_ADDR_TRIG_LSB _u(0) 401 #define DMA_CH0_AL3_READ_ADDR_TRIG_ACCESS "RW" 402 // ============================================================================= 403 // Register : DMA_CH1_READ_ADDR 404 // Description : DMA Channel 1 Read Address pointer 405 // This register updates automatically each time a read completes. 406 // The current value is the next address to be read by this 407 // channel. 408 #define DMA_CH1_READ_ADDR_OFFSET _u(0x00000040) 409 #define DMA_CH1_READ_ADDR_BITS _u(0xffffffff) 410 #define DMA_CH1_READ_ADDR_RESET _u(0x00000000) 411 #define DMA_CH1_READ_ADDR_MSB _u(31) 412 #define DMA_CH1_READ_ADDR_LSB _u(0) 413 #define DMA_CH1_READ_ADDR_ACCESS "RW" 414 // ============================================================================= 415 // Register : DMA_CH1_WRITE_ADDR 416 // Description : DMA Channel 1 Write Address pointer 417 // This register updates automatically each time a write 418 // completes. The current value is the next address to be written 419 // by this channel. 420 #define DMA_CH1_WRITE_ADDR_OFFSET _u(0x00000044) 421 #define DMA_CH1_WRITE_ADDR_BITS _u(0xffffffff) 422 #define DMA_CH1_WRITE_ADDR_RESET _u(0x00000000) 423 #define DMA_CH1_WRITE_ADDR_MSB _u(31) 424 #define DMA_CH1_WRITE_ADDR_LSB _u(0) 425 #define DMA_CH1_WRITE_ADDR_ACCESS "RW" 426 // ============================================================================= 427 // Register : DMA_CH1_TRANS_COUNT 428 // Description : DMA Channel 1 Transfer Count 429 // Program the number of bus transfers a channel will perform 430 // before halting. Note that, if transfers are larger than one 431 // byte in size, this is not equal to the number of bytes 432 // transferred (see CTRL_DATA_SIZE). 433 // 434 // When the channel is active, reading this register shows the 435 // number of transfers remaining, updating automatically each time 436 // a write transfer completes. 437 // 438 // Writing this register sets the RELOAD value for the transfer 439 // counter. Each time this channel is triggered, the RELOAD value 440 // is copied into the live transfer counter. The channel can be 441 // started multiple times, and will perform the same number of 442 // transfers each time, as programmed by most recent write. 443 // 444 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 445 // is used as a trigger, the written value is used immediately as 446 // the length of the new transfer sequence, as well as being 447 // written to RELOAD. 448 #define DMA_CH1_TRANS_COUNT_OFFSET _u(0x00000048) 449 #define DMA_CH1_TRANS_COUNT_BITS _u(0xffffffff) 450 #define DMA_CH1_TRANS_COUNT_RESET _u(0x00000000) 451 #define DMA_CH1_TRANS_COUNT_MSB _u(31) 452 #define DMA_CH1_TRANS_COUNT_LSB _u(0) 453 #define DMA_CH1_TRANS_COUNT_ACCESS "RW" 454 // ============================================================================= 455 // Register : DMA_CH1_CTRL_TRIG 456 // Description : DMA Channel 1 Control and Status 457 #define DMA_CH1_CTRL_TRIG_OFFSET _u(0x0000004c) 458 #define DMA_CH1_CTRL_TRIG_BITS _u(0xe1ffffff) 459 #define DMA_CH1_CTRL_TRIG_RESET _u(0x00000000) 460 // ----------------------------------------------------------------------------- 461 // Field : DMA_CH1_CTRL_TRIG_AHB_ERROR 462 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 463 // halts when it encounters any bus error, and always raises its 464 // channel IRQ flag. 465 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 466 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 467 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_MSB _u(31) 468 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_LSB _u(31) 469 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 470 // ----------------------------------------------------------------------------- 471 // Field : DMA_CH1_CTRL_TRIG_READ_ERROR 472 // Description : If 1, the channel received a read bus error. Write one to 473 // clear. 474 // READ_ADDR shows the approximate address where the bus error was 475 // encountered (will not be earlier, or more than 3 transfers 476 // later) 477 #define DMA_CH1_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 478 #define DMA_CH1_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 479 #define DMA_CH1_CTRL_TRIG_READ_ERROR_MSB _u(30) 480 #define DMA_CH1_CTRL_TRIG_READ_ERROR_LSB _u(30) 481 #define DMA_CH1_CTRL_TRIG_READ_ERROR_ACCESS "WC" 482 // ----------------------------------------------------------------------------- 483 // Field : DMA_CH1_CTRL_TRIG_WRITE_ERROR 484 // Description : If 1, the channel received a write bus error. Write one to 485 // clear. 486 // WRITE_ADDR shows the approximate address where the bus error 487 // was encountered (will not be earlier, or more than 5 transfers 488 // later) 489 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 490 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 491 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 492 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 493 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 494 // ----------------------------------------------------------------------------- 495 // Field : DMA_CH1_CTRL_TRIG_BUSY 496 // Description : This flag goes high when the channel starts a new transfer 497 // sequence, and low when the last transfer of that sequence 498 // completes. Clearing EN while BUSY is high pauses the channel, 499 // and BUSY will stay high while paused. 500 // 501 // To terminate a sequence early (and clear the BUSY flag), see 502 // CHAN_ABORT. 503 #define DMA_CH1_CTRL_TRIG_BUSY_RESET _u(0x0) 504 #define DMA_CH1_CTRL_TRIG_BUSY_BITS _u(0x01000000) 505 #define DMA_CH1_CTRL_TRIG_BUSY_MSB _u(24) 506 #define DMA_CH1_CTRL_TRIG_BUSY_LSB _u(24) 507 #define DMA_CH1_CTRL_TRIG_BUSY_ACCESS "RO" 508 // ----------------------------------------------------------------------------- 509 // Field : DMA_CH1_CTRL_TRIG_SNIFF_EN 510 // Description : If 1, this channel's data transfers are visible to the sniff 511 // hardware, and each transfer will advance the state of the 512 // checksum. This only applies if the sniff hardware is enabled, 513 // and has this channel selected. 514 // 515 // This allows checksum to be enabled or disabled on a 516 // per-control- block basis. 517 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 518 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 519 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_MSB _u(23) 520 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_LSB _u(23) 521 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 522 // ----------------------------------------------------------------------------- 523 // Field : DMA_CH1_CTRL_TRIG_BSWAP 524 // Description : Apply byte-swap transformation to DMA data. 525 // For byte data, this has no effect. For halfword data, the two 526 // bytes of each halfword are swapped. For word data, the four 527 // bytes of each word are swapped to reverse order. 528 #define DMA_CH1_CTRL_TRIG_BSWAP_RESET _u(0x0) 529 #define DMA_CH1_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 530 #define DMA_CH1_CTRL_TRIG_BSWAP_MSB _u(22) 531 #define DMA_CH1_CTRL_TRIG_BSWAP_LSB _u(22) 532 #define DMA_CH1_CTRL_TRIG_BSWAP_ACCESS "RW" 533 // ----------------------------------------------------------------------------- 534 // Field : DMA_CH1_CTRL_TRIG_IRQ_QUIET 535 // Description : In QUIET mode, the channel does not generate IRQs at the end of 536 // every transfer block. Instead, an IRQ is raised when NULL is 537 // written to a trigger register, indicating the end of a control 538 // block chain. 539 // 540 // This reduces the number of interrupts to be serviced by the CPU 541 // when transferring a DMA chain of many small control blocks. 542 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 543 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 544 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 545 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 546 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 547 // ----------------------------------------------------------------------------- 548 // Field : DMA_CH1_CTRL_TRIG_TREQ_SEL 549 // Description : Select a Transfer Request signal. 550 // The channel uses the transfer request signal to pace its data 551 // transfer rate. Sources for TREQ signals are internal (TIMERS) 552 // or external (DREQ, a Data Request from the system). 553 // 0x0 to 0x3a -> select DREQ n as TREQ 554 // 0x3b -> Select Timer 0 as TREQ 555 // 0x3c -> Select Timer 1 as TREQ 556 // 0x3d -> Select Timer 2 as TREQ (Optional) 557 // 0x3e -> Select Timer 3 as TREQ (Optional) 558 // 0x3f -> Permanent request, for unpaced transfers. 559 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 560 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 561 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_MSB _u(20) 562 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_LSB _u(15) 563 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 564 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 565 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 566 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 567 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 568 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 569 // ----------------------------------------------------------------------------- 570 // Field : DMA_CH1_CTRL_TRIG_CHAIN_TO 571 // Description : When this channel completes, it will trigger the channel 572 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 573 // channel)_. 574 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 575 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 576 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_MSB _u(14) 577 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_LSB _u(11) 578 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 579 // ----------------------------------------------------------------------------- 580 // Field : DMA_CH1_CTRL_TRIG_RING_SEL 581 // Description : Select whether RING_SIZE applies to read or write addresses. 582 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 583 // boundary. If 1, write addresses are wrapped. 584 #define DMA_CH1_CTRL_TRIG_RING_SEL_RESET _u(0x0) 585 #define DMA_CH1_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 586 #define DMA_CH1_CTRL_TRIG_RING_SEL_MSB _u(10) 587 #define DMA_CH1_CTRL_TRIG_RING_SEL_LSB _u(10) 588 #define DMA_CH1_CTRL_TRIG_RING_SEL_ACCESS "RW" 589 // ----------------------------------------------------------------------------- 590 // Field : DMA_CH1_CTRL_TRIG_RING_SIZE 591 // Description : Size of address wrap region. If 0, don't wrap. For values n > 592 // 0, only the lower n bits of the address will change. This wraps 593 // the address on a (1 << n) byte boundary, facilitating access to 594 // naturally-aligned ring buffers. 595 // 596 // Ring sizes between 2 and 32768 bytes are possible. This can 597 // apply to either read or write addresses, based on value of 598 // RING_SEL. 599 // 0x0 -> RING_NONE 600 #define DMA_CH1_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 601 #define DMA_CH1_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 602 #define DMA_CH1_CTRL_TRIG_RING_SIZE_MSB _u(9) 603 #define DMA_CH1_CTRL_TRIG_RING_SIZE_LSB _u(6) 604 #define DMA_CH1_CTRL_TRIG_RING_SIZE_ACCESS "RW" 605 #define DMA_CH1_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 606 // ----------------------------------------------------------------------------- 607 // Field : DMA_CH1_CTRL_TRIG_INCR_WRITE 608 // Description : If 1, the write address increments with each transfer. If 0, 609 // each write is directed to the same, initial address. 610 // 611 // Generally this should be disabled for memory-to-peripheral 612 // transfers. 613 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 614 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 615 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_MSB _u(5) 616 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_LSB _u(5) 617 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 618 // ----------------------------------------------------------------------------- 619 // Field : DMA_CH1_CTRL_TRIG_INCR_READ 620 // Description : If 1, the read address increments with each transfer. If 0, 621 // each read is directed to the same, initial address. 622 // 623 // Generally this should be disabled for peripheral-to-memory 624 // transfers. 625 #define DMA_CH1_CTRL_TRIG_INCR_READ_RESET _u(0x0) 626 #define DMA_CH1_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 627 #define DMA_CH1_CTRL_TRIG_INCR_READ_MSB _u(4) 628 #define DMA_CH1_CTRL_TRIG_INCR_READ_LSB _u(4) 629 #define DMA_CH1_CTRL_TRIG_INCR_READ_ACCESS "RW" 630 // ----------------------------------------------------------------------------- 631 // Field : DMA_CH1_CTRL_TRIG_DATA_SIZE 632 // Description : Set the size of each bus transfer (byte/halfword/word). 633 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 634 // with each transfer. 635 // 0x0 -> SIZE_BYTE 636 // 0x1 -> SIZE_HALFWORD 637 // 0x2 -> SIZE_WORD 638 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 639 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 640 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_MSB _u(3) 641 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_LSB _u(2) 642 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 643 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 644 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 645 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 646 // ----------------------------------------------------------------------------- 647 // Field : DMA_CH1_CTRL_TRIG_HIGH_PRIORITY 648 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 649 // scheduling: in each scheduling round, all high priority 650 // channels are considered first, and then only a single low 651 // priority channel, before returning to the high priority 652 // channels. 653 // 654 // This only affects the order in which the DMA schedules 655 // channels. The DMA's bus priority is not changed. If the DMA is 656 // not saturated then a low priority channel will see no loss of 657 // throughput. 658 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 659 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 660 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 661 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 662 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 663 // ----------------------------------------------------------------------------- 664 // Field : DMA_CH1_CTRL_TRIG_EN 665 // Description : DMA Channel Enable. 666 // When 1, the channel will respond to triggering events, which 667 // will cause it to become BUSY and start transferring data. When 668 // 0, the channel will ignore triggers, stop issuing transfers, 669 // and pause the current transfer sequence (i.e. BUSY will remain 670 // high if already high) 671 #define DMA_CH1_CTRL_TRIG_EN_RESET _u(0x0) 672 #define DMA_CH1_CTRL_TRIG_EN_BITS _u(0x00000001) 673 #define DMA_CH1_CTRL_TRIG_EN_MSB _u(0) 674 #define DMA_CH1_CTRL_TRIG_EN_LSB _u(0) 675 #define DMA_CH1_CTRL_TRIG_EN_ACCESS "RW" 676 // ============================================================================= 677 // Register : DMA_CH1_AL1_CTRL 678 // Description : Alias for channel 1 CTRL register 679 #define DMA_CH1_AL1_CTRL_OFFSET _u(0x00000050) 680 #define DMA_CH1_AL1_CTRL_BITS _u(0xffffffff) 681 #define DMA_CH1_AL1_CTRL_RESET "-" 682 #define DMA_CH1_AL1_CTRL_MSB _u(31) 683 #define DMA_CH1_AL1_CTRL_LSB _u(0) 684 #define DMA_CH1_AL1_CTRL_ACCESS "RW" 685 // ============================================================================= 686 // Register : DMA_CH1_AL1_READ_ADDR 687 // Description : Alias for channel 1 READ_ADDR register 688 #define DMA_CH1_AL1_READ_ADDR_OFFSET _u(0x00000054) 689 #define DMA_CH1_AL1_READ_ADDR_BITS _u(0xffffffff) 690 #define DMA_CH1_AL1_READ_ADDR_RESET "-" 691 #define DMA_CH1_AL1_READ_ADDR_MSB _u(31) 692 #define DMA_CH1_AL1_READ_ADDR_LSB _u(0) 693 #define DMA_CH1_AL1_READ_ADDR_ACCESS "RW" 694 // ============================================================================= 695 // Register : DMA_CH1_AL1_WRITE_ADDR 696 // Description : Alias for channel 1 WRITE_ADDR register 697 #define DMA_CH1_AL1_WRITE_ADDR_OFFSET _u(0x00000058) 698 #define DMA_CH1_AL1_WRITE_ADDR_BITS _u(0xffffffff) 699 #define DMA_CH1_AL1_WRITE_ADDR_RESET "-" 700 #define DMA_CH1_AL1_WRITE_ADDR_MSB _u(31) 701 #define DMA_CH1_AL1_WRITE_ADDR_LSB _u(0) 702 #define DMA_CH1_AL1_WRITE_ADDR_ACCESS "RW" 703 // ============================================================================= 704 // Register : DMA_CH1_AL1_TRANS_COUNT_TRIG 705 // Description : Alias for channel 1 TRANS_COUNT register 706 // This is a trigger register (0xc). Writing a nonzero value will 707 // reload the channel counter and start the channel. 708 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000005c) 709 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 710 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_RESET "-" 711 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_MSB _u(31) 712 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_LSB _u(0) 713 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 714 // ============================================================================= 715 // Register : DMA_CH1_AL2_CTRL 716 // Description : Alias for channel 1 CTRL register 717 #define DMA_CH1_AL2_CTRL_OFFSET _u(0x00000060) 718 #define DMA_CH1_AL2_CTRL_BITS _u(0xffffffff) 719 #define DMA_CH1_AL2_CTRL_RESET "-" 720 #define DMA_CH1_AL2_CTRL_MSB _u(31) 721 #define DMA_CH1_AL2_CTRL_LSB _u(0) 722 #define DMA_CH1_AL2_CTRL_ACCESS "RW" 723 // ============================================================================= 724 // Register : DMA_CH1_AL2_TRANS_COUNT 725 // Description : Alias for channel 1 TRANS_COUNT register 726 #define DMA_CH1_AL2_TRANS_COUNT_OFFSET _u(0x00000064) 727 #define DMA_CH1_AL2_TRANS_COUNT_BITS _u(0xffffffff) 728 #define DMA_CH1_AL2_TRANS_COUNT_RESET "-" 729 #define DMA_CH1_AL2_TRANS_COUNT_MSB _u(31) 730 #define DMA_CH1_AL2_TRANS_COUNT_LSB _u(0) 731 #define DMA_CH1_AL2_TRANS_COUNT_ACCESS "RW" 732 // ============================================================================= 733 // Register : DMA_CH1_AL2_READ_ADDR 734 // Description : Alias for channel 1 READ_ADDR register 735 #define DMA_CH1_AL2_READ_ADDR_OFFSET _u(0x00000068) 736 #define DMA_CH1_AL2_READ_ADDR_BITS _u(0xffffffff) 737 #define DMA_CH1_AL2_READ_ADDR_RESET "-" 738 #define DMA_CH1_AL2_READ_ADDR_MSB _u(31) 739 #define DMA_CH1_AL2_READ_ADDR_LSB _u(0) 740 #define DMA_CH1_AL2_READ_ADDR_ACCESS "RW" 741 // ============================================================================= 742 // Register : DMA_CH1_AL2_WRITE_ADDR_TRIG 743 // Description : Alias for channel 1 WRITE_ADDR register 744 // This is a trigger register (0xc). Writing a nonzero value will 745 // reload the channel counter and start the channel. 746 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000006c) 747 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 748 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_RESET "-" 749 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_MSB _u(31) 750 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_LSB _u(0) 751 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 752 // ============================================================================= 753 // Register : DMA_CH1_AL3_CTRL 754 // Description : Alias for channel 1 CTRL register 755 #define DMA_CH1_AL3_CTRL_OFFSET _u(0x00000070) 756 #define DMA_CH1_AL3_CTRL_BITS _u(0xffffffff) 757 #define DMA_CH1_AL3_CTRL_RESET "-" 758 #define DMA_CH1_AL3_CTRL_MSB _u(31) 759 #define DMA_CH1_AL3_CTRL_LSB _u(0) 760 #define DMA_CH1_AL3_CTRL_ACCESS "RW" 761 // ============================================================================= 762 // Register : DMA_CH1_AL3_WRITE_ADDR 763 // Description : Alias for channel 1 WRITE_ADDR register 764 #define DMA_CH1_AL3_WRITE_ADDR_OFFSET _u(0x00000074) 765 #define DMA_CH1_AL3_WRITE_ADDR_BITS _u(0xffffffff) 766 #define DMA_CH1_AL3_WRITE_ADDR_RESET "-" 767 #define DMA_CH1_AL3_WRITE_ADDR_MSB _u(31) 768 #define DMA_CH1_AL3_WRITE_ADDR_LSB _u(0) 769 #define DMA_CH1_AL3_WRITE_ADDR_ACCESS "RW" 770 // ============================================================================= 771 // Register : DMA_CH1_AL3_TRANS_COUNT 772 // Description : Alias for channel 1 TRANS_COUNT register 773 #define DMA_CH1_AL3_TRANS_COUNT_OFFSET _u(0x00000078) 774 #define DMA_CH1_AL3_TRANS_COUNT_BITS _u(0xffffffff) 775 #define DMA_CH1_AL3_TRANS_COUNT_RESET "-" 776 #define DMA_CH1_AL3_TRANS_COUNT_MSB _u(31) 777 #define DMA_CH1_AL3_TRANS_COUNT_LSB _u(0) 778 #define DMA_CH1_AL3_TRANS_COUNT_ACCESS "RW" 779 // ============================================================================= 780 // Register : DMA_CH1_AL3_READ_ADDR_TRIG 781 // Description : Alias for channel 1 READ_ADDR register 782 // This is a trigger register (0xc). Writing a nonzero value will 783 // reload the channel counter and start the channel. 784 #define DMA_CH1_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000007c) 785 #define DMA_CH1_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 786 #define DMA_CH1_AL3_READ_ADDR_TRIG_RESET "-" 787 #define DMA_CH1_AL3_READ_ADDR_TRIG_MSB _u(31) 788 #define DMA_CH1_AL3_READ_ADDR_TRIG_LSB _u(0) 789 #define DMA_CH1_AL3_READ_ADDR_TRIG_ACCESS "RW" 790 // ============================================================================= 791 // Register : DMA_CH2_READ_ADDR 792 // Description : DMA Channel 2 Read Address pointer 793 // This register updates automatically each time a read completes. 794 // The current value is the next address to be read by this 795 // channel. 796 #define DMA_CH2_READ_ADDR_OFFSET _u(0x00000080) 797 #define DMA_CH2_READ_ADDR_BITS _u(0xffffffff) 798 #define DMA_CH2_READ_ADDR_RESET _u(0x00000000) 799 #define DMA_CH2_READ_ADDR_MSB _u(31) 800 #define DMA_CH2_READ_ADDR_LSB _u(0) 801 #define DMA_CH2_READ_ADDR_ACCESS "RW" 802 // ============================================================================= 803 // Register : DMA_CH2_WRITE_ADDR 804 // Description : DMA Channel 2 Write Address pointer 805 // This register updates automatically each time a write 806 // completes. The current value is the next address to be written 807 // by this channel. 808 #define DMA_CH2_WRITE_ADDR_OFFSET _u(0x00000084) 809 #define DMA_CH2_WRITE_ADDR_BITS _u(0xffffffff) 810 #define DMA_CH2_WRITE_ADDR_RESET _u(0x00000000) 811 #define DMA_CH2_WRITE_ADDR_MSB _u(31) 812 #define DMA_CH2_WRITE_ADDR_LSB _u(0) 813 #define DMA_CH2_WRITE_ADDR_ACCESS "RW" 814 // ============================================================================= 815 // Register : DMA_CH2_TRANS_COUNT 816 // Description : DMA Channel 2 Transfer Count 817 // Program the number of bus transfers a channel will perform 818 // before halting. Note that, if transfers are larger than one 819 // byte in size, this is not equal to the number of bytes 820 // transferred (see CTRL_DATA_SIZE). 821 // 822 // When the channel is active, reading this register shows the 823 // number of transfers remaining, updating automatically each time 824 // a write transfer completes. 825 // 826 // Writing this register sets the RELOAD value for the transfer 827 // counter. Each time this channel is triggered, the RELOAD value 828 // is copied into the live transfer counter. The channel can be 829 // started multiple times, and will perform the same number of 830 // transfers each time, as programmed by most recent write. 831 // 832 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 833 // is used as a trigger, the written value is used immediately as 834 // the length of the new transfer sequence, as well as being 835 // written to RELOAD. 836 #define DMA_CH2_TRANS_COUNT_OFFSET _u(0x00000088) 837 #define DMA_CH2_TRANS_COUNT_BITS _u(0xffffffff) 838 #define DMA_CH2_TRANS_COUNT_RESET _u(0x00000000) 839 #define DMA_CH2_TRANS_COUNT_MSB _u(31) 840 #define DMA_CH2_TRANS_COUNT_LSB _u(0) 841 #define DMA_CH2_TRANS_COUNT_ACCESS "RW" 842 // ============================================================================= 843 // Register : DMA_CH2_CTRL_TRIG 844 // Description : DMA Channel 2 Control and Status 845 #define DMA_CH2_CTRL_TRIG_OFFSET _u(0x0000008c) 846 #define DMA_CH2_CTRL_TRIG_BITS _u(0xe1ffffff) 847 #define DMA_CH2_CTRL_TRIG_RESET _u(0x00000000) 848 // ----------------------------------------------------------------------------- 849 // Field : DMA_CH2_CTRL_TRIG_AHB_ERROR 850 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 851 // halts when it encounters any bus error, and always raises its 852 // channel IRQ flag. 853 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 854 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 855 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_MSB _u(31) 856 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_LSB _u(31) 857 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 858 // ----------------------------------------------------------------------------- 859 // Field : DMA_CH2_CTRL_TRIG_READ_ERROR 860 // Description : If 1, the channel received a read bus error. Write one to 861 // clear. 862 // READ_ADDR shows the approximate address where the bus error was 863 // encountered (will not be earlier, or more than 3 transfers 864 // later) 865 #define DMA_CH2_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 866 #define DMA_CH2_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 867 #define DMA_CH2_CTRL_TRIG_READ_ERROR_MSB _u(30) 868 #define DMA_CH2_CTRL_TRIG_READ_ERROR_LSB _u(30) 869 #define DMA_CH2_CTRL_TRIG_READ_ERROR_ACCESS "WC" 870 // ----------------------------------------------------------------------------- 871 // Field : DMA_CH2_CTRL_TRIG_WRITE_ERROR 872 // Description : If 1, the channel received a write bus error. Write one to 873 // clear. 874 // WRITE_ADDR shows the approximate address where the bus error 875 // was encountered (will not be earlier, or more than 5 transfers 876 // later) 877 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 878 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 879 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 880 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 881 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 882 // ----------------------------------------------------------------------------- 883 // Field : DMA_CH2_CTRL_TRIG_BUSY 884 // Description : This flag goes high when the channel starts a new transfer 885 // sequence, and low when the last transfer of that sequence 886 // completes. Clearing EN while BUSY is high pauses the channel, 887 // and BUSY will stay high while paused. 888 // 889 // To terminate a sequence early (and clear the BUSY flag), see 890 // CHAN_ABORT. 891 #define DMA_CH2_CTRL_TRIG_BUSY_RESET _u(0x0) 892 #define DMA_CH2_CTRL_TRIG_BUSY_BITS _u(0x01000000) 893 #define DMA_CH2_CTRL_TRIG_BUSY_MSB _u(24) 894 #define DMA_CH2_CTRL_TRIG_BUSY_LSB _u(24) 895 #define DMA_CH2_CTRL_TRIG_BUSY_ACCESS "RO" 896 // ----------------------------------------------------------------------------- 897 // Field : DMA_CH2_CTRL_TRIG_SNIFF_EN 898 // Description : If 1, this channel's data transfers are visible to the sniff 899 // hardware, and each transfer will advance the state of the 900 // checksum. This only applies if the sniff hardware is enabled, 901 // and has this channel selected. 902 // 903 // This allows checksum to be enabled or disabled on a 904 // per-control- block basis. 905 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 906 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 907 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_MSB _u(23) 908 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_LSB _u(23) 909 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 910 // ----------------------------------------------------------------------------- 911 // Field : DMA_CH2_CTRL_TRIG_BSWAP 912 // Description : Apply byte-swap transformation to DMA data. 913 // For byte data, this has no effect. For halfword data, the two 914 // bytes of each halfword are swapped. For word data, the four 915 // bytes of each word are swapped to reverse order. 916 #define DMA_CH2_CTRL_TRIG_BSWAP_RESET _u(0x0) 917 #define DMA_CH2_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 918 #define DMA_CH2_CTRL_TRIG_BSWAP_MSB _u(22) 919 #define DMA_CH2_CTRL_TRIG_BSWAP_LSB _u(22) 920 #define DMA_CH2_CTRL_TRIG_BSWAP_ACCESS "RW" 921 // ----------------------------------------------------------------------------- 922 // Field : DMA_CH2_CTRL_TRIG_IRQ_QUIET 923 // Description : In QUIET mode, the channel does not generate IRQs at the end of 924 // every transfer block. Instead, an IRQ is raised when NULL is 925 // written to a trigger register, indicating the end of a control 926 // block chain. 927 // 928 // This reduces the number of interrupts to be serviced by the CPU 929 // when transferring a DMA chain of many small control blocks. 930 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 931 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 932 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 933 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 934 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 935 // ----------------------------------------------------------------------------- 936 // Field : DMA_CH2_CTRL_TRIG_TREQ_SEL 937 // Description : Select a Transfer Request signal. 938 // The channel uses the transfer request signal to pace its data 939 // transfer rate. Sources for TREQ signals are internal (TIMERS) 940 // or external (DREQ, a Data Request from the system). 941 // 0x0 to 0x3a -> select DREQ n as TREQ 942 // 0x3b -> Select Timer 0 as TREQ 943 // 0x3c -> Select Timer 1 as TREQ 944 // 0x3d -> Select Timer 2 as TREQ (Optional) 945 // 0x3e -> Select Timer 3 as TREQ (Optional) 946 // 0x3f -> Permanent request, for unpaced transfers. 947 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 948 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 949 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_MSB _u(20) 950 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_LSB _u(15) 951 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 952 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 953 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 954 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 955 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 956 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 957 // ----------------------------------------------------------------------------- 958 // Field : DMA_CH2_CTRL_TRIG_CHAIN_TO 959 // Description : When this channel completes, it will trigger the channel 960 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 961 // channel)_. 962 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 963 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 964 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_MSB _u(14) 965 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_LSB _u(11) 966 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 967 // ----------------------------------------------------------------------------- 968 // Field : DMA_CH2_CTRL_TRIG_RING_SEL 969 // Description : Select whether RING_SIZE applies to read or write addresses. 970 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 971 // boundary. If 1, write addresses are wrapped. 972 #define DMA_CH2_CTRL_TRIG_RING_SEL_RESET _u(0x0) 973 #define DMA_CH2_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 974 #define DMA_CH2_CTRL_TRIG_RING_SEL_MSB _u(10) 975 #define DMA_CH2_CTRL_TRIG_RING_SEL_LSB _u(10) 976 #define DMA_CH2_CTRL_TRIG_RING_SEL_ACCESS "RW" 977 // ----------------------------------------------------------------------------- 978 // Field : DMA_CH2_CTRL_TRIG_RING_SIZE 979 // Description : Size of address wrap region. If 0, don't wrap. For values n > 980 // 0, only the lower n bits of the address will change. This wraps 981 // the address on a (1 << n) byte boundary, facilitating access to 982 // naturally-aligned ring buffers. 983 // 984 // Ring sizes between 2 and 32768 bytes are possible. This can 985 // apply to either read or write addresses, based on value of 986 // RING_SEL. 987 // 0x0 -> RING_NONE 988 #define DMA_CH2_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 989 #define DMA_CH2_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 990 #define DMA_CH2_CTRL_TRIG_RING_SIZE_MSB _u(9) 991 #define DMA_CH2_CTRL_TRIG_RING_SIZE_LSB _u(6) 992 #define DMA_CH2_CTRL_TRIG_RING_SIZE_ACCESS "RW" 993 #define DMA_CH2_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 994 // ----------------------------------------------------------------------------- 995 // Field : DMA_CH2_CTRL_TRIG_INCR_WRITE 996 // Description : If 1, the write address increments with each transfer. If 0, 997 // each write is directed to the same, initial address. 998 // 999 // Generally this should be disabled for memory-to-peripheral 1000 // transfers. 1001 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 1002 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 1003 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_MSB _u(5) 1004 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_LSB _u(5) 1005 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 1006 // ----------------------------------------------------------------------------- 1007 // Field : DMA_CH2_CTRL_TRIG_INCR_READ 1008 // Description : If 1, the read address increments with each transfer. If 0, 1009 // each read is directed to the same, initial address. 1010 // 1011 // Generally this should be disabled for peripheral-to-memory 1012 // transfers. 1013 #define DMA_CH2_CTRL_TRIG_INCR_READ_RESET _u(0x0) 1014 #define DMA_CH2_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 1015 #define DMA_CH2_CTRL_TRIG_INCR_READ_MSB _u(4) 1016 #define DMA_CH2_CTRL_TRIG_INCR_READ_LSB _u(4) 1017 #define DMA_CH2_CTRL_TRIG_INCR_READ_ACCESS "RW" 1018 // ----------------------------------------------------------------------------- 1019 // Field : DMA_CH2_CTRL_TRIG_DATA_SIZE 1020 // Description : Set the size of each bus transfer (byte/halfword/word). 1021 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 1022 // with each transfer. 1023 // 0x0 -> SIZE_BYTE 1024 // 0x1 -> SIZE_HALFWORD 1025 // 0x2 -> SIZE_WORD 1026 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 1027 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 1028 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_MSB _u(3) 1029 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_LSB _u(2) 1030 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 1031 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 1032 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 1033 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 1034 // ----------------------------------------------------------------------------- 1035 // Field : DMA_CH2_CTRL_TRIG_HIGH_PRIORITY 1036 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 1037 // scheduling: in each scheduling round, all high priority 1038 // channels are considered first, and then only a single low 1039 // priority channel, before returning to the high priority 1040 // channels. 1041 // 1042 // This only affects the order in which the DMA schedules 1043 // channels. The DMA's bus priority is not changed. If the DMA is 1044 // not saturated then a low priority channel will see no loss of 1045 // throughput. 1046 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 1047 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 1048 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 1049 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 1050 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 1051 // ----------------------------------------------------------------------------- 1052 // Field : DMA_CH2_CTRL_TRIG_EN 1053 // Description : DMA Channel Enable. 1054 // When 1, the channel will respond to triggering events, which 1055 // will cause it to become BUSY and start transferring data. When 1056 // 0, the channel will ignore triggers, stop issuing transfers, 1057 // and pause the current transfer sequence (i.e. BUSY will remain 1058 // high if already high) 1059 #define DMA_CH2_CTRL_TRIG_EN_RESET _u(0x0) 1060 #define DMA_CH2_CTRL_TRIG_EN_BITS _u(0x00000001) 1061 #define DMA_CH2_CTRL_TRIG_EN_MSB _u(0) 1062 #define DMA_CH2_CTRL_TRIG_EN_LSB _u(0) 1063 #define DMA_CH2_CTRL_TRIG_EN_ACCESS "RW" 1064 // ============================================================================= 1065 // Register : DMA_CH2_AL1_CTRL 1066 // Description : Alias for channel 2 CTRL register 1067 #define DMA_CH2_AL1_CTRL_OFFSET _u(0x00000090) 1068 #define DMA_CH2_AL1_CTRL_BITS _u(0xffffffff) 1069 #define DMA_CH2_AL1_CTRL_RESET "-" 1070 #define DMA_CH2_AL1_CTRL_MSB _u(31) 1071 #define DMA_CH2_AL1_CTRL_LSB _u(0) 1072 #define DMA_CH2_AL1_CTRL_ACCESS "RW" 1073 // ============================================================================= 1074 // Register : DMA_CH2_AL1_READ_ADDR 1075 // Description : Alias for channel 2 READ_ADDR register 1076 #define DMA_CH2_AL1_READ_ADDR_OFFSET _u(0x00000094) 1077 #define DMA_CH2_AL1_READ_ADDR_BITS _u(0xffffffff) 1078 #define DMA_CH2_AL1_READ_ADDR_RESET "-" 1079 #define DMA_CH2_AL1_READ_ADDR_MSB _u(31) 1080 #define DMA_CH2_AL1_READ_ADDR_LSB _u(0) 1081 #define DMA_CH2_AL1_READ_ADDR_ACCESS "RW" 1082 // ============================================================================= 1083 // Register : DMA_CH2_AL1_WRITE_ADDR 1084 // Description : Alias for channel 2 WRITE_ADDR register 1085 #define DMA_CH2_AL1_WRITE_ADDR_OFFSET _u(0x00000098) 1086 #define DMA_CH2_AL1_WRITE_ADDR_BITS _u(0xffffffff) 1087 #define DMA_CH2_AL1_WRITE_ADDR_RESET "-" 1088 #define DMA_CH2_AL1_WRITE_ADDR_MSB _u(31) 1089 #define DMA_CH2_AL1_WRITE_ADDR_LSB _u(0) 1090 #define DMA_CH2_AL1_WRITE_ADDR_ACCESS "RW" 1091 // ============================================================================= 1092 // Register : DMA_CH2_AL1_TRANS_COUNT_TRIG 1093 // Description : Alias for channel 2 TRANS_COUNT register 1094 // This is a trigger register (0xc). Writing a nonzero value will 1095 // reload the channel counter and start the channel. 1096 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000009c) 1097 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 1098 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_RESET "-" 1099 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_MSB _u(31) 1100 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_LSB _u(0) 1101 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 1102 // ============================================================================= 1103 // Register : DMA_CH2_AL2_CTRL 1104 // Description : Alias for channel 2 CTRL register 1105 #define DMA_CH2_AL2_CTRL_OFFSET _u(0x000000a0) 1106 #define DMA_CH2_AL2_CTRL_BITS _u(0xffffffff) 1107 #define DMA_CH2_AL2_CTRL_RESET "-" 1108 #define DMA_CH2_AL2_CTRL_MSB _u(31) 1109 #define DMA_CH2_AL2_CTRL_LSB _u(0) 1110 #define DMA_CH2_AL2_CTRL_ACCESS "RW" 1111 // ============================================================================= 1112 // Register : DMA_CH2_AL2_TRANS_COUNT 1113 // Description : Alias for channel 2 TRANS_COUNT register 1114 #define DMA_CH2_AL2_TRANS_COUNT_OFFSET _u(0x000000a4) 1115 #define DMA_CH2_AL2_TRANS_COUNT_BITS _u(0xffffffff) 1116 #define DMA_CH2_AL2_TRANS_COUNT_RESET "-" 1117 #define DMA_CH2_AL2_TRANS_COUNT_MSB _u(31) 1118 #define DMA_CH2_AL2_TRANS_COUNT_LSB _u(0) 1119 #define DMA_CH2_AL2_TRANS_COUNT_ACCESS "RW" 1120 // ============================================================================= 1121 // Register : DMA_CH2_AL2_READ_ADDR 1122 // Description : Alias for channel 2 READ_ADDR register 1123 #define DMA_CH2_AL2_READ_ADDR_OFFSET _u(0x000000a8) 1124 #define DMA_CH2_AL2_READ_ADDR_BITS _u(0xffffffff) 1125 #define DMA_CH2_AL2_READ_ADDR_RESET "-" 1126 #define DMA_CH2_AL2_READ_ADDR_MSB _u(31) 1127 #define DMA_CH2_AL2_READ_ADDR_LSB _u(0) 1128 #define DMA_CH2_AL2_READ_ADDR_ACCESS "RW" 1129 // ============================================================================= 1130 // Register : DMA_CH2_AL2_WRITE_ADDR_TRIG 1131 // Description : Alias for channel 2 WRITE_ADDR register 1132 // This is a trigger register (0xc). Writing a nonzero value will 1133 // reload the channel counter and start the channel. 1134 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ac) 1135 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 1136 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_RESET "-" 1137 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_MSB _u(31) 1138 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_LSB _u(0) 1139 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 1140 // ============================================================================= 1141 // Register : DMA_CH2_AL3_CTRL 1142 // Description : Alias for channel 2 CTRL register 1143 #define DMA_CH2_AL3_CTRL_OFFSET _u(0x000000b0) 1144 #define DMA_CH2_AL3_CTRL_BITS _u(0xffffffff) 1145 #define DMA_CH2_AL3_CTRL_RESET "-" 1146 #define DMA_CH2_AL3_CTRL_MSB _u(31) 1147 #define DMA_CH2_AL3_CTRL_LSB _u(0) 1148 #define DMA_CH2_AL3_CTRL_ACCESS "RW" 1149 // ============================================================================= 1150 // Register : DMA_CH2_AL3_WRITE_ADDR 1151 // Description : Alias for channel 2 WRITE_ADDR register 1152 #define DMA_CH2_AL3_WRITE_ADDR_OFFSET _u(0x000000b4) 1153 #define DMA_CH2_AL3_WRITE_ADDR_BITS _u(0xffffffff) 1154 #define DMA_CH2_AL3_WRITE_ADDR_RESET "-" 1155 #define DMA_CH2_AL3_WRITE_ADDR_MSB _u(31) 1156 #define DMA_CH2_AL3_WRITE_ADDR_LSB _u(0) 1157 #define DMA_CH2_AL3_WRITE_ADDR_ACCESS "RW" 1158 // ============================================================================= 1159 // Register : DMA_CH2_AL3_TRANS_COUNT 1160 // Description : Alias for channel 2 TRANS_COUNT register 1161 #define DMA_CH2_AL3_TRANS_COUNT_OFFSET _u(0x000000b8) 1162 #define DMA_CH2_AL3_TRANS_COUNT_BITS _u(0xffffffff) 1163 #define DMA_CH2_AL3_TRANS_COUNT_RESET "-" 1164 #define DMA_CH2_AL3_TRANS_COUNT_MSB _u(31) 1165 #define DMA_CH2_AL3_TRANS_COUNT_LSB _u(0) 1166 #define DMA_CH2_AL3_TRANS_COUNT_ACCESS "RW" 1167 // ============================================================================= 1168 // Register : DMA_CH2_AL3_READ_ADDR_TRIG 1169 // Description : Alias for channel 2 READ_ADDR register 1170 // This is a trigger register (0xc). Writing a nonzero value will 1171 // reload the channel counter and start the channel. 1172 #define DMA_CH2_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000bc) 1173 #define DMA_CH2_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 1174 #define DMA_CH2_AL3_READ_ADDR_TRIG_RESET "-" 1175 #define DMA_CH2_AL3_READ_ADDR_TRIG_MSB _u(31) 1176 #define DMA_CH2_AL3_READ_ADDR_TRIG_LSB _u(0) 1177 #define DMA_CH2_AL3_READ_ADDR_TRIG_ACCESS "RW" 1178 // ============================================================================= 1179 // Register : DMA_CH3_READ_ADDR 1180 // Description : DMA Channel 3 Read Address pointer 1181 // This register updates automatically each time a read completes. 1182 // The current value is the next address to be read by this 1183 // channel. 1184 #define DMA_CH3_READ_ADDR_OFFSET _u(0x000000c0) 1185 #define DMA_CH3_READ_ADDR_BITS _u(0xffffffff) 1186 #define DMA_CH3_READ_ADDR_RESET _u(0x00000000) 1187 #define DMA_CH3_READ_ADDR_MSB _u(31) 1188 #define DMA_CH3_READ_ADDR_LSB _u(0) 1189 #define DMA_CH3_READ_ADDR_ACCESS "RW" 1190 // ============================================================================= 1191 // Register : DMA_CH3_WRITE_ADDR 1192 // Description : DMA Channel 3 Write Address pointer 1193 // This register updates automatically each time a write 1194 // completes. The current value is the next address to be written 1195 // by this channel. 1196 #define DMA_CH3_WRITE_ADDR_OFFSET _u(0x000000c4) 1197 #define DMA_CH3_WRITE_ADDR_BITS _u(0xffffffff) 1198 #define DMA_CH3_WRITE_ADDR_RESET _u(0x00000000) 1199 #define DMA_CH3_WRITE_ADDR_MSB _u(31) 1200 #define DMA_CH3_WRITE_ADDR_LSB _u(0) 1201 #define DMA_CH3_WRITE_ADDR_ACCESS "RW" 1202 // ============================================================================= 1203 // Register : DMA_CH3_TRANS_COUNT 1204 // Description : DMA Channel 3 Transfer Count 1205 // Program the number of bus transfers a channel will perform 1206 // before halting. Note that, if transfers are larger than one 1207 // byte in size, this is not equal to the number of bytes 1208 // transferred (see CTRL_DATA_SIZE). 1209 // 1210 // When the channel is active, reading this register shows the 1211 // number of transfers remaining, updating automatically each time 1212 // a write transfer completes. 1213 // 1214 // Writing this register sets the RELOAD value for the transfer 1215 // counter. Each time this channel is triggered, the RELOAD value 1216 // is copied into the live transfer counter. The channel can be 1217 // started multiple times, and will perform the same number of 1218 // transfers each time, as programmed by most recent write. 1219 // 1220 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1221 // is used as a trigger, the written value is used immediately as 1222 // the length of the new transfer sequence, as well as being 1223 // written to RELOAD. 1224 #define DMA_CH3_TRANS_COUNT_OFFSET _u(0x000000c8) 1225 #define DMA_CH3_TRANS_COUNT_BITS _u(0xffffffff) 1226 #define DMA_CH3_TRANS_COUNT_RESET _u(0x00000000) 1227 #define DMA_CH3_TRANS_COUNT_MSB _u(31) 1228 #define DMA_CH3_TRANS_COUNT_LSB _u(0) 1229 #define DMA_CH3_TRANS_COUNT_ACCESS "RW" 1230 // ============================================================================= 1231 // Register : DMA_CH3_CTRL_TRIG 1232 // Description : DMA Channel 3 Control and Status 1233 #define DMA_CH3_CTRL_TRIG_OFFSET _u(0x000000cc) 1234 #define DMA_CH3_CTRL_TRIG_BITS _u(0xe1ffffff) 1235 #define DMA_CH3_CTRL_TRIG_RESET _u(0x00000000) 1236 // ----------------------------------------------------------------------------- 1237 // Field : DMA_CH3_CTRL_TRIG_AHB_ERROR 1238 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 1239 // halts when it encounters any bus error, and always raises its 1240 // channel IRQ flag. 1241 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 1242 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 1243 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_MSB _u(31) 1244 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_LSB _u(31) 1245 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 1246 // ----------------------------------------------------------------------------- 1247 // Field : DMA_CH3_CTRL_TRIG_READ_ERROR 1248 // Description : If 1, the channel received a read bus error. Write one to 1249 // clear. 1250 // READ_ADDR shows the approximate address where the bus error was 1251 // encountered (will not be earlier, or more than 3 transfers 1252 // later) 1253 #define DMA_CH3_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 1254 #define DMA_CH3_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 1255 #define DMA_CH3_CTRL_TRIG_READ_ERROR_MSB _u(30) 1256 #define DMA_CH3_CTRL_TRIG_READ_ERROR_LSB _u(30) 1257 #define DMA_CH3_CTRL_TRIG_READ_ERROR_ACCESS "WC" 1258 // ----------------------------------------------------------------------------- 1259 // Field : DMA_CH3_CTRL_TRIG_WRITE_ERROR 1260 // Description : If 1, the channel received a write bus error. Write one to 1261 // clear. 1262 // WRITE_ADDR shows the approximate address where the bus error 1263 // was encountered (will not be earlier, or more than 5 transfers 1264 // later) 1265 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 1266 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 1267 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 1268 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 1269 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 1270 // ----------------------------------------------------------------------------- 1271 // Field : DMA_CH3_CTRL_TRIG_BUSY 1272 // Description : This flag goes high when the channel starts a new transfer 1273 // sequence, and low when the last transfer of that sequence 1274 // completes. Clearing EN while BUSY is high pauses the channel, 1275 // and BUSY will stay high while paused. 1276 // 1277 // To terminate a sequence early (and clear the BUSY flag), see 1278 // CHAN_ABORT. 1279 #define DMA_CH3_CTRL_TRIG_BUSY_RESET _u(0x0) 1280 #define DMA_CH3_CTRL_TRIG_BUSY_BITS _u(0x01000000) 1281 #define DMA_CH3_CTRL_TRIG_BUSY_MSB _u(24) 1282 #define DMA_CH3_CTRL_TRIG_BUSY_LSB _u(24) 1283 #define DMA_CH3_CTRL_TRIG_BUSY_ACCESS "RO" 1284 // ----------------------------------------------------------------------------- 1285 // Field : DMA_CH3_CTRL_TRIG_SNIFF_EN 1286 // Description : If 1, this channel's data transfers are visible to the sniff 1287 // hardware, and each transfer will advance the state of the 1288 // checksum. This only applies if the sniff hardware is enabled, 1289 // and has this channel selected. 1290 // 1291 // This allows checksum to be enabled or disabled on a 1292 // per-control- block basis. 1293 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 1294 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 1295 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_MSB _u(23) 1296 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_LSB _u(23) 1297 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 1298 // ----------------------------------------------------------------------------- 1299 // Field : DMA_CH3_CTRL_TRIG_BSWAP 1300 // Description : Apply byte-swap transformation to DMA data. 1301 // For byte data, this has no effect. For halfword data, the two 1302 // bytes of each halfword are swapped. For word data, the four 1303 // bytes of each word are swapped to reverse order. 1304 #define DMA_CH3_CTRL_TRIG_BSWAP_RESET _u(0x0) 1305 #define DMA_CH3_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 1306 #define DMA_CH3_CTRL_TRIG_BSWAP_MSB _u(22) 1307 #define DMA_CH3_CTRL_TRIG_BSWAP_LSB _u(22) 1308 #define DMA_CH3_CTRL_TRIG_BSWAP_ACCESS "RW" 1309 // ----------------------------------------------------------------------------- 1310 // Field : DMA_CH3_CTRL_TRIG_IRQ_QUIET 1311 // Description : In QUIET mode, the channel does not generate IRQs at the end of 1312 // every transfer block. Instead, an IRQ is raised when NULL is 1313 // written to a trigger register, indicating the end of a control 1314 // block chain. 1315 // 1316 // This reduces the number of interrupts to be serviced by the CPU 1317 // when transferring a DMA chain of many small control blocks. 1318 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 1319 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 1320 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 1321 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 1322 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 1323 // ----------------------------------------------------------------------------- 1324 // Field : DMA_CH3_CTRL_TRIG_TREQ_SEL 1325 // Description : Select a Transfer Request signal. 1326 // The channel uses the transfer request signal to pace its data 1327 // transfer rate. Sources for TREQ signals are internal (TIMERS) 1328 // or external (DREQ, a Data Request from the system). 1329 // 0x0 to 0x3a -> select DREQ n as TREQ 1330 // 0x3b -> Select Timer 0 as TREQ 1331 // 0x3c -> Select Timer 1 as TREQ 1332 // 0x3d -> Select Timer 2 as TREQ (Optional) 1333 // 0x3e -> Select Timer 3 as TREQ (Optional) 1334 // 0x3f -> Permanent request, for unpaced transfers. 1335 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 1336 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 1337 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_MSB _u(20) 1338 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_LSB _u(15) 1339 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 1340 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 1341 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 1342 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 1343 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 1344 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 1345 // ----------------------------------------------------------------------------- 1346 // Field : DMA_CH3_CTRL_TRIG_CHAIN_TO 1347 // Description : When this channel completes, it will trigger the channel 1348 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 1349 // channel)_. 1350 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 1351 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 1352 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_MSB _u(14) 1353 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_LSB _u(11) 1354 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 1355 // ----------------------------------------------------------------------------- 1356 // Field : DMA_CH3_CTRL_TRIG_RING_SEL 1357 // Description : Select whether RING_SIZE applies to read or write addresses. 1358 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 1359 // boundary. If 1, write addresses are wrapped. 1360 #define DMA_CH3_CTRL_TRIG_RING_SEL_RESET _u(0x0) 1361 #define DMA_CH3_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 1362 #define DMA_CH3_CTRL_TRIG_RING_SEL_MSB _u(10) 1363 #define DMA_CH3_CTRL_TRIG_RING_SEL_LSB _u(10) 1364 #define DMA_CH3_CTRL_TRIG_RING_SEL_ACCESS "RW" 1365 // ----------------------------------------------------------------------------- 1366 // Field : DMA_CH3_CTRL_TRIG_RING_SIZE 1367 // Description : Size of address wrap region. If 0, don't wrap. For values n > 1368 // 0, only the lower n bits of the address will change. This wraps 1369 // the address on a (1 << n) byte boundary, facilitating access to 1370 // naturally-aligned ring buffers. 1371 // 1372 // Ring sizes between 2 and 32768 bytes are possible. This can 1373 // apply to either read or write addresses, based on value of 1374 // RING_SEL. 1375 // 0x0 -> RING_NONE 1376 #define DMA_CH3_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 1377 #define DMA_CH3_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 1378 #define DMA_CH3_CTRL_TRIG_RING_SIZE_MSB _u(9) 1379 #define DMA_CH3_CTRL_TRIG_RING_SIZE_LSB _u(6) 1380 #define DMA_CH3_CTRL_TRIG_RING_SIZE_ACCESS "RW" 1381 #define DMA_CH3_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 1382 // ----------------------------------------------------------------------------- 1383 // Field : DMA_CH3_CTRL_TRIG_INCR_WRITE 1384 // Description : If 1, the write address increments with each transfer. If 0, 1385 // each write is directed to the same, initial address. 1386 // 1387 // Generally this should be disabled for memory-to-peripheral 1388 // transfers. 1389 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 1390 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 1391 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_MSB _u(5) 1392 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_LSB _u(5) 1393 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 1394 // ----------------------------------------------------------------------------- 1395 // Field : DMA_CH3_CTRL_TRIG_INCR_READ 1396 // Description : If 1, the read address increments with each transfer. If 0, 1397 // each read is directed to the same, initial address. 1398 // 1399 // Generally this should be disabled for peripheral-to-memory 1400 // transfers. 1401 #define DMA_CH3_CTRL_TRIG_INCR_READ_RESET _u(0x0) 1402 #define DMA_CH3_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 1403 #define DMA_CH3_CTRL_TRIG_INCR_READ_MSB _u(4) 1404 #define DMA_CH3_CTRL_TRIG_INCR_READ_LSB _u(4) 1405 #define DMA_CH3_CTRL_TRIG_INCR_READ_ACCESS "RW" 1406 // ----------------------------------------------------------------------------- 1407 // Field : DMA_CH3_CTRL_TRIG_DATA_SIZE 1408 // Description : Set the size of each bus transfer (byte/halfword/word). 1409 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 1410 // with each transfer. 1411 // 0x0 -> SIZE_BYTE 1412 // 0x1 -> SIZE_HALFWORD 1413 // 0x2 -> SIZE_WORD 1414 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 1415 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 1416 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_MSB _u(3) 1417 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_LSB _u(2) 1418 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 1419 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 1420 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 1421 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 1422 // ----------------------------------------------------------------------------- 1423 // Field : DMA_CH3_CTRL_TRIG_HIGH_PRIORITY 1424 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 1425 // scheduling: in each scheduling round, all high priority 1426 // channels are considered first, and then only a single low 1427 // priority channel, before returning to the high priority 1428 // channels. 1429 // 1430 // This only affects the order in which the DMA schedules 1431 // channels. The DMA's bus priority is not changed. If the DMA is 1432 // not saturated then a low priority channel will see no loss of 1433 // throughput. 1434 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 1435 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 1436 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 1437 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 1438 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 1439 // ----------------------------------------------------------------------------- 1440 // Field : DMA_CH3_CTRL_TRIG_EN 1441 // Description : DMA Channel Enable. 1442 // When 1, the channel will respond to triggering events, which 1443 // will cause it to become BUSY and start transferring data. When 1444 // 0, the channel will ignore triggers, stop issuing transfers, 1445 // and pause the current transfer sequence (i.e. BUSY will remain 1446 // high if already high) 1447 #define DMA_CH3_CTRL_TRIG_EN_RESET _u(0x0) 1448 #define DMA_CH3_CTRL_TRIG_EN_BITS _u(0x00000001) 1449 #define DMA_CH3_CTRL_TRIG_EN_MSB _u(0) 1450 #define DMA_CH3_CTRL_TRIG_EN_LSB _u(0) 1451 #define DMA_CH3_CTRL_TRIG_EN_ACCESS "RW" 1452 // ============================================================================= 1453 // Register : DMA_CH3_AL1_CTRL 1454 // Description : Alias for channel 3 CTRL register 1455 #define DMA_CH3_AL1_CTRL_OFFSET _u(0x000000d0) 1456 #define DMA_CH3_AL1_CTRL_BITS _u(0xffffffff) 1457 #define DMA_CH3_AL1_CTRL_RESET "-" 1458 #define DMA_CH3_AL1_CTRL_MSB _u(31) 1459 #define DMA_CH3_AL1_CTRL_LSB _u(0) 1460 #define DMA_CH3_AL1_CTRL_ACCESS "RW" 1461 // ============================================================================= 1462 // Register : DMA_CH3_AL1_READ_ADDR 1463 // Description : Alias for channel 3 READ_ADDR register 1464 #define DMA_CH3_AL1_READ_ADDR_OFFSET _u(0x000000d4) 1465 #define DMA_CH3_AL1_READ_ADDR_BITS _u(0xffffffff) 1466 #define DMA_CH3_AL1_READ_ADDR_RESET "-" 1467 #define DMA_CH3_AL1_READ_ADDR_MSB _u(31) 1468 #define DMA_CH3_AL1_READ_ADDR_LSB _u(0) 1469 #define DMA_CH3_AL1_READ_ADDR_ACCESS "RW" 1470 // ============================================================================= 1471 // Register : DMA_CH3_AL1_WRITE_ADDR 1472 // Description : Alias for channel 3 WRITE_ADDR register 1473 #define DMA_CH3_AL1_WRITE_ADDR_OFFSET _u(0x000000d8) 1474 #define DMA_CH3_AL1_WRITE_ADDR_BITS _u(0xffffffff) 1475 #define DMA_CH3_AL1_WRITE_ADDR_RESET "-" 1476 #define DMA_CH3_AL1_WRITE_ADDR_MSB _u(31) 1477 #define DMA_CH3_AL1_WRITE_ADDR_LSB _u(0) 1478 #define DMA_CH3_AL1_WRITE_ADDR_ACCESS "RW" 1479 // ============================================================================= 1480 // Register : DMA_CH3_AL1_TRANS_COUNT_TRIG 1481 // Description : Alias for channel 3 TRANS_COUNT register 1482 // This is a trigger register (0xc). Writing a nonzero value will 1483 // reload the channel counter and start the channel. 1484 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000000dc) 1485 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 1486 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_RESET "-" 1487 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_MSB _u(31) 1488 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_LSB _u(0) 1489 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 1490 // ============================================================================= 1491 // Register : DMA_CH3_AL2_CTRL 1492 // Description : Alias for channel 3 CTRL register 1493 #define DMA_CH3_AL2_CTRL_OFFSET _u(0x000000e0) 1494 #define DMA_CH3_AL2_CTRL_BITS _u(0xffffffff) 1495 #define DMA_CH3_AL2_CTRL_RESET "-" 1496 #define DMA_CH3_AL2_CTRL_MSB _u(31) 1497 #define DMA_CH3_AL2_CTRL_LSB _u(0) 1498 #define DMA_CH3_AL2_CTRL_ACCESS "RW" 1499 // ============================================================================= 1500 // Register : DMA_CH3_AL2_TRANS_COUNT 1501 // Description : Alias for channel 3 TRANS_COUNT register 1502 #define DMA_CH3_AL2_TRANS_COUNT_OFFSET _u(0x000000e4) 1503 #define DMA_CH3_AL2_TRANS_COUNT_BITS _u(0xffffffff) 1504 #define DMA_CH3_AL2_TRANS_COUNT_RESET "-" 1505 #define DMA_CH3_AL2_TRANS_COUNT_MSB _u(31) 1506 #define DMA_CH3_AL2_TRANS_COUNT_LSB _u(0) 1507 #define DMA_CH3_AL2_TRANS_COUNT_ACCESS "RW" 1508 // ============================================================================= 1509 // Register : DMA_CH3_AL2_READ_ADDR 1510 // Description : Alias for channel 3 READ_ADDR register 1511 #define DMA_CH3_AL2_READ_ADDR_OFFSET _u(0x000000e8) 1512 #define DMA_CH3_AL2_READ_ADDR_BITS _u(0xffffffff) 1513 #define DMA_CH3_AL2_READ_ADDR_RESET "-" 1514 #define DMA_CH3_AL2_READ_ADDR_MSB _u(31) 1515 #define DMA_CH3_AL2_READ_ADDR_LSB _u(0) 1516 #define DMA_CH3_AL2_READ_ADDR_ACCESS "RW" 1517 // ============================================================================= 1518 // Register : DMA_CH3_AL2_WRITE_ADDR_TRIG 1519 // Description : Alias for channel 3 WRITE_ADDR register 1520 // This is a trigger register (0xc). Writing a nonzero value will 1521 // reload the channel counter and start the channel. 1522 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ec) 1523 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 1524 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_RESET "-" 1525 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_MSB _u(31) 1526 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_LSB _u(0) 1527 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 1528 // ============================================================================= 1529 // Register : DMA_CH3_AL3_CTRL 1530 // Description : Alias for channel 3 CTRL register 1531 #define DMA_CH3_AL3_CTRL_OFFSET _u(0x000000f0) 1532 #define DMA_CH3_AL3_CTRL_BITS _u(0xffffffff) 1533 #define DMA_CH3_AL3_CTRL_RESET "-" 1534 #define DMA_CH3_AL3_CTRL_MSB _u(31) 1535 #define DMA_CH3_AL3_CTRL_LSB _u(0) 1536 #define DMA_CH3_AL3_CTRL_ACCESS "RW" 1537 // ============================================================================= 1538 // Register : DMA_CH3_AL3_WRITE_ADDR 1539 // Description : Alias for channel 3 WRITE_ADDR register 1540 #define DMA_CH3_AL3_WRITE_ADDR_OFFSET _u(0x000000f4) 1541 #define DMA_CH3_AL3_WRITE_ADDR_BITS _u(0xffffffff) 1542 #define DMA_CH3_AL3_WRITE_ADDR_RESET "-" 1543 #define DMA_CH3_AL3_WRITE_ADDR_MSB _u(31) 1544 #define DMA_CH3_AL3_WRITE_ADDR_LSB _u(0) 1545 #define DMA_CH3_AL3_WRITE_ADDR_ACCESS "RW" 1546 // ============================================================================= 1547 // Register : DMA_CH3_AL3_TRANS_COUNT 1548 // Description : Alias for channel 3 TRANS_COUNT register 1549 #define DMA_CH3_AL3_TRANS_COUNT_OFFSET _u(0x000000f8) 1550 #define DMA_CH3_AL3_TRANS_COUNT_BITS _u(0xffffffff) 1551 #define DMA_CH3_AL3_TRANS_COUNT_RESET "-" 1552 #define DMA_CH3_AL3_TRANS_COUNT_MSB _u(31) 1553 #define DMA_CH3_AL3_TRANS_COUNT_LSB _u(0) 1554 #define DMA_CH3_AL3_TRANS_COUNT_ACCESS "RW" 1555 // ============================================================================= 1556 // Register : DMA_CH3_AL3_READ_ADDR_TRIG 1557 // Description : Alias for channel 3 READ_ADDR register 1558 // This is a trigger register (0xc). Writing a nonzero value will 1559 // reload the channel counter and start the channel. 1560 #define DMA_CH3_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000fc) 1561 #define DMA_CH3_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 1562 #define DMA_CH3_AL3_READ_ADDR_TRIG_RESET "-" 1563 #define DMA_CH3_AL3_READ_ADDR_TRIG_MSB _u(31) 1564 #define DMA_CH3_AL3_READ_ADDR_TRIG_LSB _u(0) 1565 #define DMA_CH3_AL3_READ_ADDR_TRIG_ACCESS "RW" 1566 // ============================================================================= 1567 // Register : DMA_CH4_READ_ADDR 1568 // Description : DMA Channel 4 Read Address pointer 1569 // This register updates automatically each time a read completes. 1570 // The current value is the next address to be read by this 1571 // channel. 1572 #define DMA_CH4_READ_ADDR_OFFSET _u(0x00000100) 1573 #define DMA_CH4_READ_ADDR_BITS _u(0xffffffff) 1574 #define DMA_CH4_READ_ADDR_RESET _u(0x00000000) 1575 #define DMA_CH4_READ_ADDR_MSB _u(31) 1576 #define DMA_CH4_READ_ADDR_LSB _u(0) 1577 #define DMA_CH4_READ_ADDR_ACCESS "RW" 1578 // ============================================================================= 1579 // Register : DMA_CH4_WRITE_ADDR 1580 // Description : DMA Channel 4 Write Address pointer 1581 // This register updates automatically each time a write 1582 // completes. The current value is the next address to be written 1583 // by this channel. 1584 #define DMA_CH4_WRITE_ADDR_OFFSET _u(0x00000104) 1585 #define DMA_CH4_WRITE_ADDR_BITS _u(0xffffffff) 1586 #define DMA_CH4_WRITE_ADDR_RESET _u(0x00000000) 1587 #define DMA_CH4_WRITE_ADDR_MSB _u(31) 1588 #define DMA_CH4_WRITE_ADDR_LSB _u(0) 1589 #define DMA_CH4_WRITE_ADDR_ACCESS "RW" 1590 // ============================================================================= 1591 // Register : DMA_CH4_TRANS_COUNT 1592 // Description : DMA Channel 4 Transfer Count 1593 // Program the number of bus transfers a channel will perform 1594 // before halting. Note that, if transfers are larger than one 1595 // byte in size, this is not equal to the number of bytes 1596 // transferred (see CTRL_DATA_SIZE). 1597 // 1598 // When the channel is active, reading this register shows the 1599 // number of transfers remaining, updating automatically each time 1600 // a write transfer completes. 1601 // 1602 // Writing this register sets the RELOAD value for the transfer 1603 // counter. Each time this channel is triggered, the RELOAD value 1604 // is copied into the live transfer counter. The channel can be 1605 // started multiple times, and will perform the same number of 1606 // transfers each time, as programmed by most recent write. 1607 // 1608 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1609 // is used as a trigger, the written value is used immediately as 1610 // the length of the new transfer sequence, as well as being 1611 // written to RELOAD. 1612 #define DMA_CH4_TRANS_COUNT_OFFSET _u(0x00000108) 1613 #define DMA_CH4_TRANS_COUNT_BITS _u(0xffffffff) 1614 #define DMA_CH4_TRANS_COUNT_RESET _u(0x00000000) 1615 #define DMA_CH4_TRANS_COUNT_MSB _u(31) 1616 #define DMA_CH4_TRANS_COUNT_LSB _u(0) 1617 #define DMA_CH4_TRANS_COUNT_ACCESS "RW" 1618 // ============================================================================= 1619 // Register : DMA_CH4_CTRL_TRIG 1620 // Description : DMA Channel 4 Control and Status 1621 #define DMA_CH4_CTRL_TRIG_OFFSET _u(0x0000010c) 1622 #define DMA_CH4_CTRL_TRIG_BITS _u(0xe1ffffff) 1623 #define DMA_CH4_CTRL_TRIG_RESET _u(0x00000000) 1624 // ----------------------------------------------------------------------------- 1625 // Field : DMA_CH4_CTRL_TRIG_AHB_ERROR 1626 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 1627 // halts when it encounters any bus error, and always raises its 1628 // channel IRQ flag. 1629 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 1630 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 1631 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_MSB _u(31) 1632 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_LSB _u(31) 1633 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 1634 // ----------------------------------------------------------------------------- 1635 // Field : DMA_CH4_CTRL_TRIG_READ_ERROR 1636 // Description : If 1, the channel received a read bus error. Write one to 1637 // clear. 1638 // READ_ADDR shows the approximate address where the bus error was 1639 // encountered (will not be earlier, or more than 3 transfers 1640 // later) 1641 #define DMA_CH4_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 1642 #define DMA_CH4_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 1643 #define DMA_CH4_CTRL_TRIG_READ_ERROR_MSB _u(30) 1644 #define DMA_CH4_CTRL_TRIG_READ_ERROR_LSB _u(30) 1645 #define DMA_CH4_CTRL_TRIG_READ_ERROR_ACCESS "WC" 1646 // ----------------------------------------------------------------------------- 1647 // Field : DMA_CH4_CTRL_TRIG_WRITE_ERROR 1648 // Description : If 1, the channel received a write bus error. Write one to 1649 // clear. 1650 // WRITE_ADDR shows the approximate address where the bus error 1651 // was encountered (will not be earlier, or more than 5 transfers 1652 // later) 1653 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 1654 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 1655 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 1656 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 1657 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 1658 // ----------------------------------------------------------------------------- 1659 // Field : DMA_CH4_CTRL_TRIG_BUSY 1660 // Description : This flag goes high when the channel starts a new transfer 1661 // sequence, and low when the last transfer of that sequence 1662 // completes. Clearing EN while BUSY is high pauses the channel, 1663 // and BUSY will stay high while paused. 1664 // 1665 // To terminate a sequence early (and clear the BUSY flag), see 1666 // CHAN_ABORT. 1667 #define DMA_CH4_CTRL_TRIG_BUSY_RESET _u(0x0) 1668 #define DMA_CH4_CTRL_TRIG_BUSY_BITS _u(0x01000000) 1669 #define DMA_CH4_CTRL_TRIG_BUSY_MSB _u(24) 1670 #define DMA_CH4_CTRL_TRIG_BUSY_LSB _u(24) 1671 #define DMA_CH4_CTRL_TRIG_BUSY_ACCESS "RO" 1672 // ----------------------------------------------------------------------------- 1673 // Field : DMA_CH4_CTRL_TRIG_SNIFF_EN 1674 // Description : If 1, this channel's data transfers are visible to the sniff 1675 // hardware, and each transfer will advance the state of the 1676 // checksum. This only applies if the sniff hardware is enabled, 1677 // and has this channel selected. 1678 // 1679 // This allows checksum to be enabled or disabled on a 1680 // per-control- block basis. 1681 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 1682 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 1683 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_MSB _u(23) 1684 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_LSB _u(23) 1685 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 1686 // ----------------------------------------------------------------------------- 1687 // Field : DMA_CH4_CTRL_TRIG_BSWAP 1688 // Description : Apply byte-swap transformation to DMA data. 1689 // For byte data, this has no effect. For halfword data, the two 1690 // bytes of each halfword are swapped. For word data, the four 1691 // bytes of each word are swapped to reverse order. 1692 #define DMA_CH4_CTRL_TRIG_BSWAP_RESET _u(0x0) 1693 #define DMA_CH4_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 1694 #define DMA_CH4_CTRL_TRIG_BSWAP_MSB _u(22) 1695 #define DMA_CH4_CTRL_TRIG_BSWAP_LSB _u(22) 1696 #define DMA_CH4_CTRL_TRIG_BSWAP_ACCESS "RW" 1697 // ----------------------------------------------------------------------------- 1698 // Field : DMA_CH4_CTRL_TRIG_IRQ_QUIET 1699 // Description : In QUIET mode, the channel does not generate IRQs at the end of 1700 // every transfer block. Instead, an IRQ is raised when NULL is 1701 // written to a trigger register, indicating the end of a control 1702 // block chain. 1703 // 1704 // This reduces the number of interrupts to be serviced by the CPU 1705 // when transferring a DMA chain of many small control blocks. 1706 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 1707 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 1708 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 1709 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 1710 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 1711 // ----------------------------------------------------------------------------- 1712 // Field : DMA_CH4_CTRL_TRIG_TREQ_SEL 1713 // Description : Select a Transfer Request signal. 1714 // The channel uses the transfer request signal to pace its data 1715 // transfer rate. Sources for TREQ signals are internal (TIMERS) 1716 // or external (DREQ, a Data Request from the system). 1717 // 0x0 to 0x3a -> select DREQ n as TREQ 1718 // 0x3b -> Select Timer 0 as TREQ 1719 // 0x3c -> Select Timer 1 as TREQ 1720 // 0x3d -> Select Timer 2 as TREQ (Optional) 1721 // 0x3e -> Select Timer 3 as TREQ (Optional) 1722 // 0x3f -> Permanent request, for unpaced transfers. 1723 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 1724 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 1725 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_MSB _u(20) 1726 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_LSB _u(15) 1727 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 1728 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 1729 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 1730 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 1731 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 1732 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 1733 // ----------------------------------------------------------------------------- 1734 // Field : DMA_CH4_CTRL_TRIG_CHAIN_TO 1735 // Description : When this channel completes, it will trigger the channel 1736 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 1737 // channel)_. 1738 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 1739 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 1740 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_MSB _u(14) 1741 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_LSB _u(11) 1742 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 1743 // ----------------------------------------------------------------------------- 1744 // Field : DMA_CH4_CTRL_TRIG_RING_SEL 1745 // Description : Select whether RING_SIZE applies to read or write addresses. 1746 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 1747 // boundary. If 1, write addresses are wrapped. 1748 #define DMA_CH4_CTRL_TRIG_RING_SEL_RESET _u(0x0) 1749 #define DMA_CH4_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 1750 #define DMA_CH4_CTRL_TRIG_RING_SEL_MSB _u(10) 1751 #define DMA_CH4_CTRL_TRIG_RING_SEL_LSB _u(10) 1752 #define DMA_CH4_CTRL_TRIG_RING_SEL_ACCESS "RW" 1753 // ----------------------------------------------------------------------------- 1754 // Field : DMA_CH4_CTRL_TRIG_RING_SIZE 1755 // Description : Size of address wrap region. If 0, don't wrap. For values n > 1756 // 0, only the lower n bits of the address will change. This wraps 1757 // the address on a (1 << n) byte boundary, facilitating access to 1758 // naturally-aligned ring buffers. 1759 // 1760 // Ring sizes between 2 and 32768 bytes are possible. This can 1761 // apply to either read or write addresses, based on value of 1762 // RING_SEL. 1763 // 0x0 -> RING_NONE 1764 #define DMA_CH4_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 1765 #define DMA_CH4_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 1766 #define DMA_CH4_CTRL_TRIG_RING_SIZE_MSB _u(9) 1767 #define DMA_CH4_CTRL_TRIG_RING_SIZE_LSB _u(6) 1768 #define DMA_CH4_CTRL_TRIG_RING_SIZE_ACCESS "RW" 1769 #define DMA_CH4_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 1770 // ----------------------------------------------------------------------------- 1771 // Field : DMA_CH4_CTRL_TRIG_INCR_WRITE 1772 // Description : If 1, the write address increments with each transfer. If 0, 1773 // each write is directed to the same, initial address. 1774 // 1775 // Generally this should be disabled for memory-to-peripheral 1776 // transfers. 1777 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 1778 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 1779 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_MSB _u(5) 1780 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_LSB _u(5) 1781 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 1782 // ----------------------------------------------------------------------------- 1783 // Field : DMA_CH4_CTRL_TRIG_INCR_READ 1784 // Description : If 1, the read address increments with each transfer. If 0, 1785 // each read is directed to the same, initial address. 1786 // 1787 // Generally this should be disabled for peripheral-to-memory 1788 // transfers. 1789 #define DMA_CH4_CTRL_TRIG_INCR_READ_RESET _u(0x0) 1790 #define DMA_CH4_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 1791 #define DMA_CH4_CTRL_TRIG_INCR_READ_MSB _u(4) 1792 #define DMA_CH4_CTRL_TRIG_INCR_READ_LSB _u(4) 1793 #define DMA_CH4_CTRL_TRIG_INCR_READ_ACCESS "RW" 1794 // ----------------------------------------------------------------------------- 1795 // Field : DMA_CH4_CTRL_TRIG_DATA_SIZE 1796 // Description : Set the size of each bus transfer (byte/halfword/word). 1797 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 1798 // with each transfer. 1799 // 0x0 -> SIZE_BYTE 1800 // 0x1 -> SIZE_HALFWORD 1801 // 0x2 -> SIZE_WORD 1802 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 1803 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 1804 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_MSB _u(3) 1805 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_LSB _u(2) 1806 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 1807 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 1808 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 1809 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 1810 // ----------------------------------------------------------------------------- 1811 // Field : DMA_CH4_CTRL_TRIG_HIGH_PRIORITY 1812 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 1813 // scheduling: in each scheduling round, all high priority 1814 // channels are considered first, and then only a single low 1815 // priority channel, before returning to the high priority 1816 // channels. 1817 // 1818 // This only affects the order in which the DMA schedules 1819 // channels. The DMA's bus priority is not changed. If the DMA is 1820 // not saturated then a low priority channel will see no loss of 1821 // throughput. 1822 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 1823 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 1824 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 1825 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 1826 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 1827 // ----------------------------------------------------------------------------- 1828 // Field : DMA_CH4_CTRL_TRIG_EN 1829 // Description : DMA Channel Enable. 1830 // When 1, the channel will respond to triggering events, which 1831 // will cause it to become BUSY and start transferring data. When 1832 // 0, the channel will ignore triggers, stop issuing transfers, 1833 // and pause the current transfer sequence (i.e. BUSY will remain 1834 // high if already high) 1835 #define DMA_CH4_CTRL_TRIG_EN_RESET _u(0x0) 1836 #define DMA_CH4_CTRL_TRIG_EN_BITS _u(0x00000001) 1837 #define DMA_CH4_CTRL_TRIG_EN_MSB _u(0) 1838 #define DMA_CH4_CTRL_TRIG_EN_LSB _u(0) 1839 #define DMA_CH4_CTRL_TRIG_EN_ACCESS "RW" 1840 // ============================================================================= 1841 // Register : DMA_CH4_AL1_CTRL 1842 // Description : Alias for channel 4 CTRL register 1843 #define DMA_CH4_AL1_CTRL_OFFSET _u(0x00000110) 1844 #define DMA_CH4_AL1_CTRL_BITS _u(0xffffffff) 1845 #define DMA_CH4_AL1_CTRL_RESET "-" 1846 #define DMA_CH4_AL1_CTRL_MSB _u(31) 1847 #define DMA_CH4_AL1_CTRL_LSB _u(0) 1848 #define DMA_CH4_AL1_CTRL_ACCESS "RW" 1849 // ============================================================================= 1850 // Register : DMA_CH4_AL1_READ_ADDR 1851 // Description : Alias for channel 4 READ_ADDR register 1852 #define DMA_CH4_AL1_READ_ADDR_OFFSET _u(0x00000114) 1853 #define DMA_CH4_AL1_READ_ADDR_BITS _u(0xffffffff) 1854 #define DMA_CH4_AL1_READ_ADDR_RESET "-" 1855 #define DMA_CH4_AL1_READ_ADDR_MSB _u(31) 1856 #define DMA_CH4_AL1_READ_ADDR_LSB _u(0) 1857 #define DMA_CH4_AL1_READ_ADDR_ACCESS "RW" 1858 // ============================================================================= 1859 // Register : DMA_CH4_AL1_WRITE_ADDR 1860 // Description : Alias for channel 4 WRITE_ADDR register 1861 #define DMA_CH4_AL1_WRITE_ADDR_OFFSET _u(0x00000118) 1862 #define DMA_CH4_AL1_WRITE_ADDR_BITS _u(0xffffffff) 1863 #define DMA_CH4_AL1_WRITE_ADDR_RESET "-" 1864 #define DMA_CH4_AL1_WRITE_ADDR_MSB _u(31) 1865 #define DMA_CH4_AL1_WRITE_ADDR_LSB _u(0) 1866 #define DMA_CH4_AL1_WRITE_ADDR_ACCESS "RW" 1867 // ============================================================================= 1868 // Register : DMA_CH4_AL1_TRANS_COUNT_TRIG 1869 // Description : Alias for channel 4 TRANS_COUNT register 1870 // This is a trigger register (0xc). Writing a nonzero value will 1871 // reload the channel counter and start the channel. 1872 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000011c) 1873 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 1874 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_RESET "-" 1875 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_MSB _u(31) 1876 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_LSB _u(0) 1877 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 1878 // ============================================================================= 1879 // Register : DMA_CH4_AL2_CTRL 1880 // Description : Alias for channel 4 CTRL register 1881 #define DMA_CH4_AL2_CTRL_OFFSET _u(0x00000120) 1882 #define DMA_CH4_AL2_CTRL_BITS _u(0xffffffff) 1883 #define DMA_CH4_AL2_CTRL_RESET "-" 1884 #define DMA_CH4_AL2_CTRL_MSB _u(31) 1885 #define DMA_CH4_AL2_CTRL_LSB _u(0) 1886 #define DMA_CH4_AL2_CTRL_ACCESS "RW" 1887 // ============================================================================= 1888 // Register : DMA_CH4_AL2_TRANS_COUNT 1889 // Description : Alias for channel 4 TRANS_COUNT register 1890 #define DMA_CH4_AL2_TRANS_COUNT_OFFSET _u(0x00000124) 1891 #define DMA_CH4_AL2_TRANS_COUNT_BITS _u(0xffffffff) 1892 #define DMA_CH4_AL2_TRANS_COUNT_RESET "-" 1893 #define DMA_CH4_AL2_TRANS_COUNT_MSB _u(31) 1894 #define DMA_CH4_AL2_TRANS_COUNT_LSB _u(0) 1895 #define DMA_CH4_AL2_TRANS_COUNT_ACCESS "RW" 1896 // ============================================================================= 1897 // Register : DMA_CH4_AL2_READ_ADDR 1898 // Description : Alias for channel 4 READ_ADDR register 1899 #define DMA_CH4_AL2_READ_ADDR_OFFSET _u(0x00000128) 1900 #define DMA_CH4_AL2_READ_ADDR_BITS _u(0xffffffff) 1901 #define DMA_CH4_AL2_READ_ADDR_RESET "-" 1902 #define DMA_CH4_AL2_READ_ADDR_MSB _u(31) 1903 #define DMA_CH4_AL2_READ_ADDR_LSB _u(0) 1904 #define DMA_CH4_AL2_READ_ADDR_ACCESS "RW" 1905 // ============================================================================= 1906 // Register : DMA_CH4_AL2_WRITE_ADDR_TRIG 1907 // Description : Alias for channel 4 WRITE_ADDR register 1908 // This is a trigger register (0xc). Writing a nonzero value will 1909 // reload the channel counter and start the channel. 1910 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000012c) 1911 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 1912 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_RESET "-" 1913 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_MSB _u(31) 1914 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_LSB _u(0) 1915 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 1916 // ============================================================================= 1917 // Register : DMA_CH4_AL3_CTRL 1918 // Description : Alias for channel 4 CTRL register 1919 #define DMA_CH4_AL3_CTRL_OFFSET _u(0x00000130) 1920 #define DMA_CH4_AL3_CTRL_BITS _u(0xffffffff) 1921 #define DMA_CH4_AL3_CTRL_RESET "-" 1922 #define DMA_CH4_AL3_CTRL_MSB _u(31) 1923 #define DMA_CH4_AL3_CTRL_LSB _u(0) 1924 #define DMA_CH4_AL3_CTRL_ACCESS "RW" 1925 // ============================================================================= 1926 // Register : DMA_CH4_AL3_WRITE_ADDR 1927 // Description : Alias for channel 4 WRITE_ADDR register 1928 #define DMA_CH4_AL3_WRITE_ADDR_OFFSET _u(0x00000134) 1929 #define DMA_CH4_AL3_WRITE_ADDR_BITS _u(0xffffffff) 1930 #define DMA_CH4_AL3_WRITE_ADDR_RESET "-" 1931 #define DMA_CH4_AL3_WRITE_ADDR_MSB _u(31) 1932 #define DMA_CH4_AL3_WRITE_ADDR_LSB _u(0) 1933 #define DMA_CH4_AL3_WRITE_ADDR_ACCESS "RW" 1934 // ============================================================================= 1935 // Register : DMA_CH4_AL3_TRANS_COUNT 1936 // Description : Alias for channel 4 TRANS_COUNT register 1937 #define DMA_CH4_AL3_TRANS_COUNT_OFFSET _u(0x00000138) 1938 #define DMA_CH4_AL3_TRANS_COUNT_BITS _u(0xffffffff) 1939 #define DMA_CH4_AL3_TRANS_COUNT_RESET "-" 1940 #define DMA_CH4_AL3_TRANS_COUNT_MSB _u(31) 1941 #define DMA_CH4_AL3_TRANS_COUNT_LSB _u(0) 1942 #define DMA_CH4_AL3_TRANS_COUNT_ACCESS "RW" 1943 // ============================================================================= 1944 // Register : DMA_CH4_AL3_READ_ADDR_TRIG 1945 // Description : Alias for channel 4 READ_ADDR register 1946 // This is a trigger register (0xc). Writing a nonzero value will 1947 // reload the channel counter and start the channel. 1948 #define DMA_CH4_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000013c) 1949 #define DMA_CH4_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 1950 #define DMA_CH4_AL3_READ_ADDR_TRIG_RESET "-" 1951 #define DMA_CH4_AL3_READ_ADDR_TRIG_MSB _u(31) 1952 #define DMA_CH4_AL3_READ_ADDR_TRIG_LSB _u(0) 1953 #define DMA_CH4_AL3_READ_ADDR_TRIG_ACCESS "RW" 1954 // ============================================================================= 1955 // Register : DMA_CH5_READ_ADDR 1956 // Description : DMA Channel 5 Read Address pointer 1957 // This register updates automatically each time a read completes. 1958 // The current value is the next address to be read by this 1959 // channel. 1960 #define DMA_CH5_READ_ADDR_OFFSET _u(0x00000140) 1961 #define DMA_CH5_READ_ADDR_BITS _u(0xffffffff) 1962 #define DMA_CH5_READ_ADDR_RESET _u(0x00000000) 1963 #define DMA_CH5_READ_ADDR_MSB _u(31) 1964 #define DMA_CH5_READ_ADDR_LSB _u(0) 1965 #define DMA_CH5_READ_ADDR_ACCESS "RW" 1966 // ============================================================================= 1967 // Register : DMA_CH5_WRITE_ADDR 1968 // Description : DMA Channel 5 Write Address pointer 1969 // This register updates automatically each time a write 1970 // completes. The current value is the next address to be written 1971 // by this channel. 1972 #define DMA_CH5_WRITE_ADDR_OFFSET _u(0x00000144) 1973 #define DMA_CH5_WRITE_ADDR_BITS _u(0xffffffff) 1974 #define DMA_CH5_WRITE_ADDR_RESET _u(0x00000000) 1975 #define DMA_CH5_WRITE_ADDR_MSB _u(31) 1976 #define DMA_CH5_WRITE_ADDR_LSB _u(0) 1977 #define DMA_CH5_WRITE_ADDR_ACCESS "RW" 1978 // ============================================================================= 1979 // Register : DMA_CH5_TRANS_COUNT 1980 // Description : DMA Channel 5 Transfer Count 1981 // Program the number of bus transfers a channel will perform 1982 // before halting. Note that, if transfers are larger than one 1983 // byte in size, this is not equal to the number of bytes 1984 // transferred (see CTRL_DATA_SIZE). 1985 // 1986 // When the channel is active, reading this register shows the 1987 // number of transfers remaining, updating automatically each time 1988 // a write transfer completes. 1989 // 1990 // Writing this register sets the RELOAD value for the transfer 1991 // counter. Each time this channel is triggered, the RELOAD value 1992 // is copied into the live transfer counter. The channel can be 1993 // started multiple times, and will perform the same number of 1994 // transfers each time, as programmed by most recent write. 1995 // 1996 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1997 // is used as a trigger, the written value is used immediately as 1998 // the length of the new transfer sequence, as well as being 1999 // written to RELOAD. 2000 #define DMA_CH5_TRANS_COUNT_OFFSET _u(0x00000148) 2001 #define DMA_CH5_TRANS_COUNT_BITS _u(0xffffffff) 2002 #define DMA_CH5_TRANS_COUNT_RESET _u(0x00000000) 2003 #define DMA_CH5_TRANS_COUNT_MSB _u(31) 2004 #define DMA_CH5_TRANS_COUNT_LSB _u(0) 2005 #define DMA_CH5_TRANS_COUNT_ACCESS "RW" 2006 // ============================================================================= 2007 // Register : DMA_CH5_CTRL_TRIG 2008 // Description : DMA Channel 5 Control and Status 2009 #define DMA_CH5_CTRL_TRIG_OFFSET _u(0x0000014c) 2010 #define DMA_CH5_CTRL_TRIG_BITS _u(0xe1ffffff) 2011 #define DMA_CH5_CTRL_TRIG_RESET _u(0x00000000) 2012 // ----------------------------------------------------------------------------- 2013 // Field : DMA_CH5_CTRL_TRIG_AHB_ERROR 2014 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 2015 // halts when it encounters any bus error, and always raises its 2016 // channel IRQ flag. 2017 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 2018 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 2019 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_MSB _u(31) 2020 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_LSB _u(31) 2021 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 2022 // ----------------------------------------------------------------------------- 2023 // Field : DMA_CH5_CTRL_TRIG_READ_ERROR 2024 // Description : If 1, the channel received a read bus error. Write one to 2025 // clear. 2026 // READ_ADDR shows the approximate address where the bus error was 2027 // encountered (will not be earlier, or more than 3 transfers 2028 // later) 2029 #define DMA_CH5_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 2030 #define DMA_CH5_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 2031 #define DMA_CH5_CTRL_TRIG_READ_ERROR_MSB _u(30) 2032 #define DMA_CH5_CTRL_TRIG_READ_ERROR_LSB _u(30) 2033 #define DMA_CH5_CTRL_TRIG_READ_ERROR_ACCESS "WC" 2034 // ----------------------------------------------------------------------------- 2035 // Field : DMA_CH5_CTRL_TRIG_WRITE_ERROR 2036 // Description : If 1, the channel received a write bus error. Write one to 2037 // clear. 2038 // WRITE_ADDR shows the approximate address where the bus error 2039 // was encountered (will not be earlier, or more than 5 transfers 2040 // later) 2041 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 2042 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 2043 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 2044 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 2045 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 2046 // ----------------------------------------------------------------------------- 2047 // Field : DMA_CH5_CTRL_TRIG_BUSY 2048 // Description : This flag goes high when the channel starts a new transfer 2049 // sequence, and low when the last transfer of that sequence 2050 // completes. Clearing EN while BUSY is high pauses the channel, 2051 // and BUSY will stay high while paused. 2052 // 2053 // To terminate a sequence early (and clear the BUSY flag), see 2054 // CHAN_ABORT. 2055 #define DMA_CH5_CTRL_TRIG_BUSY_RESET _u(0x0) 2056 #define DMA_CH5_CTRL_TRIG_BUSY_BITS _u(0x01000000) 2057 #define DMA_CH5_CTRL_TRIG_BUSY_MSB _u(24) 2058 #define DMA_CH5_CTRL_TRIG_BUSY_LSB _u(24) 2059 #define DMA_CH5_CTRL_TRIG_BUSY_ACCESS "RO" 2060 // ----------------------------------------------------------------------------- 2061 // Field : DMA_CH5_CTRL_TRIG_SNIFF_EN 2062 // Description : If 1, this channel's data transfers are visible to the sniff 2063 // hardware, and each transfer will advance the state of the 2064 // checksum. This only applies if the sniff hardware is enabled, 2065 // and has this channel selected. 2066 // 2067 // This allows checksum to be enabled or disabled on a 2068 // per-control- block basis. 2069 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 2070 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 2071 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_MSB _u(23) 2072 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_LSB _u(23) 2073 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 2074 // ----------------------------------------------------------------------------- 2075 // Field : DMA_CH5_CTRL_TRIG_BSWAP 2076 // Description : Apply byte-swap transformation to DMA data. 2077 // For byte data, this has no effect. For halfword data, the two 2078 // bytes of each halfword are swapped. For word data, the four 2079 // bytes of each word are swapped to reverse order. 2080 #define DMA_CH5_CTRL_TRIG_BSWAP_RESET _u(0x0) 2081 #define DMA_CH5_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 2082 #define DMA_CH5_CTRL_TRIG_BSWAP_MSB _u(22) 2083 #define DMA_CH5_CTRL_TRIG_BSWAP_LSB _u(22) 2084 #define DMA_CH5_CTRL_TRIG_BSWAP_ACCESS "RW" 2085 // ----------------------------------------------------------------------------- 2086 // Field : DMA_CH5_CTRL_TRIG_IRQ_QUIET 2087 // Description : In QUIET mode, the channel does not generate IRQs at the end of 2088 // every transfer block. Instead, an IRQ is raised when NULL is 2089 // written to a trigger register, indicating the end of a control 2090 // block chain. 2091 // 2092 // This reduces the number of interrupts to be serviced by the CPU 2093 // when transferring a DMA chain of many small control blocks. 2094 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2095 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 2096 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 2097 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 2098 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2099 // ----------------------------------------------------------------------------- 2100 // Field : DMA_CH5_CTRL_TRIG_TREQ_SEL 2101 // Description : Select a Transfer Request signal. 2102 // The channel uses the transfer request signal to pace its data 2103 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2104 // or external (DREQ, a Data Request from the system). 2105 // 0x0 to 0x3a -> select DREQ n as TREQ 2106 // 0x3b -> Select Timer 0 as TREQ 2107 // 0x3c -> Select Timer 1 as TREQ 2108 // 0x3d -> Select Timer 2 as TREQ (Optional) 2109 // 0x3e -> Select Timer 3 as TREQ (Optional) 2110 // 0x3f -> Permanent request, for unpaced transfers. 2111 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2112 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 2113 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_MSB _u(20) 2114 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_LSB _u(15) 2115 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2116 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2117 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2118 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2119 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2120 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2121 // ----------------------------------------------------------------------------- 2122 // Field : DMA_CH5_CTRL_TRIG_CHAIN_TO 2123 // Description : When this channel completes, it will trigger the channel 2124 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2125 // channel)_. 2126 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2127 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 2128 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_MSB _u(14) 2129 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_LSB _u(11) 2130 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2131 // ----------------------------------------------------------------------------- 2132 // Field : DMA_CH5_CTRL_TRIG_RING_SEL 2133 // Description : Select whether RING_SIZE applies to read or write addresses. 2134 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2135 // boundary. If 1, write addresses are wrapped. 2136 #define DMA_CH5_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2137 #define DMA_CH5_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 2138 #define DMA_CH5_CTRL_TRIG_RING_SEL_MSB _u(10) 2139 #define DMA_CH5_CTRL_TRIG_RING_SEL_LSB _u(10) 2140 #define DMA_CH5_CTRL_TRIG_RING_SEL_ACCESS "RW" 2141 // ----------------------------------------------------------------------------- 2142 // Field : DMA_CH5_CTRL_TRIG_RING_SIZE 2143 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2144 // 0, only the lower n bits of the address will change. This wraps 2145 // the address on a (1 << n) byte boundary, facilitating access to 2146 // naturally-aligned ring buffers. 2147 // 2148 // Ring sizes between 2 and 32768 bytes are possible. This can 2149 // apply to either read or write addresses, based on value of 2150 // RING_SEL. 2151 // 0x0 -> RING_NONE 2152 #define DMA_CH5_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2153 #define DMA_CH5_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 2154 #define DMA_CH5_CTRL_TRIG_RING_SIZE_MSB _u(9) 2155 #define DMA_CH5_CTRL_TRIG_RING_SIZE_LSB _u(6) 2156 #define DMA_CH5_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2157 #define DMA_CH5_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2158 // ----------------------------------------------------------------------------- 2159 // Field : DMA_CH5_CTRL_TRIG_INCR_WRITE 2160 // Description : If 1, the write address increments with each transfer. If 0, 2161 // each write is directed to the same, initial address. 2162 // 2163 // Generally this should be disabled for memory-to-peripheral 2164 // transfers. 2165 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2166 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 2167 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_MSB _u(5) 2168 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_LSB _u(5) 2169 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 2170 // ----------------------------------------------------------------------------- 2171 // Field : DMA_CH5_CTRL_TRIG_INCR_READ 2172 // Description : If 1, the read address increments with each transfer. If 0, 2173 // each read is directed to the same, initial address. 2174 // 2175 // Generally this should be disabled for peripheral-to-memory 2176 // transfers. 2177 #define DMA_CH5_CTRL_TRIG_INCR_READ_RESET _u(0x0) 2178 #define DMA_CH5_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 2179 #define DMA_CH5_CTRL_TRIG_INCR_READ_MSB _u(4) 2180 #define DMA_CH5_CTRL_TRIG_INCR_READ_LSB _u(4) 2181 #define DMA_CH5_CTRL_TRIG_INCR_READ_ACCESS "RW" 2182 // ----------------------------------------------------------------------------- 2183 // Field : DMA_CH5_CTRL_TRIG_DATA_SIZE 2184 // Description : Set the size of each bus transfer (byte/halfword/word). 2185 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 2186 // with each transfer. 2187 // 0x0 -> SIZE_BYTE 2188 // 0x1 -> SIZE_HALFWORD 2189 // 0x2 -> SIZE_WORD 2190 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 2191 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 2192 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_MSB _u(3) 2193 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_LSB _u(2) 2194 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 2195 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 2196 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 2197 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 2198 // ----------------------------------------------------------------------------- 2199 // Field : DMA_CH5_CTRL_TRIG_HIGH_PRIORITY 2200 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 2201 // scheduling: in each scheduling round, all high priority 2202 // channels are considered first, and then only a single low 2203 // priority channel, before returning to the high priority 2204 // channels. 2205 // 2206 // This only affects the order in which the DMA schedules 2207 // channels. The DMA's bus priority is not changed. If the DMA is 2208 // not saturated then a low priority channel will see no loss of 2209 // throughput. 2210 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 2211 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 2212 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 2213 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 2214 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 2215 // ----------------------------------------------------------------------------- 2216 // Field : DMA_CH5_CTRL_TRIG_EN 2217 // Description : DMA Channel Enable. 2218 // When 1, the channel will respond to triggering events, which 2219 // will cause it to become BUSY and start transferring data. When 2220 // 0, the channel will ignore triggers, stop issuing transfers, 2221 // and pause the current transfer sequence (i.e. BUSY will remain 2222 // high if already high) 2223 #define DMA_CH5_CTRL_TRIG_EN_RESET _u(0x0) 2224 #define DMA_CH5_CTRL_TRIG_EN_BITS _u(0x00000001) 2225 #define DMA_CH5_CTRL_TRIG_EN_MSB _u(0) 2226 #define DMA_CH5_CTRL_TRIG_EN_LSB _u(0) 2227 #define DMA_CH5_CTRL_TRIG_EN_ACCESS "RW" 2228 // ============================================================================= 2229 // Register : DMA_CH5_AL1_CTRL 2230 // Description : Alias for channel 5 CTRL register 2231 #define DMA_CH5_AL1_CTRL_OFFSET _u(0x00000150) 2232 #define DMA_CH5_AL1_CTRL_BITS _u(0xffffffff) 2233 #define DMA_CH5_AL1_CTRL_RESET "-" 2234 #define DMA_CH5_AL1_CTRL_MSB _u(31) 2235 #define DMA_CH5_AL1_CTRL_LSB _u(0) 2236 #define DMA_CH5_AL1_CTRL_ACCESS "RW" 2237 // ============================================================================= 2238 // Register : DMA_CH5_AL1_READ_ADDR 2239 // Description : Alias for channel 5 READ_ADDR register 2240 #define DMA_CH5_AL1_READ_ADDR_OFFSET _u(0x00000154) 2241 #define DMA_CH5_AL1_READ_ADDR_BITS _u(0xffffffff) 2242 #define DMA_CH5_AL1_READ_ADDR_RESET "-" 2243 #define DMA_CH5_AL1_READ_ADDR_MSB _u(31) 2244 #define DMA_CH5_AL1_READ_ADDR_LSB _u(0) 2245 #define DMA_CH5_AL1_READ_ADDR_ACCESS "RW" 2246 // ============================================================================= 2247 // Register : DMA_CH5_AL1_WRITE_ADDR 2248 // Description : Alias for channel 5 WRITE_ADDR register 2249 #define DMA_CH5_AL1_WRITE_ADDR_OFFSET _u(0x00000158) 2250 #define DMA_CH5_AL1_WRITE_ADDR_BITS _u(0xffffffff) 2251 #define DMA_CH5_AL1_WRITE_ADDR_RESET "-" 2252 #define DMA_CH5_AL1_WRITE_ADDR_MSB _u(31) 2253 #define DMA_CH5_AL1_WRITE_ADDR_LSB _u(0) 2254 #define DMA_CH5_AL1_WRITE_ADDR_ACCESS "RW" 2255 // ============================================================================= 2256 // Register : DMA_CH5_AL1_TRANS_COUNT_TRIG 2257 // Description : Alias for channel 5 TRANS_COUNT register 2258 // This is a trigger register (0xc). Writing a nonzero value will 2259 // reload the channel counter and start the channel. 2260 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000015c) 2261 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 2262 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_RESET "-" 2263 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_MSB _u(31) 2264 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_LSB _u(0) 2265 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 2266 // ============================================================================= 2267 // Register : DMA_CH5_AL2_CTRL 2268 // Description : Alias for channel 5 CTRL register 2269 #define DMA_CH5_AL2_CTRL_OFFSET _u(0x00000160) 2270 #define DMA_CH5_AL2_CTRL_BITS _u(0xffffffff) 2271 #define DMA_CH5_AL2_CTRL_RESET "-" 2272 #define DMA_CH5_AL2_CTRL_MSB _u(31) 2273 #define DMA_CH5_AL2_CTRL_LSB _u(0) 2274 #define DMA_CH5_AL2_CTRL_ACCESS "RW" 2275 // ============================================================================= 2276 // Register : DMA_CH5_AL2_TRANS_COUNT 2277 // Description : Alias for channel 5 TRANS_COUNT register 2278 #define DMA_CH5_AL2_TRANS_COUNT_OFFSET _u(0x00000164) 2279 #define DMA_CH5_AL2_TRANS_COUNT_BITS _u(0xffffffff) 2280 #define DMA_CH5_AL2_TRANS_COUNT_RESET "-" 2281 #define DMA_CH5_AL2_TRANS_COUNT_MSB _u(31) 2282 #define DMA_CH5_AL2_TRANS_COUNT_LSB _u(0) 2283 #define DMA_CH5_AL2_TRANS_COUNT_ACCESS "RW" 2284 // ============================================================================= 2285 // Register : DMA_CH5_AL2_READ_ADDR 2286 // Description : Alias for channel 5 READ_ADDR register 2287 #define DMA_CH5_AL2_READ_ADDR_OFFSET _u(0x00000168) 2288 #define DMA_CH5_AL2_READ_ADDR_BITS _u(0xffffffff) 2289 #define DMA_CH5_AL2_READ_ADDR_RESET "-" 2290 #define DMA_CH5_AL2_READ_ADDR_MSB _u(31) 2291 #define DMA_CH5_AL2_READ_ADDR_LSB _u(0) 2292 #define DMA_CH5_AL2_READ_ADDR_ACCESS "RW" 2293 // ============================================================================= 2294 // Register : DMA_CH5_AL2_WRITE_ADDR_TRIG 2295 // Description : Alias for channel 5 WRITE_ADDR register 2296 // This is a trigger register (0xc). Writing a nonzero value will 2297 // reload the channel counter and start the channel. 2298 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000016c) 2299 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 2300 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_RESET "-" 2301 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_MSB _u(31) 2302 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_LSB _u(0) 2303 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 2304 // ============================================================================= 2305 // Register : DMA_CH5_AL3_CTRL 2306 // Description : Alias for channel 5 CTRL register 2307 #define DMA_CH5_AL3_CTRL_OFFSET _u(0x00000170) 2308 #define DMA_CH5_AL3_CTRL_BITS _u(0xffffffff) 2309 #define DMA_CH5_AL3_CTRL_RESET "-" 2310 #define DMA_CH5_AL3_CTRL_MSB _u(31) 2311 #define DMA_CH5_AL3_CTRL_LSB _u(0) 2312 #define DMA_CH5_AL3_CTRL_ACCESS "RW" 2313 // ============================================================================= 2314 // Register : DMA_CH5_AL3_WRITE_ADDR 2315 // Description : Alias for channel 5 WRITE_ADDR register 2316 #define DMA_CH5_AL3_WRITE_ADDR_OFFSET _u(0x00000174) 2317 #define DMA_CH5_AL3_WRITE_ADDR_BITS _u(0xffffffff) 2318 #define DMA_CH5_AL3_WRITE_ADDR_RESET "-" 2319 #define DMA_CH5_AL3_WRITE_ADDR_MSB _u(31) 2320 #define DMA_CH5_AL3_WRITE_ADDR_LSB _u(0) 2321 #define DMA_CH5_AL3_WRITE_ADDR_ACCESS "RW" 2322 // ============================================================================= 2323 // Register : DMA_CH5_AL3_TRANS_COUNT 2324 // Description : Alias for channel 5 TRANS_COUNT register 2325 #define DMA_CH5_AL3_TRANS_COUNT_OFFSET _u(0x00000178) 2326 #define DMA_CH5_AL3_TRANS_COUNT_BITS _u(0xffffffff) 2327 #define DMA_CH5_AL3_TRANS_COUNT_RESET "-" 2328 #define DMA_CH5_AL3_TRANS_COUNT_MSB _u(31) 2329 #define DMA_CH5_AL3_TRANS_COUNT_LSB _u(0) 2330 #define DMA_CH5_AL3_TRANS_COUNT_ACCESS "RW" 2331 // ============================================================================= 2332 // Register : DMA_CH5_AL3_READ_ADDR_TRIG 2333 // Description : Alias for channel 5 READ_ADDR register 2334 // This is a trigger register (0xc). Writing a nonzero value will 2335 // reload the channel counter and start the channel. 2336 #define DMA_CH5_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000017c) 2337 #define DMA_CH5_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 2338 #define DMA_CH5_AL3_READ_ADDR_TRIG_RESET "-" 2339 #define DMA_CH5_AL3_READ_ADDR_TRIG_MSB _u(31) 2340 #define DMA_CH5_AL3_READ_ADDR_TRIG_LSB _u(0) 2341 #define DMA_CH5_AL3_READ_ADDR_TRIG_ACCESS "RW" 2342 // ============================================================================= 2343 // Register : DMA_CH6_READ_ADDR 2344 // Description : DMA Channel 6 Read Address pointer 2345 // This register updates automatically each time a read completes. 2346 // The current value is the next address to be read by this 2347 // channel. 2348 #define DMA_CH6_READ_ADDR_OFFSET _u(0x00000180) 2349 #define DMA_CH6_READ_ADDR_BITS _u(0xffffffff) 2350 #define DMA_CH6_READ_ADDR_RESET _u(0x00000000) 2351 #define DMA_CH6_READ_ADDR_MSB _u(31) 2352 #define DMA_CH6_READ_ADDR_LSB _u(0) 2353 #define DMA_CH6_READ_ADDR_ACCESS "RW" 2354 // ============================================================================= 2355 // Register : DMA_CH6_WRITE_ADDR 2356 // Description : DMA Channel 6 Write Address pointer 2357 // This register updates automatically each time a write 2358 // completes. The current value is the next address to be written 2359 // by this channel. 2360 #define DMA_CH6_WRITE_ADDR_OFFSET _u(0x00000184) 2361 #define DMA_CH6_WRITE_ADDR_BITS _u(0xffffffff) 2362 #define DMA_CH6_WRITE_ADDR_RESET _u(0x00000000) 2363 #define DMA_CH6_WRITE_ADDR_MSB _u(31) 2364 #define DMA_CH6_WRITE_ADDR_LSB _u(0) 2365 #define DMA_CH6_WRITE_ADDR_ACCESS "RW" 2366 // ============================================================================= 2367 // Register : DMA_CH6_TRANS_COUNT 2368 // Description : DMA Channel 6 Transfer Count 2369 // Program the number of bus transfers a channel will perform 2370 // before halting. Note that, if transfers are larger than one 2371 // byte in size, this is not equal to the number of bytes 2372 // transferred (see CTRL_DATA_SIZE). 2373 // 2374 // When the channel is active, reading this register shows the 2375 // number of transfers remaining, updating automatically each time 2376 // a write transfer completes. 2377 // 2378 // Writing this register sets the RELOAD value for the transfer 2379 // counter. Each time this channel is triggered, the RELOAD value 2380 // is copied into the live transfer counter. The channel can be 2381 // started multiple times, and will perform the same number of 2382 // transfers each time, as programmed by most recent write. 2383 // 2384 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 2385 // is used as a trigger, the written value is used immediately as 2386 // the length of the new transfer sequence, as well as being 2387 // written to RELOAD. 2388 #define DMA_CH6_TRANS_COUNT_OFFSET _u(0x00000188) 2389 #define DMA_CH6_TRANS_COUNT_BITS _u(0xffffffff) 2390 #define DMA_CH6_TRANS_COUNT_RESET _u(0x00000000) 2391 #define DMA_CH6_TRANS_COUNT_MSB _u(31) 2392 #define DMA_CH6_TRANS_COUNT_LSB _u(0) 2393 #define DMA_CH6_TRANS_COUNT_ACCESS "RW" 2394 // ============================================================================= 2395 // Register : DMA_CH6_CTRL_TRIG 2396 // Description : DMA Channel 6 Control and Status 2397 #define DMA_CH6_CTRL_TRIG_OFFSET _u(0x0000018c) 2398 #define DMA_CH6_CTRL_TRIG_BITS _u(0xe1ffffff) 2399 #define DMA_CH6_CTRL_TRIG_RESET _u(0x00000000) 2400 // ----------------------------------------------------------------------------- 2401 // Field : DMA_CH6_CTRL_TRIG_AHB_ERROR 2402 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 2403 // halts when it encounters any bus error, and always raises its 2404 // channel IRQ flag. 2405 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 2406 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 2407 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_MSB _u(31) 2408 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_LSB _u(31) 2409 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 2410 // ----------------------------------------------------------------------------- 2411 // Field : DMA_CH6_CTRL_TRIG_READ_ERROR 2412 // Description : If 1, the channel received a read bus error. Write one to 2413 // clear. 2414 // READ_ADDR shows the approximate address where the bus error was 2415 // encountered (will not be earlier, or more than 3 transfers 2416 // later) 2417 #define DMA_CH6_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 2418 #define DMA_CH6_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 2419 #define DMA_CH6_CTRL_TRIG_READ_ERROR_MSB _u(30) 2420 #define DMA_CH6_CTRL_TRIG_READ_ERROR_LSB _u(30) 2421 #define DMA_CH6_CTRL_TRIG_READ_ERROR_ACCESS "WC" 2422 // ----------------------------------------------------------------------------- 2423 // Field : DMA_CH6_CTRL_TRIG_WRITE_ERROR 2424 // Description : If 1, the channel received a write bus error. Write one to 2425 // clear. 2426 // WRITE_ADDR shows the approximate address where the bus error 2427 // was encountered (will not be earlier, or more than 5 transfers 2428 // later) 2429 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 2430 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 2431 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 2432 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 2433 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 2434 // ----------------------------------------------------------------------------- 2435 // Field : DMA_CH6_CTRL_TRIG_BUSY 2436 // Description : This flag goes high when the channel starts a new transfer 2437 // sequence, and low when the last transfer of that sequence 2438 // completes. Clearing EN while BUSY is high pauses the channel, 2439 // and BUSY will stay high while paused. 2440 // 2441 // To terminate a sequence early (and clear the BUSY flag), see 2442 // CHAN_ABORT. 2443 #define DMA_CH6_CTRL_TRIG_BUSY_RESET _u(0x0) 2444 #define DMA_CH6_CTRL_TRIG_BUSY_BITS _u(0x01000000) 2445 #define DMA_CH6_CTRL_TRIG_BUSY_MSB _u(24) 2446 #define DMA_CH6_CTRL_TRIG_BUSY_LSB _u(24) 2447 #define DMA_CH6_CTRL_TRIG_BUSY_ACCESS "RO" 2448 // ----------------------------------------------------------------------------- 2449 // Field : DMA_CH6_CTRL_TRIG_SNIFF_EN 2450 // Description : If 1, this channel's data transfers are visible to the sniff 2451 // hardware, and each transfer will advance the state of the 2452 // checksum. This only applies if the sniff hardware is enabled, 2453 // and has this channel selected. 2454 // 2455 // This allows checksum to be enabled or disabled on a 2456 // per-control- block basis. 2457 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 2458 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 2459 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_MSB _u(23) 2460 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_LSB _u(23) 2461 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 2462 // ----------------------------------------------------------------------------- 2463 // Field : DMA_CH6_CTRL_TRIG_BSWAP 2464 // Description : Apply byte-swap transformation to DMA data. 2465 // For byte data, this has no effect. For halfword data, the two 2466 // bytes of each halfword are swapped. For word data, the four 2467 // bytes of each word are swapped to reverse order. 2468 #define DMA_CH6_CTRL_TRIG_BSWAP_RESET _u(0x0) 2469 #define DMA_CH6_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 2470 #define DMA_CH6_CTRL_TRIG_BSWAP_MSB _u(22) 2471 #define DMA_CH6_CTRL_TRIG_BSWAP_LSB _u(22) 2472 #define DMA_CH6_CTRL_TRIG_BSWAP_ACCESS "RW" 2473 // ----------------------------------------------------------------------------- 2474 // Field : DMA_CH6_CTRL_TRIG_IRQ_QUIET 2475 // Description : In QUIET mode, the channel does not generate IRQs at the end of 2476 // every transfer block. Instead, an IRQ is raised when NULL is 2477 // written to a trigger register, indicating the end of a control 2478 // block chain. 2479 // 2480 // This reduces the number of interrupts to be serviced by the CPU 2481 // when transferring a DMA chain of many small control blocks. 2482 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2483 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 2484 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 2485 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 2486 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2487 // ----------------------------------------------------------------------------- 2488 // Field : DMA_CH6_CTRL_TRIG_TREQ_SEL 2489 // Description : Select a Transfer Request signal. 2490 // The channel uses the transfer request signal to pace its data 2491 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2492 // or external (DREQ, a Data Request from the system). 2493 // 0x0 to 0x3a -> select DREQ n as TREQ 2494 // 0x3b -> Select Timer 0 as TREQ 2495 // 0x3c -> Select Timer 1 as TREQ 2496 // 0x3d -> Select Timer 2 as TREQ (Optional) 2497 // 0x3e -> Select Timer 3 as TREQ (Optional) 2498 // 0x3f -> Permanent request, for unpaced transfers. 2499 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2500 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 2501 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_MSB _u(20) 2502 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_LSB _u(15) 2503 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2504 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2505 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2506 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2507 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2508 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2509 // ----------------------------------------------------------------------------- 2510 // Field : DMA_CH6_CTRL_TRIG_CHAIN_TO 2511 // Description : When this channel completes, it will trigger the channel 2512 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2513 // channel)_. 2514 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2515 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 2516 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_MSB _u(14) 2517 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_LSB _u(11) 2518 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2519 // ----------------------------------------------------------------------------- 2520 // Field : DMA_CH6_CTRL_TRIG_RING_SEL 2521 // Description : Select whether RING_SIZE applies to read or write addresses. 2522 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2523 // boundary. If 1, write addresses are wrapped. 2524 #define DMA_CH6_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2525 #define DMA_CH6_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 2526 #define DMA_CH6_CTRL_TRIG_RING_SEL_MSB _u(10) 2527 #define DMA_CH6_CTRL_TRIG_RING_SEL_LSB _u(10) 2528 #define DMA_CH6_CTRL_TRIG_RING_SEL_ACCESS "RW" 2529 // ----------------------------------------------------------------------------- 2530 // Field : DMA_CH6_CTRL_TRIG_RING_SIZE 2531 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2532 // 0, only the lower n bits of the address will change. This wraps 2533 // the address on a (1 << n) byte boundary, facilitating access to 2534 // naturally-aligned ring buffers. 2535 // 2536 // Ring sizes between 2 and 32768 bytes are possible. This can 2537 // apply to either read or write addresses, based on value of 2538 // RING_SEL. 2539 // 0x0 -> RING_NONE 2540 #define DMA_CH6_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2541 #define DMA_CH6_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 2542 #define DMA_CH6_CTRL_TRIG_RING_SIZE_MSB _u(9) 2543 #define DMA_CH6_CTRL_TRIG_RING_SIZE_LSB _u(6) 2544 #define DMA_CH6_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2545 #define DMA_CH6_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2546 // ----------------------------------------------------------------------------- 2547 // Field : DMA_CH6_CTRL_TRIG_INCR_WRITE 2548 // Description : If 1, the write address increments with each transfer. If 0, 2549 // each write is directed to the same, initial address. 2550 // 2551 // Generally this should be disabled for memory-to-peripheral 2552 // transfers. 2553 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2554 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 2555 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_MSB _u(5) 2556 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_LSB _u(5) 2557 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 2558 // ----------------------------------------------------------------------------- 2559 // Field : DMA_CH6_CTRL_TRIG_INCR_READ 2560 // Description : If 1, the read address increments with each transfer. If 0, 2561 // each read is directed to the same, initial address. 2562 // 2563 // Generally this should be disabled for peripheral-to-memory 2564 // transfers. 2565 #define DMA_CH6_CTRL_TRIG_INCR_READ_RESET _u(0x0) 2566 #define DMA_CH6_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 2567 #define DMA_CH6_CTRL_TRIG_INCR_READ_MSB _u(4) 2568 #define DMA_CH6_CTRL_TRIG_INCR_READ_LSB _u(4) 2569 #define DMA_CH6_CTRL_TRIG_INCR_READ_ACCESS "RW" 2570 // ----------------------------------------------------------------------------- 2571 // Field : DMA_CH6_CTRL_TRIG_DATA_SIZE 2572 // Description : Set the size of each bus transfer (byte/halfword/word). 2573 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 2574 // with each transfer. 2575 // 0x0 -> SIZE_BYTE 2576 // 0x1 -> SIZE_HALFWORD 2577 // 0x2 -> SIZE_WORD 2578 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 2579 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 2580 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_MSB _u(3) 2581 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_LSB _u(2) 2582 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 2583 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 2584 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 2585 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 2586 // ----------------------------------------------------------------------------- 2587 // Field : DMA_CH6_CTRL_TRIG_HIGH_PRIORITY 2588 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 2589 // scheduling: in each scheduling round, all high priority 2590 // channels are considered first, and then only a single low 2591 // priority channel, before returning to the high priority 2592 // channels. 2593 // 2594 // This only affects the order in which the DMA schedules 2595 // channels. The DMA's bus priority is not changed. If the DMA is 2596 // not saturated then a low priority channel will see no loss of 2597 // throughput. 2598 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 2599 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 2600 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 2601 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 2602 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 2603 // ----------------------------------------------------------------------------- 2604 // Field : DMA_CH6_CTRL_TRIG_EN 2605 // Description : DMA Channel Enable. 2606 // When 1, the channel will respond to triggering events, which 2607 // will cause it to become BUSY and start transferring data. When 2608 // 0, the channel will ignore triggers, stop issuing transfers, 2609 // and pause the current transfer sequence (i.e. BUSY will remain 2610 // high if already high) 2611 #define DMA_CH6_CTRL_TRIG_EN_RESET _u(0x0) 2612 #define DMA_CH6_CTRL_TRIG_EN_BITS _u(0x00000001) 2613 #define DMA_CH6_CTRL_TRIG_EN_MSB _u(0) 2614 #define DMA_CH6_CTRL_TRIG_EN_LSB _u(0) 2615 #define DMA_CH6_CTRL_TRIG_EN_ACCESS "RW" 2616 // ============================================================================= 2617 // Register : DMA_CH6_AL1_CTRL 2618 // Description : Alias for channel 6 CTRL register 2619 #define DMA_CH6_AL1_CTRL_OFFSET _u(0x00000190) 2620 #define DMA_CH6_AL1_CTRL_BITS _u(0xffffffff) 2621 #define DMA_CH6_AL1_CTRL_RESET "-" 2622 #define DMA_CH6_AL1_CTRL_MSB _u(31) 2623 #define DMA_CH6_AL1_CTRL_LSB _u(0) 2624 #define DMA_CH6_AL1_CTRL_ACCESS "RW" 2625 // ============================================================================= 2626 // Register : DMA_CH6_AL1_READ_ADDR 2627 // Description : Alias for channel 6 READ_ADDR register 2628 #define DMA_CH6_AL1_READ_ADDR_OFFSET _u(0x00000194) 2629 #define DMA_CH6_AL1_READ_ADDR_BITS _u(0xffffffff) 2630 #define DMA_CH6_AL1_READ_ADDR_RESET "-" 2631 #define DMA_CH6_AL1_READ_ADDR_MSB _u(31) 2632 #define DMA_CH6_AL1_READ_ADDR_LSB _u(0) 2633 #define DMA_CH6_AL1_READ_ADDR_ACCESS "RW" 2634 // ============================================================================= 2635 // Register : DMA_CH6_AL1_WRITE_ADDR 2636 // Description : Alias for channel 6 WRITE_ADDR register 2637 #define DMA_CH6_AL1_WRITE_ADDR_OFFSET _u(0x00000198) 2638 #define DMA_CH6_AL1_WRITE_ADDR_BITS _u(0xffffffff) 2639 #define DMA_CH6_AL1_WRITE_ADDR_RESET "-" 2640 #define DMA_CH6_AL1_WRITE_ADDR_MSB _u(31) 2641 #define DMA_CH6_AL1_WRITE_ADDR_LSB _u(0) 2642 #define DMA_CH6_AL1_WRITE_ADDR_ACCESS "RW" 2643 // ============================================================================= 2644 // Register : DMA_CH6_AL1_TRANS_COUNT_TRIG 2645 // Description : Alias for channel 6 TRANS_COUNT register 2646 // This is a trigger register (0xc). Writing a nonzero value will 2647 // reload the channel counter and start the channel. 2648 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000019c) 2649 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 2650 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_RESET "-" 2651 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_MSB _u(31) 2652 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_LSB _u(0) 2653 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 2654 // ============================================================================= 2655 // Register : DMA_CH6_AL2_CTRL 2656 // Description : Alias for channel 6 CTRL register 2657 #define DMA_CH6_AL2_CTRL_OFFSET _u(0x000001a0) 2658 #define DMA_CH6_AL2_CTRL_BITS _u(0xffffffff) 2659 #define DMA_CH6_AL2_CTRL_RESET "-" 2660 #define DMA_CH6_AL2_CTRL_MSB _u(31) 2661 #define DMA_CH6_AL2_CTRL_LSB _u(0) 2662 #define DMA_CH6_AL2_CTRL_ACCESS "RW" 2663 // ============================================================================= 2664 // Register : DMA_CH6_AL2_TRANS_COUNT 2665 // Description : Alias for channel 6 TRANS_COUNT register 2666 #define DMA_CH6_AL2_TRANS_COUNT_OFFSET _u(0x000001a4) 2667 #define DMA_CH6_AL2_TRANS_COUNT_BITS _u(0xffffffff) 2668 #define DMA_CH6_AL2_TRANS_COUNT_RESET "-" 2669 #define DMA_CH6_AL2_TRANS_COUNT_MSB _u(31) 2670 #define DMA_CH6_AL2_TRANS_COUNT_LSB _u(0) 2671 #define DMA_CH6_AL2_TRANS_COUNT_ACCESS "RW" 2672 // ============================================================================= 2673 // Register : DMA_CH6_AL2_READ_ADDR 2674 // Description : Alias for channel 6 READ_ADDR register 2675 #define DMA_CH6_AL2_READ_ADDR_OFFSET _u(0x000001a8) 2676 #define DMA_CH6_AL2_READ_ADDR_BITS _u(0xffffffff) 2677 #define DMA_CH6_AL2_READ_ADDR_RESET "-" 2678 #define DMA_CH6_AL2_READ_ADDR_MSB _u(31) 2679 #define DMA_CH6_AL2_READ_ADDR_LSB _u(0) 2680 #define DMA_CH6_AL2_READ_ADDR_ACCESS "RW" 2681 // ============================================================================= 2682 // Register : DMA_CH6_AL2_WRITE_ADDR_TRIG 2683 // Description : Alias for channel 6 WRITE_ADDR register 2684 // This is a trigger register (0xc). Writing a nonzero value will 2685 // reload the channel counter and start the channel. 2686 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ac) 2687 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 2688 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_RESET "-" 2689 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_MSB _u(31) 2690 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_LSB _u(0) 2691 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 2692 // ============================================================================= 2693 // Register : DMA_CH6_AL3_CTRL 2694 // Description : Alias for channel 6 CTRL register 2695 #define DMA_CH6_AL3_CTRL_OFFSET _u(0x000001b0) 2696 #define DMA_CH6_AL3_CTRL_BITS _u(0xffffffff) 2697 #define DMA_CH6_AL3_CTRL_RESET "-" 2698 #define DMA_CH6_AL3_CTRL_MSB _u(31) 2699 #define DMA_CH6_AL3_CTRL_LSB _u(0) 2700 #define DMA_CH6_AL3_CTRL_ACCESS "RW" 2701 // ============================================================================= 2702 // Register : DMA_CH6_AL3_WRITE_ADDR 2703 // Description : Alias for channel 6 WRITE_ADDR register 2704 #define DMA_CH6_AL3_WRITE_ADDR_OFFSET _u(0x000001b4) 2705 #define DMA_CH6_AL3_WRITE_ADDR_BITS _u(0xffffffff) 2706 #define DMA_CH6_AL3_WRITE_ADDR_RESET "-" 2707 #define DMA_CH6_AL3_WRITE_ADDR_MSB _u(31) 2708 #define DMA_CH6_AL3_WRITE_ADDR_LSB _u(0) 2709 #define DMA_CH6_AL3_WRITE_ADDR_ACCESS "RW" 2710 // ============================================================================= 2711 // Register : DMA_CH6_AL3_TRANS_COUNT 2712 // Description : Alias for channel 6 TRANS_COUNT register 2713 #define DMA_CH6_AL3_TRANS_COUNT_OFFSET _u(0x000001b8) 2714 #define DMA_CH6_AL3_TRANS_COUNT_BITS _u(0xffffffff) 2715 #define DMA_CH6_AL3_TRANS_COUNT_RESET "-" 2716 #define DMA_CH6_AL3_TRANS_COUNT_MSB _u(31) 2717 #define DMA_CH6_AL3_TRANS_COUNT_LSB _u(0) 2718 #define DMA_CH6_AL3_TRANS_COUNT_ACCESS "RW" 2719 // ============================================================================= 2720 // Register : DMA_CH6_AL3_READ_ADDR_TRIG 2721 // Description : Alias for channel 6 READ_ADDR register 2722 // This is a trigger register (0xc). Writing a nonzero value will 2723 // reload the channel counter and start the channel. 2724 #define DMA_CH6_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001bc) 2725 #define DMA_CH6_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 2726 #define DMA_CH6_AL3_READ_ADDR_TRIG_RESET "-" 2727 #define DMA_CH6_AL3_READ_ADDR_TRIG_MSB _u(31) 2728 #define DMA_CH6_AL3_READ_ADDR_TRIG_LSB _u(0) 2729 #define DMA_CH6_AL3_READ_ADDR_TRIG_ACCESS "RW" 2730 // ============================================================================= 2731 // Register : DMA_CH7_READ_ADDR 2732 // Description : DMA Channel 7 Read Address pointer 2733 // This register updates automatically each time a read completes. 2734 // The current value is the next address to be read by this 2735 // channel. 2736 #define DMA_CH7_READ_ADDR_OFFSET _u(0x000001c0) 2737 #define DMA_CH7_READ_ADDR_BITS _u(0xffffffff) 2738 #define DMA_CH7_READ_ADDR_RESET _u(0x00000000) 2739 #define DMA_CH7_READ_ADDR_MSB _u(31) 2740 #define DMA_CH7_READ_ADDR_LSB _u(0) 2741 #define DMA_CH7_READ_ADDR_ACCESS "RW" 2742 // ============================================================================= 2743 // Register : DMA_CH7_WRITE_ADDR 2744 // Description : DMA Channel 7 Write Address pointer 2745 // This register updates automatically each time a write 2746 // completes. The current value is the next address to be written 2747 // by this channel. 2748 #define DMA_CH7_WRITE_ADDR_OFFSET _u(0x000001c4) 2749 #define DMA_CH7_WRITE_ADDR_BITS _u(0xffffffff) 2750 #define DMA_CH7_WRITE_ADDR_RESET _u(0x00000000) 2751 #define DMA_CH7_WRITE_ADDR_MSB _u(31) 2752 #define DMA_CH7_WRITE_ADDR_LSB _u(0) 2753 #define DMA_CH7_WRITE_ADDR_ACCESS "RW" 2754 // ============================================================================= 2755 // Register : DMA_CH7_TRANS_COUNT 2756 // Description : DMA Channel 7 Transfer Count 2757 // Program the number of bus transfers a channel will perform 2758 // before halting. Note that, if transfers are larger than one 2759 // byte in size, this is not equal to the number of bytes 2760 // transferred (see CTRL_DATA_SIZE). 2761 // 2762 // When the channel is active, reading this register shows the 2763 // number of transfers remaining, updating automatically each time 2764 // a write transfer completes. 2765 // 2766 // Writing this register sets the RELOAD value for the transfer 2767 // counter. Each time this channel is triggered, the RELOAD value 2768 // is copied into the live transfer counter. The channel can be 2769 // started multiple times, and will perform the same number of 2770 // transfers each time, as programmed by most recent write. 2771 // 2772 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 2773 // is used as a trigger, the written value is used immediately as 2774 // the length of the new transfer sequence, as well as being 2775 // written to RELOAD. 2776 #define DMA_CH7_TRANS_COUNT_OFFSET _u(0x000001c8) 2777 #define DMA_CH7_TRANS_COUNT_BITS _u(0xffffffff) 2778 #define DMA_CH7_TRANS_COUNT_RESET _u(0x00000000) 2779 #define DMA_CH7_TRANS_COUNT_MSB _u(31) 2780 #define DMA_CH7_TRANS_COUNT_LSB _u(0) 2781 #define DMA_CH7_TRANS_COUNT_ACCESS "RW" 2782 // ============================================================================= 2783 // Register : DMA_CH7_CTRL_TRIG 2784 // Description : DMA Channel 7 Control and Status 2785 #define DMA_CH7_CTRL_TRIG_OFFSET _u(0x000001cc) 2786 #define DMA_CH7_CTRL_TRIG_BITS _u(0xe1ffffff) 2787 #define DMA_CH7_CTRL_TRIG_RESET _u(0x00000000) 2788 // ----------------------------------------------------------------------------- 2789 // Field : DMA_CH7_CTRL_TRIG_AHB_ERROR 2790 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 2791 // halts when it encounters any bus error, and always raises its 2792 // channel IRQ flag. 2793 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 2794 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 2795 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_MSB _u(31) 2796 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_LSB _u(31) 2797 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 2798 // ----------------------------------------------------------------------------- 2799 // Field : DMA_CH7_CTRL_TRIG_READ_ERROR 2800 // Description : If 1, the channel received a read bus error. Write one to 2801 // clear. 2802 // READ_ADDR shows the approximate address where the bus error was 2803 // encountered (will not be earlier, or more than 3 transfers 2804 // later) 2805 #define DMA_CH7_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 2806 #define DMA_CH7_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 2807 #define DMA_CH7_CTRL_TRIG_READ_ERROR_MSB _u(30) 2808 #define DMA_CH7_CTRL_TRIG_READ_ERROR_LSB _u(30) 2809 #define DMA_CH7_CTRL_TRIG_READ_ERROR_ACCESS "WC" 2810 // ----------------------------------------------------------------------------- 2811 // Field : DMA_CH7_CTRL_TRIG_WRITE_ERROR 2812 // Description : If 1, the channel received a write bus error. Write one to 2813 // clear. 2814 // WRITE_ADDR shows the approximate address where the bus error 2815 // was encountered (will not be earlier, or more than 5 transfers 2816 // later) 2817 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 2818 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 2819 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 2820 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 2821 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 2822 // ----------------------------------------------------------------------------- 2823 // Field : DMA_CH7_CTRL_TRIG_BUSY 2824 // Description : This flag goes high when the channel starts a new transfer 2825 // sequence, and low when the last transfer of that sequence 2826 // completes. Clearing EN while BUSY is high pauses the channel, 2827 // and BUSY will stay high while paused. 2828 // 2829 // To terminate a sequence early (and clear the BUSY flag), see 2830 // CHAN_ABORT. 2831 #define DMA_CH7_CTRL_TRIG_BUSY_RESET _u(0x0) 2832 #define DMA_CH7_CTRL_TRIG_BUSY_BITS _u(0x01000000) 2833 #define DMA_CH7_CTRL_TRIG_BUSY_MSB _u(24) 2834 #define DMA_CH7_CTRL_TRIG_BUSY_LSB _u(24) 2835 #define DMA_CH7_CTRL_TRIG_BUSY_ACCESS "RO" 2836 // ----------------------------------------------------------------------------- 2837 // Field : DMA_CH7_CTRL_TRIG_SNIFF_EN 2838 // Description : If 1, this channel's data transfers are visible to the sniff 2839 // hardware, and each transfer will advance the state of the 2840 // checksum. This only applies if the sniff hardware is enabled, 2841 // and has this channel selected. 2842 // 2843 // This allows checksum to be enabled or disabled on a 2844 // per-control- block basis. 2845 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 2846 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 2847 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_MSB _u(23) 2848 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_LSB _u(23) 2849 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 2850 // ----------------------------------------------------------------------------- 2851 // Field : DMA_CH7_CTRL_TRIG_BSWAP 2852 // Description : Apply byte-swap transformation to DMA data. 2853 // For byte data, this has no effect. For halfword data, the two 2854 // bytes of each halfword are swapped. For word data, the four 2855 // bytes of each word are swapped to reverse order. 2856 #define DMA_CH7_CTRL_TRIG_BSWAP_RESET _u(0x0) 2857 #define DMA_CH7_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 2858 #define DMA_CH7_CTRL_TRIG_BSWAP_MSB _u(22) 2859 #define DMA_CH7_CTRL_TRIG_BSWAP_LSB _u(22) 2860 #define DMA_CH7_CTRL_TRIG_BSWAP_ACCESS "RW" 2861 // ----------------------------------------------------------------------------- 2862 // Field : DMA_CH7_CTRL_TRIG_IRQ_QUIET 2863 // Description : In QUIET mode, the channel does not generate IRQs at the end of 2864 // every transfer block. Instead, an IRQ is raised when NULL is 2865 // written to a trigger register, indicating the end of a control 2866 // block chain. 2867 // 2868 // This reduces the number of interrupts to be serviced by the CPU 2869 // when transferring a DMA chain of many small control blocks. 2870 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2871 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 2872 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 2873 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 2874 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2875 // ----------------------------------------------------------------------------- 2876 // Field : DMA_CH7_CTRL_TRIG_TREQ_SEL 2877 // Description : Select a Transfer Request signal. 2878 // The channel uses the transfer request signal to pace its data 2879 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2880 // or external (DREQ, a Data Request from the system). 2881 // 0x0 to 0x3a -> select DREQ n as TREQ 2882 // 0x3b -> Select Timer 0 as TREQ 2883 // 0x3c -> Select Timer 1 as TREQ 2884 // 0x3d -> Select Timer 2 as TREQ (Optional) 2885 // 0x3e -> Select Timer 3 as TREQ (Optional) 2886 // 0x3f -> Permanent request, for unpaced transfers. 2887 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2888 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 2889 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_MSB _u(20) 2890 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_LSB _u(15) 2891 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2892 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2893 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2894 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2895 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2896 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2897 // ----------------------------------------------------------------------------- 2898 // Field : DMA_CH7_CTRL_TRIG_CHAIN_TO 2899 // Description : When this channel completes, it will trigger the channel 2900 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2901 // channel)_. 2902 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2903 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 2904 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_MSB _u(14) 2905 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_LSB _u(11) 2906 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2907 // ----------------------------------------------------------------------------- 2908 // Field : DMA_CH7_CTRL_TRIG_RING_SEL 2909 // Description : Select whether RING_SIZE applies to read or write addresses. 2910 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2911 // boundary. If 1, write addresses are wrapped. 2912 #define DMA_CH7_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2913 #define DMA_CH7_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 2914 #define DMA_CH7_CTRL_TRIG_RING_SEL_MSB _u(10) 2915 #define DMA_CH7_CTRL_TRIG_RING_SEL_LSB _u(10) 2916 #define DMA_CH7_CTRL_TRIG_RING_SEL_ACCESS "RW" 2917 // ----------------------------------------------------------------------------- 2918 // Field : DMA_CH7_CTRL_TRIG_RING_SIZE 2919 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2920 // 0, only the lower n bits of the address will change. This wraps 2921 // the address on a (1 << n) byte boundary, facilitating access to 2922 // naturally-aligned ring buffers. 2923 // 2924 // Ring sizes between 2 and 32768 bytes are possible. This can 2925 // apply to either read or write addresses, based on value of 2926 // RING_SEL. 2927 // 0x0 -> RING_NONE 2928 #define DMA_CH7_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2929 #define DMA_CH7_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 2930 #define DMA_CH7_CTRL_TRIG_RING_SIZE_MSB _u(9) 2931 #define DMA_CH7_CTRL_TRIG_RING_SIZE_LSB _u(6) 2932 #define DMA_CH7_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2933 #define DMA_CH7_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2934 // ----------------------------------------------------------------------------- 2935 // Field : DMA_CH7_CTRL_TRIG_INCR_WRITE 2936 // Description : If 1, the write address increments with each transfer. If 0, 2937 // each write is directed to the same, initial address. 2938 // 2939 // Generally this should be disabled for memory-to-peripheral 2940 // transfers. 2941 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2942 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 2943 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_MSB _u(5) 2944 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_LSB _u(5) 2945 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 2946 // ----------------------------------------------------------------------------- 2947 // Field : DMA_CH7_CTRL_TRIG_INCR_READ 2948 // Description : If 1, the read address increments with each transfer. If 0, 2949 // each read is directed to the same, initial address. 2950 // 2951 // Generally this should be disabled for peripheral-to-memory 2952 // transfers. 2953 #define DMA_CH7_CTRL_TRIG_INCR_READ_RESET _u(0x0) 2954 #define DMA_CH7_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 2955 #define DMA_CH7_CTRL_TRIG_INCR_READ_MSB _u(4) 2956 #define DMA_CH7_CTRL_TRIG_INCR_READ_LSB _u(4) 2957 #define DMA_CH7_CTRL_TRIG_INCR_READ_ACCESS "RW" 2958 // ----------------------------------------------------------------------------- 2959 // Field : DMA_CH7_CTRL_TRIG_DATA_SIZE 2960 // Description : Set the size of each bus transfer (byte/halfword/word). 2961 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 2962 // with each transfer. 2963 // 0x0 -> SIZE_BYTE 2964 // 0x1 -> SIZE_HALFWORD 2965 // 0x2 -> SIZE_WORD 2966 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 2967 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 2968 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_MSB _u(3) 2969 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_LSB _u(2) 2970 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 2971 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 2972 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 2973 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 2974 // ----------------------------------------------------------------------------- 2975 // Field : DMA_CH7_CTRL_TRIG_HIGH_PRIORITY 2976 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 2977 // scheduling: in each scheduling round, all high priority 2978 // channels are considered first, and then only a single low 2979 // priority channel, before returning to the high priority 2980 // channels. 2981 // 2982 // This only affects the order in which the DMA schedules 2983 // channels. The DMA's bus priority is not changed. If the DMA is 2984 // not saturated then a low priority channel will see no loss of 2985 // throughput. 2986 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 2987 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 2988 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 2989 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 2990 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 2991 // ----------------------------------------------------------------------------- 2992 // Field : DMA_CH7_CTRL_TRIG_EN 2993 // Description : DMA Channel Enable. 2994 // When 1, the channel will respond to triggering events, which 2995 // will cause it to become BUSY and start transferring data. When 2996 // 0, the channel will ignore triggers, stop issuing transfers, 2997 // and pause the current transfer sequence (i.e. BUSY will remain 2998 // high if already high) 2999 #define DMA_CH7_CTRL_TRIG_EN_RESET _u(0x0) 3000 #define DMA_CH7_CTRL_TRIG_EN_BITS _u(0x00000001) 3001 #define DMA_CH7_CTRL_TRIG_EN_MSB _u(0) 3002 #define DMA_CH7_CTRL_TRIG_EN_LSB _u(0) 3003 #define DMA_CH7_CTRL_TRIG_EN_ACCESS "RW" 3004 // ============================================================================= 3005 // Register : DMA_CH7_AL1_CTRL 3006 // Description : Alias for channel 7 CTRL register 3007 #define DMA_CH7_AL1_CTRL_OFFSET _u(0x000001d0) 3008 #define DMA_CH7_AL1_CTRL_BITS _u(0xffffffff) 3009 #define DMA_CH7_AL1_CTRL_RESET "-" 3010 #define DMA_CH7_AL1_CTRL_MSB _u(31) 3011 #define DMA_CH7_AL1_CTRL_LSB _u(0) 3012 #define DMA_CH7_AL1_CTRL_ACCESS "RW" 3013 // ============================================================================= 3014 // Register : DMA_CH7_AL1_READ_ADDR 3015 // Description : Alias for channel 7 READ_ADDR register 3016 #define DMA_CH7_AL1_READ_ADDR_OFFSET _u(0x000001d4) 3017 #define DMA_CH7_AL1_READ_ADDR_BITS _u(0xffffffff) 3018 #define DMA_CH7_AL1_READ_ADDR_RESET "-" 3019 #define DMA_CH7_AL1_READ_ADDR_MSB _u(31) 3020 #define DMA_CH7_AL1_READ_ADDR_LSB _u(0) 3021 #define DMA_CH7_AL1_READ_ADDR_ACCESS "RW" 3022 // ============================================================================= 3023 // Register : DMA_CH7_AL1_WRITE_ADDR 3024 // Description : Alias for channel 7 WRITE_ADDR register 3025 #define DMA_CH7_AL1_WRITE_ADDR_OFFSET _u(0x000001d8) 3026 #define DMA_CH7_AL1_WRITE_ADDR_BITS _u(0xffffffff) 3027 #define DMA_CH7_AL1_WRITE_ADDR_RESET "-" 3028 #define DMA_CH7_AL1_WRITE_ADDR_MSB _u(31) 3029 #define DMA_CH7_AL1_WRITE_ADDR_LSB _u(0) 3030 #define DMA_CH7_AL1_WRITE_ADDR_ACCESS "RW" 3031 // ============================================================================= 3032 // Register : DMA_CH7_AL1_TRANS_COUNT_TRIG 3033 // Description : Alias for channel 7 TRANS_COUNT register 3034 // This is a trigger register (0xc). Writing a nonzero value will 3035 // reload the channel counter and start the channel. 3036 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000001dc) 3037 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 3038 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_RESET "-" 3039 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_MSB _u(31) 3040 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_LSB _u(0) 3041 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 3042 // ============================================================================= 3043 // Register : DMA_CH7_AL2_CTRL 3044 // Description : Alias for channel 7 CTRL register 3045 #define DMA_CH7_AL2_CTRL_OFFSET _u(0x000001e0) 3046 #define DMA_CH7_AL2_CTRL_BITS _u(0xffffffff) 3047 #define DMA_CH7_AL2_CTRL_RESET "-" 3048 #define DMA_CH7_AL2_CTRL_MSB _u(31) 3049 #define DMA_CH7_AL2_CTRL_LSB _u(0) 3050 #define DMA_CH7_AL2_CTRL_ACCESS "RW" 3051 // ============================================================================= 3052 // Register : DMA_CH7_AL2_TRANS_COUNT 3053 // Description : Alias for channel 7 TRANS_COUNT register 3054 #define DMA_CH7_AL2_TRANS_COUNT_OFFSET _u(0x000001e4) 3055 #define DMA_CH7_AL2_TRANS_COUNT_BITS _u(0xffffffff) 3056 #define DMA_CH7_AL2_TRANS_COUNT_RESET "-" 3057 #define DMA_CH7_AL2_TRANS_COUNT_MSB _u(31) 3058 #define DMA_CH7_AL2_TRANS_COUNT_LSB _u(0) 3059 #define DMA_CH7_AL2_TRANS_COUNT_ACCESS "RW" 3060 // ============================================================================= 3061 // Register : DMA_CH7_AL2_READ_ADDR 3062 // Description : Alias for channel 7 READ_ADDR register 3063 #define DMA_CH7_AL2_READ_ADDR_OFFSET _u(0x000001e8) 3064 #define DMA_CH7_AL2_READ_ADDR_BITS _u(0xffffffff) 3065 #define DMA_CH7_AL2_READ_ADDR_RESET "-" 3066 #define DMA_CH7_AL2_READ_ADDR_MSB _u(31) 3067 #define DMA_CH7_AL2_READ_ADDR_LSB _u(0) 3068 #define DMA_CH7_AL2_READ_ADDR_ACCESS "RW" 3069 // ============================================================================= 3070 // Register : DMA_CH7_AL2_WRITE_ADDR_TRIG 3071 // Description : Alias for channel 7 WRITE_ADDR register 3072 // This is a trigger register (0xc). Writing a nonzero value will 3073 // reload the channel counter and start the channel. 3074 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ec) 3075 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 3076 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_RESET "-" 3077 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_MSB _u(31) 3078 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_LSB _u(0) 3079 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 3080 // ============================================================================= 3081 // Register : DMA_CH7_AL3_CTRL 3082 // Description : Alias for channel 7 CTRL register 3083 #define DMA_CH7_AL3_CTRL_OFFSET _u(0x000001f0) 3084 #define DMA_CH7_AL3_CTRL_BITS _u(0xffffffff) 3085 #define DMA_CH7_AL3_CTRL_RESET "-" 3086 #define DMA_CH7_AL3_CTRL_MSB _u(31) 3087 #define DMA_CH7_AL3_CTRL_LSB _u(0) 3088 #define DMA_CH7_AL3_CTRL_ACCESS "RW" 3089 // ============================================================================= 3090 // Register : DMA_CH7_AL3_WRITE_ADDR 3091 // Description : Alias for channel 7 WRITE_ADDR register 3092 #define DMA_CH7_AL3_WRITE_ADDR_OFFSET _u(0x000001f4) 3093 #define DMA_CH7_AL3_WRITE_ADDR_BITS _u(0xffffffff) 3094 #define DMA_CH7_AL3_WRITE_ADDR_RESET "-" 3095 #define DMA_CH7_AL3_WRITE_ADDR_MSB _u(31) 3096 #define DMA_CH7_AL3_WRITE_ADDR_LSB _u(0) 3097 #define DMA_CH7_AL3_WRITE_ADDR_ACCESS "RW" 3098 // ============================================================================= 3099 // Register : DMA_CH7_AL3_TRANS_COUNT 3100 // Description : Alias for channel 7 TRANS_COUNT register 3101 #define DMA_CH7_AL3_TRANS_COUNT_OFFSET _u(0x000001f8) 3102 #define DMA_CH7_AL3_TRANS_COUNT_BITS _u(0xffffffff) 3103 #define DMA_CH7_AL3_TRANS_COUNT_RESET "-" 3104 #define DMA_CH7_AL3_TRANS_COUNT_MSB _u(31) 3105 #define DMA_CH7_AL3_TRANS_COUNT_LSB _u(0) 3106 #define DMA_CH7_AL3_TRANS_COUNT_ACCESS "RW" 3107 // ============================================================================= 3108 // Register : DMA_CH7_AL3_READ_ADDR_TRIG 3109 // Description : Alias for channel 7 READ_ADDR register 3110 // This is a trigger register (0xc). Writing a nonzero value will 3111 // reload the channel counter and start the channel. 3112 #define DMA_CH7_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001fc) 3113 #define DMA_CH7_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 3114 #define DMA_CH7_AL3_READ_ADDR_TRIG_RESET "-" 3115 #define DMA_CH7_AL3_READ_ADDR_TRIG_MSB _u(31) 3116 #define DMA_CH7_AL3_READ_ADDR_TRIG_LSB _u(0) 3117 #define DMA_CH7_AL3_READ_ADDR_TRIG_ACCESS "RW" 3118 // ============================================================================= 3119 // Register : DMA_CH8_READ_ADDR 3120 // Description : DMA Channel 8 Read Address pointer 3121 // This register updates automatically each time a read completes. 3122 // The current value is the next address to be read by this 3123 // channel. 3124 #define DMA_CH8_READ_ADDR_OFFSET _u(0x00000200) 3125 #define DMA_CH8_READ_ADDR_BITS _u(0xffffffff) 3126 #define DMA_CH8_READ_ADDR_RESET _u(0x00000000) 3127 #define DMA_CH8_READ_ADDR_MSB _u(31) 3128 #define DMA_CH8_READ_ADDR_LSB _u(0) 3129 #define DMA_CH8_READ_ADDR_ACCESS "RW" 3130 // ============================================================================= 3131 // Register : DMA_CH8_WRITE_ADDR 3132 // Description : DMA Channel 8 Write Address pointer 3133 // This register updates automatically each time a write 3134 // completes. The current value is the next address to be written 3135 // by this channel. 3136 #define DMA_CH8_WRITE_ADDR_OFFSET _u(0x00000204) 3137 #define DMA_CH8_WRITE_ADDR_BITS _u(0xffffffff) 3138 #define DMA_CH8_WRITE_ADDR_RESET _u(0x00000000) 3139 #define DMA_CH8_WRITE_ADDR_MSB _u(31) 3140 #define DMA_CH8_WRITE_ADDR_LSB _u(0) 3141 #define DMA_CH8_WRITE_ADDR_ACCESS "RW" 3142 // ============================================================================= 3143 // Register : DMA_CH8_TRANS_COUNT 3144 // Description : DMA Channel 8 Transfer Count 3145 // Program the number of bus transfers a channel will perform 3146 // before halting. Note that, if transfers are larger than one 3147 // byte in size, this is not equal to the number of bytes 3148 // transferred (see CTRL_DATA_SIZE). 3149 // 3150 // When the channel is active, reading this register shows the 3151 // number of transfers remaining, updating automatically each time 3152 // a write transfer completes. 3153 // 3154 // Writing this register sets the RELOAD value for the transfer 3155 // counter. Each time this channel is triggered, the RELOAD value 3156 // is copied into the live transfer counter. The channel can be 3157 // started multiple times, and will perform the same number of 3158 // transfers each time, as programmed by most recent write. 3159 // 3160 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 3161 // is used as a trigger, the written value is used immediately as 3162 // the length of the new transfer sequence, as well as being 3163 // written to RELOAD. 3164 #define DMA_CH8_TRANS_COUNT_OFFSET _u(0x00000208) 3165 #define DMA_CH8_TRANS_COUNT_BITS _u(0xffffffff) 3166 #define DMA_CH8_TRANS_COUNT_RESET _u(0x00000000) 3167 #define DMA_CH8_TRANS_COUNT_MSB _u(31) 3168 #define DMA_CH8_TRANS_COUNT_LSB _u(0) 3169 #define DMA_CH8_TRANS_COUNT_ACCESS "RW" 3170 // ============================================================================= 3171 // Register : DMA_CH8_CTRL_TRIG 3172 // Description : DMA Channel 8 Control and Status 3173 #define DMA_CH8_CTRL_TRIG_OFFSET _u(0x0000020c) 3174 #define DMA_CH8_CTRL_TRIG_BITS _u(0xe1ffffff) 3175 #define DMA_CH8_CTRL_TRIG_RESET _u(0x00000000) 3176 // ----------------------------------------------------------------------------- 3177 // Field : DMA_CH8_CTRL_TRIG_AHB_ERROR 3178 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 3179 // halts when it encounters any bus error, and always raises its 3180 // channel IRQ flag. 3181 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 3182 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 3183 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_MSB _u(31) 3184 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_LSB _u(31) 3185 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 3186 // ----------------------------------------------------------------------------- 3187 // Field : DMA_CH8_CTRL_TRIG_READ_ERROR 3188 // Description : If 1, the channel received a read bus error. Write one to 3189 // clear. 3190 // READ_ADDR shows the approximate address where the bus error was 3191 // encountered (will not be earlier, or more than 3 transfers 3192 // later) 3193 #define DMA_CH8_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 3194 #define DMA_CH8_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 3195 #define DMA_CH8_CTRL_TRIG_READ_ERROR_MSB _u(30) 3196 #define DMA_CH8_CTRL_TRIG_READ_ERROR_LSB _u(30) 3197 #define DMA_CH8_CTRL_TRIG_READ_ERROR_ACCESS "WC" 3198 // ----------------------------------------------------------------------------- 3199 // Field : DMA_CH8_CTRL_TRIG_WRITE_ERROR 3200 // Description : If 1, the channel received a write bus error. Write one to 3201 // clear. 3202 // WRITE_ADDR shows the approximate address where the bus error 3203 // was encountered (will not be earlier, or more than 5 transfers 3204 // later) 3205 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 3206 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 3207 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 3208 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 3209 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 3210 // ----------------------------------------------------------------------------- 3211 // Field : DMA_CH8_CTRL_TRIG_BUSY 3212 // Description : This flag goes high when the channel starts a new transfer 3213 // sequence, and low when the last transfer of that sequence 3214 // completes. Clearing EN while BUSY is high pauses the channel, 3215 // and BUSY will stay high while paused. 3216 // 3217 // To terminate a sequence early (and clear the BUSY flag), see 3218 // CHAN_ABORT. 3219 #define DMA_CH8_CTRL_TRIG_BUSY_RESET _u(0x0) 3220 #define DMA_CH8_CTRL_TRIG_BUSY_BITS _u(0x01000000) 3221 #define DMA_CH8_CTRL_TRIG_BUSY_MSB _u(24) 3222 #define DMA_CH8_CTRL_TRIG_BUSY_LSB _u(24) 3223 #define DMA_CH8_CTRL_TRIG_BUSY_ACCESS "RO" 3224 // ----------------------------------------------------------------------------- 3225 // Field : DMA_CH8_CTRL_TRIG_SNIFF_EN 3226 // Description : If 1, this channel's data transfers are visible to the sniff 3227 // hardware, and each transfer will advance the state of the 3228 // checksum. This only applies if the sniff hardware is enabled, 3229 // and has this channel selected. 3230 // 3231 // This allows checksum to be enabled or disabled on a 3232 // per-control- block basis. 3233 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 3234 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 3235 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_MSB _u(23) 3236 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_LSB _u(23) 3237 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 3238 // ----------------------------------------------------------------------------- 3239 // Field : DMA_CH8_CTRL_TRIG_BSWAP 3240 // Description : Apply byte-swap transformation to DMA data. 3241 // For byte data, this has no effect. For halfword data, the two 3242 // bytes of each halfword are swapped. For word data, the four 3243 // bytes of each word are swapped to reverse order. 3244 #define DMA_CH8_CTRL_TRIG_BSWAP_RESET _u(0x0) 3245 #define DMA_CH8_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 3246 #define DMA_CH8_CTRL_TRIG_BSWAP_MSB _u(22) 3247 #define DMA_CH8_CTRL_TRIG_BSWAP_LSB _u(22) 3248 #define DMA_CH8_CTRL_TRIG_BSWAP_ACCESS "RW" 3249 // ----------------------------------------------------------------------------- 3250 // Field : DMA_CH8_CTRL_TRIG_IRQ_QUIET 3251 // Description : In QUIET mode, the channel does not generate IRQs at the end of 3252 // every transfer block. Instead, an IRQ is raised when NULL is 3253 // written to a trigger register, indicating the end of a control 3254 // block chain. 3255 // 3256 // This reduces the number of interrupts to be serviced by the CPU 3257 // when transferring a DMA chain of many small control blocks. 3258 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 3259 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 3260 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 3261 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 3262 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 3263 // ----------------------------------------------------------------------------- 3264 // Field : DMA_CH8_CTRL_TRIG_TREQ_SEL 3265 // Description : Select a Transfer Request signal. 3266 // The channel uses the transfer request signal to pace its data 3267 // transfer rate. Sources for TREQ signals are internal (TIMERS) 3268 // or external (DREQ, a Data Request from the system). 3269 // 0x0 to 0x3a -> select DREQ n as TREQ 3270 // 0x3b -> Select Timer 0 as TREQ 3271 // 0x3c -> Select Timer 1 as TREQ 3272 // 0x3d -> Select Timer 2 as TREQ (Optional) 3273 // 0x3e -> Select Timer 3 as TREQ (Optional) 3274 // 0x3f -> Permanent request, for unpaced transfers. 3275 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 3276 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 3277 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_MSB _u(20) 3278 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_LSB _u(15) 3279 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 3280 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 3281 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 3282 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 3283 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 3284 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 3285 // ----------------------------------------------------------------------------- 3286 // Field : DMA_CH8_CTRL_TRIG_CHAIN_TO 3287 // Description : When this channel completes, it will trigger the channel 3288 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 3289 // channel)_. 3290 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 3291 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 3292 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_MSB _u(14) 3293 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_LSB _u(11) 3294 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 3295 // ----------------------------------------------------------------------------- 3296 // Field : DMA_CH8_CTRL_TRIG_RING_SEL 3297 // Description : Select whether RING_SIZE applies to read or write addresses. 3298 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 3299 // boundary. If 1, write addresses are wrapped. 3300 #define DMA_CH8_CTRL_TRIG_RING_SEL_RESET _u(0x0) 3301 #define DMA_CH8_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 3302 #define DMA_CH8_CTRL_TRIG_RING_SEL_MSB _u(10) 3303 #define DMA_CH8_CTRL_TRIG_RING_SEL_LSB _u(10) 3304 #define DMA_CH8_CTRL_TRIG_RING_SEL_ACCESS "RW" 3305 // ----------------------------------------------------------------------------- 3306 // Field : DMA_CH8_CTRL_TRIG_RING_SIZE 3307 // Description : Size of address wrap region. If 0, don't wrap. For values n > 3308 // 0, only the lower n bits of the address will change. This wraps 3309 // the address on a (1 << n) byte boundary, facilitating access to 3310 // naturally-aligned ring buffers. 3311 // 3312 // Ring sizes between 2 and 32768 bytes are possible. This can 3313 // apply to either read or write addresses, based on value of 3314 // RING_SEL. 3315 // 0x0 -> RING_NONE 3316 #define DMA_CH8_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 3317 #define DMA_CH8_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 3318 #define DMA_CH8_CTRL_TRIG_RING_SIZE_MSB _u(9) 3319 #define DMA_CH8_CTRL_TRIG_RING_SIZE_LSB _u(6) 3320 #define DMA_CH8_CTRL_TRIG_RING_SIZE_ACCESS "RW" 3321 #define DMA_CH8_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 3322 // ----------------------------------------------------------------------------- 3323 // Field : DMA_CH8_CTRL_TRIG_INCR_WRITE 3324 // Description : If 1, the write address increments with each transfer. If 0, 3325 // each write is directed to the same, initial address. 3326 // 3327 // Generally this should be disabled for memory-to-peripheral 3328 // transfers. 3329 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 3330 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 3331 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_MSB _u(5) 3332 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_LSB _u(5) 3333 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 3334 // ----------------------------------------------------------------------------- 3335 // Field : DMA_CH8_CTRL_TRIG_INCR_READ 3336 // Description : If 1, the read address increments with each transfer. If 0, 3337 // each read is directed to the same, initial address. 3338 // 3339 // Generally this should be disabled for peripheral-to-memory 3340 // transfers. 3341 #define DMA_CH8_CTRL_TRIG_INCR_READ_RESET _u(0x0) 3342 #define DMA_CH8_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 3343 #define DMA_CH8_CTRL_TRIG_INCR_READ_MSB _u(4) 3344 #define DMA_CH8_CTRL_TRIG_INCR_READ_LSB _u(4) 3345 #define DMA_CH8_CTRL_TRIG_INCR_READ_ACCESS "RW" 3346 // ----------------------------------------------------------------------------- 3347 // Field : DMA_CH8_CTRL_TRIG_DATA_SIZE 3348 // Description : Set the size of each bus transfer (byte/halfword/word). 3349 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 3350 // with each transfer. 3351 // 0x0 -> SIZE_BYTE 3352 // 0x1 -> SIZE_HALFWORD 3353 // 0x2 -> SIZE_WORD 3354 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 3355 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 3356 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_MSB _u(3) 3357 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_LSB _u(2) 3358 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 3359 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 3360 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 3361 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 3362 // ----------------------------------------------------------------------------- 3363 // Field : DMA_CH8_CTRL_TRIG_HIGH_PRIORITY 3364 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 3365 // scheduling: in each scheduling round, all high priority 3366 // channels are considered first, and then only a single low 3367 // priority channel, before returning to the high priority 3368 // channels. 3369 // 3370 // This only affects the order in which the DMA schedules 3371 // channels. The DMA's bus priority is not changed. If the DMA is 3372 // not saturated then a low priority channel will see no loss of 3373 // throughput. 3374 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 3375 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 3376 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 3377 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 3378 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 3379 // ----------------------------------------------------------------------------- 3380 // Field : DMA_CH8_CTRL_TRIG_EN 3381 // Description : DMA Channel Enable. 3382 // When 1, the channel will respond to triggering events, which 3383 // will cause it to become BUSY and start transferring data. When 3384 // 0, the channel will ignore triggers, stop issuing transfers, 3385 // and pause the current transfer sequence (i.e. BUSY will remain 3386 // high if already high) 3387 #define DMA_CH8_CTRL_TRIG_EN_RESET _u(0x0) 3388 #define DMA_CH8_CTRL_TRIG_EN_BITS _u(0x00000001) 3389 #define DMA_CH8_CTRL_TRIG_EN_MSB _u(0) 3390 #define DMA_CH8_CTRL_TRIG_EN_LSB _u(0) 3391 #define DMA_CH8_CTRL_TRIG_EN_ACCESS "RW" 3392 // ============================================================================= 3393 // Register : DMA_CH8_AL1_CTRL 3394 // Description : Alias for channel 8 CTRL register 3395 #define DMA_CH8_AL1_CTRL_OFFSET _u(0x00000210) 3396 #define DMA_CH8_AL1_CTRL_BITS _u(0xffffffff) 3397 #define DMA_CH8_AL1_CTRL_RESET "-" 3398 #define DMA_CH8_AL1_CTRL_MSB _u(31) 3399 #define DMA_CH8_AL1_CTRL_LSB _u(0) 3400 #define DMA_CH8_AL1_CTRL_ACCESS "RW" 3401 // ============================================================================= 3402 // Register : DMA_CH8_AL1_READ_ADDR 3403 // Description : Alias for channel 8 READ_ADDR register 3404 #define DMA_CH8_AL1_READ_ADDR_OFFSET _u(0x00000214) 3405 #define DMA_CH8_AL1_READ_ADDR_BITS _u(0xffffffff) 3406 #define DMA_CH8_AL1_READ_ADDR_RESET "-" 3407 #define DMA_CH8_AL1_READ_ADDR_MSB _u(31) 3408 #define DMA_CH8_AL1_READ_ADDR_LSB _u(0) 3409 #define DMA_CH8_AL1_READ_ADDR_ACCESS "RW" 3410 // ============================================================================= 3411 // Register : DMA_CH8_AL1_WRITE_ADDR 3412 // Description : Alias for channel 8 WRITE_ADDR register 3413 #define DMA_CH8_AL1_WRITE_ADDR_OFFSET _u(0x00000218) 3414 #define DMA_CH8_AL1_WRITE_ADDR_BITS _u(0xffffffff) 3415 #define DMA_CH8_AL1_WRITE_ADDR_RESET "-" 3416 #define DMA_CH8_AL1_WRITE_ADDR_MSB _u(31) 3417 #define DMA_CH8_AL1_WRITE_ADDR_LSB _u(0) 3418 #define DMA_CH8_AL1_WRITE_ADDR_ACCESS "RW" 3419 // ============================================================================= 3420 // Register : DMA_CH8_AL1_TRANS_COUNT_TRIG 3421 // Description : Alias for channel 8 TRANS_COUNT register 3422 // This is a trigger register (0xc). Writing a nonzero value will 3423 // reload the channel counter and start the channel. 3424 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000021c) 3425 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 3426 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_RESET "-" 3427 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_MSB _u(31) 3428 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_LSB _u(0) 3429 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 3430 // ============================================================================= 3431 // Register : DMA_CH8_AL2_CTRL 3432 // Description : Alias for channel 8 CTRL register 3433 #define DMA_CH8_AL2_CTRL_OFFSET _u(0x00000220) 3434 #define DMA_CH8_AL2_CTRL_BITS _u(0xffffffff) 3435 #define DMA_CH8_AL2_CTRL_RESET "-" 3436 #define DMA_CH8_AL2_CTRL_MSB _u(31) 3437 #define DMA_CH8_AL2_CTRL_LSB _u(0) 3438 #define DMA_CH8_AL2_CTRL_ACCESS "RW" 3439 // ============================================================================= 3440 // Register : DMA_CH8_AL2_TRANS_COUNT 3441 // Description : Alias for channel 8 TRANS_COUNT register 3442 #define DMA_CH8_AL2_TRANS_COUNT_OFFSET _u(0x00000224) 3443 #define DMA_CH8_AL2_TRANS_COUNT_BITS _u(0xffffffff) 3444 #define DMA_CH8_AL2_TRANS_COUNT_RESET "-" 3445 #define DMA_CH8_AL2_TRANS_COUNT_MSB _u(31) 3446 #define DMA_CH8_AL2_TRANS_COUNT_LSB _u(0) 3447 #define DMA_CH8_AL2_TRANS_COUNT_ACCESS "RW" 3448 // ============================================================================= 3449 // Register : DMA_CH8_AL2_READ_ADDR 3450 // Description : Alias for channel 8 READ_ADDR register 3451 #define DMA_CH8_AL2_READ_ADDR_OFFSET _u(0x00000228) 3452 #define DMA_CH8_AL2_READ_ADDR_BITS _u(0xffffffff) 3453 #define DMA_CH8_AL2_READ_ADDR_RESET "-" 3454 #define DMA_CH8_AL2_READ_ADDR_MSB _u(31) 3455 #define DMA_CH8_AL2_READ_ADDR_LSB _u(0) 3456 #define DMA_CH8_AL2_READ_ADDR_ACCESS "RW" 3457 // ============================================================================= 3458 // Register : DMA_CH8_AL2_WRITE_ADDR_TRIG 3459 // Description : Alias for channel 8 WRITE_ADDR register 3460 // This is a trigger register (0xc). Writing a nonzero value will 3461 // reload the channel counter and start the channel. 3462 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000022c) 3463 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 3464 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_RESET "-" 3465 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_MSB _u(31) 3466 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_LSB _u(0) 3467 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 3468 // ============================================================================= 3469 // Register : DMA_CH8_AL3_CTRL 3470 // Description : Alias for channel 8 CTRL register 3471 #define DMA_CH8_AL3_CTRL_OFFSET _u(0x00000230) 3472 #define DMA_CH8_AL3_CTRL_BITS _u(0xffffffff) 3473 #define DMA_CH8_AL3_CTRL_RESET "-" 3474 #define DMA_CH8_AL3_CTRL_MSB _u(31) 3475 #define DMA_CH8_AL3_CTRL_LSB _u(0) 3476 #define DMA_CH8_AL3_CTRL_ACCESS "RW" 3477 // ============================================================================= 3478 // Register : DMA_CH8_AL3_WRITE_ADDR 3479 // Description : Alias for channel 8 WRITE_ADDR register 3480 #define DMA_CH8_AL3_WRITE_ADDR_OFFSET _u(0x00000234) 3481 #define DMA_CH8_AL3_WRITE_ADDR_BITS _u(0xffffffff) 3482 #define DMA_CH8_AL3_WRITE_ADDR_RESET "-" 3483 #define DMA_CH8_AL3_WRITE_ADDR_MSB _u(31) 3484 #define DMA_CH8_AL3_WRITE_ADDR_LSB _u(0) 3485 #define DMA_CH8_AL3_WRITE_ADDR_ACCESS "RW" 3486 // ============================================================================= 3487 // Register : DMA_CH8_AL3_TRANS_COUNT 3488 // Description : Alias for channel 8 TRANS_COUNT register 3489 #define DMA_CH8_AL3_TRANS_COUNT_OFFSET _u(0x00000238) 3490 #define DMA_CH8_AL3_TRANS_COUNT_BITS _u(0xffffffff) 3491 #define DMA_CH8_AL3_TRANS_COUNT_RESET "-" 3492 #define DMA_CH8_AL3_TRANS_COUNT_MSB _u(31) 3493 #define DMA_CH8_AL3_TRANS_COUNT_LSB _u(0) 3494 #define DMA_CH8_AL3_TRANS_COUNT_ACCESS "RW" 3495 // ============================================================================= 3496 // Register : DMA_CH8_AL3_READ_ADDR_TRIG 3497 // Description : Alias for channel 8 READ_ADDR register 3498 // This is a trigger register (0xc). Writing a nonzero value will 3499 // reload the channel counter and start the channel. 3500 #define DMA_CH8_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000023c) 3501 #define DMA_CH8_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 3502 #define DMA_CH8_AL3_READ_ADDR_TRIG_RESET "-" 3503 #define DMA_CH8_AL3_READ_ADDR_TRIG_MSB _u(31) 3504 #define DMA_CH8_AL3_READ_ADDR_TRIG_LSB _u(0) 3505 #define DMA_CH8_AL3_READ_ADDR_TRIG_ACCESS "RW" 3506 // ============================================================================= 3507 // Register : DMA_CH9_READ_ADDR 3508 // Description : DMA Channel 9 Read Address pointer 3509 // This register updates automatically each time a read completes. 3510 // The current value is the next address to be read by this 3511 // channel. 3512 #define DMA_CH9_READ_ADDR_OFFSET _u(0x00000240) 3513 #define DMA_CH9_READ_ADDR_BITS _u(0xffffffff) 3514 #define DMA_CH9_READ_ADDR_RESET _u(0x00000000) 3515 #define DMA_CH9_READ_ADDR_MSB _u(31) 3516 #define DMA_CH9_READ_ADDR_LSB _u(0) 3517 #define DMA_CH9_READ_ADDR_ACCESS "RW" 3518 // ============================================================================= 3519 // Register : DMA_CH9_WRITE_ADDR 3520 // Description : DMA Channel 9 Write Address pointer 3521 // This register updates automatically each time a write 3522 // completes. The current value is the next address to be written 3523 // by this channel. 3524 #define DMA_CH9_WRITE_ADDR_OFFSET _u(0x00000244) 3525 #define DMA_CH9_WRITE_ADDR_BITS _u(0xffffffff) 3526 #define DMA_CH9_WRITE_ADDR_RESET _u(0x00000000) 3527 #define DMA_CH9_WRITE_ADDR_MSB _u(31) 3528 #define DMA_CH9_WRITE_ADDR_LSB _u(0) 3529 #define DMA_CH9_WRITE_ADDR_ACCESS "RW" 3530 // ============================================================================= 3531 // Register : DMA_CH9_TRANS_COUNT 3532 // Description : DMA Channel 9 Transfer Count 3533 // Program the number of bus transfers a channel will perform 3534 // before halting. Note that, if transfers are larger than one 3535 // byte in size, this is not equal to the number of bytes 3536 // transferred (see CTRL_DATA_SIZE). 3537 // 3538 // When the channel is active, reading this register shows the 3539 // number of transfers remaining, updating automatically each time 3540 // a write transfer completes. 3541 // 3542 // Writing this register sets the RELOAD value for the transfer 3543 // counter. Each time this channel is triggered, the RELOAD value 3544 // is copied into the live transfer counter. The channel can be 3545 // started multiple times, and will perform the same number of 3546 // transfers each time, as programmed by most recent write. 3547 // 3548 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 3549 // is used as a trigger, the written value is used immediately as 3550 // the length of the new transfer sequence, as well as being 3551 // written to RELOAD. 3552 #define DMA_CH9_TRANS_COUNT_OFFSET _u(0x00000248) 3553 #define DMA_CH9_TRANS_COUNT_BITS _u(0xffffffff) 3554 #define DMA_CH9_TRANS_COUNT_RESET _u(0x00000000) 3555 #define DMA_CH9_TRANS_COUNT_MSB _u(31) 3556 #define DMA_CH9_TRANS_COUNT_LSB _u(0) 3557 #define DMA_CH9_TRANS_COUNT_ACCESS "RW" 3558 // ============================================================================= 3559 // Register : DMA_CH9_CTRL_TRIG 3560 // Description : DMA Channel 9 Control and Status 3561 #define DMA_CH9_CTRL_TRIG_OFFSET _u(0x0000024c) 3562 #define DMA_CH9_CTRL_TRIG_BITS _u(0xe1ffffff) 3563 #define DMA_CH9_CTRL_TRIG_RESET _u(0x00000000) 3564 // ----------------------------------------------------------------------------- 3565 // Field : DMA_CH9_CTRL_TRIG_AHB_ERROR 3566 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 3567 // halts when it encounters any bus error, and always raises its 3568 // channel IRQ flag. 3569 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 3570 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 3571 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_MSB _u(31) 3572 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_LSB _u(31) 3573 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 3574 // ----------------------------------------------------------------------------- 3575 // Field : DMA_CH9_CTRL_TRIG_READ_ERROR 3576 // Description : If 1, the channel received a read bus error. Write one to 3577 // clear. 3578 // READ_ADDR shows the approximate address where the bus error was 3579 // encountered (will not be earlier, or more than 3 transfers 3580 // later) 3581 #define DMA_CH9_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 3582 #define DMA_CH9_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 3583 #define DMA_CH9_CTRL_TRIG_READ_ERROR_MSB _u(30) 3584 #define DMA_CH9_CTRL_TRIG_READ_ERROR_LSB _u(30) 3585 #define DMA_CH9_CTRL_TRIG_READ_ERROR_ACCESS "WC" 3586 // ----------------------------------------------------------------------------- 3587 // Field : DMA_CH9_CTRL_TRIG_WRITE_ERROR 3588 // Description : If 1, the channel received a write bus error. Write one to 3589 // clear. 3590 // WRITE_ADDR shows the approximate address where the bus error 3591 // was encountered (will not be earlier, or more than 5 transfers 3592 // later) 3593 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 3594 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 3595 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 3596 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 3597 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 3598 // ----------------------------------------------------------------------------- 3599 // Field : DMA_CH9_CTRL_TRIG_BUSY 3600 // Description : This flag goes high when the channel starts a new transfer 3601 // sequence, and low when the last transfer of that sequence 3602 // completes. Clearing EN while BUSY is high pauses the channel, 3603 // and BUSY will stay high while paused. 3604 // 3605 // To terminate a sequence early (and clear the BUSY flag), see 3606 // CHAN_ABORT. 3607 #define DMA_CH9_CTRL_TRIG_BUSY_RESET _u(0x0) 3608 #define DMA_CH9_CTRL_TRIG_BUSY_BITS _u(0x01000000) 3609 #define DMA_CH9_CTRL_TRIG_BUSY_MSB _u(24) 3610 #define DMA_CH9_CTRL_TRIG_BUSY_LSB _u(24) 3611 #define DMA_CH9_CTRL_TRIG_BUSY_ACCESS "RO" 3612 // ----------------------------------------------------------------------------- 3613 // Field : DMA_CH9_CTRL_TRIG_SNIFF_EN 3614 // Description : If 1, this channel's data transfers are visible to the sniff 3615 // hardware, and each transfer will advance the state of the 3616 // checksum. This only applies if the sniff hardware is enabled, 3617 // and has this channel selected. 3618 // 3619 // This allows checksum to be enabled or disabled on a 3620 // per-control- block basis. 3621 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 3622 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 3623 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_MSB _u(23) 3624 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_LSB _u(23) 3625 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 3626 // ----------------------------------------------------------------------------- 3627 // Field : DMA_CH9_CTRL_TRIG_BSWAP 3628 // Description : Apply byte-swap transformation to DMA data. 3629 // For byte data, this has no effect. For halfword data, the two 3630 // bytes of each halfword are swapped. For word data, the four 3631 // bytes of each word are swapped to reverse order. 3632 #define DMA_CH9_CTRL_TRIG_BSWAP_RESET _u(0x0) 3633 #define DMA_CH9_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 3634 #define DMA_CH9_CTRL_TRIG_BSWAP_MSB _u(22) 3635 #define DMA_CH9_CTRL_TRIG_BSWAP_LSB _u(22) 3636 #define DMA_CH9_CTRL_TRIG_BSWAP_ACCESS "RW" 3637 // ----------------------------------------------------------------------------- 3638 // Field : DMA_CH9_CTRL_TRIG_IRQ_QUIET 3639 // Description : In QUIET mode, the channel does not generate IRQs at the end of 3640 // every transfer block. Instead, an IRQ is raised when NULL is 3641 // written to a trigger register, indicating the end of a control 3642 // block chain. 3643 // 3644 // This reduces the number of interrupts to be serviced by the CPU 3645 // when transferring a DMA chain of many small control blocks. 3646 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 3647 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 3648 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 3649 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 3650 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 3651 // ----------------------------------------------------------------------------- 3652 // Field : DMA_CH9_CTRL_TRIG_TREQ_SEL 3653 // Description : Select a Transfer Request signal. 3654 // The channel uses the transfer request signal to pace its data 3655 // transfer rate. Sources for TREQ signals are internal (TIMERS) 3656 // or external (DREQ, a Data Request from the system). 3657 // 0x0 to 0x3a -> select DREQ n as TREQ 3658 // 0x3b -> Select Timer 0 as TREQ 3659 // 0x3c -> Select Timer 1 as TREQ 3660 // 0x3d -> Select Timer 2 as TREQ (Optional) 3661 // 0x3e -> Select Timer 3 as TREQ (Optional) 3662 // 0x3f -> Permanent request, for unpaced transfers. 3663 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 3664 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 3665 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_MSB _u(20) 3666 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_LSB _u(15) 3667 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 3668 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 3669 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 3670 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 3671 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 3672 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 3673 // ----------------------------------------------------------------------------- 3674 // Field : DMA_CH9_CTRL_TRIG_CHAIN_TO 3675 // Description : When this channel completes, it will trigger the channel 3676 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 3677 // channel)_. 3678 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 3679 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 3680 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_MSB _u(14) 3681 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_LSB _u(11) 3682 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 3683 // ----------------------------------------------------------------------------- 3684 // Field : DMA_CH9_CTRL_TRIG_RING_SEL 3685 // Description : Select whether RING_SIZE applies to read or write addresses. 3686 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 3687 // boundary. If 1, write addresses are wrapped. 3688 #define DMA_CH9_CTRL_TRIG_RING_SEL_RESET _u(0x0) 3689 #define DMA_CH9_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 3690 #define DMA_CH9_CTRL_TRIG_RING_SEL_MSB _u(10) 3691 #define DMA_CH9_CTRL_TRIG_RING_SEL_LSB _u(10) 3692 #define DMA_CH9_CTRL_TRIG_RING_SEL_ACCESS "RW" 3693 // ----------------------------------------------------------------------------- 3694 // Field : DMA_CH9_CTRL_TRIG_RING_SIZE 3695 // Description : Size of address wrap region. If 0, don't wrap. For values n > 3696 // 0, only the lower n bits of the address will change. This wraps 3697 // the address on a (1 << n) byte boundary, facilitating access to 3698 // naturally-aligned ring buffers. 3699 // 3700 // Ring sizes between 2 and 32768 bytes are possible. This can 3701 // apply to either read or write addresses, based on value of 3702 // RING_SEL. 3703 // 0x0 -> RING_NONE 3704 #define DMA_CH9_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 3705 #define DMA_CH9_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 3706 #define DMA_CH9_CTRL_TRIG_RING_SIZE_MSB _u(9) 3707 #define DMA_CH9_CTRL_TRIG_RING_SIZE_LSB _u(6) 3708 #define DMA_CH9_CTRL_TRIG_RING_SIZE_ACCESS "RW" 3709 #define DMA_CH9_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 3710 // ----------------------------------------------------------------------------- 3711 // Field : DMA_CH9_CTRL_TRIG_INCR_WRITE 3712 // Description : If 1, the write address increments with each transfer. If 0, 3713 // each write is directed to the same, initial address. 3714 // 3715 // Generally this should be disabled for memory-to-peripheral 3716 // transfers. 3717 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 3718 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 3719 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_MSB _u(5) 3720 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_LSB _u(5) 3721 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 3722 // ----------------------------------------------------------------------------- 3723 // Field : DMA_CH9_CTRL_TRIG_INCR_READ 3724 // Description : If 1, the read address increments with each transfer. If 0, 3725 // each read is directed to the same, initial address. 3726 // 3727 // Generally this should be disabled for peripheral-to-memory 3728 // transfers. 3729 #define DMA_CH9_CTRL_TRIG_INCR_READ_RESET _u(0x0) 3730 #define DMA_CH9_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 3731 #define DMA_CH9_CTRL_TRIG_INCR_READ_MSB _u(4) 3732 #define DMA_CH9_CTRL_TRIG_INCR_READ_LSB _u(4) 3733 #define DMA_CH9_CTRL_TRIG_INCR_READ_ACCESS "RW" 3734 // ----------------------------------------------------------------------------- 3735 // Field : DMA_CH9_CTRL_TRIG_DATA_SIZE 3736 // Description : Set the size of each bus transfer (byte/halfword/word). 3737 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 3738 // with each transfer. 3739 // 0x0 -> SIZE_BYTE 3740 // 0x1 -> SIZE_HALFWORD 3741 // 0x2 -> SIZE_WORD 3742 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 3743 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 3744 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_MSB _u(3) 3745 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_LSB _u(2) 3746 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 3747 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 3748 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 3749 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 3750 // ----------------------------------------------------------------------------- 3751 // Field : DMA_CH9_CTRL_TRIG_HIGH_PRIORITY 3752 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 3753 // scheduling: in each scheduling round, all high priority 3754 // channels are considered first, and then only a single low 3755 // priority channel, before returning to the high priority 3756 // channels. 3757 // 3758 // This only affects the order in which the DMA schedules 3759 // channels. The DMA's bus priority is not changed. If the DMA is 3760 // not saturated then a low priority channel will see no loss of 3761 // throughput. 3762 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 3763 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 3764 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 3765 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 3766 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 3767 // ----------------------------------------------------------------------------- 3768 // Field : DMA_CH9_CTRL_TRIG_EN 3769 // Description : DMA Channel Enable. 3770 // When 1, the channel will respond to triggering events, which 3771 // will cause it to become BUSY and start transferring data. When 3772 // 0, the channel will ignore triggers, stop issuing transfers, 3773 // and pause the current transfer sequence (i.e. BUSY will remain 3774 // high if already high) 3775 #define DMA_CH9_CTRL_TRIG_EN_RESET _u(0x0) 3776 #define DMA_CH9_CTRL_TRIG_EN_BITS _u(0x00000001) 3777 #define DMA_CH9_CTRL_TRIG_EN_MSB _u(0) 3778 #define DMA_CH9_CTRL_TRIG_EN_LSB _u(0) 3779 #define DMA_CH9_CTRL_TRIG_EN_ACCESS "RW" 3780 // ============================================================================= 3781 // Register : DMA_CH9_AL1_CTRL 3782 // Description : Alias for channel 9 CTRL register 3783 #define DMA_CH9_AL1_CTRL_OFFSET _u(0x00000250) 3784 #define DMA_CH9_AL1_CTRL_BITS _u(0xffffffff) 3785 #define DMA_CH9_AL1_CTRL_RESET "-" 3786 #define DMA_CH9_AL1_CTRL_MSB _u(31) 3787 #define DMA_CH9_AL1_CTRL_LSB _u(0) 3788 #define DMA_CH9_AL1_CTRL_ACCESS "RW" 3789 // ============================================================================= 3790 // Register : DMA_CH9_AL1_READ_ADDR 3791 // Description : Alias for channel 9 READ_ADDR register 3792 #define DMA_CH9_AL1_READ_ADDR_OFFSET _u(0x00000254) 3793 #define DMA_CH9_AL1_READ_ADDR_BITS _u(0xffffffff) 3794 #define DMA_CH9_AL1_READ_ADDR_RESET "-" 3795 #define DMA_CH9_AL1_READ_ADDR_MSB _u(31) 3796 #define DMA_CH9_AL1_READ_ADDR_LSB _u(0) 3797 #define DMA_CH9_AL1_READ_ADDR_ACCESS "RW" 3798 // ============================================================================= 3799 // Register : DMA_CH9_AL1_WRITE_ADDR 3800 // Description : Alias for channel 9 WRITE_ADDR register 3801 #define DMA_CH9_AL1_WRITE_ADDR_OFFSET _u(0x00000258) 3802 #define DMA_CH9_AL1_WRITE_ADDR_BITS _u(0xffffffff) 3803 #define DMA_CH9_AL1_WRITE_ADDR_RESET "-" 3804 #define DMA_CH9_AL1_WRITE_ADDR_MSB _u(31) 3805 #define DMA_CH9_AL1_WRITE_ADDR_LSB _u(0) 3806 #define DMA_CH9_AL1_WRITE_ADDR_ACCESS "RW" 3807 // ============================================================================= 3808 // Register : DMA_CH9_AL1_TRANS_COUNT_TRIG 3809 // Description : Alias for channel 9 TRANS_COUNT register 3810 // This is a trigger register (0xc). Writing a nonzero value will 3811 // reload the channel counter and start the channel. 3812 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000025c) 3813 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 3814 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_RESET "-" 3815 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_MSB _u(31) 3816 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_LSB _u(0) 3817 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 3818 // ============================================================================= 3819 // Register : DMA_CH9_AL2_CTRL 3820 // Description : Alias for channel 9 CTRL register 3821 #define DMA_CH9_AL2_CTRL_OFFSET _u(0x00000260) 3822 #define DMA_CH9_AL2_CTRL_BITS _u(0xffffffff) 3823 #define DMA_CH9_AL2_CTRL_RESET "-" 3824 #define DMA_CH9_AL2_CTRL_MSB _u(31) 3825 #define DMA_CH9_AL2_CTRL_LSB _u(0) 3826 #define DMA_CH9_AL2_CTRL_ACCESS "RW" 3827 // ============================================================================= 3828 // Register : DMA_CH9_AL2_TRANS_COUNT 3829 // Description : Alias for channel 9 TRANS_COUNT register 3830 #define DMA_CH9_AL2_TRANS_COUNT_OFFSET _u(0x00000264) 3831 #define DMA_CH9_AL2_TRANS_COUNT_BITS _u(0xffffffff) 3832 #define DMA_CH9_AL2_TRANS_COUNT_RESET "-" 3833 #define DMA_CH9_AL2_TRANS_COUNT_MSB _u(31) 3834 #define DMA_CH9_AL2_TRANS_COUNT_LSB _u(0) 3835 #define DMA_CH9_AL2_TRANS_COUNT_ACCESS "RW" 3836 // ============================================================================= 3837 // Register : DMA_CH9_AL2_READ_ADDR 3838 // Description : Alias for channel 9 READ_ADDR register 3839 #define DMA_CH9_AL2_READ_ADDR_OFFSET _u(0x00000268) 3840 #define DMA_CH9_AL2_READ_ADDR_BITS _u(0xffffffff) 3841 #define DMA_CH9_AL2_READ_ADDR_RESET "-" 3842 #define DMA_CH9_AL2_READ_ADDR_MSB _u(31) 3843 #define DMA_CH9_AL2_READ_ADDR_LSB _u(0) 3844 #define DMA_CH9_AL2_READ_ADDR_ACCESS "RW" 3845 // ============================================================================= 3846 // Register : DMA_CH9_AL2_WRITE_ADDR_TRIG 3847 // Description : Alias for channel 9 WRITE_ADDR register 3848 // This is a trigger register (0xc). Writing a nonzero value will 3849 // reload the channel counter and start the channel. 3850 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000026c) 3851 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 3852 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_RESET "-" 3853 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_MSB _u(31) 3854 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_LSB _u(0) 3855 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 3856 // ============================================================================= 3857 // Register : DMA_CH9_AL3_CTRL 3858 // Description : Alias for channel 9 CTRL register 3859 #define DMA_CH9_AL3_CTRL_OFFSET _u(0x00000270) 3860 #define DMA_CH9_AL3_CTRL_BITS _u(0xffffffff) 3861 #define DMA_CH9_AL3_CTRL_RESET "-" 3862 #define DMA_CH9_AL3_CTRL_MSB _u(31) 3863 #define DMA_CH9_AL3_CTRL_LSB _u(0) 3864 #define DMA_CH9_AL3_CTRL_ACCESS "RW" 3865 // ============================================================================= 3866 // Register : DMA_CH9_AL3_WRITE_ADDR 3867 // Description : Alias for channel 9 WRITE_ADDR register 3868 #define DMA_CH9_AL3_WRITE_ADDR_OFFSET _u(0x00000274) 3869 #define DMA_CH9_AL3_WRITE_ADDR_BITS _u(0xffffffff) 3870 #define DMA_CH9_AL3_WRITE_ADDR_RESET "-" 3871 #define DMA_CH9_AL3_WRITE_ADDR_MSB _u(31) 3872 #define DMA_CH9_AL3_WRITE_ADDR_LSB _u(0) 3873 #define DMA_CH9_AL3_WRITE_ADDR_ACCESS "RW" 3874 // ============================================================================= 3875 // Register : DMA_CH9_AL3_TRANS_COUNT 3876 // Description : Alias for channel 9 TRANS_COUNT register 3877 #define DMA_CH9_AL3_TRANS_COUNT_OFFSET _u(0x00000278) 3878 #define DMA_CH9_AL3_TRANS_COUNT_BITS _u(0xffffffff) 3879 #define DMA_CH9_AL3_TRANS_COUNT_RESET "-" 3880 #define DMA_CH9_AL3_TRANS_COUNT_MSB _u(31) 3881 #define DMA_CH9_AL3_TRANS_COUNT_LSB _u(0) 3882 #define DMA_CH9_AL3_TRANS_COUNT_ACCESS "RW" 3883 // ============================================================================= 3884 // Register : DMA_CH9_AL3_READ_ADDR_TRIG 3885 // Description : Alias for channel 9 READ_ADDR register 3886 // This is a trigger register (0xc). Writing a nonzero value will 3887 // reload the channel counter and start the channel. 3888 #define DMA_CH9_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000027c) 3889 #define DMA_CH9_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 3890 #define DMA_CH9_AL3_READ_ADDR_TRIG_RESET "-" 3891 #define DMA_CH9_AL3_READ_ADDR_TRIG_MSB _u(31) 3892 #define DMA_CH9_AL3_READ_ADDR_TRIG_LSB _u(0) 3893 #define DMA_CH9_AL3_READ_ADDR_TRIG_ACCESS "RW" 3894 // ============================================================================= 3895 // Register : DMA_CH10_READ_ADDR 3896 // Description : DMA Channel 10 Read Address pointer 3897 // This register updates automatically each time a read completes. 3898 // The current value is the next address to be read by this 3899 // channel. 3900 #define DMA_CH10_READ_ADDR_OFFSET _u(0x00000280) 3901 #define DMA_CH10_READ_ADDR_BITS _u(0xffffffff) 3902 #define DMA_CH10_READ_ADDR_RESET _u(0x00000000) 3903 #define DMA_CH10_READ_ADDR_MSB _u(31) 3904 #define DMA_CH10_READ_ADDR_LSB _u(0) 3905 #define DMA_CH10_READ_ADDR_ACCESS "RW" 3906 // ============================================================================= 3907 // Register : DMA_CH10_WRITE_ADDR 3908 // Description : DMA Channel 10 Write Address pointer 3909 // This register updates automatically each time a write 3910 // completes. The current value is the next address to be written 3911 // by this channel. 3912 #define DMA_CH10_WRITE_ADDR_OFFSET _u(0x00000284) 3913 #define DMA_CH10_WRITE_ADDR_BITS _u(0xffffffff) 3914 #define DMA_CH10_WRITE_ADDR_RESET _u(0x00000000) 3915 #define DMA_CH10_WRITE_ADDR_MSB _u(31) 3916 #define DMA_CH10_WRITE_ADDR_LSB _u(0) 3917 #define DMA_CH10_WRITE_ADDR_ACCESS "RW" 3918 // ============================================================================= 3919 // Register : DMA_CH10_TRANS_COUNT 3920 // Description : DMA Channel 10 Transfer Count 3921 // Program the number of bus transfers a channel will perform 3922 // before halting. Note that, if transfers are larger than one 3923 // byte in size, this is not equal to the number of bytes 3924 // transferred (see CTRL_DATA_SIZE). 3925 // 3926 // When the channel is active, reading this register shows the 3927 // number of transfers remaining, updating automatically each time 3928 // a write transfer completes. 3929 // 3930 // Writing this register sets the RELOAD value for the transfer 3931 // counter. Each time this channel is triggered, the RELOAD value 3932 // is copied into the live transfer counter. The channel can be 3933 // started multiple times, and will perform the same number of 3934 // transfers each time, as programmed by most recent write. 3935 // 3936 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 3937 // is used as a trigger, the written value is used immediately as 3938 // the length of the new transfer sequence, as well as being 3939 // written to RELOAD. 3940 #define DMA_CH10_TRANS_COUNT_OFFSET _u(0x00000288) 3941 #define DMA_CH10_TRANS_COUNT_BITS _u(0xffffffff) 3942 #define DMA_CH10_TRANS_COUNT_RESET _u(0x00000000) 3943 #define DMA_CH10_TRANS_COUNT_MSB _u(31) 3944 #define DMA_CH10_TRANS_COUNT_LSB _u(0) 3945 #define DMA_CH10_TRANS_COUNT_ACCESS "RW" 3946 // ============================================================================= 3947 // Register : DMA_CH10_CTRL_TRIG 3948 // Description : DMA Channel 10 Control and Status 3949 #define DMA_CH10_CTRL_TRIG_OFFSET _u(0x0000028c) 3950 #define DMA_CH10_CTRL_TRIG_BITS _u(0xe1ffffff) 3951 #define DMA_CH10_CTRL_TRIG_RESET _u(0x00000000) 3952 // ----------------------------------------------------------------------------- 3953 // Field : DMA_CH10_CTRL_TRIG_AHB_ERROR 3954 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 3955 // halts when it encounters any bus error, and always raises its 3956 // channel IRQ flag. 3957 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 3958 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 3959 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_MSB _u(31) 3960 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_LSB _u(31) 3961 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 3962 // ----------------------------------------------------------------------------- 3963 // Field : DMA_CH10_CTRL_TRIG_READ_ERROR 3964 // Description : If 1, the channel received a read bus error. Write one to 3965 // clear. 3966 // READ_ADDR shows the approximate address where the bus error was 3967 // encountered (will not be earlier, or more than 3 transfers 3968 // later) 3969 #define DMA_CH10_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 3970 #define DMA_CH10_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 3971 #define DMA_CH10_CTRL_TRIG_READ_ERROR_MSB _u(30) 3972 #define DMA_CH10_CTRL_TRIG_READ_ERROR_LSB _u(30) 3973 #define DMA_CH10_CTRL_TRIG_READ_ERROR_ACCESS "WC" 3974 // ----------------------------------------------------------------------------- 3975 // Field : DMA_CH10_CTRL_TRIG_WRITE_ERROR 3976 // Description : If 1, the channel received a write bus error. Write one to 3977 // clear. 3978 // WRITE_ADDR shows the approximate address where the bus error 3979 // was encountered (will not be earlier, or more than 5 transfers 3980 // later) 3981 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 3982 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 3983 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 3984 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 3985 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 3986 // ----------------------------------------------------------------------------- 3987 // Field : DMA_CH10_CTRL_TRIG_BUSY 3988 // Description : This flag goes high when the channel starts a new transfer 3989 // sequence, and low when the last transfer of that sequence 3990 // completes. Clearing EN while BUSY is high pauses the channel, 3991 // and BUSY will stay high while paused. 3992 // 3993 // To terminate a sequence early (and clear the BUSY flag), see 3994 // CHAN_ABORT. 3995 #define DMA_CH10_CTRL_TRIG_BUSY_RESET _u(0x0) 3996 #define DMA_CH10_CTRL_TRIG_BUSY_BITS _u(0x01000000) 3997 #define DMA_CH10_CTRL_TRIG_BUSY_MSB _u(24) 3998 #define DMA_CH10_CTRL_TRIG_BUSY_LSB _u(24) 3999 #define DMA_CH10_CTRL_TRIG_BUSY_ACCESS "RO" 4000 // ----------------------------------------------------------------------------- 4001 // Field : DMA_CH10_CTRL_TRIG_SNIFF_EN 4002 // Description : If 1, this channel's data transfers are visible to the sniff 4003 // hardware, and each transfer will advance the state of the 4004 // checksum. This only applies if the sniff hardware is enabled, 4005 // and has this channel selected. 4006 // 4007 // This allows checksum to be enabled or disabled on a 4008 // per-control- block basis. 4009 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 4010 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 4011 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_MSB _u(23) 4012 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_LSB _u(23) 4013 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 4014 // ----------------------------------------------------------------------------- 4015 // Field : DMA_CH10_CTRL_TRIG_BSWAP 4016 // Description : Apply byte-swap transformation to DMA data. 4017 // For byte data, this has no effect. For halfword data, the two 4018 // bytes of each halfword are swapped. For word data, the four 4019 // bytes of each word are swapped to reverse order. 4020 #define DMA_CH10_CTRL_TRIG_BSWAP_RESET _u(0x0) 4021 #define DMA_CH10_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 4022 #define DMA_CH10_CTRL_TRIG_BSWAP_MSB _u(22) 4023 #define DMA_CH10_CTRL_TRIG_BSWAP_LSB _u(22) 4024 #define DMA_CH10_CTRL_TRIG_BSWAP_ACCESS "RW" 4025 // ----------------------------------------------------------------------------- 4026 // Field : DMA_CH10_CTRL_TRIG_IRQ_QUIET 4027 // Description : In QUIET mode, the channel does not generate IRQs at the end of 4028 // every transfer block. Instead, an IRQ is raised when NULL is 4029 // written to a trigger register, indicating the end of a control 4030 // block chain. 4031 // 4032 // This reduces the number of interrupts to be serviced by the CPU 4033 // when transferring a DMA chain of many small control blocks. 4034 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 4035 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 4036 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 4037 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 4038 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 4039 // ----------------------------------------------------------------------------- 4040 // Field : DMA_CH10_CTRL_TRIG_TREQ_SEL 4041 // Description : Select a Transfer Request signal. 4042 // The channel uses the transfer request signal to pace its data 4043 // transfer rate. Sources for TREQ signals are internal (TIMERS) 4044 // or external (DREQ, a Data Request from the system). 4045 // 0x0 to 0x3a -> select DREQ n as TREQ 4046 // 0x3b -> Select Timer 0 as TREQ 4047 // 0x3c -> Select Timer 1 as TREQ 4048 // 0x3d -> Select Timer 2 as TREQ (Optional) 4049 // 0x3e -> Select Timer 3 as TREQ (Optional) 4050 // 0x3f -> Permanent request, for unpaced transfers. 4051 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 4052 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 4053 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_MSB _u(20) 4054 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_LSB _u(15) 4055 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 4056 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 4057 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 4058 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 4059 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 4060 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 4061 // ----------------------------------------------------------------------------- 4062 // Field : DMA_CH10_CTRL_TRIG_CHAIN_TO 4063 // Description : When this channel completes, it will trigger the channel 4064 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 4065 // channel)_. 4066 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 4067 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 4068 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_MSB _u(14) 4069 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_LSB _u(11) 4070 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 4071 // ----------------------------------------------------------------------------- 4072 // Field : DMA_CH10_CTRL_TRIG_RING_SEL 4073 // Description : Select whether RING_SIZE applies to read or write addresses. 4074 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 4075 // boundary. If 1, write addresses are wrapped. 4076 #define DMA_CH10_CTRL_TRIG_RING_SEL_RESET _u(0x0) 4077 #define DMA_CH10_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 4078 #define DMA_CH10_CTRL_TRIG_RING_SEL_MSB _u(10) 4079 #define DMA_CH10_CTRL_TRIG_RING_SEL_LSB _u(10) 4080 #define DMA_CH10_CTRL_TRIG_RING_SEL_ACCESS "RW" 4081 // ----------------------------------------------------------------------------- 4082 // Field : DMA_CH10_CTRL_TRIG_RING_SIZE 4083 // Description : Size of address wrap region. If 0, don't wrap. For values n > 4084 // 0, only the lower n bits of the address will change. This wraps 4085 // the address on a (1 << n) byte boundary, facilitating access to 4086 // naturally-aligned ring buffers. 4087 // 4088 // Ring sizes between 2 and 32768 bytes are possible. This can 4089 // apply to either read or write addresses, based on value of 4090 // RING_SEL. 4091 // 0x0 -> RING_NONE 4092 #define DMA_CH10_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 4093 #define DMA_CH10_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 4094 #define DMA_CH10_CTRL_TRIG_RING_SIZE_MSB _u(9) 4095 #define DMA_CH10_CTRL_TRIG_RING_SIZE_LSB _u(6) 4096 #define DMA_CH10_CTRL_TRIG_RING_SIZE_ACCESS "RW" 4097 #define DMA_CH10_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 4098 // ----------------------------------------------------------------------------- 4099 // Field : DMA_CH10_CTRL_TRIG_INCR_WRITE 4100 // Description : If 1, the write address increments with each transfer. If 0, 4101 // each write is directed to the same, initial address. 4102 // 4103 // Generally this should be disabled for memory-to-peripheral 4104 // transfers. 4105 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 4106 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 4107 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_MSB _u(5) 4108 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_LSB _u(5) 4109 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 4110 // ----------------------------------------------------------------------------- 4111 // Field : DMA_CH10_CTRL_TRIG_INCR_READ 4112 // Description : If 1, the read address increments with each transfer. If 0, 4113 // each read is directed to the same, initial address. 4114 // 4115 // Generally this should be disabled for peripheral-to-memory 4116 // transfers. 4117 #define DMA_CH10_CTRL_TRIG_INCR_READ_RESET _u(0x0) 4118 #define DMA_CH10_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 4119 #define DMA_CH10_CTRL_TRIG_INCR_READ_MSB _u(4) 4120 #define DMA_CH10_CTRL_TRIG_INCR_READ_LSB _u(4) 4121 #define DMA_CH10_CTRL_TRIG_INCR_READ_ACCESS "RW" 4122 // ----------------------------------------------------------------------------- 4123 // Field : DMA_CH10_CTRL_TRIG_DATA_SIZE 4124 // Description : Set the size of each bus transfer (byte/halfword/word). 4125 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 4126 // with each transfer. 4127 // 0x0 -> SIZE_BYTE 4128 // 0x1 -> SIZE_HALFWORD 4129 // 0x2 -> SIZE_WORD 4130 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 4131 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 4132 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_MSB _u(3) 4133 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_LSB _u(2) 4134 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 4135 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 4136 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 4137 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 4138 // ----------------------------------------------------------------------------- 4139 // Field : DMA_CH10_CTRL_TRIG_HIGH_PRIORITY 4140 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 4141 // scheduling: in each scheduling round, all high priority 4142 // channels are considered first, and then only a single low 4143 // priority channel, before returning to the high priority 4144 // channels. 4145 // 4146 // This only affects the order in which the DMA schedules 4147 // channels. The DMA's bus priority is not changed. If the DMA is 4148 // not saturated then a low priority channel will see no loss of 4149 // throughput. 4150 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 4151 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 4152 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 4153 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 4154 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 4155 // ----------------------------------------------------------------------------- 4156 // Field : DMA_CH10_CTRL_TRIG_EN 4157 // Description : DMA Channel Enable. 4158 // When 1, the channel will respond to triggering events, which 4159 // will cause it to become BUSY and start transferring data. When 4160 // 0, the channel will ignore triggers, stop issuing transfers, 4161 // and pause the current transfer sequence (i.e. BUSY will remain 4162 // high if already high) 4163 #define DMA_CH10_CTRL_TRIG_EN_RESET _u(0x0) 4164 #define DMA_CH10_CTRL_TRIG_EN_BITS _u(0x00000001) 4165 #define DMA_CH10_CTRL_TRIG_EN_MSB _u(0) 4166 #define DMA_CH10_CTRL_TRIG_EN_LSB _u(0) 4167 #define DMA_CH10_CTRL_TRIG_EN_ACCESS "RW" 4168 // ============================================================================= 4169 // Register : DMA_CH10_AL1_CTRL 4170 // Description : Alias for channel 10 CTRL register 4171 #define DMA_CH10_AL1_CTRL_OFFSET _u(0x00000290) 4172 #define DMA_CH10_AL1_CTRL_BITS _u(0xffffffff) 4173 #define DMA_CH10_AL1_CTRL_RESET "-" 4174 #define DMA_CH10_AL1_CTRL_MSB _u(31) 4175 #define DMA_CH10_AL1_CTRL_LSB _u(0) 4176 #define DMA_CH10_AL1_CTRL_ACCESS "RW" 4177 // ============================================================================= 4178 // Register : DMA_CH10_AL1_READ_ADDR 4179 // Description : Alias for channel 10 READ_ADDR register 4180 #define DMA_CH10_AL1_READ_ADDR_OFFSET _u(0x00000294) 4181 #define DMA_CH10_AL1_READ_ADDR_BITS _u(0xffffffff) 4182 #define DMA_CH10_AL1_READ_ADDR_RESET "-" 4183 #define DMA_CH10_AL1_READ_ADDR_MSB _u(31) 4184 #define DMA_CH10_AL1_READ_ADDR_LSB _u(0) 4185 #define DMA_CH10_AL1_READ_ADDR_ACCESS "RW" 4186 // ============================================================================= 4187 // Register : DMA_CH10_AL1_WRITE_ADDR 4188 // Description : Alias for channel 10 WRITE_ADDR register 4189 #define DMA_CH10_AL1_WRITE_ADDR_OFFSET _u(0x00000298) 4190 #define DMA_CH10_AL1_WRITE_ADDR_BITS _u(0xffffffff) 4191 #define DMA_CH10_AL1_WRITE_ADDR_RESET "-" 4192 #define DMA_CH10_AL1_WRITE_ADDR_MSB _u(31) 4193 #define DMA_CH10_AL1_WRITE_ADDR_LSB _u(0) 4194 #define DMA_CH10_AL1_WRITE_ADDR_ACCESS "RW" 4195 // ============================================================================= 4196 // Register : DMA_CH10_AL1_TRANS_COUNT_TRIG 4197 // Description : Alias for channel 10 TRANS_COUNT register 4198 // This is a trigger register (0xc). Writing a nonzero value will 4199 // reload the channel counter and start the channel. 4200 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000029c) 4201 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 4202 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_RESET "-" 4203 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_MSB _u(31) 4204 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_LSB _u(0) 4205 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 4206 // ============================================================================= 4207 // Register : DMA_CH10_AL2_CTRL 4208 // Description : Alias for channel 10 CTRL register 4209 #define DMA_CH10_AL2_CTRL_OFFSET _u(0x000002a0) 4210 #define DMA_CH10_AL2_CTRL_BITS _u(0xffffffff) 4211 #define DMA_CH10_AL2_CTRL_RESET "-" 4212 #define DMA_CH10_AL2_CTRL_MSB _u(31) 4213 #define DMA_CH10_AL2_CTRL_LSB _u(0) 4214 #define DMA_CH10_AL2_CTRL_ACCESS "RW" 4215 // ============================================================================= 4216 // Register : DMA_CH10_AL2_TRANS_COUNT 4217 // Description : Alias for channel 10 TRANS_COUNT register 4218 #define DMA_CH10_AL2_TRANS_COUNT_OFFSET _u(0x000002a4) 4219 #define DMA_CH10_AL2_TRANS_COUNT_BITS _u(0xffffffff) 4220 #define DMA_CH10_AL2_TRANS_COUNT_RESET "-" 4221 #define DMA_CH10_AL2_TRANS_COUNT_MSB _u(31) 4222 #define DMA_CH10_AL2_TRANS_COUNT_LSB _u(0) 4223 #define DMA_CH10_AL2_TRANS_COUNT_ACCESS "RW" 4224 // ============================================================================= 4225 // Register : DMA_CH10_AL2_READ_ADDR 4226 // Description : Alias for channel 10 READ_ADDR register 4227 #define DMA_CH10_AL2_READ_ADDR_OFFSET _u(0x000002a8) 4228 #define DMA_CH10_AL2_READ_ADDR_BITS _u(0xffffffff) 4229 #define DMA_CH10_AL2_READ_ADDR_RESET "-" 4230 #define DMA_CH10_AL2_READ_ADDR_MSB _u(31) 4231 #define DMA_CH10_AL2_READ_ADDR_LSB _u(0) 4232 #define DMA_CH10_AL2_READ_ADDR_ACCESS "RW" 4233 // ============================================================================= 4234 // Register : DMA_CH10_AL2_WRITE_ADDR_TRIG 4235 // Description : Alias for channel 10 WRITE_ADDR register 4236 // This is a trigger register (0xc). Writing a nonzero value will 4237 // reload the channel counter and start the channel. 4238 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000002ac) 4239 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 4240 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_RESET "-" 4241 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_MSB _u(31) 4242 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_LSB _u(0) 4243 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 4244 // ============================================================================= 4245 // Register : DMA_CH10_AL3_CTRL 4246 // Description : Alias for channel 10 CTRL register 4247 #define DMA_CH10_AL3_CTRL_OFFSET _u(0x000002b0) 4248 #define DMA_CH10_AL3_CTRL_BITS _u(0xffffffff) 4249 #define DMA_CH10_AL3_CTRL_RESET "-" 4250 #define DMA_CH10_AL3_CTRL_MSB _u(31) 4251 #define DMA_CH10_AL3_CTRL_LSB _u(0) 4252 #define DMA_CH10_AL3_CTRL_ACCESS "RW" 4253 // ============================================================================= 4254 // Register : DMA_CH10_AL3_WRITE_ADDR 4255 // Description : Alias for channel 10 WRITE_ADDR register 4256 #define DMA_CH10_AL3_WRITE_ADDR_OFFSET _u(0x000002b4) 4257 #define DMA_CH10_AL3_WRITE_ADDR_BITS _u(0xffffffff) 4258 #define DMA_CH10_AL3_WRITE_ADDR_RESET "-" 4259 #define DMA_CH10_AL3_WRITE_ADDR_MSB _u(31) 4260 #define DMA_CH10_AL3_WRITE_ADDR_LSB _u(0) 4261 #define DMA_CH10_AL3_WRITE_ADDR_ACCESS "RW" 4262 // ============================================================================= 4263 // Register : DMA_CH10_AL3_TRANS_COUNT 4264 // Description : Alias for channel 10 TRANS_COUNT register 4265 #define DMA_CH10_AL3_TRANS_COUNT_OFFSET _u(0x000002b8) 4266 #define DMA_CH10_AL3_TRANS_COUNT_BITS _u(0xffffffff) 4267 #define DMA_CH10_AL3_TRANS_COUNT_RESET "-" 4268 #define DMA_CH10_AL3_TRANS_COUNT_MSB _u(31) 4269 #define DMA_CH10_AL3_TRANS_COUNT_LSB _u(0) 4270 #define DMA_CH10_AL3_TRANS_COUNT_ACCESS "RW" 4271 // ============================================================================= 4272 // Register : DMA_CH10_AL3_READ_ADDR_TRIG 4273 // Description : Alias for channel 10 READ_ADDR register 4274 // This is a trigger register (0xc). Writing a nonzero value will 4275 // reload the channel counter and start the channel. 4276 #define DMA_CH10_AL3_READ_ADDR_TRIG_OFFSET _u(0x000002bc) 4277 #define DMA_CH10_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 4278 #define DMA_CH10_AL3_READ_ADDR_TRIG_RESET "-" 4279 #define DMA_CH10_AL3_READ_ADDR_TRIG_MSB _u(31) 4280 #define DMA_CH10_AL3_READ_ADDR_TRIG_LSB _u(0) 4281 #define DMA_CH10_AL3_READ_ADDR_TRIG_ACCESS "RW" 4282 // ============================================================================= 4283 // Register : DMA_CH11_READ_ADDR 4284 // Description : DMA Channel 11 Read Address pointer 4285 // This register updates automatically each time a read completes. 4286 // The current value is the next address to be read by this 4287 // channel. 4288 #define DMA_CH11_READ_ADDR_OFFSET _u(0x000002c0) 4289 #define DMA_CH11_READ_ADDR_BITS _u(0xffffffff) 4290 #define DMA_CH11_READ_ADDR_RESET _u(0x00000000) 4291 #define DMA_CH11_READ_ADDR_MSB _u(31) 4292 #define DMA_CH11_READ_ADDR_LSB _u(0) 4293 #define DMA_CH11_READ_ADDR_ACCESS "RW" 4294 // ============================================================================= 4295 // Register : DMA_CH11_WRITE_ADDR 4296 // Description : DMA Channel 11 Write Address pointer 4297 // This register updates automatically each time a write 4298 // completes. The current value is the next address to be written 4299 // by this channel. 4300 #define DMA_CH11_WRITE_ADDR_OFFSET _u(0x000002c4) 4301 #define DMA_CH11_WRITE_ADDR_BITS _u(0xffffffff) 4302 #define DMA_CH11_WRITE_ADDR_RESET _u(0x00000000) 4303 #define DMA_CH11_WRITE_ADDR_MSB _u(31) 4304 #define DMA_CH11_WRITE_ADDR_LSB _u(0) 4305 #define DMA_CH11_WRITE_ADDR_ACCESS "RW" 4306 // ============================================================================= 4307 // Register : DMA_CH11_TRANS_COUNT 4308 // Description : DMA Channel 11 Transfer Count 4309 // Program the number of bus transfers a channel will perform 4310 // before halting. Note that, if transfers are larger than one 4311 // byte in size, this is not equal to the number of bytes 4312 // transferred (see CTRL_DATA_SIZE). 4313 // 4314 // When the channel is active, reading this register shows the 4315 // number of transfers remaining, updating automatically each time 4316 // a write transfer completes. 4317 // 4318 // Writing this register sets the RELOAD value for the transfer 4319 // counter. Each time this channel is triggered, the RELOAD value 4320 // is copied into the live transfer counter. The channel can be 4321 // started multiple times, and will perform the same number of 4322 // transfers each time, as programmed by most recent write. 4323 // 4324 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 4325 // is used as a trigger, the written value is used immediately as 4326 // the length of the new transfer sequence, as well as being 4327 // written to RELOAD. 4328 #define DMA_CH11_TRANS_COUNT_OFFSET _u(0x000002c8) 4329 #define DMA_CH11_TRANS_COUNT_BITS _u(0xffffffff) 4330 #define DMA_CH11_TRANS_COUNT_RESET _u(0x00000000) 4331 #define DMA_CH11_TRANS_COUNT_MSB _u(31) 4332 #define DMA_CH11_TRANS_COUNT_LSB _u(0) 4333 #define DMA_CH11_TRANS_COUNT_ACCESS "RW" 4334 // ============================================================================= 4335 // Register : DMA_CH11_CTRL_TRIG 4336 // Description : DMA Channel 11 Control and Status 4337 #define DMA_CH11_CTRL_TRIG_OFFSET _u(0x000002cc) 4338 #define DMA_CH11_CTRL_TRIG_BITS _u(0xe1ffffff) 4339 #define DMA_CH11_CTRL_TRIG_RESET _u(0x00000000) 4340 // ----------------------------------------------------------------------------- 4341 // Field : DMA_CH11_CTRL_TRIG_AHB_ERROR 4342 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 4343 // halts when it encounters any bus error, and always raises its 4344 // channel IRQ flag. 4345 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 4346 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 4347 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_MSB _u(31) 4348 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_LSB _u(31) 4349 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 4350 // ----------------------------------------------------------------------------- 4351 // Field : DMA_CH11_CTRL_TRIG_READ_ERROR 4352 // Description : If 1, the channel received a read bus error. Write one to 4353 // clear. 4354 // READ_ADDR shows the approximate address where the bus error was 4355 // encountered (will not be earlier, or more than 3 transfers 4356 // later) 4357 #define DMA_CH11_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 4358 #define DMA_CH11_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 4359 #define DMA_CH11_CTRL_TRIG_READ_ERROR_MSB _u(30) 4360 #define DMA_CH11_CTRL_TRIG_READ_ERROR_LSB _u(30) 4361 #define DMA_CH11_CTRL_TRIG_READ_ERROR_ACCESS "WC" 4362 // ----------------------------------------------------------------------------- 4363 // Field : DMA_CH11_CTRL_TRIG_WRITE_ERROR 4364 // Description : If 1, the channel received a write bus error. Write one to 4365 // clear. 4366 // WRITE_ADDR shows the approximate address where the bus error 4367 // was encountered (will not be earlier, or more than 5 transfers 4368 // later) 4369 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 4370 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 4371 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 4372 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 4373 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 4374 // ----------------------------------------------------------------------------- 4375 // Field : DMA_CH11_CTRL_TRIG_BUSY 4376 // Description : This flag goes high when the channel starts a new transfer 4377 // sequence, and low when the last transfer of that sequence 4378 // completes. Clearing EN while BUSY is high pauses the channel, 4379 // and BUSY will stay high while paused. 4380 // 4381 // To terminate a sequence early (and clear the BUSY flag), see 4382 // CHAN_ABORT. 4383 #define DMA_CH11_CTRL_TRIG_BUSY_RESET _u(0x0) 4384 #define DMA_CH11_CTRL_TRIG_BUSY_BITS _u(0x01000000) 4385 #define DMA_CH11_CTRL_TRIG_BUSY_MSB _u(24) 4386 #define DMA_CH11_CTRL_TRIG_BUSY_LSB _u(24) 4387 #define DMA_CH11_CTRL_TRIG_BUSY_ACCESS "RO" 4388 // ----------------------------------------------------------------------------- 4389 // Field : DMA_CH11_CTRL_TRIG_SNIFF_EN 4390 // Description : If 1, this channel's data transfers are visible to the sniff 4391 // hardware, and each transfer will advance the state of the 4392 // checksum. This only applies if the sniff hardware is enabled, 4393 // and has this channel selected. 4394 // 4395 // This allows checksum to be enabled or disabled on a 4396 // per-control- block basis. 4397 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 4398 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_BITS _u(0x00800000) 4399 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_MSB _u(23) 4400 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_LSB _u(23) 4401 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 4402 // ----------------------------------------------------------------------------- 4403 // Field : DMA_CH11_CTRL_TRIG_BSWAP 4404 // Description : Apply byte-swap transformation to DMA data. 4405 // For byte data, this has no effect. For halfword data, the two 4406 // bytes of each halfword are swapped. For word data, the four 4407 // bytes of each word are swapped to reverse order. 4408 #define DMA_CH11_CTRL_TRIG_BSWAP_RESET _u(0x0) 4409 #define DMA_CH11_CTRL_TRIG_BSWAP_BITS _u(0x00400000) 4410 #define DMA_CH11_CTRL_TRIG_BSWAP_MSB _u(22) 4411 #define DMA_CH11_CTRL_TRIG_BSWAP_LSB _u(22) 4412 #define DMA_CH11_CTRL_TRIG_BSWAP_ACCESS "RW" 4413 // ----------------------------------------------------------------------------- 4414 // Field : DMA_CH11_CTRL_TRIG_IRQ_QUIET 4415 // Description : In QUIET mode, the channel does not generate IRQs at the end of 4416 // every transfer block. Instead, an IRQ is raised when NULL is 4417 // written to a trigger register, indicating the end of a control 4418 // block chain. 4419 // 4420 // This reduces the number of interrupts to be serviced by the CPU 4421 // when transferring a DMA chain of many small control blocks. 4422 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 4423 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00200000) 4424 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_MSB _u(21) 4425 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_LSB _u(21) 4426 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 4427 // ----------------------------------------------------------------------------- 4428 // Field : DMA_CH11_CTRL_TRIG_TREQ_SEL 4429 // Description : Select a Transfer Request signal. 4430 // The channel uses the transfer request signal to pace its data 4431 // transfer rate. Sources for TREQ signals are internal (TIMERS) 4432 // or external (DREQ, a Data Request from the system). 4433 // 0x0 to 0x3a -> select DREQ n as TREQ 4434 // 0x3b -> Select Timer 0 as TREQ 4435 // 0x3c -> Select Timer 1 as TREQ 4436 // 0x3d -> Select Timer 2 as TREQ (Optional) 4437 // 0x3e -> Select Timer 3 as TREQ (Optional) 4438 // 0x3f -> Permanent request, for unpaced transfers. 4439 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 4440 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_BITS _u(0x001f8000) 4441 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_MSB _u(20) 4442 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_LSB _u(15) 4443 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 4444 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 4445 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 4446 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 4447 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 4448 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 4449 // ----------------------------------------------------------------------------- 4450 // Field : DMA_CH11_CTRL_TRIG_CHAIN_TO 4451 // Description : When this channel completes, it will trigger the channel 4452 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 4453 // channel)_. 4454 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 4455 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_BITS _u(0x00007800) 4456 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_MSB _u(14) 4457 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_LSB _u(11) 4458 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 4459 // ----------------------------------------------------------------------------- 4460 // Field : DMA_CH11_CTRL_TRIG_RING_SEL 4461 // Description : Select whether RING_SIZE applies to read or write addresses. 4462 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 4463 // boundary. If 1, write addresses are wrapped. 4464 #define DMA_CH11_CTRL_TRIG_RING_SEL_RESET _u(0x0) 4465 #define DMA_CH11_CTRL_TRIG_RING_SEL_BITS _u(0x00000400) 4466 #define DMA_CH11_CTRL_TRIG_RING_SEL_MSB _u(10) 4467 #define DMA_CH11_CTRL_TRIG_RING_SEL_LSB _u(10) 4468 #define DMA_CH11_CTRL_TRIG_RING_SEL_ACCESS "RW" 4469 // ----------------------------------------------------------------------------- 4470 // Field : DMA_CH11_CTRL_TRIG_RING_SIZE 4471 // Description : Size of address wrap region. If 0, don't wrap. For values n > 4472 // 0, only the lower n bits of the address will change. This wraps 4473 // the address on a (1 << n) byte boundary, facilitating access to 4474 // naturally-aligned ring buffers. 4475 // 4476 // Ring sizes between 2 and 32768 bytes are possible. This can 4477 // apply to either read or write addresses, based on value of 4478 // RING_SEL. 4479 // 0x0 -> RING_NONE 4480 #define DMA_CH11_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 4481 #define DMA_CH11_CTRL_TRIG_RING_SIZE_BITS _u(0x000003c0) 4482 #define DMA_CH11_CTRL_TRIG_RING_SIZE_MSB _u(9) 4483 #define DMA_CH11_CTRL_TRIG_RING_SIZE_LSB _u(6) 4484 #define DMA_CH11_CTRL_TRIG_RING_SIZE_ACCESS "RW" 4485 #define DMA_CH11_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 4486 // ----------------------------------------------------------------------------- 4487 // Field : DMA_CH11_CTRL_TRIG_INCR_WRITE 4488 // Description : If 1, the write address increments with each transfer. If 0, 4489 // each write is directed to the same, initial address. 4490 // 4491 // Generally this should be disabled for memory-to-peripheral 4492 // transfers. 4493 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 4494 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000020) 4495 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_MSB _u(5) 4496 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_LSB _u(5) 4497 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 4498 // ----------------------------------------------------------------------------- 4499 // Field : DMA_CH11_CTRL_TRIG_INCR_READ 4500 // Description : If 1, the read address increments with each transfer. If 0, 4501 // each read is directed to the same, initial address. 4502 // 4503 // Generally this should be disabled for peripheral-to-memory 4504 // transfers. 4505 #define DMA_CH11_CTRL_TRIG_INCR_READ_RESET _u(0x0) 4506 #define DMA_CH11_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 4507 #define DMA_CH11_CTRL_TRIG_INCR_READ_MSB _u(4) 4508 #define DMA_CH11_CTRL_TRIG_INCR_READ_LSB _u(4) 4509 #define DMA_CH11_CTRL_TRIG_INCR_READ_ACCESS "RW" 4510 // ----------------------------------------------------------------------------- 4511 // Field : DMA_CH11_CTRL_TRIG_DATA_SIZE 4512 // Description : Set the size of each bus transfer (byte/halfword/word). 4513 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 4514 // with each transfer. 4515 // 0x0 -> SIZE_BYTE 4516 // 0x1 -> SIZE_HALFWORD 4517 // 0x2 -> SIZE_WORD 4518 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 4519 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 4520 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_MSB _u(3) 4521 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_LSB _u(2) 4522 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 4523 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 4524 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 4525 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 4526 // ----------------------------------------------------------------------------- 4527 // Field : DMA_CH11_CTRL_TRIG_HIGH_PRIORITY 4528 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 4529 // scheduling: in each scheduling round, all high priority 4530 // channels are considered first, and then only a single low 4531 // priority channel, before returning to the high priority 4532 // channels. 4533 // 4534 // This only affects the order in which the DMA schedules 4535 // channels. The DMA's bus priority is not changed. If the DMA is 4536 // not saturated then a low priority channel will see no loss of 4537 // throughput. 4538 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 4539 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 4540 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 4541 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 4542 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 4543 // ----------------------------------------------------------------------------- 4544 // Field : DMA_CH11_CTRL_TRIG_EN 4545 // Description : DMA Channel Enable. 4546 // When 1, the channel will respond to triggering events, which 4547 // will cause it to become BUSY and start transferring data. When 4548 // 0, the channel will ignore triggers, stop issuing transfers, 4549 // and pause the current transfer sequence (i.e. BUSY will remain 4550 // high if already high) 4551 #define DMA_CH11_CTRL_TRIG_EN_RESET _u(0x0) 4552 #define DMA_CH11_CTRL_TRIG_EN_BITS _u(0x00000001) 4553 #define DMA_CH11_CTRL_TRIG_EN_MSB _u(0) 4554 #define DMA_CH11_CTRL_TRIG_EN_LSB _u(0) 4555 #define DMA_CH11_CTRL_TRIG_EN_ACCESS "RW" 4556 // ============================================================================= 4557 // Register : DMA_CH11_AL1_CTRL 4558 // Description : Alias for channel 11 CTRL register 4559 #define DMA_CH11_AL1_CTRL_OFFSET _u(0x000002d0) 4560 #define DMA_CH11_AL1_CTRL_BITS _u(0xffffffff) 4561 #define DMA_CH11_AL1_CTRL_RESET "-" 4562 #define DMA_CH11_AL1_CTRL_MSB _u(31) 4563 #define DMA_CH11_AL1_CTRL_LSB _u(0) 4564 #define DMA_CH11_AL1_CTRL_ACCESS "RW" 4565 // ============================================================================= 4566 // Register : DMA_CH11_AL1_READ_ADDR 4567 // Description : Alias for channel 11 READ_ADDR register 4568 #define DMA_CH11_AL1_READ_ADDR_OFFSET _u(0x000002d4) 4569 #define DMA_CH11_AL1_READ_ADDR_BITS _u(0xffffffff) 4570 #define DMA_CH11_AL1_READ_ADDR_RESET "-" 4571 #define DMA_CH11_AL1_READ_ADDR_MSB _u(31) 4572 #define DMA_CH11_AL1_READ_ADDR_LSB _u(0) 4573 #define DMA_CH11_AL1_READ_ADDR_ACCESS "RW" 4574 // ============================================================================= 4575 // Register : DMA_CH11_AL1_WRITE_ADDR 4576 // Description : Alias for channel 11 WRITE_ADDR register 4577 #define DMA_CH11_AL1_WRITE_ADDR_OFFSET _u(0x000002d8) 4578 #define DMA_CH11_AL1_WRITE_ADDR_BITS _u(0xffffffff) 4579 #define DMA_CH11_AL1_WRITE_ADDR_RESET "-" 4580 #define DMA_CH11_AL1_WRITE_ADDR_MSB _u(31) 4581 #define DMA_CH11_AL1_WRITE_ADDR_LSB _u(0) 4582 #define DMA_CH11_AL1_WRITE_ADDR_ACCESS "RW" 4583 // ============================================================================= 4584 // Register : DMA_CH11_AL1_TRANS_COUNT_TRIG 4585 // Description : Alias for channel 11 TRANS_COUNT register 4586 // This is a trigger register (0xc). Writing a nonzero value will 4587 // reload the channel counter and start the channel. 4588 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000002dc) 4589 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 4590 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_RESET "-" 4591 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_MSB _u(31) 4592 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_LSB _u(0) 4593 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 4594 // ============================================================================= 4595 // Register : DMA_CH11_AL2_CTRL 4596 // Description : Alias for channel 11 CTRL register 4597 #define DMA_CH11_AL2_CTRL_OFFSET _u(0x000002e0) 4598 #define DMA_CH11_AL2_CTRL_BITS _u(0xffffffff) 4599 #define DMA_CH11_AL2_CTRL_RESET "-" 4600 #define DMA_CH11_AL2_CTRL_MSB _u(31) 4601 #define DMA_CH11_AL2_CTRL_LSB _u(0) 4602 #define DMA_CH11_AL2_CTRL_ACCESS "RW" 4603 // ============================================================================= 4604 // Register : DMA_CH11_AL2_TRANS_COUNT 4605 // Description : Alias for channel 11 TRANS_COUNT register 4606 #define DMA_CH11_AL2_TRANS_COUNT_OFFSET _u(0x000002e4) 4607 #define DMA_CH11_AL2_TRANS_COUNT_BITS _u(0xffffffff) 4608 #define DMA_CH11_AL2_TRANS_COUNT_RESET "-" 4609 #define DMA_CH11_AL2_TRANS_COUNT_MSB _u(31) 4610 #define DMA_CH11_AL2_TRANS_COUNT_LSB _u(0) 4611 #define DMA_CH11_AL2_TRANS_COUNT_ACCESS "RW" 4612 // ============================================================================= 4613 // Register : DMA_CH11_AL2_READ_ADDR 4614 // Description : Alias for channel 11 READ_ADDR register 4615 #define DMA_CH11_AL2_READ_ADDR_OFFSET _u(0x000002e8) 4616 #define DMA_CH11_AL2_READ_ADDR_BITS _u(0xffffffff) 4617 #define DMA_CH11_AL2_READ_ADDR_RESET "-" 4618 #define DMA_CH11_AL2_READ_ADDR_MSB _u(31) 4619 #define DMA_CH11_AL2_READ_ADDR_LSB _u(0) 4620 #define DMA_CH11_AL2_READ_ADDR_ACCESS "RW" 4621 // ============================================================================= 4622 // Register : DMA_CH11_AL2_WRITE_ADDR_TRIG 4623 // Description : Alias for channel 11 WRITE_ADDR register 4624 // This is a trigger register (0xc). Writing a nonzero value will 4625 // reload the channel counter and start the channel. 4626 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000002ec) 4627 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 4628 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_RESET "-" 4629 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_MSB _u(31) 4630 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_LSB _u(0) 4631 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 4632 // ============================================================================= 4633 // Register : DMA_CH11_AL3_CTRL 4634 // Description : Alias for channel 11 CTRL register 4635 #define DMA_CH11_AL3_CTRL_OFFSET _u(0x000002f0) 4636 #define DMA_CH11_AL3_CTRL_BITS _u(0xffffffff) 4637 #define DMA_CH11_AL3_CTRL_RESET "-" 4638 #define DMA_CH11_AL3_CTRL_MSB _u(31) 4639 #define DMA_CH11_AL3_CTRL_LSB _u(0) 4640 #define DMA_CH11_AL3_CTRL_ACCESS "RW" 4641 // ============================================================================= 4642 // Register : DMA_CH11_AL3_WRITE_ADDR 4643 // Description : Alias for channel 11 WRITE_ADDR register 4644 #define DMA_CH11_AL3_WRITE_ADDR_OFFSET _u(0x000002f4) 4645 #define DMA_CH11_AL3_WRITE_ADDR_BITS _u(0xffffffff) 4646 #define DMA_CH11_AL3_WRITE_ADDR_RESET "-" 4647 #define DMA_CH11_AL3_WRITE_ADDR_MSB _u(31) 4648 #define DMA_CH11_AL3_WRITE_ADDR_LSB _u(0) 4649 #define DMA_CH11_AL3_WRITE_ADDR_ACCESS "RW" 4650 // ============================================================================= 4651 // Register : DMA_CH11_AL3_TRANS_COUNT 4652 // Description : Alias for channel 11 TRANS_COUNT register 4653 #define DMA_CH11_AL3_TRANS_COUNT_OFFSET _u(0x000002f8) 4654 #define DMA_CH11_AL3_TRANS_COUNT_BITS _u(0xffffffff) 4655 #define DMA_CH11_AL3_TRANS_COUNT_RESET "-" 4656 #define DMA_CH11_AL3_TRANS_COUNT_MSB _u(31) 4657 #define DMA_CH11_AL3_TRANS_COUNT_LSB _u(0) 4658 #define DMA_CH11_AL3_TRANS_COUNT_ACCESS "RW" 4659 // ============================================================================= 4660 // Register : DMA_CH11_AL3_READ_ADDR_TRIG 4661 // Description : Alias for channel 11 READ_ADDR register 4662 // This is a trigger register (0xc). Writing a nonzero value will 4663 // reload the channel counter and start the channel. 4664 #define DMA_CH11_AL3_READ_ADDR_TRIG_OFFSET _u(0x000002fc) 4665 #define DMA_CH11_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 4666 #define DMA_CH11_AL3_READ_ADDR_TRIG_RESET "-" 4667 #define DMA_CH11_AL3_READ_ADDR_TRIG_MSB _u(31) 4668 #define DMA_CH11_AL3_READ_ADDR_TRIG_LSB _u(0) 4669 #define DMA_CH11_AL3_READ_ADDR_TRIG_ACCESS "RW" 4670 // ============================================================================= 4671 // Register : DMA_INTR 4672 // Description : Interrupt Status (raw) 4673 // Raw interrupt status for DMA Channels 0..15. Bit n corresponds 4674 // to channel n. Ignores any masking or forcing. Channel 4675 // interrupts can be cleared by writing a bit mask to INTR, INTS0 4676 // or INTS1. 4677 // 4678 // Channel interrupts can be routed to either of two system-level 4679 // IRQs based on INTE0 and INTE1. 4680 // 4681 // This can be used vector different channel interrupts to 4682 // different ISRs: this might be done to allow NVIC IRQ preemption 4683 // for more time-critical channels, or to spread IRQ load across 4684 // different cores. 4685 // 4686 // It is also valid to ignore this behaviour and just use 4687 // INTE0/INTS0/IRQ 0. 4688 #define DMA_INTR_OFFSET _u(0x00000400) 4689 #define DMA_INTR_BITS _u(0x0000ffff) 4690 #define DMA_INTR_RESET _u(0x00000000) 4691 #define DMA_INTR_MSB _u(15) 4692 #define DMA_INTR_LSB _u(0) 4693 #define DMA_INTR_ACCESS "WC" 4694 // ============================================================================= 4695 // Register : DMA_INTE0 4696 // Description : Interrupt Enables for IRQ 0 4697 // Set bit n to pass interrupts from channel n to DMA IRQ 0. 4698 #define DMA_INTE0_OFFSET _u(0x00000404) 4699 #define DMA_INTE0_BITS _u(0x0000ffff) 4700 #define DMA_INTE0_RESET _u(0x00000000) 4701 #define DMA_INTE0_MSB _u(15) 4702 #define DMA_INTE0_LSB _u(0) 4703 #define DMA_INTE0_ACCESS "RW" 4704 // ============================================================================= 4705 // Register : DMA_INTF0 4706 // Description : Force Interrupts 4707 // Write 1s to force the corresponding bits in INTE0. The 4708 // interrupt remains asserted until INTF0 is cleared. 4709 #define DMA_INTF0_OFFSET _u(0x00000408) 4710 #define DMA_INTF0_BITS _u(0x0000ffff) 4711 #define DMA_INTF0_RESET _u(0x00000000) 4712 #define DMA_INTF0_MSB _u(15) 4713 #define DMA_INTF0_LSB _u(0) 4714 #define DMA_INTF0_ACCESS "RW" 4715 // ============================================================================= 4716 // Register : DMA_INTS0 4717 // Description : Interrupt Status for IRQ 0 4718 // Indicates active channel interrupt requests which are currently 4719 // causing IRQ 0 to be asserted. 4720 // Channel interrupts can be cleared by writing a bit mask here. 4721 #define DMA_INTS0_OFFSET _u(0x0000040c) 4722 #define DMA_INTS0_BITS _u(0x0000ffff) 4723 #define DMA_INTS0_RESET _u(0x00000000) 4724 #define DMA_INTS0_MSB _u(15) 4725 #define DMA_INTS0_LSB _u(0) 4726 #define DMA_INTS0_ACCESS "WC" 4727 // ============================================================================= 4728 // Register : DMA_INTE1 4729 // Description : Interrupt Enables for IRQ 1 4730 // Set bit n to pass interrupts from channel n to DMA IRQ 1. 4731 #define DMA_INTE1_OFFSET _u(0x00000414) 4732 #define DMA_INTE1_BITS _u(0x0000ffff) 4733 #define DMA_INTE1_RESET _u(0x00000000) 4734 #define DMA_INTE1_MSB _u(15) 4735 #define DMA_INTE1_LSB _u(0) 4736 #define DMA_INTE1_ACCESS "RW" 4737 // ============================================================================= 4738 // Register : DMA_INTF1 4739 // Description : Force Interrupts for IRQ 1 4740 // Write 1s to force the corresponding bits in INTE0. The 4741 // interrupt remains asserted until INTF0 is cleared. 4742 #define DMA_INTF1_OFFSET _u(0x00000418) 4743 #define DMA_INTF1_BITS _u(0x0000ffff) 4744 #define DMA_INTF1_RESET _u(0x00000000) 4745 #define DMA_INTF1_MSB _u(15) 4746 #define DMA_INTF1_LSB _u(0) 4747 #define DMA_INTF1_ACCESS "RW" 4748 // ============================================================================= 4749 // Register : DMA_INTS1 4750 // Description : Interrupt Status (masked) for IRQ 1 4751 // Indicates active channel interrupt requests which are currently 4752 // causing IRQ 1 to be asserted. 4753 // Channel interrupts can be cleared by writing a bit mask here. 4754 #define DMA_INTS1_OFFSET _u(0x0000041c) 4755 #define DMA_INTS1_BITS _u(0x0000ffff) 4756 #define DMA_INTS1_RESET _u(0x00000000) 4757 #define DMA_INTS1_MSB _u(15) 4758 #define DMA_INTS1_LSB _u(0) 4759 #define DMA_INTS1_ACCESS "WC" 4760 // ============================================================================= 4761 // Register : DMA_TIMER0 4762 // Description : Pacing (X/Y) Fractional Timer 4763 // The pacing timer produces TREQ assertions at a rate set by 4764 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 4765 // cycles and therefore can only generate TREQs at a rate of 1 per 4766 // sys_clk (i.e. permanent TREQ) or less. 4767 #define DMA_TIMER0_OFFSET _u(0x00000420) 4768 #define DMA_TIMER0_BITS _u(0xffffffff) 4769 #define DMA_TIMER0_RESET _u(0x00000000) 4770 // ----------------------------------------------------------------------------- 4771 // Field : DMA_TIMER0_X 4772 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 4773 // fractional timer. 4774 #define DMA_TIMER0_X_RESET _u(0x0000) 4775 #define DMA_TIMER0_X_BITS _u(0xffff0000) 4776 #define DMA_TIMER0_X_MSB _u(31) 4777 #define DMA_TIMER0_X_LSB _u(16) 4778 #define DMA_TIMER0_X_ACCESS "RW" 4779 // ----------------------------------------------------------------------------- 4780 // Field : DMA_TIMER0_Y 4781 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 4782 // fractional timer. 4783 #define DMA_TIMER0_Y_RESET _u(0x0000) 4784 #define DMA_TIMER0_Y_BITS _u(0x0000ffff) 4785 #define DMA_TIMER0_Y_MSB _u(15) 4786 #define DMA_TIMER0_Y_LSB _u(0) 4787 #define DMA_TIMER0_Y_ACCESS "RW" 4788 // ============================================================================= 4789 // Register : DMA_TIMER1 4790 // Description : Pacing (X/Y) Fractional Timer 4791 // The pacing timer produces TREQ assertions at a rate set by 4792 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 4793 // cycles and therefore can only generate TREQs at a rate of 1 per 4794 // sys_clk (i.e. permanent TREQ) or less. 4795 #define DMA_TIMER1_OFFSET _u(0x00000424) 4796 #define DMA_TIMER1_BITS _u(0xffffffff) 4797 #define DMA_TIMER1_RESET _u(0x00000000) 4798 // ----------------------------------------------------------------------------- 4799 // Field : DMA_TIMER1_X 4800 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 4801 // fractional timer. 4802 #define DMA_TIMER1_X_RESET _u(0x0000) 4803 #define DMA_TIMER1_X_BITS _u(0xffff0000) 4804 #define DMA_TIMER1_X_MSB _u(31) 4805 #define DMA_TIMER1_X_LSB _u(16) 4806 #define DMA_TIMER1_X_ACCESS "RW" 4807 // ----------------------------------------------------------------------------- 4808 // Field : DMA_TIMER1_Y 4809 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 4810 // fractional timer. 4811 #define DMA_TIMER1_Y_RESET _u(0x0000) 4812 #define DMA_TIMER1_Y_BITS _u(0x0000ffff) 4813 #define DMA_TIMER1_Y_MSB _u(15) 4814 #define DMA_TIMER1_Y_LSB _u(0) 4815 #define DMA_TIMER1_Y_ACCESS "RW" 4816 // ============================================================================= 4817 // Register : DMA_TIMER2 4818 // Description : Pacing (X/Y) Fractional Timer 4819 // The pacing timer produces TREQ assertions at a rate set by 4820 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 4821 // cycles and therefore can only generate TREQs at a rate of 1 per 4822 // sys_clk (i.e. permanent TREQ) or less. 4823 #define DMA_TIMER2_OFFSET _u(0x00000428) 4824 #define DMA_TIMER2_BITS _u(0xffffffff) 4825 #define DMA_TIMER2_RESET _u(0x00000000) 4826 // ----------------------------------------------------------------------------- 4827 // Field : DMA_TIMER2_X 4828 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 4829 // fractional timer. 4830 #define DMA_TIMER2_X_RESET _u(0x0000) 4831 #define DMA_TIMER2_X_BITS _u(0xffff0000) 4832 #define DMA_TIMER2_X_MSB _u(31) 4833 #define DMA_TIMER2_X_LSB _u(16) 4834 #define DMA_TIMER2_X_ACCESS "RW" 4835 // ----------------------------------------------------------------------------- 4836 // Field : DMA_TIMER2_Y 4837 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 4838 // fractional timer. 4839 #define DMA_TIMER2_Y_RESET _u(0x0000) 4840 #define DMA_TIMER2_Y_BITS _u(0x0000ffff) 4841 #define DMA_TIMER2_Y_MSB _u(15) 4842 #define DMA_TIMER2_Y_LSB _u(0) 4843 #define DMA_TIMER2_Y_ACCESS "RW" 4844 // ============================================================================= 4845 // Register : DMA_TIMER3 4846 // Description : Pacing (X/Y) Fractional Timer 4847 // The pacing timer produces TREQ assertions at a rate set by 4848 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 4849 // cycles and therefore can only generate TREQs at a rate of 1 per 4850 // sys_clk (i.e. permanent TREQ) or less. 4851 #define DMA_TIMER3_OFFSET _u(0x0000042c) 4852 #define DMA_TIMER3_BITS _u(0xffffffff) 4853 #define DMA_TIMER3_RESET _u(0x00000000) 4854 // ----------------------------------------------------------------------------- 4855 // Field : DMA_TIMER3_X 4856 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 4857 // fractional timer. 4858 #define DMA_TIMER3_X_RESET _u(0x0000) 4859 #define DMA_TIMER3_X_BITS _u(0xffff0000) 4860 #define DMA_TIMER3_X_MSB _u(31) 4861 #define DMA_TIMER3_X_LSB _u(16) 4862 #define DMA_TIMER3_X_ACCESS "RW" 4863 // ----------------------------------------------------------------------------- 4864 // Field : DMA_TIMER3_Y 4865 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 4866 // fractional timer. 4867 #define DMA_TIMER3_Y_RESET _u(0x0000) 4868 #define DMA_TIMER3_Y_BITS _u(0x0000ffff) 4869 #define DMA_TIMER3_Y_MSB _u(15) 4870 #define DMA_TIMER3_Y_LSB _u(0) 4871 #define DMA_TIMER3_Y_ACCESS "RW" 4872 // ============================================================================= 4873 // Register : DMA_MULTI_CHAN_TRIGGER 4874 // Description : Trigger one or more channels simultaneously 4875 // Each bit in this register corresponds to a DMA channel. Writing 4876 // a 1 to the relevant bit is the same as writing to that 4877 // channel's trigger register; the channel will start if it is 4878 // currently enabled and not already busy. 4879 #define DMA_MULTI_CHAN_TRIGGER_OFFSET _u(0x00000430) 4880 #define DMA_MULTI_CHAN_TRIGGER_BITS _u(0x0000ffff) 4881 #define DMA_MULTI_CHAN_TRIGGER_RESET _u(0x00000000) 4882 #define DMA_MULTI_CHAN_TRIGGER_MSB _u(15) 4883 #define DMA_MULTI_CHAN_TRIGGER_LSB _u(0) 4884 #define DMA_MULTI_CHAN_TRIGGER_ACCESS "SC" 4885 // ============================================================================= 4886 // Register : DMA_SNIFF_CTRL 4887 // Description : Sniffer Control 4888 #define DMA_SNIFF_CTRL_OFFSET _u(0x00000434) 4889 #define DMA_SNIFF_CTRL_BITS _u(0x00000fff) 4890 #define DMA_SNIFF_CTRL_RESET _u(0x00000000) 4891 // ----------------------------------------------------------------------------- 4892 // Field : DMA_SNIFF_CTRL_OUT_INV 4893 // Description : If set, the result appears inverted (bitwise complement) when 4894 // read. This does not affect the way the checksum is calculated; 4895 // the result is transformed on-the-fly between the result 4896 // register and the bus. 4897 #define DMA_SNIFF_CTRL_OUT_INV_RESET _u(0x0) 4898 #define DMA_SNIFF_CTRL_OUT_INV_BITS _u(0x00000800) 4899 #define DMA_SNIFF_CTRL_OUT_INV_MSB _u(11) 4900 #define DMA_SNIFF_CTRL_OUT_INV_LSB _u(11) 4901 #define DMA_SNIFF_CTRL_OUT_INV_ACCESS "RW" 4902 // ----------------------------------------------------------------------------- 4903 // Field : DMA_SNIFF_CTRL_OUT_REV 4904 // Description : If set, the result appears bit-reversed when read. This does 4905 // not affect the way the checksum is calculated; the result is 4906 // transformed on-the-fly between the result register and the bus. 4907 #define DMA_SNIFF_CTRL_OUT_REV_RESET _u(0x0) 4908 #define DMA_SNIFF_CTRL_OUT_REV_BITS _u(0x00000400) 4909 #define DMA_SNIFF_CTRL_OUT_REV_MSB _u(10) 4910 #define DMA_SNIFF_CTRL_OUT_REV_LSB _u(10) 4911 #define DMA_SNIFF_CTRL_OUT_REV_ACCESS "RW" 4912 // ----------------------------------------------------------------------------- 4913 // Field : DMA_SNIFF_CTRL_BSWAP 4914 // Description : Locally perform a byte reverse on the sniffed data, before 4915 // feeding into checksum. 4916 // 4917 // Note that the sniff hardware is downstream of the DMA channel 4918 // byteswap performed in the read master: if channel CTRL_BSWAP 4919 // and SNIFF_CTRL_BSWAP are both enabled, their effects cancel 4920 // from the sniffer's point of view. 4921 #define DMA_SNIFF_CTRL_BSWAP_RESET _u(0x0) 4922 #define DMA_SNIFF_CTRL_BSWAP_BITS _u(0x00000200) 4923 #define DMA_SNIFF_CTRL_BSWAP_MSB _u(9) 4924 #define DMA_SNIFF_CTRL_BSWAP_LSB _u(9) 4925 #define DMA_SNIFF_CTRL_BSWAP_ACCESS "RW" 4926 // ----------------------------------------------------------------------------- 4927 // Field : DMA_SNIFF_CTRL_CALC 4928 // Description : 0x0 -> Calculate a CRC-32 (IEEE802.3 polynomial) 4929 // 0x1 -> Calculate a CRC-32 (IEEE802.3 polynomial) with bit 4930 // reversed data 4931 // 0x2 -> Calculate a CRC-16-CCITT 4932 // 0x3 -> Calculate a CRC-16-CCITT with bit reversed data 4933 // 0xe -> XOR reduction over all data. == 1 if the total 1 4934 // population count is odd. 4935 // 0xf -> Calculate a simple 32-bit checksum (addition with a 32 4936 // bit accumulator) 4937 #define DMA_SNIFF_CTRL_CALC_RESET _u(0x0) 4938 #define DMA_SNIFF_CTRL_CALC_BITS _u(0x000001e0) 4939 #define DMA_SNIFF_CTRL_CALC_MSB _u(8) 4940 #define DMA_SNIFF_CTRL_CALC_LSB _u(5) 4941 #define DMA_SNIFF_CTRL_CALC_ACCESS "RW" 4942 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC32 _u(0x0) 4943 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC32R _u(0x1) 4944 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC16 _u(0x2) 4945 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC16R _u(0x3) 4946 #define DMA_SNIFF_CTRL_CALC_VALUE_EVEN _u(0xe) 4947 #define DMA_SNIFF_CTRL_CALC_VALUE_SUM _u(0xf) 4948 // ----------------------------------------------------------------------------- 4949 // Field : DMA_SNIFF_CTRL_DMACH 4950 // Description : DMA channel for Sniffer to observe 4951 #define DMA_SNIFF_CTRL_DMACH_RESET _u(0x0) 4952 #define DMA_SNIFF_CTRL_DMACH_BITS _u(0x0000001e) 4953 #define DMA_SNIFF_CTRL_DMACH_MSB _u(4) 4954 #define DMA_SNIFF_CTRL_DMACH_LSB _u(1) 4955 #define DMA_SNIFF_CTRL_DMACH_ACCESS "RW" 4956 // ----------------------------------------------------------------------------- 4957 // Field : DMA_SNIFF_CTRL_EN 4958 // Description : Enable sniffer 4959 #define DMA_SNIFF_CTRL_EN_RESET _u(0x0) 4960 #define DMA_SNIFF_CTRL_EN_BITS _u(0x00000001) 4961 #define DMA_SNIFF_CTRL_EN_MSB _u(0) 4962 #define DMA_SNIFF_CTRL_EN_LSB _u(0) 4963 #define DMA_SNIFF_CTRL_EN_ACCESS "RW" 4964 // ============================================================================= 4965 // Register : DMA_SNIFF_DATA 4966 // Description : Data accumulator for sniff hardware 4967 // Write an initial seed value here before starting a DMA transfer 4968 // on the channel indicated by SNIFF_CTRL_DMACH. The hardware will 4969 // update this register each time it observes a read from the 4970 // indicated channel. Once the channel completes, the final result 4971 // can be read from this register. 4972 #define DMA_SNIFF_DATA_OFFSET _u(0x00000438) 4973 #define DMA_SNIFF_DATA_BITS _u(0xffffffff) 4974 #define DMA_SNIFF_DATA_RESET _u(0x00000000) 4975 #define DMA_SNIFF_DATA_MSB _u(31) 4976 #define DMA_SNIFF_DATA_LSB _u(0) 4977 #define DMA_SNIFF_DATA_ACCESS "RW" 4978 // ============================================================================= 4979 // Register : DMA_FIFO_LEVELS 4980 // Description : Debug RAF, WAF, TDF levels 4981 #define DMA_FIFO_LEVELS_OFFSET _u(0x00000440) 4982 #define DMA_FIFO_LEVELS_BITS _u(0x00ffffff) 4983 #define DMA_FIFO_LEVELS_RESET _u(0x00000000) 4984 // ----------------------------------------------------------------------------- 4985 // Field : DMA_FIFO_LEVELS_RAF_LVL 4986 // Description : Current Read-Address-FIFO fill level 4987 #define DMA_FIFO_LEVELS_RAF_LVL_RESET _u(0x00) 4988 #define DMA_FIFO_LEVELS_RAF_LVL_BITS _u(0x00ff0000) 4989 #define DMA_FIFO_LEVELS_RAF_LVL_MSB _u(23) 4990 #define DMA_FIFO_LEVELS_RAF_LVL_LSB _u(16) 4991 #define DMA_FIFO_LEVELS_RAF_LVL_ACCESS "RO" 4992 // ----------------------------------------------------------------------------- 4993 // Field : DMA_FIFO_LEVELS_WAF_LVL 4994 // Description : Current Write-Address-FIFO fill level 4995 #define DMA_FIFO_LEVELS_WAF_LVL_RESET _u(0x00) 4996 #define DMA_FIFO_LEVELS_WAF_LVL_BITS _u(0x0000ff00) 4997 #define DMA_FIFO_LEVELS_WAF_LVL_MSB _u(15) 4998 #define DMA_FIFO_LEVELS_WAF_LVL_LSB _u(8) 4999 #define DMA_FIFO_LEVELS_WAF_LVL_ACCESS "RO" 5000 // ----------------------------------------------------------------------------- 5001 // Field : DMA_FIFO_LEVELS_TDF_LVL 5002 // Description : Current Transfer-Data-FIFO fill level 5003 #define DMA_FIFO_LEVELS_TDF_LVL_RESET _u(0x00) 5004 #define DMA_FIFO_LEVELS_TDF_LVL_BITS _u(0x000000ff) 5005 #define DMA_FIFO_LEVELS_TDF_LVL_MSB _u(7) 5006 #define DMA_FIFO_LEVELS_TDF_LVL_LSB _u(0) 5007 #define DMA_FIFO_LEVELS_TDF_LVL_ACCESS "RO" 5008 // ============================================================================= 5009 // Register : DMA_CHAN_ABORT 5010 // Description : Abort an in-progress transfer sequence on one or more channels 5011 // Each bit corresponds to a channel. Writing a 1 aborts whatever 5012 // transfer sequence is in progress on that channel. The bit will 5013 // remain high until any in-flight transfers have been flushed 5014 // through the address and data FIFOs. 5015 // 5016 // After writing, this register must be polled until it returns 5017 // all-zero. Until this point, it is unsafe to restart the 5018 // channel. 5019 #define DMA_CHAN_ABORT_OFFSET _u(0x00000444) 5020 #define DMA_CHAN_ABORT_BITS _u(0x0000ffff) 5021 #define DMA_CHAN_ABORT_RESET _u(0x00000000) 5022 #define DMA_CHAN_ABORT_MSB _u(15) 5023 #define DMA_CHAN_ABORT_LSB _u(0) 5024 #define DMA_CHAN_ABORT_ACCESS "SC" 5025 // ============================================================================= 5026 // Register : DMA_N_CHANNELS 5027 // Description : The number of channels this DMA instance is equipped with. This 5028 // DMA supports up to 16 hardware channels, but can be configured 5029 // with as few as one, to minimise silicon area. 5030 #define DMA_N_CHANNELS_OFFSET _u(0x00000448) 5031 #define DMA_N_CHANNELS_BITS _u(0x0000001f) 5032 #define DMA_N_CHANNELS_RESET "-" 5033 #define DMA_N_CHANNELS_MSB _u(4) 5034 #define DMA_N_CHANNELS_LSB _u(0) 5035 #define DMA_N_CHANNELS_ACCESS "RO" 5036 // ============================================================================= 5037 // Register : DMA_CH0_DBG_CTDREQ 5038 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5039 // expects it can perform on the peripheral without 5040 // overflow/underflow. Write any value: clears the counter, and 5041 // cause channel to re-initiate DREQ handshake. 5042 #define DMA_CH0_DBG_CTDREQ_OFFSET _u(0x00000800) 5043 #define DMA_CH0_DBG_CTDREQ_BITS _u(0x0000003f) 5044 #define DMA_CH0_DBG_CTDREQ_RESET _u(0x00000000) 5045 #define DMA_CH0_DBG_CTDREQ_MSB _u(5) 5046 #define DMA_CH0_DBG_CTDREQ_LSB _u(0) 5047 #define DMA_CH0_DBG_CTDREQ_ACCESS "WC" 5048 // ============================================================================= 5049 // Register : DMA_CH0_DBG_TCR 5050 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5051 // of the next transfer 5052 #define DMA_CH0_DBG_TCR_OFFSET _u(0x00000804) 5053 #define DMA_CH0_DBG_TCR_BITS _u(0xffffffff) 5054 #define DMA_CH0_DBG_TCR_RESET _u(0x00000000) 5055 #define DMA_CH0_DBG_TCR_MSB _u(31) 5056 #define DMA_CH0_DBG_TCR_LSB _u(0) 5057 #define DMA_CH0_DBG_TCR_ACCESS "RO" 5058 // ============================================================================= 5059 // Register : DMA_CH1_DBG_CTDREQ 5060 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5061 // expects it can perform on the peripheral without 5062 // overflow/underflow. Write any value: clears the counter, and 5063 // cause channel to re-initiate DREQ handshake. 5064 #define DMA_CH1_DBG_CTDREQ_OFFSET _u(0x00000840) 5065 #define DMA_CH1_DBG_CTDREQ_BITS _u(0x0000003f) 5066 #define DMA_CH1_DBG_CTDREQ_RESET _u(0x00000000) 5067 #define DMA_CH1_DBG_CTDREQ_MSB _u(5) 5068 #define DMA_CH1_DBG_CTDREQ_LSB _u(0) 5069 #define DMA_CH1_DBG_CTDREQ_ACCESS "WC" 5070 // ============================================================================= 5071 // Register : DMA_CH1_DBG_TCR 5072 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5073 // of the next transfer 5074 #define DMA_CH1_DBG_TCR_OFFSET _u(0x00000844) 5075 #define DMA_CH1_DBG_TCR_BITS _u(0xffffffff) 5076 #define DMA_CH1_DBG_TCR_RESET _u(0x00000000) 5077 #define DMA_CH1_DBG_TCR_MSB _u(31) 5078 #define DMA_CH1_DBG_TCR_LSB _u(0) 5079 #define DMA_CH1_DBG_TCR_ACCESS "RO" 5080 // ============================================================================= 5081 // Register : DMA_CH2_DBG_CTDREQ 5082 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5083 // expects it can perform on the peripheral without 5084 // overflow/underflow. Write any value: clears the counter, and 5085 // cause channel to re-initiate DREQ handshake. 5086 #define DMA_CH2_DBG_CTDREQ_OFFSET _u(0x00000880) 5087 #define DMA_CH2_DBG_CTDREQ_BITS _u(0x0000003f) 5088 #define DMA_CH2_DBG_CTDREQ_RESET _u(0x00000000) 5089 #define DMA_CH2_DBG_CTDREQ_MSB _u(5) 5090 #define DMA_CH2_DBG_CTDREQ_LSB _u(0) 5091 #define DMA_CH2_DBG_CTDREQ_ACCESS "WC" 5092 // ============================================================================= 5093 // Register : DMA_CH2_DBG_TCR 5094 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5095 // of the next transfer 5096 #define DMA_CH2_DBG_TCR_OFFSET _u(0x00000884) 5097 #define DMA_CH2_DBG_TCR_BITS _u(0xffffffff) 5098 #define DMA_CH2_DBG_TCR_RESET _u(0x00000000) 5099 #define DMA_CH2_DBG_TCR_MSB _u(31) 5100 #define DMA_CH2_DBG_TCR_LSB _u(0) 5101 #define DMA_CH2_DBG_TCR_ACCESS "RO" 5102 // ============================================================================= 5103 // Register : DMA_CH3_DBG_CTDREQ 5104 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5105 // expects it can perform on the peripheral without 5106 // overflow/underflow. Write any value: clears the counter, and 5107 // cause channel to re-initiate DREQ handshake. 5108 #define DMA_CH3_DBG_CTDREQ_OFFSET _u(0x000008c0) 5109 #define DMA_CH3_DBG_CTDREQ_BITS _u(0x0000003f) 5110 #define DMA_CH3_DBG_CTDREQ_RESET _u(0x00000000) 5111 #define DMA_CH3_DBG_CTDREQ_MSB _u(5) 5112 #define DMA_CH3_DBG_CTDREQ_LSB _u(0) 5113 #define DMA_CH3_DBG_CTDREQ_ACCESS "WC" 5114 // ============================================================================= 5115 // Register : DMA_CH3_DBG_TCR 5116 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5117 // of the next transfer 5118 #define DMA_CH3_DBG_TCR_OFFSET _u(0x000008c4) 5119 #define DMA_CH3_DBG_TCR_BITS _u(0xffffffff) 5120 #define DMA_CH3_DBG_TCR_RESET _u(0x00000000) 5121 #define DMA_CH3_DBG_TCR_MSB _u(31) 5122 #define DMA_CH3_DBG_TCR_LSB _u(0) 5123 #define DMA_CH3_DBG_TCR_ACCESS "RO" 5124 // ============================================================================= 5125 // Register : DMA_CH4_DBG_CTDREQ 5126 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5127 // expects it can perform on the peripheral without 5128 // overflow/underflow. Write any value: clears the counter, and 5129 // cause channel to re-initiate DREQ handshake. 5130 #define DMA_CH4_DBG_CTDREQ_OFFSET _u(0x00000900) 5131 #define DMA_CH4_DBG_CTDREQ_BITS _u(0x0000003f) 5132 #define DMA_CH4_DBG_CTDREQ_RESET _u(0x00000000) 5133 #define DMA_CH4_DBG_CTDREQ_MSB _u(5) 5134 #define DMA_CH4_DBG_CTDREQ_LSB _u(0) 5135 #define DMA_CH4_DBG_CTDREQ_ACCESS "WC" 5136 // ============================================================================= 5137 // Register : DMA_CH4_DBG_TCR 5138 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5139 // of the next transfer 5140 #define DMA_CH4_DBG_TCR_OFFSET _u(0x00000904) 5141 #define DMA_CH4_DBG_TCR_BITS _u(0xffffffff) 5142 #define DMA_CH4_DBG_TCR_RESET _u(0x00000000) 5143 #define DMA_CH4_DBG_TCR_MSB _u(31) 5144 #define DMA_CH4_DBG_TCR_LSB _u(0) 5145 #define DMA_CH4_DBG_TCR_ACCESS "RO" 5146 // ============================================================================= 5147 // Register : DMA_CH5_DBG_CTDREQ 5148 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5149 // expects it can perform on the peripheral without 5150 // overflow/underflow. Write any value: clears the counter, and 5151 // cause channel to re-initiate DREQ handshake. 5152 #define DMA_CH5_DBG_CTDREQ_OFFSET _u(0x00000940) 5153 #define DMA_CH5_DBG_CTDREQ_BITS _u(0x0000003f) 5154 #define DMA_CH5_DBG_CTDREQ_RESET _u(0x00000000) 5155 #define DMA_CH5_DBG_CTDREQ_MSB _u(5) 5156 #define DMA_CH5_DBG_CTDREQ_LSB _u(0) 5157 #define DMA_CH5_DBG_CTDREQ_ACCESS "WC" 5158 // ============================================================================= 5159 // Register : DMA_CH5_DBG_TCR 5160 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5161 // of the next transfer 5162 #define DMA_CH5_DBG_TCR_OFFSET _u(0x00000944) 5163 #define DMA_CH5_DBG_TCR_BITS _u(0xffffffff) 5164 #define DMA_CH5_DBG_TCR_RESET _u(0x00000000) 5165 #define DMA_CH5_DBG_TCR_MSB _u(31) 5166 #define DMA_CH5_DBG_TCR_LSB _u(0) 5167 #define DMA_CH5_DBG_TCR_ACCESS "RO" 5168 // ============================================================================= 5169 // Register : DMA_CH6_DBG_CTDREQ 5170 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5171 // expects it can perform on the peripheral without 5172 // overflow/underflow. Write any value: clears the counter, and 5173 // cause channel to re-initiate DREQ handshake. 5174 #define DMA_CH6_DBG_CTDREQ_OFFSET _u(0x00000980) 5175 #define DMA_CH6_DBG_CTDREQ_BITS _u(0x0000003f) 5176 #define DMA_CH6_DBG_CTDREQ_RESET _u(0x00000000) 5177 #define DMA_CH6_DBG_CTDREQ_MSB _u(5) 5178 #define DMA_CH6_DBG_CTDREQ_LSB _u(0) 5179 #define DMA_CH6_DBG_CTDREQ_ACCESS "WC" 5180 // ============================================================================= 5181 // Register : DMA_CH6_DBG_TCR 5182 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5183 // of the next transfer 5184 #define DMA_CH6_DBG_TCR_OFFSET _u(0x00000984) 5185 #define DMA_CH6_DBG_TCR_BITS _u(0xffffffff) 5186 #define DMA_CH6_DBG_TCR_RESET _u(0x00000000) 5187 #define DMA_CH6_DBG_TCR_MSB _u(31) 5188 #define DMA_CH6_DBG_TCR_LSB _u(0) 5189 #define DMA_CH6_DBG_TCR_ACCESS "RO" 5190 // ============================================================================= 5191 // Register : DMA_CH7_DBG_CTDREQ 5192 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5193 // expects it can perform on the peripheral without 5194 // overflow/underflow. Write any value: clears the counter, and 5195 // cause channel to re-initiate DREQ handshake. 5196 #define DMA_CH7_DBG_CTDREQ_OFFSET _u(0x000009c0) 5197 #define DMA_CH7_DBG_CTDREQ_BITS _u(0x0000003f) 5198 #define DMA_CH7_DBG_CTDREQ_RESET _u(0x00000000) 5199 #define DMA_CH7_DBG_CTDREQ_MSB _u(5) 5200 #define DMA_CH7_DBG_CTDREQ_LSB _u(0) 5201 #define DMA_CH7_DBG_CTDREQ_ACCESS "WC" 5202 // ============================================================================= 5203 // Register : DMA_CH7_DBG_TCR 5204 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5205 // of the next transfer 5206 #define DMA_CH7_DBG_TCR_OFFSET _u(0x000009c4) 5207 #define DMA_CH7_DBG_TCR_BITS _u(0xffffffff) 5208 #define DMA_CH7_DBG_TCR_RESET _u(0x00000000) 5209 #define DMA_CH7_DBG_TCR_MSB _u(31) 5210 #define DMA_CH7_DBG_TCR_LSB _u(0) 5211 #define DMA_CH7_DBG_TCR_ACCESS "RO" 5212 // ============================================================================= 5213 // Register : DMA_CH8_DBG_CTDREQ 5214 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5215 // expects it can perform on the peripheral without 5216 // overflow/underflow. Write any value: clears the counter, and 5217 // cause channel to re-initiate DREQ handshake. 5218 #define DMA_CH8_DBG_CTDREQ_OFFSET _u(0x00000a00) 5219 #define DMA_CH8_DBG_CTDREQ_BITS _u(0x0000003f) 5220 #define DMA_CH8_DBG_CTDREQ_RESET _u(0x00000000) 5221 #define DMA_CH8_DBG_CTDREQ_MSB _u(5) 5222 #define DMA_CH8_DBG_CTDREQ_LSB _u(0) 5223 #define DMA_CH8_DBG_CTDREQ_ACCESS "WC" 5224 // ============================================================================= 5225 // Register : DMA_CH8_DBG_TCR 5226 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5227 // of the next transfer 5228 #define DMA_CH8_DBG_TCR_OFFSET _u(0x00000a04) 5229 #define DMA_CH8_DBG_TCR_BITS _u(0xffffffff) 5230 #define DMA_CH8_DBG_TCR_RESET _u(0x00000000) 5231 #define DMA_CH8_DBG_TCR_MSB _u(31) 5232 #define DMA_CH8_DBG_TCR_LSB _u(0) 5233 #define DMA_CH8_DBG_TCR_ACCESS "RO" 5234 // ============================================================================= 5235 // Register : DMA_CH9_DBG_CTDREQ 5236 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5237 // expects it can perform on the peripheral without 5238 // overflow/underflow. Write any value: clears the counter, and 5239 // cause channel to re-initiate DREQ handshake. 5240 #define DMA_CH9_DBG_CTDREQ_OFFSET _u(0x00000a40) 5241 #define DMA_CH9_DBG_CTDREQ_BITS _u(0x0000003f) 5242 #define DMA_CH9_DBG_CTDREQ_RESET _u(0x00000000) 5243 #define DMA_CH9_DBG_CTDREQ_MSB _u(5) 5244 #define DMA_CH9_DBG_CTDREQ_LSB _u(0) 5245 #define DMA_CH9_DBG_CTDREQ_ACCESS "WC" 5246 // ============================================================================= 5247 // Register : DMA_CH9_DBG_TCR 5248 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5249 // of the next transfer 5250 #define DMA_CH9_DBG_TCR_OFFSET _u(0x00000a44) 5251 #define DMA_CH9_DBG_TCR_BITS _u(0xffffffff) 5252 #define DMA_CH9_DBG_TCR_RESET _u(0x00000000) 5253 #define DMA_CH9_DBG_TCR_MSB _u(31) 5254 #define DMA_CH9_DBG_TCR_LSB _u(0) 5255 #define DMA_CH9_DBG_TCR_ACCESS "RO" 5256 // ============================================================================= 5257 // Register : DMA_CH10_DBG_CTDREQ 5258 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5259 // expects it can perform on the peripheral without 5260 // overflow/underflow. Write any value: clears the counter, and 5261 // cause channel to re-initiate DREQ handshake. 5262 #define DMA_CH10_DBG_CTDREQ_OFFSET _u(0x00000a80) 5263 #define DMA_CH10_DBG_CTDREQ_BITS _u(0x0000003f) 5264 #define DMA_CH10_DBG_CTDREQ_RESET _u(0x00000000) 5265 #define DMA_CH10_DBG_CTDREQ_MSB _u(5) 5266 #define DMA_CH10_DBG_CTDREQ_LSB _u(0) 5267 #define DMA_CH10_DBG_CTDREQ_ACCESS "WC" 5268 // ============================================================================= 5269 // Register : DMA_CH10_DBG_TCR 5270 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5271 // of the next transfer 5272 #define DMA_CH10_DBG_TCR_OFFSET _u(0x00000a84) 5273 #define DMA_CH10_DBG_TCR_BITS _u(0xffffffff) 5274 #define DMA_CH10_DBG_TCR_RESET _u(0x00000000) 5275 #define DMA_CH10_DBG_TCR_MSB _u(31) 5276 #define DMA_CH10_DBG_TCR_LSB _u(0) 5277 #define DMA_CH10_DBG_TCR_ACCESS "RO" 5278 // ============================================================================= 5279 // Register : DMA_CH11_DBG_CTDREQ 5280 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 5281 // expects it can perform on the peripheral without 5282 // overflow/underflow. Write any value: clears the counter, and 5283 // cause channel to re-initiate DREQ handshake. 5284 #define DMA_CH11_DBG_CTDREQ_OFFSET _u(0x00000ac0) 5285 #define DMA_CH11_DBG_CTDREQ_BITS _u(0x0000003f) 5286 #define DMA_CH11_DBG_CTDREQ_RESET _u(0x00000000) 5287 #define DMA_CH11_DBG_CTDREQ_MSB _u(5) 5288 #define DMA_CH11_DBG_CTDREQ_LSB _u(0) 5289 #define DMA_CH11_DBG_CTDREQ_ACCESS "WC" 5290 // ============================================================================= 5291 // Register : DMA_CH11_DBG_TCR 5292 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 5293 // of the next transfer 5294 #define DMA_CH11_DBG_TCR_OFFSET _u(0x00000ac4) 5295 #define DMA_CH11_DBG_TCR_BITS _u(0xffffffff) 5296 #define DMA_CH11_DBG_TCR_RESET _u(0x00000000) 5297 #define DMA_CH11_DBG_TCR_MSB _u(31) 5298 #define DMA_CH11_DBG_TCR_LSB _u(0) 5299 #define DMA_CH11_DBG_TCR_ACCESS "RO" 5300 // ============================================================================= 5301 #endif // HARDWARE_REGS_DMA_DEFINED 5302