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