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 #define DMA_CH0_TRANS_COUNT_OFFSET _u(0x00000008) 44 #define DMA_CH0_TRANS_COUNT_BITS _u(0xffffffff) 45 #define DMA_CH0_TRANS_COUNT_RESET _u(0x00000000) 46 // ----------------------------------------------------------------------------- 47 // Field : DMA_CH0_TRANS_COUNT_MODE 48 // Description : When MODE is 0x0, the transfer count decrements with each 49 // transfer until 0, and then the channel triggers the next 50 // channel indicated by CTRL_CHAIN_TO. 51 // 52 // When MODE is 0x1, the transfer count decrements with each 53 // transfer until 0, and then the channel re-triggers itself, in 54 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 55 // useful for e.g. an endless ring-buffer DMA with periodic 56 // interrupts. 57 // 58 // When MODE is 0xf, the transfer count does not decrement. The 59 // DMA channel performs an endless sequence of transfers, never 60 // triggering other channels or raising interrupts, until an ABORT 61 // is raised. 62 // 63 // All other values are reserved. 64 // 0x0 -> NORMAL 65 // 0x1 -> TRIGGER_SELF 66 // 0xf -> ENDLESS 67 #define DMA_CH0_TRANS_COUNT_MODE_RESET _u(0x0) 68 #define DMA_CH0_TRANS_COUNT_MODE_BITS _u(0xf0000000) 69 #define DMA_CH0_TRANS_COUNT_MODE_MSB _u(31) 70 #define DMA_CH0_TRANS_COUNT_MODE_LSB _u(28) 71 #define DMA_CH0_TRANS_COUNT_MODE_ACCESS "RW" 72 #define DMA_CH0_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 73 #define DMA_CH0_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 74 #define DMA_CH0_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 75 // ----------------------------------------------------------------------------- 76 // Field : DMA_CH0_TRANS_COUNT_COUNT 77 // Description : 28-bit transfer count (256 million transfers maximum). 78 // 79 // Program the number of bus transfers a channel will perform 80 // before halting. Note that, if transfers are larger than one 81 // byte in size, this is not equal to the number of bytes 82 // transferred (see CTRL_DATA_SIZE). 83 // 84 // When the channel is active, reading this register shows the 85 // number of transfers remaining, updating automatically each time 86 // a write transfer completes. 87 // 88 // Writing this register sets the RELOAD value for the transfer 89 // counter. Each time this channel is triggered, the RELOAD value 90 // is copied into the live transfer counter. The channel can be 91 // started multiple times, and will perform the same number of 92 // transfers each time, as programmed by most recent write. 93 // 94 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 95 // is used as a trigger, the written value is used immediately as 96 // the length of the new transfer sequence, as well as being 97 // written to RELOAD. 98 #define DMA_CH0_TRANS_COUNT_COUNT_RESET _u(0x0000000) 99 #define DMA_CH0_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 100 #define DMA_CH0_TRANS_COUNT_COUNT_MSB _u(27) 101 #define DMA_CH0_TRANS_COUNT_COUNT_LSB _u(0) 102 #define DMA_CH0_TRANS_COUNT_COUNT_ACCESS "RW" 103 // ============================================================================= 104 // Register : DMA_CH0_CTRL_TRIG 105 // Description : DMA Channel 0 Control and Status 106 #define DMA_CH0_CTRL_TRIG_OFFSET _u(0x0000000c) 107 #define DMA_CH0_CTRL_TRIG_BITS _u(0xe7ffffff) 108 #define DMA_CH0_CTRL_TRIG_RESET _u(0x00000000) 109 // ----------------------------------------------------------------------------- 110 // Field : DMA_CH0_CTRL_TRIG_AHB_ERROR 111 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 112 // halts when it encounters any bus error, and always raises its 113 // channel IRQ flag. 114 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 115 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 116 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_MSB _u(31) 117 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_LSB _u(31) 118 #define DMA_CH0_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 119 // ----------------------------------------------------------------------------- 120 // Field : DMA_CH0_CTRL_TRIG_READ_ERROR 121 // Description : If 1, the channel received a read bus error. Write one to 122 // clear. 123 // READ_ADDR shows the approximate address where the bus error was 124 // encountered (will not be earlier, or more than 3 transfers 125 // later) 126 #define DMA_CH0_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 127 #define DMA_CH0_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 128 #define DMA_CH0_CTRL_TRIG_READ_ERROR_MSB _u(30) 129 #define DMA_CH0_CTRL_TRIG_READ_ERROR_LSB _u(30) 130 #define DMA_CH0_CTRL_TRIG_READ_ERROR_ACCESS "WC" 131 // ----------------------------------------------------------------------------- 132 // Field : DMA_CH0_CTRL_TRIG_WRITE_ERROR 133 // Description : If 1, the channel received a write bus error. Write one to 134 // clear. 135 // WRITE_ADDR shows the approximate address where the bus error 136 // was encountered (will not be earlier, or more than 5 transfers 137 // later) 138 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 139 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 140 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 141 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 142 #define DMA_CH0_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 143 // ----------------------------------------------------------------------------- 144 // Field : DMA_CH0_CTRL_TRIG_BUSY 145 // Description : This flag goes high when the channel starts a new transfer 146 // sequence, and low when the last transfer of that sequence 147 // completes. Clearing EN while BUSY is high pauses the channel, 148 // and BUSY will stay high while paused. 149 // 150 // To terminate a sequence early (and clear the BUSY flag), see 151 // CHAN_ABORT. 152 #define DMA_CH0_CTRL_TRIG_BUSY_RESET _u(0x0) 153 #define DMA_CH0_CTRL_TRIG_BUSY_BITS _u(0x04000000) 154 #define DMA_CH0_CTRL_TRIG_BUSY_MSB _u(26) 155 #define DMA_CH0_CTRL_TRIG_BUSY_LSB _u(26) 156 #define DMA_CH0_CTRL_TRIG_BUSY_ACCESS "RO" 157 // ----------------------------------------------------------------------------- 158 // Field : DMA_CH0_CTRL_TRIG_SNIFF_EN 159 // Description : If 1, this channel's data transfers are visible to the sniff 160 // hardware, and each transfer will advance the state of the 161 // checksum. This only applies if the sniff hardware is enabled, 162 // and has this channel selected. 163 // 164 // This allows checksum to be enabled or disabled on a per- 165 // control- block basis. 166 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 167 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 168 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_MSB _u(25) 169 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_LSB _u(25) 170 #define DMA_CH0_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 171 // ----------------------------------------------------------------------------- 172 // Field : DMA_CH0_CTRL_TRIG_BSWAP 173 // Description : Apply byte-swap transformation to DMA data. 174 // For byte data, this has no effect. For halfword data, the two 175 // bytes of each halfword are swapped. For word data, the four 176 // bytes of each word are swapped to reverse order. 177 #define DMA_CH0_CTRL_TRIG_BSWAP_RESET _u(0x0) 178 #define DMA_CH0_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 179 #define DMA_CH0_CTRL_TRIG_BSWAP_MSB _u(24) 180 #define DMA_CH0_CTRL_TRIG_BSWAP_LSB _u(24) 181 #define DMA_CH0_CTRL_TRIG_BSWAP_ACCESS "RW" 182 // ----------------------------------------------------------------------------- 183 // Field : DMA_CH0_CTRL_TRIG_IRQ_QUIET 184 // Description : In QUIET mode, the channel does not generate IRQs at the end of 185 // every transfer block. Instead, an IRQ is raised when NULL is 186 // written to a trigger register, indicating the end of a control 187 // block chain. 188 // 189 // This reduces the number of interrupts to be serviced by the CPU 190 // when transferring a DMA chain of many small control blocks. 191 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 192 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 193 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 194 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 195 #define DMA_CH0_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 196 // ----------------------------------------------------------------------------- 197 // Field : DMA_CH0_CTRL_TRIG_TREQ_SEL 198 // Description : Select a Transfer Request signal. 199 // The channel uses the transfer request signal to pace its data 200 // transfer rate. Sources for TREQ signals are internal (TIMERS) 201 // or external (DREQ, a Data Request from the system). 202 // 0x0 to 0x3a -> select DREQ n as TREQ 203 // 0x3b -> Select Timer 0 as TREQ 204 // 0x3c -> Select Timer 1 as TREQ 205 // 0x3d -> Select Timer 2 as TREQ (Optional) 206 // 0x3e -> Select Timer 3 as TREQ (Optional) 207 // 0x3f -> Permanent request, for unpaced transfers. 208 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 209 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 210 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_MSB _u(22) 211 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_LSB _u(17) 212 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 213 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 214 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 215 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 216 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 217 #define DMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 218 // ----------------------------------------------------------------------------- 219 // Field : DMA_CH0_CTRL_TRIG_CHAIN_TO 220 // Description : When this channel completes, it will trigger the channel 221 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 222 // channel)_. 223 // 224 // Note this field resets to 0, so channels 1 and above will chain 225 // to channel 0 by default. Set this field to avoid this 226 // behaviour. 227 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 228 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 229 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_MSB _u(16) 230 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_LSB _u(13) 231 #define DMA_CH0_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 232 // ----------------------------------------------------------------------------- 233 // Field : DMA_CH0_CTRL_TRIG_RING_SEL 234 // Description : Select whether RING_SIZE applies to read or write addresses. 235 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 236 // boundary. If 1, write addresses are wrapped. 237 #define DMA_CH0_CTRL_TRIG_RING_SEL_RESET _u(0x0) 238 #define DMA_CH0_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 239 #define DMA_CH0_CTRL_TRIG_RING_SEL_MSB _u(12) 240 #define DMA_CH0_CTRL_TRIG_RING_SEL_LSB _u(12) 241 #define DMA_CH0_CTRL_TRIG_RING_SEL_ACCESS "RW" 242 // ----------------------------------------------------------------------------- 243 // Field : DMA_CH0_CTRL_TRIG_RING_SIZE 244 // Description : Size of address wrap region. If 0, don't wrap. For values n > 245 // 0, only the lower n bits of the address will change. This wraps 246 // the address on a (1 << n) byte boundary, facilitating access to 247 // naturally-aligned ring buffers. 248 // 249 // Ring sizes between 2 and 32768 bytes are possible. This can 250 // apply to either read or write addresses, based on value of 251 // RING_SEL. 252 // 0x0 -> RING_NONE 253 #define DMA_CH0_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 254 #define DMA_CH0_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 255 #define DMA_CH0_CTRL_TRIG_RING_SIZE_MSB _u(11) 256 #define DMA_CH0_CTRL_TRIG_RING_SIZE_LSB _u(8) 257 #define DMA_CH0_CTRL_TRIG_RING_SIZE_ACCESS "RW" 258 #define DMA_CH0_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 259 // ----------------------------------------------------------------------------- 260 // Field : DMA_CH0_CTRL_TRIG_INCR_WRITE_REV 261 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 262 // rather than incremented with each transfer. 263 // 264 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 265 // causes the write address to be incremented by twice the 266 // transfer size, i.e. skipping over alternate addresses. 267 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 268 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 269 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 270 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 271 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 272 // ----------------------------------------------------------------------------- 273 // Field : DMA_CH0_CTRL_TRIG_INCR_WRITE 274 // Description : If 1, the write address increments with each transfer. If 0, 275 // each write is directed to the same, initial address. 276 // 277 // Generally this should be disabled for memory-to-peripheral 278 // transfers. 279 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 280 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 281 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_MSB _u(6) 282 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_LSB _u(6) 283 #define DMA_CH0_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 284 // ----------------------------------------------------------------------------- 285 // Field : DMA_CH0_CTRL_TRIG_INCR_READ_REV 286 // Description : If 1, and INCR_READ is 1, the read address is decremented 287 // rather than incremented with each transfer. 288 // 289 // If 1, and INCR_READ is 0, this otherwise-unused combination 290 // causes the read address to be incremented by twice the transfer 291 // size, i.e. skipping over alternate addresses. 292 #define DMA_CH0_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 293 #define DMA_CH0_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 294 #define DMA_CH0_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 295 #define DMA_CH0_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 296 #define DMA_CH0_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 297 // ----------------------------------------------------------------------------- 298 // Field : DMA_CH0_CTRL_TRIG_INCR_READ 299 // Description : If 1, the read address increments with each transfer. If 0, 300 // each read is directed to the same, initial address. 301 // 302 // Generally this should be disabled for peripheral-to-memory 303 // transfers. 304 #define DMA_CH0_CTRL_TRIG_INCR_READ_RESET _u(0x0) 305 #define DMA_CH0_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 306 #define DMA_CH0_CTRL_TRIG_INCR_READ_MSB _u(4) 307 #define DMA_CH0_CTRL_TRIG_INCR_READ_LSB _u(4) 308 #define DMA_CH0_CTRL_TRIG_INCR_READ_ACCESS "RW" 309 // ----------------------------------------------------------------------------- 310 // Field : DMA_CH0_CTRL_TRIG_DATA_SIZE 311 // Description : Set the size of each bus transfer (byte/halfword/word). 312 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 313 // with each transfer. 314 // 0x0 -> SIZE_BYTE 315 // 0x1 -> SIZE_HALFWORD 316 // 0x2 -> SIZE_WORD 317 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 318 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 319 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_MSB _u(3) 320 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_LSB _u(2) 321 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 322 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 323 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 324 #define DMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 325 // ----------------------------------------------------------------------------- 326 // Field : DMA_CH0_CTRL_TRIG_HIGH_PRIORITY 327 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 328 // scheduling: in each scheduling round, all high priority 329 // channels are considered first, and then only a single low 330 // priority channel, before returning to the high priority 331 // channels. 332 // 333 // This only affects the order in which the DMA schedules 334 // channels. The DMA's bus priority is not changed. If the DMA is 335 // not saturated then a low priority channel will see no loss of 336 // throughput. 337 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 338 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 339 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 340 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 341 #define DMA_CH0_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 342 // ----------------------------------------------------------------------------- 343 // Field : DMA_CH0_CTRL_TRIG_EN 344 // Description : DMA Channel Enable. 345 // When 1, the channel will respond to triggering events, which 346 // will cause it to become BUSY and start transferring data. When 347 // 0, the channel will ignore triggers, stop issuing transfers, 348 // and pause the current transfer sequence (i.e. BUSY will remain 349 // high if already high) 350 #define DMA_CH0_CTRL_TRIG_EN_RESET _u(0x0) 351 #define DMA_CH0_CTRL_TRIG_EN_BITS _u(0x00000001) 352 #define DMA_CH0_CTRL_TRIG_EN_MSB _u(0) 353 #define DMA_CH0_CTRL_TRIG_EN_LSB _u(0) 354 #define DMA_CH0_CTRL_TRIG_EN_ACCESS "RW" 355 // ============================================================================= 356 // Register : DMA_CH0_AL1_CTRL 357 // Description : Alias for channel 0 CTRL register 358 #define DMA_CH0_AL1_CTRL_OFFSET _u(0x00000010) 359 #define DMA_CH0_AL1_CTRL_BITS _u(0xffffffff) 360 #define DMA_CH0_AL1_CTRL_RESET "-" 361 #define DMA_CH0_AL1_CTRL_MSB _u(31) 362 #define DMA_CH0_AL1_CTRL_LSB _u(0) 363 #define DMA_CH0_AL1_CTRL_ACCESS "RW" 364 // ============================================================================= 365 // Register : DMA_CH0_AL1_READ_ADDR 366 // Description : Alias for channel 0 READ_ADDR register 367 #define DMA_CH0_AL1_READ_ADDR_OFFSET _u(0x00000014) 368 #define DMA_CH0_AL1_READ_ADDR_BITS _u(0xffffffff) 369 #define DMA_CH0_AL1_READ_ADDR_RESET "-" 370 #define DMA_CH0_AL1_READ_ADDR_MSB _u(31) 371 #define DMA_CH0_AL1_READ_ADDR_LSB _u(0) 372 #define DMA_CH0_AL1_READ_ADDR_ACCESS "RW" 373 // ============================================================================= 374 // Register : DMA_CH0_AL1_WRITE_ADDR 375 // Description : Alias for channel 0 WRITE_ADDR register 376 #define DMA_CH0_AL1_WRITE_ADDR_OFFSET _u(0x00000018) 377 #define DMA_CH0_AL1_WRITE_ADDR_BITS _u(0xffffffff) 378 #define DMA_CH0_AL1_WRITE_ADDR_RESET "-" 379 #define DMA_CH0_AL1_WRITE_ADDR_MSB _u(31) 380 #define DMA_CH0_AL1_WRITE_ADDR_LSB _u(0) 381 #define DMA_CH0_AL1_WRITE_ADDR_ACCESS "RW" 382 // ============================================================================= 383 // Register : DMA_CH0_AL1_TRANS_COUNT_TRIG 384 // Description : Alias for channel 0 TRANS_COUNT register 385 // This is a trigger register (0xc). Writing a nonzero value will 386 // reload the channel counter and start the channel. 387 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000001c) 388 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 389 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_RESET "-" 390 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_MSB _u(31) 391 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_LSB _u(0) 392 #define DMA_CH0_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 393 // ============================================================================= 394 // Register : DMA_CH0_AL2_CTRL 395 // Description : Alias for channel 0 CTRL register 396 #define DMA_CH0_AL2_CTRL_OFFSET _u(0x00000020) 397 #define DMA_CH0_AL2_CTRL_BITS _u(0xffffffff) 398 #define DMA_CH0_AL2_CTRL_RESET "-" 399 #define DMA_CH0_AL2_CTRL_MSB _u(31) 400 #define DMA_CH0_AL2_CTRL_LSB _u(0) 401 #define DMA_CH0_AL2_CTRL_ACCESS "RW" 402 // ============================================================================= 403 // Register : DMA_CH0_AL2_TRANS_COUNT 404 // Description : Alias for channel 0 TRANS_COUNT register 405 #define DMA_CH0_AL2_TRANS_COUNT_OFFSET _u(0x00000024) 406 #define DMA_CH0_AL2_TRANS_COUNT_BITS _u(0xffffffff) 407 #define DMA_CH0_AL2_TRANS_COUNT_RESET "-" 408 #define DMA_CH0_AL2_TRANS_COUNT_MSB _u(31) 409 #define DMA_CH0_AL2_TRANS_COUNT_LSB _u(0) 410 #define DMA_CH0_AL2_TRANS_COUNT_ACCESS "RW" 411 // ============================================================================= 412 // Register : DMA_CH0_AL2_READ_ADDR 413 // Description : Alias for channel 0 READ_ADDR register 414 #define DMA_CH0_AL2_READ_ADDR_OFFSET _u(0x00000028) 415 #define DMA_CH0_AL2_READ_ADDR_BITS _u(0xffffffff) 416 #define DMA_CH0_AL2_READ_ADDR_RESET "-" 417 #define DMA_CH0_AL2_READ_ADDR_MSB _u(31) 418 #define DMA_CH0_AL2_READ_ADDR_LSB _u(0) 419 #define DMA_CH0_AL2_READ_ADDR_ACCESS "RW" 420 // ============================================================================= 421 // Register : DMA_CH0_AL2_WRITE_ADDR_TRIG 422 // Description : Alias for channel 0 WRITE_ADDR register 423 // This is a trigger register (0xc). Writing a nonzero value will 424 // reload the channel counter and start the channel. 425 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000002c) 426 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 427 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_RESET "-" 428 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_MSB _u(31) 429 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_LSB _u(0) 430 #define DMA_CH0_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 431 // ============================================================================= 432 // Register : DMA_CH0_AL3_CTRL 433 // Description : Alias for channel 0 CTRL register 434 #define DMA_CH0_AL3_CTRL_OFFSET _u(0x00000030) 435 #define DMA_CH0_AL3_CTRL_BITS _u(0xffffffff) 436 #define DMA_CH0_AL3_CTRL_RESET "-" 437 #define DMA_CH0_AL3_CTRL_MSB _u(31) 438 #define DMA_CH0_AL3_CTRL_LSB _u(0) 439 #define DMA_CH0_AL3_CTRL_ACCESS "RW" 440 // ============================================================================= 441 // Register : DMA_CH0_AL3_WRITE_ADDR 442 // Description : Alias for channel 0 WRITE_ADDR register 443 #define DMA_CH0_AL3_WRITE_ADDR_OFFSET _u(0x00000034) 444 #define DMA_CH0_AL3_WRITE_ADDR_BITS _u(0xffffffff) 445 #define DMA_CH0_AL3_WRITE_ADDR_RESET "-" 446 #define DMA_CH0_AL3_WRITE_ADDR_MSB _u(31) 447 #define DMA_CH0_AL3_WRITE_ADDR_LSB _u(0) 448 #define DMA_CH0_AL3_WRITE_ADDR_ACCESS "RW" 449 // ============================================================================= 450 // Register : DMA_CH0_AL3_TRANS_COUNT 451 // Description : Alias for channel 0 TRANS_COUNT register 452 #define DMA_CH0_AL3_TRANS_COUNT_OFFSET _u(0x00000038) 453 #define DMA_CH0_AL3_TRANS_COUNT_BITS _u(0xffffffff) 454 #define DMA_CH0_AL3_TRANS_COUNT_RESET "-" 455 #define DMA_CH0_AL3_TRANS_COUNT_MSB _u(31) 456 #define DMA_CH0_AL3_TRANS_COUNT_LSB _u(0) 457 #define DMA_CH0_AL3_TRANS_COUNT_ACCESS "RW" 458 // ============================================================================= 459 // Register : DMA_CH0_AL3_READ_ADDR_TRIG 460 // Description : Alias for channel 0 READ_ADDR register 461 // This is a trigger register (0xc). Writing a nonzero value will 462 // reload the channel counter and start the channel. 463 #define DMA_CH0_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000003c) 464 #define DMA_CH0_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 465 #define DMA_CH0_AL3_READ_ADDR_TRIG_RESET "-" 466 #define DMA_CH0_AL3_READ_ADDR_TRIG_MSB _u(31) 467 #define DMA_CH0_AL3_READ_ADDR_TRIG_LSB _u(0) 468 #define DMA_CH0_AL3_READ_ADDR_TRIG_ACCESS "RW" 469 // ============================================================================= 470 // Register : DMA_CH1_READ_ADDR 471 // Description : DMA Channel 1 Read Address pointer 472 // This register updates automatically each time a read completes. 473 // The current value is the next address to be read by this 474 // channel. 475 #define DMA_CH1_READ_ADDR_OFFSET _u(0x00000040) 476 #define DMA_CH1_READ_ADDR_BITS _u(0xffffffff) 477 #define DMA_CH1_READ_ADDR_RESET _u(0x00000000) 478 #define DMA_CH1_READ_ADDR_MSB _u(31) 479 #define DMA_CH1_READ_ADDR_LSB _u(0) 480 #define DMA_CH1_READ_ADDR_ACCESS "RW" 481 // ============================================================================= 482 // Register : DMA_CH1_WRITE_ADDR 483 // Description : DMA Channel 1 Write Address pointer 484 // This register updates automatically each time a write 485 // completes. The current value is the next address to be written 486 // by this channel. 487 #define DMA_CH1_WRITE_ADDR_OFFSET _u(0x00000044) 488 #define DMA_CH1_WRITE_ADDR_BITS _u(0xffffffff) 489 #define DMA_CH1_WRITE_ADDR_RESET _u(0x00000000) 490 #define DMA_CH1_WRITE_ADDR_MSB _u(31) 491 #define DMA_CH1_WRITE_ADDR_LSB _u(0) 492 #define DMA_CH1_WRITE_ADDR_ACCESS "RW" 493 // ============================================================================= 494 // Register : DMA_CH1_TRANS_COUNT 495 // Description : DMA Channel 1 Transfer Count 496 #define DMA_CH1_TRANS_COUNT_OFFSET _u(0x00000048) 497 #define DMA_CH1_TRANS_COUNT_BITS _u(0xffffffff) 498 #define DMA_CH1_TRANS_COUNT_RESET _u(0x00000000) 499 // ----------------------------------------------------------------------------- 500 // Field : DMA_CH1_TRANS_COUNT_MODE 501 // Description : When MODE is 0x0, the transfer count decrements with each 502 // transfer until 0, and then the channel triggers the next 503 // channel indicated by CTRL_CHAIN_TO. 504 // 505 // When MODE is 0x1, the transfer count decrements with each 506 // transfer until 0, and then the channel re-triggers itself, in 507 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 508 // useful for e.g. an endless ring-buffer DMA with periodic 509 // interrupts. 510 // 511 // When MODE is 0xf, the transfer count does not decrement. The 512 // DMA channel performs an endless sequence of transfers, never 513 // triggering other channels or raising interrupts, until an ABORT 514 // is raised. 515 // 516 // All other values are reserved. 517 // 0x0 -> NORMAL 518 // 0x1 -> TRIGGER_SELF 519 // 0xf -> ENDLESS 520 #define DMA_CH1_TRANS_COUNT_MODE_RESET _u(0x0) 521 #define DMA_CH1_TRANS_COUNT_MODE_BITS _u(0xf0000000) 522 #define DMA_CH1_TRANS_COUNT_MODE_MSB _u(31) 523 #define DMA_CH1_TRANS_COUNT_MODE_LSB _u(28) 524 #define DMA_CH1_TRANS_COUNT_MODE_ACCESS "RW" 525 #define DMA_CH1_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 526 #define DMA_CH1_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 527 #define DMA_CH1_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 528 // ----------------------------------------------------------------------------- 529 // Field : DMA_CH1_TRANS_COUNT_COUNT 530 // Description : 28-bit transfer count (256 million transfers maximum). 531 // 532 // Program the number of bus transfers a channel will perform 533 // before halting. Note that, if transfers are larger than one 534 // byte in size, this is not equal to the number of bytes 535 // transferred (see CTRL_DATA_SIZE). 536 // 537 // When the channel is active, reading this register shows the 538 // number of transfers remaining, updating automatically each time 539 // a write transfer completes. 540 // 541 // Writing this register sets the RELOAD value for the transfer 542 // counter. Each time this channel is triggered, the RELOAD value 543 // is copied into the live transfer counter. The channel can be 544 // started multiple times, and will perform the same number of 545 // transfers each time, as programmed by most recent write. 546 // 547 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 548 // is used as a trigger, the written value is used immediately as 549 // the length of the new transfer sequence, as well as being 550 // written to RELOAD. 551 #define DMA_CH1_TRANS_COUNT_COUNT_RESET _u(0x0000000) 552 #define DMA_CH1_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 553 #define DMA_CH1_TRANS_COUNT_COUNT_MSB _u(27) 554 #define DMA_CH1_TRANS_COUNT_COUNT_LSB _u(0) 555 #define DMA_CH1_TRANS_COUNT_COUNT_ACCESS "RW" 556 // ============================================================================= 557 // Register : DMA_CH1_CTRL_TRIG 558 // Description : DMA Channel 1 Control and Status 559 #define DMA_CH1_CTRL_TRIG_OFFSET _u(0x0000004c) 560 #define DMA_CH1_CTRL_TRIG_BITS _u(0xe7ffffff) 561 #define DMA_CH1_CTRL_TRIG_RESET _u(0x00000000) 562 // ----------------------------------------------------------------------------- 563 // Field : DMA_CH1_CTRL_TRIG_AHB_ERROR 564 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 565 // halts when it encounters any bus error, and always raises its 566 // channel IRQ flag. 567 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 568 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 569 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_MSB _u(31) 570 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_LSB _u(31) 571 #define DMA_CH1_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 572 // ----------------------------------------------------------------------------- 573 // Field : DMA_CH1_CTRL_TRIG_READ_ERROR 574 // Description : If 1, the channel received a read bus error. Write one to 575 // clear. 576 // READ_ADDR shows the approximate address where the bus error was 577 // encountered (will not be earlier, or more than 3 transfers 578 // later) 579 #define DMA_CH1_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 580 #define DMA_CH1_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 581 #define DMA_CH1_CTRL_TRIG_READ_ERROR_MSB _u(30) 582 #define DMA_CH1_CTRL_TRIG_READ_ERROR_LSB _u(30) 583 #define DMA_CH1_CTRL_TRIG_READ_ERROR_ACCESS "WC" 584 // ----------------------------------------------------------------------------- 585 // Field : DMA_CH1_CTRL_TRIG_WRITE_ERROR 586 // Description : If 1, the channel received a write bus error. Write one to 587 // clear. 588 // WRITE_ADDR shows the approximate address where the bus error 589 // was encountered (will not be earlier, or more than 5 transfers 590 // later) 591 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 592 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 593 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 594 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 595 #define DMA_CH1_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 596 // ----------------------------------------------------------------------------- 597 // Field : DMA_CH1_CTRL_TRIG_BUSY 598 // Description : This flag goes high when the channel starts a new transfer 599 // sequence, and low when the last transfer of that sequence 600 // completes. Clearing EN while BUSY is high pauses the channel, 601 // and BUSY will stay high while paused. 602 // 603 // To terminate a sequence early (and clear the BUSY flag), see 604 // CHAN_ABORT. 605 #define DMA_CH1_CTRL_TRIG_BUSY_RESET _u(0x0) 606 #define DMA_CH1_CTRL_TRIG_BUSY_BITS _u(0x04000000) 607 #define DMA_CH1_CTRL_TRIG_BUSY_MSB _u(26) 608 #define DMA_CH1_CTRL_TRIG_BUSY_LSB _u(26) 609 #define DMA_CH1_CTRL_TRIG_BUSY_ACCESS "RO" 610 // ----------------------------------------------------------------------------- 611 // Field : DMA_CH1_CTRL_TRIG_SNIFF_EN 612 // Description : If 1, this channel's data transfers are visible to the sniff 613 // hardware, and each transfer will advance the state of the 614 // checksum. This only applies if the sniff hardware is enabled, 615 // and has this channel selected. 616 // 617 // This allows checksum to be enabled or disabled on a per- 618 // control- block basis. 619 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 620 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 621 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_MSB _u(25) 622 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_LSB _u(25) 623 #define DMA_CH1_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 624 // ----------------------------------------------------------------------------- 625 // Field : DMA_CH1_CTRL_TRIG_BSWAP 626 // Description : Apply byte-swap transformation to DMA data. 627 // For byte data, this has no effect. For halfword data, the two 628 // bytes of each halfword are swapped. For word data, the four 629 // bytes of each word are swapped to reverse order. 630 #define DMA_CH1_CTRL_TRIG_BSWAP_RESET _u(0x0) 631 #define DMA_CH1_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 632 #define DMA_CH1_CTRL_TRIG_BSWAP_MSB _u(24) 633 #define DMA_CH1_CTRL_TRIG_BSWAP_LSB _u(24) 634 #define DMA_CH1_CTRL_TRIG_BSWAP_ACCESS "RW" 635 // ----------------------------------------------------------------------------- 636 // Field : DMA_CH1_CTRL_TRIG_IRQ_QUIET 637 // Description : In QUIET mode, the channel does not generate IRQs at the end of 638 // every transfer block. Instead, an IRQ is raised when NULL is 639 // written to a trigger register, indicating the end of a control 640 // block chain. 641 // 642 // This reduces the number of interrupts to be serviced by the CPU 643 // when transferring a DMA chain of many small control blocks. 644 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 645 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 646 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 647 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 648 #define DMA_CH1_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 649 // ----------------------------------------------------------------------------- 650 // Field : DMA_CH1_CTRL_TRIG_TREQ_SEL 651 // Description : Select a Transfer Request signal. 652 // The channel uses the transfer request signal to pace its data 653 // transfer rate. Sources for TREQ signals are internal (TIMERS) 654 // or external (DREQ, a Data Request from the system). 655 // 0x0 to 0x3a -> select DREQ n as TREQ 656 // 0x3b -> Select Timer 0 as TREQ 657 // 0x3c -> Select Timer 1 as TREQ 658 // 0x3d -> Select Timer 2 as TREQ (Optional) 659 // 0x3e -> Select Timer 3 as TREQ (Optional) 660 // 0x3f -> Permanent request, for unpaced transfers. 661 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 662 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 663 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_MSB _u(22) 664 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_LSB _u(17) 665 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 666 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 667 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 668 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 669 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 670 #define DMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 671 // ----------------------------------------------------------------------------- 672 // Field : DMA_CH1_CTRL_TRIG_CHAIN_TO 673 // Description : When this channel completes, it will trigger the channel 674 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 675 // channel)_. 676 // 677 // Note this field resets to 0, so channels 1 and above will chain 678 // to channel 0 by default. Set this field to avoid this 679 // behaviour. 680 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 681 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 682 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_MSB _u(16) 683 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_LSB _u(13) 684 #define DMA_CH1_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 685 // ----------------------------------------------------------------------------- 686 // Field : DMA_CH1_CTRL_TRIG_RING_SEL 687 // Description : Select whether RING_SIZE applies to read or write addresses. 688 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 689 // boundary. If 1, write addresses are wrapped. 690 #define DMA_CH1_CTRL_TRIG_RING_SEL_RESET _u(0x0) 691 #define DMA_CH1_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 692 #define DMA_CH1_CTRL_TRIG_RING_SEL_MSB _u(12) 693 #define DMA_CH1_CTRL_TRIG_RING_SEL_LSB _u(12) 694 #define DMA_CH1_CTRL_TRIG_RING_SEL_ACCESS "RW" 695 // ----------------------------------------------------------------------------- 696 // Field : DMA_CH1_CTRL_TRIG_RING_SIZE 697 // Description : Size of address wrap region. If 0, don't wrap. For values n > 698 // 0, only the lower n bits of the address will change. This wraps 699 // the address on a (1 << n) byte boundary, facilitating access to 700 // naturally-aligned ring buffers. 701 // 702 // Ring sizes between 2 and 32768 bytes are possible. This can 703 // apply to either read or write addresses, based on value of 704 // RING_SEL. 705 // 0x0 -> RING_NONE 706 #define DMA_CH1_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 707 #define DMA_CH1_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 708 #define DMA_CH1_CTRL_TRIG_RING_SIZE_MSB _u(11) 709 #define DMA_CH1_CTRL_TRIG_RING_SIZE_LSB _u(8) 710 #define DMA_CH1_CTRL_TRIG_RING_SIZE_ACCESS "RW" 711 #define DMA_CH1_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 712 // ----------------------------------------------------------------------------- 713 // Field : DMA_CH1_CTRL_TRIG_INCR_WRITE_REV 714 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 715 // rather than incremented with each transfer. 716 // 717 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 718 // causes the write address to be incremented by twice the 719 // transfer size, i.e. skipping over alternate addresses. 720 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 721 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 722 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 723 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 724 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 725 // ----------------------------------------------------------------------------- 726 // Field : DMA_CH1_CTRL_TRIG_INCR_WRITE 727 // Description : If 1, the write address increments with each transfer. If 0, 728 // each write is directed to the same, initial address. 729 // 730 // Generally this should be disabled for memory-to-peripheral 731 // transfers. 732 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 733 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 734 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_MSB _u(6) 735 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_LSB _u(6) 736 #define DMA_CH1_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 737 // ----------------------------------------------------------------------------- 738 // Field : DMA_CH1_CTRL_TRIG_INCR_READ_REV 739 // Description : If 1, and INCR_READ is 1, the read address is decremented 740 // rather than incremented with each transfer. 741 // 742 // If 1, and INCR_READ is 0, this otherwise-unused combination 743 // causes the read address to be incremented by twice the transfer 744 // size, i.e. skipping over alternate addresses. 745 #define DMA_CH1_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 746 #define DMA_CH1_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 747 #define DMA_CH1_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 748 #define DMA_CH1_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 749 #define DMA_CH1_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 750 // ----------------------------------------------------------------------------- 751 // Field : DMA_CH1_CTRL_TRIG_INCR_READ 752 // Description : If 1, the read address increments with each transfer. If 0, 753 // each read is directed to the same, initial address. 754 // 755 // Generally this should be disabled for peripheral-to-memory 756 // transfers. 757 #define DMA_CH1_CTRL_TRIG_INCR_READ_RESET _u(0x0) 758 #define DMA_CH1_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 759 #define DMA_CH1_CTRL_TRIG_INCR_READ_MSB _u(4) 760 #define DMA_CH1_CTRL_TRIG_INCR_READ_LSB _u(4) 761 #define DMA_CH1_CTRL_TRIG_INCR_READ_ACCESS "RW" 762 // ----------------------------------------------------------------------------- 763 // Field : DMA_CH1_CTRL_TRIG_DATA_SIZE 764 // Description : Set the size of each bus transfer (byte/halfword/word). 765 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 766 // with each transfer. 767 // 0x0 -> SIZE_BYTE 768 // 0x1 -> SIZE_HALFWORD 769 // 0x2 -> SIZE_WORD 770 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 771 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 772 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_MSB _u(3) 773 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_LSB _u(2) 774 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 775 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 776 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 777 #define DMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 778 // ----------------------------------------------------------------------------- 779 // Field : DMA_CH1_CTRL_TRIG_HIGH_PRIORITY 780 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 781 // scheduling: in each scheduling round, all high priority 782 // channels are considered first, and then only a single low 783 // priority channel, before returning to the high priority 784 // channels. 785 // 786 // This only affects the order in which the DMA schedules 787 // channels. The DMA's bus priority is not changed. If the DMA is 788 // not saturated then a low priority channel will see no loss of 789 // throughput. 790 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 791 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 792 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 793 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 794 #define DMA_CH1_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 795 // ----------------------------------------------------------------------------- 796 // Field : DMA_CH1_CTRL_TRIG_EN 797 // Description : DMA Channel Enable. 798 // When 1, the channel will respond to triggering events, which 799 // will cause it to become BUSY and start transferring data. When 800 // 0, the channel will ignore triggers, stop issuing transfers, 801 // and pause the current transfer sequence (i.e. BUSY will remain 802 // high if already high) 803 #define DMA_CH1_CTRL_TRIG_EN_RESET _u(0x0) 804 #define DMA_CH1_CTRL_TRIG_EN_BITS _u(0x00000001) 805 #define DMA_CH1_CTRL_TRIG_EN_MSB _u(0) 806 #define DMA_CH1_CTRL_TRIG_EN_LSB _u(0) 807 #define DMA_CH1_CTRL_TRIG_EN_ACCESS "RW" 808 // ============================================================================= 809 // Register : DMA_CH1_AL1_CTRL 810 // Description : Alias for channel 1 CTRL register 811 #define DMA_CH1_AL1_CTRL_OFFSET _u(0x00000050) 812 #define DMA_CH1_AL1_CTRL_BITS _u(0xffffffff) 813 #define DMA_CH1_AL1_CTRL_RESET "-" 814 #define DMA_CH1_AL1_CTRL_MSB _u(31) 815 #define DMA_CH1_AL1_CTRL_LSB _u(0) 816 #define DMA_CH1_AL1_CTRL_ACCESS "RW" 817 // ============================================================================= 818 // Register : DMA_CH1_AL1_READ_ADDR 819 // Description : Alias for channel 1 READ_ADDR register 820 #define DMA_CH1_AL1_READ_ADDR_OFFSET _u(0x00000054) 821 #define DMA_CH1_AL1_READ_ADDR_BITS _u(0xffffffff) 822 #define DMA_CH1_AL1_READ_ADDR_RESET "-" 823 #define DMA_CH1_AL1_READ_ADDR_MSB _u(31) 824 #define DMA_CH1_AL1_READ_ADDR_LSB _u(0) 825 #define DMA_CH1_AL1_READ_ADDR_ACCESS "RW" 826 // ============================================================================= 827 // Register : DMA_CH1_AL1_WRITE_ADDR 828 // Description : Alias for channel 1 WRITE_ADDR register 829 #define DMA_CH1_AL1_WRITE_ADDR_OFFSET _u(0x00000058) 830 #define DMA_CH1_AL1_WRITE_ADDR_BITS _u(0xffffffff) 831 #define DMA_CH1_AL1_WRITE_ADDR_RESET "-" 832 #define DMA_CH1_AL1_WRITE_ADDR_MSB _u(31) 833 #define DMA_CH1_AL1_WRITE_ADDR_LSB _u(0) 834 #define DMA_CH1_AL1_WRITE_ADDR_ACCESS "RW" 835 // ============================================================================= 836 // Register : DMA_CH1_AL1_TRANS_COUNT_TRIG 837 // Description : Alias for channel 1 TRANS_COUNT register 838 // This is a trigger register (0xc). Writing a nonzero value will 839 // reload the channel counter and start the channel. 840 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000005c) 841 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 842 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_RESET "-" 843 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_MSB _u(31) 844 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_LSB _u(0) 845 #define DMA_CH1_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 846 // ============================================================================= 847 // Register : DMA_CH1_AL2_CTRL 848 // Description : Alias for channel 1 CTRL register 849 #define DMA_CH1_AL2_CTRL_OFFSET _u(0x00000060) 850 #define DMA_CH1_AL2_CTRL_BITS _u(0xffffffff) 851 #define DMA_CH1_AL2_CTRL_RESET "-" 852 #define DMA_CH1_AL2_CTRL_MSB _u(31) 853 #define DMA_CH1_AL2_CTRL_LSB _u(0) 854 #define DMA_CH1_AL2_CTRL_ACCESS "RW" 855 // ============================================================================= 856 // Register : DMA_CH1_AL2_TRANS_COUNT 857 // Description : Alias for channel 1 TRANS_COUNT register 858 #define DMA_CH1_AL2_TRANS_COUNT_OFFSET _u(0x00000064) 859 #define DMA_CH1_AL2_TRANS_COUNT_BITS _u(0xffffffff) 860 #define DMA_CH1_AL2_TRANS_COUNT_RESET "-" 861 #define DMA_CH1_AL2_TRANS_COUNT_MSB _u(31) 862 #define DMA_CH1_AL2_TRANS_COUNT_LSB _u(0) 863 #define DMA_CH1_AL2_TRANS_COUNT_ACCESS "RW" 864 // ============================================================================= 865 // Register : DMA_CH1_AL2_READ_ADDR 866 // Description : Alias for channel 1 READ_ADDR register 867 #define DMA_CH1_AL2_READ_ADDR_OFFSET _u(0x00000068) 868 #define DMA_CH1_AL2_READ_ADDR_BITS _u(0xffffffff) 869 #define DMA_CH1_AL2_READ_ADDR_RESET "-" 870 #define DMA_CH1_AL2_READ_ADDR_MSB _u(31) 871 #define DMA_CH1_AL2_READ_ADDR_LSB _u(0) 872 #define DMA_CH1_AL2_READ_ADDR_ACCESS "RW" 873 // ============================================================================= 874 // Register : DMA_CH1_AL2_WRITE_ADDR_TRIG 875 // Description : Alias for channel 1 WRITE_ADDR register 876 // This is a trigger register (0xc). Writing a nonzero value will 877 // reload the channel counter and start the channel. 878 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000006c) 879 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 880 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_RESET "-" 881 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_MSB _u(31) 882 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_LSB _u(0) 883 #define DMA_CH1_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 884 // ============================================================================= 885 // Register : DMA_CH1_AL3_CTRL 886 // Description : Alias for channel 1 CTRL register 887 #define DMA_CH1_AL3_CTRL_OFFSET _u(0x00000070) 888 #define DMA_CH1_AL3_CTRL_BITS _u(0xffffffff) 889 #define DMA_CH1_AL3_CTRL_RESET "-" 890 #define DMA_CH1_AL3_CTRL_MSB _u(31) 891 #define DMA_CH1_AL3_CTRL_LSB _u(0) 892 #define DMA_CH1_AL3_CTRL_ACCESS "RW" 893 // ============================================================================= 894 // Register : DMA_CH1_AL3_WRITE_ADDR 895 // Description : Alias for channel 1 WRITE_ADDR register 896 #define DMA_CH1_AL3_WRITE_ADDR_OFFSET _u(0x00000074) 897 #define DMA_CH1_AL3_WRITE_ADDR_BITS _u(0xffffffff) 898 #define DMA_CH1_AL3_WRITE_ADDR_RESET "-" 899 #define DMA_CH1_AL3_WRITE_ADDR_MSB _u(31) 900 #define DMA_CH1_AL3_WRITE_ADDR_LSB _u(0) 901 #define DMA_CH1_AL3_WRITE_ADDR_ACCESS "RW" 902 // ============================================================================= 903 // Register : DMA_CH1_AL3_TRANS_COUNT 904 // Description : Alias for channel 1 TRANS_COUNT register 905 #define DMA_CH1_AL3_TRANS_COUNT_OFFSET _u(0x00000078) 906 #define DMA_CH1_AL3_TRANS_COUNT_BITS _u(0xffffffff) 907 #define DMA_CH1_AL3_TRANS_COUNT_RESET "-" 908 #define DMA_CH1_AL3_TRANS_COUNT_MSB _u(31) 909 #define DMA_CH1_AL3_TRANS_COUNT_LSB _u(0) 910 #define DMA_CH1_AL3_TRANS_COUNT_ACCESS "RW" 911 // ============================================================================= 912 // Register : DMA_CH1_AL3_READ_ADDR_TRIG 913 // Description : Alias for channel 1 READ_ADDR register 914 // This is a trigger register (0xc). Writing a nonzero value will 915 // reload the channel counter and start the channel. 916 #define DMA_CH1_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000007c) 917 #define DMA_CH1_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 918 #define DMA_CH1_AL3_READ_ADDR_TRIG_RESET "-" 919 #define DMA_CH1_AL3_READ_ADDR_TRIG_MSB _u(31) 920 #define DMA_CH1_AL3_READ_ADDR_TRIG_LSB _u(0) 921 #define DMA_CH1_AL3_READ_ADDR_TRIG_ACCESS "RW" 922 // ============================================================================= 923 // Register : DMA_CH2_READ_ADDR 924 // Description : DMA Channel 2 Read Address pointer 925 // This register updates automatically each time a read completes. 926 // The current value is the next address to be read by this 927 // channel. 928 #define DMA_CH2_READ_ADDR_OFFSET _u(0x00000080) 929 #define DMA_CH2_READ_ADDR_BITS _u(0xffffffff) 930 #define DMA_CH2_READ_ADDR_RESET _u(0x00000000) 931 #define DMA_CH2_READ_ADDR_MSB _u(31) 932 #define DMA_CH2_READ_ADDR_LSB _u(0) 933 #define DMA_CH2_READ_ADDR_ACCESS "RW" 934 // ============================================================================= 935 // Register : DMA_CH2_WRITE_ADDR 936 // Description : DMA Channel 2 Write Address pointer 937 // This register updates automatically each time a write 938 // completes. The current value is the next address to be written 939 // by this channel. 940 #define DMA_CH2_WRITE_ADDR_OFFSET _u(0x00000084) 941 #define DMA_CH2_WRITE_ADDR_BITS _u(0xffffffff) 942 #define DMA_CH2_WRITE_ADDR_RESET _u(0x00000000) 943 #define DMA_CH2_WRITE_ADDR_MSB _u(31) 944 #define DMA_CH2_WRITE_ADDR_LSB _u(0) 945 #define DMA_CH2_WRITE_ADDR_ACCESS "RW" 946 // ============================================================================= 947 // Register : DMA_CH2_TRANS_COUNT 948 // Description : DMA Channel 2 Transfer Count 949 #define DMA_CH2_TRANS_COUNT_OFFSET _u(0x00000088) 950 #define DMA_CH2_TRANS_COUNT_BITS _u(0xffffffff) 951 #define DMA_CH2_TRANS_COUNT_RESET _u(0x00000000) 952 // ----------------------------------------------------------------------------- 953 // Field : DMA_CH2_TRANS_COUNT_MODE 954 // Description : When MODE is 0x0, the transfer count decrements with each 955 // transfer until 0, and then the channel triggers the next 956 // channel indicated by CTRL_CHAIN_TO. 957 // 958 // When MODE is 0x1, the transfer count decrements with each 959 // transfer until 0, and then the channel re-triggers itself, in 960 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 961 // useful for e.g. an endless ring-buffer DMA with periodic 962 // interrupts. 963 // 964 // When MODE is 0xf, the transfer count does not decrement. The 965 // DMA channel performs an endless sequence of transfers, never 966 // triggering other channels or raising interrupts, until an ABORT 967 // is raised. 968 // 969 // All other values are reserved. 970 // 0x0 -> NORMAL 971 // 0x1 -> TRIGGER_SELF 972 // 0xf -> ENDLESS 973 #define DMA_CH2_TRANS_COUNT_MODE_RESET _u(0x0) 974 #define DMA_CH2_TRANS_COUNT_MODE_BITS _u(0xf0000000) 975 #define DMA_CH2_TRANS_COUNT_MODE_MSB _u(31) 976 #define DMA_CH2_TRANS_COUNT_MODE_LSB _u(28) 977 #define DMA_CH2_TRANS_COUNT_MODE_ACCESS "RW" 978 #define DMA_CH2_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 979 #define DMA_CH2_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 980 #define DMA_CH2_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 981 // ----------------------------------------------------------------------------- 982 // Field : DMA_CH2_TRANS_COUNT_COUNT 983 // Description : 28-bit transfer count (256 million transfers maximum). 984 // 985 // Program the number of bus transfers a channel will perform 986 // before halting. Note that, if transfers are larger than one 987 // byte in size, this is not equal to the number of bytes 988 // transferred (see CTRL_DATA_SIZE). 989 // 990 // When the channel is active, reading this register shows the 991 // number of transfers remaining, updating automatically each time 992 // a write transfer completes. 993 // 994 // Writing this register sets the RELOAD value for the transfer 995 // counter. Each time this channel is triggered, the RELOAD value 996 // is copied into the live transfer counter. The channel can be 997 // started multiple times, and will perform the same number of 998 // transfers each time, as programmed by most recent write. 999 // 1000 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1001 // is used as a trigger, the written value is used immediately as 1002 // the length of the new transfer sequence, as well as being 1003 // written to RELOAD. 1004 #define DMA_CH2_TRANS_COUNT_COUNT_RESET _u(0x0000000) 1005 #define DMA_CH2_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 1006 #define DMA_CH2_TRANS_COUNT_COUNT_MSB _u(27) 1007 #define DMA_CH2_TRANS_COUNT_COUNT_LSB _u(0) 1008 #define DMA_CH2_TRANS_COUNT_COUNT_ACCESS "RW" 1009 // ============================================================================= 1010 // Register : DMA_CH2_CTRL_TRIG 1011 // Description : DMA Channel 2 Control and Status 1012 #define DMA_CH2_CTRL_TRIG_OFFSET _u(0x0000008c) 1013 #define DMA_CH2_CTRL_TRIG_BITS _u(0xe7ffffff) 1014 #define DMA_CH2_CTRL_TRIG_RESET _u(0x00000000) 1015 // ----------------------------------------------------------------------------- 1016 // Field : DMA_CH2_CTRL_TRIG_AHB_ERROR 1017 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 1018 // halts when it encounters any bus error, and always raises its 1019 // channel IRQ flag. 1020 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 1021 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 1022 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_MSB _u(31) 1023 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_LSB _u(31) 1024 #define DMA_CH2_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 1025 // ----------------------------------------------------------------------------- 1026 // Field : DMA_CH2_CTRL_TRIG_READ_ERROR 1027 // Description : If 1, the channel received a read bus error. Write one to 1028 // clear. 1029 // READ_ADDR shows the approximate address where the bus error was 1030 // encountered (will not be earlier, or more than 3 transfers 1031 // later) 1032 #define DMA_CH2_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 1033 #define DMA_CH2_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 1034 #define DMA_CH2_CTRL_TRIG_READ_ERROR_MSB _u(30) 1035 #define DMA_CH2_CTRL_TRIG_READ_ERROR_LSB _u(30) 1036 #define DMA_CH2_CTRL_TRIG_READ_ERROR_ACCESS "WC" 1037 // ----------------------------------------------------------------------------- 1038 // Field : DMA_CH2_CTRL_TRIG_WRITE_ERROR 1039 // Description : If 1, the channel received a write bus error. Write one to 1040 // clear. 1041 // WRITE_ADDR shows the approximate address where the bus error 1042 // was encountered (will not be earlier, or more than 5 transfers 1043 // later) 1044 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 1045 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 1046 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 1047 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 1048 #define DMA_CH2_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 1049 // ----------------------------------------------------------------------------- 1050 // Field : DMA_CH2_CTRL_TRIG_BUSY 1051 // Description : This flag goes high when the channel starts a new transfer 1052 // sequence, and low when the last transfer of that sequence 1053 // completes. Clearing EN while BUSY is high pauses the channel, 1054 // and BUSY will stay high while paused. 1055 // 1056 // To terminate a sequence early (and clear the BUSY flag), see 1057 // CHAN_ABORT. 1058 #define DMA_CH2_CTRL_TRIG_BUSY_RESET _u(0x0) 1059 #define DMA_CH2_CTRL_TRIG_BUSY_BITS _u(0x04000000) 1060 #define DMA_CH2_CTRL_TRIG_BUSY_MSB _u(26) 1061 #define DMA_CH2_CTRL_TRIG_BUSY_LSB _u(26) 1062 #define DMA_CH2_CTRL_TRIG_BUSY_ACCESS "RO" 1063 // ----------------------------------------------------------------------------- 1064 // Field : DMA_CH2_CTRL_TRIG_SNIFF_EN 1065 // Description : If 1, this channel's data transfers are visible to the sniff 1066 // hardware, and each transfer will advance the state of the 1067 // checksum. This only applies if the sniff hardware is enabled, 1068 // and has this channel selected. 1069 // 1070 // This allows checksum to be enabled or disabled on a per- 1071 // control- block basis. 1072 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 1073 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 1074 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_MSB _u(25) 1075 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_LSB _u(25) 1076 #define DMA_CH2_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 1077 // ----------------------------------------------------------------------------- 1078 // Field : DMA_CH2_CTRL_TRIG_BSWAP 1079 // Description : Apply byte-swap transformation to DMA data. 1080 // For byte data, this has no effect. For halfword data, the two 1081 // bytes of each halfword are swapped. For word data, the four 1082 // bytes of each word are swapped to reverse order. 1083 #define DMA_CH2_CTRL_TRIG_BSWAP_RESET _u(0x0) 1084 #define DMA_CH2_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 1085 #define DMA_CH2_CTRL_TRIG_BSWAP_MSB _u(24) 1086 #define DMA_CH2_CTRL_TRIG_BSWAP_LSB _u(24) 1087 #define DMA_CH2_CTRL_TRIG_BSWAP_ACCESS "RW" 1088 // ----------------------------------------------------------------------------- 1089 // Field : DMA_CH2_CTRL_TRIG_IRQ_QUIET 1090 // Description : In QUIET mode, the channel does not generate IRQs at the end of 1091 // every transfer block. Instead, an IRQ is raised when NULL is 1092 // written to a trigger register, indicating the end of a control 1093 // block chain. 1094 // 1095 // This reduces the number of interrupts to be serviced by the CPU 1096 // when transferring a DMA chain of many small control blocks. 1097 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 1098 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 1099 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 1100 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 1101 #define DMA_CH2_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 1102 // ----------------------------------------------------------------------------- 1103 // Field : DMA_CH2_CTRL_TRIG_TREQ_SEL 1104 // Description : Select a Transfer Request signal. 1105 // The channel uses the transfer request signal to pace its data 1106 // transfer rate. Sources for TREQ signals are internal (TIMERS) 1107 // or external (DREQ, a Data Request from the system). 1108 // 0x0 to 0x3a -> select DREQ n as TREQ 1109 // 0x3b -> Select Timer 0 as TREQ 1110 // 0x3c -> Select Timer 1 as TREQ 1111 // 0x3d -> Select Timer 2 as TREQ (Optional) 1112 // 0x3e -> Select Timer 3 as TREQ (Optional) 1113 // 0x3f -> Permanent request, for unpaced transfers. 1114 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 1115 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 1116 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_MSB _u(22) 1117 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_LSB _u(17) 1118 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 1119 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 1120 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 1121 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 1122 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 1123 #define DMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 1124 // ----------------------------------------------------------------------------- 1125 // Field : DMA_CH2_CTRL_TRIG_CHAIN_TO 1126 // Description : When this channel completes, it will trigger the channel 1127 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 1128 // channel)_. 1129 // 1130 // Note this field resets to 0, so channels 1 and above will chain 1131 // to channel 0 by default. Set this field to avoid this 1132 // behaviour. 1133 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 1134 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 1135 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_MSB _u(16) 1136 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_LSB _u(13) 1137 #define DMA_CH2_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 1138 // ----------------------------------------------------------------------------- 1139 // Field : DMA_CH2_CTRL_TRIG_RING_SEL 1140 // Description : Select whether RING_SIZE applies to read or write addresses. 1141 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 1142 // boundary. If 1, write addresses are wrapped. 1143 #define DMA_CH2_CTRL_TRIG_RING_SEL_RESET _u(0x0) 1144 #define DMA_CH2_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 1145 #define DMA_CH2_CTRL_TRIG_RING_SEL_MSB _u(12) 1146 #define DMA_CH2_CTRL_TRIG_RING_SEL_LSB _u(12) 1147 #define DMA_CH2_CTRL_TRIG_RING_SEL_ACCESS "RW" 1148 // ----------------------------------------------------------------------------- 1149 // Field : DMA_CH2_CTRL_TRIG_RING_SIZE 1150 // Description : Size of address wrap region. If 0, don't wrap. For values n > 1151 // 0, only the lower n bits of the address will change. This wraps 1152 // the address on a (1 << n) byte boundary, facilitating access to 1153 // naturally-aligned ring buffers. 1154 // 1155 // Ring sizes between 2 and 32768 bytes are possible. This can 1156 // apply to either read or write addresses, based on value of 1157 // RING_SEL. 1158 // 0x0 -> RING_NONE 1159 #define DMA_CH2_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 1160 #define DMA_CH2_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 1161 #define DMA_CH2_CTRL_TRIG_RING_SIZE_MSB _u(11) 1162 #define DMA_CH2_CTRL_TRIG_RING_SIZE_LSB _u(8) 1163 #define DMA_CH2_CTRL_TRIG_RING_SIZE_ACCESS "RW" 1164 #define DMA_CH2_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 1165 // ----------------------------------------------------------------------------- 1166 // Field : DMA_CH2_CTRL_TRIG_INCR_WRITE_REV 1167 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 1168 // rather than incremented with each transfer. 1169 // 1170 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 1171 // causes the write address to be incremented by twice the 1172 // transfer size, i.e. skipping over alternate addresses. 1173 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 1174 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 1175 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 1176 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 1177 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 1178 // ----------------------------------------------------------------------------- 1179 // Field : DMA_CH2_CTRL_TRIG_INCR_WRITE 1180 // Description : If 1, the write address increments with each transfer. If 0, 1181 // each write is directed to the same, initial address. 1182 // 1183 // Generally this should be disabled for memory-to-peripheral 1184 // transfers. 1185 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 1186 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 1187 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_MSB _u(6) 1188 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_LSB _u(6) 1189 #define DMA_CH2_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 1190 // ----------------------------------------------------------------------------- 1191 // Field : DMA_CH2_CTRL_TRIG_INCR_READ_REV 1192 // Description : If 1, and INCR_READ is 1, the read address is decremented 1193 // rather than incremented with each transfer. 1194 // 1195 // If 1, and INCR_READ is 0, this otherwise-unused combination 1196 // causes the read address to be incremented by twice the transfer 1197 // size, i.e. skipping over alternate addresses. 1198 #define DMA_CH2_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 1199 #define DMA_CH2_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 1200 #define DMA_CH2_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 1201 #define DMA_CH2_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 1202 #define DMA_CH2_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 1203 // ----------------------------------------------------------------------------- 1204 // Field : DMA_CH2_CTRL_TRIG_INCR_READ 1205 // Description : If 1, the read address increments with each transfer. If 0, 1206 // each read is directed to the same, initial address. 1207 // 1208 // Generally this should be disabled for peripheral-to-memory 1209 // transfers. 1210 #define DMA_CH2_CTRL_TRIG_INCR_READ_RESET _u(0x0) 1211 #define DMA_CH2_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 1212 #define DMA_CH2_CTRL_TRIG_INCR_READ_MSB _u(4) 1213 #define DMA_CH2_CTRL_TRIG_INCR_READ_LSB _u(4) 1214 #define DMA_CH2_CTRL_TRIG_INCR_READ_ACCESS "RW" 1215 // ----------------------------------------------------------------------------- 1216 // Field : DMA_CH2_CTRL_TRIG_DATA_SIZE 1217 // Description : Set the size of each bus transfer (byte/halfword/word). 1218 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 1219 // with each transfer. 1220 // 0x0 -> SIZE_BYTE 1221 // 0x1 -> SIZE_HALFWORD 1222 // 0x2 -> SIZE_WORD 1223 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 1224 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 1225 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_MSB _u(3) 1226 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_LSB _u(2) 1227 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 1228 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 1229 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 1230 #define DMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 1231 // ----------------------------------------------------------------------------- 1232 // Field : DMA_CH2_CTRL_TRIG_HIGH_PRIORITY 1233 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 1234 // scheduling: in each scheduling round, all high priority 1235 // channels are considered first, and then only a single low 1236 // priority channel, before returning to the high priority 1237 // channels. 1238 // 1239 // This only affects the order in which the DMA schedules 1240 // channels. The DMA's bus priority is not changed. If the DMA is 1241 // not saturated then a low priority channel will see no loss of 1242 // throughput. 1243 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 1244 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 1245 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 1246 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 1247 #define DMA_CH2_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 1248 // ----------------------------------------------------------------------------- 1249 // Field : DMA_CH2_CTRL_TRIG_EN 1250 // Description : DMA Channel Enable. 1251 // When 1, the channel will respond to triggering events, which 1252 // will cause it to become BUSY and start transferring data. When 1253 // 0, the channel will ignore triggers, stop issuing transfers, 1254 // and pause the current transfer sequence (i.e. BUSY will remain 1255 // high if already high) 1256 #define DMA_CH2_CTRL_TRIG_EN_RESET _u(0x0) 1257 #define DMA_CH2_CTRL_TRIG_EN_BITS _u(0x00000001) 1258 #define DMA_CH2_CTRL_TRIG_EN_MSB _u(0) 1259 #define DMA_CH2_CTRL_TRIG_EN_LSB _u(0) 1260 #define DMA_CH2_CTRL_TRIG_EN_ACCESS "RW" 1261 // ============================================================================= 1262 // Register : DMA_CH2_AL1_CTRL 1263 // Description : Alias for channel 2 CTRL register 1264 #define DMA_CH2_AL1_CTRL_OFFSET _u(0x00000090) 1265 #define DMA_CH2_AL1_CTRL_BITS _u(0xffffffff) 1266 #define DMA_CH2_AL1_CTRL_RESET "-" 1267 #define DMA_CH2_AL1_CTRL_MSB _u(31) 1268 #define DMA_CH2_AL1_CTRL_LSB _u(0) 1269 #define DMA_CH2_AL1_CTRL_ACCESS "RW" 1270 // ============================================================================= 1271 // Register : DMA_CH2_AL1_READ_ADDR 1272 // Description : Alias for channel 2 READ_ADDR register 1273 #define DMA_CH2_AL1_READ_ADDR_OFFSET _u(0x00000094) 1274 #define DMA_CH2_AL1_READ_ADDR_BITS _u(0xffffffff) 1275 #define DMA_CH2_AL1_READ_ADDR_RESET "-" 1276 #define DMA_CH2_AL1_READ_ADDR_MSB _u(31) 1277 #define DMA_CH2_AL1_READ_ADDR_LSB _u(0) 1278 #define DMA_CH2_AL1_READ_ADDR_ACCESS "RW" 1279 // ============================================================================= 1280 // Register : DMA_CH2_AL1_WRITE_ADDR 1281 // Description : Alias for channel 2 WRITE_ADDR register 1282 #define DMA_CH2_AL1_WRITE_ADDR_OFFSET _u(0x00000098) 1283 #define DMA_CH2_AL1_WRITE_ADDR_BITS _u(0xffffffff) 1284 #define DMA_CH2_AL1_WRITE_ADDR_RESET "-" 1285 #define DMA_CH2_AL1_WRITE_ADDR_MSB _u(31) 1286 #define DMA_CH2_AL1_WRITE_ADDR_LSB _u(0) 1287 #define DMA_CH2_AL1_WRITE_ADDR_ACCESS "RW" 1288 // ============================================================================= 1289 // Register : DMA_CH2_AL1_TRANS_COUNT_TRIG 1290 // Description : Alias for channel 2 TRANS_COUNT register 1291 // This is a trigger register (0xc). Writing a nonzero value will 1292 // reload the channel counter and start the channel. 1293 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000009c) 1294 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 1295 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_RESET "-" 1296 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_MSB _u(31) 1297 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_LSB _u(0) 1298 #define DMA_CH2_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 1299 // ============================================================================= 1300 // Register : DMA_CH2_AL2_CTRL 1301 // Description : Alias for channel 2 CTRL register 1302 #define DMA_CH2_AL2_CTRL_OFFSET _u(0x000000a0) 1303 #define DMA_CH2_AL2_CTRL_BITS _u(0xffffffff) 1304 #define DMA_CH2_AL2_CTRL_RESET "-" 1305 #define DMA_CH2_AL2_CTRL_MSB _u(31) 1306 #define DMA_CH2_AL2_CTRL_LSB _u(0) 1307 #define DMA_CH2_AL2_CTRL_ACCESS "RW" 1308 // ============================================================================= 1309 // Register : DMA_CH2_AL2_TRANS_COUNT 1310 // Description : Alias for channel 2 TRANS_COUNT register 1311 #define DMA_CH2_AL2_TRANS_COUNT_OFFSET _u(0x000000a4) 1312 #define DMA_CH2_AL2_TRANS_COUNT_BITS _u(0xffffffff) 1313 #define DMA_CH2_AL2_TRANS_COUNT_RESET "-" 1314 #define DMA_CH2_AL2_TRANS_COUNT_MSB _u(31) 1315 #define DMA_CH2_AL2_TRANS_COUNT_LSB _u(0) 1316 #define DMA_CH2_AL2_TRANS_COUNT_ACCESS "RW" 1317 // ============================================================================= 1318 // Register : DMA_CH2_AL2_READ_ADDR 1319 // Description : Alias for channel 2 READ_ADDR register 1320 #define DMA_CH2_AL2_READ_ADDR_OFFSET _u(0x000000a8) 1321 #define DMA_CH2_AL2_READ_ADDR_BITS _u(0xffffffff) 1322 #define DMA_CH2_AL2_READ_ADDR_RESET "-" 1323 #define DMA_CH2_AL2_READ_ADDR_MSB _u(31) 1324 #define DMA_CH2_AL2_READ_ADDR_LSB _u(0) 1325 #define DMA_CH2_AL2_READ_ADDR_ACCESS "RW" 1326 // ============================================================================= 1327 // Register : DMA_CH2_AL2_WRITE_ADDR_TRIG 1328 // Description : Alias for channel 2 WRITE_ADDR register 1329 // This is a trigger register (0xc). Writing a nonzero value will 1330 // reload the channel counter and start the channel. 1331 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ac) 1332 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 1333 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_RESET "-" 1334 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_MSB _u(31) 1335 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_LSB _u(0) 1336 #define DMA_CH2_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 1337 // ============================================================================= 1338 // Register : DMA_CH2_AL3_CTRL 1339 // Description : Alias for channel 2 CTRL register 1340 #define DMA_CH2_AL3_CTRL_OFFSET _u(0x000000b0) 1341 #define DMA_CH2_AL3_CTRL_BITS _u(0xffffffff) 1342 #define DMA_CH2_AL3_CTRL_RESET "-" 1343 #define DMA_CH2_AL3_CTRL_MSB _u(31) 1344 #define DMA_CH2_AL3_CTRL_LSB _u(0) 1345 #define DMA_CH2_AL3_CTRL_ACCESS "RW" 1346 // ============================================================================= 1347 // Register : DMA_CH2_AL3_WRITE_ADDR 1348 // Description : Alias for channel 2 WRITE_ADDR register 1349 #define DMA_CH2_AL3_WRITE_ADDR_OFFSET _u(0x000000b4) 1350 #define DMA_CH2_AL3_WRITE_ADDR_BITS _u(0xffffffff) 1351 #define DMA_CH2_AL3_WRITE_ADDR_RESET "-" 1352 #define DMA_CH2_AL3_WRITE_ADDR_MSB _u(31) 1353 #define DMA_CH2_AL3_WRITE_ADDR_LSB _u(0) 1354 #define DMA_CH2_AL3_WRITE_ADDR_ACCESS "RW" 1355 // ============================================================================= 1356 // Register : DMA_CH2_AL3_TRANS_COUNT 1357 // Description : Alias for channel 2 TRANS_COUNT register 1358 #define DMA_CH2_AL3_TRANS_COUNT_OFFSET _u(0x000000b8) 1359 #define DMA_CH2_AL3_TRANS_COUNT_BITS _u(0xffffffff) 1360 #define DMA_CH2_AL3_TRANS_COUNT_RESET "-" 1361 #define DMA_CH2_AL3_TRANS_COUNT_MSB _u(31) 1362 #define DMA_CH2_AL3_TRANS_COUNT_LSB _u(0) 1363 #define DMA_CH2_AL3_TRANS_COUNT_ACCESS "RW" 1364 // ============================================================================= 1365 // Register : DMA_CH2_AL3_READ_ADDR_TRIG 1366 // Description : Alias for channel 2 READ_ADDR register 1367 // This is a trigger register (0xc). Writing a nonzero value will 1368 // reload the channel counter and start the channel. 1369 #define DMA_CH2_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000bc) 1370 #define DMA_CH2_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 1371 #define DMA_CH2_AL3_READ_ADDR_TRIG_RESET "-" 1372 #define DMA_CH2_AL3_READ_ADDR_TRIG_MSB _u(31) 1373 #define DMA_CH2_AL3_READ_ADDR_TRIG_LSB _u(0) 1374 #define DMA_CH2_AL3_READ_ADDR_TRIG_ACCESS "RW" 1375 // ============================================================================= 1376 // Register : DMA_CH3_READ_ADDR 1377 // Description : DMA Channel 3 Read Address pointer 1378 // This register updates automatically each time a read completes. 1379 // The current value is the next address to be read by this 1380 // channel. 1381 #define DMA_CH3_READ_ADDR_OFFSET _u(0x000000c0) 1382 #define DMA_CH3_READ_ADDR_BITS _u(0xffffffff) 1383 #define DMA_CH3_READ_ADDR_RESET _u(0x00000000) 1384 #define DMA_CH3_READ_ADDR_MSB _u(31) 1385 #define DMA_CH3_READ_ADDR_LSB _u(0) 1386 #define DMA_CH3_READ_ADDR_ACCESS "RW" 1387 // ============================================================================= 1388 // Register : DMA_CH3_WRITE_ADDR 1389 // Description : DMA Channel 3 Write Address pointer 1390 // This register updates automatically each time a write 1391 // completes. The current value is the next address to be written 1392 // by this channel. 1393 #define DMA_CH3_WRITE_ADDR_OFFSET _u(0x000000c4) 1394 #define DMA_CH3_WRITE_ADDR_BITS _u(0xffffffff) 1395 #define DMA_CH3_WRITE_ADDR_RESET _u(0x00000000) 1396 #define DMA_CH3_WRITE_ADDR_MSB _u(31) 1397 #define DMA_CH3_WRITE_ADDR_LSB _u(0) 1398 #define DMA_CH3_WRITE_ADDR_ACCESS "RW" 1399 // ============================================================================= 1400 // Register : DMA_CH3_TRANS_COUNT 1401 // Description : DMA Channel 3 Transfer Count 1402 #define DMA_CH3_TRANS_COUNT_OFFSET _u(0x000000c8) 1403 #define DMA_CH3_TRANS_COUNT_BITS _u(0xffffffff) 1404 #define DMA_CH3_TRANS_COUNT_RESET _u(0x00000000) 1405 // ----------------------------------------------------------------------------- 1406 // Field : DMA_CH3_TRANS_COUNT_MODE 1407 // Description : When MODE is 0x0, the transfer count decrements with each 1408 // transfer until 0, and then the channel triggers the next 1409 // channel indicated by CTRL_CHAIN_TO. 1410 // 1411 // When MODE is 0x1, the transfer count decrements with each 1412 // transfer until 0, and then the channel re-triggers itself, in 1413 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 1414 // useful for e.g. an endless ring-buffer DMA with periodic 1415 // interrupts. 1416 // 1417 // When MODE is 0xf, the transfer count does not decrement. The 1418 // DMA channel performs an endless sequence of transfers, never 1419 // triggering other channels or raising interrupts, until an ABORT 1420 // is raised. 1421 // 1422 // All other values are reserved. 1423 // 0x0 -> NORMAL 1424 // 0x1 -> TRIGGER_SELF 1425 // 0xf -> ENDLESS 1426 #define DMA_CH3_TRANS_COUNT_MODE_RESET _u(0x0) 1427 #define DMA_CH3_TRANS_COUNT_MODE_BITS _u(0xf0000000) 1428 #define DMA_CH3_TRANS_COUNT_MODE_MSB _u(31) 1429 #define DMA_CH3_TRANS_COUNT_MODE_LSB _u(28) 1430 #define DMA_CH3_TRANS_COUNT_MODE_ACCESS "RW" 1431 #define DMA_CH3_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 1432 #define DMA_CH3_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 1433 #define DMA_CH3_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 1434 // ----------------------------------------------------------------------------- 1435 // Field : DMA_CH3_TRANS_COUNT_COUNT 1436 // Description : 28-bit transfer count (256 million transfers maximum). 1437 // 1438 // Program the number of bus transfers a channel will perform 1439 // before halting. Note that, if transfers are larger than one 1440 // byte in size, this is not equal to the number of bytes 1441 // transferred (see CTRL_DATA_SIZE). 1442 // 1443 // When the channel is active, reading this register shows the 1444 // number of transfers remaining, updating automatically each time 1445 // a write transfer completes. 1446 // 1447 // Writing this register sets the RELOAD value for the transfer 1448 // counter. Each time this channel is triggered, the RELOAD value 1449 // is copied into the live transfer counter. The channel can be 1450 // started multiple times, and will perform the same number of 1451 // transfers each time, as programmed by most recent write. 1452 // 1453 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1454 // is used as a trigger, the written value is used immediately as 1455 // the length of the new transfer sequence, as well as being 1456 // written to RELOAD. 1457 #define DMA_CH3_TRANS_COUNT_COUNT_RESET _u(0x0000000) 1458 #define DMA_CH3_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 1459 #define DMA_CH3_TRANS_COUNT_COUNT_MSB _u(27) 1460 #define DMA_CH3_TRANS_COUNT_COUNT_LSB _u(0) 1461 #define DMA_CH3_TRANS_COUNT_COUNT_ACCESS "RW" 1462 // ============================================================================= 1463 // Register : DMA_CH3_CTRL_TRIG 1464 // Description : DMA Channel 3 Control and Status 1465 #define DMA_CH3_CTRL_TRIG_OFFSET _u(0x000000cc) 1466 #define DMA_CH3_CTRL_TRIG_BITS _u(0xe7ffffff) 1467 #define DMA_CH3_CTRL_TRIG_RESET _u(0x00000000) 1468 // ----------------------------------------------------------------------------- 1469 // Field : DMA_CH3_CTRL_TRIG_AHB_ERROR 1470 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 1471 // halts when it encounters any bus error, and always raises its 1472 // channel IRQ flag. 1473 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 1474 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 1475 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_MSB _u(31) 1476 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_LSB _u(31) 1477 #define DMA_CH3_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 1478 // ----------------------------------------------------------------------------- 1479 // Field : DMA_CH3_CTRL_TRIG_READ_ERROR 1480 // Description : If 1, the channel received a read bus error. Write one to 1481 // clear. 1482 // READ_ADDR shows the approximate address where the bus error was 1483 // encountered (will not be earlier, or more than 3 transfers 1484 // later) 1485 #define DMA_CH3_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 1486 #define DMA_CH3_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 1487 #define DMA_CH3_CTRL_TRIG_READ_ERROR_MSB _u(30) 1488 #define DMA_CH3_CTRL_TRIG_READ_ERROR_LSB _u(30) 1489 #define DMA_CH3_CTRL_TRIG_READ_ERROR_ACCESS "WC" 1490 // ----------------------------------------------------------------------------- 1491 // Field : DMA_CH3_CTRL_TRIG_WRITE_ERROR 1492 // Description : If 1, the channel received a write bus error. Write one to 1493 // clear. 1494 // WRITE_ADDR shows the approximate address where the bus error 1495 // was encountered (will not be earlier, or more than 5 transfers 1496 // later) 1497 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 1498 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 1499 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 1500 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 1501 #define DMA_CH3_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 1502 // ----------------------------------------------------------------------------- 1503 // Field : DMA_CH3_CTRL_TRIG_BUSY 1504 // Description : This flag goes high when the channel starts a new transfer 1505 // sequence, and low when the last transfer of that sequence 1506 // completes. Clearing EN while BUSY is high pauses the channel, 1507 // and BUSY will stay high while paused. 1508 // 1509 // To terminate a sequence early (and clear the BUSY flag), see 1510 // CHAN_ABORT. 1511 #define DMA_CH3_CTRL_TRIG_BUSY_RESET _u(0x0) 1512 #define DMA_CH3_CTRL_TRIG_BUSY_BITS _u(0x04000000) 1513 #define DMA_CH3_CTRL_TRIG_BUSY_MSB _u(26) 1514 #define DMA_CH3_CTRL_TRIG_BUSY_LSB _u(26) 1515 #define DMA_CH3_CTRL_TRIG_BUSY_ACCESS "RO" 1516 // ----------------------------------------------------------------------------- 1517 // Field : DMA_CH3_CTRL_TRIG_SNIFF_EN 1518 // Description : If 1, this channel's data transfers are visible to the sniff 1519 // hardware, and each transfer will advance the state of the 1520 // checksum. This only applies if the sniff hardware is enabled, 1521 // and has this channel selected. 1522 // 1523 // This allows checksum to be enabled or disabled on a per- 1524 // control- block basis. 1525 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 1526 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 1527 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_MSB _u(25) 1528 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_LSB _u(25) 1529 #define DMA_CH3_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 1530 // ----------------------------------------------------------------------------- 1531 // Field : DMA_CH3_CTRL_TRIG_BSWAP 1532 // Description : Apply byte-swap transformation to DMA data. 1533 // For byte data, this has no effect. For halfword data, the two 1534 // bytes of each halfword are swapped. For word data, the four 1535 // bytes of each word are swapped to reverse order. 1536 #define DMA_CH3_CTRL_TRIG_BSWAP_RESET _u(0x0) 1537 #define DMA_CH3_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 1538 #define DMA_CH3_CTRL_TRIG_BSWAP_MSB _u(24) 1539 #define DMA_CH3_CTRL_TRIG_BSWAP_LSB _u(24) 1540 #define DMA_CH3_CTRL_TRIG_BSWAP_ACCESS "RW" 1541 // ----------------------------------------------------------------------------- 1542 // Field : DMA_CH3_CTRL_TRIG_IRQ_QUIET 1543 // Description : In QUIET mode, the channel does not generate IRQs at the end of 1544 // every transfer block. Instead, an IRQ is raised when NULL is 1545 // written to a trigger register, indicating the end of a control 1546 // block chain. 1547 // 1548 // This reduces the number of interrupts to be serviced by the CPU 1549 // when transferring a DMA chain of many small control blocks. 1550 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 1551 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 1552 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 1553 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 1554 #define DMA_CH3_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 1555 // ----------------------------------------------------------------------------- 1556 // Field : DMA_CH3_CTRL_TRIG_TREQ_SEL 1557 // Description : Select a Transfer Request signal. 1558 // The channel uses the transfer request signal to pace its data 1559 // transfer rate. Sources for TREQ signals are internal (TIMERS) 1560 // or external (DREQ, a Data Request from the system). 1561 // 0x0 to 0x3a -> select DREQ n as TREQ 1562 // 0x3b -> Select Timer 0 as TREQ 1563 // 0x3c -> Select Timer 1 as TREQ 1564 // 0x3d -> Select Timer 2 as TREQ (Optional) 1565 // 0x3e -> Select Timer 3 as TREQ (Optional) 1566 // 0x3f -> Permanent request, for unpaced transfers. 1567 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 1568 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 1569 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_MSB _u(22) 1570 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_LSB _u(17) 1571 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 1572 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 1573 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 1574 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 1575 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 1576 #define DMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 1577 // ----------------------------------------------------------------------------- 1578 // Field : DMA_CH3_CTRL_TRIG_CHAIN_TO 1579 // Description : When this channel completes, it will trigger the channel 1580 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 1581 // channel)_. 1582 // 1583 // Note this field resets to 0, so channels 1 and above will chain 1584 // to channel 0 by default. Set this field to avoid this 1585 // behaviour. 1586 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 1587 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 1588 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_MSB _u(16) 1589 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_LSB _u(13) 1590 #define DMA_CH3_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 1591 // ----------------------------------------------------------------------------- 1592 // Field : DMA_CH3_CTRL_TRIG_RING_SEL 1593 // Description : Select whether RING_SIZE applies to read or write addresses. 1594 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 1595 // boundary. If 1, write addresses are wrapped. 1596 #define DMA_CH3_CTRL_TRIG_RING_SEL_RESET _u(0x0) 1597 #define DMA_CH3_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 1598 #define DMA_CH3_CTRL_TRIG_RING_SEL_MSB _u(12) 1599 #define DMA_CH3_CTRL_TRIG_RING_SEL_LSB _u(12) 1600 #define DMA_CH3_CTRL_TRIG_RING_SEL_ACCESS "RW" 1601 // ----------------------------------------------------------------------------- 1602 // Field : DMA_CH3_CTRL_TRIG_RING_SIZE 1603 // Description : Size of address wrap region. If 0, don't wrap. For values n > 1604 // 0, only the lower n bits of the address will change. This wraps 1605 // the address on a (1 << n) byte boundary, facilitating access to 1606 // naturally-aligned ring buffers. 1607 // 1608 // Ring sizes between 2 and 32768 bytes are possible. This can 1609 // apply to either read or write addresses, based on value of 1610 // RING_SEL. 1611 // 0x0 -> RING_NONE 1612 #define DMA_CH3_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 1613 #define DMA_CH3_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 1614 #define DMA_CH3_CTRL_TRIG_RING_SIZE_MSB _u(11) 1615 #define DMA_CH3_CTRL_TRIG_RING_SIZE_LSB _u(8) 1616 #define DMA_CH3_CTRL_TRIG_RING_SIZE_ACCESS "RW" 1617 #define DMA_CH3_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 1618 // ----------------------------------------------------------------------------- 1619 // Field : DMA_CH3_CTRL_TRIG_INCR_WRITE_REV 1620 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 1621 // rather than incremented with each transfer. 1622 // 1623 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 1624 // causes the write address to be incremented by twice the 1625 // transfer size, i.e. skipping over alternate addresses. 1626 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 1627 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 1628 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 1629 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 1630 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 1631 // ----------------------------------------------------------------------------- 1632 // Field : DMA_CH3_CTRL_TRIG_INCR_WRITE 1633 // Description : If 1, the write address increments with each transfer. If 0, 1634 // each write is directed to the same, initial address. 1635 // 1636 // Generally this should be disabled for memory-to-peripheral 1637 // transfers. 1638 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 1639 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 1640 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_MSB _u(6) 1641 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_LSB _u(6) 1642 #define DMA_CH3_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 1643 // ----------------------------------------------------------------------------- 1644 // Field : DMA_CH3_CTRL_TRIG_INCR_READ_REV 1645 // Description : If 1, and INCR_READ is 1, the read address is decremented 1646 // rather than incremented with each transfer. 1647 // 1648 // If 1, and INCR_READ is 0, this otherwise-unused combination 1649 // causes the read address to be incremented by twice the transfer 1650 // size, i.e. skipping over alternate addresses. 1651 #define DMA_CH3_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 1652 #define DMA_CH3_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 1653 #define DMA_CH3_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 1654 #define DMA_CH3_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 1655 #define DMA_CH3_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 1656 // ----------------------------------------------------------------------------- 1657 // Field : DMA_CH3_CTRL_TRIG_INCR_READ 1658 // Description : If 1, the read address increments with each transfer. If 0, 1659 // each read is directed to the same, initial address. 1660 // 1661 // Generally this should be disabled for peripheral-to-memory 1662 // transfers. 1663 #define DMA_CH3_CTRL_TRIG_INCR_READ_RESET _u(0x0) 1664 #define DMA_CH3_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 1665 #define DMA_CH3_CTRL_TRIG_INCR_READ_MSB _u(4) 1666 #define DMA_CH3_CTRL_TRIG_INCR_READ_LSB _u(4) 1667 #define DMA_CH3_CTRL_TRIG_INCR_READ_ACCESS "RW" 1668 // ----------------------------------------------------------------------------- 1669 // Field : DMA_CH3_CTRL_TRIG_DATA_SIZE 1670 // Description : Set the size of each bus transfer (byte/halfword/word). 1671 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 1672 // with each transfer. 1673 // 0x0 -> SIZE_BYTE 1674 // 0x1 -> SIZE_HALFWORD 1675 // 0x2 -> SIZE_WORD 1676 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 1677 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 1678 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_MSB _u(3) 1679 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_LSB _u(2) 1680 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 1681 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 1682 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 1683 #define DMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 1684 // ----------------------------------------------------------------------------- 1685 // Field : DMA_CH3_CTRL_TRIG_HIGH_PRIORITY 1686 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 1687 // scheduling: in each scheduling round, all high priority 1688 // channels are considered first, and then only a single low 1689 // priority channel, before returning to the high priority 1690 // channels. 1691 // 1692 // This only affects the order in which the DMA schedules 1693 // channels. The DMA's bus priority is not changed. If the DMA is 1694 // not saturated then a low priority channel will see no loss of 1695 // throughput. 1696 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 1697 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 1698 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 1699 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 1700 #define DMA_CH3_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 1701 // ----------------------------------------------------------------------------- 1702 // Field : DMA_CH3_CTRL_TRIG_EN 1703 // Description : DMA Channel Enable. 1704 // When 1, the channel will respond to triggering events, which 1705 // will cause it to become BUSY and start transferring data. When 1706 // 0, the channel will ignore triggers, stop issuing transfers, 1707 // and pause the current transfer sequence (i.e. BUSY will remain 1708 // high if already high) 1709 #define DMA_CH3_CTRL_TRIG_EN_RESET _u(0x0) 1710 #define DMA_CH3_CTRL_TRIG_EN_BITS _u(0x00000001) 1711 #define DMA_CH3_CTRL_TRIG_EN_MSB _u(0) 1712 #define DMA_CH3_CTRL_TRIG_EN_LSB _u(0) 1713 #define DMA_CH3_CTRL_TRIG_EN_ACCESS "RW" 1714 // ============================================================================= 1715 // Register : DMA_CH3_AL1_CTRL 1716 // Description : Alias for channel 3 CTRL register 1717 #define DMA_CH3_AL1_CTRL_OFFSET _u(0x000000d0) 1718 #define DMA_CH3_AL1_CTRL_BITS _u(0xffffffff) 1719 #define DMA_CH3_AL1_CTRL_RESET "-" 1720 #define DMA_CH3_AL1_CTRL_MSB _u(31) 1721 #define DMA_CH3_AL1_CTRL_LSB _u(0) 1722 #define DMA_CH3_AL1_CTRL_ACCESS "RW" 1723 // ============================================================================= 1724 // Register : DMA_CH3_AL1_READ_ADDR 1725 // Description : Alias for channel 3 READ_ADDR register 1726 #define DMA_CH3_AL1_READ_ADDR_OFFSET _u(0x000000d4) 1727 #define DMA_CH3_AL1_READ_ADDR_BITS _u(0xffffffff) 1728 #define DMA_CH3_AL1_READ_ADDR_RESET "-" 1729 #define DMA_CH3_AL1_READ_ADDR_MSB _u(31) 1730 #define DMA_CH3_AL1_READ_ADDR_LSB _u(0) 1731 #define DMA_CH3_AL1_READ_ADDR_ACCESS "RW" 1732 // ============================================================================= 1733 // Register : DMA_CH3_AL1_WRITE_ADDR 1734 // Description : Alias for channel 3 WRITE_ADDR register 1735 #define DMA_CH3_AL1_WRITE_ADDR_OFFSET _u(0x000000d8) 1736 #define DMA_CH3_AL1_WRITE_ADDR_BITS _u(0xffffffff) 1737 #define DMA_CH3_AL1_WRITE_ADDR_RESET "-" 1738 #define DMA_CH3_AL1_WRITE_ADDR_MSB _u(31) 1739 #define DMA_CH3_AL1_WRITE_ADDR_LSB _u(0) 1740 #define DMA_CH3_AL1_WRITE_ADDR_ACCESS "RW" 1741 // ============================================================================= 1742 // Register : DMA_CH3_AL1_TRANS_COUNT_TRIG 1743 // Description : Alias for channel 3 TRANS_COUNT register 1744 // This is a trigger register (0xc). Writing a nonzero value will 1745 // reload the channel counter and start the channel. 1746 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000000dc) 1747 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 1748 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_RESET "-" 1749 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_MSB _u(31) 1750 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_LSB _u(0) 1751 #define DMA_CH3_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 1752 // ============================================================================= 1753 // Register : DMA_CH3_AL2_CTRL 1754 // Description : Alias for channel 3 CTRL register 1755 #define DMA_CH3_AL2_CTRL_OFFSET _u(0x000000e0) 1756 #define DMA_CH3_AL2_CTRL_BITS _u(0xffffffff) 1757 #define DMA_CH3_AL2_CTRL_RESET "-" 1758 #define DMA_CH3_AL2_CTRL_MSB _u(31) 1759 #define DMA_CH3_AL2_CTRL_LSB _u(0) 1760 #define DMA_CH3_AL2_CTRL_ACCESS "RW" 1761 // ============================================================================= 1762 // Register : DMA_CH3_AL2_TRANS_COUNT 1763 // Description : Alias for channel 3 TRANS_COUNT register 1764 #define DMA_CH3_AL2_TRANS_COUNT_OFFSET _u(0x000000e4) 1765 #define DMA_CH3_AL2_TRANS_COUNT_BITS _u(0xffffffff) 1766 #define DMA_CH3_AL2_TRANS_COUNT_RESET "-" 1767 #define DMA_CH3_AL2_TRANS_COUNT_MSB _u(31) 1768 #define DMA_CH3_AL2_TRANS_COUNT_LSB _u(0) 1769 #define DMA_CH3_AL2_TRANS_COUNT_ACCESS "RW" 1770 // ============================================================================= 1771 // Register : DMA_CH3_AL2_READ_ADDR 1772 // Description : Alias for channel 3 READ_ADDR register 1773 #define DMA_CH3_AL2_READ_ADDR_OFFSET _u(0x000000e8) 1774 #define DMA_CH3_AL2_READ_ADDR_BITS _u(0xffffffff) 1775 #define DMA_CH3_AL2_READ_ADDR_RESET "-" 1776 #define DMA_CH3_AL2_READ_ADDR_MSB _u(31) 1777 #define DMA_CH3_AL2_READ_ADDR_LSB _u(0) 1778 #define DMA_CH3_AL2_READ_ADDR_ACCESS "RW" 1779 // ============================================================================= 1780 // Register : DMA_CH3_AL2_WRITE_ADDR_TRIG 1781 // Description : Alias for channel 3 WRITE_ADDR register 1782 // This is a trigger register (0xc). Writing a nonzero value will 1783 // reload the channel counter and start the channel. 1784 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000000ec) 1785 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 1786 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_RESET "-" 1787 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_MSB _u(31) 1788 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_LSB _u(0) 1789 #define DMA_CH3_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 1790 // ============================================================================= 1791 // Register : DMA_CH3_AL3_CTRL 1792 // Description : Alias for channel 3 CTRL register 1793 #define DMA_CH3_AL3_CTRL_OFFSET _u(0x000000f0) 1794 #define DMA_CH3_AL3_CTRL_BITS _u(0xffffffff) 1795 #define DMA_CH3_AL3_CTRL_RESET "-" 1796 #define DMA_CH3_AL3_CTRL_MSB _u(31) 1797 #define DMA_CH3_AL3_CTRL_LSB _u(0) 1798 #define DMA_CH3_AL3_CTRL_ACCESS "RW" 1799 // ============================================================================= 1800 // Register : DMA_CH3_AL3_WRITE_ADDR 1801 // Description : Alias for channel 3 WRITE_ADDR register 1802 #define DMA_CH3_AL3_WRITE_ADDR_OFFSET _u(0x000000f4) 1803 #define DMA_CH3_AL3_WRITE_ADDR_BITS _u(0xffffffff) 1804 #define DMA_CH3_AL3_WRITE_ADDR_RESET "-" 1805 #define DMA_CH3_AL3_WRITE_ADDR_MSB _u(31) 1806 #define DMA_CH3_AL3_WRITE_ADDR_LSB _u(0) 1807 #define DMA_CH3_AL3_WRITE_ADDR_ACCESS "RW" 1808 // ============================================================================= 1809 // Register : DMA_CH3_AL3_TRANS_COUNT 1810 // Description : Alias for channel 3 TRANS_COUNT register 1811 #define DMA_CH3_AL3_TRANS_COUNT_OFFSET _u(0x000000f8) 1812 #define DMA_CH3_AL3_TRANS_COUNT_BITS _u(0xffffffff) 1813 #define DMA_CH3_AL3_TRANS_COUNT_RESET "-" 1814 #define DMA_CH3_AL3_TRANS_COUNT_MSB _u(31) 1815 #define DMA_CH3_AL3_TRANS_COUNT_LSB _u(0) 1816 #define DMA_CH3_AL3_TRANS_COUNT_ACCESS "RW" 1817 // ============================================================================= 1818 // Register : DMA_CH3_AL3_READ_ADDR_TRIG 1819 // Description : Alias for channel 3 READ_ADDR register 1820 // This is a trigger register (0xc). Writing a nonzero value will 1821 // reload the channel counter and start the channel. 1822 #define DMA_CH3_AL3_READ_ADDR_TRIG_OFFSET _u(0x000000fc) 1823 #define DMA_CH3_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 1824 #define DMA_CH3_AL3_READ_ADDR_TRIG_RESET "-" 1825 #define DMA_CH3_AL3_READ_ADDR_TRIG_MSB _u(31) 1826 #define DMA_CH3_AL3_READ_ADDR_TRIG_LSB _u(0) 1827 #define DMA_CH3_AL3_READ_ADDR_TRIG_ACCESS "RW" 1828 // ============================================================================= 1829 // Register : DMA_CH4_READ_ADDR 1830 // Description : DMA Channel 4 Read Address pointer 1831 // This register updates automatically each time a read completes. 1832 // The current value is the next address to be read by this 1833 // channel. 1834 #define DMA_CH4_READ_ADDR_OFFSET _u(0x00000100) 1835 #define DMA_CH4_READ_ADDR_BITS _u(0xffffffff) 1836 #define DMA_CH4_READ_ADDR_RESET _u(0x00000000) 1837 #define DMA_CH4_READ_ADDR_MSB _u(31) 1838 #define DMA_CH4_READ_ADDR_LSB _u(0) 1839 #define DMA_CH4_READ_ADDR_ACCESS "RW" 1840 // ============================================================================= 1841 // Register : DMA_CH4_WRITE_ADDR 1842 // Description : DMA Channel 4 Write Address pointer 1843 // This register updates automatically each time a write 1844 // completes. The current value is the next address to be written 1845 // by this channel. 1846 #define DMA_CH4_WRITE_ADDR_OFFSET _u(0x00000104) 1847 #define DMA_CH4_WRITE_ADDR_BITS _u(0xffffffff) 1848 #define DMA_CH4_WRITE_ADDR_RESET _u(0x00000000) 1849 #define DMA_CH4_WRITE_ADDR_MSB _u(31) 1850 #define DMA_CH4_WRITE_ADDR_LSB _u(0) 1851 #define DMA_CH4_WRITE_ADDR_ACCESS "RW" 1852 // ============================================================================= 1853 // Register : DMA_CH4_TRANS_COUNT 1854 // Description : DMA Channel 4 Transfer Count 1855 #define DMA_CH4_TRANS_COUNT_OFFSET _u(0x00000108) 1856 #define DMA_CH4_TRANS_COUNT_BITS _u(0xffffffff) 1857 #define DMA_CH4_TRANS_COUNT_RESET _u(0x00000000) 1858 // ----------------------------------------------------------------------------- 1859 // Field : DMA_CH4_TRANS_COUNT_MODE 1860 // Description : When MODE is 0x0, the transfer count decrements with each 1861 // transfer until 0, and then the channel triggers the next 1862 // channel indicated by CTRL_CHAIN_TO. 1863 // 1864 // When MODE is 0x1, the transfer count decrements with each 1865 // transfer until 0, and then the channel re-triggers itself, in 1866 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 1867 // useful for e.g. an endless ring-buffer DMA with periodic 1868 // interrupts. 1869 // 1870 // When MODE is 0xf, the transfer count does not decrement. The 1871 // DMA channel performs an endless sequence of transfers, never 1872 // triggering other channels or raising interrupts, until an ABORT 1873 // is raised. 1874 // 1875 // All other values are reserved. 1876 // 0x0 -> NORMAL 1877 // 0x1 -> TRIGGER_SELF 1878 // 0xf -> ENDLESS 1879 #define DMA_CH4_TRANS_COUNT_MODE_RESET _u(0x0) 1880 #define DMA_CH4_TRANS_COUNT_MODE_BITS _u(0xf0000000) 1881 #define DMA_CH4_TRANS_COUNT_MODE_MSB _u(31) 1882 #define DMA_CH4_TRANS_COUNT_MODE_LSB _u(28) 1883 #define DMA_CH4_TRANS_COUNT_MODE_ACCESS "RW" 1884 #define DMA_CH4_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 1885 #define DMA_CH4_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 1886 #define DMA_CH4_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 1887 // ----------------------------------------------------------------------------- 1888 // Field : DMA_CH4_TRANS_COUNT_COUNT 1889 // Description : 28-bit transfer count (256 million transfers maximum). 1890 // 1891 // Program the number of bus transfers a channel will perform 1892 // before halting. Note that, if transfers are larger than one 1893 // byte in size, this is not equal to the number of bytes 1894 // transferred (see CTRL_DATA_SIZE). 1895 // 1896 // When the channel is active, reading this register shows the 1897 // number of transfers remaining, updating automatically each time 1898 // a write transfer completes. 1899 // 1900 // Writing this register sets the RELOAD value for the transfer 1901 // counter. Each time this channel is triggered, the RELOAD value 1902 // is copied into the live transfer counter. The channel can be 1903 // started multiple times, and will perform the same number of 1904 // transfers each time, as programmed by most recent write. 1905 // 1906 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 1907 // is used as a trigger, the written value is used immediately as 1908 // the length of the new transfer sequence, as well as being 1909 // written to RELOAD. 1910 #define DMA_CH4_TRANS_COUNT_COUNT_RESET _u(0x0000000) 1911 #define DMA_CH4_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 1912 #define DMA_CH4_TRANS_COUNT_COUNT_MSB _u(27) 1913 #define DMA_CH4_TRANS_COUNT_COUNT_LSB _u(0) 1914 #define DMA_CH4_TRANS_COUNT_COUNT_ACCESS "RW" 1915 // ============================================================================= 1916 // Register : DMA_CH4_CTRL_TRIG 1917 // Description : DMA Channel 4 Control and Status 1918 #define DMA_CH4_CTRL_TRIG_OFFSET _u(0x0000010c) 1919 #define DMA_CH4_CTRL_TRIG_BITS _u(0xe7ffffff) 1920 #define DMA_CH4_CTRL_TRIG_RESET _u(0x00000000) 1921 // ----------------------------------------------------------------------------- 1922 // Field : DMA_CH4_CTRL_TRIG_AHB_ERROR 1923 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 1924 // halts when it encounters any bus error, and always raises its 1925 // channel IRQ flag. 1926 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 1927 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 1928 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_MSB _u(31) 1929 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_LSB _u(31) 1930 #define DMA_CH4_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 1931 // ----------------------------------------------------------------------------- 1932 // Field : DMA_CH4_CTRL_TRIG_READ_ERROR 1933 // Description : If 1, the channel received a read bus error. Write one to 1934 // clear. 1935 // READ_ADDR shows the approximate address where the bus error was 1936 // encountered (will not be earlier, or more than 3 transfers 1937 // later) 1938 #define DMA_CH4_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 1939 #define DMA_CH4_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 1940 #define DMA_CH4_CTRL_TRIG_READ_ERROR_MSB _u(30) 1941 #define DMA_CH4_CTRL_TRIG_READ_ERROR_LSB _u(30) 1942 #define DMA_CH4_CTRL_TRIG_READ_ERROR_ACCESS "WC" 1943 // ----------------------------------------------------------------------------- 1944 // Field : DMA_CH4_CTRL_TRIG_WRITE_ERROR 1945 // Description : If 1, the channel received a write bus error. Write one to 1946 // clear. 1947 // WRITE_ADDR shows the approximate address where the bus error 1948 // was encountered (will not be earlier, or more than 5 transfers 1949 // later) 1950 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 1951 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 1952 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 1953 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 1954 #define DMA_CH4_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 1955 // ----------------------------------------------------------------------------- 1956 // Field : DMA_CH4_CTRL_TRIG_BUSY 1957 // Description : This flag goes high when the channel starts a new transfer 1958 // sequence, and low when the last transfer of that sequence 1959 // completes. Clearing EN while BUSY is high pauses the channel, 1960 // and BUSY will stay high while paused. 1961 // 1962 // To terminate a sequence early (and clear the BUSY flag), see 1963 // CHAN_ABORT. 1964 #define DMA_CH4_CTRL_TRIG_BUSY_RESET _u(0x0) 1965 #define DMA_CH4_CTRL_TRIG_BUSY_BITS _u(0x04000000) 1966 #define DMA_CH4_CTRL_TRIG_BUSY_MSB _u(26) 1967 #define DMA_CH4_CTRL_TRIG_BUSY_LSB _u(26) 1968 #define DMA_CH4_CTRL_TRIG_BUSY_ACCESS "RO" 1969 // ----------------------------------------------------------------------------- 1970 // Field : DMA_CH4_CTRL_TRIG_SNIFF_EN 1971 // Description : If 1, this channel's data transfers are visible to the sniff 1972 // hardware, and each transfer will advance the state of the 1973 // checksum. This only applies if the sniff hardware is enabled, 1974 // and has this channel selected. 1975 // 1976 // This allows checksum to be enabled or disabled on a per- 1977 // control- block basis. 1978 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 1979 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 1980 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_MSB _u(25) 1981 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_LSB _u(25) 1982 #define DMA_CH4_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 1983 // ----------------------------------------------------------------------------- 1984 // Field : DMA_CH4_CTRL_TRIG_BSWAP 1985 // Description : Apply byte-swap transformation to DMA data. 1986 // For byte data, this has no effect. For halfword data, the two 1987 // bytes of each halfword are swapped. For word data, the four 1988 // bytes of each word are swapped to reverse order. 1989 #define DMA_CH4_CTRL_TRIG_BSWAP_RESET _u(0x0) 1990 #define DMA_CH4_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 1991 #define DMA_CH4_CTRL_TRIG_BSWAP_MSB _u(24) 1992 #define DMA_CH4_CTRL_TRIG_BSWAP_LSB _u(24) 1993 #define DMA_CH4_CTRL_TRIG_BSWAP_ACCESS "RW" 1994 // ----------------------------------------------------------------------------- 1995 // Field : DMA_CH4_CTRL_TRIG_IRQ_QUIET 1996 // Description : In QUIET mode, the channel does not generate IRQs at the end of 1997 // every transfer block. Instead, an IRQ is raised when NULL is 1998 // written to a trigger register, indicating the end of a control 1999 // block chain. 2000 // 2001 // This reduces the number of interrupts to be serviced by the CPU 2002 // when transferring a DMA chain of many small control blocks. 2003 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2004 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 2005 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 2006 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 2007 #define DMA_CH4_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2008 // ----------------------------------------------------------------------------- 2009 // Field : DMA_CH4_CTRL_TRIG_TREQ_SEL 2010 // Description : Select a Transfer Request signal. 2011 // The channel uses the transfer request signal to pace its data 2012 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2013 // or external (DREQ, a Data Request from the system). 2014 // 0x0 to 0x3a -> select DREQ n as TREQ 2015 // 0x3b -> Select Timer 0 as TREQ 2016 // 0x3c -> Select Timer 1 as TREQ 2017 // 0x3d -> Select Timer 2 as TREQ (Optional) 2018 // 0x3e -> Select Timer 3 as TREQ (Optional) 2019 // 0x3f -> Permanent request, for unpaced transfers. 2020 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2021 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 2022 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_MSB _u(22) 2023 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_LSB _u(17) 2024 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2025 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2026 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2027 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2028 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2029 #define DMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2030 // ----------------------------------------------------------------------------- 2031 // Field : DMA_CH4_CTRL_TRIG_CHAIN_TO 2032 // Description : When this channel completes, it will trigger the channel 2033 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2034 // channel)_. 2035 // 2036 // Note this field resets to 0, so channels 1 and above will chain 2037 // to channel 0 by default. Set this field to avoid this 2038 // behaviour. 2039 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2040 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 2041 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_MSB _u(16) 2042 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_LSB _u(13) 2043 #define DMA_CH4_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2044 // ----------------------------------------------------------------------------- 2045 // Field : DMA_CH4_CTRL_TRIG_RING_SEL 2046 // Description : Select whether RING_SIZE applies to read or write addresses. 2047 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2048 // boundary. If 1, write addresses are wrapped. 2049 #define DMA_CH4_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2050 #define DMA_CH4_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 2051 #define DMA_CH4_CTRL_TRIG_RING_SEL_MSB _u(12) 2052 #define DMA_CH4_CTRL_TRIG_RING_SEL_LSB _u(12) 2053 #define DMA_CH4_CTRL_TRIG_RING_SEL_ACCESS "RW" 2054 // ----------------------------------------------------------------------------- 2055 // Field : DMA_CH4_CTRL_TRIG_RING_SIZE 2056 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2057 // 0, only the lower n bits of the address will change. This wraps 2058 // the address on a (1 << n) byte boundary, facilitating access to 2059 // naturally-aligned ring buffers. 2060 // 2061 // Ring sizes between 2 and 32768 bytes are possible. This can 2062 // apply to either read or write addresses, based on value of 2063 // RING_SEL. 2064 // 0x0 -> RING_NONE 2065 #define DMA_CH4_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2066 #define DMA_CH4_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 2067 #define DMA_CH4_CTRL_TRIG_RING_SIZE_MSB _u(11) 2068 #define DMA_CH4_CTRL_TRIG_RING_SIZE_LSB _u(8) 2069 #define DMA_CH4_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2070 #define DMA_CH4_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2071 // ----------------------------------------------------------------------------- 2072 // Field : DMA_CH4_CTRL_TRIG_INCR_WRITE_REV 2073 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 2074 // rather than incremented with each transfer. 2075 // 2076 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 2077 // causes the write address to be incremented by twice the 2078 // transfer size, i.e. skipping over alternate addresses. 2079 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 2080 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 2081 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 2082 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 2083 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 2084 // ----------------------------------------------------------------------------- 2085 // Field : DMA_CH4_CTRL_TRIG_INCR_WRITE 2086 // Description : If 1, the write address increments with each transfer. If 0, 2087 // each write is directed to the same, initial address. 2088 // 2089 // Generally this should be disabled for memory-to-peripheral 2090 // transfers. 2091 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2092 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 2093 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_MSB _u(6) 2094 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_LSB _u(6) 2095 #define DMA_CH4_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 2096 // ----------------------------------------------------------------------------- 2097 // Field : DMA_CH4_CTRL_TRIG_INCR_READ_REV 2098 // Description : If 1, and INCR_READ is 1, the read address is decremented 2099 // rather than incremented with each transfer. 2100 // 2101 // If 1, and INCR_READ is 0, this otherwise-unused combination 2102 // causes the read address to be incremented by twice the transfer 2103 // size, i.e. skipping over alternate addresses. 2104 #define DMA_CH4_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 2105 #define DMA_CH4_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 2106 #define DMA_CH4_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 2107 #define DMA_CH4_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 2108 #define DMA_CH4_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 2109 // ----------------------------------------------------------------------------- 2110 // Field : DMA_CH4_CTRL_TRIG_INCR_READ 2111 // Description : If 1, the read address increments with each transfer. If 0, 2112 // each read is directed to the same, initial address. 2113 // 2114 // Generally this should be disabled for peripheral-to-memory 2115 // transfers. 2116 #define DMA_CH4_CTRL_TRIG_INCR_READ_RESET _u(0x0) 2117 #define DMA_CH4_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 2118 #define DMA_CH4_CTRL_TRIG_INCR_READ_MSB _u(4) 2119 #define DMA_CH4_CTRL_TRIG_INCR_READ_LSB _u(4) 2120 #define DMA_CH4_CTRL_TRIG_INCR_READ_ACCESS "RW" 2121 // ----------------------------------------------------------------------------- 2122 // Field : DMA_CH4_CTRL_TRIG_DATA_SIZE 2123 // Description : Set the size of each bus transfer (byte/halfword/word). 2124 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 2125 // with each transfer. 2126 // 0x0 -> SIZE_BYTE 2127 // 0x1 -> SIZE_HALFWORD 2128 // 0x2 -> SIZE_WORD 2129 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 2130 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 2131 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_MSB _u(3) 2132 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_LSB _u(2) 2133 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 2134 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 2135 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 2136 #define DMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 2137 // ----------------------------------------------------------------------------- 2138 // Field : DMA_CH4_CTRL_TRIG_HIGH_PRIORITY 2139 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 2140 // scheduling: in each scheduling round, all high priority 2141 // channels are considered first, and then only a single low 2142 // priority channel, before returning to the high priority 2143 // channels. 2144 // 2145 // This only affects the order in which the DMA schedules 2146 // channels. The DMA's bus priority is not changed. If the DMA is 2147 // not saturated then a low priority channel will see no loss of 2148 // throughput. 2149 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 2150 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 2151 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 2152 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 2153 #define DMA_CH4_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 2154 // ----------------------------------------------------------------------------- 2155 // Field : DMA_CH4_CTRL_TRIG_EN 2156 // Description : DMA Channel Enable. 2157 // When 1, the channel will respond to triggering events, which 2158 // will cause it to become BUSY and start transferring data. When 2159 // 0, the channel will ignore triggers, stop issuing transfers, 2160 // and pause the current transfer sequence (i.e. BUSY will remain 2161 // high if already high) 2162 #define DMA_CH4_CTRL_TRIG_EN_RESET _u(0x0) 2163 #define DMA_CH4_CTRL_TRIG_EN_BITS _u(0x00000001) 2164 #define DMA_CH4_CTRL_TRIG_EN_MSB _u(0) 2165 #define DMA_CH4_CTRL_TRIG_EN_LSB _u(0) 2166 #define DMA_CH4_CTRL_TRIG_EN_ACCESS "RW" 2167 // ============================================================================= 2168 // Register : DMA_CH4_AL1_CTRL 2169 // Description : Alias for channel 4 CTRL register 2170 #define DMA_CH4_AL1_CTRL_OFFSET _u(0x00000110) 2171 #define DMA_CH4_AL1_CTRL_BITS _u(0xffffffff) 2172 #define DMA_CH4_AL1_CTRL_RESET "-" 2173 #define DMA_CH4_AL1_CTRL_MSB _u(31) 2174 #define DMA_CH4_AL1_CTRL_LSB _u(0) 2175 #define DMA_CH4_AL1_CTRL_ACCESS "RW" 2176 // ============================================================================= 2177 // Register : DMA_CH4_AL1_READ_ADDR 2178 // Description : Alias for channel 4 READ_ADDR register 2179 #define DMA_CH4_AL1_READ_ADDR_OFFSET _u(0x00000114) 2180 #define DMA_CH4_AL1_READ_ADDR_BITS _u(0xffffffff) 2181 #define DMA_CH4_AL1_READ_ADDR_RESET "-" 2182 #define DMA_CH4_AL1_READ_ADDR_MSB _u(31) 2183 #define DMA_CH4_AL1_READ_ADDR_LSB _u(0) 2184 #define DMA_CH4_AL1_READ_ADDR_ACCESS "RW" 2185 // ============================================================================= 2186 // Register : DMA_CH4_AL1_WRITE_ADDR 2187 // Description : Alias for channel 4 WRITE_ADDR register 2188 #define DMA_CH4_AL1_WRITE_ADDR_OFFSET _u(0x00000118) 2189 #define DMA_CH4_AL1_WRITE_ADDR_BITS _u(0xffffffff) 2190 #define DMA_CH4_AL1_WRITE_ADDR_RESET "-" 2191 #define DMA_CH4_AL1_WRITE_ADDR_MSB _u(31) 2192 #define DMA_CH4_AL1_WRITE_ADDR_LSB _u(0) 2193 #define DMA_CH4_AL1_WRITE_ADDR_ACCESS "RW" 2194 // ============================================================================= 2195 // Register : DMA_CH4_AL1_TRANS_COUNT_TRIG 2196 // Description : Alias for channel 4 TRANS_COUNT register 2197 // This is a trigger register (0xc). Writing a nonzero value will 2198 // reload the channel counter and start the channel. 2199 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000011c) 2200 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 2201 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_RESET "-" 2202 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_MSB _u(31) 2203 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_LSB _u(0) 2204 #define DMA_CH4_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 2205 // ============================================================================= 2206 // Register : DMA_CH4_AL2_CTRL 2207 // Description : Alias for channel 4 CTRL register 2208 #define DMA_CH4_AL2_CTRL_OFFSET _u(0x00000120) 2209 #define DMA_CH4_AL2_CTRL_BITS _u(0xffffffff) 2210 #define DMA_CH4_AL2_CTRL_RESET "-" 2211 #define DMA_CH4_AL2_CTRL_MSB _u(31) 2212 #define DMA_CH4_AL2_CTRL_LSB _u(0) 2213 #define DMA_CH4_AL2_CTRL_ACCESS "RW" 2214 // ============================================================================= 2215 // Register : DMA_CH4_AL2_TRANS_COUNT 2216 // Description : Alias for channel 4 TRANS_COUNT register 2217 #define DMA_CH4_AL2_TRANS_COUNT_OFFSET _u(0x00000124) 2218 #define DMA_CH4_AL2_TRANS_COUNT_BITS _u(0xffffffff) 2219 #define DMA_CH4_AL2_TRANS_COUNT_RESET "-" 2220 #define DMA_CH4_AL2_TRANS_COUNT_MSB _u(31) 2221 #define DMA_CH4_AL2_TRANS_COUNT_LSB _u(0) 2222 #define DMA_CH4_AL2_TRANS_COUNT_ACCESS "RW" 2223 // ============================================================================= 2224 // Register : DMA_CH4_AL2_READ_ADDR 2225 // Description : Alias for channel 4 READ_ADDR register 2226 #define DMA_CH4_AL2_READ_ADDR_OFFSET _u(0x00000128) 2227 #define DMA_CH4_AL2_READ_ADDR_BITS _u(0xffffffff) 2228 #define DMA_CH4_AL2_READ_ADDR_RESET "-" 2229 #define DMA_CH4_AL2_READ_ADDR_MSB _u(31) 2230 #define DMA_CH4_AL2_READ_ADDR_LSB _u(0) 2231 #define DMA_CH4_AL2_READ_ADDR_ACCESS "RW" 2232 // ============================================================================= 2233 // Register : DMA_CH4_AL2_WRITE_ADDR_TRIG 2234 // Description : Alias for channel 4 WRITE_ADDR register 2235 // This is a trigger register (0xc). Writing a nonzero value will 2236 // reload the channel counter and start the channel. 2237 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000012c) 2238 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 2239 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_RESET "-" 2240 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_MSB _u(31) 2241 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_LSB _u(0) 2242 #define DMA_CH4_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 2243 // ============================================================================= 2244 // Register : DMA_CH4_AL3_CTRL 2245 // Description : Alias for channel 4 CTRL register 2246 #define DMA_CH4_AL3_CTRL_OFFSET _u(0x00000130) 2247 #define DMA_CH4_AL3_CTRL_BITS _u(0xffffffff) 2248 #define DMA_CH4_AL3_CTRL_RESET "-" 2249 #define DMA_CH4_AL3_CTRL_MSB _u(31) 2250 #define DMA_CH4_AL3_CTRL_LSB _u(0) 2251 #define DMA_CH4_AL3_CTRL_ACCESS "RW" 2252 // ============================================================================= 2253 // Register : DMA_CH4_AL3_WRITE_ADDR 2254 // Description : Alias for channel 4 WRITE_ADDR register 2255 #define DMA_CH4_AL3_WRITE_ADDR_OFFSET _u(0x00000134) 2256 #define DMA_CH4_AL3_WRITE_ADDR_BITS _u(0xffffffff) 2257 #define DMA_CH4_AL3_WRITE_ADDR_RESET "-" 2258 #define DMA_CH4_AL3_WRITE_ADDR_MSB _u(31) 2259 #define DMA_CH4_AL3_WRITE_ADDR_LSB _u(0) 2260 #define DMA_CH4_AL3_WRITE_ADDR_ACCESS "RW" 2261 // ============================================================================= 2262 // Register : DMA_CH4_AL3_TRANS_COUNT 2263 // Description : Alias for channel 4 TRANS_COUNT register 2264 #define DMA_CH4_AL3_TRANS_COUNT_OFFSET _u(0x00000138) 2265 #define DMA_CH4_AL3_TRANS_COUNT_BITS _u(0xffffffff) 2266 #define DMA_CH4_AL3_TRANS_COUNT_RESET "-" 2267 #define DMA_CH4_AL3_TRANS_COUNT_MSB _u(31) 2268 #define DMA_CH4_AL3_TRANS_COUNT_LSB _u(0) 2269 #define DMA_CH4_AL3_TRANS_COUNT_ACCESS "RW" 2270 // ============================================================================= 2271 // Register : DMA_CH4_AL3_READ_ADDR_TRIG 2272 // Description : Alias for channel 4 READ_ADDR register 2273 // This is a trigger register (0xc). Writing a nonzero value will 2274 // reload the channel counter and start the channel. 2275 #define DMA_CH4_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000013c) 2276 #define DMA_CH4_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 2277 #define DMA_CH4_AL3_READ_ADDR_TRIG_RESET "-" 2278 #define DMA_CH4_AL3_READ_ADDR_TRIG_MSB _u(31) 2279 #define DMA_CH4_AL3_READ_ADDR_TRIG_LSB _u(0) 2280 #define DMA_CH4_AL3_READ_ADDR_TRIG_ACCESS "RW" 2281 // ============================================================================= 2282 // Register : DMA_CH5_READ_ADDR 2283 // Description : DMA Channel 5 Read Address pointer 2284 // This register updates automatically each time a read completes. 2285 // The current value is the next address to be read by this 2286 // channel. 2287 #define DMA_CH5_READ_ADDR_OFFSET _u(0x00000140) 2288 #define DMA_CH5_READ_ADDR_BITS _u(0xffffffff) 2289 #define DMA_CH5_READ_ADDR_RESET _u(0x00000000) 2290 #define DMA_CH5_READ_ADDR_MSB _u(31) 2291 #define DMA_CH5_READ_ADDR_LSB _u(0) 2292 #define DMA_CH5_READ_ADDR_ACCESS "RW" 2293 // ============================================================================= 2294 // Register : DMA_CH5_WRITE_ADDR 2295 // Description : DMA Channel 5 Write Address pointer 2296 // This register updates automatically each time a write 2297 // completes. The current value is the next address to be written 2298 // by this channel. 2299 #define DMA_CH5_WRITE_ADDR_OFFSET _u(0x00000144) 2300 #define DMA_CH5_WRITE_ADDR_BITS _u(0xffffffff) 2301 #define DMA_CH5_WRITE_ADDR_RESET _u(0x00000000) 2302 #define DMA_CH5_WRITE_ADDR_MSB _u(31) 2303 #define DMA_CH5_WRITE_ADDR_LSB _u(0) 2304 #define DMA_CH5_WRITE_ADDR_ACCESS "RW" 2305 // ============================================================================= 2306 // Register : DMA_CH5_TRANS_COUNT 2307 // Description : DMA Channel 5 Transfer Count 2308 #define DMA_CH5_TRANS_COUNT_OFFSET _u(0x00000148) 2309 #define DMA_CH5_TRANS_COUNT_BITS _u(0xffffffff) 2310 #define DMA_CH5_TRANS_COUNT_RESET _u(0x00000000) 2311 // ----------------------------------------------------------------------------- 2312 // Field : DMA_CH5_TRANS_COUNT_MODE 2313 // Description : When MODE is 0x0, the transfer count decrements with each 2314 // transfer until 0, and then the channel triggers the next 2315 // channel indicated by CTRL_CHAIN_TO. 2316 // 2317 // When MODE is 0x1, the transfer count decrements with each 2318 // transfer until 0, and then the channel re-triggers itself, in 2319 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 2320 // useful for e.g. an endless ring-buffer DMA with periodic 2321 // interrupts. 2322 // 2323 // When MODE is 0xf, the transfer count does not decrement. The 2324 // DMA channel performs an endless sequence of transfers, never 2325 // triggering other channels or raising interrupts, until an ABORT 2326 // is raised. 2327 // 2328 // All other values are reserved. 2329 // 0x0 -> NORMAL 2330 // 0x1 -> TRIGGER_SELF 2331 // 0xf -> ENDLESS 2332 #define DMA_CH5_TRANS_COUNT_MODE_RESET _u(0x0) 2333 #define DMA_CH5_TRANS_COUNT_MODE_BITS _u(0xf0000000) 2334 #define DMA_CH5_TRANS_COUNT_MODE_MSB _u(31) 2335 #define DMA_CH5_TRANS_COUNT_MODE_LSB _u(28) 2336 #define DMA_CH5_TRANS_COUNT_MODE_ACCESS "RW" 2337 #define DMA_CH5_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 2338 #define DMA_CH5_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 2339 #define DMA_CH5_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 2340 // ----------------------------------------------------------------------------- 2341 // Field : DMA_CH5_TRANS_COUNT_COUNT 2342 // Description : 28-bit transfer count (256 million transfers maximum). 2343 // 2344 // Program the number of bus transfers a channel will perform 2345 // before halting. Note that, if transfers are larger than one 2346 // byte in size, this is not equal to the number of bytes 2347 // transferred (see CTRL_DATA_SIZE). 2348 // 2349 // When the channel is active, reading this register shows the 2350 // number of transfers remaining, updating automatically each time 2351 // a write transfer completes. 2352 // 2353 // Writing this register sets the RELOAD value for the transfer 2354 // counter. Each time this channel is triggered, the RELOAD value 2355 // is copied into the live transfer counter. The channel can be 2356 // started multiple times, and will perform the same number of 2357 // transfers each time, as programmed by most recent write. 2358 // 2359 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 2360 // is used as a trigger, the written value is used immediately as 2361 // the length of the new transfer sequence, as well as being 2362 // written to RELOAD. 2363 #define DMA_CH5_TRANS_COUNT_COUNT_RESET _u(0x0000000) 2364 #define DMA_CH5_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 2365 #define DMA_CH5_TRANS_COUNT_COUNT_MSB _u(27) 2366 #define DMA_CH5_TRANS_COUNT_COUNT_LSB _u(0) 2367 #define DMA_CH5_TRANS_COUNT_COUNT_ACCESS "RW" 2368 // ============================================================================= 2369 // Register : DMA_CH5_CTRL_TRIG 2370 // Description : DMA Channel 5 Control and Status 2371 #define DMA_CH5_CTRL_TRIG_OFFSET _u(0x0000014c) 2372 #define DMA_CH5_CTRL_TRIG_BITS _u(0xe7ffffff) 2373 #define DMA_CH5_CTRL_TRIG_RESET _u(0x00000000) 2374 // ----------------------------------------------------------------------------- 2375 // Field : DMA_CH5_CTRL_TRIG_AHB_ERROR 2376 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 2377 // halts when it encounters any bus error, and always raises its 2378 // channel IRQ flag. 2379 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 2380 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 2381 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_MSB _u(31) 2382 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_LSB _u(31) 2383 #define DMA_CH5_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 2384 // ----------------------------------------------------------------------------- 2385 // Field : DMA_CH5_CTRL_TRIG_READ_ERROR 2386 // Description : If 1, the channel received a read bus error. Write one to 2387 // clear. 2388 // READ_ADDR shows the approximate address where the bus error was 2389 // encountered (will not be earlier, or more than 3 transfers 2390 // later) 2391 #define DMA_CH5_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 2392 #define DMA_CH5_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 2393 #define DMA_CH5_CTRL_TRIG_READ_ERROR_MSB _u(30) 2394 #define DMA_CH5_CTRL_TRIG_READ_ERROR_LSB _u(30) 2395 #define DMA_CH5_CTRL_TRIG_READ_ERROR_ACCESS "WC" 2396 // ----------------------------------------------------------------------------- 2397 // Field : DMA_CH5_CTRL_TRIG_WRITE_ERROR 2398 // Description : If 1, the channel received a write bus error. Write one to 2399 // clear. 2400 // WRITE_ADDR shows the approximate address where the bus error 2401 // was encountered (will not be earlier, or more than 5 transfers 2402 // later) 2403 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 2404 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 2405 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 2406 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 2407 #define DMA_CH5_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 2408 // ----------------------------------------------------------------------------- 2409 // Field : DMA_CH5_CTRL_TRIG_BUSY 2410 // Description : This flag goes high when the channel starts a new transfer 2411 // sequence, and low when the last transfer of that sequence 2412 // completes. Clearing EN while BUSY is high pauses the channel, 2413 // and BUSY will stay high while paused. 2414 // 2415 // To terminate a sequence early (and clear the BUSY flag), see 2416 // CHAN_ABORT. 2417 #define DMA_CH5_CTRL_TRIG_BUSY_RESET _u(0x0) 2418 #define DMA_CH5_CTRL_TRIG_BUSY_BITS _u(0x04000000) 2419 #define DMA_CH5_CTRL_TRIG_BUSY_MSB _u(26) 2420 #define DMA_CH5_CTRL_TRIG_BUSY_LSB _u(26) 2421 #define DMA_CH5_CTRL_TRIG_BUSY_ACCESS "RO" 2422 // ----------------------------------------------------------------------------- 2423 // Field : DMA_CH5_CTRL_TRIG_SNIFF_EN 2424 // Description : If 1, this channel's data transfers are visible to the sniff 2425 // hardware, and each transfer will advance the state of the 2426 // checksum. This only applies if the sniff hardware is enabled, 2427 // and has this channel selected. 2428 // 2429 // This allows checksum to be enabled or disabled on a per- 2430 // control- block basis. 2431 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 2432 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 2433 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_MSB _u(25) 2434 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_LSB _u(25) 2435 #define DMA_CH5_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 2436 // ----------------------------------------------------------------------------- 2437 // Field : DMA_CH5_CTRL_TRIG_BSWAP 2438 // Description : Apply byte-swap transformation to DMA data. 2439 // For byte data, this has no effect. For halfword data, the two 2440 // bytes of each halfword are swapped. For word data, the four 2441 // bytes of each word are swapped to reverse order. 2442 #define DMA_CH5_CTRL_TRIG_BSWAP_RESET _u(0x0) 2443 #define DMA_CH5_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 2444 #define DMA_CH5_CTRL_TRIG_BSWAP_MSB _u(24) 2445 #define DMA_CH5_CTRL_TRIG_BSWAP_LSB _u(24) 2446 #define DMA_CH5_CTRL_TRIG_BSWAP_ACCESS "RW" 2447 // ----------------------------------------------------------------------------- 2448 // Field : DMA_CH5_CTRL_TRIG_IRQ_QUIET 2449 // Description : In QUIET mode, the channel does not generate IRQs at the end of 2450 // every transfer block. Instead, an IRQ is raised when NULL is 2451 // written to a trigger register, indicating the end of a control 2452 // block chain. 2453 // 2454 // This reduces the number of interrupts to be serviced by the CPU 2455 // when transferring a DMA chain of many small control blocks. 2456 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2457 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 2458 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 2459 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 2460 #define DMA_CH5_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2461 // ----------------------------------------------------------------------------- 2462 // Field : DMA_CH5_CTRL_TRIG_TREQ_SEL 2463 // Description : Select a Transfer Request signal. 2464 // The channel uses the transfer request signal to pace its data 2465 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2466 // or external (DREQ, a Data Request from the system). 2467 // 0x0 to 0x3a -> select DREQ n as TREQ 2468 // 0x3b -> Select Timer 0 as TREQ 2469 // 0x3c -> Select Timer 1 as TREQ 2470 // 0x3d -> Select Timer 2 as TREQ (Optional) 2471 // 0x3e -> Select Timer 3 as TREQ (Optional) 2472 // 0x3f -> Permanent request, for unpaced transfers. 2473 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2474 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 2475 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_MSB _u(22) 2476 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_LSB _u(17) 2477 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2478 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2479 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2480 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2481 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2482 #define DMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2483 // ----------------------------------------------------------------------------- 2484 // Field : DMA_CH5_CTRL_TRIG_CHAIN_TO 2485 // Description : When this channel completes, it will trigger the channel 2486 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2487 // channel)_. 2488 // 2489 // Note this field resets to 0, so channels 1 and above will chain 2490 // to channel 0 by default. Set this field to avoid this 2491 // behaviour. 2492 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2493 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 2494 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_MSB _u(16) 2495 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_LSB _u(13) 2496 #define DMA_CH5_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2497 // ----------------------------------------------------------------------------- 2498 // Field : DMA_CH5_CTRL_TRIG_RING_SEL 2499 // Description : Select whether RING_SIZE applies to read or write addresses. 2500 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2501 // boundary. If 1, write addresses are wrapped. 2502 #define DMA_CH5_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2503 #define DMA_CH5_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 2504 #define DMA_CH5_CTRL_TRIG_RING_SEL_MSB _u(12) 2505 #define DMA_CH5_CTRL_TRIG_RING_SEL_LSB _u(12) 2506 #define DMA_CH5_CTRL_TRIG_RING_SEL_ACCESS "RW" 2507 // ----------------------------------------------------------------------------- 2508 // Field : DMA_CH5_CTRL_TRIG_RING_SIZE 2509 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2510 // 0, only the lower n bits of the address will change. This wraps 2511 // the address on a (1 << n) byte boundary, facilitating access to 2512 // naturally-aligned ring buffers. 2513 // 2514 // Ring sizes between 2 and 32768 bytes are possible. This can 2515 // apply to either read or write addresses, based on value of 2516 // RING_SEL. 2517 // 0x0 -> RING_NONE 2518 #define DMA_CH5_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2519 #define DMA_CH5_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 2520 #define DMA_CH5_CTRL_TRIG_RING_SIZE_MSB _u(11) 2521 #define DMA_CH5_CTRL_TRIG_RING_SIZE_LSB _u(8) 2522 #define DMA_CH5_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2523 #define DMA_CH5_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2524 // ----------------------------------------------------------------------------- 2525 // Field : DMA_CH5_CTRL_TRIG_INCR_WRITE_REV 2526 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 2527 // rather than incremented with each transfer. 2528 // 2529 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 2530 // causes the write address to be incremented by twice the 2531 // transfer size, i.e. skipping over alternate addresses. 2532 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 2533 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 2534 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 2535 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 2536 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 2537 // ----------------------------------------------------------------------------- 2538 // Field : DMA_CH5_CTRL_TRIG_INCR_WRITE 2539 // Description : If 1, the write address increments with each transfer. If 0, 2540 // each write is directed to the same, initial address. 2541 // 2542 // Generally this should be disabled for memory-to-peripheral 2543 // transfers. 2544 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2545 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 2546 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_MSB _u(6) 2547 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_LSB _u(6) 2548 #define DMA_CH5_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 2549 // ----------------------------------------------------------------------------- 2550 // Field : DMA_CH5_CTRL_TRIG_INCR_READ_REV 2551 // Description : If 1, and INCR_READ is 1, the read address is decremented 2552 // rather than incremented with each transfer. 2553 // 2554 // If 1, and INCR_READ is 0, this otherwise-unused combination 2555 // causes the read address to be incremented by twice the transfer 2556 // size, i.e. skipping over alternate addresses. 2557 #define DMA_CH5_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 2558 #define DMA_CH5_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 2559 #define DMA_CH5_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 2560 #define DMA_CH5_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 2561 #define DMA_CH5_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 2562 // ----------------------------------------------------------------------------- 2563 // Field : DMA_CH5_CTRL_TRIG_INCR_READ 2564 // Description : If 1, the read address increments with each transfer. If 0, 2565 // each read is directed to the same, initial address. 2566 // 2567 // Generally this should be disabled for peripheral-to-memory 2568 // transfers. 2569 #define DMA_CH5_CTRL_TRIG_INCR_READ_RESET _u(0x0) 2570 #define DMA_CH5_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 2571 #define DMA_CH5_CTRL_TRIG_INCR_READ_MSB _u(4) 2572 #define DMA_CH5_CTRL_TRIG_INCR_READ_LSB _u(4) 2573 #define DMA_CH5_CTRL_TRIG_INCR_READ_ACCESS "RW" 2574 // ----------------------------------------------------------------------------- 2575 // Field : DMA_CH5_CTRL_TRIG_DATA_SIZE 2576 // Description : Set the size of each bus transfer (byte/halfword/word). 2577 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 2578 // with each transfer. 2579 // 0x0 -> SIZE_BYTE 2580 // 0x1 -> SIZE_HALFWORD 2581 // 0x2 -> SIZE_WORD 2582 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 2583 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 2584 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_MSB _u(3) 2585 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_LSB _u(2) 2586 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 2587 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 2588 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 2589 #define DMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 2590 // ----------------------------------------------------------------------------- 2591 // Field : DMA_CH5_CTRL_TRIG_HIGH_PRIORITY 2592 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 2593 // scheduling: in each scheduling round, all high priority 2594 // channels are considered first, and then only a single low 2595 // priority channel, before returning to the high priority 2596 // channels. 2597 // 2598 // This only affects the order in which the DMA schedules 2599 // channels. The DMA's bus priority is not changed. If the DMA is 2600 // not saturated then a low priority channel will see no loss of 2601 // throughput. 2602 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 2603 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 2604 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 2605 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 2606 #define DMA_CH5_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 2607 // ----------------------------------------------------------------------------- 2608 // Field : DMA_CH5_CTRL_TRIG_EN 2609 // Description : DMA Channel Enable. 2610 // When 1, the channel will respond to triggering events, which 2611 // will cause it to become BUSY and start transferring data. When 2612 // 0, the channel will ignore triggers, stop issuing transfers, 2613 // and pause the current transfer sequence (i.e. BUSY will remain 2614 // high if already high) 2615 #define DMA_CH5_CTRL_TRIG_EN_RESET _u(0x0) 2616 #define DMA_CH5_CTRL_TRIG_EN_BITS _u(0x00000001) 2617 #define DMA_CH5_CTRL_TRIG_EN_MSB _u(0) 2618 #define DMA_CH5_CTRL_TRIG_EN_LSB _u(0) 2619 #define DMA_CH5_CTRL_TRIG_EN_ACCESS "RW" 2620 // ============================================================================= 2621 // Register : DMA_CH5_AL1_CTRL 2622 // Description : Alias for channel 5 CTRL register 2623 #define DMA_CH5_AL1_CTRL_OFFSET _u(0x00000150) 2624 #define DMA_CH5_AL1_CTRL_BITS _u(0xffffffff) 2625 #define DMA_CH5_AL1_CTRL_RESET "-" 2626 #define DMA_CH5_AL1_CTRL_MSB _u(31) 2627 #define DMA_CH5_AL1_CTRL_LSB _u(0) 2628 #define DMA_CH5_AL1_CTRL_ACCESS "RW" 2629 // ============================================================================= 2630 // Register : DMA_CH5_AL1_READ_ADDR 2631 // Description : Alias for channel 5 READ_ADDR register 2632 #define DMA_CH5_AL1_READ_ADDR_OFFSET _u(0x00000154) 2633 #define DMA_CH5_AL1_READ_ADDR_BITS _u(0xffffffff) 2634 #define DMA_CH5_AL1_READ_ADDR_RESET "-" 2635 #define DMA_CH5_AL1_READ_ADDR_MSB _u(31) 2636 #define DMA_CH5_AL1_READ_ADDR_LSB _u(0) 2637 #define DMA_CH5_AL1_READ_ADDR_ACCESS "RW" 2638 // ============================================================================= 2639 // Register : DMA_CH5_AL1_WRITE_ADDR 2640 // Description : Alias for channel 5 WRITE_ADDR register 2641 #define DMA_CH5_AL1_WRITE_ADDR_OFFSET _u(0x00000158) 2642 #define DMA_CH5_AL1_WRITE_ADDR_BITS _u(0xffffffff) 2643 #define DMA_CH5_AL1_WRITE_ADDR_RESET "-" 2644 #define DMA_CH5_AL1_WRITE_ADDR_MSB _u(31) 2645 #define DMA_CH5_AL1_WRITE_ADDR_LSB _u(0) 2646 #define DMA_CH5_AL1_WRITE_ADDR_ACCESS "RW" 2647 // ============================================================================= 2648 // Register : DMA_CH5_AL1_TRANS_COUNT_TRIG 2649 // Description : Alias for channel 5 TRANS_COUNT register 2650 // This is a trigger register (0xc). Writing a nonzero value will 2651 // reload the channel counter and start the channel. 2652 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000015c) 2653 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 2654 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_RESET "-" 2655 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_MSB _u(31) 2656 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_LSB _u(0) 2657 #define DMA_CH5_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 2658 // ============================================================================= 2659 // Register : DMA_CH5_AL2_CTRL 2660 // Description : Alias for channel 5 CTRL register 2661 #define DMA_CH5_AL2_CTRL_OFFSET _u(0x00000160) 2662 #define DMA_CH5_AL2_CTRL_BITS _u(0xffffffff) 2663 #define DMA_CH5_AL2_CTRL_RESET "-" 2664 #define DMA_CH5_AL2_CTRL_MSB _u(31) 2665 #define DMA_CH5_AL2_CTRL_LSB _u(0) 2666 #define DMA_CH5_AL2_CTRL_ACCESS "RW" 2667 // ============================================================================= 2668 // Register : DMA_CH5_AL2_TRANS_COUNT 2669 // Description : Alias for channel 5 TRANS_COUNT register 2670 #define DMA_CH5_AL2_TRANS_COUNT_OFFSET _u(0x00000164) 2671 #define DMA_CH5_AL2_TRANS_COUNT_BITS _u(0xffffffff) 2672 #define DMA_CH5_AL2_TRANS_COUNT_RESET "-" 2673 #define DMA_CH5_AL2_TRANS_COUNT_MSB _u(31) 2674 #define DMA_CH5_AL2_TRANS_COUNT_LSB _u(0) 2675 #define DMA_CH5_AL2_TRANS_COUNT_ACCESS "RW" 2676 // ============================================================================= 2677 // Register : DMA_CH5_AL2_READ_ADDR 2678 // Description : Alias for channel 5 READ_ADDR register 2679 #define DMA_CH5_AL2_READ_ADDR_OFFSET _u(0x00000168) 2680 #define DMA_CH5_AL2_READ_ADDR_BITS _u(0xffffffff) 2681 #define DMA_CH5_AL2_READ_ADDR_RESET "-" 2682 #define DMA_CH5_AL2_READ_ADDR_MSB _u(31) 2683 #define DMA_CH5_AL2_READ_ADDR_LSB _u(0) 2684 #define DMA_CH5_AL2_READ_ADDR_ACCESS "RW" 2685 // ============================================================================= 2686 // Register : DMA_CH5_AL2_WRITE_ADDR_TRIG 2687 // Description : Alias for channel 5 WRITE_ADDR register 2688 // This is a trigger register (0xc). Writing a nonzero value will 2689 // reload the channel counter and start the channel. 2690 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000016c) 2691 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 2692 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_RESET "-" 2693 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_MSB _u(31) 2694 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_LSB _u(0) 2695 #define DMA_CH5_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 2696 // ============================================================================= 2697 // Register : DMA_CH5_AL3_CTRL 2698 // Description : Alias for channel 5 CTRL register 2699 #define DMA_CH5_AL3_CTRL_OFFSET _u(0x00000170) 2700 #define DMA_CH5_AL3_CTRL_BITS _u(0xffffffff) 2701 #define DMA_CH5_AL3_CTRL_RESET "-" 2702 #define DMA_CH5_AL3_CTRL_MSB _u(31) 2703 #define DMA_CH5_AL3_CTRL_LSB _u(0) 2704 #define DMA_CH5_AL3_CTRL_ACCESS "RW" 2705 // ============================================================================= 2706 // Register : DMA_CH5_AL3_WRITE_ADDR 2707 // Description : Alias for channel 5 WRITE_ADDR register 2708 #define DMA_CH5_AL3_WRITE_ADDR_OFFSET _u(0x00000174) 2709 #define DMA_CH5_AL3_WRITE_ADDR_BITS _u(0xffffffff) 2710 #define DMA_CH5_AL3_WRITE_ADDR_RESET "-" 2711 #define DMA_CH5_AL3_WRITE_ADDR_MSB _u(31) 2712 #define DMA_CH5_AL3_WRITE_ADDR_LSB _u(0) 2713 #define DMA_CH5_AL3_WRITE_ADDR_ACCESS "RW" 2714 // ============================================================================= 2715 // Register : DMA_CH5_AL3_TRANS_COUNT 2716 // Description : Alias for channel 5 TRANS_COUNT register 2717 #define DMA_CH5_AL3_TRANS_COUNT_OFFSET _u(0x00000178) 2718 #define DMA_CH5_AL3_TRANS_COUNT_BITS _u(0xffffffff) 2719 #define DMA_CH5_AL3_TRANS_COUNT_RESET "-" 2720 #define DMA_CH5_AL3_TRANS_COUNT_MSB _u(31) 2721 #define DMA_CH5_AL3_TRANS_COUNT_LSB _u(0) 2722 #define DMA_CH5_AL3_TRANS_COUNT_ACCESS "RW" 2723 // ============================================================================= 2724 // Register : DMA_CH5_AL3_READ_ADDR_TRIG 2725 // Description : Alias for channel 5 READ_ADDR register 2726 // This is a trigger register (0xc). Writing a nonzero value will 2727 // reload the channel counter and start the channel. 2728 #define DMA_CH5_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000017c) 2729 #define DMA_CH5_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 2730 #define DMA_CH5_AL3_READ_ADDR_TRIG_RESET "-" 2731 #define DMA_CH5_AL3_READ_ADDR_TRIG_MSB _u(31) 2732 #define DMA_CH5_AL3_READ_ADDR_TRIG_LSB _u(0) 2733 #define DMA_CH5_AL3_READ_ADDR_TRIG_ACCESS "RW" 2734 // ============================================================================= 2735 // Register : DMA_CH6_READ_ADDR 2736 // Description : DMA Channel 6 Read Address pointer 2737 // This register updates automatically each time a read completes. 2738 // The current value is the next address to be read by this 2739 // channel. 2740 #define DMA_CH6_READ_ADDR_OFFSET _u(0x00000180) 2741 #define DMA_CH6_READ_ADDR_BITS _u(0xffffffff) 2742 #define DMA_CH6_READ_ADDR_RESET _u(0x00000000) 2743 #define DMA_CH6_READ_ADDR_MSB _u(31) 2744 #define DMA_CH6_READ_ADDR_LSB _u(0) 2745 #define DMA_CH6_READ_ADDR_ACCESS "RW" 2746 // ============================================================================= 2747 // Register : DMA_CH6_WRITE_ADDR 2748 // Description : DMA Channel 6 Write Address pointer 2749 // This register updates automatically each time a write 2750 // completes. The current value is the next address to be written 2751 // by this channel. 2752 #define DMA_CH6_WRITE_ADDR_OFFSET _u(0x00000184) 2753 #define DMA_CH6_WRITE_ADDR_BITS _u(0xffffffff) 2754 #define DMA_CH6_WRITE_ADDR_RESET _u(0x00000000) 2755 #define DMA_CH6_WRITE_ADDR_MSB _u(31) 2756 #define DMA_CH6_WRITE_ADDR_LSB _u(0) 2757 #define DMA_CH6_WRITE_ADDR_ACCESS "RW" 2758 // ============================================================================= 2759 // Register : DMA_CH6_TRANS_COUNT 2760 // Description : DMA Channel 6 Transfer Count 2761 #define DMA_CH6_TRANS_COUNT_OFFSET _u(0x00000188) 2762 #define DMA_CH6_TRANS_COUNT_BITS _u(0xffffffff) 2763 #define DMA_CH6_TRANS_COUNT_RESET _u(0x00000000) 2764 // ----------------------------------------------------------------------------- 2765 // Field : DMA_CH6_TRANS_COUNT_MODE 2766 // Description : When MODE is 0x0, the transfer count decrements with each 2767 // transfer until 0, and then the channel triggers the next 2768 // channel indicated by CTRL_CHAIN_TO. 2769 // 2770 // When MODE is 0x1, the transfer count decrements with each 2771 // transfer until 0, and then the channel re-triggers itself, in 2772 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 2773 // useful for e.g. an endless ring-buffer DMA with periodic 2774 // interrupts. 2775 // 2776 // When MODE is 0xf, the transfer count does not decrement. The 2777 // DMA channel performs an endless sequence of transfers, never 2778 // triggering other channels or raising interrupts, until an ABORT 2779 // is raised. 2780 // 2781 // All other values are reserved. 2782 // 0x0 -> NORMAL 2783 // 0x1 -> TRIGGER_SELF 2784 // 0xf -> ENDLESS 2785 #define DMA_CH6_TRANS_COUNT_MODE_RESET _u(0x0) 2786 #define DMA_CH6_TRANS_COUNT_MODE_BITS _u(0xf0000000) 2787 #define DMA_CH6_TRANS_COUNT_MODE_MSB _u(31) 2788 #define DMA_CH6_TRANS_COUNT_MODE_LSB _u(28) 2789 #define DMA_CH6_TRANS_COUNT_MODE_ACCESS "RW" 2790 #define DMA_CH6_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 2791 #define DMA_CH6_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 2792 #define DMA_CH6_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 2793 // ----------------------------------------------------------------------------- 2794 // Field : DMA_CH6_TRANS_COUNT_COUNT 2795 // Description : 28-bit transfer count (256 million transfers maximum). 2796 // 2797 // Program the number of bus transfers a channel will perform 2798 // before halting. Note that, if transfers are larger than one 2799 // byte in size, this is not equal to the number of bytes 2800 // transferred (see CTRL_DATA_SIZE). 2801 // 2802 // When the channel is active, reading this register shows the 2803 // number of transfers remaining, updating automatically each time 2804 // a write transfer completes. 2805 // 2806 // Writing this register sets the RELOAD value for the transfer 2807 // counter. Each time this channel is triggered, the RELOAD value 2808 // is copied into the live transfer counter. The channel can be 2809 // started multiple times, and will perform the same number of 2810 // transfers each time, as programmed by most recent write. 2811 // 2812 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 2813 // is used as a trigger, the written value is used immediately as 2814 // the length of the new transfer sequence, as well as being 2815 // written to RELOAD. 2816 #define DMA_CH6_TRANS_COUNT_COUNT_RESET _u(0x0000000) 2817 #define DMA_CH6_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 2818 #define DMA_CH6_TRANS_COUNT_COUNT_MSB _u(27) 2819 #define DMA_CH6_TRANS_COUNT_COUNT_LSB _u(0) 2820 #define DMA_CH6_TRANS_COUNT_COUNT_ACCESS "RW" 2821 // ============================================================================= 2822 // Register : DMA_CH6_CTRL_TRIG 2823 // Description : DMA Channel 6 Control and Status 2824 #define DMA_CH6_CTRL_TRIG_OFFSET _u(0x0000018c) 2825 #define DMA_CH6_CTRL_TRIG_BITS _u(0xe7ffffff) 2826 #define DMA_CH6_CTRL_TRIG_RESET _u(0x00000000) 2827 // ----------------------------------------------------------------------------- 2828 // Field : DMA_CH6_CTRL_TRIG_AHB_ERROR 2829 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 2830 // halts when it encounters any bus error, and always raises its 2831 // channel IRQ flag. 2832 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 2833 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 2834 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_MSB _u(31) 2835 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_LSB _u(31) 2836 #define DMA_CH6_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 2837 // ----------------------------------------------------------------------------- 2838 // Field : DMA_CH6_CTRL_TRIG_READ_ERROR 2839 // Description : If 1, the channel received a read bus error. Write one to 2840 // clear. 2841 // READ_ADDR shows the approximate address where the bus error was 2842 // encountered (will not be earlier, or more than 3 transfers 2843 // later) 2844 #define DMA_CH6_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 2845 #define DMA_CH6_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 2846 #define DMA_CH6_CTRL_TRIG_READ_ERROR_MSB _u(30) 2847 #define DMA_CH6_CTRL_TRIG_READ_ERROR_LSB _u(30) 2848 #define DMA_CH6_CTRL_TRIG_READ_ERROR_ACCESS "WC" 2849 // ----------------------------------------------------------------------------- 2850 // Field : DMA_CH6_CTRL_TRIG_WRITE_ERROR 2851 // Description : If 1, the channel received a write bus error. Write one to 2852 // clear. 2853 // WRITE_ADDR shows the approximate address where the bus error 2854 // was encountered (will not be earlier, or more than 5 transfers 2855 // later) 2856 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 2857 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 2858 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 2859 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 2860 #define DMA_CH6_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 2861 // ----------------------------------------------------------------------------- 2862 // Field : DMA_CH6_CTRL_TRIG_BUSY 2863 // Description : This flag goes high when the channel starts a new transfer 2864 // sequence, and low when the last transfer of that sequence 2865 // completes. Clearing EN while BUSY is high pauses the channel, 2866 // and BUSY will stay high while paused. 2867 // 2868 // To terminate a sequence early (and clear the BUSY flag), see 2869 // CHAN_ABORT. 2870 #define DMA_CH6_CTRL_TRIG_BUSY_RESET _u(0x0) 2871 #define DMA_CH6_CTRL_TRIG_BUSY_BITS _u(0x04000000) 2872 #define DMA_CH6_CTRL_TRIG_BUSY_MSB _u(26) 2873 #define DMA_CH6_CTRL_TRIG_BUSY_LSB _u(26) 2874 #define DMA_CH6_CTRL_TRIG_BUSY_ACCESS "RO" 2875 // ----------------------------------------------------------------------------- 2876 // Field : DMA_CH6_CTRL_TRIG_SNIFF_EN 2877 // Description : If 1, this channel's data transfers are visible to the sniff 2878 // hardware, and each transfer will advance the state of the 2879 // checksum. This only applies if the sniff hardware is enabled, 2880 // and has this channel selected. 2881 // 2882 // This allows checksum to be enabled or disabled on a per- 2883 // control- block basis. 2884 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 2885 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 2886 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_MSB _u(25) 2887 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_LSB _u(25) 2888 #define DMA_CH6_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 2889 // ----------------------------------------------------------------------------- 2890 // Field : DMA_CH6_CTRL_TRIG_BSWAP 2891 // Description : Apply byte-swap transformation to DMA data. 2892 // For byte data, this has no effect. For halfword data, the two 2893 // bytes of each halfword are swapped. For word data, the four 2894 // bytes of each word are swapped to reverse order. 2895 #define DMA_CH6_CTRL_TRIG_BSWAP_RESET _u(0x0) 2896 #define DMA_CH6_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 2897 #define DMA_CH6_CTRL_TRIG_BSWAP_MSB _u(24) 2898 #define DMA_CH6_CTRL_TRIG_BSWAP_LSB _u(24) 2899 #define DMA_CH6_CTRL_TRIG_BSWAP_ACCESS "RW" 2900 // ----------------------------------------------------------------------------- 2901 // Field : DMA_CH6_CTRL_TRIG_IRQ_QUIET 2902 // Description : In QUIET mode, the channel does not generate IRQs at the end of 2903 // every transfer block. Instead, an IRQ is raised when NULL is 2904 // written to a trigger register, indicating the end of a control 2905 // block chain. 2906 // 2907 // This reduces the number of interrupts to be serviced by the CPU 2908 // when transferring a DMA chain of many small control blocks. 2909 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 2910 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 2911 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 2912 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 2913 #define DMA_CH6_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 2914 // ----------------------------------------------------------------------------- 2915 // Field : DMA_CH6_CTRL_TRIG_TREQ_SEL 2916 // Description : Select a Transfer Request signal. 2917 // The channel uses the transfer request signal to pace its data 2918 // transfer rate. Sources for TREQ signals are internal (TIMERS) 2919 // or external (DREQ, a Data Request from the system). 2920 // 0x0 to 0x3a -> select DREQ n as TREQ 2921 // 0x3b -> Select Timer 0 as TREQ 2922 // 0x3c -> Select Timer 1 as TREQ 2923 // 0x3d -> Select Timer 2 as TREQ (Optional) 2924 // 0x3e -> Select Timer 3 as TREQ (Optional) 2925 // 0x3f -> Permanent request, for unpaced transfers. 2926 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 2927 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 2928 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_MSB _u(22) 2929 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_LSB _u(17) 2930 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 2931 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 2932 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 2933 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 2934 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 2935 #define DMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 2936 // ----------------------------------------------------------------------------- 2937 // Field : DMA_CH6_CTRL_TRIG_CHAIN_TO 2938 // Description : When this channel completes, it will trigger the channel 2939 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 2940 // channel)_. 2941 // 2942 // Note this field resets to 0, so channels 1 and above will chain 2943 // to channel 0 by default. Set this field to avoid this 2944 // behaviour. 2945 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 2946 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 2947 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_MSB _u(16) 2948 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_LSB _u(13) 2949 #define DMA_CH6_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 2950 // ----------------------------------------------------------------------------- 2951 // Field : DMA_CH6_CTRL_TRIG_RING_SEL 2952 // Description : Select whether RING_SIZE applies to read or write addresses. 2953 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 2954 // boundary. If 1, write addresses are wrapped. 2955 #define DMA_CH6_CTRL_TRIG_RING_SEL_RESET _u(0x0) 2956 #define DMA_CH6_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 2957 #define DMA_CH6_CTRL_TRIG_RING_SEL_MSB _u(12) 2958 #define DMA_CH6_CTRL_TRIG_RING_SEL_LSB _u(12) 2959 #define DMA_CH6_CTRL_TRIG_RING_SEL_ACCESS "RW" 2960 // ----------------------------------------------------------------------------- 2961 // Field : DMA_CH6_CTRL_TRIG_RING_SIZE 2962 // Description : Size of address wrap region. If 0, don't wrap. For values n > 2963 // 0, only the lower n bits of the address will change. This wraps 2964 // the address on a (1 << n) byte boundary, facilitating access to 2965 // naturally-aligned ring buffers. 2966 // 2967 // Ring sizes between 2 and 32768 bytes are possible. This can 2968 // apply to either read or write addresses, based on value of 2969 // RING_SEL. 2970 // 0x0 -> RING_NONE 2971 #define DMA_CH6_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 2972 #define DMA_CH6_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 2973 #define DMA_CH6_CTRL_TRIG_RING_SIZE_MSB _u(11) 2974 #define DMA_CH6_CTRL_TRIG_RING_SIZE_LSB _u(8) 2975 #define DMA_CH6_CTRL_TRIG_RING_SIZE_ACCESS "RW" 2976 #define DMA_CH6_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 2977 // ----------------------------------------------------------------------------- 2978 // Field : DMA_CH6_CTRL_TRIG_INCR_WRITE_REV 2979 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 2980 // rather than incremented with each transfer. 2981 // 2982 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 2983 // causes the write address to be incremented by twice the 2984 // transfer size, i.e. skipping over alternate addresses. 2985 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 2986 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 2987 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 2988 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 2989 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 2990 // ----------------------------------------------------------------------------- 2991 // Field : DMA_CH6_CTRL_TRIG_INCR_WRITE 2992 // Description : If 1, the write address increments with each transfer. If 0, 2993 // each write is directed to the same, initial address. 2994 // 2995 // Generally this should be disabled for memory-to-peripheral 2996 // transfers. 2997 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 2998 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 2999 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_MSB _u(6) 3000 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_LSB _u(6) 3001 #define DMA_CH6_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 3002 // ----------------------------------------------------------------------------- 3003 // Field : DMA_CH6_CTRL_TRIG_INCR_READ_REV 3004 // Description : If 1, and INCR_READ is 1, the read address is decremented 3005 // rather than incremented with each transfer. 3006 // 3007 // If 1, and INCR_READ is 0, this otherwise-unused combination 3008 // causes the read address to be incremented by twice the transfer 3009 // size, i.e. skipping over alternate addresses. 3010 #define DMA_CH6_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 3011 #define DMA_CH6_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 3012 #define DMA_CH6_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 3013 #define DMA_CH6_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 3014 #define DMA_CH6_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 3015 // ----------------------------------------------------------------------------- 3016 // Field : DMA_CH6_CTRL_TRIG_INCR_READ 3017 // Description : If 1, the read address increments with each transfer. If 0, 3018 // each read is directed to the same, initial address. 3019 // 3020 // Generally this should be disabled for peripheral-to-memory 3021 // transfers. 3022 #define DMA_CH6_CTRL_TRIG_INCR_READ_RESET _u(0x0) 3023 #define DMA_CH6_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 3024 #define DMA_CH6_CTRL_TRIG_INCR_READ_MSB _u(4) 3025 #define DMA_CH6_CTRL_TRIG_INCR_READ_LSB _u(4) 3026 #define DMA_CH6_CTRL_TRIG_INCR_READ_ACCESS "RW" 3027 // ----------------------------------------------------------------------------- 3028 // Field : DMA_CH6_CTRL_TRIG_DATA_SIZE 3029 // Description : Set the size of each bus transfer (byte/halfword/word). 3030 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 3031 // with each transfer. 3032 // 0x0 -> SIZE_BYTE 3033 // 0x1 -> SIZE_HALFWORD 3034 // 0x2 -> SIZE_WORD 3035 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 3036 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 3037 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_MSB _u(3) 3038 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_LSB _u(2) 3039 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 3040 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 3041 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 3042 #define DMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 3043 // ----------------------------------------------------------------------------- 3044 // Field : DMA_CH6_CTRL_TRIG_HIGH_PRIORITY 3045 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 3046 // scheduling: in each scheduling round, all high priority 3047 // channels are considered first, and then only a single low 3048 // priority channel, before returning to the high priority 3049 // channels. 3050 // 3051 // This only affects the order in which the DMA schedules 3052 // channels. The DMA's bus priority is not changed. If the DMA is 3053 // not saturated then a low priority channel will see no loss of 3054 // throughput. 3055 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 3056 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 3057 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 3058 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 3059 #define DMA_CH6_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 3060 // ----------------------------------------------------------------------------- 3061 // Field : DMA_CH6_CTRL_TRIG_EN 3062 // Description : DMA Channel Enable. 3063 // When 1, the channel will respond to triggering events, which 3064 // will cause it to become BUSY and start transferring data. When 3065 // 0, the channel will ignore triggers, stop issuing transfers, 3066 // and pause the current transfer sequence (i.e. BUSY will remain 3067 // high if already high) 3068 #define DMA_CH6_CTRL_TRIG_EN_RESET _u(0x0) 3069 #define DMA_CH6_CTRL_TRIG_EN_BITS _u(0x00000001) 3070 #define DMA_CH6_CTRL_TRIG_EN_MSB _u(0) 3071 #define DMA_CH6_CTRL_TRIG_EN_LSB _u(0) 3072 #define DMA_CH6_CTRL_TRIG_EN_ACCESS "RW" 3073 // ============================================================================= 3074 // Register : DMA_CH6_AL1_CTRL 3075 // Description : Alias for channel 6 CTRL register 3076 #define DMA_CH6_AL1_CTRL_OFFSET _u(0x00000190) 3077 #define DMA_CH6_AL1_CTRL_BITS _u(0xffffffff) 3078 #define DMA_CH6_AL1_CTRL_RESET "-" 3079 #define DMA_CH6_AL1_CTRL_MSB _u(31) 3080 #define DMA_CH6_AL1_CTRL_LSB _u(0) 3081 #define DMA_CH6_AL1_CTRL_ACCESS "RW" 3082 // ============================================================================= 3083 // Register : DMA_CH6_AL1_READ_ADDR 3084 // Description : Alias for channel 6 READ_ADDR register 3085 #define DMA_CH6_AL1_READ_ADDR_OFFSET _u(0x00000194) 3086 #define DMA_CH6_AL1_READ_ADDR_BITS _u(0xffffffff) 3087 #define DMA_CH6_AL1_READ_ADDR_RESET "-" 3088 #define DMA_CH6_AL1_READ_ADDR_MSB _u(31) 3089 #define DMA_CH6_AL1_READ_ADDR_LSB _u(0) 3090 #define DMA_CH6_AL1_READ_ADDR_ACCESS "RW" 3091 // ============================================================================= 3092 // Register : DMA_CH6_AL1_WRITE_ADDR 3093 // Description : Alias for channel 6 WRITE_ADDR register 3094 #define DMA_CH6_AL1_WRITE_ADDR_OFFSET _u(0x00000198) 3095 #define DMA_CH6_AL1_WRITE_ADDR_BITS _u(0xffffffff) 3096 #define DMA_CH6_AL1_WRITE_ADDR_RESET "-" 3097 #define DMA_CH6_AL1_WRITE_ADDR_MSB _u(31) 3098 #define DMA_CH6_AL1_WRITE_ADDR_LSB _u(0) 3099 #define DMA_CH6_AL1_WRITE_ADDR_ACCESS "RW" 3100 // ============================================================================= 3101 // Register : DMA_CH6_AL1_TRANS_COUNT_TRIG 3102 // Description : Alias for channel 6 TRANS_COUNT register 3103 // This is a trigger register (0xc). Writing a nonzero value will 3104 // reload the channel counter and start the channel. 3105 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000019c) 3106 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 3107 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_RESET "-" 3108 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_MSB _u(31) 3109 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_LSB _u(0) 3110 #define DMA_CH6_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 3111 // ============================================================================= 3112 // Register : DMA_CH6_AL2_CTRL 3113 // Description : Alias for channel 6 CTRL register 3114 #define DMA_CH6_AL2_CTRL_OFFSET _u(0x000001a0) 3115 #define DMA_CH6_AL2_CTRL_BITS _u(0xffffffff) 3116 #define DMA_CH6_AL2_CTRL_RESET "-" 3117 #define DMA_CH6_AL2_CTRL_MSB _u(31) 3118 #define DMA_CH6_AL2_CTRL_LSB _u(0) 3119 #define DMA_CH6_AL2_CTRL_ACCESS "RW" 3120 // ============================================================================= 3121 // Register : DMA_CH6_AL2_TRANS_COUNT 3122 // Description : Alias for channel 6 TRANS_COUNT register 3123 #define DMA_CH6_AL2_TRANS_COUNT_OFFSET _u(0x000001a4) 3124 #define DMA_CH6_AL2_TRANS_COUNT_BITS _u(0xffffffff) 3125 #define DMA_CH6_AL2_TRANS_COUNT_RESET "-" 3126 #define DMA_CH6_AL2_TRANS_COUNT_MSB _u(31) 3127 #define DMA_CH6_AL2_TRANS_COUNT_LSB _u(0) 3128 #define DMA_CH6_AL2_TRANS_COUNT_ACCESS "RW" 3129 // ============================================================================= 3130 // Register : DMA_CH6_AL2_READ_ADDR 3131 // Description : Alias for channel 6 READ_ADDR register 3132 #define DMA_CH6_AL2_READ_ADDR_OFFSET _u(0x000001a8) 3133 #define DMA_CH6_AL2_READ_ADDR_BITS _u(0xffffffff) 3134 #define DMA_CH6_AL2_READ_ADDR_RESET "-" 3135 #define DMA_CH6_AL2_READ_ADDR_MSB _u(31) 3136 #define DMA_CH6_AL2_READ_ADDR_LSB _u(0) 3137 #define DMA_CH6_AL2_READ_ADDR_ACCESS "RW" 3138 // ============================================================================= 3139 // Register : DMA_CH6_AL2_WRITE_ADDR_TRIG 3140 // Description : Alias for channel 6 WRITE_ADDR register 3141 // This is a trigger register (0xc). Writing a nonzero value will 3142 // reload the channel counter and start the channel. 3143 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ac) 3144 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 3145 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_RESET "-" 3146 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_MSB _u(31) 3147 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_LSB _u(0) 3148 #define DMA_CH6_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 3149 // ============================================================================= 3150 // Register : DMA_CH6_AL3_CTRL 3151 // Description : Alias for channel 6 CTRL register 3152 #define DMA_CH6_AL3_CTRL_OFFSET _u(0x000001b0) 3153 #define DMA_CH6_AL3_CTRL_BITS _u(0xffffffff) 3154 #define DMA_CH6_AL3_CTRL_RESET "-" 3155 #define DMA_CH6_AL3_CTRL_MSB _u(31) 3156 #define DMA_CH6_AL3_CTRL_LSB _u(0) 3157 #define DMA_CH6_AL3_CTRL_ACCESS "RW" 3158 // ============================================================================= 3159 // Register : DMA_CH6_AL3_WRITE_ADDR 3160 // Description : Alias for channel 6 WRITE_ADDR register 3161 #define DMA_CH6_AL3_WRITE_ADDR_OFFSET _u(0x000001b4) 3162 #define DMA_CH6_AL3_WRITE_ADDR_BITS _u(0xffffffff) 3163 #define DMA_CH6_AL3_WRITE_ADDR_RESET "-" 3164 #define DMA_CH6_AL3_WRITE_ADDR_MSB _u(31) 3165 #define DMA_CH6_AL3_WRITE_ADDR_LSB _u(0) 3166 #define DMA_CH6_AL3_WRITE_ADDR_ACCESS "RW" 3167 // ============================================================================= 3168 // Register : DMA_CH6_AL3_TRANS_COUNT 3169 // Description : Alias for channel 6 TRANS_COUNT register 3170 #define DMA_CH6_AL3_TRANS_COUNT_OFFSET _u(0x000001b8) 3171 #define DMA_CH6_AL3_TRANS_COUNT_BITS _u(0xffffffff) 3172 #define DMA_CH6_AL3_TRANS_COUNT_RESET "-" 3173 #define DMA_CH6_AL3_TRANS_COUNT_MSB _u(31) 3174 #define DMA_CH6_AL3_TRANS_COUNT_LSB _u(0) 3175 #define DMA_CH6_AL3_TRANS_COUNT_ACCESS "RW" 3176 // ============================================================================= 3177 // Register : DMA_CH6_AL3_READ_ADDR_TRIG 3178 // Description : Alias for channel 6 READ_ADDR register 3179 // This is a trigger register (0xc). Writing a nonzero value will 3180 // reload the channel counter and start the channel. 3181 #define DMA_CH6_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001bc) 3182 #define DMA_CH6_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 3183 #define DMA_CH6_AL3_READ_ADDR_TRIG_RESET "-" 3184 #define DMA_CH6_AL3_READ_ADDR_TRIG_MSB _u(31) 3185 #define DMA_CH6_AL3_READ_ADDR_TRIG_LSB _u(0) 3186 #define DMA_CH6_AL3_READ_ADDR_TRIG_ACCESS "RW" 3187 // ============================================================================= 3188 // Register : DMA_CH7_READ_ADDR 3189 // Description : DMA Channel 7 Read Address pointer 3190 // This register updates automatically each time a read completes. 3191 // The current value is the next address to be read by this 3192 // channel. 3193 #define DMA_CH7_READ_ADDR_OFFSET _u(0x000001c0) 3194 #define DMA_CH7_READ_ADDR_BITS _u(0xffffffff) 3195 #define DMA_CH7_READ_ADDR_RESET _u(0x00000000) 3196 #define DMA_CH7_READ_ADDR_MSB _u(31) 3197 #define DMA_CH7_READ_ADDR_LSB _u(0) 3198 #define DMA_CH7_READ_ADDR_ACCESS "RW" 3199 // ============================================================================= 3200 // Register : DMA_CH7_WRITE_ADDR 3201 // Description : DMA Channel 7 Write Address pointer 3202 // This register updates automatically each time a write 3203 // completes. The current value is the next address to be written 3204 // by this channel. 3205 #define DMA_CH7_WRITE_ADDR_OFFSET _u(0x000001c4) 3206 #define DMA_CH7_WRITE_ADDR_BITS _u(0xffffffff) 3207 #define DMA_CH7_WRITE_ADDR_RESET _u(0x00000000) 3208 #define DMA_CH7_WRITE_ADDR_MSB _u(31) 3209 #define DMA_CH7_WRITE_ADDR_LSB _u(0) 3210 #define DMA_CH7_WRITE_ADDR_ACCESS "RW" 3211 // ============================================================================= 3212 // Register : DMA_CH7_TRANS_COUNT 3213 // Description : DMA Channel 7 Transfer Count 3214 #define DMA_CH7_TRANS_COUNT_OFFSET _u(0x000001c8) 3215 #define DMA_CH7_TRANS_COUNT_BITS _u(0xffffffff) 3216 #define DMA_CH7_TRANS_COUNT_RESET _u(0x00000000) 3217 // ----------------------------------------------------------------------------- 3218 // Field : DMA_CH7_TRANS_COUNT_MODE 3219 // Description : When MODE is 0x0, the transfer count decrements with each 3220 // transfer until 0, and then the channel triggers the next 3221 // channel indicated by CTRL_CHAIN_TO. 3222 // 3223 // When MODE is 0x1, the transfer count decrements with each 3224 // transfer until 0, and then the channel re-triggers itself, in 3225 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 3226 // useful for e.g. an endless ring-buffer DMA with periodic 3227 // interrupts. 3228 // 3229 // When MODE is 0xf, the transfer count does not decrement. The 3230 // DMA channel performs an endless sequence of transfers, never 3231 // triggering other channels or raising interrupts, until an ABORT 3232 // is raised. 3233 // 3234 // All other values are reserved. 3235 // 0x0 -> NORMAL 3236 // 0x1 -> TRIGGER_SELF 3237 // 0xf -> ENDLESS 3238 #define DMA_CH7_TRANS_COUNT_MODE_RESET _u(0x0) 3239 #define DMA_CH7_TRANS_COUNT_MODE_BITS _u(0xf0000000) 3240 #define DMA_CH7_TRANS_COUNT_MODE_MSB _u(31) 3241 #define DMA_CH7_TRANS_COUNT_MODE_LSB _u(28) 3242 #define DMA_CH7_TRANS_COUNT_MODE_ACCESS "RW" 3243 #define DMA_CH7_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 3244 #define DMA_CH7_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 3245 #define DMA_CH7_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 3246 // ----------------------------------------------------------------------------- 3247 // Field : DMA_CH7_TRANS_COUNT_COUNT 3248 // Description : 28-bit transfer count (256 million transfers maximum). 3249 // 3250 // Program the number of bus transfers a channel will perform 3251 // before halting. Note that, if transfers are larger than one 3252 // byte in size, this is not equal to the number of bytes 3253 // transferred (see CTRL_DATA_SIZE). 3254 // 3255 // When the channel is active, reading this register shows the 3256 // number of transfers remaining, updating automatically each time 3257 // a write transfer completes. 3258 // 3259 // Writing this register sets the RELOAD value for the transfer 3260 // counter. Each time this channel is triggered, the RELOAD value 3261 // is copied into the live transfer counter. The channel can be 3262 // started multiple times, and will perform the same number of 3263 // transfers each time, as programmed by most recent write. 3264 // 3265 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 3266 // is used as a trigger, the written value is used immediately as 3267 // the length of the new transfer sequence, as well as being 3268 // written to RELOAD. 3269 #define DMA_CH7_TRANS_COUNT_COUNT_RESET _u(0x0000000) 3270 #define DMA_CH7_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 3271 #define DMA_CH7_TRANS_COUNT_COUNT_MSB _u(27) 3272 #define DMA_CH7_TRANS_COUNT_COUNT_LSB _u(0) 3273 #define DMA_CH7_TRANS_COUNT_COUNT_ACCESS "RW" 3274 // ============================================================================= 3275 // Register : DMA_CH7_CTRL_TRIG 3276 // Description : DMA Channel 7 Control and Status 3277 #define DMA_CH7_CTRL_TRIG_OFFSET _u(0x000001cc) 3278 #define DMA_CH7_CTRL_TRIG_BITS _u(0xe7ffffff) 3279 #define DMA_CH7_CTRL_TRIG_RESET _u(0x00000000) 3280 // ----------------------------------------------------------------------------- 3281 // Field : DMA_CH7_CTRL_TRIG_AHB_ERROR 3282 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 3283 // halts when it encounters any bus error, and always raises its 3284 // channel IRQ flag. 3285 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 3286 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 3287 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_MSB _u(31) 3288 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_LSB _u(31) 3289 #define DMA_CH7_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 3290 // ----------------------------------------------------------------------------- 3291 // Field : DMA_CH7_CTRL_TRIG_READ_ERROR 3292 // Description : If 1, the channel received a read bus error. Write one to 3293 // clear. 3294 // READ_ADDR shows the approximate address where the bus error was 3295 // encountered (will not be earlier, or more than 3 transfers 3296 // later) 3297 #define DMA_CH7_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 3298 #define DMA_CH7_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 3299 #define DMA_CH7_CTRL_TRIG_READ_ERROR_MSB _u(30) 3300 #define DMA_CH7_CTRL_TRIG_READ_ERROR_LSB _u(30) 3301 #define DMA_CH7_CTRL_TRIG_READ_ERROR_ACCESS "WC" 3302 // ----------------------------------------------------------------------------- 3303 // Field : DMA_CH7_CTRL_TRIG_WRITE_ERROR 3304 // Description : If 1, the channel received a write bus error. Write one to 3305 // clear. 3306 // WRITE_ADDR shows the approximate address where the bus error 3307 // was encountered (will not be earlier, or more than 5 transfers 3308 // later) 3309 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 3310 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 3311 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 3312 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 3313 #define DMA_CH7_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 3314 // ----------------------------------------------------------------------------- 3315 // Field : DMA_CH7_CTRL_TRIG_BUSY 3316 // Description : This flag goes high when the channel starts a new transfer 3317 // sequence, and low when the last transfer of that sequence 3318 // completes. Clearing EN while BUSY is high pauses the channel, 3319 // and BUSY will stay high while paused. 3320 // 3321 // To terminate a sequence early (and clear the BUSY flag), see 3322 // CHAN_ABORT. 3323 #define DMA_CH7_CTRL_TRIG_BUSY_RESET _u(0x0) 3324 #define DMA_CH7_CTRL_TRIG_BUSY_BITS _u(0x04000000) 3325 #define DMA_CH7_CTRL_TRIG_BUSY_MSB _u(26) 3326 #define DMA_CH7_CTRL_TRIG_BUSY_LSB _u(26) 3327 #define DMA_CH7_CTRL_TRIG_BUSY_ACCESS "RO" 3328 // ----------------------------------------------------------------------------- 3329 // Field : DMA_CH7_CTRL_TRIG_SNIFF_EN 3330 // Description : If 1, this channel's data transfers are visible to the sniff 3331 // hardware, and each transfer will advance the state of the 3332 // checksum. This only applies if the sniff hardware is enabled, 3333 // and has this channel selected. 3334 // 3335 // This allows checksum to be enabled or disabled on a per- 3336 // control- block basis. 3337 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 3338 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 3339 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_MSB _u(25) 3340 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_LSB _u(25) 3341 #define DMA_CH7_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 3342 // ----------------------------------------------------------------------------- 3343 // Field : DMA_CH7_CTRL_TRIG_BSWAP 3344 // Description : Apply byte-swap transformation to DMA data. 3345 // For byte data, this has no effect. For halfword data, the two 3346 // bytes of each halfword are swapped. For word data, the four 3347 // bytes of each word are swapped to reverse order. 3348 #define DMA_CH7_CTRL_TRIG_BSWAP_RESET _u(0x0) 3349 #define DMA_CH7_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 3350 #define DMA_CH7_CTRL_TRIG_BSWAP_MSB _u(24) 3351 #define DMA_CH7_CTRL_TRIG_BSWAP_LSB _u(24) 3352 #define DMA_CH7_CTRL_TRIG_BSWAP_ACCESS "RW" 3353 // ----------------------------------------------------------------------------- 3354 // Field : DMA_CH7_CTRL_TRIG_IRQ_QUIET 3355 // Description : In QUIET mode, the channel does not generate IRQs at the end of 3356 // every transfer block. Instead, an IRQ is raised when NULL is 3357 // written to a trigger register, indicating the end of a control 3358 // block chain. 3359 // 3360 // This reduces the number of interrupts to be serviced by the CPU 3361 // when transferring a DMA chain of many small control blocks. 3362 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 3363 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 3364 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 3365 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 3366 #define DMA_CH7_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 3367 // ----------------------------------------------------------------------------- 3368 // Field : DMA_CH7_CTRL_TRIG_TREQ_SEL 3369 // Description : Select a Transfer Request signal. 3370 // The channel uses the transfer request signal to pace its data 3371 // transfer rate. Sources for TREQ signals are internal (TIMERS) 3372 // or external (DREQ, a Data Request from the system). 3373 // 0x0 to 0x3a -> select DREQ n as TREQ 3374 // 0x3b -> Select Timer 0 as TREQ 3375 // 0x3c -> Select Timer 1 as TREQ 3376 // 0x3d -> Select Timer 2 as TREQ (Optional) 3377 // 0x3e -> Select Timer 3 as TREQ (Optional) 3378 // 0x3f -> Permanent request, for unpaced transfers. 3379 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 3380 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 3381 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_MSB _u(22) 3382 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_LSB _u(17) 3383 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 3384 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 3385 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 3386 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 3387 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 3388 #define DMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 3389 // ----------------------------------------------------------------------------- 3390 // Field : DMA_CH7_CTRL_TRIG_CHAIN_TO 3391 // Description : When this channel completes, it will trigger the channel 3392 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 3393 // channel)_. 3394 // 3395 // Note this field resets to 0, so channels 1 and above will chain 3396 // to channel 0 by default. Set this field to avoid this 3397 // behaviour. 3398 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 3399 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 3400 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_MSB _u(16) 3401 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_LSB _u(13) 3402 #define DMA_CH7_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 3403 // ----------------------------------------------------------------------------- 3404 // Field : DMA_CH7_CTRL_TRIG_RING_SEL 3405 // Description : Select whether RING_SIZE applies to read or write addresses. 3406 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 3407 // boundary. If 1, write addresses are wrapped. 3408 #define DMA_CH7_CTRL_TRIG_RING_SEL_RESET _u(0x0) 3409 #define DMA_CH7_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 3410 #define DMA_CH7_CTRL_TRIG_RING_SEL_MSB _u(12) 3411 #define DMA_CH7_CTRL_TRIG_RING_SEL_LSB _u(12) 3412 #define DMA_CH7_CTRL_TRIG_RING_SEL_ACCESS "RW" 3413 // ----------------------------------------------------------------------------- 3414 // Field : DMA_CH7_CTRL_TRIG_RING_SIZE 3415 // Description : Size of address wrap region. If 0, don't wrap. For values n > 3416 // 0, only the lower n bits of the address will change. This wraps 3417 // the address on a (1 << n) byte boundary, facilitating access to 3418 // naturally-aligned ring buffers. 3419 // 3420 // Ring sizes between 2 and 32768 bytes are possible. This can 3421 // apply to either read or write addresses, based on value of 3422 // RING_SEL. 3423 // 0x0 -> RING_NONE 3424 #define DMA_CH7_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 3425 #define DMA_CH7_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 3426 #define DMA_CH7_CTRL_TRIG_RING_SIZE_MSB _u(11) 3427 #define DMA_CH7_CTRL_TRIG_RING_SIZE_LSB _u(8) 3428 #define DMA_CH7_CTRL_TRIG_RING_SIZE_ACCESS "RW" 3429 #define DMA_CH7_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 3430 // ----------------------------------------------------------------------------- 3431 // Field : DMA_CH7_CTRL_TRIG_INCR_WRITE_REV 3432 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 3433 // rather than incremented with each transfer. 3434 // 3435 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 3436 // causes the write address to be incremented by twice the 3437 // transfer size, i.e. skipping over alternate addresses. 3438 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 3439 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 3440 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 3441 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 3442 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 3443 // ----------------------------------------------------------------------------- 3444 // Field : DMA_CH7_CTRL_TRIG_INCR_WRITE 3445 // Description : If 1, the write address increments with each transfer. If 0, 3446 // each write is directed to the same, initial address. 3447 // 3448 // Generally this should be disabled for memory-to-peripheral 3449 // transfers. 3450 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 3451 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 3452 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_MSB _u(6) 3453 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_LSB _u(6) 3454 #define DMA_CH7_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 3455 // ----------------------------------------------------------------------------- 3456 // Field : DMA_CH7_CTRL_TRIG_INCR_READ_REV 3457 // Description : If 1, and INCR_READ is 1, the read address is decremented 3458 // rather than incremented with each transfer. 3459 // 3460 // If 1, and INCR_READ is 0, this otherwise-unused combination 3461 // causes the read address to be incremented by twice the transfer 3462 // size, i.e. skipping over alternate addresses. 3463 #define DMA_CH7_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 3464 #define DMA_CH7_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 3465 #define DMA_CH7_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 3466 #define DMA_CH7_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 3467 #define DMA_CH7_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 3468 // ----------------------------------------------------------------------------- 3469 // Field : DMA_CH7_CTRL_TRIG_INCR_READ 3470 // Description : If 1, the read address increments with each transfer. If 0, 3471 // each read is directed to the same, initial address. 3472 // 3473 // Generally this should be disabled for peripheral-to-memory 3474 // transfers. 3475 #define DMA_CH7_CTRL_TRIG_INCR_READ_RESET _u(0x0) 3476 #define DMA_CH7_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 3477 #define DMA_CH7_CTRL_TRIG_INCR_READ_MSB _u(4) 3478 #define DMA_CH7_CTRL_TRIG_INCR_READ_LSB _u(4) 3479 #define DMA_CH7_CTRL_TRIG_INCR_READ_ACCESS "RW" 3480 // ----------------------------------------------------------------------------- 3481 // Field : DMA_CH7_CTRL_TRIG_DATA_SIZE 3482 // Description : Set the size of each bus transfer (byte/halfword/word). 3483 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 3484 // with each transfer. 3485 // 0x0 -> SIZE_BYTE 3486 // 0x1 -> SIZE_HALFWORD 3487 // 0x2 -> SIZE_WORD 3488 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 3489 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 3490 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_MSB _u(3) 3491 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_LSB _u(2) 3492 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 3493 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 3494 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 3495 #define DMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 3496 // ----------------------------------------------------------------------------- 3497 // Field : DMA_CH7_CTRL_TRIG_HIGH_PRIORITY 3498 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 3499 // scheduling: in each scheduling round, all high priority 3500 // channels are considered first, and then only a single low 3501 // priority channel, before returning to the high priority 3502 // channels. 3503 // 3504 // This only affects the order in which the DMA schedules 3505 // channels. The DMA's bus priority is not changed. If the DMA is 3506 // not saturated then a low priority channel will see no loss of 3507 // throughput. 3508 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 3509 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 3510 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 3511 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 3512 #define DMA_CH7_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 3513 // ----------------------------------------------------------------------------- 3514 // Field : DMA_CH7_CTRL_TRIG_EN 3515 // Description : DMA Channel Enable. 3516 // When 1, the channel will respond to triggering events, which 3517 // will cause it to become BUSY and start transferring data. When 3518 // 0, the channel will ignore triggers, stop issuing transfers, 3519 // and pause the current transfer sequence (i.e. BUSY will remain 3520 // high if already high) 3521 #define DMA_CH7_CTRL_TRIG_EN_RESET _u(0x0) 3522 #define DMA_CH7_CTRL_TRIG_EN_BITS _u(0x00000001) 3523 #define DMA_CH7_CTRL_TRIG_EN_MSB _u(0) 3524 #define DMA_CH7_CTRL_TRIG_EN_LSB _u(0) 3525 #define DMA_CH7_CTRL_TRIG_EN_ACCESS "RW" 3526 // ============================================================================= 3527 // Register : DMA_CH7_AL1_CTRL 3528 // Description : Alias for channel 7 CTRL register 3529 #define DMA_CH7_AL1_CTRL_OFFSET _u(0x000001d0) 3530 #define DMA_CH7_AL1_CTRL_BITS _u(0xffffffff) 3531 #define DMA_CH7_AL1_CTRL_RESET "-" 3532 #define DMA_CH7_AL1_CTRL_MSB _u(31) 3533 #define DMA_CH7_AL1_CTRL_LSB _u(0) 3534 #define DMA_CH7_AL1_CTRL_ACCESS "RW" 3535 // ============================================================================= 3536 // Register : DMA_CH7_AL1_READ_ADDR 3537 // Description : Alias for channel 7 READ_ADDR register 3538 #define DMA_CH7_AL1_READ_ADDR_OFFSET _u(0x000001d4) 3539 #define DMA_CH7_AL1_READ_ADDR_BITS _u(0xffffffff) 3540 #define DMA_CH7_AL1_READ_ADDR_RESET "-" 3541 #define DMA_CH7_AL1_READ_ADDR_MSB _u(31) 3542 #define DMA_CH7_AL1_READ_ADDR_LSB _u(0) 3543 #define DMA_CH7_AL1_READ_ADDR_ACCESS "RW" 3544 // ============================================================================= 3545 // Register : DMA_CH7_AL1_WRITE_ADDR 3546 // Description : Alias for channel 7 WRITE_ADDR register 3547 #define DMA_CH7_AL1_WRITE_ADDR_OFFSET _u(0x000001d8) 3548 #define DMA_CH7_AL1_WRITE_ADDR_BITS _u(0xffffffff) 3549 #define DMA_CH7_AL1_WRITE_ADDR_RESET "-" 3550 #define DMA_CH7_AL1_WRITE_ADDR_MSB _u(31) 3551 #define DMA_CH7_AL1_WRITE_ADDR_LSB _u(0) 3552 #define DMA_CH7_AL1_WRITE_ADDR_ACCESS "RW" 3553 // ============================================================================= 3554 // Register : DMA_CH7_AL1_TRANS_COUNT_TRIG 3555 // Description : Alias for channel 7 TRANS_COUNT register 3556 // This is a trigger register (0xc). Writing a nonzero value will 3557 // reload the channel counter and start the channel. 3558 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000001dc) 3559 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 3560 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_RESET "-" 3561 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_MSB _u(31) 3562 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_LSB _u(0) 3563 #define DMA_CH7_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 3564 // ============================================================================= 3565 // Register : DMA_CH7_AL2_CTRL 3566 // Description : Alias for channel 7 CTRL register 3567 #define DMA_CH7_AL2_CTRL_OFFSET _u(0x000001e0) 3568 #define DMA_CH7_AL2_CTRL_BITS _u(0xffffffff) 3569 #define DMA_CH7_AL2_CTRL_RESET "-" 3570 #define DMA_CH7_AL2_CTRL_MSB _u(31) 3571 #define DMA_CH7_AL2_CTRL_LSB _u(0) 3572 #define DMA_CH7_AL2_CTRL_ACCESS "RW" 3573 // ============================================================================= 3574 // Register : DMA_CH7_AL2_TRANS_COUNT 3575 // Description : Alias for channel 7 TRANS_COUNT register 3576 #define DMA_CH7_AL2_TRANS_COUNT_OFFSET _u(0x000001e4) 3577 #define DMA_CH7_AL2_TRANS_COUNT_BITS _u(0xffffffff) 3578 #define DMA_CH7_AL2_TRANS_COUNT_RESET "-" 3579 #define DMA_CH7_AL2_TRANS_COUNT_MSB _u(31) 3580 #define DMA_CH7_AL2_TRANS_COUNT_LSB _u(0) 3581 #define DMA_CH7_AL2_TRANS_COUNT_ACCESS "RW" 3582 // ============================================================================= 3583 // Register : DMA_CH7_AL2_READ_ADDR 3584 // Description : Alias for channel 7 READ_ADDR register 3585 #define DMA_CH7_AL2_READ_ADDR_OFFSET _u(0x000001e8) 3586 #define DMA_CH7_AL2_READ_ADDR_BITS _u(0xffffffff) 3587 #define DMA_CH7_AL2_READ_ADDR_RESET "-" 3588 #define DMA_CH7_AL2_READ_ADDR_MSB _u(31) 3589 #define DMA_CH7_AL2_READ_ADDR_LSB _u(0) 3590 #define DMA_CH7_AL2_READ_ADDR_ACCESS "RW" 3591 // ============================================================================= 3592 // Register : DMA_CH7_AL2_WRITE_ADDR_TRIG 3593 // Description : Alias for channel 7 WRITE_ADDR register 3594 // This is a trigger register (0xc). Writing a nonzero value will 3595 // reload the channel counter and start the channel. 3596 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000001ec) 3597 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 3598 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_RESET "-" 3599 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_MSB _u(31) 3600 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_LSB _u(0) 3601 #define DMA_CH7_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 3602 // ============================================================================= 3603 // Register : DMA_CH7_AL3_CTRL 3604 // Description : Alias for channel 7 CTRL register 3605 #define DMA_CH7_AL3_CTRL_OFFSET _u(0x000001f0) 3606 #define DMA_CH7_AL3_CTRL_BITS _u(0xffffffff) 3607 #define DMA_CH7_AL3_CTRL_RESET "-" 3608 #define DMA_CH7_AL3_CTRL_MSB _u(31) 3609 #define DMA_CH7_AL3_CTRL_LSB _u(0) 3610 #define DMA_CH7_AL3_CTRL_ACCESS "RW" 3611 // ============================================================================= 3612 // Register : DMA_CH7_AL3_WRITE_ADDR 3613 // Description : Alias for channel 7 WRITE_ADDR register 3614 #define DMA_CH7_AL3_WRITE_ADDR_OFFSET _u(0x000001f4) 3615 #define DMA_CH7_AL3_WRITE_ADDR_BITS _u(0xffffffff) 3616 #define DMA_CH7_AL3_WRITE_ADDR_RESET "-" 3617 #define DMA_CH7_AL3_WRITE_ADDR_MSB _u(31) 3618 #define DMA_CH7_AL3_WRITE_ADDR_LSB _u(0) 3619 #define DMA_CH7_AL3_WRITE_ADDR_ACCESS "RW" 3620 // ============================================================================= 3621 // Register : DMA_CH7_AL3_TRANS_COUNT 3622 // Description : Alias for channel 7 TRANS_COUNT register 3623 #define DMA_CH7_AL3_TRANS_COUNT_OFFSET _u(0x000001f8) 3624 #define DMA_CH7_AL3_TRANS_COUNT_BITS _u(0xffffffff) 3625 #define DMA_CH7_AL3_TRANS_COUNT_RESET "-" 3626 #define DMA_CH7_AL3_TRANS_COUNT_MSB _u(31) 3627 #define DMA_CH7_AL3_TRANS_COUNT_LSB _u(0) 3628 #define DMA_CH7_AL3_TRANS_COUNT_ACCESS "RW" 3629 // ============================================================================= 3630 // Register : DMA_CH7_AL3_READ_ADDR_TRIG 3631 // Description : Alias for channel 7 READ_ADDR register 3632 // This is a trigger register (0xc). Writing a nonzero value will 3633 // reload the channel counter and start the channel. 3634 #define DMA_CH7_AL3_READ_ADDR_TRIG_OFFSET _u(0x000001fc) 3635 #define DMA_CH7_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 3636 #define DMA_CH7_AL3_READ_ADDR_TRIG_RESET "-" 3637 #define DMA_CH7_AL3_READ_ADDR_TRIG_MSB _u(31) 3638 #define DMA_CH7_AL3_READ_ADDR_TRIG_LSB _u(0) 3639 #define DMA_CH7_AL3_READ_ADDR_TRIG_ACCESS "RW" 3640 // ============================================================================= 3641 // Register : DMA_CH8_READ_ADDR 3642 // Description : DMA Channel 8 Read Address pointer 3643 // This register updates automatically each time a read completes. 3644 // The current value is the next address to be read by this 3645 // channel. 3646 #define DMA_CH8_READ_ADDR_OFFSET _u(0x00000200) 3647 #define DMA_CH8_READ_ADDR_BITS _u(0xffffffff) 3648 #define DMA_CH8_READ_ADDR_RESET _u(0x00000000) 3649 #define DMA_CH8_READ_ADDR_MSB _u(31) 3650 #define DMA_CH8_READ_ADDR_LSB _u(0) 3651 #define DMA_CH8_READ_ADDR_ACCESS "RW" 3652 // ============================================================================= 3653 // Register : DMA_CH8_WRITE_ADDR 3654 // Description : DMA Channel 8 Write Address pointer 3655 // This register updates automatically each time a write 3656 // completes. The current value is the next address to be written 3657 // by this channel. 3658 #define DMA_CH8_WRITE_ADDR_OFFSET _u(0x00000204) 3659 #define DMA_CH8_WRITE_ADDR_BITS _u(0xffffffff) 3660 #define DMA_CH8_WRITE_ADDR_RESET _u(0x00000000) 3661 #define DMA_CH8_WRITE_ADDR_MSB _u(31) 3662 #define DMA_CH8_WRITE_ADDR_LSB _u(0) 3663 #define DMA_CH8_WRITE_ADDR_ACCESS "RW" 3664 // ============================================================================= 3665 // Register : DMA_CH8_TRANS_COUNT 3666 // Description : DMA Channel 8 Transfer Count 3667 #define DMA_CH8_TRANS_COUNT_OFFSET _u(0x00000208) 3668 #define DMA_CH8_TRANS_COUNT_BITS _u(0xffffffff) 3669 #define DMA_CH8_TRANS_COUNT_RESET _u(0x00000000) 3670 // ----------------------------------------------------------------------------- 3671 // Field : DMA_CH8_TRANS_COUNT_MODE 3672 // Description : When MODE is 0x0, the transfer count decrements with each 3673 // transfer until 0, and then the channel triggers the next 3674 // channel indicated by CTRL_CHAIN_TO. 3675 // 3676 // When MODE is 0x1, the transfer count decrements with each 3677 // transfer until 0, and then the channel re-triggers itself, in 3678 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 3679 // useful for e.g. an endless ring-buffer DMA with periodic 3680 // interrupts. 3681 // 3682 // When MODE is 0xf, the transfer count does not decrement. The 3683 // DMA channel performs an endless sequence of transfers, never 3684 // triggering other channels or raising interrupts, until an ABORT 3685 // is raised. 3686 // 3687 // All other values are reserved. 3688 // 0x0 -> NORMAL 3689 // 0x1 -> TRIGGER_SELF 3690 // 0xf -> ENDLESS 3691 #define DMA_CH8_TRANS_COUNT_MODE_RESET _u(0x0) 3692 #define DMA_CH8_TRANS_COUNT_MODE_BITS _u(0xf0000000) 3693 #define DMA_CH8_TRANS_COUNT_MODE_MSB _u(31) 3694 #define DMA_CH8_TRANS_COUNT_MODE_LSB _u(28) 3695 #define DMA_CH8_TRANS_COUNT_MODE_ACCESS "RW" 3696 #define DMA_CH8_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 3697 #define DMA_CH8_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 3698 #define DMA_CH8_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 3699 // ----------------------------------------------------------------------------- 3700 // Field : DMA_CH8_TRANS_COUNT_COUNT 3701 // Description : 28-bit transfer count (256 million transfers maximum). 3702 // 3703 // Program the number of bus transfers a channel will perform 3704 // before halting. Note that, if transfers are larger than one 3705 // byte in size, this is not equal to the number of bytes 3706 // transferred (see CTRL_DATA_SIZE). 3707 // 3708 // When the channel is active, reading this register shows the 3709 // number of transfers remaining, updating automatically each time 3710 // a write transfer completes. 3711 // 3712 // Writing this register sets the RELOAD value for the transfer 3713 // counter. Each time this channel is triggered, the RELOAD value 3714 // is copied into the live transfer counter. The channel can be 3715 // started multiple times, and will perform the same number of 3716 // transfers each time, as programmed by most recent write. 3717 // 3718 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 3719 // is used as a trigger, the written value is used immediately as 3720 // the length of the new transfer sequence, as well as being 3721 // written to RELOAD. 3722 #define DMA_CH8_TRANS_COUNT_COUNT_RESET _u(0x0000000) 3723 #define DMA_CH8_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 3724 #define DMA_CH8_TRANS_COUNT_COUNT_MSB _u(27) 3725 #define DMA_CH8_TRANS_COUNT_COUNT_LSB _u(0) 3726 #define DMA_CH8_TRANS_COUNT_COUNT_ACCESS "RW" 3727 // ============================================================================= 3728 // Register : DMA_CH8_CTRL_TRIG 3729 // Description : DMA Channel 8 Control and Status 3730 #define DMA_CH8_CTRL_TRIG_OFFSET _u(0x0000020c) 3731 #define DMA_CH8_CTRL_TRIG_BITS _u(0xe7ffffff) 3732 #define DMA_CH8_CTRL_TRIG_RESET _u(0x00000000) 3733 // ----------------------------------------------------------------------------- 3734 // Field : DMA_CH8_CTRL_TRIG_AHB_ERROR 3735 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 3736 // halts when it encounters any bus error, and always raises its 3737 // channel IRQ flag. 3738 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 3739 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 3740 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_MSB _u(31) 3741 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_LSB _u(31) 3742 #define DMA_CH8_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 3743 // ----------------------------------------------------------------------------- 3744 // Field : DMA_CH8_CTRL_TRIG_READ_ERROR 3745 // Description : If 1, the channel received a read bus error. Write one to 3746 // clear. 3747 // READ_ADDR shows the approximate address where the bus error was 3748 // encountered (will not be earlier, or more than 3 transfers 3749 // later) 3750 #define DMA_CH8_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 3751 #define DMA_CH8_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 3752 #define DMA_CH8_CTRL_TRIG_READ_ERROR_MSB _u(30) 3753 #define DMA_CH8_CTRL_TRIG_READ_ERROR_LSB _u(30) 3754 #define DMA_CH8_CTRL_TRIG_READ_ERROR_ACCESS "WC" 3755 // ----------------------------------------------------------------------------- 3756 // Field : DMA_CH8_CTRL_TRIG_WRITE_ERROR 3757 // Description : If 1, the channel received a write bus error. Write one to 3758 // clear. 3759 // WRITE_ADDR shows the approximate address where the bus error 3760 // was encountered (will not be earlier, or more than 5 transfers 3761 // later) 3762 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 3763 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 3764 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 3765 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 3766 #define DMA_CH8_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 3767 // ----------------------------------------------------------------------------- 3768 // Field : DMA_CH8_CTRL_TRIG_BUSY 3769 // Description : This flag goes high when the channel starts a new transfer 3770 // sequence, and low when the last transfer of that sequence 3771 // completes. Clearing EN while BUSY is high pauses the channel, 3772 // and BUSY will stay high while paused. 3773 // 3774 // To terminate a sequence early (and clear the BUSY flag), see 3775 // CHAN_ABORT. 3776 #define DMA_CH8_CTRL_TRIG_BUSY_RESET _u(0x0) 3777 #define DMA_CH8_CTRL_TRIG_BUSY_BITS _u(0x04000000) 3778 #define DMA_CH8_CTRL_TRIG_BUSY_MSB _u(26) 3779 #define DMA_CH8_CTRL_TRIG_BUSY_LSB _u(26) 3780 #define DMA_CH8_CTRL_TRIG_BUSY_ACCESS "RO" 3781 // ----------------------------------------------------------------------------- 3782 // Field : DMA_CH8_CTRL_TRIG_SNIFF_EN 3783 // Description : If 1, this channel's data transfers are visible to the sniff 3784 // hardware, and each transfer will advance the state of the 3785 // checksum. This only applies if the sniff hardware is enabled, 3786 // and has this channel selected. 3787 // 3788 // This allows checksum to be enabled or disabled on a per- 3789 // control- block basis. 3790 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 3791 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 3792 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_MSB _u(25) 3793 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_LSB _u(25) 3794 #define DMA_CH8_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 3795 // ----------------------------------------------------------------------------- 3796 // Field : DMA_CH8_CTRL_TRIG_BSWAP 3797 // Description : Apply byte-swap transformation to DMA data. 3798 // For byte data, this has no effect. For halfword data, the two 3799 // bytes of each halfword are swapped. For word data, the four 3800 // bytes of each word are swapped to reverse order. 3801 #define DMA_CH8_CTRL_TRIG_BSWAP_RESET _u(0x0) 3802 #define DMA_CH8_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 3803 #define DMA_CH8_CTRL_TRIG_BSWAP_MSB _u(24) 3804 #define DMA_CH8_CTRL_TRIG_BSWAP_LSB _u(24) 3805 #define DMA_CH8_CTRL_TRIG_BSWAP_ACCESS "RW" 3806 // ----------------------------------------------------------------------------- 3807 // Field : DMA_CH8_CTRL_TRIG_IRQ_QUIET 3808 // Description : In QUIET mode, the channel does not generate IRQs at the end of 3809 // every transfer block. Instead, an IRQ is raised when NULL is 3810 // written to a trigger register, indicating the end of a control 3811 // block chain. 3812 // 3813 // This reduces the number of interrupts to be serviced by the CPU 3814 // when transferring a DMA chain of many small control blocks. 3815 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 3816 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 3817 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 3818 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 3819 #define DMA_CH8_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 3820 // ----------------------------------------------------------------------------- 3821 // Field : DMA_CH8_CTRL_TRIG_TREQ_SEL 3822 // Description : Select a Transfer Request signal. 3823 // The channel uses the transfer request signal to pace its data 3824 // transfer rate. Sources for TREQ signals are internal (TIMERS) 3825 // or external (DREQ, a Data Request from the system). 3826 // 0x0 to 0x3a -> select DREQ n as TREQ 3827 // 0x3b -> Select Timer 0 as TREQ 3828 // 0x3c -> Select Timer 1 as TREQ 3829 // 0x3d -> Select Timer 2 as TREQ (Optional) 3830 // 0x3e -> Select Timer 3 as TREQ (Optional) 3831 // 0x3f -> Permanent request, for unpaced transfers. 3832 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 3833 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 3834 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_MSB _u(22) 3835 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_LSB _u(17) 3836 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 3837 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 3838 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 3839 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 3840 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 3841 #define DMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 3842 // ----------------------------------------------------------------------------- 3843 // Field : DMA_CH8_CTRL_TRIG_CHAIN_TO 3844 // Description : When this channel completes, it will trigger the channel 3845 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 3846 // channel)_. 3847 // 3848 // Note this field resets to 0, so channels 1 and above will chain 3849 // to channel 0 by default. Set this field to avoid this 3850 // behaviour. 3851 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 3852 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 3853 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_MSB _u(16) 3854 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_LSB _u(13) 3855 #define DMA_CH8_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 3856 // ----------------------------------------------------------------------------- 3857 // Field : DMA_CH8_CTRL_TRIG_RING_SEL 3858 // Description : Select whether RING_SIZE applies to read or write addresses. 3859 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 3860 // boundary. If 1, write addresses are wrapped. 3861 #define DMA_CH8_CTRL_TRIG_RING_SEL_RESET _u(0x0) 3862 #define DMA_CH8_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 3863 #define DMA_CH8_CTRL_TRIG_RING_SEL_MSB _u(12) 3864 #define DMA_CH8_CTRL_TRIG_RING_SEL_LSB _u(12) 3865 #define DMA_CH8_CTRL_TRIG_RING_SEL_ACCESS "RW" 3866 // ----------------------------------------------------------------------------- 3867 // Field : DMA_CH8_CTRL_TRIG_RING_SIZE 3868 // Description : Size of address wrap region. If 0, don't wrap. For values n > 3869 // 0, only the lower n bits of the address will change. This wraps 3870 // the address on a (1 << n) byte boundary, facilitating access to 3871 // naturally-aligned ring buffers. 3872 // 3873 // Ring sizes between 2 and 32768 bytes are possible. This can 3874 // apply to either read or write addresses, based on value of 3875 // RING_SEL. 3876 // 0x0 -> RING_NONE 3877 #define DMA_CH8_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 3878 #define DMA_CH8_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 3879 #define DMA_CH8_CTRL_TRIG_RING_SIZE_MSB _u(11) 3880 #define DMA_CH8_CTRL_TRIG_RING_SIZE_LSB _u(8) 3881 #define DMA_CH8_CTRL_TRIG_RING_SIZE_ACCESS "RW" 3882 #define DMA_CH8_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 3883 // ----------------------------------------------------------------------------- 3884 // Field : DMA_CH8_CTRL_TRIG_INCR_WRITE_REV 3885 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 3886 // rather than incremented with each transfer. 3887 // 3888 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 3889 // causes the write address to be incremented by twice the 3890 // transfer size, i.e. skipping over alternate addresses. 3891 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 3892 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 3893 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 3894 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 3895 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 3896 // ----------------------------------------------------------------------------- 3897 // Field : DMA_CH8_CTRL_TRIG_INCR_WRITE 3898 // Description : If 1, the write address increments with each transfer. If 0, 3899 // each write is directed to the same, initial address. 3900 // 3901 // Generally this should be disabled for memory-to-peripheral 3902 // transfers. 3903 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 3904 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 3905 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_MSB _u(6) 3906 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_LSB _u(6) 3907 #define DMA_CH8_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 3908 // ----------------------------------------------------------------------------- 3909 // Field : DMA_CH8_CTRL_TRIG_INCR_READ_REV 3910 // Description : If 1, and INCR_READ is 1, the read address is decremented 3911 // rather than incremented with each transfer. 3912 // 3913 // If 1, and INCR_READ is 0, this otherwise-unused combination 3914 // causes the read address to be incremented by twice the transfer 3915 // size, i.e. skipping over alternate addresses. 3916 #define DMA_CH8_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 3917 #define DMA_CH8_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 3918 #define DMA_CH8_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 3919 #define DMA_CH8_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 3920 #define DMA_CH8_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 3921 // ----------------------------------------------------------------------------- 3922 // Field : DMA_CH8_CTRL_TRIG_INCR_READ 3923 // Description : If 1, the read address increments with each transfer. If 0, 3924 // each read is directed to the same, initial address. 3925 // 3926 // Generally this should be disabled for peripheral-to-memory 3927 // transfers. 3928 #define DMA_CH8_CTRL_TRIG_INCR_READ_RESET _u(0x0) 3929 #define DMA_CH8_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 3930 #define DMA_CH8_CTRL_TRIG_INCR_READ_MSB _u(4) 3931 #define DMA_CH8_CTRL_TRIG_INCR_READ_LSB _u(4) 3932 #define DMA_CH8_CTRL_TRIG_INCR_READ_ACCESS "RW" 3933 // ----------------------------------------------------------------------------- 3934 // Field : DMA_CH8_CTRL_TRIG_DATA_SIZE 3935 // Description : Set the size of each bus transfer (byte/halfword/word). 3936 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 3937 // with each transfer. 3938 // 0x0 -> SIZE_BYTE 3939 // 0x1 -> SIZE_HALFWORD 3940 // 0x2 -> SIZE_WORD 3941 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 3942 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 3943 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_MSB _u(3) 3944 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_LSB _u(2) 3945 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 3946 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 3947 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 3948 #define DMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 3949 // ----------------------------------------------------------------------------- 3950 // Field : DMA_CH8_CTRL_TRIG_HIGH_PRIORITY 3951 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 3952 // scheduling: in each scheduling round, all high priority 3953 // channels are considered first, and then only a single low 3954 // priority channel, before returning to the high priority 3955 // channels. 3956 // 3957 // This only affects the order in which the DMA schedules 3958 // channels. The DMA's bus priority is not changed. If the DMA is 3959 // not saturated then a low priority channel will see no loss of 3960 // throughput. 3961 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 3962 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 3963 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 3964 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 3965 #define DMA_CH8_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 3966 // ----------------------------------------------------------------------------- 3967 // Field : DMA_CH8_CTRL_TRIG_EN 3968 // Description : DMA Channel Enable. 3969 // When 1, the channel will respond to triggering events, which 3970 // will cause it to become BUSY and start transferring data. When 3971 // 0, the channel will ignore triggers, stop issuing transfers, 3972 // and pause the current transfer sequence (i.e. BUSY will remain 3973 // high if already high) 3974 #define DMA_CH8_CTRL_TRIG_EN_RESET _u(0x0) 3975 #define DMA_CH8_CTRL_TRIG_EN_BITS _u(0x00000001) 3976 #define DMA_CH8_CTRL_TRIG_EN_MSB _u(0) 3977 #define DMA_CH8_CTRL_TRIG_EN_LSB _u(0) 3978 #define DMA_CH8_CTRL_TRIG_EN_ACCESS "RW" 3979 // ============================================================================= 3980 // Register : DMA_CH8_AL1_CTRL 3981 // Description : Alias for channel 8 CTRL register 3982 #define DMA_CH8_AL1_CTRL_OFFSET _u(0x00000210) 3983 #define DMA_CH8_AL1_CTRL_BITS _u(0xffffffff) 3984 #define DMA_CH8_AL1_CTRL_RESET "-" 3985 #define DMA_CH8_AL1_CTRL_MSB _u(31) 3986 #define DMA_CH8_AL1_CTRL_LSB _u(0) 3987 #define DMA_CH8_AL1_CTRL_ACCESS "RW" 3988 // ============================================================================= 3989 // Register : DMA_CH8_AL1_READ_ADDR 3990 // Description : Alias for channel 8 READ_ADDR register 3991 #define DMA_CH8_AL1_READ_ADDR_OFFSET _u(0x00000214) 3992 #define DMA_CH8_AL1_READ_ADDR_BITS _u(0xffffffff) 3993 #define DMA_CH8_AL1_READ_ADDR_RESET "-" 3994 #define DMA_CH8_AL1_READ_ADDR_MSB _u(31) 3995 #define DMA_CH8_AL1_READ_ADDR_LSB _u(0) 3996 #define DMA_CH8_AL1_READ_ADDR_ACCESS "RW" 3997 // ============================================================================= 3998 // Register : DMA_CH8_AL1_WRITE_ADDR 3999 // Description : Alias for channel 8 WRITE_ADDR register 4000 #define DMA_CH8_AL1_WRITE_ADDR_OFFSET _u(0x00000218) 4001 #define DMA_CH8_AL1_WRITE_ADDR_BITS _u(0xffffffff) 4002 #define DMA_CH8_AL1_WRITE_ADDR_RESET "-" 4003 #define DMA_CH8_AL1_WRITE_ADDR_MSB _u(31) 4004 #define DMA_CH8_AL1_WRITE_ADDR_LSB _u(0) 4005 #define DMA_CH8_AL1_WRITE_ADDR_ACCESS "RW" 4006 // ============================================================================= 4007 // Register : DMA_CH8_AL1_TRANS_COUNT_TRIG 4008 // Description : Alias for channel 8 TRANS_COUNT register 4009 // This is a trigger register (0xc). Writing a nonzero value will 4010 // reload the channel counter and start the channel. 4011 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000021c) 4012 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 4013 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_RESET "-" 4014 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_MSB _u(31) 4015 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_LSB _u(0) 4016 #define DMA_CH8_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 4017 // ============================================================================= 4018 // Register : DMA_CH8_AL2_CTRL 4019 // Description : Alias for channel 8 CTRL register 4020 #define DMA_CH8_AL2_CTRL_OFFSET _u(0x00000220) 4021 #define DMA_CH8_AL2_CTRL_BITS _u(0xffffffff) 4022 #define DMA_CH8_AL2_CTRL_RESET "-" 4023 #define DMA_CH8_AL2_CTRL_MSB _u(31) 4024 #define DMA_CH8_AL2_CTRL_LSB _u(0) 4025 #define DMA_CH8_AL2_CTRL_ACCESS "RW" 4026 // ============================================================================= 4027 // Register : DMA_CH8_AL2_TRANS_COUNT 4028 // Description : Alias for channel 8 TRANS_COUNT register 4029 #define DMA_CH8_AL2_TRANS_COUNT_OFFSET _u(0x00000224) 4030 #define DMA_CH8_AL2_TRANS_COUNT_BITS _u(0xffffffff) 4031 #define DMA_CH8_AL2_TRANS_COUNT_RESET "-" 4032 #define DMA_CH8_AL2_TRANS_COUNT_MSB _u(31) 4033 #define DMA_CH8_AL2_TRANS_COUNT_LSB _u(0) 4034 #define DMA_CH8_AL2_TRANS_COUNT_ACCESS "RW" 4035 // ============================================================================= 4036 // Register : DMA_CH8_AL2_READ_ADDR 4037 // Description : Alias for channel 8 READ_ADDR register 4038 #define DMA_CH8_AL2_READ_ADDR_OFFSET _u(0x00000228) 4039 #define DMA_CH8_AL2_READ_ADDR_BITS _u(0xffffffff) 4040 #define DMA_CH8_AL2_READ_ADDR_RESET "-" 4041 #define DMA_CH8_AL2_READ_ADDR_MSB _u(31) 4042 #define DMA_CH8_AL2_READ_ADDR_LSB _u(0) 4043 #define DMA_CH8_AL2_READ_ADDR_ACCESS "RW" 4044 // ============================================================================= 4045 // Register : DMA_CH8_AL2_WRITE_ADDR_TRIG 4046 // Description : Alias for channel 8 WRITE_ADDR register 4047 // This is a trigger register (0xc). Writing a nonzero value will 4048 // reload the channel counter and start the channel. 4049 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000022c) 4050 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 4051 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_RESET "-" 4052 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_MSB _u(31) 4053 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_LSB _u(0) 4054 #define DMA_CH8_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 4055 // ============================================================================= 4056 // Register : DMA_CH8_AL3_CTRL 4057 // Description : Alias for channel 8 CTRL register 4058 #define DMA_CH8_AL3_CTRL_OFFSET _u(0x00000230) 4059 #define DMA_CH8_AL3_CTRL_BITS _u(0xffffffff) 4060 #define DMA_CH8_AL3_CTRL_RESET "-" 4061 #define DMA_CH8_AL3_CTRL_MSB _u(31) 4062 #define DMA_CH8_AL3_CTRL_LSB _u(0) 4063 #define DMA_CH8_AL3_CTRL_ACCESS "RW" 4064 // ============================================================================= 4065 // Register : DMA_CH8_AL3_WRITE_ADDR 4066 // Description : Alias for channel 8 WRITE_ADDR register 4067 #define DMA_CH8_AL3_WRITE_ADDR_OFFSET _u(0x00000234) 4068 #define DMA_CH8_AL3_WRITE_ADDR_BITS _u(0xffffffff) 4069 #define DMA_CH8_AL3_WRITE_ADDR_RESET "-" 4070 #define DMA_CH8_AL3_WRITE_ADDR_MSB _u(31) 4071 #define DMA_CH8_AL3_WRITE_ADDR_LSB _u(0) 4072 #define DMA_CH8_AL3_WRITE_ADDR_ACCESS "RW" 4073 // ============================================================================= 4074 // Register : DMA_CH8_AL3_TRANS_COUNT 4075 // Description : Alias for channel 8 TRANS_COUNT register 4076 #define DMA_CH8_AL3_TRANS_COUNT_OFFSET _u(0x00000238) 4077 #define DMA_CH8_AL3_TRANS_COUNT_BITS _u(0xffffffff) 4078 #define DMA_CH8_AL3_TRANS_COUNT_RESET "-" 4079 #define DMA_CH8_AL3_TRANS_COUNT_MSB _u(31) 4080 #define DMA_CH8_AL3_TRANS_COUNT_LSB _u(0) 4081 #define DMA_CH8_AL3_TRANS_COUNT_ACCESS "RW" 4082 // ============================================================================= 4083 // Register : DMA_CH8_AL3_READ_ADDR_TRIG 4084 // Description : Alias for channel 8 READ_ADDR register 4085 // This is a trigger register (0xc). Writing a nonzero value will 4086 // reload the channel counter and start the channel. 4087 #define DMA_CH8_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000023c) 4088 #define DMA_CH8_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 4089 #define DMA_CH8_AL3_READ_ADDR_TRIG_RESET "-" 4090 #define DMA_CH8_AL3_READ_ADDR_TRIG_MSB _u(31) 4091 #define DMA_CH8_AL3_READ_ADDR_TRIG_LSB _u(0) 4092 #define DMA_CH8_AL3_READ_ADDR_TRIG_ACCESS "RW" 4093 // ============================================================================= 4094 // Register : DMA_CH9_READ_ADDR 4095 // Description : DMA Channel 9 Read Address pointer 4096 // This register updates automatically each time a read completes. 4097 // The current value is the next address to be read by this 4098 // channel. 4099 #define DMA_CH9_READ_ADDR_OFFSET _u(0x00000240) 4100 #define DMA_CH9_READ_ADDR_BITS _u(0xffffffff) 4101 #define DMA_CH9_READ_ADDR_RESET _u(0x00000000) 4102 #define DMA_CH9_READ_ADDR_MSB _u(31) 4103 #define DMA_CH9_READ_ADDR_LSB _u(0) 4104 #define DMA_CH9_READ_ADDR_ACCESS "RW" 4105 // ============================================================================= 4106 // Register : DMA_CH9_WRITE_ADDR 4107 // Description : DMA Channel 9 Write Address pointer 4108 // This register updates automatically each time a write 4109 // completes. The current value is the next address to be written 4110 // by this channel. 4111 #define DMA_CH9_WRITE_ADDR_OFFSET _u(0x00000244) 4112 #define DMA_CH9_WRITE_ADDR_BITS _u(0xffffffff) 4113 #define DMA_CH9_WRITE_ADDR_RESET _u(0x00000000) 4114 #define DMA_CH9_WRITE_ADDR_MSB _u(31) 4115 #define DMA_CH9_WRITE_ADDR_LSB _u(0) 4116 #define DMA_CH9_WRITE_ADDR_ACCESS "RW" 4117 // ============================================================================= 4118 // Register : DMA_CH9_TRANS_COUNT 4119 // Description : DMA Channel 9 Transfer Count 4120 #define DMA_CH9_TRANS_COUNT_OFFSET _u(0x00000248) 4121 #define DMA_CH9_TRANS_COUNT_BITS _u(0xffffffff) 4122 #define DMA_CH9_TRANS_COUNT_RESET _u(0x00000000) 4123 // ----------------------------------------------------------------------------- 4124 // Field : DMA_CH9_TRANS_COUNT_MODE 4125 // Description : When MODE is 0x0, the transfer count decrements with each 4126 // transfer until 0, and then the channel triggers the next 4127 // channel indicated by CTRL_CHAIN_TO. 4128 // 4129 // When MODE is 0x1, the transfer count decrements with each 4130 // transfer until 0, and then the channel re-triggers itself, in 4131 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 4132 // useful for e.g. an endless ring-buffer DMA with periodic 4133 // interrupts. 4134 // 4135 // When MODE is 0xf, the transfer count does not decrement. The 4136 // DMA channel performs an endless sequence of transfers, never 4137 // triggering other channels or raising interrupts, until an ABORT 4138 // is raised. 4139 // 4140 // All other values are reserved. 4141 // 0x0 -> NORMAL 4142 // 0x1 -> TRIGGER_SELF 4143 // 0xf -> ENDLESS 4144 #define DMA_CH9_TRANS_COUNT_MODE_RESET _u(0x0) 4145 #define DMA_CH9_TRANS_COUNT_MODE_BITS _u(0xf0000000) 4146 #define DMA_CH9_TRANS_COUNT_MODE_MSB _u(31) 4147 #define DMA_CH9_TRANS_COUNT_MODE_LSB _u(28) 4148 #define DMA_CH9_TRANS_COUNT_MODE_ACCESS "RW" 4149 #define DMA_CH9_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 4150 #define DMA_CH9_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 4151 #define DMA_CH9_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 4152 // ----------------------------------------------------------------------------- 4153 // Field : DMA_CH9_TRANS_COUNT_COUNT 4154 // Description : 28-bit transfer count (256 million transfers maximum). 4155 // 4156 // Program the number of bus transfers a channel will perform 4157 // before halting. Note that, if transfers are larger than one 4158 // byte in size, this is not equal to the number of bytes 4159 // transferred (see CTRL_DATA_SIZE). 4160 // 4161 // When the channel is active, reading this register shows the 4162 // number of transfers remaining, updating automatically each time 4163 // a write transfer completes. 4164 // 4165 // Writing this register sets the RELOAD value for the transfer 4166 // counter. Each time this channel is triggered, the RELOAD value 4167 // is copied into the live transfer counter. The channel can be 4168 // started multiple times, and will perform the same number of 4169 // transfers each time, as programmed by most recent write. 4170 // 4171 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 4172 // is used as a trigger, the written value is used immediately as 4173 // the length of the new transfer sequence, as well as being 4174 // written to RELOAD. 4175 #define DMA_CH9_TRANS_COUNT_COUNT_RESET _u(0x0000000) 4176 #define DMA_CH9_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 4177 #define DMA_CH9_TRANS_COUNT_COUNT_MSB _u(27) 4178 #define DMA_CH9_TRANS_COUNT_COUNT_LSB _u(0) 4179 #define DMA_CH9_TRANS_COUNT_COUNT_ACCESS "RW" 4180 // ============================================================================= 4181 // Register : DMA_CH9_CTRL_TRIG 4182 // Description : DMA Channel 9 Control and Status 4183 #define DMA_CH9_CTRL_TRIG_OFFSET _u(0x0000024c) 4184 #define DMA_CH9_CTRL_TRIG_BITS _u(0xe7ffffff) 4185 #define DMA_CH9_CTRL_TRIG_RESET _u(0x00000000) 4186 // ----------------------------------------------------------------------------- 4187 // Field : DMA_CH9_CTRL_TRIG_AHB_ERROR 4188 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 4189 // halts when it encounters any bus error, and always raises its 4190 // channel IRQ flag. 4191 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 4192 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 4193 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_MSB _u(31) 4194 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_LSB _u(31) 4195 #define DMA_CH9_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 4196 // ----------------------------------------------------------------------------- 4197 // Field : DMA_CH9_CTRL_TRIG_READ_ERROR 4198 // Description : If 1, the channel received a read bus error. Write one to 4199 // clear. 4200 // READ_ADDR shows the approximate address where the bus error was 4201 // encountered (will not be earlier, or more than 3 transfers 4202 // later) 4203 #define DMA_CH9_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 4204 #define DMA_CH9_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 4205 #define DMA_CH9_CTRL_TRIG_READ_ERROR_MSB _u(30) 4206 #define DMA_CH9_CTRL_TRIG_READ_ERROR_LSB _u(30) 4207 #define DMA_CH9_CTRL_TRIG_READ_ERROR_ACCESS "WC" 4208 // ----------------------------------------------------------------------------- 4209 // Field : DMA_CH9_CTRL_TRIG_WRITE_ERROR 4210 // Description : If 1, the channel received a write bus error. Write one to 4211 // clear. 4212 // WRITE_ADDR shows the approximate address where the bus error 4213 // was encountered (will not be earlier, or more than 5 transfers 4214 // later) 4215 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 4216 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 4217 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 4218 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 4219 #define DMA_CH9_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 4220 // ----------------------------------------------------------------------------- 4221 // Field : DMA_CH9_CTRL_TRIG_BUSY 4222 // Description : This flag goes high when the channel starts a new transfer 4223 // sequence, and low when the last transfer of that sequence 4224 // completes. Clearing EN while BUSY is high pauses the channel, 4225 // and BUSY will stay high while paused. 4226 // 4227 // To terminate a sequence early (and clear the BUSY flag), see 4228 // CHAN_ABORT. 4229 #define DMA_CH9_CTRL_TRIG_BUSY_RESET _u(0x0) 4230 #define DMA_CH9_CTRL_TRIG_BUSY_BITS _u(0x04000000) 4231 #define DMA_CH9_CTRL_TRIG_BUSY_MSB _u(26) 4232 #define DMA_CH9_CTRL_TRIG_BUSY_LSB _u(26) 4233 #define DMA_CH9_CTRL_TRIG_BUSY_ACCESS "RO" 4234 // ----------------------------------------------------------------------------- 4235 // Field : DMA_CH9_CTRL_TRIG_SNIFF_EN 4236 // Description : If 1, this channel's data transfers are visible to the sniff 4237 // hardware, and each transfer will advance the state of the 4238 // checksum. This only applies if the sniff hardware is enabled, 4239 // and has this channel selected. 4240 // 4241 // This allows checksum to be enabled or disabled on a per- 4242 // control- block basis. 4243 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 4244 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 4245 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_MSB _u(25) 4246 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_LSB _u(25) 4247 #define DMA_CH9_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 4248 // ----------------------------------------------------------------------------- 4249 // Field : DMA_CH9_CTRL_TRIG_BSWAP 4250 // Description : Apply byte-swap transformation to DMA data. 4251 // For byte data, this has no effect. For halfword data, the two 4252 // bytes of each halfword are swapped. For word data, the four 4253 // bytes of each word are swapped to reverse order. 4254 #define DMA_CH9_CTRL_TRIG_BSWAP_RESET _u(0x0) 4255 #define DMA_CH9_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 4256 #define DMA_CH9_CTRL_TRIG_BSWAP_MSB _u(24) 4257 #define DMA_CH9_CTRL_TRIG_BSWAP_LSB _u(24) 4258 #define DMA_CH9_CTRL_TRIG_BSWAP_ACCESS "RW" 4259 // ----------------------------------------------------------------------------- 4260 // Field : DMA_CH9_CTRL_TRIG_IRQ_QUIET 4261 // Description : In QUIET mode, the channel does not generate IRQs at the end of 4262 // every transfer block. Instead, an IRQ is raised when NULL is 4263 // written to a trigger register, indicating the end of a control 4264 // block chain. 4265 // 4266 // This reduces the number of interrupts to be serviced by the CPU 4267 // when transferring a DMA chain of many small control blocks. 4268 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 4269 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 4270 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 4271 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 4272 #define DMA_CH9_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 4273 // ----------------------------------------------------------------------------- 4274 // Field : DMA_CH9_CTRL_TRIG_TREQ_SEL 4275 // Description : Select a Transfer Request signal. 4276 // The channel uses the transfer request signal to pace its data 4277 // transfer rate. Sources for TREQ signals are internal (TIMERS) 4278 // or external (DREQ, a Data Request from the system). 4279 // 0x0 to 0x3a -> select DREQ n as TREQ 4280 // 0x3b -> Select Timer 0 as TREQ 4281 // 0x3c -> Select Timer 1 as TREQ 4282 // 0x3d -> Select Timer 2 as TREQ (Optional) 4283 // 0x3e -> Select Timer 3 as TREQ (Optional) 4284 // 0x3f -> Permanent request, for unpaced transfers. 4285 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 4286 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 4287 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_MSB _u(22) 4288 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_LSB _u(17) 4289 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 4290 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 4291 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 4292 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 4293 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 4294 #define DMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 4295 // ----------------------------------------------------------------------------- 4296 // Field : DMA_CH9_CTRL_TRIG_CHAIN_TO 4297 // Description : When this channel completes, it will trigger the channel 4298 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 4299 // channel)_. 4300 // 4301 // Note this field resets to 0, so channels 1 and above will chain 4302 // to channel 0 by default. Set this field to avoid this 4303 // behaviour. 4304 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 4305 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 4306 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_MSB _u(16) 4307 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_LSB _u(13) 4308 #define DMA_CH9_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 4309 // ----------------------------------------------------------------------------- 4310 // Field : DMA_CH9_CTRL_TRIG_RING_SEL 4311 // Description : Select whether RING_SIZE applies to read or write addresses. 4312 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 4313 // boundary. If 1, write addresses are wrapped. 4314 #define DMA_CH9_CTRL_TRIG_RING_SEL_RESET _u(0x0) 4315 #define DMA_CH9_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 4316 #define DMA_CH9_CTRL_TRIG_RING_SEL_MSB _u(12) 4317 #define DMA_CH9_CTRL_TRIG_RING_SEL_LSB _u(12) 4318 #define DMA_CH9_CTRL_TRIG_RING_SEL_ACCESS "RW" 4319 // ----------------------------------------------------------------------------- 4320 // Field : DMA_CH9_CTRL_TRIG_RING_SIZE 4321 // Description : Size of address wrap region. If 0, don't wrap. For values n > 4322 // 0, only the lower n bits of the address will change. This wraps 4323 // the address on a (1 << n) byte boundary, facilitating access to 4324 // naturally-aligned ring buffers. 4325 // 4326 // Ring sizes between 2 and 32768 bytes are possible. This can 4327 // apply to either read or write addresses, based on value of 4328 // RING_SEL. 4329 // 0x0 -> RING_NONE 4330 #define DMA_CH9_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 4331 #define DMA_CH9_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 4332 #define DMA_CH9_CTRL_TRIG_RING_SIZE_MSB _u(11) 4333 #define DMA_CH9_CTRL_TRIG_RING_SIZE_LSB _u(8) 4334 #define DMA_CH9_CTRL_TRIG_RING_SIZE_ACCESS "RW" 4335 #define DMA_CH9_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 4336 // ----------------------------------------------------------------------------- 4337 // Field : DMA_CH9_CTRL_TRIG_INCR_WRITE_REV 4338 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 4339 // rather than incremented with each transfer. 4340 // 4341 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 4342 // causes the write address to be incremented by twice the 4343 // transfer size, i.e. skipping over alternate addresses. 4344 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 4345 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 4346 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 4347 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 4348 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 4349 // ----------------------------------------------------------------------------- 4350 // Field : DMA_CH9_CTRL_TRIG_INCR_WRITE 4351 // Description : If 1, the write address increments with each transfer. If 0, 4352 // each write is directed to the same, initial address. 4353 // 4354 // Generally this should be disabled for memory-to-peripheral 4355 // transfers. 4356 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 4357 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 4358 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_MSB _u(6) 4359 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_LSB _u(6) 4360 #define DMA_CH9_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 4361 // ----------------------------------------------------------------------------- 4362 // Field : DMA_CH9_CTRL_TRIG_INCR_READ_REV 4363 // Description : If 1, and INCR_READ is 1, the read address is decremented 4364 // rather than incremented with each transfer. 4365 // 4366 // If 1, and INCR_READ is 0, this otherwise-unused combination 4367 // causes the read address to be incremented by twice the transfer 4368 // size, i.e. skipping over alternate addresses. 4369 #define DMA_CH9_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 4370 #define DMA_CH9_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 4371 #define DMA_CH9_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 4372 #define DMA_CH9_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 4373 #define DMA_CH9_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 4374 // ----------------------------------------------------------------------------- 4375 // Field : DMA_CH9_CTRL_TRIG_INCR_READ 4376 // Description : If 1, the read address increments with each transfer. If 0, 4377 // each read is directed to the same, initial address. 4378 // 4379 // Generally this should be disabled for peripheral-to-memory 4380 // transfers. 4381 #define DMA_CH9_CTRL_TRIG_INCR_READ_RESET _u(0x0) 4382 #define DMA_CH9_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 4383 #define DMA_CH9_CTRL_TRIG_INCR_READ_MSB _u(4) 4384 #define DMA_CH9_CTRL_TRIG_INCR_READ_LSB _u(4) 4385 #define DMA_CH9_CTRL_TRIG_INCR_READ_ACCESS "RW" 4386 // ----------------------------------------------------------------------------- 4387 // Field : DMA_CH9_CTRL_TRIG_DATA_SIZE 4388 // Description : Set the size of each bus transfer (byte/halfword/word). 4389 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 4390 // with each transfer. 4391 // 0x0 -> SIZE_BYTE 4392 // 0x1 -> SIZE_HALFWORD 4393 // 0x2 -> SIZE_WORD 4394 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 4395 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 4396 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_MSB _u(3) 4397 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_LSB _u(2) 4398 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 4399 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 4400 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 4401 #define DMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 4402 // ----------------------------------------------------------------------------- 4403 // Field : DMA_CH9_CTRL_TRIG_HIGH_PRIORITY 4404 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 4405 // scheduling: in each scheduling round, all high priority 4406 // channels are considered first, and then only a single low 4407 // priority channel, before returning to the high priority 4408 // channels. 4409 // 4410 // This only affects the order in which the DMA schedules 4411 // channels. The DMA's bus priority is not changed. If the DMA is 4412 // not saturated then a low priority channel will see no loss of 4413 // throughput. 4414 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 4415 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 4416 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 4417 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 4418 #define DMA_CH9_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 4419 // ----------------------------------------------------------------------------- 4420 // Field : DMA_CH9_CTRL_TRIG_EN 4421 // Description : DMA Channel Enable. 4422 // When 1, the channel will respond to triggering events, which 4423 // will cause it to become BUSY and start transferring data. When 4424 // 0, the channel will ignore triggers, stop issuing transfers, 4425 // and pause the current transfer sequence (i.e. BUSY will remain 4426 // high if already high) 4427 #define DMA_CH9_CTRL_TRIG_EN_RESET _u(0x0) 4428 #define DMA_CH9_CTRL_TRIG_EN_BITS _u(0x00000001) 4429 #define DMA_CH9_CTRL_TRIG_EN_MSB _u(0) 4430 #define DMA_CH9_CTRL_TRIG_EN_LSB _u(0) 4431 #define DMA_CH9_CTRL_TRIG_EN_ACCESS "RW" 4432 // ============================================================================= 4433 // Register : DMA_CH9_AL1_CTRL 4434 // Description : Alias for channel 9 CTRL register 4435 #define DMA_CH9_AL1_CTRL_OFFSET _u(0x00000250) 4436 #define DMA_CH9_AL1_CTRL_BITS _u(0xffffffff) 4437 #define DMA_CH9_AL1_CTRL_RESET "-" 4438 #define DMA_CH9_AL1_CTRL_MSB _u(31) 4439 #define DMA_CH9_AL1_CTRL_LSB _u(0) 4440 #define DMA_CH9_AL1_CTRL_ACCESS "RW" 4441 // ============================================================================= 4442 // Register : DMA_CH9_AL1_READ_ADDR 4443 // Description : Alias for channel 9 READ_ADDR register 4444 #define DMA_CH9_AL1_READ_ADDR_OFFSET _u(0x00000254) 4445 #define DMA_CH9_AL1_READ_ADDR_BITS _u(0xffffffff) 4446 #define DMA_CH9_AL1_READ_ADDR_RESET "-" 4447 #define DMA_CH9_AL1_READ_ADDR_MSB _u(31) 4448 #define DMA_CH9_AL1_READ_ADDR_LSB _u(0) 4449 #define DMA_CH9_AL1_READ_ADDR_ACCESS "RW" 4450 // ============================================================================= 4451 // Register : DMA_CH9_AL1_WRITE_ADDR 4452 // Description : Alias for channel 9 WRITE_ADDR register 4453 #define DMA_CH9_AL1_WRITE_ADDR_OFFSET _u(0x00000258) 4454 #define DMA_CH9_AL1_WRITE_ADDR_BITS _u(0xffffffff) 4455 #define DMA_CH9_AL1_WRITE_ADDR_RESET "-" 4456 #define DMA_CH9_AL1_WRITE_ADDR_MSB _u(31) 4457 #define DMA_CH9_AL1_WRITE_ADDR_LSB _u(0) 4458 #define DMA_CH9_AL1_WRITE_ADDR_ACCESS "RW" 4459 // ============================================================================= 4460 // Register : DMA_CH9_AL1_TRANS_COUNT_TRIG 4461 // Description : Alias for channel 9 TRANS_COUNT register 4462 // This is a trigger register (0xc). Writing a nonzero value will 4463 // reload the channel counter and start the channel. 4464 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000025c) 4465 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 4466 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_RESET "-" 4467 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_MSB _u(31) 4468 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_LSB _u(0) 4469 #define DMA_CH9_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 4470 // ============================================================================= 4471 // Register : DMA_CH9_AL2_CTRL 4472 // Description : Alias for channel 9 CTRL register 4473 #define DMA_CH9_AL2_CTRL_OFFSET _u(0x00000260) 4474 #define DMA_CH9_AL2_CTRL_BITS _u(0xffffffff) 4475 #define DMA_CH9_AL2_CTRL_RESET "-" 4476 #define DMA_CH9_AL2_CTRL_MSB _u(31) 4477 #define DMA_CH9_AL2_CTRL_LSB _u(0) 4478 #define DMA_CH9_AL2_CTRL_ACCESS "RW" 4479 // ============================================================================= 4480 // Register : DMA_CH9_AL2_TRANS_COUNT 4481 // Description : Alias for channel 9 TRANS_COUNT register 4482 #define DMA_CH9_AL2_TRANS_COUNT_OFFSET _u(0x00000264) 4483 #define DMA_CH9_AL2_TRANS_COUNT_BITS _u(0xffffffff) 4484 #define DMA_CH9_AL2_TRANS_COUNT_RESET "-" 4485 #define DMA_CH9_AL2_TRANS_COUNT_MSB _u(31) 4486 #define DMA_CH9_AL2_TRANS_COUNT_LSB _u(0) 4487 #define DMA_CH9_AL2_TRANS_COUNT_ACCESS "RW" 4488 // ============================================================================= 4489 // Register : DMA_CH9_AL2_READ_ADDR 4490 // Description : Alias for channel 9 READ_ADDR register 4491 #define DMA_CH9_AL2_READ_ADDR_OFFSET _u(0x00000268) 4492 #define DMA_CH9_AL2_READ_ADDR_BITS _u(0xffffffff) 4493 #define DMA_CH9_AL2_READ_ADDR_RESET "-" 4494 #define DMA_CH9_AL2_READ_ADDR_MSB _u(31) 4495 #define DMA_CH9_AL2_READ_ADDR_LSB _u(0) 4496 #define DMA_CH9_AL2_READ_ADDR_ACCESS "RW" 4497 // ============================================================================= 4498 // Register : DMA_CH9_AL2_WRITE_ADDR_TRIG 4499 // Description : Alias for channel 9 WRITE_ADDR register 4500 // This is a trigger register (0xc). Writing a nonzero value will 4501 // reload the channel counter and start the channel. 4502 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000026c) 4503 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 4504 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_RESET "-" 4505 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_MSB _u(31) 4506 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_LSB _u(0) 4507 #define DMA_CH9_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 4508 // ============================================================================= 4509 // Register : DMA_CH9_AL3_CTRL 4510 // Description : Alias for channel 9 CTRL register 4511 #define DMA_CH9_AL3_CTRL_OFFSET _u(0x00000270) 4512 #define DMA_CH9_AL3_CTRL_BITS _u(0xffffffff) 4513 #define DMA_CH9_AL3_CTRL_RESET "-" 4514 #define DMA_CH9_AL3_CTRL_MSB _u(31) 4515 #define DMA_CH9_AL3_CTRL_LSB _u(0) 4516 #define DMA_CH9_AL3_CTRL_ACCESS "RW" 4517 // ============================================================================= 4518 // Register : DMA_CH9_AL3_WRITE_ADDR 4519 // Description : Alias for channel 9 WRITE_ADDR register 4520 #define DMA_CH9_AL3_WRITE_ADDR_OFFSET _u(0x00000274) 4521 #define DMA_CH9_AL3_WRITE_ADDR_BITS _u(0xffffffff) 4522 #define DMA_CH9_AL3_WRITE_ADDR_RESET "-" 4523 #define DMA_CH9_AL3_WRITE_ADDR_MSB _u(31) 4524 #define DMA_CH9_AL3_WRITE_ADDR_LSB _u(0) 4525 #define DMA_CH9_AL3_WRITE_ADDR_ACCESS "RW" 4526 // ============================================================================= 4527 // Register : DMA_CH9_AL3_TRANS_COUNT 4528 // Description : Alias for channel 9 TRANS_COUNT register 4529 #define DMA_CH9_AL3_TRANS_COUNT_OFFSET _u(0x00000278) 4530 #define DMA_CH9_AL3_TRANS_COUNT_BITS _u(0xffffffff) 4531 #define DMA_CH9_AL3_TRANS_COUNT_RESET "-" 4532 #define DMA_CH9_AL3_TRANS_COUNT_MSB _u(31) 4533 #define DMA_CH9_AL3_TRANS_COUNT_LSB _u(0) 4534 #define DMA_CH9_AL3_TRANS_COUNT_ACCESS "RW" 4535 // ============================================================================= 4536 // Register : DMA_CH9_AL3_READ_ADDR_TRIG 4537 // Description : Alias for channel 9 READ_ADDR register 4538 // This is a trigger register (0xc). Writing a nonzero value will 4539 // reload the channel counter and start the channel. 4540 #define DMA_CH9_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000027c) 4541 #define DMA_CH9_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 4542 #define DMA_CH9_AL3_READ_ADDR_TRIG_RESET "-" 4543 #define DMA_CH9_AL3_READ_ADDR_TRIG_MSB _u(31) 4544 #define DMA_CH9_AL3_READ_ADDR_TRIG_LSB _u(0) 4545 #define DMA_CH9_AL3_READ_ADDR_TRIG_ACCESS "RW" 4546 // ============================================================================= 4547 // Register : DMA_CH10_READ_ADDR 4548 // Description : DMA Channel 10 Read Address pointer 4549 // This register updates automatically each time a read completes. 4550 // The current value is the next address to be read by this 4551 // channel. 4552 #define DMA_CH10_READ_ADDR_OFFSET _u(0x00000280) 4553 #define DMA_CH10_READ_ADDR_BITS _u(0xffffffff) 4554 #define DMA_CH10_READ_ADDR_RESET _u(0x00000000) 4555 #define DMA_CH10_READ_ADDR_MSB _u(31) 4556 #define DMA_CH10_READ_ADDR_LSB _u(0) 4557 #define DMA_CH10_READ_ADDR_ACCESS "RW" 4558 // ============================================================================= 4559 // Register : DMA_CH10_WRITE_ADDR 4560 // Description : DMA Channel 10 Write Address pointer 4561 // This register updates automatically each time a write 4562 // completes. The current value is the next address to be written 4563 // by this channel. 4564 #define DMA_CH10_WRITE_ADDR_OFFSET _u(0x00000284) 4565 #define DMA_CH10_WRITE_ADDR_BITS _u(0xffffffff) 4566 #define DMA_CH10_WRITE_ADDR_RESET _u(0x00000000) 4567 #define DMA_CH10_WRITE_ADDR_MSB _u(31) 4568 #define DMA_CH10_WRITE_ADDR_LSB _u(0) 4569 #define DMA_CH10_WRITE_ADDR_ACCESS "RW" 4570 // ============================================================================= 4571 // Register : DMA_CH10_TRANS_COUNT 4572 // Description : DMA Channel 10 Transfer Count 4573 #define DMA_CH10_TRANS_COUNT_OFFSET _u(0x00000288) 4574 #define DMA_CH10_TRANS_COUNT_BITS _u(0xffffffff) 4575 #define DMA_CH10_TRANS_COUNT_RESET _u(0x00000000) 4576 // ----------------------------------------------------------------------------- 4577 // Field : DMA_CH10_TRANS_COUNT_MODE 4578 // Description : When MODE is 0x0, the transfer count decrements with each 4579 // transfer until 0, and then the channel triggers the next 4580 // channel indicated by CTRL_CHAIN_TO. 4581 // 4582 // When MODE is 0x1, the transfer count decrements with each 4583 // transfer until 0, and then the channel re-triggers itself, in 4584 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 4585 // useful for e.g. an endless ring-buffer DMA with periodic 4586 // interrupts. 4587 // 4588 // When MODE is 0xf, the transfer count does not decrement. The 4589 // DMA channel performs an endless sequence of transfers, never 4590 // triggering other channels or raising interrupts, until an ABORT 4591 // is raised. 4592 // 4593 // All other values are reserved. 4594 // 0x0 -> NORMAL 4595 // 0x1 -> TRIGGER_SELF 4596 // 0xf -> ENDLESS 4597 #define DMA_CH10_TRANS_COUNT_MODE_RESET _u(0x0) 4598 #define DMA_CH10_TRANS_COUNT_MODE_BITS _u(0xf0000000) 4599 #define DMA_CH10_TRANS_COUNT_MODE_MSB _u(31) 4600 #define DMA_CH10_TRANS_COUNT_MODE_LSB _u(28) 4601 #define DMA_CH10_TRANS_COUNT_MODE_ACCESS "RW" 4602 #define DMA_CH10_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 4603 #define DMA_CH10_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 4604 #define DMA_CH10_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 4605 // ----------------------------------------------------------------------------- 4606 // Field : DMA_CH10_TRANS_COUNT_COUNT 4607 // Description : 28-bit transfer count (256 million transfers maximum). 4608 // 4609 // Program the number of bus transfers a channel will perform 4610 // before halting. Note that, if transfers are larger than one 4611 // byte in size, this is not equal to the number of bytes 4612 // transferred (see CTRL_DATA_SIZE). 4613 // 4614 // When the channel is active, reading this register shows the 4615 // number of transfers remaining, updating automatically each time 4616 // a write transfer completes. 4617 // 4618 // Writing this register sets the RELOAD value for the transfer 4619 // counter. Each time this channel is triggered, the RELOAD value 4620 // is copied into the live transfer counter. The channel can be 4621 // started multiple times, and will perform the same number of 4622 // transfers each time, as programmed by most recent write. 4623 // 4624 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 4625 // is used as a trigger, the written value is used immediately as 4626 // the length of the new transfer sequence, as well as being 4627 // written to RELOAD. 4628 #define DMA_CH10_TRANS_COUNT_COUNT_RESET _u(0x0000000) 4629 #define DMA_CH10_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 4630 #define DMA_CH10_TRANS_COUNT_COUNT_MSB _u(27) 4631 #define DMA_CH10_TRANS_COUNT_COUNT_LSB _u(0) 4632 #define DMA_CH10_TRANS_COUNT_COUNT_ACCESS "RW" 4633 // ============================================================================= 4634 // Register : DMA_CH10_CTRL_TRIG 4635 // Description : DMA Channel 10 Control and Status 4636 #define DMA_CH10_CTRL_TRIG_OFFSET _u(0x0000028c) 4637 #define DMA_CH10_CTRL_TRIG_BITS _u(0xe7ffffff) 4638 #define DMA_CH10_CTRL_TRIG_RESET _u(0x00000000) 4639 // ----------------------------------------------------------------------------- 4640 // Field : DMA_CH10_CTRL_TRIG_AHB_ERROR 4641 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 4642 // halts when it encounters any bus error, and always raises its 4643 // channel IRQ flag. 4644 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 4645 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 4646 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_MSB _u(31) 4647 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_LSB _u(31) 4648 #define DMA_CH10_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 4649 // ----------------------------------------------------------------------------- 4650 // Field : DMA_CH10_CTRL_TRIG_READ_ERROR 4651 // Description : If 1, the channel received a read bus error. Write one to 4652 // clear. 4653 // READ_ADDR shows the approximate address where the bus error was 4654 // encountered (will not be earlier, or more than 3 transfers 4655 // later) 4656 #define DMA_CH10_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 4657 #define DMA_CH10_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 4658 #define DMA_CH10_CTRL_TRIG_READ_ERROR_MSB _u(30) 4659 #define DMA_CH10_CTRL_TRIG_READ_ERROR_LSB _u(30) 4660 #define DMA_CH10_CTRL_TRIG_READ_ERROR_ACCESS "WC" 4661 // ----------------------------------------------------------------------------- 4662 // Field : DMA_CH10_CTRL_TRIG_WRITE_ERROR 4663 // Description : If 1, the channel received a write bus error. Write one to 4664 // clear. 4665 // WRITE_ADDR shows the approximate address where the bus error 4666 // was encountered (will not be earlier, or more than 5 transfers 4667 // later) 4668 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 4669 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 4670 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 4671 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 4672 #define DMA_CH10_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 4673 // ----------------------------------------------------------------------------- 4674 // Field : DMA_CH10_CTRL_TRIG_BUSY 4675 // Description : This flag goes high when the channel starts a new transfer 4676 // sequence, and low when the last transfer of that sequence 4677 // completes. Clearing EN while BUSY is high pauses the channel, 4678 // and BUSY will stay high while paused. 4679 // 4680 // To terminate a sequence early (and clear the BUSY flag), see 4681 // CHAN_ABORT. 4682 #define DMA_CH10_CTRL_TRIG_BUSY_RESET _u(0x0) 4683 #define DMA_CH10_CTRL_TRIG_BUSY_BITS _u(0x04000000) 4684 #define DMA_CH10_CTRL_TRIG_BUSY_MSB _u(26) 4685 #define DMA_CH10_CTRL_TRIG_BUSY_LSB _u(26) 4686 #define DMA_CH10_CTRL_TRIG_BUSY_ACCESS "RO" 4687 // ----------------------------------------------------------------------------- 4688 // Field : DMA_CH10_CTRL_TRIG_SNIFF_EN 4689 // Description : If 1, this channel's data transfers are visible to the sniff 4690 // hardware, and each transfer will advance the state of the 4691 // checksum. This only applies if the sniff hardware is enabled, 4692 // and has this channel selected. 4693 // 4694 // This allows checksum to be enabled or disabled on a per- 4695 // control- block basis. 4696 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 4697 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 4698 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_MSB _u(25) 4699 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_LSB _u(25) 4700 #define DMA_CH10_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 4701 // ----------------------------------------------------------------------------- 4702 // Field : DMA_CH10_CTRL_TRIG_BSWAP 4703 // Description : Apply byte-swap transformation to DMA data. 4704 // For byte data, this has no effect. For halfword data, the two 4705 // bytes of each halfword are swapped. For word data, the four 4706 // bytes of each word are swapped to reverse order. 4707 #define DMA_CH10_CTRL_TRIG_BSWAP_RESET _u(0x0) 4708 #define DMA_CH10_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 4709 #define DMA_CH10_CTRL_TRIG_BSWAP_MSB _u(24) 4710 #define DMA_CH10_CTRL_TRIG_BSWAP_LSB _u(24) 4711 #define DMA_CH10_CTRL_TRIG_BSWAP_ACCESS "RW" 4712 // ----------------------------------------------------------------------------- 4713 // Field : DMA_CH10_CTRL_TRIG_IRQ_QUIET 4714 // Description : In QUIET mode, the channel does not generate IRQs at the end of 4715 // every transfer block. Instead, an IRQ is raised when NULL is 4716 // written to a trigger register, indicating the end of a control 4717 // block chain. 4718 // 4719 // This reduces the number of interrupts to be serviced by the CPU 4720 // when transferring a DMA chain of many small control blocks. 4721 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 4722 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 4723 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 4724 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 4725 #define DMA_CH10_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 4726 // ----------------------------------------------------------------------------- 4727 // Field : DMA_CH10_CTRL_TRIG_TREQ_SEL 4728 // Description : Select a Transfer Request signal. 4729 // The channel uses the transfer request signal to pace its data 4730 // transfer rate. Sources for TREQ signals are internal (TIMERS) 4731 // or external (DREQ, a Data Request from the system). 4732 // 0x0 to 0x3a -> select DREQ n as TREQ 4733 // 0x3b -> Select Timer 0 as TREQ 4734 // 0x3c -> Select Timer 1 as TREQ 4735 // 0x3d -> Select Timer 2 as TREQ (Optional) 4736 // 0x3e -> Select Timer 3 as TREQ (Optional) 4737 // 0x3f -> Permanent request, for unpaced transfers. 4738 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 4739 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 4740 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_MSB _u(22) 4741 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_LSB _u(17) 4742 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 4743 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 4744 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 4745 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 4746 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 4747 #define DMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 4748 // ----------------------------------------------------------------------------- 4749 // Field : DMA_CH10_CTRL_TRIG_CHAIN_TO 4750 // Description : When this channel completes, it will trigger the channel 4751 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 4752 // channel)_. 4753 // 4754 // Note this field resets to 0, so channels 1 and above will chain 4755 // to channel 0 by default. Set this field to avoid this 4756 // behaviour. 4757 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 4758 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 4759 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_MSB _u(16) 4760 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_LSB _u(13) 4761 #define DMA_CH10_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 4762 // ----------------------------------------------------------------------------- 4763 // Field : DMA_CH10_CTRL_TRIG_RING_SEL 4764 // Description : Select whether RING_SIZE applies to read or write addresses. 4765 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 4766 // boundary. If 1, write addresses are wrapped. 4767 #define DMA_CH10_CTRL_TRIG_RING_SEL_RESET _u(0x0) 4768 #define DMA_CH10_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 4769 #define DMA_CH10_CTRL_TRIG_RING_SEL_MSB _u(12) 4770 #define DMA_CH10_CTRL_TRIG_RING_SEL_LSB _u(12) 4771 #define DMA_CH10_CTRL_TRIG_RING_SEL_ACCESS "RW" 4772 // ----------------------------------------------------------------------------- 4773 // Field : DMA_CH10_CTRL_TRIG_RING_SIZE 4774 // Description : Size of address wrap region. If 0, don't wrap. For values n > 4775 // 0, only the lower n bits of the address will change. This wraps 4776 // the address on a (1 << n) byte boundary, facilitating access to 4777 // naturally-aligned ring buffers. 4778 // 4779 // Ring sizes between 2 and 32768 bytes are possible. This can 4780 // apply to either read or write addresses, based on value of 4781 // RING_SEL. 4782 // 0x0 -> RING_NONE 4783 #define DMA_CH10_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 4784 #define DMA_CH10_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 4785 #define DMA_CH10_CTRL_TRIG_RING_SIZE_MSB _u(11) 4786 #define DMA_CH10_CTRL_TRIG_RING_SIZE_LSB _u(8) 4787 #define DMA_CH10_CTRL_TRIG_RING_SIZE_ACCESS "RW" 4788 #define DMA_CH10_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 4789 // ----------------------------------------------------------------------------- 4790 // Field : DMA_CH10_CTRL_TRIG_INCR_WRITE_REV 4791 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 4792 // rather than incremented with each transfer. 4793 // 4794 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 4795 // causes the write address to be incremented by twice the 4796 // transfer size, i.e. skipping over alternate addresses. 4797 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 4798 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 4799 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 4800 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 4801 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 4802 // ----------------------------------------------------------------------------- 4803 // Field : DMA_CH10_CTRL_TRIG_INCR_WRITE 4804 // Description : If 1, the write address increments with each transfer. If 0, 4805 // each write is directed to the same, initial address. 4806 // 4807 // Generally this should be disabled for memory-to-peripheral 4808 // transfers. 4809 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 4810 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 4811 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_MSB _u(6) 4812 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_LSB _u(6) 4813 #define DMA_CH10_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 4814 // ----------------------------------------------------------------------------- 4815 // Field : DMA_CH10_CTRL_TRIG_INCR_READ_REV 4816 // Description : If 1, and INCR_READ is 1, the read address is decremented 4817 // rather than incremented with each transfer. 4818 // 4819 // If 1, and INCR_READ is 0, this otherwise-unused combination 4820 // causes the read address to be incremented by twice the transfer 4821 // size, i.e. skipping over alternate addresses. 4822 #define DMA_CH10_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 4823 #define DMA_CH10_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 4824 #define DMA_CH10_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 4825 #define DMA_CH10_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 4826 #define DMA_CH10_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 4827 // ----------------------------------------------------------------------------- 4828 // Field : DMA_CH10_CTRL_TRIG_INCR_READ 4829 // Description : If 1, the read address increments with each transfer. If 0, 4830 // each read is directed to the same, initial address. 4831 // 4832 // Generally this should be disabled for peripheral-to-memory 4833 // transfers. 4834 #define DMA_CH10_CTRL_TRIG_INCR_READ_RESET _u(0x0) 4835 #define DMA_CH10_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 4836 #define DMA_CH10_CTRL_TRIG_INCR_READ_MSB _u(4) 4837 #define DMA_CH10_CTRL_TRIG_INCR_READ_LSB _u(4) 4838 #define DMA_CH10_CTRL_TRIG_INCR_READ_ACCESS "RW" 4839 // ----------------------------------------------------------------------------- 4840 // Field : DMA_CH10_CTRL_TRIG_DATA_SIZE 4841 // Description : Set the size of each bus transfer (byte/halfword/word). 4842 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 4843 // with each transfer. 4844 // 0x0 -> SIZE_BYTE 4845 // 0x1 -> SIZE_HALFWORD 4846 // 0x2 -> SIZE_WORD 4847 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 4848 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 4849 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_MSB _u(3) 4850 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_LSB _u(2) 4851 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 4852 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 4853 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 4854 #define DMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 4855 // ----------------------------------------------------------------------------- 4856 // Field : DMA_CH10_CTRL_TRIG_HIGH_PRIORITY 4857 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 4858 // scheduling: in each scheduling round, all high priority 4859 // channels are considered first, and then only a single low 4860 // priority channel, before returning to the high priority 4861 // channels. 4862 // 4863 // This only affects the order in which the DMA schedules 4864 // channels. The DMA's bus priority is not changed. If the DMA is 4865 // not saturated then a low priority channel will see no loss of 4866 // throughput. 4867 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 4868 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 4869 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 4870 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 4871 #define DMA_CH10_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 4872 // ----------------------------------------------------------------------------- 4873 // Field : DMA_CH10_CTRL_TRIG_EN 4874 // Description : DMA Channel Enable. 4875 // When 1, the channel will respond to triggering events, which 4876 // will cause it to become BUSY and start transferring data. When 4877 // 0, the channel will ignore triggers, stop issuing transfers, 4878 // and pause the current transfer sequence (i.e. BUSY will remain 4879 // high if already high) 4880 #define DMA_CH10_CTRL_TRIG_EN_RESET _u(0x0) 4881 #define DMA_CH10_CTRL_TRIG_EN_BITS _u(0x00000001) 4882 #define DMA_CH10_CTRL_TRIG_EN_MSB _u(0) 4883 #define DMA_CH10_CTRL_TRIG_EN_LSB _u(0) 4884 #define DMA_CH10_CTRL_TRIG_EN_ACCESS "RW" 4885 // ============================================================================= 4886 // Register : DMA_CH10_AL1_CTRL 4887 // Description : Alias for channel 10 CTRL register 4888 #define DMA_CH10_AL1_CTRL_OFFSET _u(0x00000290) 4889 #define DMA_CH10_AL1_CTRL_BITS _u(0xffffffff) 4890 #define DMA_CH10_AL1_CTRL_RESET "-" 4891 #define DMA_CH10_AL1_CTRL_MSB _u(31) 4892 #define DMA_CH10_AL1_CTRL_LSB _u(0) 4893 #define DMA_CH10_AL1_CTRL_ACCESS "RW" 4894 // ============================================================================= 4895 // Register : DMA_CH10_AL1_READ_ADDR 4896 // Description : Alias for channel 10 READ_ADDR register 4897 #define DMA_CH10_AL1_READ_ADDR_OFFSET _u(0x00000294) 4898 #define DMA_CH10_AL1_READ_ADDR_BITS _u(0xffffffff) 4899 #define DMA_CH10_AL1_READ_ADDR_RESET "-" 4900 #define DMA_CH10_AL1_READ_ADDR_MSB _u(31) 4901 #define DMA_CH10_AL1_READ_ADDR_LSB _u(0) 4902 #define DMA_CH10_AL1_READ_ADDR_ACCESS "RW" 4903 // ============================================================================= 4904 // Register : DMA_CH10_AL1_WRITE_ADDR 4905 // Description : Alias for channel 10 WRITE_ADDR register 4906 #define DMA_CH10_AL1_WRITE_ADDR_OFFSET _u(0x00000298) 4907 #define DMA_CH10_AL1_WRITE_ADDR_BITS _u(0xffffffff) 4908 #define DMA_CH10_AL1_WRITE_ADDR_RESET "-" 4909 #define DMA_CH10_AL1_WRITE_ADDR_MSB _u(31) 4910 #define DMA_CH10_AL1_WRITE_ADDR_LSB _u(0) 4911 #define DMA_CH10_AL1_WRITE_ADDR_ACCESS "RW" 4912 // ============================================================================= 4913 // Register : DMA_CH10_AL1_TRANS_COUNT_TRIG 4914 // Description : Alias for channel 10 TRANS_COUNT register 4915 // This is a trigger register (0xc). Writing a nonzero value will 4916 // reload the channel counter and start the channel. 4917 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000029c) 4918 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 4919 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_RESET "-" 4920 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_MSB _u(31) 4921 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_LSB _u(0) 4922 #define DMA_CH10_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 4923 // ============================================================================= 4924 // Register : DMA_CH10_AL2_CTRL 4925 // Description : Alias for channel 10 CTRL register 4926 #define DMA_CH10_AL2_CTRL_OFFSET _u(0x000002a0) 4927 #define DMA_CH10_AL2_CTRL_BITS _u(0xffffffff) 4928 #define DMA_CH10_AL2_CTRL_RESET "-" 4929 #define DMA_CH10_AL2_CTRL_MSB _u(31) 4930 #define DMA_CH10_AL2_CTRL_LSB _u(0) 4931 #define DMA_CH10_AL2_CTRL_ACCESS "RW" 4932 // ============================================================================= 4933 // Register : DMA_CH10_AL2_TRANS_COUNT 4934 // Description : Alias for channel 10 TRANS_COUNT register 4935 #define DMA_CH10_AL2_TRANS_COUNT_OFFSET _u(0x000002a4) 4936 #define DMA_CH10_AL2_TRANS_COUNT_BITS _u(0xffffffff) 4937 #define DMA_CH10_AL2_TRANS_COUNT_RESET "-" 4938 #define DMA_CH10_AL2_TRANS_COUNT_MSB _u(31) 4939 #define DMA_CH10_AL2_TRANS_COUNT_LSB _u(0) 4940 #define DMA_CH10_AL2_TRANS_COUNT_ACCESS "RW" 4941 // ============================================================================= 4942 // Register : DMA_CH10_AL2_READ_ADDR 4943 // Description : Alias for channel 10 READ_ADDR register 4944 #define DMA_CH10_AL2_READ_ADDR_OFFSET _u(0x000002a8) 4945 #define DMA_CH10_AL2_READ_ADDR_BITS _u(0xffffffff) 4946 #define DMA_CH10_AL2_READ_ADDR_RESET "-" 4947 #define DMA_CH10_AL2_READ_ADDR_MSB _u(31) 4948 #define DMA_CH10_AL2_READ_ADDR_LSB _u(0) 4949 #define DMA_CH10_AL2_READ_ADDR_ACCESS "RW" 4950 // ============================================================================= 4951 // Register : DMA_CH10_AL2_WRITE_ADDR_TRIG 4952 // Description : Alias for channel 10 WRITE_ADDR register 4953 // This is a trigger register (0xc). Writing a nonzero value will 4954 // reload the channel counter and start the channel. 4955 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000002ac) 4956 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 4957 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_RESET "-" 4958 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_MSB _u(31) 4959 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_LSB _u(0) 4960 #define DMA_CH10_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 4961 // ============================================================================= 4962 // Register : DMA_CH10_AL3_CTRL 4963 // Description : Alias for channel 10 CTRL register 4964 #define DMA_CH10_AL3_CTRL_OFFSET _u(0x000002b0) 4965 #define DMA_CH10_AL3_CTRL_BITS _u(0xffffffff) 4966 #define DMA_CH10_AL3_CTRL_RESET "-" 4967 #define DMA_CH10_AL3_CTRL_MSB _u(31) 4968 #define DMA_CH10_AL3_CTRL_LSB _u(0) 4969 #define DMA_CH10_AL3_CTRL_ACCESS "RW" 4970 // ============================================================================= 4971 // Register : DMA_CH10_AL3_WRITE_ADDR 4972 // Description : Alias for channel 10 WRITE_ADDR register 4973 #define DMA_CH10_AL3_WRITE_ADDR_OFFSET _u(0x000002b4) 4974 #define DMA_CH10_AL3_WRITE_ADDR_BITS _u(0xffffffff) 4975 #define DMA_CH10_AL3_WRITE_ADDR_RESET "-" 4976 #define DMA_CH10_AL3_WRITE_ADDR_MSB _u(31) 4977 #define DMA_CH10_AL3_WRITE_ADDR_LSB _u(0) 4978 #define DMA_CH10_AL3_WRITE_ADDR_ACCESS "RW" 4979 // ============================================================================= 4980 // Register : DMA_CH10_AL3_TRANS_COUNT 4981 // Description : Alias for channel 10 TRANS_COUNT register 4982 #define DMA_CH10_AL3_TRANS_COUNT_OFFSET _u(0x000002b8) 4983 #define DMA_CH10_AL3_TRANS_COUNT_BITS _u(0xffffffff) 4984 #define DMA_CH10_AL3_TRANS_COUNT_RESET "-" 4985 #define DMA_CH10_AL3_TRANS_COUNT_MSB _u(31) 4986 #define DMA_CH10_AL3_TRANS_COUNT_LSB _u(0) 4987 #define DMA_CH10_AL3_TRANS_COUNT_ACCESS "RW" 4988 // ============================================================================= 4989 // Register : DMA_CH10_AL3_READ_ADDR_TRIG 4990 // Description : Alias for channel 10 READ_ADDR register 4991 // This is a trigger register (0xc). Writing a nonzero value will 4992 // reload the channel counter and start the channel. 4993 #define DMA_CH10_AL3_READ_ADDR_TRIG_OFFSET _u(0x000002bc) 4994 #define DMA_CH10_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 4995 #define DMA_CH10_AL3_READ_ADDR_TRIG_RESET "-" 4996 #define DMA_CH10_AL3_READ_ADDR_TRIG_MSB _u(31) 4997 #define DMA_CH10_AL3_READ_ADDR_TRIG_LSB _u(0) 4998 #define DMA_CH10_AL3_READ_ADDR_TRIG_ACCESS "RW" 4999 // ============================================================================= 5000 // Register : DMA_CH11_READ_ADDR 5001 // Description : DMA Channel 11 Read Address pointer 5002 // This register updates automatically each time a read completes. 5003 // The current value is the next address to be read by this 5004 // channel. 5005 #define DMA_CH11_READ_ADDR_OFFSET _u(0x000002c0) 5006 #define DMA_CH11_READ_ADDR_BITS _u(0xffffffff) 5007 #define DMA_CH11_READ_ADDR_RESET _u(0x00000000) 5008 #define DMA_CH11_READ_ADDR_MSB _u(31) 5009 #define DMA_CH11_READ_ADDR_LSB _u(0) 5010 #define DMA_CH11_READ_ADDR_ACCESS "RW" 5011 // ============================================================================= 5012 // Register : DMA_CH11_WRITE_ADDR 5013 // Description : DMA Channel 11 Write Address pointer 5014 // This register updates automatically each time a write 5015 // completes. The current value is the next address to be written 5016 // by this channel. 5017 #define DMA_CH11_WRITE_ADDR_OFFSET _u(0x000002c4) 5018 #define DMA_CH11_WRITE_ADDR_BITS _u(0xffffffff) 5019 #define DMA_CH11_WRITE_ADDR_RESET _u(0x00000000) 5020 #define DMA_CH11_WRITE_ADDR_MSB _u(31) 5021 #define DMA_CH11_WRITE_ADDR_LSB _u(0) 5022 #define DMA_CH11_WRITE_ADDR_ACCESS "RW" 5023 // ============================================================================= 5024 // Register : DMA_CH11_TRANS_COUNT 5025 // Description : DMA Channel 11 Transfer Count 5026 #define DMA_CH11_TRANS_COUNT_OFFSET _u(0x000002c8) 5027 #define DMA_CH11_TRANS_COUNT_BITS _u(0xffffffff) 5028 #define DMA_CH11_TRANS_COUNT_RESET _u(0x00000000) 5029 // ----------------------------------------------------------------------------- 5030 // Field : DMA_CH11_TRANS_COUNT_MODE 5031 // Description : When MODE is 0x0, the transfer count decrements with each 5032 // transfer until 0, and then the channel triggers the next 5033 // channel indicated by CTRL_CHAIN_TO. 5034 // 5035 // When MODE is 0x1, the transfer count decrements with each 5036 // transfer until 0, and then the channel re-triggers itself, in 5037 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 5038 // useful for e.g. an endless ring-buffer DMA with periodic 5039 // interrupts. 5040 // 5041 // When MODE is 0xf, the transfer count does not decrement. The 5042 // DMA channel performs an endless sequence of transfers, never 5043 // triggering other channels or raising interrupts, until an ABORT 5044 // is raised. 5045 // 5046 // All other values are reserved. 5047 // 0x0 -> NORMAL 5048 // 0x1 -> TRIGGER_SELF 5049 // 0xf -> ENDLESS 5050 #define DMA_CH11_TRANS_COUNT_MODE_RESET _u(0x0) 5051 #define DMA_CH11_TRANS_COUNT_MODE_BITS _u(0xf0000000) 5052 #define DMA_CH11_TRANS_COUNT_MODE_MSB _u(31) 5053 #define DMA_CH11_TRANS_COUNT_MODE_LSB _u(28) 5054 #define DMA_CH11_TRANS_COUNT_MODE_ACCESS "RW" 5055 #define DMA_CH11_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 5056 #define DMA_CH11_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 5057 #define DMA_CH11_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 5058 // ----------------------------------------------------------------------------- 5059 // Field : DMA_CH11_TRANS_COUNT_COUNT 5060 // Description : 28-bit transfer count (256 million transfers maximum). 5061 // 5062 // Program the number of bus transfers a channel will perform 5063 // before halting. Note that, if transfers are larger than one 5064 // byte in size, this is not equal to the number of bytes 5065 // transferred (see CTRL_DATA_SIZE). 5066 // 5067 // When the channel is active, reading this register shows the 5068 // number of transfers remaining, updating automatically each time 5069 // a write transfer completes. 5070 // 5071 // Writing this register sets the RELOAD value for the transfer 5072 // counter. Each time this channel is triggered, the RELOAD value 5073 // is copied into the live transfer counter. The channel can be 5074 // started multiple times, and will perform the same number of 5075 // transfers each time, as programmed by most recent write. 5076 // 5077 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 5078 // is used as a trigger, the written value is used immediately as 5079 // the length of the new transfer sequence, as well as being 5080 // written to RELOAD. 5081 #define DMA_CH11_TRANS_COUNT_COUNT_RESET _u(0x0000000) 5082 #define DMA_CH11_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 5083 #define DMA_CH11_TRANS_COUNT_COUNT_MSB _u(27) 5084 #define DMA_CH11_TRANS_COUNT_COUNT_LSB _u(0) 5085 #define DMA_CH11_TRANS_COUNT_COUNT_ACCESS "RW" 5086 // ============================================================================= 5087 // Register : DMA_CH11_CTRL_TRIG 5088 // Description : DMA Channel 11 Control and Status 5089 #define DMA_CH11_CTRL_TRIG_OFFSET _u(0x000002cc) 5090 #define DMA_CH11_CTRL_TRIG_BITS _u(0xe7ffffff) 5091 #define DMA_CH11_CTRL_TRIG_RESET _u(0x00000000) 5092 // ----------------------------------------------------------------------------- 5093 // Field : DMA_CH11_CTRL_TRIG_AHB_ERROR 5094 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 5095 // halts when it encounters any bus error, and always raises its 5096 // channel IRQ flag. 5097 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 5098 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 5099 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_MSB _u(31) 5100 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_LSB _u(31) 5101 #define DMA_CH11_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 5102 // ----------------------------------------------------------------------------- 5103 // Field : DMA_CH11_CTRL_TRIG_READ_ERROR 5104 // Description : If 1, the channel received a read bus error. Write one to 5105 // clear. 5106 // READ_ADDR shows the approximate address where the bus error was 5107 // encountered (will not be earlier, or more than 3 transfers 5108 // later) 5109 #define DMA_CH11_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 5110 #define DMA_CH11_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 5111 #define DMA_CH11_CTRL_TRIG_READ_ERROR_MSB _u(30) 5112 #define DMA_CH11_CTRL_TRIG_READ_ERROR_LSB _u(30) 5113 #define DMA_CH11_CTRL_TRIG_READ_ERROR_ACCESS "WC" 5114 // ----------------------------------------------------------------------------- 5115 // Field : DMA_CH11_CTRL_TRIG_WRITE_ERROR 5116 // Description : If 1, the channel received a write bus error. Write one to 5117 // clear. 5118 // WRITE_ADDR shows the approximate address where the bus error 5119 // was encountered (will not be earlier, or more than 5 transfers 5120 // later) 5121 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 5122 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 5123 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 5124 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 5125 #define DMA_CH11_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 5126 // ----------------------------------------------------------------------------- 5127 // Field : DMA_CH11_CTRL_TRIG_BUSY 5128 // Description : This flag goes high when the channel starts a new transfer 5129 // sequence, and low when the last transfer of that sequence 5130 // completes. Clearing EN while BUSY is high pauses the channel, 5131 // and BUSY will stay high while paused. 5132 // 5133 // To terminate a sequence early (and clear the BUSY flag), see 5134 // CHAN_ABORT. 5135 #define DMA_CH11_CTRL_TRIG_BUSY_RESET _u(0x0) 5136 #define DMA_CH11_CTRL_TRIG_BUSY_BITS _u(0x04000000) 5137 #define DMA_CH11_CTRL_TRIG_BUSY_MSB _u(26) 5138 #define DMA_CH11_CTRL_TRIG_BUSY_LSB _u(26) 5139 #define DMA_CH11_CTRL_TRIG_BUSY_ACCESS "RO" 5140 // ----------------------------------------------------------------------------- 5141 // Field : DMA_CH11_CTRL_TRIG_SNIFF_EN 5142 // Description : If 1, this channel's data transfers are visible to the sniff 5143 // hardware, and each transfer will advance the state of the 5144 // checksum. This only applies if the sniff hardware is enabled, 5145 // and has this channel selected. 5146 // 5147 // This allows checksum to be enabled or disabled on a per- 5148 // control- block basis. 5149 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 5150 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 5151 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_MSB _u(25) 5152 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_LSB _u(25) 5153 #define DMA_CH11_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 5154 // ----------------------------------------------------------------------------- 5155 // Field : DMA_CH11_CTRL_TRIG_BSWAP 5156 // Description : Apply byte-swap transformation to DMA data. 5157 // For byte data, this has no effect. For halfword data, the two 5158 // bytes of each halfword are swapped. For word data, the four 5159 // bytes of each word are swapped to reverse order. 5160 #define DMA_CH11_CTRL_TRIG_BSWAP_RESET _u(0x0) 5161 #define DMA_CH11_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 5162 #define DMA_CH11_CTRL_TRIG_BSWAP_MSB _u(24) 5163 #define DMA_CH11_CTRL_TRIG_BSWAP_LSB _u(24) 5164 #define DMA_CH11_CTRL_TRIG_BSWAP_ACCESS "RW" 5165 // ----------------------------------------------------------------------------- 5166 // Field : DMA_CH11_CTRL_TRIG_IRQ_QUIET 5167 // Description : In QUIET mode, the channel does not generate IRQs at the end of 5168 // every transfer block. Instead, an IRQ is raised when NULL is 5169 // written to a trigger register, indicating the end of a control 5170 // block chain. 5171 // 5172 // This reduces the number of interrupts to be serviced by the CPU 5173 // when transferring a DMA chain of many small control blocks. 5174 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 5175 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 5176 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 5177 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 5178 #define DMA_CH11_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 5179 // ----------------------------------------------------------------------------- 5180 // Field : DMA_CH11_CTRL_TRIG_TREQ_SEL 5181 // Description : Select a Transfer Request signal. 5182 // The channel uses the transfer request signal to pace its data 5183 // transfer rate. Sources for TREQ signals are internal (TIMERS) 5184 // or external (DREQ, a Data Request from the system). 5185 // 0x0 to 0x3a -> select DREQ n as TREQ 5186 // 0x3b -> Select Timer 0 as TREQ 5187 // 0x3c -> Select Timer 1 as TREQ 5188 // 0x3d -> Select Timer 2 as TREQ (Optional) 5189 // 0x3e -> Select Timer 3 as TREQ (Optional) 5190 // 0x3f -> Permanent request, for unpaced transfers. 5191 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 5192 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 5193 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_MSB _u(22) 5194 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_LSB _u(17) 5195 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 5196 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 5197 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 5198 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 5199 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 5200 #define DMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 5201 // ----------------------------------------------------------------------------- 5202 // Field : DMA_CH11_CTRL_TRIG_CHAIN_TO 5203 // Description : When this channel completes, it will trigger the channel 5204 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 5205 // channel)_. 5206 // 5207 // Note this field resets to 0, so channels 1 and above will chain 5208 // to channel 0 by default. Set this field to avoid this 5209 // behaviour. 5210 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 5211 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 5212 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_MSB _u(16) 5213 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_LSB _u(13) 5214 #define DMA_CH11_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 5215 // ----------------------------------------------------------------------------- 5216 // Field : DMA_CH11_CTRL_TRIG_RING_SEL 5217 // Description : Select whether RING_SIZE applies to read or write addresses. 5218 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 5219 // boundary. If 1, write addresses are wrapped. 5220 #define DMA_CH11_CTRL_TRIG_RING_SEL_RESET _u(0x0) 5221 #define DMA_CH11_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 5222 #define DMA_CH11_CTRL_TRIG_RING_SEL_MSB _u(12) 5223 #define DMA_CH11_CTRL_TRIG_RING_SEL_LSB _u(12) 5224 #define DMA_CH11_CTRL_TRIG_RING_SEL_ACCESS "RW" 5225 // ----------------------------------------------------------------------------- 5226 // Field : DMA_CH11_CTRL_TRIG_RING_SIZE 5227 // Description : Size of address wrap region. If 0, don't wrap. For values n > 5228 // 0, only the lower n bits of the address will change. This wraps 5229 // the address on a (1 << n) byte boundary, facilitating access to 5230 // naturally-aligned ring buffers. 5231 // 5232 // Ring sizes between 2 and 32768 bytes are possible. This can 5233 // apply to either read or write addresses, based on value of 5234 // RING_SEL. 5235 // 0x0 -> RING_NONE 5236 #define DMA_CH11_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 5237 #define DMA_CH11_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 5238 #define DMA_CH11_CTRL_TRIG_RING_SIZE_MSB _u(11) 5239 #define DMA_CH11_CTRL_TRIG_RING_SIZE_LSB _u(8) 5240 #define DMA_CH11_CTRL_TRIG_RING_SIZE_ACCESS "RW" 5241 #define DMA_CH11_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 5242 // ----------------------------------------------------------------------------- 5243 // Field : DMA_CH11_CTRL_TRIG_INCR_WRITE_REV 5244 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 5245 // rather than incremented with each transfer. 5246 // 5247 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 5248 // causes the write address to be incremented by twice the 5249 // transfer size, i.e. skipping over alternate addresses. 5250 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 5251 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 5252 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 5253 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 5254 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 5255 // ----------------------------------------------------------------------------- 5256 // Field : DMA_CH11_CTRL_TRIG_INCR_WRITE 5257 // Description : If 1, the write address increments with each transfer. If 0, 5258 // each write is directed to the same, initial address. 5259 // 5260 // Generally this should be disabled for memory-to-peripheral 5261 // transfers. 5262 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 5263 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 5264 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_MSB _u(6) 5265 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_LSB _u(6) 5266 #define DMA_CH11_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 5267 // ----------------------------------------------------------------------------- 5268 // Field : DMA_CH11_CTRL_TRIG_INCR_READ_REV 5269 // Description : If 1, and INCR_READ is 1, the read address is decremented 5270 // rather than incremented with each transfer. 5271 // 5272 // If 1, and INCR_READ is 0, this otherwise-unused combination 5273 // causes the read address to be incremented by twice the transfer 5274 // size, i.e. skipping over alternate addresses. 5275 #define DMA_CH11_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 5276 #define DMA_CH11_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 5277 #define DMA_CH11_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 5278 #define DMA_CH11_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 5279 #define DMA_CH11_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 5280 // ----------------------------------------------------------------------------- 5281 // Field : DMA_CH11_CTRL_TRIG_INCR_READ 5282 // Description : If 1, the read address increments with each transfer. If 0, 5283 // each read is directed to the same, initial address. 5284 // 5285 // Generally this should be disabled for peripheral-to-memory 5286 // transfers. 5287 #define DMA_CH11_CTRL_TRIG_INCR_READ_RESET _u(0x0) 5288 #define DMA_CH11_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 5289 #define DMA_CH11_CTRL_TRIG_INCR_READ_MSB _u(4) 5290 #define DMA_CH11_CTRL_TRIG_INCR_READ_LSB _u(4) 5291 #define DMA_CH11_CTRL_TRIG_INCR_READ_ACCESS "RW" 5292 // ----------------------------------------------------------------------------- 5293 // Field : DMA_CH11_CTRL_TRIG_DATA_SIZE 5294 // Description : Set the size of each bus transfer (byte/halfword/word). 5295 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 5296 // with each transfer. 5297 // 0x0 -> SIZE_BYTE 5298 // 0x1 -> SIZE_HALFWORD 5299 // 0x2 -> SIZE_WORD 5300 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 5301 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 5302 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_MSB _u(3) 5303 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_LSB _u(2) 5304 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 5305 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 5306 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 5307 #define DMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 5308 // ----------------------------------------------------------------------------- 5309 // Field : DMA_CH11_CTRL_TRIG_HIGH_PRIORITY 5310 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 5311 // scheduling: in each scheduling round, all high priority 5312 // channels are considered first, and then only a single low 5313 // priority channel, before returning to the high priority 5314 // channels. 5315 // 5316 // This only affects the order in which the DMA schedules 5317 // channels. The DMA's bus priority is not changed. If the DMA is 5318 // not saturated then a low priority channel will see no loss of 5319 // throughput. 5320 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 5321 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 5322 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 5323 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 5324 #define DMA_CH11_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 5325 // ----------------------------------------------------------------------------- 5326 // Field : DMA_CH11_CTRL_TRIG_EN 5327 // Description : DMA Channel Enable. 5328 // When 1, the channel will respond to triggering events, which 5329 // will cause it to become BUSY and start transferring data. When 5330 // 0, the channel will ignore triggers, stop issuing transfers, 5331 // and pause the current transfer sequence (i.e. BUSY will remain 5332 // high if already high) 5333 #define DMA_CH11_CTRL_TRIG_EN_RESET _u(0x0) 5334 #define DMA_CH11_CTRL_TRIG_EN_BITS _u(0x00000001) 5335 #define DMA_CH11_CTRL_TRIG_EN_MSB _u(0) 5336 #define DMA_CH11_CTRL_TRIG_EN_LSB _u(0) 5337 #define DMA_CH11_CTRL_TRIG_EN_ACCESS "RW" 5338 // ============================================================================= 5339 // Register : DMA_CH11_AL1_CTRL 5340 // Description : Alias for channel 11 CTRL register 5341 #define DMA_CH11_AL1_CTRL_OFFSET _u(0x000002d0) 5342 #define DMA_CH11_AL1_CTRL_BITS _u(0xffffffff) 5343 #define DMA_CH11_AL1_CTRL_RESET "-" 5344 #define DMA_CH11_AL1_CTRL_MSB _u(31) 5345 #define DMA_CH11_AL1_CTRL_LSB _u(0) 5346 #define DMA_CH11_AL1_CTRL_ACCESS "RW" 5347 // ============================================================================= 5348 // Register : DMA_CH11_AL1_READ_ADDR 5349 // Description : Alias for channel 11 READ_ADDR register 5350 #define DMA_CH11_AL1_READ_ADDR_OFFSET _u(0x000002d4) 5351 #define DMA_CH11_AL1_READ_ADDR_BITS _u(0xffffffff) 5352 #define DMA_CH11_AL1_READ_ADDR_RESET "-" 5353 #define DMA_CH11_AL1_READ_ADDR_MSB _u(31) 5354 #define DMA_CH11_AL1_READ_ADDR_LSB _u(0) 5355 #define DMA_CH11_AL1_READ_ADDR_ACCESS "RW" 5356 // ============================================================================= 5357 // Register : DMA_CH11_AL1_WRITE_ADDR 5358 // Description : Alias for channel 11 WRITE_ADDR register 5359 #define DMA_CH11_AL1_WRITE_ADDR_OFFSET _u(0x000002d8) 5360 #define DMA_CH11_AL1_WRITE_ADDR_BITS _u(0xffffffff) 5361 #define DMA_CH11_AL1_WRITE_ADDR_RESET "-" 5362 #define DMA_CH11_AL1_WRITE_ADDR_MSB _u(31) 5363 #define DMA_CH11_AL1_WRITE_ADDR_LSB _u(0) 5364 #define DMA_CH11_AL1_WRITE_ADDR_ACCESS "RW" 5365 // ============================================================================= 5366 // Register : DMA_CH11_AL1_TRANS_COUNT_TRIG 5367 // Description : Alias for channel 11 TRANS_COUNT register 5368 // This is a trigger register (0xc). Writing a nonzero value will 5369 // reload the channel counter and start the channel. 5370 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000002dc) 5371 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 5372 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_RESET "-" 5373 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_MSB _u(31) 5374 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_LSB _u(0) 5375 #define DMA_CH11_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 5376 // ============================================================================= 5377 // Register : DMA_CH11_AL2_CTRL 5378 // Description : Alias for channel 11 CTRL register 5379 #define DMA_CH11_AL2_CTRL_OFFSET _u(0x000002e0) 5380 #define DMA_CH11_AL2_CTRL_BITS _u(0xffffffff) 5381 #define DMA_CH11_AL2_CTRL_RESET "-" 5382 #define DMA_CH11_AL2_CTRL_MSB _u(31) 5383 #define DMA_CH11_AL2_CTRL_LSB _u(0) 5384 #define DMA_CH11_AL2_CTRL_ACCESS "RW" 5385 // ============================================================================= 5386 // Register : DMA_CH11_AL2_TRANS_COUNT 5387 // Description : Alias for channel 11 TRANS_COUNT register 5388 #define DMA_CH11_AL2_TRANS_COUNT_OFFSET _u(0x000002e4) 5389 #define DMA_CH11_AL2_TRANS_COUNT_BITS _u(0xffffffff) 5390 #define DMA_CH11_AL2_TRANS_COUNT_RESET "-" 5391 #define DMA_CH11_AL2_TRANS_COUNT_MSB _u(31) 5392 #define DMA_CH11_AL2_TRANS_COUNT_LSB _u(0) 5393 #define DMA_CH11_AL2_TRANS_COUNT_ACCESS "RW" 5394 // ============================================================================= 5395 // Register : DMA_CH11_AL2_READ_ADDR 5396 // Description : Alias for channel 11 READ_ADDR register 5397 #define DMA_CH11_AL2_READ_ADDR_OFFSET _u(0x000002e8) 5398 #define DMA_CH11_AL2_READ_ADDR_BITS _u(0xffffffff) 5399 #define DMA_CH11_AL2_READ_ADDR_RESET "-" 5400 #define DMA_CH11_AL2_READ_ADDR_MSB _u(31) 5401 #define DMA_CH11_AL2_READ_ADDR_LSB _u(0) 5402 #define DMA_CH11_AL2_READ_ADDR_ACCESS "RW" 5403 // ============================================================================= 5404 // Register : DMA_CH11_AL2_WRITE_ADDR_TRIG 5405 // Description : Alias for channel 11 WRITE_ADDR register 5406 // This is a trigger register (0xc). Writing a nonzero value will 5407 // reload the channel counter and start the channel. 5408 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000002ec) 5409 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 5410 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_RESET "-" 5411 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_MSB _u(31) 5412 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_LSB _u(0) 5413 #define DMA_CH11_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 5414 // ============================================================================= 5415 // Register : DMA_CH11_AL3_CTRL 5416 // Description : Alias for channel 11 CTRL register 5417 #define DMA_CH11_AL3_CTRL_OFFSET _u(0x000002f0) 5418 #define DMA_CH11_AL3_CTRL_BITS _u(0xffffffff) 5419 #define DMA_CH11_AL3_CTRL_RESET "-" 5420 #define DMA_CH11_AL3_CTRL_MSB _u(31) 5421 #define DMA_CH11_AL3_CTRL_LSB _u(0) 5422 #define DMA_CH11_AL3_CTRL_ACCESS "RW" 5423 // ============================================================================= 5424 // Register : DMA_CH11_AL3_WRITE_ADDR 5425 // Description : Alias for channel 11 WRITE_ADDR register 5426 #define DMA_CH11_AL3_WRITE_ADDR_OFFSET _u(0x000002f4) 5427 #define DMA_CH11_AL3_WRITE_ADDR_BITS _u(0xffffffff) 5428 #define DMA_CH11_AL3_WRITE_ADDR_RESET "-" 5429 #define DMA_CH11_AL3_WRITE_ADDR_MSB _u(31) 5430 #define DMA_CH11_AL3_WRITE_ADDR_LSB _u(0) 5431 #define DMA_CH11_AL3_WRITE_ADDR_ACCESS "RW" 5432 // ============================================================================= 5433 // Register : DMA_CH11_AL3_TRANS_COUNT 5434 // Description : Alias for channel 11 TRANS_COUNT register 5435 #define DMA_CH11_AL3_TRANS_COUNT_OFFSET _u(0x000002f8) 5436 #define DMA_CH11_AL3_TRANS_COUNT_BITS _u(0xffffffff) 5437 #define DMA_CH11_AL3_TRANS_COUNT_RESET "-" 5438 #define DMA_CH11_AL3_TRANS_COUNT_MSB _u(31) 5439 #define DMA_CH11_AL3_TRANS_COUNT_LSB _u(0) 5440 #define DMA_CH11_AL3_TRANS_COUNT_ACCESS "RW" 5441 // ============================================================================= 5442 // Register : DMA_CH11_AL3_READ_ADDR_TRIG 5443 // Description : Alias for channel 11 READ_ADDR register 5444 // This is a trigger register (0xc). Writing a nonzero value will 5445 // reload the channel counter and start the channel. 5446 #define DMA_CH11_AL3_READ_ADDR_TRIG_OFFSET _u(0x000002fc) 5447 #define DMA_CH11_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 5448 #define DMA_CH11_AL3_READ_ADDR_TRIG_RESET "-" 5449 #define DMA_CH11_AL3_READ_ADDR_TRIG_MSB _u(31) 5450 #define DMA_CH11_AL3_READ_ADDR_TRIG_LSB _u(0) 5451 #define DMA_CH11_AL3_READ_ADDR_TRIG_ACCESS "RW" 5452 // ============================================================================= 5453 // Register : DMA_CH12_READ_ADDR 5454 // Description : DMA Channel 12 Read Address pointer 5455 // This register updates automatically each time a read completes. 5456 // The current value is the next address to be read by this 5457 // channel. 5458 #define DMA_CH12_READ_ADDR_OFFSET _u(0x00000300) 5459 #define DMA_CH12_READ_ADDR_BITS _u(0xffffffff) 5460 #define DMA_CH12_READ_ADDR_RESET _u(0x00000000) 5461 #define DMA_CH12_READ_ADDR_MSB _u(31) 5462 #define DMA_CH12_READ_ADDR_LSB _u(0) 5463 #define DMA_CH12_READ_ADDR_ACCESS "RW" 5464 // ============================================================================= 5465 // Register : DMA_CH12_WRITE_ADDR 5466 // Description : DMA Channel 12 Write Address pointer 5467 // This register updates automatically each time a write 5468 // completes. The current value is the next address to be written 5469 // by this channel. 5470 #define DMA_CH12_WRITE_ADDR_OFFSET _u(0x00000304) 5471 #define DMA_CH12_WRITE_ADDR_BITS _u(0xffffffff) 5472 #define DMA_CH12_WRITE_ADDR_RESET _u(0x00000000) 5473 #define DMA_CH12_WRITE_ADDR_MSB _u(31) 5474 #define DMA_CH12_WRITE_ADDR_LSB _u(0) 5475 #define DMA_CH12_WRITE_ADDR_ACCESS "RW" 5476 // ============================================================================= 5477 // Register : DMA_CH12_TRANS_COUNT 5478 // Description : DMA Channel 12 Transfer Count 5479 #define DMA_CH12_TRANS_COUNT_OFFSET _u(0x00000308) 5480 #define DMA_CH12_TRANS_COUNT_BITS _u(0xffffffff) 5481 #define DMA_CH12_TRANS_COUNT_RESET _u(0x00000000) 5482 // ----------------------------------------------------------------------------- 5483 // Field : DMA_CH12_TRANS_COUNT_MODE 5484 // Description : When MODE is 0x0, the transfer count decrements with each 5485 // transfer until 0, and then the channel triggers the next 5486 // channel indicated by CTRL_CHAIN_TO. 5487 // 5488 // When MODE is 0x1, the transfer count decrements with each 5489 // transfer until 0, and then the channel re-triggers itself, in 5490 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 5491 // useful for e.g. an endless ring-buffer DMA with periodic 5492 // interrupts. 5493 // 5494 // When MODE is 0xf, the transfer count does not decrement. The 5495 // DMA channel performs an endless sequence of transfers, never 5496 // triggering other channels or raising interrupts, until an ABORT 5497 // is raised. 5498 // 5499 // All other values are reserved. 5500 // 0x0 -> NORMAL 5501 // 0x1 -> TRIGGER_SELF 5502 // 0xf -> ENDLESS 5503 #define DMA_CH12_TRANS_COUNT_MODE_RESET _u(0x0) 5504 #define DMA_CH12_TRANS_COUNT_MODE_BITS _u(0xf0000000) 5505 #define DMA_CH12_TRANS_COUNT_MODE_MSB _u(31) 5506 #define DMA_CH12_TRANS_COUNT_MODE_LSB _u(28) 5507 #define DMA_CH12_TRANS_COUNT_MODE_ACCESS "RW" 5508 #define DMA_CH12_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 5509 #define DMA_CH12_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 5510 #define DMA_CH12_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 5511 // ----------------------------------------------------------------------------- 5512 // Field : DMA_CH12_TRANS_COUNT_COUNT 5513 // Description : 28-bit transfer count (256 million transfers maximum). 5514 // 5515 // Program the number of bus transfers a channel will perform 5516 // before halting. Note that, if transfers are larger than one 5517 // byte in size, this is not equal to the number of bytes 5518 // transferred (see CTRL_DATA_SIZE). 5519 // 5520 // When the channel is active, reading this register shows the 5521 // number of transfers remaining, updating automatically each time 5522 // a write transfer completes. 5523 // 5524 // Writing this register sets the RELOAD value for the transfer 5525 // counter. Each time this channel is triggered, the RELOAD value 5526 // is copied into the live transfer counter. The channel can be 5527 // started multiple times, and will perform the same number of 5528 // transfers each time, as programmed by most recent write. 5529 // 5530 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 5531 // is used as a trigger, the written value is used immediately as 5532 // the length of the new transfer sequence, as well as being 5533 // written to RELOAD. 5534 #define DMA_CH12_TRANS_COUNT_COUNT_RESET _u(0x0000000) 5535 #define DMA_CH12_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 5536 #define DMA_CH12_TRANS_COUNT_COUNT_MSB _u(27) 5537 #define DMA_CH12_TRANS_COUNT_COUNT_LSB _u(0) 5538 #define DMA_CH12_TRANS_COUNT_COUNT_ACCESS "RW" 5539 // ============================================================================= 5540 // Register : DMA_CH12_CTRL_TRIG 5541 // Description : DMA Channel 12 Control and Status 5542 #define DMA_CH12_CTRL_TRIG_OFFSET _u(0x0000030c) 5543 #define DMA_CH12_CTRL_TRIG_BITS _u(0xe7ffffff) 5544 #define DMA_CH12_CTRL_TRIG_RESET _u(0x00000000) 5545 // ----------------------------------------------------------------------------- 5546 // Field : DMA_CH12_CTRL_TRIG_AHB_ERROR 5547 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 5548 // halts when it encounters any bus error, and always raises its 5549 // channel IRQ flag. 5550 #define DMA_CH12_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 5551 #define DMA_CH12_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 5552 #define DMA_CH12_CTRL_TRIG_AHB_ERROR_MSB _u(31) 5553 #define DMA_CH12_CTRL_TRIG_AHB_ERROR_LSB _u(31) 5554 #define DMA_CH12_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 5555 // ----------------------------------------------------------------------------- 5556 // Field : DMA_CH12_CTRL_TRIG_READ_ERROR 5557 // Description : If 1, the channel received a read bus error. Write one to 5558 // clear. 5559 // READ_ADDR shows the approximate address where the bus error was 5560 // encountered (will not be earlier, or more than 3 transfers 5561 // later) 5562 #define DMA_CH12_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 5563 #define DMA_CH12_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 5564 #define DMA_CH12_CTRL_TRIG_READ_ERROR_MSB _u(30) 5565 #define DMA_CH12_CTRL_TRIG_READ_ERROR_LSB _u(30) 5566 #define DMA_CH12_CTRL_TRIG_READ_ERROR_ACCESS "WC" 5567 // ----------------------------------------------------------------------------- 5568 // Field : DMA_CH12_CTRL_TRIG_WRITE_ERROR 5569 // Description : If 1, the channel received a write bus error. Write one to 5570 // clear. 5571 // WRITE_ADDR shows the approximate address where the bus error 5572 // was encountered (will not be earlier, or more than 5 transfers 5573 // later) 5574 #define DMA_CH12_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 5575 #define DMA_CH12_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 5576 #define DMA_CH12_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 5577 #define DMA_CH12_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 5578 #define DMA_CH12_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 5579 // ----------------------------------------------------------------------------- 5580 // Field : DMA_CH12_CTRL_TRIG_BUSY 5581 // Description : This flag goes high when the channel starts a new transfer 5582 // sequence, and low when the last transfer of that sequence 5583 // completes. Clearing EN while BUSY is high pauses the channel, 5584 // and BUSY will stay high while paused. 5585 // 5586 // To terminate a sequence early (and clear the BUSY flag), see 5587 // CHAN_ABORT. 5588 #define DMA_CH12_CTRL_TRIG_BUSY_RESET _u(0x0) 5589 #define DMA_CH12_CTRL_TRIG_BUSY_BITS _u(0x04000000) 5590 #define DMA_CH12_CTRL_TRIG_BUSY_MSB _u(26) 5591 #define DMA_CH12_CTRL_TRIG_BUSY_LSB _u(26) 5592 #define DMA_CH12_CTRL_TRIG_BUSY_ACCESS "RO" 5593 // ----------------------------------------------------------------------------- 5594 // Field : DMA_CH12_CTRL_TRIG_SNIFF_EN 5595 // Description : If 1, this channel's data transfers are visible to the sniff 5596 // hardware, and each transfer will advance the state of the 5597 // checksum. This only applies if the sniff hardware is enabled, 5598 // and has this channel selected. 5599 // 5600 // This allows checksum to be enabled or disabled on a per- 5601 // control- block basis. 5602 #define DMA_CH12_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 5603 #define DMA_CH12_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 5604 #define DMA_CH12_CTRL_TRIG_SNIFF_EN_MSB _u(25) 5605 #define DMA_CH12_CTRL_TRIG_SNIFF_EN_LSB _u(25) 5606 #define DMA_CH12_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 5607 // ----------------------------------------------------------------------------- 5608 // Field : DMA_CH12_CTRL_TRIG_BSWAP 5609 // Description : Apply byte-swap transformation to DMA data. 5610 // For byte data, this has no effect. For halfword data, the two 5611 // bytes of each halfword are swapped. For word data, the four 5612 // bytes of each word are swapped to reverse order. 5613 #define DMA_CH12_CTRL_TRIG_BSWAP_RESET _u(0x0) 5614 #define DMA_CH12_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 5615 #define DMA_CH12_CTRL_TRIG_BSWAP_MSB _u(24) 5616 #define DMA_CH12_CTRL_TRIG_BSWAP_LSB _u(24) 5617 #define DMA_CH12_CTRL_TRIG_BSWAP_ACCESS "RW" 5618 // ----------------------------------------------------------------------------- 5619 // Field : DMA_CH12_CTRL_TRIG_IRQ_QUIET 5620 // Description : In QUIET mode, the channel does not generate IRQs at the end of 5621 // every transfer block. Instead, an IRQ is raised when NULL is 5622 // written to a trigger register, indicating the end of a control 5623 // block chain. 5624 // 5625 // This reduces the number of interrupts to be serviced by the CPU 5626 // when transferring a DMA chain of many small control blocks. 5627 #define DMA_CH12_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 5628 #define DMA_CH12_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 5629 #define DMA_CH12_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 5630 #define DMA_CH12_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 5631 #define DMA_CH12_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 5632 // ----------------------------------------------------------------------------- 5633 // Field : DMA_CH12_CTRL_TRIG_TREQ_SEL 5634 // Description : Select a Transfer Request signal. 5635 // The channel uses the transfer request signal to pace its data 5636 // transfer rate. Sources for TREQ signals are internal (TIMERS) 5637 // or external (DREQ, a Data Request from the system). 5638 // 0x0 to 0x3a -> select DREQ n as TREQ 5639 // 0x3b -> Select Timer 0 as TREQ 5640 // 0x3c -> Select Timer 1 as TREQ 5641 // 0x3d -> Select Timer 2 as TREQ (Optional) 5642 // 0x3e -> Select Timer 3 as TREQ (Optional) 5643 // 0x3f -> Permanent request, for unpaced transfers. 5644 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 5645 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 5646 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_MSB _u(22) 5647 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_LSB _u(17) 5648 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 5649 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 5650 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 5651 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 5652 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 5653 #define DMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 5654 // ----------------------------------------------------------------------------- 5655 // Field : DMA_CH12_CTRL_TRIG_CHAIN_TO 5656 // Description : When this channel completes, it will trigger the channel 5657 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 5658 // channel)_. 5659 // 5660 // Note this field resets to 0, so channels 1 and above will chain 5661 // to channel 0 by default. Set this field to avoid this 5662 // behaviour. 5663 #define DMA_CH12_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 5664 #define DMA_CH12_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 5665 #define DMA_CH12_CTRL_TRIG_CHAIN_TO_MSB _u(16) 5666 #define DMA_CH12_CTRL_TRIG_CHAIN_TO_LSB _u(13) 5667 #define DMA_CH12_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 5668 // ----------------------------------------------------------------------------- 5669 // Field : DMA_CH12_CTRL_TRIG_RING_SEL 5670 // Description : Select whether RING_SIZE applies to read or write addresses. 5671 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 5672 // boundary. If 1, write addresses are wrapped. 5673 #define DMA_CH12_CTRL_TRIG_RING_SEL_RESET _u(0x0) 5674 #define DMA_CH12_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 5675 #define DMA_CH12_CTRL_TRIG_RING_SEL_MSB _u(12) 5676 #define DMA_CH12_CTRL_TRIG_RING_SEL_LSB _u(12) 5677 #define DMA_CH12_CTRL_TRIG_RING_SEL_ACCESS "RW" 5678 // ----------------------------------------------------------------------------- 5679 // Field : DMA_CH12_CTRL_TRIG_RING_SIZE 5680 // Description : Size of address wrap region. If 0, don't wrap. For values n > 5681 // 0, only the lower n bits of the address will change. This wraps 5682 // the address on a (1 << n) byte boundary, facilitating access to 5683 // naturally-aligned ring buffers. 5684 // 5685 // Ring sizes between 2 and 32768 bytes are possible. This can 5686 // apply to either read or write addresses, based on value of 5687 // RING_SEL. 5688 // 0x0 -> RING_NONE 5689 #define DMA_CH12_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 5690 #define DMA_CH12_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 5691 #define DMA_CH12_CTRL_TRIG_RING_SIZE_MSB _u(11) 5692 #define DMA_CH12_CTRL_TRIG_RING_SIZE_LSB _u(8) 5693 #define DMA_CH12_CTRL_TRIG_RING_SIZE_ACCESS "RW" 5694 #define DMA_CH12_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 5695 // ----------------------------------------------------------------------------- 5696 // Field : DMA_CH12_CTRL_TRIG_INCR_WRITE_REV 5697 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 5698 // rather than incremented with each transfer. 5699 // 5700 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 5701 // causes the write address to be incremented by twice the 5702 // transfer size, i.e. skipping over alternate addresses. 5703 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 5704 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 5705 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 5706 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 5707 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 5708 // ----------------------------------------------------------------------------- 5709 // Field : DMA_CH12_CTRL_TRIG_INCR_WRITE 5710 // Description : If 1, the write address increments with each transfer. If 0, 5711 // each write is directed to the same, initial address. 5712 // 5713 // Generally this should be disabled for memory-to-peripheral 5714 // transfers. 5715 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 5716 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 5717 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_MSB _u(6) 5718 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_LSB _u(6) 5719 #define DMA_CH12_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 5720 // ----------------------------------------------------------------------------- 5721 // Field : DMA_CH12_CTRL_TRIG_INCR_READ_REV 5722 // Description : If 1, and INCR_READ is 1, the read address is decremented 5723 // rather than incremented with each transfer. 5724 // 5725 // If 1, and INCR_READ is 0, this otherwise-unused combination 5726 // causes the read address to be incremented by twice the transfer 5727 // size, i.e. skipping over alternate addresses. 5728 #define DMA_CH12_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 5729 #define DMA_CH12_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 5730 #define DMA_CH12_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 5731 #define DMA_CH12_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 5732 #define DMA_CH12_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 5733 // ----------------------------------------------------------------------------- 5734 // Field : DMA_CH12_CTRL_TRIG_INCR_READ 5735 // Description : If 1, the read address increments with each transfer. If 0, 5736 // each read is directed to the same, initial address. 5737 // 5738 // Generally this should be disabled for peripheral-to-memory 5739 // transfers. 5740 #define DMA_CH12_CTRL_TRIG_INCR_READ_RESET _u(0x0) 5741 #define DMA_CH12_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 5742 #define DMA_CH12_CTRL_TRIG_INCR_READ_MSB _u(4) 5743 #define DMA_CH12_CTRL_TRIG_INCR_READ_LSB _u(4) 5744 #define DMA_CH12_CTRL_TRIG_INCR_READ_ACCESS "RW" 5745 // ----------------------------------------------------------------------------- 5746 // Field : DMA_CH12_CTRL_TRIG_DATA_SIZE 5747 // Description : Set the size of each bus transfer (byte/halfword/word). 5748 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 5749 // with each transfer. 5750 // 0x0 -> SIZE_BYTE 5751 // 0x1 -> SIZE_HALFWORD 5752 // 0x2 -> SIZE_WORD 5753 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 5754 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 5755 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_MSB _u(3) 5756 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_LSB _u(2) 5757 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 5758 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 5759 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 5760 #define DMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 5761 // ----------------------------------------------------------------------------- 5762 // Field : DMA_CH12_CTRL_TRIG_HIGH_PRIORITY 5763 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 5764 // scheduling: in each scheduling round, all high priority 5765 // channels are considered first, and then only a single low 5766 // priority channel, before returning to the high priority 5767 // channels. 5768 // 5769 // This only affects the order in which the DMA schedules 5770 // channels. The DMA's bus priority is not changed. If the DMA is 5771 // not saturated then a low priority channel will see no loss of 5772 // throughput. 5773 #define DMA_CH12_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 5774 #define DMA_CH12_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 5775 #define DMA_CH12_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 5776 #define DMA_CH12_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 5777 #define DMA_CH12_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 5778 // ----------------------------------------------------------------------------- 5779 // Field : DMA_CH12_CTRL_TRIG_EN 5780 // Description : DMA Channel Enable. 5781 // When 1, the channel will respond to triggering events, which 5782 // will cause it to become BUSY and start transferring data. When 5783 // 0, the channel will ignore triggers, stop issuing transfers, 5784 // and pause the current transfer sequence (i.e. BUSY will remain 5785 // high if already high) 5786 #define DMA_CH12_CTRL_TRIG_EN_RESET _u(0x0) 5787 #define DMA_CH12_CTRL_TRIG_EN_BITS _u(0x00000001) 5788 #define DMA_CH12_CTRL_TRIG_EN_MSB _u(0) 5789 #define DMA_CH12_CTRL_TRIG_EN_LSB _u(0) 5790 #define DMA_CH12_CTRL_TRIG_EN_ACCESS "RW" 5791 // ============================================================================= 5792 // Register : DMA_CH12_AL1_CTRL 5793 // Description : Alias for channel 12 CTRL register 5794 #define DMA_CH12_AL1_CTRL_OFFSET _u(0x00000310) 5795 #define DMA_CH12_AL1_CTRL_BITS _u(0xffffffff) 5796 #define DMA_CH12_AL1_CTRL_RESET "-" 5797 #define DMA_CH12_AL1_CTRL_MSB _u(31) 5798 #define DMA_CH12_AL1_CTRL_LSB _u(0) 5799 #define DMA_CH12_AL1_CTRL_ACCESS "RW" 5800 // ============================================================================= 5801 // Register : DMA_CH12_AL1_READ_ADDR 5802 // Description : Alias for channel 12 READ_ADDR register 5803 #define DMA_CH12_AL1_READ_ADDR_OFFSET _u(0x00000314) 5804 #define DMA_CH12_AL1_READ_ADDR_BITS _u(0xffffffff) 5805 #define DMA_CH12_AL1_READ_ADDR_RESET "-" 5806 #define DMA_CH12_AL1_READ_ADDR_MSB _u(31) 5807 #define DMA_CH12_AL1_READ_ADDR_LSB _u(0) 5808 #define DMA_CH12_AL1_READ_ADDR_ACCESS "RW" 5809 // ============================================================================= 5810 // Register : DMA_CH12_AL1_WRITE_ADDR 5811 // Description : Alias for channel 12 WRITE_ADDR register 5812 #define DMA_CH12_AL1_WRITE_ADDR_OFFSET _u(0x00000318) 5813 #define DMA_CH12_AL1_WRITE_ADDR_BITS _u(0xffffffff) 5814 #define DMA_CH12_AL1_WRITE_ADDR_RESET "-" 5815 #define DMA_CH12_AL1_WRITE_ADDR_MSB _u(31) 5816 #define DMA_CH12_AL1_WRITE_ADDR_LSB _u(0) 5817 #define DMA_CH12_AL1_WRITE_ADDR_ACCESS "RW" 5818 // ============================================================================= 5819 // Register : DMA_CH12_AL1_TRANS_COUNT_TRIG 5820 // Description : Alias for channel 12 TRANS_COUNT register 5821 // This is a trigger register (0xc). Writing a nonzero value will 5822 // reload the channel counter and start the channel. 5823 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000031c) 5824 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 5825 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_RESET "-" 5826 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_MSB _u(31) 5827 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_LSB _u(0) 5828 #define DMA_CH12_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 5829 // ============================================================================= 5830 // Register : DMA_CH12_AL2_CTRL 5831 // Description : Alias for channel 12 CTRL register 5832 #define DMA_CH12_AL2_CTRL_OFFSET _u(0x00000320) 5833 #define DMA_CH12_AL2_CTRL_BITS _u(0xffffffff) 5834 #define DMA_CH12_AL2_CTRL_RESET "-" 5835 #define DMA_CH12_AL2_CTRL_MSB _u(31) 5836 #define DMA_CH12_AL2_CTRL_LSB _u(0) 5837 #define DMA_CH12_AL2_CTRL_ACCESS "RW" 5838 // ============================================================================= 5839 // Register : DMA_CH12_AL2_TRANS_COUNT 5840 // Description : Alias for channel 12 TRANS_COUNT register 5841 #define DMA_CH12_AL2_TRANS_COUNT_OFFSET _u(0x00000324) 5842 #define DMA_CH12_AL2_TRANS_COUNT_BITS _u(0xffffffff) 5843 #define DMA_CH12_AL2_TRANS_COUNT_RESET "-" 5844 #define DMA_CH12_AL2_TRANS_COUNT_MSB _u(31) 5845 #define DMA_CH12_AL2_TRANS_COUNT_LSB _u(0) 5846 #define DMA_CH12_AL2_TRANS_COUNT_ACCESS "RW" 5847 // ============================================================================= 5848 // Register : DMA_CH12_AL2_READ_ADDR 5849 // Description : Alias for channel 12 READ_ADDR register 5850 #define DMA_CH12_AL2_READ_ADDR_OFFSET _u(0x00000328) 5851 #define DMA_CH12_AL2_READ_ADDR_BITS _u(0xffffffff) 5852 #define DMA_CH12_AL2_READ_ADDR_RESET "-" 5853 #define DMA_CH12_AL2_READ_ADDR_MSB _u(31) 5854 #define DMA_CH12_AL2_READ_ADDR_LSB _u(0) 5855 #define DMA_CH12_AL2_READ_ADDR_ACCESS "RW" 5856 // ============================================================================= 5857 // Register : DMA_CH12_AL2_WRITE_ADDR_TRIG 5858 // Description : Alias for channel 12 WRITE_ADDR register 5859 // This is a trigger register (0xc). Writing a nonzero value will 5860 // reload the channel counter and start the channel. 5861 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000032c) 5862 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 5863 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_RESET "-" 5864 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_MSB _u(31) 5865 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_LSB _u(0) 5866 #define DMA_CH12_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 5867 // ============================================================================= 5868 // Register : DMA_CH12_AL3_CTRL 5869 // Description : Alias for channel 12 CTRL register 5870 #define DMA_CH12_AL3_CTRL_OFFSET _u(0x00000330) 5871 #define DMA_CH12_AL3_CTRL_BITS _u(0xffffffff) 5872 #define DMA_CH12_AL3_CTRL_RESET "-" 5873 #define DMA_CH12_AL3_CTRL_MSB _u(31) 5874 #define DMA_CH12_AL3_CTRL_LSB _u(0) 5875 #define DMA_CH12_AL3_CTRL_ACCESS "RW" 5876 // ============================================================================= 5877 // Register : DMA_CH12_AL3_WRITE_ADDR 5878 // Description : Alias for channel 12 WRITE_ADDR register 5879 #define DMA_CH12_AL3_WRITE_ADDR_OFFSET _u(0x00000334) 5880 #define DMA_CH12_AL3_WRITE_ADDR_BITS _u(0xffffffff) 5881 #define DMA_CH12_AL3_WRITE_ADDR_RESET "-" 5882 #define DMA_CH12_AL3_WRITE_ADDR_MSB _u(31) 5883 #define DMA_CH12_AL3_WRITE_ADDR_LSB _u(0) 5884 #define DMA_CH12_AL3_WRITE_ADDR_ACCESS "RW" 5885 // ============================================================================= 5886 // Register : DMA_CH12_AL3_TRANS_COUNT 5887 // Description : Alias for channel 12 TRANS_COUNT register 5888 #define DMA_CH12_AL3_TRANS_COUNT_OFFSET _u(0x00000338) 5889 #define DMA_CH12_AL3_TRANS_COUNT_BITS _u(0xffffffff) 5890 #define DMA_CH12_AL3_TRANS_COUNT_RESET "-" 5891 #define DMA_CH12_AL3_TRANS_COUNT_MSB _u(31) 5892 #define DMA_CH12_AL3_TRANS_COUNT_LSB _u(0) 5893 #define DMA_CH12_AL3_TRANS_COUNT_ACCESS "RW" 5894 // ============================================================================= 5895 // Register : DMA_CH12_AL3_READ_ADDR_TRIG 5896 // Description : Alias for channel 12 READ_ADDR register 5897 // This is a trigger register (0xc). Writing a nonzero value will 5898 // reload the channel counter and start the channel. 5899 #define DMA_CH12_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000033c) 5900 #define DMA_CH12_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 5901 #define DMA_CH12_AL3_READ_ADDR_TRIG_RESET "-" 5902 #define DMA_CH12_AL3_READ_ADDR_TRIG_MSB _u(31) 5903 #define DMA_CH12_AL3_READ_ADDR_TRIG_LSB _u(0) 5904 #define DMA_CH12_AL3_READ_ADDR_TRIG_ACCESS "RW" 5905 // ============================================================================= 5906 // Register : DMA_CH13_READ_ADDR 5907 // Description : DMA Channel 13 Read Address pointer 5908 // This register updates automatically each time a read completes. 5909 // The current value is the next address to be read by this 5910 // channel. 5911 #define DMA_CH13_READ_ADDR_OFFSET _u(0x00000340) 5912 #define DMA_CH13_READ_ADDR_BITS _u(0xffffffff) 5913 #define DMA_CH13_READ_ADDR_RESET _u(0x00000000) 5914 #define DMA_CH13_READ_ADDR_MSB _u(31) 5915 #define DMA_CH13_READ_ADDR_LSB _u(0) 5916 #define DMA_CH13_READ_ADDR_ACCESS "RW" 5917 // ============================================================================= 5918 // Register : DMA_CH13_WRITE_ADDR 5919 // Description : DMA Channel 13 Write Address pointer 5920 // This register updates automatically each time a write 5921 // completes. The current value is the next address to be written 5922 // by this channel. 5923 #define DMA_CH13_WRITE_ADDR_OFFSET _u(0x00000344) 5924 #define DMA_CH13_WRITE_ADDR_BITS _u(0xffffffff) 5925 #define DMA_CH13_WRITE_ADDR_RESET _u(0x00000000) 5926 #define DMA_CH13_WRITE_ADDR_MSB _u(31) 5927 #define DMA_CH13_WRITE_ADDR_LSB _u(0) 5928 #define DMA_CH13_WRITE_ADDR_ACCESS "RW" 5929 // ============================================================================= 5930 // Register : DMA_CH13_TRANS_COUNT 5931 // Description : DMA Channel 13 Transfer Count 5932 #define DMA_CH13_TRANS_COUNT_OFFSET _u(0x00000348) 5933 #define DMA_CH13_TRANS_COUNT_BITS _u(0xffffffff) 5934 #define DMA_CH13_TRANS_COUNT_RESET _u(0x00000000) 5935 // ----------------------------------------------------------------------------- 5936 // Field : DMA_CH13_TRANS_COUNT_MODE 5937 // Description : When MODE is 0x0, the transfer count decrements with each 5938 // transfer until 0, and then the channel triggers the next 5939 // channel indicated by CTRL_CHAIN_TO. 5940 // 5941 // When MODE is 0x1, the transfer count decrements with each 5942 // transfer until 0, and then the channel re-triggers itself, in 5943 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 5944 // useful for e.g. an endless ring-buffer DMA with periodic 5945 // interrupts. 5946 // 5947 // When MODE is 0xf, the transfer count does not decrement. The 5948 // DMA channel performs an endless sequence of transfers, never 5949 // triggering other channels or raising interrupts, until an ABORT 5950 // is raised. 5951 // 5952 // All other values are reserved. 5953 // 0x0 -> NORMAL 5954 // 0x1 -> TRIGGER_SELF 5955 // 0xf -> ENDLESS 5956 #define DMA_CH13_TRANS_COUNT_MODE_RESET _u(0x0) 5957 #define DMA_CH13_TRANS_COUNT_MODE_BITS _u(0xf0000000) 5958 #define DMA_CH13_TRANS_COUNT_MODE_MSB _u(31) 5959 #define DMA_CH13_TRANS_COUNT_MODE_LSB _u(28) 5960 #define DMA_CH13_TRANS_COUNT_MODE_ACCESS "RW" 5961 #define DMA_CH13_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 5962 #define DMA_CH13_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 5963 #define DMA_CH13_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 5964 // ----------------------------------------------------------------------------- 5965 // Field : DMA_CH13_TRANS_COUNT_COUNT 5966 // Description : 28-bit transfer count (256 million transfers maximum). 5967 // 5968 // Program the number of bus transfers a channel will perform 5969 // before halting. Note that, if transfers are larger than one 5970 // byte in size, this is not equal to the number of bytes 5971 // transferred (see CTRL_DATA_SIZE). 5972 // 5973 // When the channel is active, reading this register shows the 5974 // number of transfers remaining, updating automatically each time 5975 // a write transfer completes. 5976 // 5977 // Writing this register sets the RELOAD value for the transfer 5978 // counter. Each time this channel is triggered, the RELOAD value 5979 // is copied into the live transfer counter. The channel can be 5980 // started multiple times, and will perform the same number of 5981 // transfers each time, as programmed by most recent write. 5982 // 5983 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 5984 // is used as a trigger, the written value is used immediately as 5985 // the length of the new transfer sequence, as well as being 5986 // written to RELOAD. 5987 #define DMA_CH13_TRANS_COUNT_COUNT_RESET _u(0x0000000) 5988 #define DMA_CH13_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 5989 #define DMA_CH13_TRANS_COUNT_COUNT_MSB _u(27) 5990 #define DMA_CH13_TRANS_COUNT_COUNT_LSB _u(0) 5991 #define DMA_CH13_TRANS_COUNT_COUNT_ACCESS "RW" 5992 // ============================================================================= 5993 // Register : DMA_CH13_CTRL_TRIG 5994 // Description : DMA Channel 13 Control and Status 5995 #define DMA_CH13_CTRL_TRIG_OFFSET _u(0x0000034c) 5996 #define DMA_CH13_CTRL_TRIG_BITS _u(0xe7ffffff) 5997 #define DMA_CH13_CTRL_TRIG_RESET _u(0x00000000) 5998 // ----------------------------------------------------------------------------- 5999 // Field : DMA_CH13_CTRL_TRIG_AHB_ERROR 6000 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 6001 // halts when it encounters any bus error, and always raises its 6002 // channel IRQ flag. 6003 #define DMA_CH13_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 6004 #define DMA_CH13_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 6005 #define DMA_CH13_CTRL_TRIG_AHB_ERROR_MSB _u(31) 6006 #define DMA_CH13_CTRL_TRIG_AHB_ERROR_LSB _u(31) 6007 #define DMA_CH13_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 6008 // ----------------------------------------------------------------------------- 6009 // Field : DMA_CH13_CTRL_TRIG_READ_ERROR 6010 // Description : If 1, the channel received a read bus error. Write one to 6011 // clear. 6012 // READ_ADDR shows the approximate address where the bus error was 6013 // encountered (will not be earlier, or more than 3 transfers 6014 // later) 6015 #define DMA_CH13_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 6016 #define DMA_CH13_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 6017 #define DMA_CH13_CTRL_TRIG_READ_ERROR_MSB _u(30) 6018 #define DMA_CH13_CTRL_TRIG_READ_ERROR_LSB _u(30) 6019 #define DMA_CH13_CTRL_TRIG_READ_ERROR_ACCESS "WC" 6020 // ----------------------------------------------------------------------------- 6021 // Field : DMA_CH13_CTRL_TRIG_WRITE_ERROR 6022 // Description : If 1, the channel received a write bus error. Write one to 6023 // clear. 6024 // WRITE_ADDR shows the approximate address where the bus error 6025 // was encountered (will not be earlier, or more than 5 transfers 6026 // later) 6027 #define DMA_CH13_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 6028 #define DMA_CH13_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 6029 #define DMA_CH13_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 6030 #define DMA_CH13_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 6031 #define DMA_CH13_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 6032 // ----------------------------------------------------------------------------- 6033 // Field : DMA_CH13_CTRL_TRIG_BUSY 6034 // Description : This flag goes high when the channel starts a new transfer 6035 // sequence, and low when the last transfer of that sequence 6036 // completes. Clearing EN while BUSY is high pauses the channel, 6037 // and BUSY will stay high while paused. 6038 // 6039 // To terminate a sequence early (and clear the BUSY flag), see 6040 // CHAN_ABORT. 6041 #define DMA_CH13_CTRL_TRIG_BUSY_RESET _u(0x0) 6042 #define DMA_CH13_CTRL_TRIG_BUSY_BITS _u(0x04000000) 6043 #define DMA_CH13_CTRL_TRIG_BUSY_MSB _u(26) 6044 #define DMA_CH13_CTRL_TRIG_BUSY_LSB _u(26) 6045 #define DMA_CH13_CTRL_TRIG_BUSY_ACCESS "RO" 6046 // ----------------------------------------------------------------------------- 6047 // Field : DMA_CH13_CTRL_TRIG_SNIFF_EN 6048 // Description : If 1, this channel's data transfers are visible to the sniff 6049 // hardware, and each transfer will advance the state of the 6050 // checksum. This only applies if the sniff hardware is enabled, 6051 // and has this channel selected. 6052 // 6053 // This allows checksum to be enabled or disabled on a per- 6054 // control- block basis. 6055 #define DMA_CH13_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 6056 #define DMA_CH13_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 6057 #define DMA_CH13_CTRL_TRIG_SNIFF_EN_MSB _u(25) 6058 #define DMA_CH13_CTRL_TRIG_SNIFF_EN_LSB _u(25) 6059 #define DMA_CH13_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 6060 // ----------------------------------------------------------------------------- 6061 // Field : DMA_CH13_CTRL_TRIG_BSWAP 6062 // Description : Apply byte-swap transformation to DMA data. 6063 // For byte data, this has no effect. For halfword data, the two 6064 // bytes of each halfword are swapped. For word data, the four 6065 // bytes of each word are swapped to reverse order. 6066 #define DMA_CH13_CTRL_TRIG_BSWAP_RESET _u(0x0) 6067 #define DMA_CH13_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 6068 #define DMA_CH13_CTRL_TRIG_BSWAP_MSB _u(24) 6069 #define DMA_CH13_CTRL_TRIG_BSWAP_LSB _u(24) 6070 #define DMA_CH13_CTRL_TRIG_BSWAP_ACCESS "RW" 6071 // ----------------------------------------------------------------------------- 6072 // Field : DMA_CH13_CTRL_TRIG_IRQ_QUIET 6073 // Description : In QUIET mode, the channel does not generate IRQs at the end of 6074 // every transfer block. Instead, an IRQ is raised when NULL is 6075 // written to a trigger register, indicating the end of a control 6076 // block chain. 6077 // 6078 // This reduces the number of interrupts to be serviced by the CPU 6079 // when transferring a DMA chain of many small control blocks. 6080 #define DMA_CH13_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 6081 #define DMA_CH13_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 6082 #define DMA_CH13_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 6083 #define DMA_CH13_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 6084 #define DMA_CH13_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 6085 // ----------------------------------------------------------------------------- 6086 // Field : DMA_CH13_CTRL_TRIG_TREQ_SEL 6087 // Description : Select a Transfer Request signal. 6088 // The channel uses the transfer request signal to pace its data 6089 // transfer rate. Sources for TREQ signals are internal (TIMERS) 6090 // or external (DREQ, a Data Request from the system). 6091 // 0x0 to 0x3a -> select DREQ n as TREQ 6092 // 0x3b -> Select Timer 0 as TREQ 6093 // 0x3c -> Select Timer 1 as TREQ 6094 // 0x3d -> Select Timer 2 as TREQ (Optional) 6095 // 0x3e -> Select Timer 3 as TREQ (Optional) 6096 // 0x3f -> Permanent request, for unpaced transfers. 6097 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 6098 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 6099 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_MSB _u(22) 6100 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_LSB _u(17) 6101 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 6102 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 6103 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 6104 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 6105 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 6106 #define DMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 6107 // ----------------------------------------------------------------------------- 6108 // Field : DMA_CH13_CTRL_TRIG_CHAIN_TO 6109 // Description : When this channel completes, it will trigger the channel 6110 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 6111 // channel)_. 6112 // 6113 // Note this field resets to 0, so channels 1 and above will chain 6114 // to channel 0 by default. Set this field to avoid this 6115 // behaviour. 6116 #define DMA_CH13_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 6117 #define DMA_CH13_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 6118 #define DMA_CH13_CTRL_TRIG_CHAIN_TO_MSB _u(16) 6119 #define DMA_CH13_CTRL_TRIG_CHAIN_TO_LSB _u(13) 6120 #define DMA_CH13_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 6121 // ----------------------------------------------------------------------------- 6122 // Field : DMA_CH13_CTRL_TRIG_RING_SEL 6123 // Description : Select whether RING_SIZE applies to read or write addresses. 6124 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 6125 // boundary. If 1, write addresses are wrapped. 6126 #define DMA_CH13_CTRL_TRIG_RING_SEL_RESET _u(0x0) 6127 #define DMA_CH13_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 6128 #define DMA_CH13_CTRL_TRIG_RING_SEL_MSB _u(12) 6129 #define DMA_CH13_CTRL_TRIG_RING_SEL_LSB _u(12) 6130 #define DMA_CH13_CTRL_TRIG_RING_SEL_ACCESS "RW" 6131 // ----------------------------------------------------------------------------- 6132 // Field : DMA_CH13_CTRL_TRIG_RING_SIZE 6133 // Description : Size of address wrap region. If 0, don't wrap. For values n > 6134 // 0, only the lower n bits of the address will change. This wraps 6135 // the address on a (1 << n) byte boundary, facilitating access to 6136 // naturally-aligned ring buffers. 6137 // 6138 // Ring sizes between 2 and 32768 bytes are possible. This can 6139 // apply to either read or write addresses, based on value of 6140 // RING_SEL. 6141 // 0x0 -> RING_NONE 6142 #define DMA_CH13_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 6143 #define DMA_CH13_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 6144 #define DMA_CH13_CTRL_TRIG_RING_SIZE_MSB _u(11) 6145 #define DMA_CH13_CTRL_TRIG_RING_SIZE_LSB _u(8) 6146 #define DMA_CH13_CTRL_TRIG_RING_SIZE_ACCESS "RW" 6147 #define DMA_CH13_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 6148 // ----------------------------------------------------------------------------- 6149 // Field : DMA_CH13_CTRL_TRIG_INCR_WRITE_REV 6150 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 6151 // rather than incremented with each transfer. 6152 // 6153 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 6154 // causes the write address to be incremented by twice the 6155 // transfer size, i.e. skipping over alternate addresses. 6156 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 6157 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 6158 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 6159 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 6160 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 6161 // ----------------------------------------------------------------------------- 6162 // Field : DMA_CH13_CTRL_TRIG_INCR_WRITE 6163 // Description : If 1, the write address increments with each transfer. If 0, 6164 // each write is directed to the same, initial address. 6165 // 6166 // Generally this should be disabled for memory-to-peripheral 6167 // transfers. 6168 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 6169 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 6170 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_MSB _u(6) 6171 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_LSB _u(6) 6172 #define DMA_CH13_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 6173 // ----------------------------------------------------------------------------- 6174 // Field : DMA_CH13_CTRL_TRIG_INCR_READ_REV 6175 // Description : If 1, and INCR_READ is 1, the read address is decremented 6176 // rather than incremented with each transfer. 6177 // 6178 // If 1, and INCR_READ is 0, this otherwise-unused combination 6179 // causes the read address to be incremented by twice the transfer 6180 // size, i.e. skipping over alternate addresses. 6181 #define DMA_CH13_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 6182 #define DMA_CH13_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 6183 #define DMA_CH13_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 6184 #define DMA_CH13_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 6185 #define DMA_CH13_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 6186 // ----------------------------------------------------------------------------- 6187 // Field : DMA_CH13_CTRL_TRIG_INCR_READ 6188 // Description : If 1, the read address increments with each transfer. If 0, 6189 // each read is directed to the same, initial address. 6190 // 6191 // Generally this should be disabled for peripheral-to-memory 6192 // transfers. 6193 #define DMA_CH13_CTRL_TRIG_INCR_READ_RESET _u(0x0) 6194 #define DMA_CH13_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 6195 #define DMA_CH13_CTRL_TRIG_INCR_READ_MSB _u(4) 6196 #define DMA_CH13_CTRL_TRIG_INCR_READ_LSB _u(4) 6197 #define DMA_CH13_CTRL_TRIG_INCR_READ_ACCESS "RW" 6198 // ----------------------------------------------------------------------------- 6199 // Field : DMA_CH13_CTRL_TRIG_DATA_SIZE 6200 // Description : Set the size of each bus transfer (byte/halfword/word). 6201 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 6202 // with each transfer. 6203 // 0x0 -> SIZE_BYTE 6204 // 0x1 -> SIZE_HALFWORD 6205 // 0x2 -> SIZE_WORD 6206 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 6207 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 6208 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_MSB _u(3) 6209 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_LSB _u(2) 6210 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 6211 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 6212 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 6213 #define DMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 6214 // ----------------------------------------------------------------------------- 6215 // Field : DMA_CH13_CTRL_TRIG_HIGH_PRIORITY 6216 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 6217 // scheduling: in each scheduling round, all high priority 6218 // channels are considered first, and then only a single low 6219 // priority channel, before returning to the high priority 6220 // channels. 6221 // 6222 // This only affects the order in which the DMA schedules 6223 // channels. The DMA's bus priority is not changed. If the DMA is 6224 // not saturated then a low priority channel will see no loss of 6225 // throughput. 6226 #define DMA_CH13_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 6227 #define DMA_CH13_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 6228 #define DMA_CH13_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 6229 #define DMA_CH13_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 6230 #define DMA_CH13_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 6231 // ----------------------------------------------------------------------------- 6232 // Field : DMA_CH13_CTRL_TRIG_EN 6233 // Description : DMA Channel Enable. 6234 // When 1, the channel will respond to triggering events, which 6235 // will cause it to become BUSY and start transferring data. When 6236 // 0, the channel will ignore triggers, stop issuing transfers, 6237 // and pause the current transfer sequence (i.e. BUSY will remain 6238 // high if already high) 6239 #define DMA_CH13_CTRL_TRIG_EN_RESET _u(0x0) 6240 #define DMA_CH13_CTRL_TRIG_EN_BITS _u(0x00000001) 6241 #define DMA_CH13_CTRL_TRIG_EN_MSB _u(0) 6242 #define DMA_CH13_CTRL_TRIG_EN_LSB _u(0) 6243 #define DMA_CH13_CTRL_TRIG_EN_ACCESS "RW" 6244 // ============================================================================= 6245 // Register : DMA_CH13_AL1_CTRL 6246 // Description : Alias for channel 13 CTRL register 6247 #define DMA_CH13_AL1_CTRL_OFFSET _u(0x00000350) 6248 #define DMA_CH13_AL1_CTRL_BITS _u(0xffffffff) 6249 #define DMA_CH13_AL1_CTRL_RESET "-" 6250 #define DMA_CH13_AL1_CTRL_MSB _u(31) 6251 #define DMA_CH13_AL1_CTRL_LSB _u(0) 6252 #define DMA_CH13_AL1_CTRL_ACCESS "RW" 6253 // ============================================================================= 6254 // Register : DMA_CH13_AL1_READ_ADDR 6255 // Description : Alias for channel 13 READ_ADDR register 6256 #define DMA_CH13_AL1_READ_ADDR_OFFSET _u(0x00000354) 6257 #define DMA_CH13_AL1_READ_ADDR_BITS _u(0xffffffff) 6258 #define DMA_CH13_AL1_READ_ADDR_RESET "-" 6259 #define DMA_CH13_AL1_READ_ADDR_MSB _u(31) 6260 #define DMA_CH13_AL1_READ_ADDR_LSB _u(0) 6261 #define DMA_CH13_AL1_READ_ADDR_ACCESS "RW" 6262 // ============================================================================= 6263 // Register : DMA_CH13_AL1_WRITE_ADDR 6264 // Description : Alias for channel 13 WRITE_ADDR register 6265 #define DMA_CH13_AL1_WRITE_ADDR_OFFSET _u(0x00000358) 6266 #define DMA_CH13_AL1_WRITE_ADDR_BITS _u(0xffffffff) 6267 #define DMA_CH13_AL1_WRITE_ADDR_RESET "-" 6268 #define DMA_CH13_AL1_WRITE_ADDR_MSB _u(31) 6269 #define DMA_CH13_AL1_WRITE_ADDR_LSB _u(0) 6270 #define DMA_CH13_AL1_WRITE_ADDR_ACCESS "RW" 6271 // ============================================================================= 6272 // Register : DMA_CH13_AL1_TRANS_COUNT_TRIG 6273 // Description : Alias for channel 13 TRANS_COUNT register 6274 // This is a trigger register (0xc). Writing a nonzero value will 6275 // reload the channel counter and start the channel. 6276 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000035c) 6277 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 6278 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_RESET "-" 6279 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_MSB _u(31) 6280 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_LSB _u(0) 6281 #define DMA_CH13_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 6282 // ============================================================================= 6283 // Register : DMA_CH13_AL2_CTRL 6284 // Description : Alias for channel 13 CTRL register 6285 #define DMA_CH13_AL2_CTRL_OFFSET _u(0x00000360) 6286 #define DMA_CH13_AL2_CTRL_BITS _u(0xffffffff) 6287 #define DMA_CH13_AL2_CTRL_RESET "-" 6288 #define DMA_CH13_AL2_CTRL_MSB _u(31) 6289 #define DMA_CH13_AL2_CTRL_LSB _u(0) 6290 #define DMA_CH13_AL2_CTRL_ACCESS "RW" 6291 // ============================================================================= 6292 // Register : DMA_CH13_AL2_TRANS_COUNT 6293 // Description : Alias for channel 13 TRANS_COUNT register 6294 #define DMA_CH13_AL2_TRANS_COUNT_OFFSET _u(0x00000364) 6295 #define DMA_CH13_AL2_TRANS_COUNT_BITS _u(0xffffffff) 6296 #define DMA_CH13_AL2_TRANS_COUNT_RESET "-" 6297 #define DMA_CH13_AL2_TRANS_COUNT_MSB _u(31) 6298 #define DMA_CH13_AL2_TRANS_COUNT_LSB _u(0) 6299 #define DMA_CH13_AL2_TRANS_COUNT_ACCESS "RW" 6300 // ============================================================================= 6301 // Register : DMA_CH13_AL2_READ_ADDR 6302 // Description : Alias for channel 13 READ_ADDR register 6303 #define DMA_CH13_AL2_READ_ADDR_OFFSET _u(0x00000368) 6304 #define DMA_CH13_AL2_READ_ADDR_BITS _u(0xffffffff) 6305 #define DMA_CH13_AL2_READ_ADDR_RESET "-" 6306 #define DMA_CH13_AL2_READ_ADDR_MSB _u(31) 6307 #define DMA_CH13_AL2_READ_ADDR_LSB _u(0) 6308 #define DMA_CH13_AL2_READ_ADDR_ACCESS "RW" 6309 // ============================================================================= 6310 // Register : DMA_CH13_AL2_WRITE_ADDR_TRIG 6311 // Description : Alias for channel 13 WRITE_ADDR register 6312 // This is a trigger register (0xc). Writing a nonzero value will 6313 // reload the channel counter and start the channel. 6314 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x0000036c) 6315 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 6316 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_RESET "-" 6317 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_MSB _u(31) 6318 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_LSB _u(0) 6319 #define DMA_CH13_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 6320 // ============================================================================= 6321 // Register : DMA_CH13_AL3_CTRL 6322 // Description : Alias for channel 13 CTRL register 6323 #define DMA_CH13_AL3_CTRL_OFFSET _u(0x00000370) 6324 #define DMA_CH13_AL3_CTRL_BITS _u(0xffffffff) 6325 #define DMA_CH13_AL3_CTRL_RESET "-" 6326 #define DMA_CH13_AL3_CTRL_MSB _u(31) 6327 #define DMA_CH13_AL3_CTRL_LSB _u(0) 6328 #define DMA_CH13_AL3_CTRL_ACCESS "RW" 6329 // ============================================================================= 6330 // Register : DMA_CH13_AL3_WRITE_ADDR 6331 // Description : Alias for channel 13 WRITE_ADDR register 6332 #define DMA_CH13_AL3_WRITE_ADDR_OFFSET _u(0x00000374) 6333 #define DMA_CH13_AL3_WRITE_ADDR_BITS _u(0xffffffff) 6334 #define DMA_CH13_AL3_WRITE_ADDR_RESET "-" 6335 #define DMA_CH13_AL3_WRITE_ADDR_MSB _u(31) 6336 #define DMA_CH13_AL3_WRITE_ADDR_LSB _u(0) 6337 #define DMA_CH13_AL3_WRITE_ADDR_ACCESS "RW" 6338 // ============================================================================= 6339 // Register : DMA_CH13_AL3_TRANS_COUNT 6340 // Description : Alias for channel 13 TRANS_COUNT register 6341 #define DMA_CH13_AL3_TRANS_COUNT_OFFSET _u(0x00000378) 6342 #define DMA_CH13_AL3_TRANS_COUNT_BITS _u(0xffffffff) 6343 #define DMA_CH13_AL3_TRANS_COUNT_RESET "-" 6344 #define DMA_CH13_AL3_TRANS_COUNT_MSB _u(31) 6345 #define DMA_CH13_AL3_TRANS_COUNT_LSB _u(0) 6346 #define DMA_CH13_AL3_TRANS_COUNT_ACCESS "RW" 6347 // ============================================================================= 6348 // Register : DMA_CH13_AL3_READ_ADDR_TRIG 6349 // Description : Alias for channel 13 READ_ADDR register 6350 // This is a trigger register (0xc). Writing a nonzero value will 6351 // reload the channel counter and start the channel. 6352 #define DMA_CH13_AL3_READ_ADDR_TRIG_OFFSET _u(0x0000037c) 6353 #define DMA_CH13_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 6354 #define DMA_CH13_AL3_READ_ADDR_TRIG_RESET "-" 6355 #define DMA_CH13_AL3_READ_ADDR_TRIG_MSB _u(31) 6356 #define DMA_CH13_AL3_READ_ADDR_TRIG_LSB _u(0) 6357 #define DMA_CH13_AL3_READ_ADDR_TRIG_ACCESS "RW" 6358 // ============================================================================= 6359 // Register : DMA_CH14_READ_ADDR 6360 // Description : DMA Channel 14 Read Address pointer 6361 // This register updates automatically each time a read completes. 6362 // The current value is the next address to be read by this 6363 // channel. 6364 #define DMA_CH14_READ_ADDR_OFFSET _u(0x00000380) 6365 #define DMA_CH14_READ_ADDR_BITS _u(0xffffffff) 6366 #define DMA_CH14_READ_ADDR_RESET _u(0x00000000) 6367 #define DMA_CH14_READ_ADDR_MSB _u(31) 6368 #define DMA_CH14_READ_ADDR_LSB _u(0) 6369 #define DMA_CH14_READ_ADDR_ACCESS "RW" 6370 // ============================================================================= 6371 // Register : DMA_CH14_WRITE_ADDR 6372 // Description : DMA Channel 14 Write Address pointer 6373 // This register updates automatically each time a write 6374 // completes. The current value is the next address to be written 6375 // by this channel. 6376 #define DMA_CH14_WRITE_ADDR_OFFSET _u(0x00000384) 6377 #define DMA_CH14_WRITE_ADDR_BITS _u(0xffffffff) 6378 #define DMA_CH14_WRITE_ADDR_RESET _u(0x00000000) 6379 #define DMA_CH14_WRITE_ADDR_MSB _u(31) 6380 #define DMA_CH14_WRITE_ADDR_LSB _u(0) 6381 #define DMA_CH14_WRITE_ADDR_ACCESS "RW" 6382 // ============================================================================= 6383 // Register : DMA_CH14_TRANS_COUNT 6384 // Description : DMA Channel 14 Transfer Count 6385 #define DMA_CH14_TRANS_COUNT_OFFSET _u(0x00000388) 6386 #define DMA_CH14_TRANS_COUNT_BITS _u(0xffffffff) 6387 #define DMA_CH14_TRANS_COUNT_RESET _u(0x00000000) 6388 // ----------------------------------------------------------------------------- 6389 // Field : DMA_CH14_TRANS_COUNT_MODE 6390 // Description : When MODE is 0x0, the transfer count decrements with each 6391 // transfer until 0, and then the channel triggers the next 6392 // channel indicated by CTRL_CHAIN_TO. 6393 // 6394 // When MODE is 0x1, the transfer count decrements with each 6395 // transfer until 0, and then the channel re-triggers itself, in 6396 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 6397 // useful for e.g. an endless ring-buffer DMA with periodic 6398 // interrupts. 6399 // 6400 // When MODE is 0xf, the transfer count does not decrement. The 6401 // DMA channel performs an endless sequence of transfers, never 6402 // triggering other channels or raising interrupts, until an ABORT 6403 // is raised. 6404 // 6405 // All other values are reserved. 6406 // 0x0 -> NORMAL 6407 // 0x1 -> TRIGGER_SELF 6408 // 0xf -> ENDLESS 6409 #define DMA_CH14_TRANS_COUNT_MODE_RESET _u(0x0) 6410 #define DMA_CH14_TRANS_COUNT_MODE_BITS _u(0xf0000000) 6411 #define DMA_CH14_TRANS_COUNT_MODE_MSB _u(31) 6412 #define DMA_CH14_TRANS_COUNT_MODE_LSB _u(28) 6413 #define DMA_CH14_TRANS_COUNT_MODE_ACCESS "RW" 6414 #define DMA_CH14_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 6415 #define DMA_CH14_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 6416 #define DMA_CH14_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 6417 // ----------------------------------------------------------------------------- 6418 // Field : DMA_CH14_TRANS_COUNT_COUNT 6419 // Description : 28-bit transfer count (256 million transfers maximum). 6420 // 6421 // Program the number of bus transfers a channel will perform 6422 // before halting. Note that, if transfers are larger than one 6423 // byte in size, this is not equal to the number of bytes 6424 // transferred (see CTRL_DATA_SIZE). 6425 // 6426 // When the channel is active, reading this register shows the 6427 // number of transfers remaining, updating automatically each time 6428 // a write transfer completes. 6429 // 6430 // Writing this register sets the RELOAD value for the transfer 6431 // counter. Each time this channel is triggered, the RELOAD value 6432 // is copied into the live transfer counter. The channel can be 6433 // started multiple times, and will perform the same number of 6434 // transfers each time, as programmed by most recent write. 6435 // 6436 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 6437 // is used as a trigger, the written value is used immediately as 6438 // the length of the new transfer sequence, as well as being 6439 // written to RELOAD. 6440 #define DMA_CH14_TRANS_COUNT_COUNT_RESET _u(0x0000000) 6441 #define DMA_CH14_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 6442 #define DMA_CH14_TRANS_COUNT_COUNT_MSB _u(27) 6443 #define DMA_CH14_TRANS_COUNT_COUNT_LSB _u(0) 6444 #define DMA_CH14_TRANS_COUNT_COUNT_ACCESS "RW" 6445 // ============================================================================= 6446 // Register : DMA_CH14_CTRL_TRIG 6447 // Description : DMA Channel 14 Control and Status 6448 #define DMA_CH14_CTRL_TRIG_OFFSET _u(0x0000038c) 6449 #define DMA_CH14_CTRL_TRIG_BITS _u(0xe7ffffff) 6450 #define DMA_CH14_CTRL_TRIG_RESET _u(0x00000000) 6451 // ----------------------------------------------------------------------------- 6452 // Field : DMA_CH14_CTRL_TRIG_AHB_ERROR 6453 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 6454 // halts when it encounters any bus error, and always raises its 6455 // channel IRQ flag. 6456 #define DMA_CH14_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 6457 #define DMA_CH14_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 6458 #define DMA_CH14_CTRL_TRIG_AHB_ERROR_MSB _u(31) 6459 #define DMA_CH14_CTRL_TRIG_AHB_ERROR_LSB _u(31) 6460 #define DMA_CH14_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 6461 // ----------------------------------------------------------------------------- 6462 // Field : DMA_CH14_CTRL_TRIG_READ_ERROR 6463 // Description : If 1, the channel received a read bus error. Write one to 6464 // clear. 6465 // READ_ADDR shows the approximate address where the bus error was 6466 // encountered (will not be earlier, or more than 3 transfers 6467 // later) 6468 #define DMA_CH14_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 6469 #define DMA_CH14_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 6470 #define DMA_CH14_CTRL_TRIG_READ_ERROR_MSB _u(30) 6471 #define DMA_CH14_CTRL_TRIG_READ_ERROR_LSB _u(30) 6472 #define DMA_CH14_CTRL_TRIG_READ_ERROR_ACCESS "WC" 6473 // ----------------------------------------------------------------------------- 6474 // Field : DMA_CH14_CTRL_TRIG_WRITE_ERROR 6475 // Description : If 1, the channel received a write bus error. Write one to 6476 // clear. 6477 // WRITE_ADDR shows the approximate address where the bus error 6478 // was encountered (will not be earlier, or more than 5 transfers 6479 // later) 6480 #define DMA_CH14_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 6481 #define DMA_CH14_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 6482 #define DMA_CH14_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 6483 #define DMA_CH14_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 6484 #define DMA_CH14_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 6485 // ----------------------------------------------------------------------------- 6486 // Field : DMA_CH14_CTRL_TRIG_BUSY 6487 // Description : This flag goes high when the channel starts a new transfer 6488 // sequence, and low when the last transfer of that sequence 6489 // completes. Clearing EN while BUSY is high pauses the channel, 6490 // and BUSY will stay high while paused. 6491 // 6492 // To terminate a sequence early (and clear the BUSY flag), see 6493 // CHAN_ABORT. 6494 #define DMA_CH14_CTRL_TRIG_BUSY_RESET _u(0x0) 6495 #define DMA_CH14_CTRL_TRIG_BUSY_BITS _u(0x04000000) 6496 #define DMA_CH14_CTRL_TRIG_BUSY_MSB _u(26) 6497 #define DMA_CH14_CTRL_TRIG_BUSY_LSB _u(26) 6498 #define DMA_CH14_CTRL_TRIG_BUSY_ACCESS "RO" 6499 // ----------------------------------------------------------------------------- 6500 // Field : DMA_CH14_CTRL_TRIG_SNIFF_EN 6501 // Description : If 1, this channel's data transfers are visible to the sniff 6502 // hardware, and each transfer will advance the state of the 6503 // checksum. This only applies if the sniff hardware is enabled, 6504 // and has this channel selected. 6505 // 6506 // This allows checksum to be enabled or disabled on a per- 6507 // control- block basis. 6508 #define DMA_CH14_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 6509 #define DMA_CH14_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 6510 #define DMA_CH14_CTRL_TRIG_SNIFF_EN_MSB _u(25) 6511 #define DMA_CH14_CTRL_TRIG_SNIFF_EN_LSB _u(25) 6512 #define DMA_CH14_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 6513 // ----------------------------------------------------------------------------- 6514 // Field : DMA_CH14_CTRL_TRIG_BSWAP 6515 // Description : Apply byte-swap transformation to DMA data. 6516 // For byte data, this has no effect. For halfword data, the two 6517 // bytes of each halfword are swapped. For word data, the four 6518 // bytes of each word are swapped to reverse order. 6519 #define DMA_CH14_CTRL_TRIG_BSWAP_RESET _u(0x0) 6520 #define DMA_CH14_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 6521 #define DMA_CH14_CTRL_TRIG_BSWAP_MSB _u(24) 6522 #define DMA_CH14_CTRL_TRIG_BSWAP_LSB _u(24) 6523 #define DMA_CH14_CTRL_TRIG_BSWAP_ACCESS "RW" 6524 // ----------------------------------------------------------------------------- 6525 // Field : DMA_CH14_CTRL_TRIG_IRQ_QUIET 6526 // Description : In QUIET mode, the channel does not generate IRQs at the end of 6527 // every transfer block. Instead, an IRQ is raised when NULL is 6528 // written to a trigger register, indicating the end of a control 6529 // block chain. 6530 // 6531 // This reduces the number of interrupts to be serviced by the CPU 6532 // when transferring a DMA chain of many small control blocks. 6533 #define DMA_CH14_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 6534 #define DMA_CH14_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 6535 #define DMA_CH14_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 6536 #define DMA_CH14_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 6537 #define DMA_CH14_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 6538 // ----------------------------------------------------------------------------- 6539 // Field : DMA_CH14_CTRL_TRIG_TREQ_SEL 6540 // Description : Select a Transfer Request signal. 6541 // The channel uses the transfer request signal to pace its data 6542 // transfer rate. Sources for TREQ signals are internal (TIMERS) 6543 // or external (DREQ, a Data Request from the system). 6544 // 0x0 to 0x3a -> select DREQ n as TREQ 6545 // 0x3b -> Select Timer 0 as TREQ 6546 // 0x3c -> Select Timer 1 as TREQ 6547 // 0x3d -> Select Timer 2 as TREQ (Optional) 6548 // 0x3e -> Select Timer 3 as TREQ (Optional) 6549 // 0x3f -> Permanent request, for unpaced transfers. 6550 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 6551 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 6552 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_MSB _u(22) 6553 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_LSB _u(17) 6554 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 6555 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 6556 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 6557 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 6558 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 6559 #define DMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 6560 // ----------------------------------------------------------------------------- 6561 // Field : DMA_CH14_CTRL_TRIG_CHAIN_TO 6562 // Description : When this channel completes, it will trigger the channel 6563 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 6564 // channel)_. 6565 // 6566 // Note this field resets to 0, so channels 1 and above will chain 6567 // to channel 0 by default. Set this field to avoid this 6568 // behaviour. 6569 #define DMA_CH14_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 6570 #define DMA_CH14_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 6571 #define DMA_CH14_CTRL_TRIG_CHAIN_TO_MSB _u(16) 6572 #define DMA_CH14_CTRL_TRIG_CHAIN_TO_LSB _u(13) 6573 #define DMA_CH14_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 6574 // ----------------------------------------------------------------------------- 6575 // Field : DMA_CH14_CTRL_TRIG_RING_SEL 6576 // Description : Select whether RING_SIZE applies to read or write addresses. 6577 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 6578 // boundary. If 1, write addresses are wrapped. 6579 #define DMA_CH14_CTRL_TRIG_RING_SEL_RESET _u(0x0) 6580 #define DMA_CH14_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 6581 #define DMA_CH14_CTRL_TRIG_RING_SEL_MSB _u(12) 6582 #define DMA_CH14_CTRL_TRIG_RING_SEL_LSB _u(12) 6583 #define DMA_CH14_CTRL_TRIG_RING_SEL_ACCESS "RW" 6584 // ----------------------------------------------------------------------------- 6585 // Field : DMA_CH14_CTRL_TRIG_RING_SIZE 6586 // Description : Size of address wrap region. If 0, don't wrap. For values n > 6587 // 0, only the lower n bits of the address will change. This wraps 6588 // the address on a (1 << n) byte boundary, facilitating access to 6589 // naturally-aligned ring buffers. 6590 // 6591 // Ring sizes between 2 and 32768 bytes are possible. This can 6592 // apply to either read or write addresses, based on value of 6593 // RING_SEL. 6594 // 0x0 -> RING_NONE 6595 #define DMA_CH14_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 6596 #define DMA_CH14_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 6597 #define DMA_CH14_CTRL_TRIG_RING_SIZE_MSB _u(11) 6598 #define DMA_CH14_CTRL_TRIG_RING_SIZE_LSB _u(8) 6599 #define DMA_CH14_CTRL_TRIG_RING_SIZE_ACCESS "RW" 6600 #define DMA_CH14_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 6601 // ----------------------------------------------------------------------------- 6602 // Field : DMA_CH14_CTRL_TRIG_INCR_WRITE_REV 6603 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 6604 // rather than incremented with each transfer. 6605 // 6606 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 6607 // causes the write address to be incremented by twice the 6608 // transfer size, i.e. skipping over alternate addresses. 6609 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 6610 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 6611 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 6612 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 6613 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 6614 // ----------------------------------------------------------------------------- 6615 // Field : DMA_CH14_CTRL_TRIG_INCR_WRITE 6616 // Description : If 1, the write address increments with each transfer. If 0, 6617 // each write is directed to the same, initial address. 6618 // 6619 // Generally this should be disabled for memory-to-peripheral 6620 // transfers. 6621 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 6622 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 6623 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_MSB _u(6) 6624 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_LSB _u(6) 6625 #define DMA_CH14_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 6626 // ----------------------------------------------------------------------------- 6627 // Field : DMA_CH14_CTRL_TRIG_INCR_READ_REV 6628 // Description : If 1, and INCR_READ is 1, the read address is decremented 6629 // rather than incremented with each transfer. 6630 // 6631 // If 1, and INCR_READ is 0, this otherwise-unused combination 6632 // causes the read address to be incremented by twice the transfer 6633 // size, i.e. skipping over alternate addresses. 6634 #define DMA_CH14_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 6635 #define DMA_CH14_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 6636 #define DMA_CH14_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 6637 #define DMA_CH14_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 6638 #define DMA_CH14_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 6639 // ----------------------------------------------------------------------------- 6640 // Field : DMA_CH14_CTRL_TRIG_INCR_READ 6641 // Description : If 1, the read address increments with each transfer. If 0, 6642 // each read is directed to the same, initial address. 6643 // 6644 // Generally this should be disabled for peripheral-to-memory 6645 // transfers. 6646 #define DMA_CH14_CTRL_TRIG_INCR_READ_RESET _u(0x0) 6647 #define DMA_CH14_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 6648 #define DMA_CH14_CTRL_TRIG_INCR_READ_MSB _u(4) 6649 #define DMA_CH14_CTRL_TRIG_INCR_READ_LSB _u(4) 6650 #define DMA_CH14_CTRL_TRIG_INCR_READ_ACCESS "RW" 6651 // ----------------------------------------------------------------------------- 6652 // Field : DMA_CH14_CTRL_TRIG_DATA_SIZE 6653 // Description : Set the size of each bus transfer (byte/halfword/word). 6654 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 6655 // with each transfer. 6656 // 0x0 -> SIZE_BYTE 6657 // 0x1 -> SIZE_HALFWORD 6658 // 0x2 -> SIZE_WORD 6659 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 6660 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 6661 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_MSB _u(3) 6662 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_LSB _u(2) 6663 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 6664 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 6665 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 6666 #define DMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 6667 // ----------------------------------------------------------------------------- 6668 // Field : DMA_CH14_CTRL_TRIG_HIGH_PRIORITY 6669 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 6670 // scheduling: in each scheduling round, all high priority 6671 // channels are considered first, and then only a single low 6672 // priority channel, before returning to the high priority 6673 // channels. 6674 // 6675 // This only affects the order in which the DMA schedules 6676 // channels. The DMA's bus priority is not changed. If the DMA is 6677 // not saturated then a low priority channel will see no loss of 6678 // throughput. 6679 #define DMA_CH14_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 6680 #define DMA_CH14_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 6681 #define DMA_CH14_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 6682 #define DMA_CH14_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 6683 #define DMA_CH14_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 6684 // ----------------------------------------------------------------------------- 6685 // Field : DMA_CH14_CTRL_TRIG_EN 6686 // Description : DMA Channel Enable. 6687 // When 1, the channel will respond to triggering events, which 6688 // will cause it to become BUSY and start transferring data. When 6689 // 0, the channel will ignore triggers, stop issuing transfers, 6690 // and pause the current transfer sequence (i.e. BUSY will remain 6691 // high if already high) 6692 #define DMA_CH14_CTRL_TRIG_EN_RESET _u(0x0) 6693 #define DMA_CH14_CTRL_TRIG_EN_BITS _u(0x00000001) 6694 #define DMA_CH14_CTRL_TRIG_EN_MSB _u(0) 6695 #define DMA_CH14_CTRL_TRIG_EN_LSB _u(0) 6696 #define DMA_CH14_CTRL_TRIG_EN_ACCESS "RW" 6697 // ============================================================================= 6698 // Register : DMA_CH14_AL1_CTRL 6699 // Description : Alias for channel 14 CTRL register 6700 #define DMA_CH14_AL1_CTRL_OFFSET _u(0x00000390) 6701 #define DMA_CH14_AL1_CTRL_BITS _u(0xffffffff) 6702 #define DMA_CH14_AL1_CTRL_RESET "-" 6703 #define DMA_CH14_AL1_CTRL_MSB _u(31) 6704 #define DMA_CH14_AL1_CTRL_LSB _u(0) 6705 #define DMA_CH14_AL1_CTRL_ACCESS "RW" 6706 // ============================================================================= 6707 // Register : DMA_CH14_AL1_READ_ADDR 6708 // Description : Alias for channel 14 READ_ADDR register 6709 #define DMA_CH14_AL1_READ_ADDR_OFFSET _u(0x00000394) 6710 #define DMA_CH14_AL1_READ_ADDR_BITS _u(0xffffffff) 6711 #define DMA_CH14_AL1_READ_ADDR_RESET "-" 6712 #define DMA_CH14_AL1_READ_ADDR_MSB _u(31) 6713 #define DMA_CH14_AL1_READ_ADDR_LSB _u(0) 6714 #define DMA_CH14_AL1_READ_ADDR_ACCESS "RW" 6715 // ============================================================================= 6716 // Register : DMA_CH14_AL1_WRITE_ADDR 6717 // Description : Alias for channel 14 WRITE_ADDR register 6718 #define DMA_CH14_AL1_WRITE_ADDR_OFFSET _u(0x00000398) 6719 #define DMA_CH14_AL1_WRITE_ADDR_BITS _u(0xffffffff) 6720 #define DMA_CH14_AL1_WRITE_ADDR_RESET "-" 6721 #define DMA_CH14_AL1_WRITE_ADDR_MSB _u(31) 6722 #define DMA_CH14_AL1_WRITE_ADDR_LSB _u(0) 6723 #define DMA_CH14_AL1_WRITE_ADDR_ACCESS "RW" 6724 // ============================================================================= 6725 // Register : DMA_CH14_AL1_TRANS_COUNT_TRIG 6726 // Description : Alias for channel 14 TRANS_COUNT register 6727 // This is a trigger register (0xc). Writing a nonzero value will 6728 // reload the channel counter and start the channel. 6729 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x0000039c) 6730 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 6731 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_RESET "-" 6732 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_MSB _u(31) 6733 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_LSB _u(0) 6734 #define DMA_CH14_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 6735 // ============================================================================= 6736 // Register : DMA_CH14_AL2_CTRL 6737 // Description : Alias for channel 14 CTRL register 6738 #define DMA_CH14_AL2_CTRL_OFFSET _u(0x000003a0) 6739 #define DMA_CH14_AL2_CTRL_BITS _u(0xffffffff) 6740 #define DMA_CH14_AL2_CTRL_RESET "-" 6741 #define DMA_CH14_AL2_CTRL_MSB _u(31) 6742 #define DMA_CH14_AL2_CTRL_LSB _u(0) 6743 #define DMA_CH14_AL2_CTRL_ACCESS "RW" 6744 // ============================================================================= 6745 // Register : DMA_CH14_AL2_TRANS_COUNT 6746 // Description : Alias for channel 14 TRANS_COUNT register 6747 #define DMA_CH14_AL2_TRANS_COUNT_OFFSET _u(0x000003a4) 6748 #define DMA_CH14_AL2_TRANS_COUNT_BITS _u(0xffffffff) 6749 #define DMA_CH14_AL2_TRANS_COUNT_RESET "-" 6750 #define DMA_CH14_AL2_TRANS_COUNT_MSB _u(31) 6751 #define DMA_CH14_AL2_TRANS_COUNT_LSB _u(0) 6752 #define DMA_CH14_AL2_TRANS_COUNT_ACCESS "RW" 6753 // ============================================================================= 6754 // Register : DMA_CH14_AL2_READ_ADDR 6755 // Description : Alias for channel 14 READ_ADDR register 6756 #define DMA_CH14_AL2_READ_ADDR_OFFSET _u(0x000003a8) 6757 #define DMA_CH14_AL2_READ_ADDR_BITS _u(0xffffffff) 6758 #define DMA_CH14_AL2_READ_ADDR_RESET "-" 6759 #define DMA_CH14_AL2_READ_ADDR_MSB _u(31) 6760 #define DMA_CH14_AL2_READ_ADDR_LSB _u(0) 6761 #define DMA_CH14_AL2_READ_ADDR_ACCESS "RW" 6762 // ============================================================================= 6763 // Register : DMA_CH14_AL2_WRITE_ADDR_TRIG 6764 // Description : Alias for channel 14 WRITE_ADDR register 6765 // This is a trigger register (0xc). Writing a nonzero value will 6766 // reload the channel counter and start the channel. 6767 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000003ac) 6768 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 6769 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_RESET "-" 6770 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_MSB _u(31) 6771 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_LSB _u(0) 6772 #define DMA_CH14_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 6773 // ============================================================================= 6774 // Register : DMA_CH14_AL3_CTRL 6775 // Description : Alias for channel 14 CTRL register 6776 #define DMA_CH14_AL3_CTRL_OFFSET _u(0x000003b0) 6777 #define DMA_CH14_AL3_CTRL_BITS _u(0xffffffff) 6778 #define DMA_CH14_AL3_CTRL_RESET "-" 6779 #define DMA_CH14_AL3_CTRL_MSB _u(31) 6780 #define DMA_CH14_AL3_CTRL_LSB _u(0) 6781 #define DMA_CH14_AL3_CTRL_ACCESS "RW" 6782 // ============================================================================= 6783 // Register : DMA_CH14_AL3_WRITE_ADDR 6784 // Description : Alias for channel 14 WRITE_ADDR register 6785 #define DMA_CH14_AL3_WRITE_ADDR_OFFSET _u(0x000003b4) 6786 #define DMA_CH14_AL3_WRITE_ADDR_BITS _u(0xffffffff) 6787 #define DMA_CH14_AL3_WRITE_ADDR_RESET "-" 6788 #define DMA_CH14_AL3_WRITE_ADDR_MSB _u(31) 6789 #define DMA_CH14_AL3_WRITE_ADDR_LSB _u(0) 6790 #define DMA_CH14_AL3_WRITE_ADDR_ACCESS "RW" 6791 // ============================================================================= 6792 // Register : DMA_CH14_AL3_TRANS_COUNT 6793 // Description : Alias for channel 14 TRANS_COUNT register 6794 #define DMA_CH14_AL3_TRANS_COUNT_OFFSET _u(0x000003b8) 6795 #define DMA_CH14_AL3_TRANS_COUNT_BITS _u(0xffffffff) 6796 #define DMA_CH14_AL3_TRANS_COUNT_RESET "-" 6797 #define DMA_CH14_AL3_TRANS_COUNT_MSB _u(31) 6798 #define DMA_CH14_AL3_TRANS_COUNT_LSB _u(0) 6799 #define DMA_CH14_AL3_TRANS_COUNT_ACCESS "RW" 6800 // ============================================================================= 6801 // Register : DMA_CH14_AL3_READ_ADDR_TRIG 6802 // Description : Alias for channel 14 READ_ADDR register 6803 // This is a trigger register (0xc). Writing a nonzero value will 6804 // reload the channel counter and start the channel. 6805 #define DMA_CH14_AL3_READ_ADDR_TRIG_OFFSET _u(0x000003bc) 6806 #define DMA_CH14_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 6807 #define DMA_CH14_AL3_READ_ADDR_TRIG_RESET "-" 6808 #define DMA_CH14_AL3_READ_ADDR_TRIG_MSB _u(31) 6809 #define DMA_CH14_AL3_READ_ADDR_TRIG_LSB _u(0) 6810 #define DMA_CH14_AL3_READ_ADDR_TRIG_ACCESS "RW" 6811 // ============================================================================= 6812 // Register : DMA_CH15_READ_ADDR 6813 // Description : DMA Channel 15 Read Address pointer 6814 // This register updates automatically each time a read completes. 6815 // The current value is the next address to be read by this 6816 // channel. 6817 #define DMA_CH15_READ_ADDR_OFFSET _u(0x000003c0) 6818 #define DMA_CH15_READ_ADDR_BITS _u(0xffffffff) 6819 #define DMA_CH15_READ_ADDR_RESET _u(0x00000000) 6820 #define DMA_CH15_READ_ADDR_MSB _u(31) 6821 #define DMA_CH15_READ_ADDR_LSB _u(0) 6822 #define DMA_CH15_READ_ADDR_ACCESS "RW" 6823 // ============================================================================= 6824 // Register : DMA_CH15_WRITE_ADDR 6825 // Description : DMA Channel 15 Write Address pointer 6826 // This register updates automatically each time a write 6827 // completes. The current value is the next address to be written 6828 // by this channel. 6829 #define DMA_CH15_WRITE_ADDR_OFFSET _u(0x000003c4) 6830 #define DMA_CH15_WRITE_ADDR_BITS _u(0xffffffff) 6831 #define DMA_CH15_WRITE_ADDR_RESET _u(0x00000000) 6832 #define DMA_CH15_WRITE_ADDR_MSB _u(31) 6833 #define DMA_CH15_WRITE_ADDR_LSB _u(0) 6834 #define DMA_CH15_WRITE_ADDR_ACCESS "RW" 6835 // ============================================================================= 6836 // Register : DMA_CH15_TRANS_COUNT 6837 // Description : DMA Channel 15 Transfer Count 6838 #define DMA_CH15_TRANS_COUNT_OFFSET _u(0x000003c8) 6839 #define DMA_CH15_TRANS_COUNT_BITS _u(0xffffffff) 6840 #define DMA_CH15_TRANS_COUNT_RESET _u(0x00000000) 6841 // ----------------------------------------------------------------------------- 6842 // Field : DMA_CH15_TRANS_COUNT_MODE 6843 // Description : When MODE is 0x0, the transfer count decrements with each 6844 // transfer until 0, and then the channel triggers the next 6845 // channel indicated by CTRL_CHAIN_TO. 6846 // 6847 // When MODE is 0x1, the transfer count decrements with each 6848 // transfer until 0, and then the channel re-triggers itself, in 6849 // addition to the trigger indicated by CTRL_CHAIN_TO. This is 6850 // useful for e.g. an endless ring-buffer DMA with periodic 6851 // interrupts. 6852 // 6853 // When MODE is 0xf, the transfer count does not decrement. The 6854 // DMA channel performs an endless sequence of transfers, never 6855 // triggering other channels or raising interrupts, until an ABORT 6856 // is raised. 6857 // 6858 // All other values are reserved. 6859 // 0x0 -> NORMAL 6860 // 0x1 -> TRIGGER_SELF 6861 // 0xf -> ENDLESS 6862 #define DMA_CH15_TRANS_COUNT_MODE_RESET _u(0x0) 6863 #define DMA_CH15_TRANS_COUNT_MODE_BITS _u(0xf0000000) 6864 #define DMA_CH15_TRANS_COUNT_MODE_MSB _u(31) 6865 #define DMA_CH15_TRANS_COUNT_MODE_LSB _u(28) 6866 #define DMA_CH15_TRANS_COUNT_MODE_ACCESS "RW" 6867 #define DMA_CH15_TRANS_COUNT_MODE_VALUE_NORMAL _u(0x0) 6868 #define DMA_CH15_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF _u(0x1) 6869 #define DMA_CH15_TRANS_COUNT_MODE_VALUE_ENDLESS _u(0xf) 6870 // ----------------------------------------------------------------------------- 6871 // Field : DMA_CH15_TRANS_COUNT_COUNT 6872 // Description : 28-bit transfer count (256 million transfers maximum). 6873 // 6874 // Program the number of bus transfers a channel will perform 6875 // before halting. Note that, if transfers are larger than one 6876 // byte in size, this is not equal to the number of bytes 6877 // transferred (see CTRL_DATA_SIZE). 6878 // 6879 // When the channel is active, reading this register shows the 6880 // number of transfers remaining, updating automatically each time 6881 // a write transfer completes. 6882 // 6883 // Writing this register sets the RELOAD value for the transfer 6884 // counter. Each time this channel is triggered, the RELOAD value 6885 // is copied into the live transfer counter. The channel can be 6886 // started multiple times, and will perform the same number of 6887 // transfers each time, as programmed by most recent write. 6888 // 6889 // The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT 6890 // is used as a trigger, the written value is used immediately as 6891 // the length of the new transfer sequence, as well as being 6892 // written to RELOAD. 6893 #define DMA_CH15_TRANS_COUNT_COUNT_RESET _u(0x0000000) 6894 #define DMA_CH15_TRANS_COUNT_COUNT_BITS _u(0x0fffffff) 6895 #define DMA_CH15_TRANS_COUNT_COUNT_MSB _u(27) 6896 #define DMA_CH15_TRANS_COUNT_COUNT_LSB _u(0) 6897 #define DMA_CH15_TRANS_COUNT_COUNT_ACCESS "RW" 6898 // ============================================================================= 6899 // Register : DMA_CH15_CTRL_TRIG 6900 // Description : DMA Channel 15 Control and Status 6901 #define DMA_CH15_CTRL_TRIG_OFFSET _u(0x000003cc) 6902 #define DMA_CH15_CTRL_TRIG_BITS _u(0xe7ffffff) 6903 #define DMA_CH15_CTRL_TRIG_RESET _u(0x00000000) 6904 // ----------------------------------------------------------------------------- 6905 // Field : DMA_CH15_CTRL_TRIG_AHB_ERROR 6906 // Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel 6907 // halts when it encounters any bus error, and always raises its 6908 // channel IRQ flag. 6909 #define DMA_CH15_CTRL_TRIG_AHB_ERROR_RESET _u(0x0) 6910 #define DMA_CH15_CTRL_TRIG_AHB_ERROR_BITS _u(0x80000000) 6911 #define DMA_CH15_CTRL_TRIG_AHB_ERROR_MSB _u(31) 6912 #define DMA_CH15_CTRL_TRIG_AHB_ERROR_LSB _u(31) 6913 #define DMA_CH15_CTRL_TRIG_AHB_ERROR_ACCESS "RO" 6914 // ----------------------------------------------------------------------------- 6915 // Field : DMA_CH15_CTRL_TRIG_READ_ERROR 6916 // Description : If 1, the channel received a read bus error. Write one to 6917 // clear. 6918 // READ_ADDR shows the approximate address where the bus error was 6919 // encountered (will not be earlier, or more than 3 transfers 6920 // later) 6921 #define DMA_CH15_CTRL_TRIG_READ_ERROR_RESET _u(0x0) 6922 #define DMA_CH15_CTRL_TRIG_READ_ERROR_BITS _u(0x40000000) 6923 #define DMA_CH15_CTRL_TRIG_READ_ERROR_MSB _u(30) 6924 #define DMA_CH15_CTRL_TRIG_READ_ERROR_LSB _u(30) 6925 #define DMA_CH15_CTRL_TRIG_READ_ERROR_ACCESS "WC" 6926 // ----------------------------------------------------------------------------- 6927 // Field : DMA_CH15_CTRL_TRIG_WRITE_ERROR 6928 // Description : If 1, the channel received a write bus error. Write one to 6929 // clear. 6930 // WRITE_ADDR shows the approximate address where the bus error 6931 // was encountered (will not be earlier, or more than 5 transfers 6932 // later) 6933 #define DMA_CH15_CTRL_TRIG_WRITE_ERROR_RESET _u(0x0) 6934 #define DMA_CH15_CTRL_TRIG_WRITE_ERROR_BITS _u(0x20000000) 6935 #define DMA_CH15_CTRL_TRIG_WRITE_ERROR_MSB _u(29) 6936 #define DMA_CH15_CTRL_TRIG_WRITE_ERROR_LSB _u(29) 6937 #define DMA_CH15_CTRL_TRIG_WRITE_ERROR_ACCESS "WC" 6938 // ----------------------------------------------------------------------------- 6939 // Field : DMA_CH15_CTRL_TRIG_BUSY 6940 // Description : This flag goes high when the channel starts a new transfer 6941 // sequence, and low when the last transfer of that sequence 6942 // completes. Clearing EN while BUSY is high pauses the channel, 6943 // and BUSY will stay high while paused. 6944 // 6945 // To terminate a sequence early (and clear the BUSY flag), see 6946 // CHAN_ABORT. 6947 #define DMA_CH15_CTRL_TRIG_BUSY_RESET _u(0x0) 6948 #define DMA_CH15_CTRL_TRIG_BUSY_BITS _u(0x04000000) 6949 #define DMA_CH15_CTRL_TRIG_BUSY_MSB _u(26) 6950 #define DMA_CH15_CTRL_TRIG_BUSY_LSB _u(26) 6951 #define DMA_CH15_CTRL_TRIG_BUSY_ACCESS "RO" 6952 // ----------------------------------------------------------------------------- 6953 // Field : DMA_CH15_CTRL_TRIG_SNIFF_EN 6954 // Description : If 1, this channel's data transfers are visible to the sniff 6955 // hardware, and each transfer will advance the state of the 6956 // checksum. This only applies if the sniff hardware is enabled, 6957 // and has this channel selected. 6958 // 6959 // This allows checksum to be enabled or disabled on a per- 6960 // control- block basis. 6961 #define DMA_CH15_CTRL_TRIG_SNIFF_EN_RESET _u(0x0) 6962 #define DMA_CH15_CTRL_TRIG_SNIFF_EN_BITS _u(0x02000000) 6963 #define DMA_CH15_CTRL_TRIG_SNIFF_EN_MSB _u(25) 6964 #define DMA_CH15_CTRL_TRIG_SNIFF_EN_LSB _u(25) 6965 #define DMA_CH15_CTRL_TRIG_SNIFF_EN_ACCESS "RW" 6966 // ----------------------------------------------------------------------------- 6967 // Field : DMA_CH15_CTRL_TRIG_BSWAP 6968 // Description : Apply byte-swap transformation to DMA data. 6969 // For byte data, this has no effect. For halfword data, the two 6970 // bytes of each halfword are swapped. For word data, the four 6971 // bytes of each word are swapped to reverse order. 6972 #define DMA_CH15_CTRL_TRIG_BSWAP_RESET _u(0x0) 6973 #define DMA_CH15_CTRL_TRIG_BSWAP_BITS _u(0x01000000) 6974 #define DMA_CH15_CTRL_TRIG_BSWAP_MSB _u(24) 6975 #define DMA_CH15_CTRL_TRIG_BSWAP_LSB _u(24) 6976 #define DMA_CH15_CTRL_TRIG_BSWAP_ACCESS "RW" 6977 // ----------------------------------------------------------------------------- 6978 // Field : DMA_CH15_CTRL_TRIG_IRQ_QUIET 6979 // Description : In QUIET mode, the channel does not generate IRQs at the end of 6980 // every transfer block. Instead, an IRQ is raised when NULL is 6981 // written to a trigger register, indicating the end of a control 6982 // block chain. 6983 // 6984 // This reduces the number of interrupts to be serviced by the CPU 6985 // when transferring a DMA chain of many small control blocks. 6986 #define DMA_CH15_CTRL_TRIG_IRQ_QUIET_RESET _u(0x0) 6987 #define DMA_CH15_CTRL_TRIG_IRQ_QUIET_BITS _u(0x00800000) 6988 #define DMA_CH15_CTRL_TRIG_IRQ_QUIET_MSB _u(23) 6989 #define DMA_CH15_CTRL_TRIG_IRQ_QUIET_LSB _u(23) 6990 #define DMA_CH15_CTRL_TRIG_IRQ_QUIET_ACCESS "RW" 6991 // ----------------------------------------------------------------------------- 6992 // Field : DMA_CH15_CTRL_TRIG_TREQ_SEL 6993 // Description : Select a Transfer Request signal. 6994 // The channel uses the transfer request signal to pace its data 6995 // transfer rate. Sources for TREQ signals are internal (TIMERS) 6996 // or external (DREQ, a Data Request from the system). 6997 // 0x0 to 0x3a -> select DREQ n as TREQ 6998 // 0x3b -> Select Timer 0 as TREQ 6999 // 0x3c -> Select Timer 1 as TREQ 7000 // 0x3d -> Select Timer 2 as TREQ (Optional) 7001 // 0x3e -> Select Timer 3 as TREQ (Optional) 7002 // 0x3f -> Permanent request, for unpaced transfers. 7003 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_RESET _u(0x00) 7004 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_BITS _u(0x007e0000) 7005 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_MSB _u(22) 7006 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_LSB _u(17) 7007 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_ACCESS "RW" 7008 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0 _u(0x3b) 7009 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1 _u(0x3c) 7010 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2 _u(0x3d) 7011 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3 _u(0x3e) 7012 #define DMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT _u(0x3f) 7013 // ----------------------------------------------------------------------------- 7014 // Field : DMA_CH15_CTRL_TRIG_CHAIN_TO 7015 // Description : When this channel completes, it will trigger the channel 7016 // indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this 7017 // channel)_. 7018 // 7019 // Note this field resets to 0, so channels 1 and above will chain 7020 // to channel 0 by default. Set this field to avoid this 7021 // behaviour. 7022 #define DMA_CH15_CTRL_TRIG_CHAIN_TO_RESET _u(0x0) 7023 #define DMA_CH15_CTRL_TRIG_CHAIN_TO_BITS _u(0x0001e000) 7024 #define DMA_CH15_CTRL_TRIG_CHAIN_TO_MSB _u(16) 7025 #define DMA_CH15_CTRL_TRIG_CHAIN_TO_LSB _u(13) 7026 #define DMA_CH15_CTRL_TRIG_CHAIN_TO_ACCESS "RW" 7027 // ----------------------------------------------------------------------------- 7028 // Field : DMA_CH15_CTRL_TRIG_RING_SEL 7029 // Description : Select whether RING_SIZE applies to read or write addresses. 7030 // If 0, read addresses are wrapped on a (1 << RING_SIZE) 7031 // boundary. If 1, write addresses are wrapped. 7032 #define DMA_CH15_CTRL_TRIG_RING_SEL_RESET _u(0x0) 7033 #define DMA_CH15_CTRL_TRIG_RING_SEL_BITS _u(0x00001000) 7034 #define DMA_CH15_CTRL_TRIG_RING_SEL_MSB _u(12) 7035 #define DMA_CH15_CTRL_TRIG_RING_SEL_LSB _u(12) 7036 #define DMA_CH15_CTRL_TRIG_RING_SEL_ACCESS "RW" 7037 // ----------------------------------------------------------------------------- 7038 // Field : DMA_CH15_CTRL_TRIG_RING_SIZE 7039 // Description : Size of address wrap region. If 0, don't wrap. For values n > 7040 // 0, only the lower n bits of the address will change. This wraps 7041 // the address on a (1 << n) byte boundary, facilitating access to 7042 // naturally-aligned ring buffers. 7043 // 7044 // Ring sizes between 2 and 32768 bytes are possible. This can 7045 // apply to either read or write addresses, based on value of 7046 // RING_SEL. 7047 // 0x0 -> RING_NONE 7048 #define DMA_CH15_CTRL_TRIG_RING_SIZE_RESET _u(0x0) 7049 #define DMA_CH15_CTRL_TRIG_RING_SIZE_BITS _u(0x00000f00) 7050 #define DMA_CH15_CTRL_TRIG_RING_SIZE_MSB _u(11) 7051 #define DMA_CH15_CTRL_TRIG_RING_SIZE_LSB _u(8) 7052 #define DMA_CH15_CTRL_TRIG_RING_SIZE_ACCESS "RW" 7053 #define DMA_CH15_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE _u(0x0) 7054 // ----------------------------------------------------------------------------- 7055 // Field : DMA_CH15_CTRL_TRIG_INCR_WRITE_REV 7056 // Description : If 1, and INCR_WRITE is 1, the write address is decremented 7057 // rather than incremented with each transfer. 7058 // 7059 // If 1, and INCR_WRITE is 0, this otherwise-unused combination 7060 // causes the write address to be incremented by twice the 7061 // transfer size, i.e. skipping over alternate addresses. 7062 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_REV_RESET _u(0x0) 7063 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_REV_BITS _u(0x00000080) 7064 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_REV_MSB _u(7) 7065 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_REV_LSB _u(7) 7066 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_REV_ACCESS "RW" 7067 // ----------------------------------------------------------------------------- 7068 // Field : DMA_CH15_CTRL_TRIG_INCR_WRITE 7069 // Description : If 1, the write address increments with each transfer. If 0, 7070 // each write is directed to the same, initial address. 7071 // 7072 // Generally this should be disabled for memory-to-peripheral 7073 // transfers. 7074 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_RESET _u(0x0) 7075 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_BITS _u(0x00000040) 7076 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_MSB _u(6) 7077 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_LSB _u(6) 7078 #define DMA_CH15_CTRL_TRIG_INCR_WRITE_ACCESS "RW" 7079 // ----------------------------------------------------------------------------- 7080 // Field : DMA_CH15_CTRL_TRIG_INCR_READ_REV 7081 // Description : If 1, and INCR_READ is 1, the read address is decremented 7082 // rather than incremented with each transfer. 7083 // 7084 // If 1, and INCR_READ is 0, this otherwise-unused combination 7085 // causes the read address to be incremented by twice the transfer 7086 // size, i.e. skipping over alternate addresses. 7087 #define DMA_CH15_CTRL_TRIG_INCR_READ_REV_RESET _u(0x0) 7088 #define DMA_CH15_CTRL_TRIG_INCR_READ_REV_BITS _u(0x00000020) 7089 #define DMA_CH15_CTRL_TRIG_INCR_READ_REV_MSB _u(5) 7090 #define DMA_CH15_CTRL_TRIG_INCR_READ_REV_LSB _u(5) 7091 #define DMA_CH15_CTRL_TRIG_INCR_READ_REV_ACCESS "RW" 7092 // ----------------------------------------------------------------------------- 7093 // Field : DMA_CH15_CTRL_TRIG_INCR_READ 7094 // Description : If 1, the read address increments with each transfer. If 0, 7095 // each read is directed to the same, initial address. 7096 // 7097 // Generally this should be disabled for peripheral-to-memory 7098 // transfers. 7099 #define DMA_CH15_CTRL_TRIG_INCR_READ_RESET _u(0x0) 7100 #define DMA_CH15_CTRL_TRIG_INCR_READ_BITS _u(0x00000010) 7101 #define DMA_CH15_CTRL_TRIG_INCR_READ_MSB _u(4) 7102 #define DMA_CH15_CTRL_TRIG_INCR_READ_LSB _u(4) 7103 #define DMA_CH15_CTRL_TRIG_INCR_READ_ACCESS "RW" 7104 // ----------------------------------------------------------------------------- 7105 // Field : DMA_CH15_CTRL_TRIG_DATA_SIZE 7106 // Description : Set the size of each bus transfer (byte/halfword/word). 7107 // READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes) 7108 // with each transfer. 7109 // 0x0 -> SIZE_BYTE 7110 // 0x1 -> SIZE_HALFWORD 7111 // 0x2 -> SIZE_WORD 7112 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_RESET _u(0x0) 7113 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_BITS _u(0x0000000c) 7114 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_MSB _u(3) 7115 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_LSB _u(2) 7116 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_ACCESS "RW" 7117 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE _u(0x0) 7118 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD _u(0x1) 7119 #define DMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD _u(0x2) 7120 // ----------------------------------------------------------------------------- 7121 // Field : DMA_CH15_CTRL_TRIG_HIGH_PRIORITY 7122 // Description : HIGH_PRIORITY gives a channel preferential treatment in issue 7123 // scheduling: in each scheduling round, all high priority 7124 // channels are considered first, and then only a single low 7125 // priority channel, before returning to the high priority 7126 // channels. 7127 // 7128 // This only affects the order in which the DMA schedules 7129 // channels. The DMA's bus priority is not changed. If the DMA is 7130 // not saturated then a low priority channel will see no loss of 7131 // throughput. 7132 #define DMA_CH15_CTRL_TRIG_HIGH_PRIORITY_RESET _u(0x0) 7133 #define DMA_CH15_CTRL_TRIG_HIGH_PRIORITY_BITS _u(0x00000002) 7134 #define DMA_CH15_CTRL_TRIG_HIGH_PRIORITY_MSB _u(1) 7135 #define DMA_CH15_CTRL_TRIG_HIGH_PRIORITY_LSB _u(1) 7136 #define DMA_CH15_CTRL_TRIG_HIGH_PRIORITY_ACCESS "RW" 7137 // ----------------------------------------------------------------------------- 7138 // Field : DMA_CH15_CTRL_TRIG_EN 7139 // Description : DMA Channel Enable. 7140 // When 1, the channel will respond to triggering events, which 7141 // will cause it to become BUSY and start transferring data. When 7142 // 0, the channel will ignore triggers, stop issuing transfers, 7143 // and pause the current transfer sequence (i.e. BUSY will remain 7144 // high if already high) 7145 #define DMA_CH15_CTRL_TRIG_EN_RESET _u(0x0) 7146 #define DMA_CH15_CTRL_TRIG_EN_BITS _u(0x00000001) 7147 #define DMA_CH15_CTRL_TRIG_EN_MSB _u(0) 7148 #define DMA_CH15_CTRL_TRIG_EN_LSB _u(0) 7149 #define DMA_CH15_CTRL_TRIG_EN_ACCESS "RW" 7150 // ============================================================================= 7151 // Register : DMA_CH15_AL1_CTRL 7152 // Description : Alias for channel 15 CTRL register 7153 #define DMA_CH15_AL1_CTRL_OFFSET _u(0x000003d0) 7154 #define DMA_CH15_AL1_CTRL_BITS _u(0xffffffff) 7155 #define DMA_CH15_AL1_CTRL_RESET "-" 7156 #define DMA_CH15_AL1_CTRL_MSB _u(31) 7157 #define DMA_CH15_AL1_CTRL_LSB _u(0) 7158 #define DMA_CH15_AL1_CTRL_ACCESS "RW" 7159 // ============================================================================= 7160 // Register : DMA_CH15_AL1_READ_ADDR 7161 // Description : Alias for channel 15 READ_ADDR register 7162 #define DMA_CH15_AL1_READ_ADDR_OFFSET _u(0x000003d4) 7163 #define DMA_CH15_AL1_READ_ADDR_BITS _u(0xffffffff) 7164 #define DMA_CH15_AL1_READ_ADDR_RESET "-" 7165 #define DMA_CH15_AL1_READ_ADDR_MSB _u(31) 7166 #define DMA_CH15_AL1_READ_ADDR_LSB _u(0) 7167 #define DMA_CH15_AL1_READ_ADDR_ACCESS "RW" 7168 // ============================================================================= 7169 // Register : DMA_CH15_AL1_WRITE_ADDR 7170 // Description : Alias for channel 15 WRITE_ADDR register 7171 #define DMA_CH15_AL1_WRITE_ADDR_OFFSET _u(0x000003d8) 7172 #define DMA_CH15_AL1_WRITE_ADDR_BITS _u(0xffffffff) 7173 #define DMA_CH15_AL1_WRITE_ADDR_RESET "-" 7174 #define DMA_CH15_AL1_WRITE_ADDR_MSB _u(31) 7175 #define DMA_CH15_AL1_WRITE_ADDR_LSB _u(0) 7176 #define DMA_CH15_AL1_WRITE_ADDR_ACCESS "RW" 7177 // ============================================================================= 7178 // Register : DMA_CH15_AL1_TRANS_COUNT_TRIG 7179 // Description : Alias for channel 15 TRANS_COUNT register 7180 // This is a trigger register (0xc). Writing a nonzero value will 7181 // reload the channel counter and start the channel. 7182 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_OFFSET _u(0x000003dc) 7183 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_BITS _u(0xffffffff) 7184 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_RESET "-" 7185 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_MSB _u(31) 7186 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_LSB _u(0) 7187 #define DMA_CH15_AL1_TRANS_COUNT_TRIG_ACCESS "RW" 7188 // ============================================================================= 7189 // Register : DMA_CH15_AL2_CTRL 7190 // Description : Alias for channel 15 CTRL register 7191 #define DMA_CH15_AL2_CTRL_OFFSET _u(0x000003e0) 7192 #define DMA_CH15_AL2_CTRL_BITS _u(0xffffffff) 7193 #define DMA_CH15_AL2_CTRL_RESET "-" 7194 #define DMA_CH15_AL2_CTRL_MSB _u(31) 7195 #define DMA_CH15_AL2_CTRL_LSB _u(0) 7196 #define DMA_CH15_AL2_CTRL_ACCESS "RW" 7197 // ============================================================================= 7198 // Register : DMA_CH15_AL2_TRANS_COUNT 7199 // Description : Alias for channel 15 TRANS_COUNT register 7200 #define DMA_CH15_AL2_TRANS_COUNT_OFFSET _u(0x000003e4) 7201 #define DMA_CH15_AL2_TRANS_COUNT_BITS _u(0xffffffff) 7202 #define DMA_CH15_AL2_TRANS_COUNT_RESET "-" 7203 #define DMA_CH15_AL2_TRANS_COUNT_MSB _u(31) 7204 #define DMA_CH15_AL2_TRANS_COUNT_LSB _u(0) 7205 #define DMA_CH15_AL2_TRANS_COUNT_ACCESS "RW" 7206 // ============================================================================= 7207 // Register : DMA_CH15_AL2_READ_ADDR 7208 // Description : Alias for channel 15 READ_ADDR register 7209 #define DMA_CH15_AL2_READ_ADDR_OFFSET _u(0x000003e8) 7210 #define DMA_CH15_AL2_READ_ADDR_BITS _u(0xffffffff) 7211 #define DMA_CH15_AL2_READ_ADDR_RESET "-" 7212 #define DMA_CH15_AL2_READ_ADDR_MSB _u(31) 7213 #define DMA_CH15_AL2_READ_ADDR_LSB _u(0) 7214 #define DMA_CH15_AL2_READ_ADDR_ACCESS "RW" 7215 // ============================================================================= 7216 // Register : DMA_CH15_AL2_WRITE_ADDR_TRIG 7217 // Description : Alias for channel 15 WRITE_ADDR register 7218 // This is a trigger register (0xc). Writing a nonzero value will 7219 // reload the channel counter and start the channel. 7220 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_OFFSET _u(0x000003ec) 7221 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_BITS _u(0xffffffff) 7222 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_RESET "-" 7223 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_MSB _u(31) 7224 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_LSB _u(0) 7225 #define DMA_CH15_AL2_WRITE_ADDR_TRIG_ACCESS "RW" 7226 // ============================================================================= 7227 // Register : DMA_CH15_AL3_CTRL 7228 // Description : Alias for channel 15 CTRL register 7229 #define DMA_CH15_AL3_CTRL_OFFSET _u(0x000003f0) 7230 #define DMA_CH15_AL3_CTRL_BITS _u(0xffffffff) 7231 #define DMA_CH15_AL3_CTRL_RESET "-" 7232 #define DMA_CH15_AL3_CTRL_MSB _u(31) 7233 #define DMA_CH15_AL3_CTRL_LSB _u(0) 7234 #define DMA_CH15_AL3_CTRL_ACCESS "RW" 7235 // ============================================================================= 7236 // Register : DMA_CH15_AL3_WRITE_ADDR 7237 // Description : Alias for channel 15 WRITE_ADDR register 7238 #define DMA_CH15_AL3_WRITE_ADDR_OFFSET _u(0x000003f4) 7239 #define DMA_CH15_AL3_WRITE_ADDR_BITS _u(0xffffffff) 7240 #define DMA_CH15_AL3_WRITE_ADDR_RESET "-" 7241 #define DMA_CH15_AL3_WRITE_ADDR_MSB _u(31) 7242 #define DMA_CH15_AL3_WRITE_ADDR_LSB _u(0) 7243 #define DMA_CH15_AL3_WRITE_ADDR_ACCESS "RW" 7244 // ============================================================================= 7245 // Register : DMA_CH15_AL3_TRANS_COUNT 7246 // Description : Alias for channel 15 TRANS_COUNT register 7247 #define DMA_CH15_AL3_TRANS_COUNT_OFFSET _u(0x000003f8) 7248 #define DMA_CH15_AL3_TRANS_COUNT_BITS _u(0xffffffff) 7249 #define DMA_CH15_AL3_TRANS_COUNT_RESET "-" 7250 #define DMA_CH15_AL3_TRANS_COUNT_MSB _u(31) 7251 #define DMA_CH15_AL3_TRANS_COUNT_LSB _u(0) 7252 #define DMA_CH15_AL3_TRANS_COUNT_ACCESS "RW" 7253 // ============================================================================= 7254 // Register : DMA_CH15_AL3_READ_ADDR_TRIG 7255 // Description : Alias for channel 15 READ_ADDR register 7256 // This is a trigger register (0xc). Writing a nonzero value will 7257 // reload the channel counter and start the channel. 7258 #define DMA_CH15_AL3_READ_ADDR_TRIG_OFFSET _u(0x000003fc) 7259 #define DMA_CH15_AL3_READ_ADDR_TRIG_BITS _u(0xffffffff) 7260 #define DMA_CH15_AL3_READ_ADDR_TRIG_RESET "-" 7261 #define DMA_CH15_AL3_READ_ADDR_TRIG_MSB _u(31) 7262 #define DMA_CH15_AL3_READ_ADDR_TRIG_LSB _u(0) 7263 #define DMA_CH15_AL3_READ_ADDR_TRIG_ACCESS "RW" 7264 // ============================================================================= 7265 // Register : DMA_INTR 7266 // Description : Interrupt Status (raw) 7267 // Raw interrupt status for DMA Channels 0..15. Bit n corresponds 7268 // to channel n. Ignores any masking or forcing. Channel 7269 // interrupts can be cleared by writing a bit mask to INTR or 7270 // INTS0/1/2/3. 7271 // 7272 // Channel interrupts can be routed to either of four system-level 7273 // IRQs based on INTE0, INTE1, INTE2 and INTE3. 7274 // 7275 // The multiple system-level interrupts might be used to allow 7276 // NVIC IRQ preemption for more time-critical channels, to spread 7277 // IRQ load across different cores, or to target IRQs to different 7278 // security domains. 7279 // 7280 // It is also valid to ignore the multiple IRQs, and just use 7281 // INTE0/INTS0/IRQ 0. 7282 // 7283 // If this register is accessed at a security/privilege level less 7284 // than that of a given channel (as defined by that channel's 7285 // SECCFG_CHx register), then that channel's interrupt status will 7286 // read as 0, ignore writes. 7287 #define DMA_INTR_OFFSET _u(0x00000400) 7288 #define DMA_INTR_BITS _u(0x0000ffff) 7289 #define DMA_INTR_RESET _u(0x00000000) 7290 #define DMA_INTR_MSB _u(15) 7291 #define DMA_INTR_LSB _u(0) 7292 #define DMA_INTR_ACCESS "WC" 7293 // ============================================================================= 7294 // Register : DMA_INTE0 7295 // Description : Interrupt Enables for IRQ 0 7296 // Set bit n to pass interrupts from channel n to DMA IRQ 0. 7297 // 7298 // Note this bit has no effect if the channel security/privilege 7299 // level, defined by SECCFG_CHx, is greater than the IRQ 7300 // security/privilege defined by SECCFG_IRQ0. 7301 #define DMA_INTE0_OFFSET _u(0x00000404) 7302 #define DMA_INTE0_BITS _u(0x0000ffff) 7303 #define DMA_INTE0_RESET _u(0x00000000) 7304 #define DMA_INTE0_MSB _u(15) 7305 #define DMA_INTE0_LSB _u(0) 7306 #define DMA_INTE0_ACCESS "RW" 7307 // ============================================================================= 7308 // Register : DMA_INTF0 7309 // Description : Force Interrupts 7310 // Write 1s to force the corresponding bits in INTS0. The 7311 // interrupt remains asserted until INTF0 is cleared. 7312 #define DMA_INTF0_OFFSET _u(0x00000408) 7313 #define DMA_INTF0_BITS _u(0x0000ffff) 7314 #define DMA_INTF0_RESET _u(0x00000000) 7315 #define DMA_INTF0_MSB _u(15) 7316 #define DMA_INTF0_LSB _u(0) 7317 #define DMA_INTF0_ACCESS "RW" 7318 // ============================================================================= 7319 // Register : DMA_INTS0 7320 // Description : Interrupt Status for IRQ 0 7321 // Indicates active channel interrupt requests which are currently 7322 // causing IRQ 0 to be asserted. 7323 // Channel interrupts can be cleared by writing a bit mask here. 7324 // 7325 // Channels with a security/privilege (SECCFG_CHx) greater 7326 // SECCFG_IRQ0) read as 0 in this register, and ignore writes. 7327 #define DMA_INTS0_OFFSET _u(0x0000040c) 7328 #define DMA_INTS0_BITS _u(0x0000ffff) 7329 #define DMA_INTS0_RESET _u(0x00000000) 7330 #define DMA_INTS0_MSB _u(15) 7331 #define DMA_INTS0_LSB _u(0) 7332 #define DMA_INTS0_ACCESS "WC" 7333 // ============================================================================= 7334 // Register : DMA_INTE1 7335 // Description : Interrupt Enables for IRQ 1 7336 // Set bit n to pass interrupts from channel n to DMA IRQ 1. 7337 // 7338 // Note this bit has no effect if the channel security/privilege 7339 // level, defined by SECCFG_CHx, is greater than the IRQ 7340 // security/privilege defined by SECCFG_IRQ1. 7341 #define DMA_INTE1_OFFSET _u(0x00000414) 7342 #define DMA_INTE1_BITS _u(0x0000ffff) 7343 #define DMA_INTE1_RESET _u(0x00000000) 7344 #define DMA_INTE1_MSB _u(15) 7345 #define DMA_INTE1_LSB _u(0) 7346 #define DMA_INTE1_ACCESS "RW" 7347 // ============================================================================= 7348 // Register : DMA_INTF1 7349 // Description : Force Interrupts 7350 // Write 1s to force the corresponding bits in INTS1. The 7351 // interrupt remains asserted until INTF1 is cleared. 7352 #define DMA_INTF1_OFFSET _u(0x00000418) 7353 #define DMA_INTF1_BITS _u(0x0000ffff) 7354 #define DMA_INTF1_RESET _u(0x00000000) 7355 #define DMA_INTF1_MSB _u(15) 7356 #define DMA_INTF1_LSB _u(0) 7357 #define DMA_INTF1_ACCESS "RW" 7358 // ============================================================================= 7359 // Register : DMA_INTS1 7360 // Description : Interrupt Status for IRQ 1 7361 // Indicates active channel interrupt requests which are currently 7362 // causing IRQ 1 to be asserted. 7363 // Channel interrupts can be cleared by writing a bit mask here. 7364 // 7365 // Channels with a security/privilege (SECCFG_CHx) greater 7366 // SECCFG_IRQ1) read as 0 in this register, and ignore writes. 7367 #define DMA_INTS1_OFFSET _u(0x0000041c) 7368 #define DMA_INTS1_BITS _u(0x0000ffff) 7369 #define DMA_INTS1_RESET _u(0x00000000) 7370 #define DMA_INTS1_MSB _u(15) 7371 #define DMA_INTS1_LSB _u(0) 7372 #define DMA_INTS1_ACCESS "WC" 7373 // ============================================================================= 7374 // Register : DMA_INTE2 7375 // Description : Interrupt Enables for IRQ 2 7376 // Set bit n to pass interrupts from channel n to DMA IRQ 2. 7377 // 7378 // Note this bit has no effect if the channel security/privilege 7379 // level, defined by SECCFG_CHx, is greater than the IRQ 7380 // security/privilege defined by SECCFG_IRQ2. 7381 #define DMA_INTE2_OFFSET _u(0x00000424) 7382 #define DMA_INTE2_BITS _u(0x0000ffff) 7383 #define DMA_INTE2_RESET _u(0x00000000) 7384 #define DMA_INTE2_MSB _u(15) 7385 #define DMA_INTE2_LSB _u(0) 7386 #define DMA_INTE2_ACCESS "RW" 7387 // ============================================================================= 7388 // Register : DMA_INTF2 7389 // Description : Force Interrupts 7390 // Write 1s to force the corresponding bits in INTS2. The 7391 // interrupt remains asserted until INTF2 is cleared. 7392 #define DMA_INTF2_OFFSET _u(0x00000428) 7393 #define DMA_INTF2_BITS _u(0x0000ffff) 7394 #define DMA_INTF2_RESET _u(0x00000000) 7395 #define DMA_INTF2_MSB _u(15) 7396 #define DMA_INTF2_LSB _u(0) 7397 #define DMA_INTF2_ACCESS "RW" 7398 // ============================================================================= 7399 // Register : DMA_INTS2 7400 // Description : Interrupt Status for IRQ 2 7401 // Indicates active channel interrupt requests which are currently 7402 // causing IRQ 2 to be asserted. 7403 // Channel interrupts can be cleared by writing a bit mask here. 7404 // 7405 // Channels with a security/privilege (SECCFG_CHx) greater 7406 // SECCFG_IRQ2) read as 0 in this register, and ignore writes. 7407 #define DMA_INTS2_OFFSET _u(0x0000042c) 7408 #define DMA_INTS2_BITS _u(0x0000ffff) 7409 #define DMA_INTS2_RESET _u(0x00000000) 7410 #define DMA_INTS2_MSB _u(15) 7411 #define DMA_INTS2_LSB _u(0) 7412 #define DMA_INTS2_ACCESS "WC" 7413 // ============================================================================= 7414 // Register : DMA_INTE3 7415 // Description : Interrupt Enables for IRQ 3 7416 // Set bit n to pass interrupts from channel n to DMA IRQ 3. 7417 // 7418 // Note this bit has no effect if the channel security/privilege 7419 // level, defined by SECCFG_CHx, is greater than the IRQ 7420 // security/privilege defined by SECCFG_IRQ3. 7421 #define DMA_INTE3_OFFSET _u(0x00000434) 7422 #define DMA_INTE3_BITS _u(0x0000ffff) 7423 #define DMA_INTE3_RESET _u(0x00000000) 7424 #define DMA_INTE3_MSB _u(15) 7425 #define DMA_INTE3_LSB _u(0) 7426 #define DMA_INTE3_ACCESS "RW" 7427 // ============================================================================= 7428 // Register : DMA_INTF3 7429 // Description : Force Interrupts 7430 // Write 1s to force the corresponding bits in INTS3. The 7431 // interrupt remains asserted until INTF3 is cleared. 7432 #define DMA_INTF3_OFFSET _u(0x00000438) 7433 #define DMA_INTF3_BITS _u(0x0000ffff) 7434 #define DMA_INTF3_RESET _u(0x00000000) 7435 #define DMA_INTF3_MSB _u(15) 7436 #define DMA_INTF3_LSB _u(0) 7437 #define DMA_INTF3_ACCESS "RW" 7438 // ============================================================================= 7439 // Register : DMA_INTS3 7440 // Description : Interrupt Status for IRQ 3 7441 // Indicates active channel interrupt requests which are currently 7442 // causing IRQ 3 to be asserted. 7443 // Channel interrupts can be cleared by writing a bit mask here. 7444 // 7445 // Channels with a security/privilege (SECCFG_CHx) greater 7446 // SECCFG_IRQ3) read as 0 in this register, and ignore writes. 7447 #define DMA_INTS3_OFFSET _u(0x0000043c) 7448 #define DMA_INTS3_BITS _u(0x0000ffff) 7449 #define DMA_INTS3_RESET _u(0x00000000) 7450 #define DMA_INTS3_MSB _u(15) 7451 #define DMA_INTS3_LSB _u(0) 7452 #define DMA_INTS3_ACCESS "WC" 7453 // ============================================================================= 7454 // Register : DMA_TIMER0 7455 // Description : Pacing (X/Y) fractional timer 7456 // The pacing timer produces TREQ assertions at a rate set by 7457 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 7458 // cycles and therefore can only generate TREQs at a rate of 1 per 7459 // sys_clk (i.e. permanent TREQ) or less. 7460 #define DMA_TIMER0_OFFSET _u(0x00000440) 7461 #define DMA_TIMER0_BITS _u(0xffffffff) 7462 #define DMA_TIMER0_RESET _u(0x00000000) 7463 // ----------------------------------------------------------------------------- 7464 // Field : DMA_TIMER0_X 7465 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 7466 // fractional timer. 7467 #define DMA_TIMER0_X_RESET _u(0x0000) 7468 #define DMA_TIMER0_X_BITS _u(0xffff0000) 7469 #define DMA_TIMER0_X_MSB _u(31) 7470 #define DMA_TIMER0_X_LSB _u(16) 7471 #define DMA_TIMER0_X_ACCESS "RW" 7472 // ----------------------------------------------------------------------------- 7473 // Field : DMA_TIMER0_Y 7474 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 7475 // fractional timer. 7476 #define DMA_TIMER0_Y_RESET _u(0x0000) 7477 #define DMA_TIMER0_Y_BITS _u(0x0000ffff) 7478 #define DMA_TIMER0_Y_MSB _u(15) 7479 #define DMA_TIMER0_Y_LSB _u(0) 7480 #define DMA_TIMER0_Y_ACCESS "RW" 7481 // ============================================================================= 7482 // Register : DMA_TIMER1 7483 // Description : Pacing (X/Y) fractional timer 7484 // The pacing timer produces TREQ assertions at a rate set by 7485 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 7486 // cycles and therefore can only generate TREQs at a rate of 1 per 7487 // sys_clk (i.e. permanent TREQ) or less. 7488 #define DMA_TIMER1_OFFSET _u(0x00000444) 7489 #define DMA_TIMER1_BITS _u(0xffffffff) 7490 #define DMA_TIMER1_RESET _u(0x00000000) 7491 // ----------------------------------------------------------------------------- 7492 // Field : DMA_TIMER1_X 7493 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 7494 // fractional timer. 7495 #define DMA_TIMER1_X_RESET _u(0x0000) 7496 #define DMA_TIMER1_X_BITS _u(0xffff0000) 7497 #define DMA_TIMER1_X_MSB _u(31) 7498 #define DMA_TIMER1_X_LSB _u(16) 7499 #define DMA_TIMER1_X_ACCESS "RW" 7500 // ----------------------------------------------------------------------------- 7501 // Field : DMA_TIMER1_Y 7502 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 7503 // fractional timer. 7504 #define DMA_TIMER1_Y_RESET _u(0x0000) 7505 #define DMA_TIMER1_Y_BITS _u(0x0000ffff) 7506 #define DMA_TIMER1_Y_MSB _u(15) 7507 #define DMA_TIMER1_Y_LSB _u(0) 7508 #define DMA_TIMER1_Y_ACCESS "RW" 7509 // ============================================================================= 7510 // Register : DMA_TIMER2 7511 // Description : Pacing (X/Y) fractional timer 7512 // The pacing timer produces TREQ assertions at a rate set by 7513 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 7514 // cycles and therefore can only generate TREQs at a rate of 1 per 7515 // sys_clk (i.e. permanent TREQ) or less. 7516 #define DMA_TIMER2_OFFSET _u(0x00000448) 7517 #define DMA_TIMER2_BITS _u(0xffffffff) 7518 #define DMA_TIMER2_RESET _u(0x00000000) 7519 // ----------------------------------------------------------------------------- 7520 // Field : DMA_TIMER2_X 7521 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 7522 // fractional timer. 7523 #define DMA_TIMER2_X_RESET _u(0x0000) 7524 #define DMA_TIMER2_X_BITS _u(0xffff0000) 7525 #define DMA_TIMER2_X_MSB _u(31) 7526 #define DMA_TIMER2_X_LSB _u(16) 7527 #define DMA_TIMER2_X_ACCESS "RW" 7528 // ----------------------------------------------------------------------------- 7529 // Field : DMA_TIMER2_Y 7530 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 7531 // fractional timer. 7532 #define DMA_TIMER2_Y_RESET _u(0x0000) 7533 #define DMA_TIMER2_Y_BITS _u(0x0000ffff) 7534 #define DMA_TIMER2_Y_MSB _u(15) 7535 #define DMA_TIMER2_Y_LSB _u(0) 7536 #define DMA_TIMER2_Y_ACCESS "RW" 7537 // ============================================================================= 7538 // Register : DMA_TIMER3 7539 // Description : Pacing (X/Y) fractional timer 7540 // The pacing timer produces TREQ assertions at a rate set by 7541 // ((X/Y) * sys_clk). This equation is evaluated every sys_clk 7542 // cycles and therefore can only generate TREQs at a rate of 1 per 7543 // sys_clk (i.e. permanent TREQ) or less. 7544 #define DMA_TIMER3_OFFSET _u(0x0000044c) 7545 #define DMA_TIMER3_BITS _u(0xffffffff) 7546 #define DMA_TIMER3_RESET _u(0x00000000) 7547 // ----------------------------------------------------------------------------- 7548 // Field : DMA_TIMER3_X 7549 // Description : Pacing Timer Dividend. Specifies the X value for the (X/Y) 7550 // fractional timer. 7551 #define DMA_TIMER3_X_RESET _u(0x0000) 7552 #define DMA_TIMER3_X_BITS _u(0xffff0000) 7553 #define DMA_TIMER3_X_MSB _u(31) 7554 #define DMA_TIMER3_X_LSB _u(16) 7555 #define DMA_TIMER3_X_ACCESS "RW" 7556 // ----------------------------------------------------------------------------- 7557 // Field : DMA_TIMER3_Y 7558 // Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y) 7559 // fractional timer. 7560 #define DMA_TIMER3_Y_RESET _u(0x0000) 7561 #define DMA_TIMER3_Y_BITS _u(0x0000ffff) 7562 #define DMA_TIMER3_Y_MSB _u(15) 7563 #define DMA_TIMER3_Y_LSB _u(0) 7564 #define DMA_TIMER3_Y_ACCESS "RW" 7565 // ============================================================================= 7566 // Register : DMA_MULTI_CHAN_TRIGGER 7567 // Description : Trigger one or more channels simultaneously 7568 // Each bit in this register corresponds to a DMA channel. Writing 7569 // a 1 to the relevant bit is the same as writing to that 7570 // channel's trigger register; the channel will start if it is 7571 // currently enabled and not already busy. 7572 #define DMA_MULTI_CHAN_TRIGGER_OFFSET _u(0x00000450) 7573 #define DMA_MULTI_CHAN_TRIGGER_BITS _u(0x0000ffff) 7574 #define DMA_MULTI_CHAN_TRIGGER_RESET _u(0x00000000) 7575 #define DMA_MULTI_CHAN_TRIGGER_MSB _u(15) 7576 #define DMA_MULTI_CHAN_TRIGGER_LSB _u(0) 7577 #define DMA_MULTI_CHAN_TRIGGER_ACCESS "SC" 7578 // ============================================================================= 7579 // Register : DMA_SNIFF_CTRL 7580 // Description : Sniffer Control 7581 #define DMA_SNIFF_CTRL_OFFSET _u(0x00000454) 7582 #define DMA_SNIFF_CTRL_BITS _u(0x00000fff) 7583 #define DMA_SNIFF_CTRL_RESET _u(0x00000000) 7584 // ----------------------------------------------------------------------------- 7585 // Field : DMA_SNIFF_CTRL_OUT_INV 7586 // Description : If set, the result appears inverted (bitwise complement) when 7587 // read. This does not affect the way the checksum is calculated; 7588 // the result is transformed on-the-fly between the result 7589 // register and the bus. 7590 #define DMA_SNIFF_CTRL_OUT_INV_RESET _u(0x0) 7591 #define DMA_SNIFF_CTRL_OUT_INV_BITS _u(0x00000800) 7592 #define DMA_SNIFF_CTRL_OUT_INV_MSB _u(11) 7593 #define DMA_SNIFF_CTRL_OUT_INV_LSB _u(11) 7594 #define DMA_SNIFF_CTRL_OUT_INV_ACCESS "RW" 7595 // ----------------------------------------------------------------------------- 7596 // Field : DMA_SNIFF_CTRL_OUT_REV 7597 // Description : If set, the result appears bit-reversed when read. This does 7598 // not affect the way the checksum is calculated; the result is 7599 // transformed on-the-fly between the result register and the bus. 7600 #define DMA_SNIFF_CTRL_OUT_REV_RESET _u(0x0) 7601 #define DMA_SNIFF_CTRL_OUT_REV_BITS _u(0x00000400) 7602 #define DMA_SNIFF_CTRL_OUT_REV_MSB _u(10) 7603 #define DMA_SNIFF_CTRL_OUT_REV_LSB _u(10) 7604 #define DMA_SNIFF_CTRL_OUT_REV_ACCESS "RW" 7605 // ----------------------------------------------------------------------------- 7606 // Field : DMA_SNIFF_CTRL_BSWAP 7607 // Description : Locally perform a byte reverse on the sniffed data, before 7608 // feeding into checksum. 7609 // 7610 // Note that the sniff hardware is downstream of the DMA channel 7611 // byteswap performed in the read master: if channel CTRL_BSWAP 7612 // and SNIFF_CTRL_BSWAP are both enabled, their effects cancel 7613 // from the sniffer's point of view. 7614 #define DMA_SNIFF_CTRL_BSWAP_RESET _u(0x0) 7615 #define DMA_SNIFF_CTRL_BSWAP_BITS _u(0x00000200) 7616 #define DMA_SNIFF_CTRL_BSWAP_MSB _u(9) 7617 #define DMA_SNIFF_CTRL_BSWAP_LSB _u(9) 7618 #define DMA_SNIFF_CTRL_BSWAP_ACCESS "RW" 7619 // ----------------------------------------------------------------------------- 7620 // Field : DMA_SNIFF_CTRL_CALC 7621 // 0x0 -> Calculate a CRC-32 (IEEE802.3 polynomial) 7622 // 0x1 -> Calculate a CRC-32 (IEEE802.3 polynomial) with bit reversed data 7623 // 0x2 -> Calculate a CRC-16-CCITT 7624 // 0x3 -> Calculate a CRC-16-CCITT with bit reversed data 7625 // 0xe -> XOR reduction over all data. == 1 if the total 1 population count is odd. 7626 // 0xf -> Calculate a simple 32-bit checksum (addition with a 32 bit accumulator) 7627 #define DMA_SNIFF_CTRL_CALC_RESET _u(0x0) 7628 #define DMA_SNIFF_CTRL_CALC_BITS _u(0x000001e0) 7629 #define DMA_SNIFF_CTRL_CALC_MSB _u(8) 7630 #define DMA_SNIFF_CTRL_CALC_LSB _u(5) 7631 #define DMA_SNIFF_CTRL_CALC_ACCESS "RW" 7632 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC32 _u(0x0) 7633 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC32R _u(0x1) 7634 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC16 _u(0x2) 7635 #define DMA_SNIFF_CTRL_CALC_VALUE_CRC16R _u(0x3) 7636 #define DMA_SNIFF_CTRL_CALC_VALUE_EVEN _u(0xe) 7637 #define DMA_SNIFF_CTRL_CALC_VALUE_SUM _u(0xf) 7638 // ----------------------------------------------------------------------------- 7639 // Field : DMA_SNIFF_CTRL_DMACH 7640 // Description : DMA channel for Sniffer to observe 7641 #define DMA_SNIFF_CTRL_DMACH_RESET _u(0x0) 7642 #define DMA_SNIFF_CTRL_DMACH_BITS _u(0x0000001e) 7643 #define DMA_SNIFF_CTRL_DMACH_MSB _u(4) 7644 #define DMA_SNIFF_CTRL_DMACH_LSB _u(1) 7645 #define DMA_SNIFF_CTRL_DMACH_ACCESS "RW" 7646 // ----------------------------------------------------------------------------- 7647 // Field : DMA_SNIFF_CTRL_EN 7648 // Description : Enable sniffer 7649 #define DMA_SNIFF_CTRL_EN_RESET _u(0x0) 7650 #define DMA_SNIFF_CTRL_EN_BITS _u(0x00000001) 7651 #define DMA_SNIFF_CTRL_EN_MSB _u(0) 7652 #define DMA_SNIFF_CTRL_EN_LSB _u(0) 7653 #define DMA_SNIFF_CTRL_EN_ACCESS "RW" 7654 // ============================================================================= 7655 // Register : DMA_SNIFF_DATA 7656 // Description : Data accumulator for sniff hardware 7657 // Write an initial seed value here before starting a DMA transfer 7658 // on the channel indicated by SNIFF_CTRL_DMACH. The hardware will 7659 // update this register each time it observes a read from the 7660 // indicated channel. Once the channel completes, the final result 7661 // can be read from this register. 7662 #define DMA_SNIFF_DATA_OFFSET _u(0x00000458) 7663 #define DMA_SNIFF_DATA_BITS _u(0xffffffff) 7664 #define DMA_SNIFF_DATA_RESET _u(0x00000000) 7665 #define DMA_SNIFF_DATA_MSB _u(31) 7666 #define DMA_SNIFF_DATA_LSB _u(0) 7667 #define DMA_SNIFF_DATA_ACCESS "RW" 7668 // ============================================================================= 7669 // Register : DMA_FIFO_LEVELS 7670 // Description : Debug RAF, WAF, TDF levels 7671 #define DMA_FIFO_LEVELS_OFFSET _u(0x00000460) 7672 #define DMA_FIFO_LEVELS_BITS _u(0x00ffffff) 7673 #define DMA_FIFO_LEVELS_RESET _u(0x00000000) 7674 // ----------------------------------------------------------------------------- 7675 // Field : DMA_FIFO_LEVELS_RAF_LVL 7676 // Description : Current Read-Address-FIFO fill level 7677 #define DMA_FIFO_LEVELS_RAF_LVL_RESET _u(0x00) 7678 #define DMA_FIFO_LEVELS_RAF_LVL_BITS _u(0x00ff0000) 7679 #define DMA_FIFO_LEVELS_RAF_LVL_MSB _u(23) 7680 #define DMA_FIFO_LEVELS_RAF_LVL_LSB _u(16) 7681 #define DMA_FIFO_LEVELS_RAF_LVL_ACCESS "RO" 7682 // ----------------------------------------------------------------------------- 7683 // Field : DMA_FIFO_LEVELS_WAF_LVL 7684 // Description : Current Write-Address-FIFO fill level 7685 #define DMA_FIFO_LEVELS_WAF_LVL_RESET _u(0x00) 7686 #define DMA_FIFO_LEVELS_WAF_LVL_BITS _u(0x0000ff00) 7687 #define DMA_FIFO_LEVELS_WAF_LVL_MSB _u(15) 7688 #define DMA_FIFO_LEVELS_WAF_LVL_LSB _u(8) 7689 #define DMA_FIFO_LEVELS_WAF_LVL_ACCESS "RO" 7690 // ----------------------------------------------------------------------------- 7691 // Field : DMA_FIFO_LEVELS_TDF_LVL 7692 // Description : Current Transfer-Data-FIFO fill level 7693 #define DMA_FIFO_LEVELS_TDF_LVL_RESET _u(0x00) 7694 #define DMA_FIFO_LEVELS_TDF_LVL_BITS _u(0x000000ff) 7695 #define DMA_FIFO_LEVELS_TDF_LVL_MSB _u(7) 7696 #define DMA_FIFO_LEVELS_TDF_LVL_LSB _u(0) 7697 #define DMA_FIFO_LEVELS_TDF_LVL_ACCESS "RO" 7698 // ============================================================================= 7699 // Register : DMA_CHAN_ABORT 7700 // Description : Abort an in-progress transfer sequence on one or more channels 7701 // Each bit corresponds to a channel. Writing a 1 aborts whatever 7702 // transfer sequence is in progress on that channel. The bit will 7703 // remain high until any in-flight transfers have been flushed 7704 // through the address and data FIFOs. 7705 // 7706 // After writing, this register must be polled until it returns 7707 // all-zero. Until this point, it is unsafe to restart the 7708 // channel. 7709 #define DMA_CHAN_ABORT_OFFSET _u(0x00000464) 7710 #define DMA_CHAN_ABORT_BITS _u(0x0000ffff) 7711 #define DMA_CHAN_ABORT_RESET _u(0x00000000) 7712 #define DMA_CHAN_ABORT_MSB _u(15) 7713 #define DMA_CHAN_ABORT_LSB _u(0) 7714 #define DMA_CHAN_ABORT_ACCESS "SC" 7715 // ============================================================================= 7716 // Register : DMA_N_CHANNELS 7717 // Description : The number of channels this DMA instance is equipped with. This 7718 // DMA supports up to 16 hardware channels, but can be configured 7719 // with as few as one, to minimise silicon area. 7720 #define DMA_N_CHANNELS_OFFSET _u(0x00000468) 7721 #define DMA_N_CHANNELS_BITS _u(0x0000001f) 7722 #define DMA_N_CHANNELS_RESET "-" 7723 #define DMA_N_CHANNELS_MSB _u(4) 7724 #define DMA_N_CHANNELS_LSB _u(0) 7725 #define DMA_N_CHANNELS_ACCESS "RO" 7726 // ============================================================================= 7727 // Register : DMA_SECCFG_CH0 7728 // Description : Security configuration for channel 0. Control whether this 7729 // channel performs Secure/Non-secure and Privileged/Unprivileged 7730 // bus accesses. 7731 // 7732 // If this channel generates bus accesses of some security level, 7733 // an access of at least that level (in the order S+P > S+U > NS+P 7734 // > NS+U) is required to program, trigger, abort, check the 7735 // status of, interrupt on or acknowledge the interrupt of this 7736 // channel. 7737 // 7738 // This register automatically locks down (becomes read-only) once 7739 // software starts to configure the channel. 7740 // 7741 // This register is world-readable, but is writable only from a 7742 // Secure, Privileged context. 7743 #define DMA_SECCFG_CH0_OFFSET _u(0x00000480) 7744 #define DMA_SECCFG_CH0_BITS _u(0x00000007) 7745 #define DMA_SECCFG_CH0_RESET _u(0x00000003) 7746 // ----------------------------------------------------------------------------- 7747 // Field : DMA_SECCFG_CH0_LOCK 7748 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 7749 // successful write to this channel's control registers. That is, 7750 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 7751 // aliases. 7752 // 7753 // Once its LOCK bit is set, this register becomes read-only. 7754 // 7755 // A failed write, for example due to the write's privilege being 7756 // lower than that specified in the channel's SECCFG register, 7757 // will not set the LOCK bit. 7758 #define DMA_SECCFG_CH0_LOCK_RESET _u(0x0) 7759 #define DMA_SECCFG_CH0_LOCK_BITS _u(0x00000004) 7760 #define DMA_SECCFG_CH0_LOCK_MSB _u(2) 7761 #define DMA_SECCFG_CH0_LOCK_LSB _u(2) 7762 #define DMA_SECCFG_CH0_LOCK_ACCESS "RW" 7763 // ----------------------------------------------------------------------------- 7764 // Field : DMA_SECCFG_CH0_S 7765 // Description : Secure channel. If 1, this channel performs Secure bus 7766 // accesses. If 0, it performs Non-secure bus accesses. 7767 // 7768 // If 1, this channel is controllable only from a Secure context. 7769 #define DMA_SECCFG_CH0_S_RESET _u(0x1) 7770 #define DMA_SECCFG_CH0_S_BITS _u(0x00000002) 7771 #define DMA_SECCFG_CH0_S_MSB _u(1) 7772 #define DMA_SECCFG_CH0_S_LSB _u(1) 7773 #define DMA_SECCFG_CH0_S_ACCESS "RW" 7774 // ----------------------------------------------------------------------------- 7775 // Field : DMA_SECCFG_CH0_P 7776 // Description : Privileged channel. If 1, this channel performs Privileged bus 7777 // accesses. If 0, it performs Unprivileged bus accesses. 7778 // 7779 // If 1, this channel is controllable only from a Privileged 7780 // context of the same Secure/Non-secure level, or any context of 7781 // a higher Secure/Non-secure level. 7782 #define DMA_SECCFG_CH0_P_RESET _u(0x1) 7783 #define DMA_SECCFG_CH0_P_BITS _u(0x00000001) 7784 #define DMA_SECCFG_CH0_P_MSB _u(0) 7785 #define DMA_SECCFG_CH0_P_LSB _u(0) 7786 #define DMA_SECCFG_CH0_P_ACCESS "RW" 7787 // ============================================================================= 7788 // Register : DMA_SECCFG_CH1 7789 // Description : Security configuration for channel 1. Control whether this 7790 // channel performs Secure/Non-secure and Privileged/Unprivileged 7791 // bus accesses. 7792 // 7793 // If this channel generates bus accesses of some security level, 7794 // an access of at least that level (in the order S+P > S+U > NS+P 7795 // > NS+U) is required to program, trigger, abort, check the 7796 // status of, interrupt on or acknowledge the interrupt of this 7797 // channel. 7798 // 7799 // This register automatically locks down (becomes read-only) once 7800 // software starts to configure the channel. 7801 // 7802 // This register is world-readable, but is writable only from a 7803 // Secure, Privileged context. 7804 #define DMA_SECCFG_CH1_OFFSET _u(0x00000484) 7805 #define DMA_SECCFG_CH1_BITS _u(0x00000007) 7806 #define DMA_SECCFG_CH1_RESET _u(0x00000003) 7807 // ----------------------------------------------------------------------------- 7808 // Field : DMA_SECCFG_CH1_LOCK 7809 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 7810 // successful write to this channel's control registers. That is, 7811 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 7812 // aliases. 7813 // 7814 // Once its LOCK bit is set, this register becomes read-only. 7815 // 7816 // A failed write, for example due to the write's privilege being 7817 // lower than that specified in the channel's SECCFG register, 7818 // will not set the LOCK bit. 7819 #define DMA_SECCFG_CH1_LOCK_RESET _u(0x0) 7820 #define DMA_SECCFG_CH1_LOCK_BITS _u(0x00000004) 7821 #define DMA_SECCFG_CH1_LOCK_MSB _u(2) 7822 #define DMA_SECCFG_CH1_LOCK_LSB _u(2) 7823 #define DMA_SECCFG_CH1_LOCK_ACCESS "RW" 7824 // ----------------------------------------------------------------------------- 7825 // Field : DMA_SECCFG_CH1_S 7826 // Description : Secure channel. If 1, this channel performs Secure bus 7827 // accesses. If 0, it performs Non-secure bus accesses. 7828 // 7829 // If 1, this channel is controllable only from a Secure context. 7830 #define DMA_SECCFG_CH1_S_RESET _u(0x1) 7831 #define DMA_SECCFG_CH1_S_BITS _u(0x00000002) 7832 #define DMA_SECCFG_CH1_S_MSB _u(1) 7833 #define DMA_SECCFG_CH1_S_LSB _u(1) 7834 #define DMA_SECCFG_CH1_S_ACCESS "RW" 7835 // ----------------------------------------------------------------------------- 7836 // Field : DMA_SECCFG_CH1_P 7837 // Description : Privileged channel. If 1, this channel performs Privileged bus 7838 // accesses. If 0, it performs Unprivileged bus accesses. 7839 // 7840 // If 1, this channel is controllable only from a Privileged 7841 // context of the same Secure/Non-secure level, or any context of 7842 // a higher Secure/Non-secure level. 7843 #define DMA_SECCFG_CH1_P_RESET _u(0x1) 7844 #define DMA_SECCFG_CH1_P_BITS _u(0x00000001) 7845 #define DMA_SECCFG_CH1_P_MSB _u(0) 7846 #define DMA_SECCFG_CH1_P_LSB _u(0) 7847 #define DMA_SECCFG_CH1_P_ACCESS "RW" 7848 // ============================================================================= 7849 // Register : DMA_SECCFG_CH2 7850 // Description : Security configuration for channel 2. Control whether this 7851 // channel performs Secure/Non-secure and Privileged/Unprivileged 7852 // bus accesses. 7853 // 7854 // If this channel generates bus accesses of some security level, 7855 // an access of at least that level (in the order S+P > S+U > NS+P 7856 // > NS+U) is required to program, trigger, abort, check the 7857 // status of, interrupt on or acknowledge the interrupt of this 7858 // channel. 7859 // 7860 // This register automatically locks down (becomes read-only) once 7861 // software starts to configure the channel. 7862 // 7863 // This register is world-readable, but is writable only from a 7864 // Secure, Privileged context. 7865 #define DMA_SECCFG_CH2_OFFSET _u(0x00000488) 7866 #define DMA_SECCFG_CH2_BITS _u(0x00000007) 7867 #define DMA_SECCFG_CH2_RESET _u(0x00000003) 7868 // ----------------------------------------------------------------------------- 7869 // Field : DMA_SECCFG_CH2_LOCK 7870 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 7871 // successful write to this channel's control registers. That is, 7872 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 7873 // aliases. 7874 // 7875 // Once its LOCK bit is set, this register becomes read-only. 7876 // 7877 // A failed write, for example due to the write's privilege being 7878 // lower than that specified in the channel's SECCFG register, 7879 // will not set the LOCK bit. 7880 #define DMA_SECCFG_CH2_LOCK_RESET _u(0x0) 7881 #define DMA_SECCFG_CH2_LOCK_BITS _u(0x00000004) 7882 #define DMA_SECCFG_CH2_LOCK_MSB _u(2) 7883 #define DMA_SECCFG_CH2_LOCK_LSB _u(2) 7884 #define DMA_SECCFG_CH2_LOCK_ACCESS "RW" 7885 // ----------------------------------------------------------------------------- 7886 // Field : DMA_SECCFG_CH2_S 7887 // Description : Secure channel. If 1, this channel performs Secure bus 7888 // accesses. If 0, it performs Non-secure bus accesses. 7889 // 7890 // If 1, this channel is controllable only from a Secure context. 7891 #define DMA_SECCFG_CH2_S_RESET _u(0x1) 7892 #define DMA_SECCFG_CH2_S_BITS _u(0x00000002) 7893 #define DMA_SECCFG_CH2_S_MSB _u(1) 7894 #define DMA_SECCFG_CH2_S_LSB _u(1) 7895 #define DMA_SECCFG_CH2_S_ACCESS "RW" 7896 // ----------------------------------------------------------------------------- 7897 // Field : DMA_SECCFG_CH2_P 7898 // Description : Privileged channel. If 1, this channel performs Privileged bus 7899 // accesses. If 0, it performs Unprivileged bus accesses. 7900 // 7901 // If 1, this channel is controllable only from a Privileged 7902 // context of the same Secure/Non-secure level, or any context of 7903 // a higher Secure/Non-secure level. 7904 #define DMA_SECCFG_CH2_P_RESET _u(0x1) 7905 #define DMA_SECCFG_CH2_P_BITS _u(0x00000001) 7906 #define DMA_SECCFG_CH2_P_MSB _u(0) 7907 #define DMA_SECCFG_CH2_P_LSB _u(0) 7908 #define DMA_SECCFG_CH2_P_ACCESS "RW" 7909 // ============================================================================= 7910 // Register : DMA_SECCFG_CH3 7911 // Description : Security configuration for channel 3. Control whether this 7912 // channel performs Secure/Non-secure and Privileged/Unprivileged 7913 // bus accesses. 7914 // 7915 // If this channel generates bus accesses of some security level, 7916 // an access of at least that level (in the order S+P > S+U > NS+P 7917 // > NS+U) is required to program, trigger, abort, check the 7918 // status of, interrupt on or acknowledge the interrupt of this 7919 // channel. 7920 // 7921 // This register automatically locks down (becomes read-only) once 7922 // software starts to configure the channel. 7923 // 7924 // This register is world-readable, but is writable only from a 7925 // Secure, Privileged context. 7926 #define DMA_SECCFG_CH3_OFFSET _u(0x0000048c) 7927 #define DMA_SECCFG_CH3_BITS _u(0x00000007) 7928 #define DMA_SECCFG_CH3_RESET _u(0x00000003) 7929 // ----------------------------------------------------------------------------- 7930 // Field : DMA_SECCFG_CH3_LOCK 7931 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 7932 // successful write to this channel's control registers. That is, 7933 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 7934 // aliases. 7935 // 7936 // Once its LOCK bit is set, this register becomes read-only. 7937 // 7938 // A failed write, for example due to the write's privilege being 7939 // lower than that specified in the channel's SECCFG register, 7940 // will not set the LOCK bit. 7941 #define DMA_SECCFG_CH3_LOCK_RESET _u(0x0) 7942 #define DMA_SECCFG_CH3_LOCK_BITS _u(0x00000004) 7943 #define DMA_SECCFG_CH3_LOCK_MSB _u(2) 7944 #define DMA_SECCFG_CH3_LOCK_LSB _u(2) 7945 #define DMA_SECCFG_CH3_LOCK_ACCESS "RW" 7946 // ----------------------------------------------------------------------------- 7947 // Field : DMA_SECCFG_CH3_S 7948 // Description : Secure channel. If 1, this channel performs Secure bus 7949 // accesses. If 0, it performs Non-secure bus accesses. 7950 // 7951 // If 1, this channel is controllable only from a Secure context. 7952 #define DMA_SECCFG_CH3_S_RESET _u(0x1) 7953 #define DMA_SECCFG_CH3_S_BITS _u(0x00000002) 7954 #define DMA_SECCFG_CH3_S_MSB _u(1) 7955 #define DMA_SECCFG_CH3_S_LSB _u(1) 7956 #define DMA_SECCFG_CH3_S_ACCESS "RW" 7957 // ----------------------------------------------------------------------------- 7958 // Field : DMA_SECCFG_CH3_P 7959 // Description : Privileged channel. If 1, this channel performs Privileged bus 7960 // accesses. If 0, it performs Unprivileged bus accesses. 7961 // 7962 // If 1, this channel is controllable only from a Privileged 7963 // context of the same Secure/Non-secure level, or any context of 7964 // a higher Secure/Non-secure level. 7965 #define DMA_SECCFG_CH3_P_RESET _u(0x1) 7966 #define DMA_SECCFG_CH3_P_BITS _u(0x00000001) 7967 #define DMA_SECCFG_CH3_P_MSB _u(0) 7968 #define DMA_SECCFG_CH3_P_LSB _u(0) 7969 #define DMA_SECCFG_CH3_P_ACCESS "RW" 7970 // ============================================================================= 7971 // Register : DMA_SECCFG_CH4 7972 // Description : Security configuration for channel 4. Control whether this 7973 // channel performs Secure/Non-secure and Privileged/Unprivileged 7974 // bus accesses. 7975 // 7976 // If this channel generates bus accesses of some security level, 7977 // an access of at least that level (in the order S+P > S+U > NS+P 7978 // > NS+U) is required to program, trigger, abort, check the 7979 // status of, interrupt on or acknowledge the interrupt of this 7980 // channel. 7981 // 7982 // This register automatically locks down (becomes read-only) once 7983 // software starts to configure the channel. 7984 // 7985 // This register is world-readable, but is writable only from a 7986 // Secure, Privileged context. 7987 #define DMA_SECCFG_CH4_OFFSET _u(0x00000490) 7988 #define DMA_SECCFG_CH4_BITS _u(0x00000007) 7989 #define DMA_SECCFG_CH4_RESET _u(0x00000003) 7990 // ----------------------------------------------------------------------------- 7991 // Field : DMA_SECCFG_CH4_LOCK 7992 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 7993 // successful write to this channel's control registers. That is, 7994 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 7995 // aliases. 7996 // 7997 // Once its LOCK bit is set, this register becomes read-only. 7998 // 7999 // A failed write, for example due to the write's privilege being 8000 // lower than that specified in the channel's SECCFG register, 8001 // will not set the LOCK bit. 8002 #define DMA_SECCFG_CH4_LOCK_RESET _u(0x0) 8003 #define DMA_SECCFG_CH4_LOCK_BITS _u(0x00000004) 8004 #define DMA_SECCFG_CH4_LOCK_MSB _u(2) 8005 #define DMA_SECCFG_CH4_LOCK_LSB _u(2) 8006 #define DMA_SECCFG_CH4_LOCK_ACCESS "RW" 8007 // ----------------------------------------------------------------------------- 8008 // Field : DMA_SECCFG_CH4_S 8009 // Description : Secure channel. If 1, this channel performs Secure bus 8010 // accesses. If 0, it performs Non-secure bus accesses. 8011 // 8012 // If 1, this channel is controllable only from a Secure context. 8013 #define DMA_SECCFG_CH4_S_RESET _u(0x1) 8014 #define DMA_SECCFG_CH4_S_BITS _u(0x00000002) 8015 #define DMA_SECCFG_CH4_S_MSB _u(1) 8016 #define DMA_SECCFG_CH4_S_LSB _u(1) 8017 #define DMA_SECCFG_CH4_S_ACCESS "RW" 8018 // ----------------------------------------------------------------------------- 8019 // Field : DMA_SECCFG_CH4_P 8020 // Description : Privileged channel. If 1, this channel performs Privileged bus 8021 // accesses. If 0, it performs Unprivileged bus accesses. 8022 // 8023 // If 1, this channel is controllable only from a Privileged 8024 // context of the same Secure/Non-secure level, or any context of 8025 // a higher Secure/Non-secure level. 8026 #define DMA_SECCFG_CH4_P_RESET _u(0x1) 8027 #define DMA_SECCFG_CH4_P_BITS _u(0x00000001) 8028 #define DMA_SECCFG_CH4_P_MSB _u(0) 8029 #define DMA_SECCFG_CH4_P_LSB _u(0) 8030 #define DMA_SECCFG_CH4_P_ACCESS "RW" 8031 // ============================================================================= 8032 // Register : DMA_SECCFG_CH5 8033 // Description : Security configuration for channel 5. Control whether this 8034 // channel performs Secure/Non-secure and Privileged/Unprivileged 8035 // bus accesses. 8036 // 8037 // If this channel generates bus accesses of some security level, 8038 // an access of at least that level (in the order S+P > S+U > NS+P 8039 // > NS+U) is required to program, trigger, abort, check the 8040 // status of, interrupt on or acknowledge the interrupt of this 8041 // channel. 8042 // 8043 // This register automatically locks down (becomes read-only) once 8044 // software starts to configure the channel. 8045 // 8046 // This register is world-readable, but is writable only from a 8047 // Secure, Privileged context. 8048 #define DMA_SECCFG_CH5_OFFSET _u(0x00000494) 8049 #define DMA_SECCFG_CH5_BITS _u(0x00000007) 8050 #define DMA_SECCFG_CH5_RESET _u(0x00000003) 8051 // ----------------------------------------------------------------------------- 8052 // Field : DMA_SECCFG_CH5_LOCK 8053 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8054 // successful write to this channel's control registers. That is, 8055 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8056 // aliases. 8057 // 8058 // Once its LOCK bit is set, this register becomes read-only. 8059 // 8060 // A failed write, for example due to the write's privilege being 8061 // lower than that specified in the channel's SECCFG register, 8062 // will not set the LOCK bit. 8063 #define DMA_SECCFG_CH5_LOCK_RESET _u(0x0) 8064 #define DMA_SECCFG_CH5_LOCK_BITS _u(0x00000004) 8065 #define DMA_SECCFG_CH5_LOCK_MSB _u(2) 8066 #define DMA_SECCFG_CH5_LOCK_LSB _u(2) 8067 #define DMA_SECCFG_CH5_LOCK_ACCESS "RW" 8068 // ----------------------------------------------------------------------------- 8069 // Field : DMA_SECCFG_CH5_S 8070 // Description : Secure channel. If 1, this channel performs Secure bus 8071 // accesses. If 0, it performs Non-secure bus accesses. 8072 // 8073 // If 1, this channel is controllable only from a Secure context. 8074 #define DMA_SECCFG_CH5_S_RESET _u(0x1) 8075 #define DMA_SECCFG_CH5_S_BITS _u(0x00000002) 8076 #define DMA_SECCFG_CH5_S_MSB _u(1) 8077 #define DMA_SECCFG_CH5_S_LSB _u(1) 8078 #define DMA_SECCFG_CH5_S_ACCESS "RW" 8079 // ----------------------------------------------------------------------------- 8080 // Field : DMA_SECCFG_CH5_P 8081 // Description : Privileged channel. If 1, this channel performs Privileged bus 8082 // accesses. If 0, it performs Unprivileged bus accesses. 8083 // 8084 // If 1, this channel is controllable only from a Privileged 8085 // context of the same Secure/Non-secure level, or any context of 8086 // a higher Secure/Non-secure level. 8087 #define DMA_SECCFG_CH5_P_RESET _u(0x1) 8088 #define DMA_SECCFG_CH5_P_BITS _u(0x00000001) 8089 #define DMA_SECCFG_CH5_P_MSB _u(0) 8090 #define DMA_SECCFG_CH5_P_LSB _u(0) 8091 #define DMA_SECCFG_CH5_P_ACCESS "RW" 8092 // ============================================================================= 8093 // Register : DMA_SECCFG_CH6 8094 // Description : Security configuration for channel 6. Control whether this 8095 // channel performs Secure/Non-secure and Privileged/Unprivileged 8096 // bus accesses. 8097 // 8098 // If this channel generates bus accesses of some security level, 8099 // an access of at least that level (in the order S+P > S+U > NS+P 8100 // > NS+U) is required to program, trigger, abort, check the 8101 // status of, interrupt on or acknowledge the interrupt of this 8102 // channel. 8103 // 8104 // This register automatically locks down (becomes read-only) once 8105 // software starts to configure the channel. 8106 // 8107 // This register is world-readable, but is writable only from a 8108 // Secure, Privileged context. 8109 #define DMA_SECCFG_CH6_OFFSET _u(0x00000498) 8110 #define DMA_SECCFG_CH6_BITS _u(0x00000007) 8111 #define DMA_SECCFG_CH6_RESET _u(0x00000003) 8112 // ----------------------------------------------------------------------------- 8113 // Field : DMA_SECCFG_CH6_LOCK 8114 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8115 // successful write to this channel's control registers. That is, 8116 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8117 // aliases. 8118 // 8119 // Once its LOCK bit is set, this register becomes read-only. 8120 // 8121 // A failed write, for example due to the write's privilege being 8122 // lower than that specified in the channel's SECCFG register, 8123 // will not set the LOCK bit. 8124 #define DMA_SECCFG_CH6_LOCK_RESET _u(0x0) 8125 #define DMA_SECCFG_CH6_LOCK_BITS _u(0x00000004) 8126 #define DMA_SECCFG_CH6_LOCK_MSB _u(2) 8127 #define DMA_SECCFG_CH6_LOCK_LSB _u(2) 8128 #define DMA_SECCFG_CH6_LOCK_ACCESS "RW" 8129 // ----------------------------------------------------------------------------- 8130 // Field : DMA_SECCFG_CH6_S 8131 // Description : Secure channel. If 1, this channel performs Secure bus 8132 // accesses. If 0, it performs Non-secure bus accesses. 8133 // 8134 // If 1, this channel is controllable only from a Secure context. 8135 #define DMA_SECCFG_CH6_S_RESET _u(0x1) 8136 #define DMA_SECCFG_CH6_S_BITS _u(0x00000002) 8137 #define DMA_SECCFG_CH6_S_MSB _u(1) 8138 #define DMA_SECCFG_CH6_S_LSB _u(1) 8139 #define DMA_SECCFG_CH6_S_ACCESS "RW" 8140 // ----------------------------------------------------------------------------- 8141 // Field : DMA_SECCFG_CH6_P 8142 // Description : Privileged channel. If 1, this channel performs Privileged bus 8143 // accesses. If 0, it performs Unprivileged bus accesses. 8144 // 8145 // If 1, this channel is controllable only from a Privileged 8146 // context of the same Secure/Non-secure level, or any context of 8147 // a higher Secure/Non-secure level. 8148 #define DMA_SECCFG_CH6_P_RESET _u(0x1) 8149 #define DMA_SECCFG_CH6_P_BITS _u(0x00000001) 8150 #define DMA_SECCFG_CH6_P_MSB _u(0) 8151 #define DMA_SECCFG_CH6_P_LSB _u(0) 8152 #define DMA_SECCFG_CH6_P_ACCESS "RW" 8153 // ============================================================================= 8154 // Register : DMA_SECCFG_CH7 8155 // Description : Security configuration for channel 7. Control whether this 8156 // channel performs Secure/Non-secure and Privileged/Unprivileged 8157 // bus accesses. 8158 // 8159 // If this channel generates bus accesses of some security level, 8160 // an access of at least that level (in the order S+P > S+U > NS+P 8161 // > NS+U) is required to program, trigger, abort, check the 8162 // status of, interrupt on or acknowledge the interrupt of this 8163 // channel. 8164 // 8165 // This register automatically locks down (becomes read-only) once 8166 // software starts to configure the channel. 8167 // 8168 // This register is world-readable, but is writable only from a 8169 // Secure, Privileged context. 8170 #define DMA_SECCFG_CH7_OFFSET _u(0x0000049c) 8171 #define DMA_SECCFG_CH7_BITS _u(0x00000007) 8172 #define DMA_SECCFG_CH7_RESET _u(0x00000003) 8173 // ----------------------------------------------------------------------------- 8174 // Field : DMA_SECCFG_CH7_LOCK 8175 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8176 // successful write to this channel's control registers. That is, 8177 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8178 // aliases. 8179 // 8180 // Once its LOCK bit is set, this register becomes read-only. 8181 // 8182 // A failed write, for example due to the write's privilege being 8183 // lower than that specified in the channel's SECCFG register, 8184 // will not set the LOCK bit. 8185 #define DMA_SECCFG_CH7_LOCK_RESET _u(0x0) 8186 #define DMA_SECCFG_CH7_LOCK_BITS _u(0x00000004) 8187 #define DMA_SECCFG_CH7_LOCK_MSB _u(2) 8188 #define DMA_SECCFG_CH7_LOCK_LSB _u(2) 8189 #define DMA_SECCFG_CH7_LOCK_ACCESS "RW" 8190 // ----------------------------------------------------------------------------- 8191 // Field : DMA_SECCFG_CH7_S 8192 // Description : Secure channel. If 1, this channel performs Secure bus 8193 // accesses. If 0, it performs Non-secure bus accesses. 8194 // 8195 // If 1, this channel is controllable only from a Secure context. 8196 #define DMA_SECCFG_CH7_S_RESET _u(0x1) 8197 #define DMA_SECCFG_CH7_S_BITS _u(0x00000002) 8198 #define DMA_SECCFG_CH7_S_MSB _u(1) 8199 #define DMA_SECCFG_CH7_S_LSB _u(1) 8200 #define DMA_SECCFG_CH7_S_ACCESS "RW" 8201 // ----------------------------------------------------------------------------- 8202 // Field : DMA_SECCFG_CH7_P 8203 // Description : Privileged channel. If 1, this channel performs Privileged bus 8204 // accesses. If 0, it performs Unprivileged bus accesses. 8205 // 8206 // If 1, this channel is controllable only from a Privileged 8207 // context of the same Secure/Non-secure level, or any context of 8208 // a higher Secure/Non-secure level. 8209 #define DMA_SECCFG_CH7_P_RESET _u(0x1) 8210 #define DMA_SECCFG_CH7_P_BITS _u(0x00000001) 8211 #define DMA_SECCFG_CH7_P_MSB _u(0) 8212 #define DMA_SECCFG_CH7_P_LSB _u(0) 8213 #define DMA_SECCFG_CH7_P_ACCESS "RW" 8214 // ============================================================================= 8215 // Register : DMA_SECCFG_CH8 8216 // Description : Security configuration for channel 8. Control whether this 8217 // channel performs Secure/Non-secure and Privileged/Unprivileged 8218 // bus accesses. 8219 // 8220 // If this channel generates bus accesses of some security level, 8221 // an access of at least that level (in the order S+P > S+U > NS+P 8222 // > NS+U) is required to program, trigger, abort, check the 8223 // status of, interrupt on or acknowledge the interrupt of this 8224 // channel. 8225 // 8226 // This register automatically locks down (becomes read-only) once 8227 // software starts to configure the channel. 8228 // 8229 // This register is world-readable, but is writable only from a 8230 // Secure, Privileged context. 8231 #define DMA_SECCFG_CH8_OFFSET _u(0x000004a0) 8232 #define DMA_SECCFG_CH8_BITS _u(0x00000007) 8233 #define DMA_SECCFG_CH8_RESET _u(0x00000003) 8234 // ----------------------------------------------------------------------------- 8235 // Field : DMA_SECCFG_CH8_LOCK 8236 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8237 // successful write to this channel's control registers. That is, 8238 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8239 // aliases. 8240 // 8241 // Once its LOCK bit is set, this register becomes read-only. 8242 // 8243 // A failed write, for example due to the write's privilege being 8244 // lower than that specified in the channel's SECCFG register, 8245 // will not set the LOCK bit. 8246 #define DMA_SECCFG_CH8_LOCK_RESET _u(0x0) 8247 #define DMA_SECCFG_CH8_LOCK_BITS _u(0x00000004) 8248 #define DMA_SECCFG_CH8_LOCK_MSB _u(2) 8249 #define DMA_SECCFG_CH8_LOCK_LSB _u(2) 8250 #define DMA_SECCFG_CH8_LOCK_ACCESS "RW" 8251 // ----------------------------------------------------------------------------- 8252 // Field : DMA_SECCFG_CH8_S 8253 // Description : Secure channel. If 1, this channel performs Secure bus 8254 // accesses. If 0, it performs Non-secure bus accesses. 8255 // 8256 // If 1, this channel is controllable only from a Secure context. 8257 #define DMA_SECCFG_CH8_S_RESET _u(0x1) 8258 #define DMA_SECCFG_CH8_S_BITS _u(0x00000002) 8259 #define DMA_SECCFG_CH8_S_MSB _u(1) 8260 #define DMA_SECCFG_CH8_S_LSB _u(1) 8261 #define DMA_SECCFG_CH8_S_ACCESS "RW" 8262 // ----------------------------------------------------------------------------- 8263 // Field : DMA_SECCFG_CH8_P 8264 // Description : Privileged channel. If 1, this channel performs Privileged bus 8265 // accesses. If 0, it performs Unprivileged bus accesses. 8266 // 8267 // If 1, this channel is controllable only from a Privileged 8268 // context of the same Secure/Non-secure level, or any context of 8269 // a higher Secure/Non-secure level. 8270 #define DMA_SECCFG_CH8_P_RESET _u(0x1) 8271 #define DMA_SECCFG_CH8_P_BITS _u(0x00000001) 8272 #define DMA_SECCFG_CH8_P_MSB _u(0) 8273 #define DMA_SECCFG_CH8_P_LSB _u(0) 8274 #define DMA_SECCFG_CH8_P_ACCESS "RW" 8275 // ============================================================================= 8276 // Register : DMA_SECCFG_CH9 8277 // Description : Security configuration for channel 9. Control whether this 8278 // channel performs Secure/Non-secure and Privileged/Unprivileged 8279 // bus accesses. 8280 // 8281 // If this channel generates bus accesses of some security level, 8282 // an access of at least that level (in the order S+P > S+U > NS+P 8283 // > NS+U) is required to program, trigger, abort, check the 8284 // status of, interrupt on or acknowledge the interrupt of this 8285 // channel. 8286 // 8287 // This register automatically locks down (becomes read-only) once 8288 // software starts to configure the channel. 8289 // 8290 // This register is world-readable, but is writable only from a 8291 // Secure, Privileged context. 8292 #define DMA_SECCFG_CH9_OFFSET _u(0x000004a4) 8293 #define DMA_SECCFG_CH9_BITS _u(0x00000007) 8294 #define DMA_SECCFG_CH9_RESET _u(0x00000003) 8295 // ----------------------------------------------------------------------------- 8296 // Field : DMA_SECCFG_CH9_LOCK 8297 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8298 // successful write to this channel's control registers. That is, 8299 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8300 // aliases. 8301 // 8302 // Once its LOCK bit is set, this register becomes read-only. 8303 // 8304 // A failed write, for example due to the write's privilege being 8305 // lower than that specified in the channel's SECCFG register, 8306 // will not set the LOCK bit. 8307 #define DMA_SECCFG_CH9_LOCK_RESET _u(0x0) 8308 #define DMA_SECCFG_CH9_LOCK_BITS _u(0x00000004) 8309 #define DMA_SECCFG_CH9_LOCK_MSB _u(2) 8310 #define DMA_SECCFG_CH9_LOCK_LSB _u(2) 8311 #define DMA_SECCFG_CH9_LOCK_ACCESS "RW" 8312 // ----------------------------------------------------------------------------- 8313 // Field : DMA_SECCFG_CH9_S 8314 // Description : Secure channel. If 1, this channel performs Secure bus 8315 // accesses. If 0, it performs Non-secure bus accesses. 8316 // 8317 // If 1, this channel is controllable only from a Secure context. 8318 #define DMA_SECCFG_CH9_S_RESET _u(0x1) 8319 #define DMA_SECCFG_CH9_S_BITS _u(0x00000002) 8320 #define DMA_SECCFG_CH9_S_MSB _u(1) 8321 #define DMA_SECCFG_CH9_S_LSB _u(1) 8322 #define DMA_SECCFG_CH9_S_ACCESS "RW" 8323 // ----------------------------------------------------------------------------- 8324 // Field : DMA_SECCFG_CH9_P 8325 // Description : Privileged channel. If 1, this channel performs Privileged bus 8326 // accesses. If 0, it performs Unprivileged bus accesses. 8327 // 8328 // If 1, this channel is controllable only from a Privileged 8329 // context of the same Secure/Non-secure level, or any context of 8330 // a higher Secure/Non-secure level. 8331 #define DMA_SECCFG_CH9_P_RESET _u(0x1) 8332 #define DMA_SECCFG_CH9_P_BITS _u(0x00000001) 8333 #define DMA_SECCFG_CH9_P_MSB _u(0) 8334 #define DMA_SECCFG_CH9_P_LSB _u(0) 8335 #define DMA_SECCFG_CH9_P_ACCESS "RW" 8336 // ============================================================================= 8337 // Register : DMA_SECCFG_CH10 8338 // Description : Security configuration for channel 10. Control whether this 8339 // channel performs Secure/Non-secure and Privileged/Unprivileged 8340 // bus accesses. 8341 // 8342 // If this channel generates bus accesses of some security level, 8343 // an access of at least that level (in the order S+P > S+U > NS+P 8344 // > NS+U) is required to program, trigger, abort, check the 8345 // status of, interrupt on or acknowledge the interrupt of this 8346 // channel. 8347 // 8348 // This register automatically locks down (becomes read-only) once 8349 // software starts to configure the channel. 8350 // 8351 // This register is world-readable, but is writable only from a 8352 // Secure, Privileged context. 8353 #define DMA_SECCFG_CH10_OFFSET _u(0x000004a8) 8354 #define DMA_SECCFG_CH10_BITS _u(0x00000007) 8355 #define DMA_SECCFG_CH10_RESET _u(0x00000003) 8356 // ----------------------------------------------------------------------------- 8357 // Field : DMA_SECCFG_CH10_LOCK 8358 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8359 // successful write to this channel's control registers. That is, 8360 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8361 // aliases. 8362 // 8363 // Once its LOCK bit is set, this register becomes read-only. 8364 // 8365 // A failed write, for example due to the write's privilege being 8366 // lower than that specified in the channel's SECCFG register, 8367 // will not set the LOCK bit. 8368 #define DMA_SECCFG_CH10_LOCK_RESET _u(0x0) 8369 #define DMA_SECCFG_CH10_LOCK_BITS _u(0x00000004) 8370 #define DMA_SECCFG_CH10_LOCK_MSB _u(2) 8371 #define DMA_SECCFG_CH10_LOCK_LSB _u(2) 8372 #define DMA_SECCFG_CH10_LOCK_ACCESS "RW" 8373 // ----------------------------------------------------------------------------- 8374 // Field : DMA_SECCFG_CH10_S 8375 // Description : Secure channel. If 1, this channel performs Secure bus 8376 // accesses. If 0, it performs Non-secure bus accesses. 8377 // 8378 // If 1, this channel is controllable only from a Secure context. 8379 #define DMA_SECCFG_CH10_S_RESET _u(0x1) 8380 #define DMA_SECCFG_CH10_S_BITS _u(0x00000002) 8381 #define DMA_SECCFG_CH10_S_MSB _u(1) 8382 #define DMA_SECCFG_CH10_S_LSB _u(1) 8383 #define DMA_SECCFG_CH10_S_ACCESS "RW" 8384 // ----------------------------------------------------------------------------- 8385 // Field : DMA_SECCFG_CH10_P 8386 // Description : Privileged channel. If 1, this channel performs Privileged bus 8387 // accesses. If 0, it performs Unprivileged bus accesses. 8388 // 8389 // If 1, this channel is controllable only from a Privileged 8390 // context of the same Secure/Non-secure level, or any context of 8391 // a higher Secure/Non-secure level. 8392 #define DMA_SECCFG_CH10_P_RESET _u(0x1) 8393 #define DMA_SECCFG_CH10_P_BITS _u(0x00000001) 8394 #define DMA_SECCFG_CH10_P_MSB _u(0) 8395 #define DMA_SECCFG_CH10_P_LSB _u(0) 8396 #define DMA_SECCFG_CH10_P_ACCESS "RW" 8397 // ============================================================================= 8398 // Register : DMA_SECCFG_CH11 8399 // Description : Security configuration for channel 11. Control whether this 8400 // channel performs Secure/Non-secure and Privileged/Unprivileged 8401 // bus accesses. 8402 // 8403 // If this channel generates bus accesses of some security level, 8404 // an access of at least that level (in the order S+P > S+U > NS+P 8405 // > NS+U) is required to program, trigger, abort, check the 8406 // status of, interrupt on or acknowledge the interrupt of this 8407 // channel. 8408 // 8409 // This register automatically locks down (becomes read-only) once 8410 // software starts to configure the channel. 8411 // 8412 // This register is world-readable, but is writable only from a 8413 // Secure, Privileged context. 8414 #define DMA_SECCFG_CH11_OFFSET _u(0x000004ac) 8415 #define DMA_SECCFG_CH11_BITS _u(0x00000007) 8416 #define DMA_SECCFG_CH11_RESET _u(0x00000003) 8417 // ----------------------------------------------------------------------------- 8418 // Field : DMA_SECCFG_CH11_LOCK 8419 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8420 // successful write to this channel's control registers. That is, 8421 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8422 // aliases. 8423 // 8424 // Once its LOCK bit is set, this register becomes read-only. 8425 // 8426 // A failed write, for example due to the write's privilege being 8427 // lower than that specified in the channel's SECCFG register, 8428 // will not set the LOCK bit. 8429 #define DMA_SECCFG_CH11_LOCK_RESET _u(0x0) 8430 #define DMA_SECCFG_CH11_LOCK_BITS _u(0x00000004) 8431 #define DMA_SECCFG_CH11_LOCK_MSB _u(2) 8432 #define DMA_SECCFG_CH11_LOCK_LSB _u(2) 8433 #define DMA_SECCFG_CH11_LOCK_ACCESS "RW" 8434 // ----------------------------------------------------------------------------- 8435 // Field : DMA_SECCFG_CH11_S 8436 // Description : Secure channel. If 1, this channel performs Secure bus 8437 // accesses. If 0, it performs Non-secure bus accesses. 8438 // 8439 // If 1, this channel is controllable only from a Secure context. 8440 #define DMA_SECCFG_CH11_S_RESET _u(0x1) 8441 #define DMA_SECCFG_CH11_S_BITS _u(0x00000002) 8442 #define DMA_SECCFG_CH11_S_MSB _u(1) 8443 #define DMA_SECCFG_CH11_S_LSB _u(1) 8444 #define DMA_SECCFG_CH11_S_ACCESS "RW" 8445 // ----------------------------------------------------------------------------- 8446 // Field : DMA_SECCFG_CH11_P 8447 // Description : Privileged channel. If 1, this channel performs Privileged bus 8448 // accesses. If 0, it performs Unprivileged bus accesses. 8449 // 8450 // If 1, this channel is controllable only from a Privileged 8451 // context of the same Secure/Non-secure level, or any context of 8452 // a higher Secure/Non-secure level. 8453 #define DMA_SECCFG_CH11_P_RESET _u(0x1) 8454 #define DMA_SECCFG_CH11_P_BITS _u(0x00000001) 8455 #define DMA_SECCFG_CH11_P_MSB _u(0) 8456 #define DMA_SECCFG_CH11_P_LSB _u(0) 8457 #define DMA_SECCFG_CH11_P_ACCESS "RW" 8458 // ============================================================================= 8459 // Register : DMA_SECCFG_CH12 8460 // Description : Security configuration for channel 12. Control whether this 8461 // channel performs Secure/Non-secure and Privileged/Unprivileged 8462 // bus accesses. 8463 // 8464 // If this channel generates bus accesses of some security level, 8465 // an access of at least that level (in the order S+P > S+U > NS+P 8466 // > NS+U) is required to program, trigger, abort, check the 8467 // status of, interrupt on or acknowledge the interrupt of this 8468 // channel. 8469 // 8470 // This register automatically locks down (becomes read-only) once 8471 // software starts to configure the channel. 8472 // 8473 // This register is world-readable, but is writable only from a 8474 // Secure, Privileged context. 8475 #define DMA_SECCFG_CH12_OFFSET _u(0x000004b0) 8476 #define DMA_SECCFG_CH12_BITS _u(0x00000007) 8477 #define DMA_SECCFG_CH12_RESET _u(0x00000003) 8478 // ----------------------------------------------------------------------------- 8479 // Field : DMA_SECCFG_CH12_LOCK 8480 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8481 // successful write to this channel's control registers. That is, 8482 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8483 // aliases. 8484 // 8485 // Once its LOCK bit is set, this register becomes read-only. 8486 // 8487 // A failed write, for example due to the write's privilege being 8488 // lower than that specified in the channel's SECCFG register, 8489 // will not set the LOCK bit. 8490 #define DMA_SECCFG_CH12_LOCK_RESET _u(0x0) 8491 #define DMA_SECCFG_CH12_LOCK_BITS _u(0x00000004) 8492 #define DMA_SECCFG_CH12_LOCK_MSB _u(2) 8493 #define DMA_SECCFG_CH12_LOCK_LSB _u(2) 8494 #define DMA_SECCFG_CH12_LOCK_ACCESS "RW" 8495 // ----------------------------------------------------------------------------- 8496 // Field : DMA_SECCFG_CH12_S 8497 // Description : Secure channel. If 1, this channel performs Secure bus 8498 // accesses. If 0, it performs Non-secure bus accesses. 8499 // 8500 // If 1, this channel is controllable only from a Secure context. 8501 #define DMA_SECCFG_CH12_S_RESET _u(0x1) 8502 #define DMA_SECCFG_CH12_S_BITS _u(0x00000002) 8503 #define DMA_SECCFG_CH12_S_MSB _u(1) 8504 #define DMA_SECCFG_CH12_S_LSB _u(1) 8505 #define DMA_SECCFG_CH12_S_ACCESS "RW" 8506 // ----------------------------------------------------------------------------- 8507 // Field : DMA_SECCFG_CH12_P 8508 // Description : Privileged channel. If 1, this channel performs Privileged bus 8509 // accesses. If 0, it performs Unprivileged bus accesses. 8510 // 8511 // If 1, this channel is controllable only from a Privileged 8512 // context of the same Secure/Non-secure level, or any context of 8513 // a higher Secure/Non-secure level. 8514 #define DMA_SECCFG_CH12_P_RESET _u(0x1) 8515 #define DMA_SECCFG_CH12_P_BITS _u(0x00000001) 8516 #define DMA_SECCFG_CH12_P_MSB _u(0) 8517 #define DMA_SECCFG_CH12_P_LSB _u(0) 8518 #define DMA_SECCFG_CH12_P_ACCESS "RW" 8519 // ============================================================================= 8520 // Register : DMA_SECCFG_CH13 8521 // Description : Security configuration for channel 13. Control whether this 8522 // channel performs Secure/Non-secure and Privileged/Unprivileged 8523 // bus accesses. 8524 // 8525 // If this channel generates bus accesses of some security level, 8526 // an access of at least that level (in the order S+P > S+U > NS+P 8527 // > NS+U) is required to program, trigger, abort, check the 8528 // status of, interrupt on or acknowledge the interrupt of this 8529 // channel. 8530 // 8531 // This register automatically locks down (becomes read-only) once 8532 // software starts to configure the channel. 8533 // 8534 // This register is world-readable, but is writable only from a 8535 // Secure, Privileged context. 8536 #define DMA_SECCFG_CH13_OFFSET _u(0x000004b4) 8537 #define DMA_SECCFG_CH13_BITS _u(0x00000007) 8538 #define DMA_SECCFG_CH13_RESET _u(0x00000003) 8539 // ----------------------------------------------------------------------------- 8540 // Field : DMA_SECCFG_CH13_LOCK 8541 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8542 // successful write to this channel's control registers. That is, 8543 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8544 // aliases. 8545 // 8546 // Once its LOCK bit is set, this register becomes read-only. 8547 // 8548 // A failed write, for example due to the write's privilege being 8549 // lower than that specified in the channel's SECCFG register, 8550 // will not set the LOCK bit. 8551 #define DMA_SECCFG_CH13_LOCK_RESET _u(0x0) 8552 #define DMA_SECCFG_CH13_LOCK_BITS _u(0x00000004) 8553 #define DMA_SECCFG_CH13_LOCK_MSB _u(2) 8554 #define DMA_SECCFG_CH13_LOCK_LSB _u(2) 8555 #define DMA_SECCFG_CH13_LOCK_ACCESS "RW" 8556 // ----------------------------------------------------------------------------- 8557 // Field : DMA_SECCFG_CH13_S 8558 // Description : Secure channel. If 1, this channel performs Secure bus 8559 // accesses. If 0, it performs Non-secure bus accesses. 8560 // 8561 // If 1, this channel is controllable only from a Secure context. 8562 #define DMA_SECCFG_CH13_S_RESET _u(0x1) 8563 #define DMA_SECCFG_CH13_S_BITS _u(0x00000002) 8564 #define DMA_SECCFG_CH13_S_MSB _u(1) 8565 #define DMA_SECCFG_CH13_S_LSB _u(1) 8566 #define DMA_SECCFG_CH13_S_ACCESS "RW" 8567 // ----------------------------------------------------------------------------- 8568 // Field : DMA_SECCFG_CH13_P 8569 // Description : Privileged channel. If 1, this channel performs Privileged bus 8570 // accesses. If 0, it performs Unprivileged bus accesses. 8571 // 8572 // If 1, this channel is controllable only from a Privileged 8573 // context of the same Secure/Non-secure level, or any context of 8574 // a higher Secure/Non-secure level. 8575 #define DMA_SECCFG_CH13_P_RESET _u(0x1) 8576 #define DMA_SECCFG_CH13_P_BITS _u(0x00000001) 8577 #define DMA_SECCFG_CH13_P_MSB _u(0) 8578 #define DMA_SECCFG_CH13_P_LSB _u(0) 8579 #define DMA_SECCFG_CH13_P_ACCESS "RW" 8580 // ============================================================================= 8581 // Register : DMA_SECCFG_CH14 8582 // Description : Security configuration for channel 14. Control whether this 8583 // channel performs Secure/Non-secure and Privileged/Unprivileged 8584 // bus accesses. 8585 // 8586 // If this channel generates bus accesses of some security level, 8587 // an access of at least that level (in the order S+P > S+U > NS+P 8588 // > NS+U) is required to program, trigger, abort, check the 8589 // status of, interrupt on or acknowledge the interrupt of this 8590 // channel. 8591 // 8592 // This register automatically locks down (becomes read-only) once 8593 // software starts to configure the channel. 8594 // 8595 // This register is world-readable, but is writable only from a 8596 // Secure, Privileged context. 8597 #define DMA_SECCFG_CH14_OFFSET _u(0x000004b8) 8598 #define DMA_SECCFG_CH14_BITS _u(0x00000007) 8599 #define DMA_SECCFG_CH14_RESET _u(0x00000003) 8600 // ----------------------------------------------------------------------------- 8601 // Field : DMA_SECCFG_CH14_LOCK 8602 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8603 // successful write to this channel's control registers. That is, 8604 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8605 // aliases. 8606 // 8607 // Once its LOCK bit is set, this register becomes read-only. 8608 // 8609 // A failed write, for example due to the write's privilege being 8610 // lower than that specified in the channel's SECCFG register, 8611 // will not set the LOCK bit. 8612 #define DMA_SECCFG_CH14_LOCK_RESET _u(0x0) 8613 #define DMA_SECCFG_CH14_LOCK_BITS _u(0x00000004) 8614 #define DMA_SECCFG_CH14_LOCK_MSB _u(2) 8615 #define DMA_SECCFG_CH14_LOCK_LSB _u(2) 8616 #define DMA_SECCFG_CH14_LOCK_ACCESS "RW" 8617 // ----------------------------------------------------------------------------- 8618 // Field : DMA_SECCFG_CH14_S 8619 // Description : Secure channel. If 1, this channel performs Secure bus 8620 // accesses. If 0, it performs Non-secure bus accesses. 8621 // 8622 // If 1, this channel is controllable only from a Secure context. 8623 #define DMA_SECCFG_CH14_S_RESET _u(0x1) 8624 #define DMA_SECCFG_CH14_S_BITS _u(0x00000002) 8625 #define DMA_SECCFG_CH14_S_MSB _u(1) 8626 #define DMA_SECCFG_CH14_S_LSB _u(1) 8627 #define DMA_SECCFG_CH14_S_ACCESS "RW" 8628 // ----------------------------------------------------------------------------- 8629 // Field : DMA_SECCFG_CH14_P 8630 // Description : Privileged channel. If 1, this channel performs Privileged bus 8631 // accesses. If 0, it performs Unprivileged bus accesses. 8632 // 8633 // If 1, this channel is controllable only from a Privileged 8634 // context of the same Secure/Non-secure level, or any context of 8635 // a higher Secure/Non-secure level. 8636 #define DMA_SECCFG_CH14_P_RESET _u(0x1) 8637 #define DMA_SECCFG_CH14_P_BITS _u(0x00000001) 8638 #define DMA_SECCFG_CH14_P_MSB _u(0) 8639 #define DMA_SECCFG_CH14_P_LSB _u(0) 8640 #define DMA_SECCFG_CH14_P_ACCESS "RW" 8641 // ============================================================================= 8642 // Register : DMA_SECCFG_CH15 8643 // Description : Security configuration for channel 15. Control whether this 8644 // channel performs Secure/Non-secure and Privileged/Unprivileged 8645 // bus accesses. 8646 // 8647 // If this channel generates bus accesses of some security level, 8648 // an access of at least that level (in the order S+P > S+U > NS+P 8649 // > NS+U) is required to program, trigger, abort, check the 8650 // status of, interrupt on or acknowledge the interrupt of this 8651 // channel. 8652 // 8653 // This register automatically locks down (becomes read-only) once 8654 // software starts to configure the channel. 8655 // 8656 // This register is world-readable, but is writable only from a 8657 // Secure, Privileged context. 8658 #define DMA_SECCFG_CH15_OFFSET _u(0x000004bc) 8659 #define DMA_SECCFG_CH15_BITS _u(0x00000007) 8660 #define DMA_SECCFG_CH15_RESET _u(0x00000003) 8661 // ----------------------------------------------------------------------------- 8662 // Field : DMA_SECCFG_CH15_LOCK 8663 // Description : LOCK is 0 at reset, and is set to 1 automatically upon a 8664 // successful write to this channel's control registers. That is, 8665 // a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their 8666 // aliases. 8667 // 8668 // Once its LOCK bit is set, this register becomes read-only. 8669 // 8670 // A failed write, for example due to the write's privilege being 8671 // lower than that specified in the channel's SECCFG register, 8672 // will not set the LOCK bit. 8673 #define DMA_SECCFG_CH15_LOCK_RESET _u(0x0) 8674 #define DMA_SECCFG_CH15_LOCK_BITS _u(0x00000004) 8675 #define DMA_SECCFG_CH15_LOCK_MSB _u(2) 8676 #define DMA_SECCFG_CH15_LOCK_LSB _u(2) 8677 #define DMA_SECCFG_CH15_LOCK_ACCESS "RW" 8678 // ----------------------------------------------------------------------------- 8679 // Field : DMA_SECCFG_CH15_S 8680 // Description : Secure channel. If 1, this channel performs Secure bus 8681 // accesses. If 0, it performs Non-secure bus accesses. 8682 // 8683 // If 1, this channel is controllable only from a Secure context. 8684 #define DMA_SECCFG_CH15_S_RESET _u(0x1) 8685 #define DMA_SECCFG_CH15_S_BITS _u(0x00000002) 8686 #define DMA_SECCFG_CH15_S_MSB _u(1) 8687 #define DMA_SECCFG_CH15_S_LSB _u(1) 8688 #define DMA_SECCFG_CH15_S_ACCESS "RW" 8689 // ----------------------------------------------------------------------------- 8690 // Field : DMA_SECCFG_CH15_P 8691 // Description : Privileged channel. If 1, this channel performs Privileged bus 8692 // accesses. If 0, it performs Unprivileged bus accesses. 8693 // 8694 // If 1, this channel is controllable only from a Privileged 8695 // context of the same Secure/Non-secure level, or any context of 8696 // a higher Secure/Non-secure level. 8697 #define DMA_SECCFG_CH15_P_RESET _u(0x1) 8698 #define DMA_SECCFG_CH15_P_BITS _u(0x00000001) 8699 #define DMA_SECCFG_CH15_P_MSB _u(0) 8700 #define DMA_SECCFG_CH15_P_LSB _u(0) 8701 #define DMA_SECCFG_CH15_P_ACCESS "RW" 8702 // ============================================================================= 8703 // Register : DMA_SECCFG_IRQ0 8704 // Description : Security configuration for IRQ 0. Control whether the IRQ 8705 // permits configuration by Non-secure/Unprivileged contexts, and 8706 // whether it can observe Secure/Privileged channel interrupt 8707 // flags. 8708 #define DMA_SECCFG_IRQ0_OFFSET _u(0x000004c0) 8709 #define DMA_SECCFG_IRQ0_BITS _u(0x00000003) 8710 #define DMA_SECCFG_IRQ0_RESET _u(0x00000003) 8711 // ----------------------------------------------------------------------------- 8712 // Field : DMA_SECCFG_IRQ0_S 8713 // Description : Secure IRQ. If 1, this IRQ's control registers can only be 8714 // accessed from a Secure context. 8715 // 8716 // If 0, this IRQ's control registers can be accessed from a Non- 8717 // secure context, but Secure channels (as per SECCFG_CHx) are 8718 // masked from the IRQ status, and this IRQ's registers can not be 8719 // used to acknowledge the channel interrupts of Secure channels. 8720 #define DMA_SECCFG_IRQ0_S_RESET _u(0x1) 8721 #define DMA_SECCFG_IRQ0_S_BITS _u(0x00000002) 8722 #define DMA_SECCFG_IRQ0_S_MSB _u(1) 8723 #define DMA_SECCFG_IRQ0_S_LSB _u(1) 8724 #define DMA_SECCFG_IRQ0_S_ACCESS "RW" 8725 // ----------------------------------------------------------------------------- 8726 // Field : DMA_SECCFG_IRQ0_P 8727 // Description : Privileged IRQ. If 1, this IRQ's control registers can only be 8728 // accessed from a Privileged context. 8729 // 8730 // If 0, this IRQ's control registers can be accessed from an 8731 // Unprivileged context, but Privileged channels (as per 8732 // SECCFG_CHx) are masked from the IRQ status, and this IRQ's 8733 // registers can not be used to acknowledge the channel interrupts 8734 // of Privileged channels. 8735 #define DMA_SECCFG_IRQ0_P_RESET _u(0x1) 8736 #define DMA_SECCFG_IRQ0_P_BITS _u(0x00000001) 8737 #define DMA_SECCFG_IRQ0_P_MSB _u(0) 8738 #define DMA_SECCFG_IRQ0_P_LSB _u(0) 8739 #define DMA_SECCFG_IRQ0_P_ACCESS "RW" 8740 // ============================================================================= 8741 // Register : DMA_SECCFG_IRQ1 8742 // Description : Security configuration for IRQ 1. Control whether the IRQ 8743 // permits configuration by Non-secure/Unprivileged contexts, and 8744 // whether it can observe Secure/Privileged channel interrupt 8745 // flags. 8746 #define DMA_SECCFG_IRQ1_OFFSET _u(0x000004c4) 8747 #define DMA_SECCFG_IRQ1_BITS _u(0x00000003) 8748 #define DMA_SECCFG_IRQ1_RESET _u(0x00000003) 8749 // ----------------------------------------------------------------------------- 8750 // Field : DMA_SECCFG_IRQ1_S 8751 // Description : Secure IRQ. If 1, this IRQ's control registers can only be 8752 // accessed from a Secure context. 8753 // 8754 // If 0, this IRQ's control registers can be accessed from a Non- 8755 // secure context, but Secure channels (as per SECCFG_CHx) are 8756 // masked from the IRQ status, and this IRQ's registers can not be 8757 // used to acknowledge the channel interrupts of Secure channels. 8758 #define DMA_SECCFG_IRQ1_S_RESET _u(0x1) 8759 #define DMA_SECCFG_IRQ1_S_BITS _u(0x00000002) 8760 #define DMA_SECCFG_IRQ1_S_MSB _u(1) 8761 #define DMA_SECCFG_IRQ1_S_LSB _u(1) 8762 #define DMA_SECCFG_IRQ1_S_ACCESS "RW" 8763 // ----------------------------------------------------------------------------- 8764 // Field : DMA_SECCFG_IRQ1_P 8765 // Description : Privileged IRQ. If 1, this IRQ's control registers can only be 8766 // accessed from a Privileged context. 8767 // 8768 // If 0, this IRQ's control registers can be accessed from an 8769 // Unprivileged context, but Privileged channels (as per 8770 // SECCFG_CHx) are masked from the IRQ status, and this IRQ's 8771 // registers can not be used to acknowledge the channel interrupts 8772 // of Privileged channels. 8773 #define DMA_SECCFG_IRQ1_P_RESET _u(0x1) 8774 #define DMA_SECCFG_IRQ1_P_BITS _u(0x00000001) 8775 #define DMA_SECCFG_IRQ1_P_MSB _u(0) 8776 #define DMA_SECCFG_IRQ1_P_LSB _u(0) 8777 #define DMA_SECCFG_IRQ1_P_ACCESS "RW" 8778 // ============================================================================= 8779 // Register : DMA_SECCFG_IRQ2 8780 // Description : Security configuration for IRQ 2. Control whether the IRQ 8781 // permits configuration by Non-secure/Unprivileged contexts, and 8782 // whether it can observe Secure/Privileged channel interrupt 8783 // flags. 8784 #define DMA_SECCFG_IRQ2_OFFSET _u(0x000004c8) 8785 #define DMA_SECCFG_IRQ2_BITS _u(0x00000003) 8786 #define DMA_SECCFG_IRQ2_RESET _u(0x00000003) 8787 // ----------------------------------------------------------------------------- 8788 // Field : DMA_SECCFG_IRQ2_S 8789 // Description : Secure IRQ. If 1, this IRQ's control registers can only be 8790 // accessed from a Secure context. 8791 // 8792 // If 0, this IRQ's control registers can be accessed from a Non- 8793 // secure context, but Secure channels (as per SECCFG_CHx) are 8794 // masked from the IRQ status, and this IRQ's registers can not be 8795 // used to acknowledge the channel interrupts of Secure channels. 8796 #define DMA_SECCFG_IRQ2_S_RESET _u(0x1) 8797 #define DMA_SECCFG_IRQ2_S_BITS _u(0x00000002) 8798 #define DMA_SECCFG_IRQ2_S_MSB _u(1) 8799 #define DMA_SECCFG_IRQ2_S_LSB _u(1) 8800 #define DMA_SECCFG_IRQ2_S_ACCESS "RW" 8801 // ----------------------------------------------------------------------------- 8802 // Field : DMA_SECCFG_IRQ2_P 8803 // Description : Privileged IRQ. If 1, this IRQ's control registers can only be 8804 // accessed from a Privileged context. 8805 // 8806 // If 0, this IRQ's control registers can be accessed from an 8807 // Unprivileged context, but Privileged channels (as per 8808 // SECCFG_CHx) are masked from the IRQ status, and this IRQ's 8809 // registers can not be used to acknowledge the channel interrupts 8810 // of Privileged channels. 8811 #define DMA_SECCFG_IRQ2_P_RESET _u(0x1) 8812 #define DMA_SECCFG_IRQ2_P_BITS _u(0x00000001) 8813 #define DMA_SECCFG_IRQ2_P_MSB _u(0) 8814 #define DMA_SECCFG_IRQ2_P_LSB _u(0) 8815 #define DMA_SECCFG_IRQ2_P_ACCESS "RW" 8816 // ============================================================================= 8817 // Register : DMA_SECCFG_IRQ3 8818 // Description : Security configuration for IRQ 3. Control whether the IRQ 8819 // permits configuration by Non-secure/Unprivileged contexts, and 8820 // whether it can observe Secure/Privileged channel interrupt 8821 // flags. 8822 #define DMA_SECCFG_IRQ3_OFFSET _u(0x000004cc) 8823 #define DMA_SECCFG_IRQ3_BITS _u(0x00000003) 8824 #define DMA_SECCFG_IRQ3_RESET _u(0x00000003) 8825 // ----------------------------------------------------------------------------- 8826 // Field : DMA_SECCFG_IRQ3_S 8827 // Description : Secure IRQ. If 1, this IRQ's control registers can only be 8828 // accessed from a Secure context. 8829 // 8830 // If 0, this IRQ's control registers can be accessed from a Non- 8831 // secure context, but Secure channels (as per SECCFG_CHx) are 8832 // masked from the IRQ status, and this IRQ's registers can not be 8833 // used to acknowledge the channel interrupts of Secure channels. 8834 #define DMA_SECCFG_IRQ3_S_RESET _u(0x1) 8835 #define DMA_SECCFG_IRQ3_S_BITS _u(0x00000002) 8836 #define DMA_SECCFG_IRQ3_S_MSB _u(1) 8837 #define DMA_SECCFG_IRQ3_S_LSB _u(1) 8838 #define DMA_SECCFG_IRQ3_S_ACCESS "RW" 8839 // ----------------------------------------------------------------------------- 8840 // Field : DMA_SECCFG_IRQ3_P 8841 // Description : Privileged IRQ. If 1, this IRQ's control registers can only be 8842 // accessed from a Privileged context. 8843 // 8844 // If 0, this IRQ's control registers can be accessed from an 8845 // Unprivileged context, but Privileged channels (as per 8846 // SECCFG_CHx) are masked from the IRQ status, and this IRQ's 8847 // registers can not be used to acknowledge the channel interrupts 8848 // of Privileged channels. 8849 #define DMA_SECCFG_IRQ3_P_RESET _u(0x1) 8850 #define DMA_SECCFG_IRQ3_P_BITS _u(0x00000001) 8851 #define DMA_SECCFG_IRQ3_P_MSB _u(0) 8852 #define DMA_SECCFG_IRQ3_P_LSB _u(0) 8853 #define DMA_SECCFG_IRQ3_P_ACCESS "RW" 8854 // ============================================================================= 8855 // Register : DMA_SECCFG_MISC 8856 // Description : Miscellaneous security configuration 8857 #define DMA_SECCFG_MISC_OFFSET _u(0x000004d0) 8858 #define DMA_SECCFG_MISC_BITS _u(0x000003ff) 8859 #define DMA_SECCFG_MISC_RESET _u(0x000003ff) 8860 // ----------------------------------------------------------------------------- 8861 // Field : DMA_SECCFG_MISC_TIMER3_S 8862 // Description : If 1, the TIMER3 register is only accessible from a Secure 8863 // context, and timer DREQ 3 is only visible to Secure channels. 8864 #define DMA_SECCFG_MISC_TIMER3_S_RESET _u(0x1) 8865 #define DMA_SECCFG_MISC_TIMER3_S_BITS _u(0x00000200) 8866 #define DMA_SECCFG_MISC_TIMER3_S_MSB _u(9) 8867 #define DMA_SECCFG_MISC_TIMER3_S_LSB _u(9) 8868 #define DMA_SECCFG_MISC_TIMER3_S_ACCESS "RW" 8869 // ----------------------------------------------------------------------------- 8870 // Field : DMA_SECCFG_MISC_TIMER3_P 8871 // Description : If 1, the TIMER3 register is only accessible from a Privileged 8872 // (or more Secure) context, and timer DREQ 3 is only visible to 8873 // Privileged (or more Secure) channels. 8874 #define DMA_SECCFG_MISC_TIMER3_P_RESET _u(0x1) 8875 #define DMA_SECCFG_MISC_TIMER3_P_BITS _u(0x00000100) 8876 #define DMA_SECCFG_MISC_TIMER3_P_MSB _u(8) 8877 #define DMA_SECCFG_MISC_TIMER3_P_LSB _u(8) 8878 #define DMA_SECCFG_MISC_TIMER3_P_ACCESS "RW" 8879 // ----------------------------------------------------------------------------- 8880 // Field : DMA_SECCFG_MISC_TIMER2_S 8881 // Description : If 1, the TIMER2 register is only accessible from a Secure 8882 // context, and timer DREQ 2 is only visible to Secure channels. 8883 #define DMA_SECCFG_MISC_TIMER2_S_RESET _u(0x1) 8884 #define DMA_SECCFG_MISC_TIMER2_S_BITS _u(0x00000080) 8885 #define DMA_SECCFG_MISC_TIMER2_S_MSB _u(7) 8886 #define DMA_SECCFG_MISC_TIMER2_S_LSB _u(7) 8887 #define DMA_SECCFG_MISC_TIMER2_S_ACCESS "RW" 8888 // ----------------------------------------------------------------------------- 8889 // Field : DMA_SECCFG_MISC_TIMER2_P 8890 // Description : If 1, the TIMER2 register is only accessible from a Privileged 8891 // (or more Secure) context, and timer DREQ 2 is only visible to 8892 // Privileged (or more Secure) channels. 8893 #define DMA_SECCFG_MISC_TIMER2_P_RESET _u(0x1) 8894 #define DMA_SECCFG_MISC_TIMER2_P_BITS _u(0x00000040) 8895 #define DMA_SECCFG_MISC_TIMER2_P_MSB _u(6) 8896 #define DMA_SECCFG_MISC_TIMER2_P_LSB _u(6) 8897 #define DMA_SECCFG_MISC_TIMER2_P_ACCESS "RW" 8898 // ----------------------------------------------------------------------------- 8899 // Field : DMA_SECCFG_MISC_TIMER1_S 8900 // Description : If 1, the TIMER1 register is only accessible from a Secure 8901 // context, and timer DREQ 1 is only visible to Secure channels. 8902 #define DMA_SECCFG_MISC_TIMER1_S_RESET _u(0x1) 8903 #define DMA_SECCFG_MISC_TIMER1_S_BITS _u(0x00000020) 8904 #define DMA_SECCFG_MISC_TIMER1_S_MSB _u(5) 8905 #define DMA_SECCFG_MISC_TIMER1_S_LSB _u(5) 8906 #define DMA_SECCFG_MISC_TIMER1_S_ACCESS "RW" 8907 // ----------------------------------------------------------------------------- 8908 // Field : DMA_SECCFG_MISC_TIMER1_P 8909 // Description : If 1, the TIMER1 register is only accessible from a Privileged 8910 // (or more Secure) context, and timer DREQ 1 is only visible to 8911 // Privileged (or more Secure) channels. 8912 #define DMA_SECCFG_MISC_TIMER1_P_RESET _u(0x1) 8913 #define DMA_SECCFG_MISC_TIMER1_P_BITS _u(0x00000010) 8914 #define DMA_SECCFG_MISC_TIMER1_P_MSB _u(4) 8915 #define DMA_SECCFG_MISC_TIMER1_P_LSB _u(4) 8916 #define DMA_SECCFG_MISC_TIMER1_P_ACCESS "RW" 8917 // ----------------------------------------------------------------------------- 8918 // Field : DMA_SECCFG_MISC_TIMER0_S 8919 // Description : If 1, the TIMER0 register is only accessible from a Secure 8920 // context, and timer DREQ 0 is only visible to Secure channels. 8921 #define DMA_SECCFG_MISC_TIMER0_S_RESET _u(0x1) 8922 #define DMA_SECCFG_MISC_TIMER0_S_BITS _u(0x00000008) 8923 #define DMA_SECCFG_MISC_TIMER0_S_MSB _u(3) 8924 #define DMA_SECCFG_MISC_TIMER0_S_LSB _u(3) 8925 #define DMA_SECCFG_MISC_TIMER0_S_ACCESS "RW" 8926 // ----------------------------------------------------------------------------- 8927 // Field : DMA_SECCFG_MISC_TIMER0_P 8928 // Description : If 1, the TIMER0 register is only accessible from a Privileged 8929 // (or more Secure) context, and timer DREQ 0 is only visible to 8930 // Privileged (or more Secure) channels. 8931 #define DMA_SECCFG_MISC_TIMER0_P_RESET _u(0x1) 8932 #define DMA_SECCFG_MISC_TIMER0_P_BITS _u(0x00000004) 8933 #define DMA_SECCFG_MISC_TIMER0_P_MSB _u(2) 8934 #define DMA_SECCFG_MISC_TIMER0_P_LSB _u(2) 8935 #define DMA_SECCFG_MISC_TIMER0_P_ACCESS "RW" 8936 // ----------------------------------------------------------------------------- 8937 // Field : DMA_SECCFG_MISC_SNIFF_S 8938 // Description : If 1, the sniffer can see data transfers from Secure channels, 8939 // and can itself only be accessed from a Secure context. 8940 // 8941 // If 0, the sniffer can be accessed from either a Secure or Non- 8942 // secure context, but can not see data transfers of Secure 8943 // channels. 8944 #define DMA_SECCFG_MISC_SNIFF_S_RESET _u(0x1) 8945 #define DMA_SECCFG_MISC_SNIFF_S_BITS _u(0x00000002) 8946 #define DMA_SECCFG_MISC_SNIFF_S_MSB _u(1) 8947 #define DMA_SECCFG_MISC_SNIFF_S_LSB _u(1) 8948 #define DMA_SECCFG_MISC_SNIFF_S_ACCESS "RW" 8949 // ----------------------------------------------------------------------------- 8950 // Field : DMA_SECCFG_MISC_SNIFF_P 8951 // Description : If 1, the sniffer can see data transfers from Privileged 8952 // channels, and can itself only be accessed from a privileged 8953 // context, or from a Secure context when SNIFF_S is 0. 8954 // 8955 // If 0, the sniffer can be accessed from either a Privileged or 8956 // Unprivileged context (with sufficient security level) but can 8957 // not see transfers from Privileged channels. 8958 #define DMA_SECCFG_MISC_SNIFF_P_RESET _u(0x1) 8959 #define DMA_SECCFG_MISC_SNIFF_P_BITS _u(0x00000001) 8960 #define DMA_SECCFG_MISC_SNIFF_P_MSB _u(0) 8961 #define DMA_SECCFG_MISC_SNIFF_P_LSB _u(0) 8962 #define DMA_SECCFG_MISC_SNIFF_P_ACCESS "RW" 8963 // ============================================================================= 8964 // Register : DMA_MPU_CTRL 8965 // Description : Control register for DMA MPU. Accessible only from a Privileged 8966 // context. 8967 #define DMA_MPU_CTRL_OFFSET _u(0x00000500) 8968 #define DMA_MPU_CTRL_BITS _u(0x0000000e) 8969 #define DMA_MPU_CTRL_RESET _u(0x00000000) 8970 // ----------------------------------------------------------------------------- 8971 // Field : DMA_MPU_CTRL_NS_HIDE_ADDR 8972 // Description : By default, when a region's S bit is clear, Non-secure- 8973 // Privileged reads can see the region's base address and limit 8974 // address. Set this bit to make the addresses appear as 0 to Non- 8975 // secure reads, even when the region is Non-secure, to avoid 8976 // leaking information about the processor SAU map. 8977 #define DMA_MPU_CTRL_NS_HIDE_ADDR_RESET _u(0x0) 8978 #define DMA_MPU_CTRL_NS_HIDE_ADDR_BITS _u(0x00000008) 8979 #define DMA_MPU_CTRL_NS_HIDE_ADDR_MSB _u(3) 8980 #define DMA_MPU_CTRL_NS_HIDE_ADDR_LSB _u(3) 8981 #define DMA_MPU_CTRL_NS_HIDE_ADDR_ACCESS "RW" 8982 // ----------------------------------------------------------------------------- 8983 // Field : DMA_MPU_CTRL_S 8984 // Description : Determine whether an address not covered by an active MPU 8985 // region is Secure (1) or Non-secure (0) 8986 #define DMA_MPU_CTRL_S_RESET _u(0x0) 8987 #define DMA_MPU_CTRL_S_BITS _u(0x00000004) 8988 #define DMA_MPU_CTRL_S_MSB _u(2) 8989 #define DMA_MPU_CTRL_S_LSB _u(2) 8990 #define DMA_MPU_CTRL_S_ACCESS "RW" 8991 // ----------------------------------------------------------------------------- 8992 // Field : DMA_MPU_CTRL_P 8993 // Description : Determine whether an address not covered by an active MPU 8994 // region is Privileged (1) or Unprivileged (0) 8995 #define DMA_MPU_CTRL_P_RESET _u(0x0) 8996 #define DMA_MPU_CTRL_P_BITS _u(0x00000002) 8997 #define DMA_MPU_CTRL_P_MSB _u(1) 8998 #define DMA_MPU_CTRL_P_LSB _u(1) 8999 #define DMA_MPU_CTRL_P_ACCESS "RW" 9000 // ============================================================================= 9001 // Register : DMA_MPU_BAR0 9002 // Description : Base address register for MPU region 0. Writable only from a 9003 // Secure, Privileged context. 9004 #define DMA_MPU_BAR0_OFFSET _u(0x00000504) 9005 #define DMA_MPU_BAR0_BITS _u(0xffffffe0) 9006 #define DMA_MPU_BAR0_RESET _u(0x00000000) 9007 // ----------------------------------------------------------------------------- 9008 // Field : DMA_MPU_BAR0_ADDR 9009 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9010 // significant bits) are greater than or equal to BAR_ADDR, and 9011 // less than or equal to LAR_ADDR. 9012 // 9013 // Readable from any Privileged context, if and only if this 9014 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9015 // Otherwise readable only from a Secure, Privileged context. 9016 #define DMA_MPU_BAR0_ADDR_RESET _u(0x0000000) 9017 #define DMA_MPU_BAR0_ADDR_BITS _u(0xffffffe0) 9018 #define DMA_MPU_BAR0_ADDR_MSB _u(31) 9019 #define DMA_MPU_BAR0_ADDR_LSB _u(5) 9020 #define DMA_MPU_BAR0_ADDR_ACCESS "RW" 9021 // ============================================================================= 9022 // Register : DMA_MPU_LAR0 9023 // Description : Limit address register for MPU region 0. Writable only from a 9024 // Secure, Privileged context, with the exception of the P bit. 9025 #define DMA_MPU_LAR0_OFFSET _u(0x00000508) 9026 #define DMA_MPU_LAR0_BITS _u(0xffffffe7) 9027 #define DMA_MPU_LAR0_RESET _u(0x00000000) 9028 // ----------------------------------------------------------------------------- 9029 // Field : DMA_MPU_LAR0_ADDR 9030 // Description : Limit address bits 31:5. Readable from any Privileged context, 9031 // if and only if this region's S bit is clear, and 9032 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9033 // Secure, Privileged context. 9034 #define DMA_MPU_LAR0_ADDR_RESET _u(0x0000000) 9035 #define DMA_MPU_LAR0_ADDR_BITS _u(0xffffffe0) 9036 #define DMA_MPU_LAR0_ADDR_MSB _u(31) 9037 #define DMA_MPU_LAR0_ADDR_LSB _u(5) 9038 #define DMA_MPU_LAR0_ADDR_ACCESS "RW" 9039 // ----------------------------------------------------------------------------- 9040 // Field : DMA_MPU_LAR0_S 9041 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9042 // matching this region, if this region is enabled. 9043 #define DMA_MPU_LAR0_S_RESET _u(0x0) 9044 #define DMA_MPU_LAR0_S_BITS _u(0x00000004) 9045 #define DMA_MPU_LAR0_S_MSB _u(2) 9046 #define DMA_MPU_LAR0_S_LSB _u(2) 9047 #define DMA_MPU_LAR0_S_ACCESS "RW" 9048 // ----------------------------------------------------------------------------- 9049 // Field : DMA_MPU_LAR0_P 9050 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9051 // addresses matching this region, if this region is enabled. 9052 // Writable from any Privileged context, if and only if the S bit 9053 // is clear. Otherwise, writable only from a Secure, Privileged 9054 // context. 9055 #define DMA_MPU_LAR0_P_RESET _u(0x0) 9056 #define DMA_MPU_LAR0_P_BITS _u(0x00000002) 9057 #define DMA_MPU_LAR0_P_MSB _u(1) 9058 #define DMA_MPU_LAR0_P_LSB _u(1) 9059 #define DMA_MPU_LAR0_P_ACCESS "RW" 9060 // ----------------------------------------------------------------------------- 9061 // Field : DMA_MPU_LAR0_EN 9062 // Description : Region enable. If 1, any address within range specified by the 9063 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9064 // attributes specified by S and P. 9065 #define DMA_MPU_LAR0_EN_RESET _u(0x0) 9066 #define DMA_MPU_LAR0_EN_BITS _u(0x00000001) 9067 #define DMA_MPU_LAR0_EN_MSB _u(0) 9068 #define DMA_MPU_LAR0_EN_LSB _u(0) 9069 #define DMA_MPU_LAR0_EN_ACCESS "RW" 9070 // ============================================================================= 9071 // Register : DMA_MPU_BAR1 9072 // Description : Base address register for MPU region 1. Writable only from a 9073 // Secure, Privileged context. 9074 #define DMA_MPU_BAR1_OFFSET _u(0x0000050c) 9075 #define DMA_MPU_BAR1_BITS _u(0xffffffe0) 9076 #define DMA_MPU_BAR1_RESET _u(0x00000000) 9077 // ----------------------------------------------------------------------------- 9078 // Field : DMA_MPU_BAR1_ADDR 9079 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9080 // significant bits) are greater than or equal to BAR_ADDR, and 9081 // less than or equal to LAR_ADDR. 9082 // 9083 // Readable from any Privileged context, if and only if this 9084 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9085 // Otherwise readable only from a Secure, Privileged context. 9086 #define DMA_MPU_BAR1_ADDR_RESET _u(0x0000000) 9087 #define DMA_MPU_BAR1_ADDR_BITS _u(0xffffffe0) 9088 #define DMA_MPU_BAR1_ADDR_MSB _u(31) 9089 #define DMA_MPU_BAR1_ADDR_LSB _u(5) 9090 #define DMA_MPU_BAR1_ADDR_ACCESS "RW" 9091 // ============================================================================= 9092 // Register : DMA_MPU_LAR1 9093 // Description : Limit address register for MPU region 1. Writable only from a 9094 // Secure, Privileged context, with the exception of the P bit. 9095 #define DMA_MPU_LAR1_OFFSET _u(0x00000510) 9096 #define DMA_MPU_LAR1_BITS _u(0xffffffe7) 9097 #define DMA_MPU_LAR1_RESET _u(0x00000000) 9098 // ----------------------------------------------------------------------------- 9099 // Field : DMA_MPU_LAR1_ADDR 9100 // Description : Limit address bits 31:5. Readable from any Privileged context, 9101 // if and only if this region's S bit is clear, and 9102 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9103 // Secure, Privileged context. 9104 #define DMA_MPU_LAR1_ADDR_RESET _u(0x0000000) 9105 #define DMA_MPU_LAR1_ADDR_BITS _u(0xffffffe0) 9106 #define DMA_MPU_LAR1_ADDR_MSB _u(31) 9107 #define DMA_MPU_LAR1_ADDR_LSB _u(5) 9108 #define DMA_MPU_LAR1_ADDR_ACCESS "RW" 9109 // ----------------------------------------------------------------------------- 9110 // Field : DMA_MPU_LAR1_S 9111 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9112 // matching this region, if this region is enabled. 9113 #define DMA_MPU_LAR1_S_RESET _u(0x0) 9114 #define DMA_MPU_LAR1_S_BITS _u(0x00000004) 9115 #define DMA_MPU_LAR1_S_MSB _u(2) 9116 #define DMA_MPU_LAR1_S_LSB _u(2) 9117 #define DMA_MPU_LAR1_S_ACCESS "RW" 9118 // ----------------------------------------------------------------------------- 9119 // Field : DMA_MPU_LAR1_P 9120 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9121 // addresses matching this region, if this region is enabled. 9122 // Writable from any Privileged context, if and only if the S bit 9123 // is clear. Otherwise, writable only from a Secure, Privileged 9124 // context. 9125 #define DMA_MPU_LAR1_P_RESET _u(0x0) 9126 #define DMA_MPU_LAR1_P_BITS _u(0x00000002) 9127 #define DMA_MPU_LAR1_P_MSB _u(1) 9128 #define DMA_MPU_LAR1_P_LSB _u(1) 9129 #define DMA_MPU_LAR1_P_ACCESS "RW" 9130 // ----------------------------------------------------------------------------- 9131 // Field : DMA_MPU_LAR1_EN 9132 // Description : Region enable. If 1, any address within range specified by the 9133 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9134 // attributes specified by S and P. 9135 #define DMA_MPU_LAR1_EN_RESET _u(0x0) 9136 #define DMA_MPU_LAR1_EN_BITS _u(0x00000001) 9137 #define DMA_MPU_LAR1_EN_MSB _u(0) 9138 #define DMA_MPU_LAR1_EN_LSB _u(0) 9139 #define DMA_MPU_LAR1_EN_ACCESS "RW" 9140 // ============================================================================= 9141 // Register : DMA_MPU_BAR2 9142 // Description : Base address register for MPU region 2. Writable only from a 9143 // Secure, Privileged context. 9144 #define DMA_MPU_BAR2_OFFSET _u(0x00000514) 9145 #define DMA_MPU_BAR2_BITS _u(0xffffffe0) 9146 #define DMA_MPU_BAR2_RESET _u(0x00000000) 9147 // ----------------------------------------------------------------------------- 9148 // Field : DMA_MPU_BAR2_ADDR 9149 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9150 // significant bits) are greater than or equal to BAR_ADDR, and 9151 // less than or equal to LAR_ADDR. 9152 // 9153 // Readable from any Privileged context, if and only if this 9154 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9155 // Otherwise readable only from a Secure, Privileged context. 9156 #define DMA_MPU_BAR2_ADDR_RESET _u(0x0000000) 9157 #define DMA_MPU_BAR2_ADDR_BITS _u(0xffffffe0) 9158 #define DMA_MPU_BAR2_ADDR_MSB _u(31) 9159 #define DMA_MPU_BAR2_ADDR_LSB _u(5) 9160 #define DMA_MPU_BAR2_ADDR_ACCESS "RW" 9161 // ============================================================================= 9162 // Register : DMA_MPU_LAR2 9163 // Description : Limit address register for MPU region 2. Writable only from a 9164 // Secure, Privileged context, with the exception of the P bit. 9165 #define DMA_MPU_LAR2_OFFSET _u(0x00000518) 9166 #define DMA_MPU_LAR2_BITS _u(0xffffffe7) 9167 #define DMA_MPU_LAR2_RESET _u(0x00000000) 9168 // ----------------------------------------------------------------------------- 9169 // Field : DMA_MPU_LAR2_ADDR 9170 // Description : Limit address bits 31:5. Readable from any Privileged context, 9171 // if and only if this region's S bit is clear, and 9172 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9173 // Secure, Privileged context. 9174 #define DMA_MPU_LAR2_ADDR_RESET _u(0x0000000) 9175 #define DMA_MPU_LAR2_ADDR_BITS _u(0xffffffe0) 9176 #define DMA_MPU_LAR2_ADDR_MSB _u(31) 9177 #define DMA_MPU_LAR2_ADDR_LSB _u(5) 9178 #define DMA_MPU_LAR2_ADDR_ACCESS "RW" 9179 // ----------------------------------------------------------------------------- 9180 // Field : DMA_MPU_LAR2_S 9181 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9182 // matching this region, if this region is enabled. 9183 #define DMA_MPU_LAR2_S_RESET _u(0x0) 9184 #define DMA_MPU_LAR2_S_BITS _u(0x00000004) 9185 #define DMA_MPU_LAR2_S_MSB _u(2) 9186 #define DMA_MPU_LAR2_S_LSB _u(2) 9187 #define DMA_MPU_LAR2_S_ACCESS "RW" 9188 // ----------------------------------------------------------------------------- 9189 // Field : DMA_MPU_LAR2_P 9190 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9191 // addresses matching this region, if this region is enabled. 9192 // Writable from any Privileged context, if and only if the S bit 9193 // is clear. Otherwise, writable only from a Secure, Privileged 9194 // context. 9195 #define DMA_MPU_LAR2_P_RESET _u(0x0) 9196 #define DMA_MPU_LAR2_P_BITS _u(0x00000002) 9197 #define DMA_MPU_LAR2_P_MSB _u(1) 9198 #define DMA_MPU_LAR2_P_LSB _u(1) 9199 #define DMA_MPU_LAR2_P_ACCESS "RW" 9200 // ----------------------------------------------------------------------------- 9201 // Field : DMA_MPU_LAR2_EN 9202 // Description : Region enable. If 1, any address within range specified by the 9203 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9204 // attributes specified by S and P. 9205 #define DMA_MPU_LAR2_EN_RESET _u(0x0) 9206 #define DMA_MPU_LAR2_EN_BITS _u(0x00000001) 9207 #define DMA_MPU_LAR2_EN_MSB _u(0) 9208 #define DMA_MPU_LAR2_EN_LSB _u(0) 9209 #define DMA_MPU_LAR2_EN_ACCESS "RW" 9210 // ============================================================================= 9211 // Register : DMA_MPU_BAR3 9212 // Description : Base address register for MPU region 3. Writable only from a 9213 // Secure, Privileged context. 9214 #define DMA_MPU_BAR3_OFFSET _u(0x0000051c) 9215 #define DMA_MPU_BAR3_BITS _u(0xffffffe0) 9216 #define DMA_MPU_BAR3_RESET _u(0x00000000) 9217 // ----------------------------------------------------------------------------- 9218 // Field : DMA_MPU_BAR3_ADDR 9219 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9220 // significant bits) are greater than or equal to BAR_ADDR, and 9221 // less than or equal to LAR_ADDR. 9222 // 9223 // Readable from any Privileged context, if and only if this 9224 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9225 // Otherwise readable only from a Secure, Privileged context. 9226 #define DMA_MPU_BAR3_ADDR_RESET _u(0x0000000) 9227 #define DMA_MPU_BAR3_ADDR_BITS _u(0xffffffe0) 9228 #define DMA_MPU_BAR3_ADDR_MSB _u(31) 9229 #define DMA_MPU_BAR3_ADDR_LSB _u(5) 9230 #define DMA_MPU_BAR3_ADDR_ACCESS "RW" 9231 // ============================================================================= 9232 // Register : DMA_MPU_LAR3 9233 // Description : Limit address register for MPU region 3. Writable only from a 9234 // Secure, Privileged context, with the exception of the P bit. 9235 #define DMA_MPU_LAR3_OFFSET _u(0x00000520) 9236 #define DMA_MPU_LAR3_BITS _u(0xffffffe7) 9237 #define DMA_MPU_LAR3_RESET _u(0x00000000) 9238 // ----------------------------------------------------------------------------- 9239 // Field : DMA_MPU_LAR3_ADDR 9240 // Description : Limit address bits 31:5. Readable from any Privileged context, 9241 // if and only if this region's S bit is clear, and 9242 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9243 // Secure, Privileged context. 9244 #define DMA_MPU_LAR3_ADDR_RESET _u(0x0000000) 9245 #define DMA_MPU_LAR3_ADDR_BITS _u(0xffffffe0) 9246 #define DMA_MPU_LAR3_ADDR_MSB _u(31) 9247 #define DMA_MPU_LAR3_ADDR_LSB _u(5) 9248 #define DMA_MPU_LAR3_ADDR_ACCESS "RW" 9249 // ----------------------------------------------------------------------------- 9250 // Field : DMA_MPU_LAR3_S 9251 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9252 // matching this region, if this region is enabled. 9253 #define DMA_MPU_LAR3_S_RESET _u(0x0) 9254 #define DMA_MPU_LAR3_S_BITS _u(0x00000004) 9255 #define DMA_MPU_LAR3_S_MSB _u(2) 9256 #define DMA_MPU_LAR3_S_LSB _u(2) 9257 #define DMA_MPU_LAR3_S_ACCESS "RW" 9258 // ----------------------------------------------------------------------------- 9259 // Field : DMA_MPU_LAR3_P 9260 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9261 // addresses matching this region, if this region is enabled. 9262 // Writable from any Privileged context, if and only if the S bit 9263 // is clear. Otherwise, writable only from a Secure, Privileged 9264 // context. 9265 #define DMA_MPU_LAR3_P_RESET _u(0x0) 9266 #define DMA_MPU_LAR3_P_BITS _u(0x00000002) 9267 #define DMA_MPU_LAR3_P_MSB _u(1) 9268 #define DMA_MPU_LAR3_P_LSB _u(1) 9269 #define DMA_MPU_LAR3_P_ACCESS "RW" 9270 // ----------------------------------------------------------------------------- 9271 // Field : DMA_MPU_LAR3_EN 9272 // Description : Region enable. If 1, any address within range specified by the 9273 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9274 // attributes specified by S and P. 9275 #define DMA_MPU_LAR3_EN_RESET _u(0x0) 9276 #define DMA_MPU_LAR3_EN_BITS _u(0x00000001) 9277 #define DMA_MPU_LAR3_EN_MSB _u(0) 9278 #define DMA_MPU_LAR3_EN_LSB _u(0) 9279 #define DMA_MPU_LAR3_EN_ACCESS "RW" 9280 // ============================================================================= 9281 // Register : DMA_MPU_BAR4 9282 // Description : Base address register for MPU region 4. Writable only from a 9283 // Secure, Privileged context. 9284 #define DMA_MPU_BAR4_OFFSET _u(0x00000524) 9285 #define DMA_MPU_BAR4_BITS _u(0xffffffe0) 9286 #define DMA_MPU_BAR4_RESET _u(0x00000000) 9287 // ----------------------------------------------------------------------------- 9288 // Field : DMA_MPU_BAR4_ADDR 9289 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9290 // significant bits) are greater than or equal to BAR_ADDR, and 9291 // less than or equal to LAR_ADDR. 9292 // 9293 // Readable from any Privileged context, if and only if this 9294 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9295 // Otherwise readable only from a Secure, Privileged context. 9296 #define DMA_MPU_BAR4_ADDR_RESET _u(0x0000000) 9297 #define DMA_MPU_BAR4_ADDR_BITS _u(0xffffffe0) 9298 #define DMA_MPU_BAR4_ADDR_MSB _u(31) 9299 #define DMA_MPU_BAR4_ADDR_LSB _u(5) 9300 #define DMA_MPU_BAR4_ADDR_ACCESS "RW" 9301 // ============================================================================= 9302 // Register : DMA_MPU_LAR4 9303 // Description : Limit address register for MPU region 4. Writable only from a 9304 // Secure, Privileged context, with the exception of the P bit. 9305 #define DMA_MPU_LAR4_OFFSET _u(0x00000528) 9306 #define DMA_MPU_LAR4_BITS _u(0xffffffe7) 9307 #define DMA_MPU_LAR4_RESET _u(0x00000000) 9308 // ----------------------------------------------------------------------------- 9309 // Field : DMA_MPU_LAR4_ADDR 9310 // Description : Limit address bits 31:5. Readable from any Privileged context, 9311 // if and only if this region's S bit is clear, and 9312 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9313 // Secure, Privileged context. 9314 #define DMA_MPU_LAR4_ADDR_RESET _u(0x0000000) 9315 #define DMA_MPU_LAR4_ADDR_BITS _u(0xffffffe0) 9316 #define DMA_MPU_LAR4_ADDR_MSB _u(31) 9317 #define DMA_MPU_LAR4_ADDR_LSB _u(5) 9318 #define DMA_MPU_LAR4_ADDR_ACCESS "RW" 9319 // ----------------------------------------------------------------------------- 9320 // Field : DMA_MPU_LAR4_S 9321 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9322 // matching this region, if this region is enabled. 9323 #define DMA_MPU_LAR4_S_RESET _u(0x0) 9324 #define DMA_MPU_LAR4_S_BITS _u(0x00000004) 9325 #define DMA_MPU_LAR4_S_MSB _u(2) 9326 #define DMA_MPU_LAR4_S_LSB _u(2) 9327 #define DMA_MPU_LAR4_S_ACCESS "RW" 9328 // ----------------------------------------------------------------------------- 9329 // Field : DMA_MPU_LAR4_P 9330 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9331 // addresses matching this region, if this region is enabled. 9332 // Writable from any Privileged context, if and only if the S bit 9333 // is clear. Otherwise, writable only from a Secure, Privileged 9334 // context. 9335 #define DMA_MPU_LAR4_P_RESET _u(0x0) 9336 #define DMA_MPU_LAR4_P_BITS _u(0x00000002) 9337 #define DMA_MPU_LAR4_P_MSB _u(1) 9338 #define DMA_MPU_LAR4_P_LSB _u(1) 9339 #define DMA_MPU_LAR4_P_ACCESS "RW" 9340 // ----------------------------------------------------------------------------- 9341 // Field : DMA_MPU_LAR4_EN 9342 // Description : Region enable. If 1, any address within range specified by the 9343 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9344 // attributes specified by S and P. 9345 #define DMA_MPU_LAR4_EN_RESET _u(0x0) 9346 #define DMA_MPU_LAR4_EN_BITS _u(0x00000001) 9347 #define DMA_MPU_LAR4_EN_MSB _u(0) 9348 #define DMA_MPU_LAR4_EN_LSB _u(0) 9349 #define DMA_MPU_LAR4_EN_ACCESS "RW" 9350 // ============================================================================= 9351 // Register : DMA_MPU_BAR5 9352 // Description : Base address register for MPU region 5. Writable only from a 9353 // Secure, Privileged context. 9354 #define DMA_MPU_BAR5_OFFSET _u(0x0000052c) 9355 #define DMA_MPU_BAR5_BITS _u(0xffffffe0) 9356 #define DMA_MPU_BAR5_RESET _u(0x00000000) 9357 // ----------------------------------------------------------------------------- 9358 // Field : DMA_MPU_BAR5_ADDR 9359 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9360 // significant bits) are greater than or equal to BAR_ADDR, and 9361 // less than or equal to LAR_ADDR. 9362 // 9363 // Readable from any Privileged context, if and only if this 9364 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9365 // Otherwise readable only from a Secure, Privileged context. 9366 #define DMA_MPU_BAR5_ADDR_RESET _u(0x0000000) 9367 #define DMA_MPU_BAR5_ADDR_BITS _u(0xffffffe0) 9368 #define DMA_MPU_BAR5_ADDR_MSB _u(31) 9369 #define DMA_MPU_BAR5_ADDR_LSB _u(5) 9370 #define DMA_MPU_BAR5_ADDR_ACCESS "RW" 9371 // ============================================================================= 9372 // Register : DMA_MPU_LAR5 9373 // Description : Limit address register for MPU region 5. Writable only from a 9374 // Secure, Privileged context, with the exception of the P bit. 9375 #define DMA_MPU_LAR5_OFFSET _u(0x00000530) 9376 #define DMA_MPU_LAR5_BITS _u(0xffffffe7) 9377 #define DMA_MPU_LAR5_RESET _u(0x00000000) 9378 // ----------------------------------------------------------------------------- 9379 // Field : DMA_MPU_LAR5_ADDR 9380 // Description : Limit address bits 31:5. Readable from any Privileged context, 9381 // if and only if this region's S bit is clear, and 9382 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9383 // Secure, Privileged context. 9384 #define DMA_MPU_LAR5_ADDR_RESET _u(0x0000000) 9385 #define DMA_MPU_LAR5_ADDR_BITS _u(0xffffffe0) 9386 #define DMA_MPU_LAR5_ADDR_MSB _u(31) 9387 #define DMA_MPU_LAR5_ADDR_LSB _u(5) 9388 #define DMA_MPU_LAR5_ADDR_ACCESS "RW" 9389 // ----------------------------------------------------------------------------- 9390 // Field : DMA_MPU_LAR5_S 9391 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9392 // matching this region, if this region is enabled. 9393 #define DMA_MPU_LAR5_S_RESET _u(0x0) 9394 #define DMA_MPU_LAR5_S_BITS _u(0x00000004) 9395 #define DMA_MPU_LAR5_S_MSB _u(2) 9396 #define DMA_MPU_LAR5_S_LSB _u(2) 9397 #define DMA_MPU_LAR5_S_ACCESS "RW" 9398 // ----------------------------------------------------------------------------- 9399 // Field : DMA_MPU_LAR5_P 9400 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9401 // addresses matching this region, if this region is enabled. 9402 // Writable from any Privileged context, if and only if the S bit 9403 // is clear. Otherwise, writable only from a Secure, Privileged 9404 // context. 9405 #define DMA_MPU_LAR5_P_RESET _u(0x0) 9406 #define DMA_MPU_LAR5_P_BITS _u(0x00000002) 9407 #define DMA_MPU_LAR5_P_MSB _u(1) 9408 #define DMA_MPU_LAR5_P_LSB _u(1) 9409 #define DMA_MPU_LAR5_P_ACCESS "RW" 9410 // ----------------------------------------------------------------------------- 9411 // Field : DMA_MPU_LAR5_EN 9412 // Description : Region enable. If 1, any address within range specified by the 9413 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9414 // attributes specified by S and P. 9415 #define DMA_MPU_LAR5_EN_RESET _u(0x0) 9416 #define DMA_MPU_LAR5_EN_BITS _u(0x00000001) 9417 #define DMA_MPU_LAR5_EN_MSB _u(0) 9418 #define DMA_MPU_LAR5_EN_LSB _u(0) 9419 #define DMA_MPU_LAR5_EN_ACCESS "RW" 9420 // ============================================================================= 9421 // Register : DMA_MPU_BAR6 9422 // Description : Base address register for MPU region 6. Writable only from a 9423 // Secure, Privileged context. 9424 #define DMA_MPU_BAR6_OFFSET _u(0x00000534) 9425 #define DMA_MPU_BAR6_BITS _u(0xffffffe0) 9426 #define DMA_MPU_BAR6_RESET _u(0x00000000) 9427 // ----------------------------------------------------------------------------- 9428 // Field : DMA_MPU_BAR6_ADDR 9429 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9430 // significant bits) are greater than or equal to BAR_ADDR, and 9431 // less than or equal to LAR_ADDR. 9432 // 9433 // Readable from any Privileged context, if and only if this 9434 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9435 // Otherwise readable only from a Secure, Privileged context. 9436 #define DMA_MPU_BAR6_ADDR_RESET _u(0x0000000) 9437 #define DMA_MPU_BAR6_ADDR_BITS _u(0xffffffe0) 9438 #define DMA_MPU_BAR6_ADDR_MSB _u(31) 9439 #define DMA_MPU_BAR6_ADDR_LSB _u(5) 9440 #define DMA_MPU_BAR6_ADDR_ACCESS "RW" 9441 // ============================================================================= 9442 // Register : DMA_MPU_LAR6 9443 // Description : Limit address register for MPU region 6. Writable only from a 9444 // Secure, Privileged context, with the exception of the P bit. 9445 #define DMA_MPU_LAR6_OFFSET _u(0x00000538) 9446 #define DMA_MPU_LAR6_BITS _u(0xffffffe7) 9447 #define DMA_MPU_LAR6_RESET _u(0x00000000) 9448 // ----------------------------------------------------------------------------- 9449 // Field : DMA_MPU_LAR6_ADDR 9450 // Description : Limit address bits 31:5. Readable from any Privileged context, 9451 // if and only if this region's S bit is clear, and 9452 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9453 // Secure, Privileged context. 9454 #define DMA_MPU_LAR6_ADDR_RESET _u(0x0000000) 9455 #define DMA_MPU_LAR6_ADDR_BITS _u(0xffffffe0) 9456 #define DMA_MPU_LAR6_ADDR_MSB _u(31) 9457 #define DMA_MPU_LAR6_ADDR_LSB _u(5) 9458 #define DMA_MPU_LAR6_ADDR_ACCESS "RW" 9459 // ----------------------------------------------------------------------------- 9460 // Field : DMA_MPU_LAR6_S 9461 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9462 // matching this region, if this region is enabled. 9463 #define DMA_MPU_LAR6_S_RESET _u(0x0) 9464 #define DMA_MPU_LAR6_S_BITS _u(0x00000004) 9465 #define DMA_MPU_LAR6_S_MSB _u(2) 9466 #define DMA_MPU_LAR6_S_LSB _u(2) 9467 #define DMA_MPU_LAR6_S_ACCESS "RW" 9468 // ----------------------------------------------------------------------------- 9469 // Field : DMA_MPU_LAR6_P 9470 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9471 // addresses matching this region, if this region is enabled. 9472 // Writable from any Privileged context, if and only if the S bit 9473 // is clear. Otherwise, writable only from a Secure, Privileged 9474 // context. 9475 #define DMA_MPU_LAR6_P_RESET _u(0x0) 9476 #define DMA_MPU_LAR6_P_BITS _u(0x00000002) 9477 #define DMA_MPU_LAR6_P_MSB _u(1) 9478 #define DMA_MPU_LAR6_P_LSB _u(1) 9479 #define DMA_MPU_LAR6_P_ACCESS "RW" 9480 // ----------------------------------------------------------------------------- 9481 // Field : DMA_MPU_LAR6_EN 9482 // Description : Region enable. If 1, any address within range specified by the 9483 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9484 // attributes specified by S and P. 9485 #define DMA_MPU_LAR6_EN_RESET _u(0x0) 9486 #define DMA_MPU_LAR6_EN_BITS _u(0x00000001) 9487 #define DMA_MPU_LAR6_EN_MSB _u(0) 9488 #define DMA_MPU_LAR6_EN_LSB _u(0) 9489 #define DMA_MPU_LAR6_EN_ACCESS "RW" 9490 // ============================================================================= 9491 // Register : DMA_MPU_BAR7 9492 // Description : Base address register for MPU region 7. Writable only from a 9493 // Secure, Privileged context. 9494 #define DMA_MPU_BAR7_OFFSET _u(0x0000053c) 9495 #define DMA_MPU_BAR7_BITS _u(0xffffffe0) 9496 #define DMA_MPU_BAR7_RESET _u(0x00000000) 9497 // ----------------------------------------------------------------------------- 9498 // Field : DMA_MPU_BAR7_ADDR 9499 // Description : This MPU region matches addresses where addr[31:5] (the 27 most 9500 // significant bits) are greater than or equal to BAR_ADDR, and 9501 // less than or equal to LAR_ADDR. 9502 // 9503 // Readable from any Privileged context, if and only if this 9504 // region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear. 9505 // Otherwise readable only from a Secure, Privileged context. 9506 #define DMA_MPU_BAR7_ADDR_RESET _u(0x0000000) 9507 #define DMA_MPU_BAR7_ADDR_BITS _u(0xffffffe0) 9508 #define DMA_MPU_BAR7_ADDR_MSB _u(31) 9509 #define DMA_MPU_BAR7_ADDR_LSB _u(5) 9510 #define DMA_MPU_BAR7_ADDR_ACCESS "RW" 9511 // ============================================================================= 9512 // Register : DMA_MPU_LAR7 9513 // Description : Limit address register for MPU region 7. Writable only from a 9514 // Secure, Privileged context, with the exception of the P bit. 9515 #define DMA_MPU_LAR7_OFFSET _u(0x00000540) 9516 #define DMA_MPU_LAR7_BITS _u(0xffffffe7) 9517 #define DMA_MPU_LAR7_RESET _u(0x00000000) 9518 // ----------------------------------------------------------------------------- 9519 // Field : DMA_MPU_LAR7_ADDR 9520 // Description : Limit address bits 31:5. Readable from any Privileged context, 9521 // if and only if this region's S bit is clear, and 9522 // MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a 9523 // Secure, Privileged context. 9524 #define DMA_MPU_LAR7_ADDR_RESET _u(0x0000000) 9525 #define DMA_MPU_LAR7_ADDR_BITS _u(0xffffffe0) 9526 #define DMA_MPU_LAR7_ADDR_MSB _u(31) 9527 #define DMA_MPU_LAR7_ADDR_LSB _u(5) 9528 #define DMA_MPU_LAR7_ADDR_ACCESS "RW" 9529 // ----------------------------------------------------------------------------- 9530 // Field : DMA_MPU_LAR7_S 9531 // Description : Determines the Secure/Non-secure (=1/0) status of addresses 9532 // matching this region, if this region is enabled. 9533 #define DMA_MPU_LAR7_S_RESET _u(0x0) 9534 #define DMA_MPU_LAR7_S_BITS _u(0x00000004) 9535 #define DMA_MPU_LAR7_S_MSB _u(2) 9536 #define DMA_MPU_LAR7_S_LSB _u(2) 9537 #define DMA_MPU_LAR7_S_ACCESS "RW" 9538 // ----------------------------------------------------------------------------- 9539 // Field : DMA_MPU_LAR7_P 9540 // Description : Determines the Privileged/Unprivileged (=1/0) status of 9541 // addresses matching this region, if this region is enabled. 9542 // Writable from any Privileged context, if and only if the S bit 9543 // is clear. Otherwise, writable only from a Secure, Privileged 9544 // context. 9545 #define DMA_MPU_LAR7_P_RESET _u(0x0) 9546 #define DMA_MPU_LAR7_P_BITS _u(0x00000002) 9547 #define DMA_MPU_LAR7_P_MSB _u(1) 9548 #define DMA_MPU_LAR7_P_LSB _u(1) 9549 #define DMA_MPU_LAR7_P_ACCESS "RW" 9550 // ----------------------------------------------------------------------------- 9551 // Field : DMA_MPU_LAR7_EN 9552 // Description : Region enable. If 1, any address within range specified by the 9553 // base address (BAR_ADDR) and limit address (LAR_ADDR) has the 9554 // attributes specified by S and P. 9555 #define DMA_MPU_LAR7_EN_RESET _u(0x0) 9556 #define DMA_MPU_LAR7_EN_BITS _u(0x00000001) 9557 #define DMA_MPU_LAR7_EN_MSB _u(0) 9558 #define DMA_MPU_LAR7_EN_LSB _u(0) 9559 #define DMA_MPU_LAR7_EN_ACCESS "RW" 9560 // ============================================================================= 9561 // Register : DMA_CH0_DBG_CTDREQ 9562 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9563 // expects it can perform on the peripheral without 9564 // overflow/underflow. Write any value: clears the counter, and 9565 // cause channel to re-initiate DREQ handshake. 9566 #define DMA_CH0_DBG_CTDREQ_OFFSET _u(0x00000800) 9567 #define DMA_CH0_DBG_CTDREQ_BITS _u(0x0000003f) 9568 #define DMA_CH0_DBG_CTDREQ_RESET _u(0x00000000) 9569 #define DMA_CH0_DBG_CTDREQ_MSB _u(5) 9570 #define DMA_CH0_DBG_CTDREQ_LSB _u(0) 9571 #define DMA_CH0_DBG_CTDREQ_ACCESS "WC" 9572 // ============================================================================= 9573 // Register : DMA_CH0_DBG_TCR 9574 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9575 // of the next transfer 9576 #define DMA_CH0_DBG_TCR_OFFSET _u(0x00000804) 9577 #define DMA_CH0_DBG_TCR_BITS _u(0xffffffff) 9578 #define DMA_CH0_DBG_TCR_RESET _u(0x00000000) 9579 #define DMA_CH0_DBG_TCR_MSB _u(31) 9580 #define DMA_CH0_DBG_TCR_LSB _u(0) 9581 #define DMA_CH0_DBG_TCR_ACCESS "RO" 9582 // ============================================================================= 9583 // Register : DMA_CH1_DBG_CTDREQ 9584 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9585 // expects it can perform on the peripheral without 9586 // overflow/underflow. Write any value: clears the counter, and 9587 // cause channel to re-initiate DREQ handshake. 9588 #define DMA_CH1_DBG_CTDREQ_OFFSET _u(0x00000840) 9589 #define DMA_CH1_DBG_CTDREQ_BITS _u(0x0000003f) 9590 #define DMA_CH1_DBG_CTDREQ_RESET _u(0x00000000) 9591 #define DMA_CH1_DBG_CTDREQ_MSB _u(5) 9592 #define DMA_CH1_DBG_CTDREQ_LSB _u(0) 9593 #define DMA_CH1_DBG_CTDREQ_ACCESS "WC" 9594 // ============================================================================= 9595 // Register : DMA_CH1_DBG_TCR 9596 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9597 // of the next transfer 9598 #define DMA_CH1_DBG_TCR_OFFSET _u(0x00000844) 9599 #define DMA_CH1_DBG_TCR_BITS _u(0xffffffff) 9600 #define DMA_CH1_DBG_TCR_RESET _u(0x00000000) 9601 #define DMA_CH1_DBG_TCR_MSB _u(31) 9602 #define DMA_CH1_DBG_TCR_LSB _u(0) 9603 #define DMA_CH1_DBG_TCR_ACCESS "RO" 9604 // ============================================================================= 9605 // Register : DMA_CH2_DBG_CTDREQ 9606 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9607 // expects it can perform on the peripheral without 9608 // overflow/underflow. Write any value: clears the counter, and 9609 // cause channel to re-initiate DREQ handshake. 9610 #define DMA_CH2_DBG_CTDREQ_OFFSET _u(0x00000880) 9611 #define DMA_CH2_DBG_CTDREQ_BITS _u(0x0000003f) 9612 #define DMA_CH2_DBG_CTDREQ_RESET _u(0x00000000) 9613 #define DMA_CH2_DBG_CTDREQ_MSB _u(5) 9614 #define DMA_CH2_DBG_CTDREQ_LSB _u(0) 9615 #define DMA_CH2_DBG_CTDREQ_ACCESS "WC" 9616 // ============================================================================= 9617 // Register : DMA_CH2_DBG_TCR 9618 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9619 // of the next transfer 9620 #define DMA_CH2_DBG_TCR_OFFSET _u(0x00000884) 9621 #define DMA_CH2_DBG_TCR_BITS _u(0xffffffff) 9622 #define DMA_CH2_DBG_TCR_RESET _u(0x00000000) 9623 #define DMA_CH2_DBG_TCR_MSB _u(31) 9624 #define DMA_CH2_DBG_TCR_LSB _u(0) 9625 #define DMA_CH2_DBG_TCR_ACCESS "RO" 9626 // ============================================================================= 9627 // Register : DMA_CH3_DBG_CTDREQ 9628 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9629 // expects it can perform on the peripheral without 9630 // overflow/underflow. Write any value: clears the counter, and 9631 // cause channel to re-initiate DREQ handshake. 9632 #define DMA_CH3_DBG_CTDREQ_OFFSET _u(0x000008c0) 9633 #define DMA_CH3_DBG_CTDREQ_BITS _u(0x0000003f) 9634 #define DMA_CH3_DBG_CTDREQ_RESET _u(0x00000000) 9635 #define DMA_CH3_DBG_CTDREQ_MSB _u(5) 9636 #define DMA_CH3_DBG_CTDREQ_LSB _u(0) 9637 #define DMA_CH3_DBG_CTDREQ_ACCESS "WC" 9638 // ============================================================================= 9639 // Register : DMA_CH3_DBG_TCR 9640 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9641 // of the next transfer 9642 #define DMA_CH3_DBG_TCR_OFFSET _u(0x000008c4) 9643 #define DMA_CH3_DBG_TCR_BITS _u(0xffffffff) 9644 #define DMA_CH3_DBG_TCR_RESET _u(0x00000000) 9645 #define DMA_CH3_DBG_TCR_MSB _u(31) 9646 #define DMA_CH3_DBG_TCR_LSB _u(0) 9647 #define DMA_CH3_DBG_TCR_ACCESS "RO" 9648 // ============================================================================= 9649 // Register : DMA_CH4_DBG_CTDREQ 9650 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9651 // expects it can perform on the peripheral without 9652 // overflow/underflow. Write any value: clears the counter, and 9653 // cause channel to re-initiate DREQ handshake. 9654 #define DMA_CH4_DBG_CTDREQ_OFFSET _u(0x00000900) 9655 #define DMA_CH4_DBG_CTDREQ_BITS _u(0x0000003f) 9656 #define DMA_CH4_DBG_CTDREQ_RESET _u(0x00000000) 9657 #define DMA_CH4_DBG_CTDREQ_MSB _u(5) 9658 #define DMA_CH4_DBG_CTDREQ_LSB _u(0) 9659 #define DMA_CH4_DBG_CTDREQ_ACCESS "WC" 9660 // ============================================================================= 9661 // Register : DMA_CH4_DBG_TCR 9662 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9663 // of the next transfer 9664 #define DMA_CH4_DBG_TCR_OFFSET _u(0x00000904) 9665 #define DMA_CH4_DBG_TCR_BITS _u(0xffffffff) 9666 #define DMA_CH4_DBG_TCR_RESET _u(0x00000000) 9667 #define DMA_CH4_DBG_TCR_MSB _u(31) 9668 #define DMA_CH4_DBG_TCR_LSB _u(0) 9669 #define DMA_CH4_DBG_TCR_ACCESS "RO" 9670 // ============================================================================= 9671 // Register : DMA_CH5_DBG_CTDREQ 9672 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9673 // expects it can perform on the peripheral without 9674 // overflow/underflow. Write any value: clears the counter, and 9675 // cause channel to re-initiate DREQ handshake. 9676 #define DMA_CH5_DBG_CTDREQ_OFFSET _u(0x00000940) 9677 #define DMA_CH5_DBG_CTDREQ_BITS _u(0x0000003f) 9678 #define DMA_CH5_DBG_CTDREQ_RESET _u(0x00000000) 9679 #define DMA_CH5_DBG_CTDREQ_MSB _u(5) 9680 #define DMA_CH5_DBG_CTDREQ_LSB _u(0) 9681 #define DMA_CH5_DBG_CTDREQ_ACCESS "WC" 9682 // ============================================================================= 9683 // Register : DMA_CH5_DBG_TCR 9684 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9685 // of the next transfer 9686 #define DMA_CH5_DBG_TCR_OFFSET _u(0x00000944) 9687 #define DMA_CH5_DBG_TCR_BITS _u(0xffffffff) 9688 #define DMA_CH5_DBG_TCR_RESET _u(0x00000000) 9689 #define DMA_CH5_DBG_TCR_MSB _u(31) 9690 #define DMA_CH5_DBG_TCR_LSB _u(0) 9691 #define DMA_CH5_DBG_TCR_ACCESS "RO" 9692 // ============================================================================= 9693 // Register : DMA_CH6_DBG_CTDREQ 9694 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9695 // expects it can perform on the peripheral without 9696 // overflow/underflow. Write any value: clears the counter, and 9697 // cause channel to re-initiate DREQ handshake. 9698 #define DMA_CH6_DBG_CTDREQ_OFFSET _u(0x00000980) 9699 #define DMA_CH6_DBG_CTDREQ_BITS _u(0x0000003f) 9700 #define DMA_CH6_DBG_CTDREQ_RESET _u(0x00000000) 9701 #define DMA_CH6_DBG_CTDREQ_MSB _u(5) 9702 #define DMA_CH6_DBG_CTDREQ_LSB _u(0) 9703 #define DMA_CH6_DBG_CTDREQ_ACCESS "WC" 9704 // ============================================================================= 9705 // Register : DMA_CH6_DBG_TCR 9706 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9707 // of the next transfer 9708 #define DMA_CH6_DBG_TCR_OFFSET _u(0x00000984) 9709 #define DMA_CH6_DBG_TCR_BITS _u(0xffffffff) 9710 #define DMA_CH6_DBG_TCR_RESET _u(0x00000000) 9711 #define DMA_CH6_DBG_TCR_MSB _u(31) 9712 #define DMA_CH6_DBG_TCR_LSB _u(0) 9713 #define DMA_CH6_DBG_TCR_ACCESS "RO" 9714 // ============================================================================= 9715 // Register : DMA_CH7_DBG_CTDREQ 9716 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9717 // expects it can perform on the peripheral without 9718 // overflow/underflow. Write any value: clears the counter, and 9719 // cause channel to re-initiate DREQ handshake. 9720 #define DMA_CH7_DBG_CTDREQ_OFFSET _u(0x000009c0) 9721 #define DMA_CH7_DBG_CTDREQ_BITS _u(0x0000003f) 9722 #define DMA_CH7_DBG_CTDREQ_RESET _u(0x00000000) 9723 #define DMA_CH7_DBG_CTDREQ_MSB _u(5) 9724 #define DMA_CH7_DBG_CTDREQ_LSB _u(0) 9725 #define DMA_CH7_DBG_CTDREQ_ACCESS "WC" 9726 // ============================================================================= 9727 // Register : DMA_CH7_DBG_TCR 9728 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9729 // of the next transfer 9730 #define DMA_CH7_DBG_TCR_OFFSET _u(0x000009c4) 9731 #define DMA_CH7_DBG_TCR_BITS _u(0xffffffff) 9732 #define DMA_CH7_DBG_TCR_RESET _u(0x00000000) 9733 #define DMA_CH7_DBG_TCR_MSB _u(31) 9734 #define DMA_CH7_DBG_TCR_LSB _u(0) 9735 #define DMA_CH7_DBG_TCR_ACCESS "RO" 9736 // ============================================================================= 9737 // Register : DMA_CH8_DBG_CTDREQ 9738 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9739 // expects it can perform on the peripheral without 9740 // overflow/underflow. Write any value: clears the counter, and 9741 // cause channel to re-initiate DREQ handshake. 9742 #define DMA_CH8_DBG_CTDREQ_OFFSET _u(0x00000a00) 9743 #define DMA_CH8_DBG_CTDREQ_BITS _u(0x0000003f) 9744 #define DMA_CH8_DBG_CTDREQ_RESET _u(0x00000000) 9745 #define DMA_CH8_DBG_CTDREQ_MSB _u(5) 9746 #define DMA_CH8_DBG_CTDREQ_LSB _u(0) 9747 #define DMA_CH8_DBG_CTDREQ_ACCESS "WC" 9748 // ============================================================================= 9749 // Register : DMA_CH8_DBG_TCR 9750 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9751 // of the next transfer 9752 #define DMA_CH8_DBG_TCR_OFFSET _u(0x00000a04) 9753 #define DMA_CH8_DBG_TCR_BITS _u(0xffffffff) 9754 #define DMA_CH8_DBG_TCR_RESET _u(0x00000000) 9755 #define DMA_CH8_DBG_TCR_MSB _u(31) 9756 #define DMA_CH8_DBG_TCR_LSB _u(0) 9757 #define DMA_CH8_DBG_TCR_ACCESS "RO" 9758 // ============================================================================= 9759 // Register : DMA_CH9_DBG_CTDREQ 9760 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9761 // expects it can perform on the peripheral without 9762 // overflow/underflow. Write any value: clears the counter, and 9763 // cause channel to re-initiate DREQ handshake. 9764 #define DMA_CH9_DBG_CTDREQ_OFFSET _u(0x00000a40) 9765 #define DMA_CH9_DBG_CTDREQ_BITS _u(0x0000003f) 9766 #define DMA_CH9_DBG_CTDREQ_RESET _u(0x00000000) 9767 #define DMA_CH9_DBG_CTDREQ_MSB _u(5) 9768 #define DMA_CH9_DBG_CTDREQ_LSB _u(0) 9769 #define DMA_CH9_DBG_CTDREQ_ACCESS "WC" 9770 // ============================================================================= 9771 // Register : DMA_CH9_DBG_TCR 9772 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9773 // of the next transfer 9774 #define DMA_CH9_DBG_TCR_OFFSET _u(0x00000a44) 9775 #define DMA_CH9_DBG_TCR_BITS _u(0xffffffff) 9776 #define DMA_CH9_DBG_TCR_RESET _u(0x00000000) 9777 #define DMA_CH9_DBG_TCR_MSB _u(31) 9778 #define DMA_CH9_DBG_TCR_LSB _u(0) 9779 #define DMA_CH9_DBG_TCR_ACCESS "RO" 9780 // ============================================================================= 9781 // Register : DMA_CH10_DBG_CTDREQ 9782 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9783 // expects it can perform on the peripheral without 9784 // overflow/underflow. Write any value: clears the counter, and 9785 // cause channel to re-initiate DREQ handshake. 9786 #define DMA_CH10_DBG_CTDREQ_OFFSET _u(0x00000a80) 9787 #define DMA_CH10_DBG_CTDREQ_BITS _u(0x0000003f) 9788 #define DMA_CH10_DBG_CTDREQ_RESET _u(0x00000000) 9789 #define DMA_CH10_DBG_CTDREQ_MSB _u(5) 9790 #define DMA_CH10_DBG_CTDREQ_LSB _u(0) 9791 #define DMA_CH10_DBG_CTDREQ_ACCESS "WC" 9792 // ============================================================================= 9793 // Register : DMA_CH10_DBG_TCR 9794 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9795 // of the next transfer 9796 #define DMA_CH10_DBG_TCR_OFFSET _u(0x00000a84) 9797 #define DMA_CH10_DBG_TCR_BITS _u(0xffffffff) 9798 #define DMA_CH10_DBG_TCR_RESET _u(0x00000000) 9799 #define DMA_CH10_DBG_TCR_MSB _u(31) 9800 #define DMA_CH10_DBG_TCR_LSB _u(0) 9801 #define DMA_CH10_DBG_TCR_ACCESS "RO" 9802 // ============================================================================= 9803 // Register : DMA_CH11_DBG_CTDREQ 9804 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9805 // expects it can perform on the peripheral without 9806 // overflow/underflow. Write any value: clears the counter, and 9807 // cause channel to re-initiate DREQ handshake. 9808 #define DMA_CH11_DBG_CTDREQ_OFFSET _u(0x00000ac0) 9809 #define DMA_CH11_DBG_CTDREQ_BITS _u(0x0000003f) 9810 #define DMA_CH11_DBG_CTDREQ_RESET _u(0x00000000) 9811 #define DMA_CH11_DBG_CTDREQ_MSB _u(5) 9812 #define DMA_CH11_DBG_CTDREQ_LSB _u(0) 9813 #define DMA_CH11_DBG_CTDREQ_ACCESS "WC" 9814 // ============================================================================= 9815 // Register : DMA_CH11_DBG_TCR 9816 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9817 // of the next transfer 9818 #define DMA_CH11_DBG_TCR_OFFSET _u(0x00000ac4) 9819 #define DMA_CH11_DBG_TCR_BITS _u(0xffffffff) 9820 #define DMA_CH11_DBG_TCR_RESET _u(0x00000000) 9821 #define DMA_CH11_DBG_TCR_MSB _u(31) 9822 #define DMA_CH11_DBG_TCR_LSB _u(0) 9823 #define DMA_CH11_DBG_TCR_ACCESS "RO" 9824 // ============================================================================= 9825 // Register : DMA_CH12_DBG_CTDREQ 9826 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9827 // expects it can perform on the peripheral without 9828 // overflow/underflow. Write any value: clears the counter, and 9829 // cause channel to re-initiate DREQ handshake. 9830 #define DMA_CH12_DBG_CTDREQ_OFFSET _u(0x00000b00) 9831 #define DMA_CH12_DBG_CTDREQ_BITS _u(0x0000003f) 9832 #define DMA_CH12_DBG_CTDREQ_RESET _u(0x00000000) 9833 #define DMA_CH12_DBG_CTDREQ_MSB _u(5) 9834 #define DMA_CH12_DBG_CTDREQ_LSB _u(0) 9835 #define DMA_CH12_DBG_CTDREQ_ACCESS "WC" 9836 // ============================================================================= 9837 // Register : DMA_CH12_DBG_TCR 9838 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9839 // of the next transfer 9840 #define DMA_CH12_DBG_TCR_OFFSET _u(0x00000b04) 9841 #define DMA_CH12_DBG_TCR_BITS _u(0xffffffff) 9842 #define DMA_CH12_DBG_TCR_RESET _u(0x00000000) 9843 #define DMA_CH12_DBG_TCR_MSB _u(31) 9844 #define DMA_CH12_DBG_TCR_LSB _u(0) 9845 #define DMA_CH12_DBG_TCR_ACCESS "RO" 9846 // ============================================================================= 9847 // Register : DMA_CH13_DBG_CTDREQ 9848 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9849 // expects it can perform on the peripheral without 9850 // overflow/underflow. Write any value: clears the counter, and 9851 // cause channel to re-initiate DREQ handshake. 9852 #define DMA_CH13_DBG_CTDREQ_OFFSET _u(0x00000b40) 9853 #define DMA_CH13_DBG_CTDREQ_BITS _u(0x0000003f) 9854 #define DMA_CH13_DBG_CTDREQ_RESET _u(0x00000000) 9855 #define DMA_CH13_DBG_CTDREQ_MSB _u(5) 9856 #define DMA_CH13_DBG_CTDREQ_LSB _u(0) 9857 #define DMA_CH13_DBG_CTDREQ_ACCESS "WC" 9858 // ============================================================================= 9859 // Register : DMA_CH13_DBG_TCR 9860 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9861 // of the next transfer 9862 #define DMA_CH13_DBG_TCR_OFFSET _u(0x00000b44) 9863 #define DMA_CH13_DBG_TCR_BITS _u(0xffffffff) 9864 #define DMA_CH13_DBG_TCR_RESET _u(0x00000000) 9865 #define DMA_CH13_DBG_TCR_MSB _u(31) 9866 #define DMA_CH13_DBG_TCR_LSB _u(0) 9867 #define DMA_CH13_DBG_TCR_ACCESS "RO" 9868 // ============================================================================= 9869 // Register : DMA_CH14_DBG_CTDREQ 9870 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9871 // expects it can perform on the peripheral without 9872 // overflow/underflow. Write any value: clears the counter, and 9873 // cause channel to re-initiate DREQ handshake. 9874 #define DMA_CH14_DBG_CTDREQ_OFFSET _u(0x00000b80) 9875 #define DMA_CH14_DBG_CTDREQ_BITS _u(0x0000003f) 9876 #define DMA_CH14_DBG_CTDREQ_RESET _u(0x00000000) 9877 #define DMA_CH14_DBG_CTDREQ_MSB _u(5) 9878 #define DMA_CH14_DBG_CTDREQ_LSB _u(0) 9879 #define DMA_CH14_DBG_CTDREQ_ACCESS "WC" 9880 // ============================================================================= 9881 // Register : DMA_CH14_DBG_TCR 9882 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9883 // of the next transfer 9884 #define DMA_CH14_DBG_TCR_OFFSET _u(0x00000b84) 9885 #define DMA_CH14_DBG_TCR_BITS _u(0xffffffff) 9886 #define DMA_CH14_DBG_TCR_RESET _u(0x00000000) 9887 #define DMA_CH14_DBG_TCR_MSB _u(31) 9888 #define DMA_CH14_DBG_TCR_LSB _u(0) 9889 #define DMA_CH14_DBG_TCR_ACCESS "RO" 9890 // ============================================================================= 9891 // Register : DMA_CH15_DBG_CTDREQ 9892 // Description : Read: get channel DREQ counter (i.e. how many accesses the DMA 9893 // expects it can perform on the peripheral without 9894 // overflow/underflow. Write any value: clears the counter, and 9895 // cause channel to re-initiate DREQ handshake. 9896 #define DMA_CH15_DBG_CTDREQ_OFFSET _u(0x00000bc0) 9897 #define DMA_CH15_DBG_CTDREQ_BITS _u(0x0000003f) 9898 #define DMA_CH15_DBG_CTDREQ_RESET _u(0x00000000) 9899 #define DMA_CH15_DBG_CTDREQ_MSB _u(5) 9900 #define DMA_CH15_DBG_CTDREQ_LSB _u(0) 9901 #define DMA_CH15_DBG_CTDREQ_ACCESS "WC" 9902 // ============================================================================= 9903 // Register : DMA_CH15_DBG_TCR 9904 // Description : Read to get channel TRANS_COUNT reload value, i.e. the length 9905 // of the next transfer 9906 #define DMA_CH15_DBG_TCR_OFFSET _u(0x00000bc4) 9907 #define DMA_CH15_DBG_TCR_BITS _u(0xffffffff) 9908 #define DMA_CH15_DBG_TCR_RESET _u(0x00000000) 9909 #define DMA_CH15_DBG_TCR_MSB _u(31) 9910 #define DMA_CH15_DBG_TCR_LSB _u(0) 9911 #define DMA_CH15_DBG_TCR_ACCESS "RO" 9912 // ============================================================================= 9913 #endif // _HARDWARE_REGS_DMA_H 9914 9915