// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT/** * Copyright (c) 2024 Raspberry Pi Ltd. * * SPDX-License-Identifier: BSD-3-Clause *//* ... */// =============================================================================// Register block : DMA// Version : 1// Bus type : apb// Description : DMA with separate read and write masters// =============================================================================#ifndef_HARDWARE_REGS_DMA_H#define_HARDWARE_REGS_DMA_H// =============================================================================// Register : DMA_CH0_READ_ADDR// Description : DMA Channel 0 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH0_READ_ADDR_OFFSET_u(0x00000000)#defineDMA_CH0_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH0_READ_ADDR_MSB_u(31)#defineDMA_CH0_READ_ADDR_LSB_u(0)#defineDMA_CH0_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_WRITE_ADDR// Description : DMA Channel 0 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH0_WRITE_ADDR_OFFSET_u(0x00000004)#defineDMA_CH0_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH0_WRITE_ADDR_MSB_u(31)#defineDMA_CH0_WRITE_ADDR_LSB_u(0)#defineDMA_CH0_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_TRANS_COUNT// Description : DMA Channel 0 Transfer Count#defineDMA_CH0_TRANS_COUNT_OFFSET_u(0x00000008)#defineDMA_CH0_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH0_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH0_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH0_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH0_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH0_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH0_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH0_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH0_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH0_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH0_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH0_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH0_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH0_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH0_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH0_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH0_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH0_CTRL_TRIG// Description : DMA Channel 0 Control and Status#defineDMA_CH0_CTRL_TRIG_OFFSET_u(0x0000000c)#defineDMA_CH0_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH0_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH0_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH0_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH0_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH0_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH0_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH0_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH0_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH0_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH0_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH0_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH0_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH0_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH0_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH0_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH0_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH0_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH0_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH0_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH0_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH0_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH0_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH0_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH0_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH0_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH0_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH0_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH0_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH0_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH0_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH0_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH0_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH0_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH0_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH0_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH0_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH0_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH0_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH0_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH0_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH0_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH0_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH0_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH0_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH0_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH0_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH0_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH0_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH0_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH0_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH0_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH0_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH0_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH0_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH0_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH0_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH0_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH0_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH0_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH0_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH0_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH0_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH0_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL1_CTRL// Description : Alias for channel 0 CTRL register#defineDMA_CH0_AL1_CTRL_OFFSET_u(0x00000010)#defineDMA_CH0_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH0_AL1_CTRL_RESET"-"#defineDMA_CH0_AL1_CTRL_MSB_u(31)#defineDMA_CH0_AL1_CTRL_LSB_u(0)#defineDMA_CH0_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL1_READ_ADDR// Description : Alias for channel 0 READ_ADDR register#defineDMA_CH0_AL1_READ_ADDR_OFFSET_u(0x00000014)#defineDMA_CH0_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_AL1_READ_ADDR_RESET"-"#defineDMA_CH0_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH0_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH0_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL1_WRITE_ADDR// Description : Alias for channel 0 WRITE_ADDR register#defineDMA_CH0_AL1_WRITE_ADDR_OFFSET_u(0x00000018)#defineDMA_CH0_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH0_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH0_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH0_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 0 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000001c)#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH0_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL2_CTRL// Description : Alias for channel 0 CTRL register#defineDMA_CH0_AL2_CTRL_OFFSET_u(0x00000020)#defineDMA_CH0_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH0_AL2_CTRL_RESET"-"#defineDMA_CH0_AL2_CTRL_MSB_u(31)#defineDMA_CH0_AL2_CTRL_LSB_u(0)#defineDMA_CH0_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL2_TRANS_COUNT// Description : Alias for channel 0 TRANS_COUNT register#defineDMA_CH0_AL2_TRANS_COUNT_OFFSET_u(0x00000024)#defineDMA_CH0_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH0_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH0_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH0_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH0_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL2_READ_ADDR// Description : Alias for channel 0 READ_ADDR register#defineDMA_CH0_AL2_READ_ADDR_OFFSET_u(0x00000028)#defineDMA_CH0_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_AL2_READ_ADDR_RESET"-"#defineDMA_CH0_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH0_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH0_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 0 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000002c)#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH0_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL3_CTRL// Description : Alias for channel 0 CTRL register#defineDMA_CH0_AL3_CTRL_OFFSET_u(0x00000030)#defineDMA_CH0_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH0_AL3_CTRL_RESET"-"#defineDMA_CH0_AL3_CTRL_MSB_u(31)#defineDMA_CH0_AL3_CTRL_LSB_u(0)#defineDMA_CH0_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL3_WRITE_ADDR// Description : Alias for channel 0 WRITE_ADDR register#defineDMA_CH0_AL3_WRITE_ADDR_OFFSET_u(0x00000034)#defineDMA_CH0_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH0_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH0_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH0_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH0_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL3_TRANS_COUNT// Description : Alias for channel 0 TRANS_COUNT register#defineDMA_CH0_AL3_TRANS_COUNT_OFFSET_u(0x00000038)#defineDMA_CH0_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH0_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH0_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH0_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH0_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH0_AL3_READ_ADDR_TRIG// Description : Alias for channel 0 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH0_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000003c)#defineDMA_CH0_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH0_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH0_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH0_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH0_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH1_READ_ADDR// Description : DMA Channel 1 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH1_READ_ADDR_OFFSET_u(0x00000040)#defineDMA_CH1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH1_READ_ADDR_MSB_u(31)#defineDMA_CH1_READ_ADDR_LSB_u(0)#defineDMA_CH1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_WRITE_ADDR// Description : DMA Channel 1 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH1_WRITE_ADDR_OFFSET_u(0x00000044)#defineDMA_CH1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH1_WRITE_ADDR_MSB_u(31)#defineDMA_CH1_WRITE_ADDR_LSB_u(0)#defineDMA_CH1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_TRANS_COUNT// Description : DMA Channel 1 Transfer Count#defineDMA_CH1_TRANS_COUNT_OFFSET_u(0x00000048)#defineDMA_CH1_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH1_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH1_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH1_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH1_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH1_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH1_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH1_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH1_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH1_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH1_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH1_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH1_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH1_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH1_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH1_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH1_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH1_CTRL_TRIG// Description : DMA Channel 1 Control and Status#defineDMA_CH1_CTRL_TRIG_OFFSET_u(0x0000004c)#defineDMA_CH1_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH1_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH1_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH1_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH1_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH1_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH1_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH1_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH1_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH1_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH1_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH1_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH1_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH1_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH1_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH1_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH1_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH1_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH1_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH1_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH1_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH1_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH1_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH1_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH1_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH1_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH1_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH1_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH1_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH1_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH1_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH1_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH1_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH1_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH1_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH1_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH1_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH1_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH1_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH1_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH1_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH1_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH1_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH1_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH1_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH1_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH1_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH1_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH1_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH1_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH1_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH1_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH1_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH1_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH1_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH1_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH1_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH1_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH1_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH1_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH1_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH1_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH1_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH1_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL1_CTRL// Description : Alias for channel 1 CTRL register#defineDMA_CH1_AL1_CTRL_OFFSET_u(0x00000050)#defineDMA_CH1_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH1_AL1_CTRL_RESET"-"#defineDMA_CH1_AL1_CTRL_MSB_u(31)#defineDMA_CH1_AL1_CTRL_LSB_u(0)#defineDMA_CH1_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL1_READ_ADDR// Description : Alias for channel 1 READ_ADDR register#defineDMA_CH1_AL1_READ_ADDR_OFFSET_u(0x00000054)#defineDMA_CH1_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_AL1_READ_ADDR_RESET"-"#defineDMA_CH1_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH1_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH1_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL1_WRITE_ADDR// Description : Alias for channel 1 WRITE_ADDR register#defineDMA_CH1_AL1_WRITE_ADDR_OFFSET_u(0x00000058)#defineDMA_CH1_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH1_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH1_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH1_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 1 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000005c)#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH1_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL2_CTRL// Description : Alias for channel 1 CTRL register#defineDMA_CH1_AL2_CTRL_OFFSET_u(0x00000060)#defineDMA_CH1_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH1_AL2_CTRL_RESET"-"#defineDMA_CH1_AL2_CTRL_MSB_u(31)#defineDMA_CH1_AL2_CTRL_LSB_u(0)#defineDMA_CH1_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL2_TRANS_COUNT// Description : Alias for channel 1 TRANS_COUNT register#defineDMA_CH1_AL2_TRANS_COUNT_OFFSET_u(0x00000064)#defineDMA_CH1_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH1_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH1_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH1_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH1_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL2_READ_ADDR// Description : Alias for channel 1 READ_ADDR register#defineDMA_CH1_AL2_READ_ADDR_OFFSET_u(0x00000068)#defineDMA_CH1_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_AL2_READ_ADDR_RESET"-"#defineDMA_CH1_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH1_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH1_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 1 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000006c)#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH1_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL3_CTRL// Description : Alias for channel 1 CTRL register#defineDMA_CH1_AL3_CTRL_OFFSET_u(0x00000070)#defineDMA_CH1_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH1_AL3_CTRL_RESET"-"#defineDMA_CH1_AL3_CTRL_MSB_u(31)#defineDMA_CH1_AL3_CTRL_LSB_u(0)#defineDMA_CH1_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL3_WRITE_ADDR// Description : Alias for channel 1 WRITE_ADDR register#defineDMA_CH1_AL3_WRITE_ADDR_OFFSET_u(0x00000074)#defineDMA_CH1_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH1_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH1_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH1_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH1_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL3_TRANS_COUNT// Description : Alias for channel 1 TRANS_COUNT register#defineDMA_CH1_AL3_TRANS_COUNT_OFFSET_u(0x00000078)#defineDMA_CH1_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH1_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH1_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH1_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH1_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH1_AL3_READ_ADDR_TRIG// Description : Alias for channel 1 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH1_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000007c)#defineDMA_CH1_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH1_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH1_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH1_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH1_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH2_READ_ADDR// Description : DMA Channel 2 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH2_READ_ADDR_OFFSET_u(0x00000080)#defineDMA_CH2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH2_READ_ADDR_MSB_u(31)#defineDMA_CH2_READ_ADDR_LSB_u(0)#defineDMA_CH2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_WRITE_ADDR// Description : DMA Channel 2 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH2_WRITE_ADDR_OFFSET_u(0x00000084)#defineDMA_CH2_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH2_WRITE_ADDR_MSB_u(31)#defineDMA_CH2_WRITE_ADDR_LSB_u(0)#defineDMA_CH2_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_TRANS_COUNT// Description : DMA Channel 2 Transfer Count#defineDMA_CH2_TRANS_COUNT_OFFSET_u(0x00000088)#defineDMA_CH2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH2_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH2_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH2_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH2_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH2_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH2_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH2_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH2_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH2_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH2_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH2_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH2_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH2_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH2_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH2_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH2_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH2_CTRL_TRIG// Description : DMA Channel 2 Control and Status#defineDMA_CH2_CTRL_TRIG_OFFSET_u(0x0000008c)#defineDMA_CH2_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH2_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH2_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH2_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH2_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH2_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH2_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH2_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH2_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH2_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH2_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH2_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH2_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH2_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH2_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH2_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH2_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH2_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH2_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH2_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH2_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH2_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH2_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH2_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH2_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH2_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH2_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH2_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH2_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH2_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH2_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH2_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH2_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH2_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH2_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH2_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH2_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH2_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH2_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH2_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH2_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH2_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH2_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH2_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH2_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH2_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH2_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH2_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH2_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH2_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH2_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH2_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH2_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH2_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH2_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH2_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH2_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH2_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH2_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH2_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH2_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH2_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH2_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH2_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL1_CTRL// Description : Alias for channel 2 CTRL register#defineDMA_CH2_AL1_CTRL_OFFSET_u(0x00000090)#defineDMA_CH2_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH2_AL1_CTRL_RESET"-"#defineDMA_CH2_AL1_CTRL_MSB_u(31)#defineDMA_CH2_AL1_CTRL_LSB_u(0)#defineDMA_CH2_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL1_READ_ADDR// Description : Alias for channel 2 READ_ADDR register#defineDMA_CH2_AL1_READ_ADDR_OFFSET_u(0x00000094)#defineDMA_CH2_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_AL1_READ_ADDR_RESET"-"#defineDMA_CH2_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH2_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH2_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL1_WRITE_ADDR// Description : Alias for channel 2 WRITE_ADDR register#defineDMA_CH2_AL1_WRITE_ADDR_OFFSET_u(0x00000098)#defineDMA_CH2_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH2_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH2_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH2_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 2 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000009c)#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH2_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL2_CTRL// Description : Alias for channel 2 CTRL register#defineDMA_CH2_AL2_CTRL_OFFSET_u(0x000000a0)#defineDMA_CH2_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH2_AL2_CTRL_RESET"-"#defineDMA_CH2_AL2_CTRL_MSB_u(31)#defineDMA_CH2_AL2_CTRL_LSB_u(0)#defineDMA_CH2_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL2_TRANS_COUNT// Description : Alias for channel 2 TRANS_COUNT register#defineDMA_CH2_AL2_TRANS_COUNT_OFFSET_u(0x000000a4)#defineDMA_CH2_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH2_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH2_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH2_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH2_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL2_READ_ADDR// Description : Alias for channel 2 READ_ADDR register#defineDMA_CH2_AL2_READ_ADDR_OFFSET_u(0x000000a8)#defineDMA_CH2_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_AL2_READ_ADDR_RESET"-"#defineDMA_CH2_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH2_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH2_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 2 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000000ac)#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH2_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL3_CTRL// Description : Alias for channel 2 CTRL register#defineDMA_CH2_AL3_CTRL_OFFSET_u(0x000000b0)#defineDMA_CH2_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH2_AL3_CTRL_RESET"-"#defineDMA_CH2_AL3_CTRL_MSB_u(31)#defineDMA_CH2_AL3_CTRL_LSB_u(0)#defineDMA_CH2_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL3_WRITE_ADDR// Description : Alias for channel 2 WRITE_ADDR register#defineDMA_CH2_AL3_WRITE_ADDR_OFFSET_u(0x000000b4)#defineDMA_CH2_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH2_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH2_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH2_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH2_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL3_TRANS_COUNT// Description : Alias for channel 2 TRANS_COUNT register#defineDMA_CH2_AL3_TRANS_COUNT_OFFSET_u(0x000000b8)#defineDMA_CH2_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH2_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH2_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH2_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH2_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH2_AL3_READ_ADDR_TRIG// Description : Alias for channel 2 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH2_AL3_READ_ADDR_TRIG_OFFSET_u(0x000000bc)#defineDMA_CH2_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH2_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH2_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH2_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH2_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH3_READ_ADDR// Description : DMA Channel 3 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH3_READ_ADDR_OFFSET_u(0x000000c0)#defineDMA_CH3_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH3_READ_ADDR_MSB_u(31)#defineDMA_CH3_READ_ADDR_LSB_u(0)#defineDMA_CH3_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_WRITE_ADDR// Description : DMA Channel 3 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH3_WRITE_ADDR_OFFSET_u(0x000000c4)#defineDMA_CH3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH3_WRITE_ADDR_MSB_u(31)#defineDMA_CH3_WRITE_ADDR_LSB_u(0)#defineDMA_CH3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_TRANS_COUNT// Description : DMA Channel 3 Transfer Count#defineDMA_CH3_TRANS_COUNT_OFFSET_u(0x000000c8)#defineDMA_CH3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH3_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH3_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH3_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH3_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH3_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH3_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH3_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH3_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH3_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH3_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH3_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH3_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH3_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH3_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH3_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH3_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH3_CTRL_TRIG// Description : DMA Channel 3 Control and Status#defineDMA_CH3_CTRL_TRIG_OFFSET_u(0x000000cc)#defineDMA_CH3_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH3_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH3_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH3_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH3_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH3_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH3_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH3_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH3_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH3_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH3_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH3_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH3_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH3_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH3_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH3_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH3_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH3_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH3_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH3_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH3_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH3_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH3_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH3_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH3_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH3_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH3_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH3_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH3_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH3_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH3_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH3_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH3_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH3_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH3_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH3_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH3_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH3_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH3_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH3_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH3_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH3_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH3_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH3_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH3_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH3_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH3_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH3_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH3_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH3_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH3_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH3_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH3_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH3_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH3_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH3_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH3_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH3_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH3_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH3_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH3_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH3_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH3_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH3_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL1_CTRL// Description : Alias for channel 3 CTRL register#defineDMA_CH3_AL1_CTRL_OFFSET_u(0x000000d0)#defineDMA_CH3_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH3_AL1_CTRL_RESET"-"#defineDMA_CH3_AL1_CTRL_MSB_u(31)#defineDMA_CH3_AL1_CTRL_LSB_u(0)#defineDMA_CH3_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL1_READ_ADDR// Description : Alias for channel 3 READ_ADDR register#defineDMA_CH3_AL1_READ_ADDR_OFFSET_u(0x000000d4)#defineDMA_CH3_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_AL1_READ_ADDR_RESET"-"#defineDMA_CH3_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH3_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH3_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL1_WRITE_ADDR// Description : Alias for channel 3 WRITE_ADDR register#defineDMA_CH3_AL1_WRITE_ADDR_OFFSET_u(0x000000d8)#defineDMA_CH3_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH3_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH3_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH3_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 3 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x000000dc)#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH3_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL2_CTRL// Description : Alias for channel 3 CTRL register#defineDMA_CH3_AL2_CTRL_OFFSET_u(0x000000e0)#defineDMA_CH3_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH3_AL2_CTRL_RESET"-"#defineDMA_CH3_AL2_CTRL_MSB_u(31)#defineDMA_CH3_AL2_CTRL_LSB_u(0)#defineDMA_CH3_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL2_TRANS_COUNT// Description : Alias for channel 3 TRANS_COUNT register#defineDMA_CH3_AL2_TRANS_COUNT_OFFSET_u(0x000000e4)#defineDMA_CH3_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH3_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH3_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH3_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH3_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL2_READ_ADDR// Description : Alias for channel 3 READ_ADDR register#defineDMA_CH3_AL2_READ_ADDR_OFFSET_u(0x000000e8)#defineDMA_CH3_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_AL2_READ_ADDR_RESET"-"#defineDMA_CH3_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH3_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH3_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 3 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000000ec)#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH3_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL3_CTRL// Description : Alias for channel 3 CTRL register#defineDMA_CH3_AL3_CTRL_OFFSET_u(0x000000f0)#defineDMA_CH3_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH3_AL3_CTRL_RESET"-"#defineDMA_CH3_AL3_CTRL_MSB_u(31)#defineDMA_CH3_AL3_CTRL_LSB_u(0)#defineDMA_CH3_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL3_WRITE_ADDR// Description : Alias for channel 3 WRITE_ADDR register#defineDMA_CH3_AL3_WRITE_ADDR_OFFSET_u(0x000000f4)#defineDMA_CH3_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH3_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH3_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH3_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH3_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL3_TRANS_COUNT// Description : Alias for channel 3 TRANS_COUNT register#defineDMA_CH3_AL3_TRANS_COUNT_OFFSET_u(0x000000f8)#defineDMA_CH3_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH3_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH3_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH3_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH3_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH3_AL3_READ_ADDR_TRIG// Description : Alias for channel 3 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH3_AL3_READ_ADDR_TRIG_OFFSET_u(0x000000fc)#defineDMA_CH3_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH3_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH3_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH3_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH3_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH4_READ_ADDR// Description : DMA Channel 4 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH4_READ_ADDR_OFFSET_u(0x00000100)#defineDMA_CH4_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH4_READ_ADDR_MSB_u(31)#defineDMA_CH4_READ_ADDR_LSB_u(0)#defineDMA_CH4_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_WRITE_ADDR// Description : DMA Channel 4 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH4_WRITE_ADDR_OFFSET_u(0x00000104)#defineDMA_CH4_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH4_WRITE_ADDR_MSB_u(31)#defineDMA_CH4_WRITE_ADDR_LSB_u(0)#defineDMA_CH4_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_TRANS_COUNT// Description : DMA Channel 4 Transfer Count#defineDMA_CH4_TRANS_COUNT_OFFSET_u(0x00000108)#defineDMA_CH4_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH4_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH4_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH4_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH4_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH4_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH4_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH4_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH4_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH4_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH4_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH4_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH4_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH4_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH4_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH4_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH4_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH4_CTRL_TRIG// Description : DMA Channel 4 Control and Status#defineDMA_CH4_CTRL_TRIG_OFFSET_u(0x0000010c)#defineDMA_CH4_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH4_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH4_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH4_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH4_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH4_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH4_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH4_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH4_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH4_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH4_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH4_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH4_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH4_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH4_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH4_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH4_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH4_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH4_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH4_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH4_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH4_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH4_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH4_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH4_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH4_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH4_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH4_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH4_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH4_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH4_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH4_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH4_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH4_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH4_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH4_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH4_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH4_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH4_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH4_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH4_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH4_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH4_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH4_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH4_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH4_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH4_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH4_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH4_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH4_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH4_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH4_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH4_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH4_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH4_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH4_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH4_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH4_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH4_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH4_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH4_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH4_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH4_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH4_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL1_CTRL// Description : Alias for channel 4 CTRL register#defineDMA_CH4_AL1_CTRL_OFFSET_u(0x00000110)#defineDMA_CH4_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH4_AL1_CTRL_RESET"-"#defineDMA_CH4_AL1_CTRL_MSB_u(31)#defineDMA_CH4_AL1_CTRL_LSB_u(0)#defineDMA_CH4_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL1_READ_ADDR// Description : Alias for channel 4 READ_ADDR register#defineDMA_CH4_AL1_READ_ADDR_OFFSET_u(0x00000114)#defineDMA_CH4_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_AL1_READ_ADDR_RESET"-"#defineDMA_CH4_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH4_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH4_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL1_WRITE_ADDR// Description : Alias for channel 4 WRITE_ADDR register#defineDMA_CH4_AL1_WRITE_ADDR_OFFSET_u(0x00000118)#defineDMA_CH4_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH4_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH4_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH4_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 4 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000011c)#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH4_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL2_CTRL// Description : Alias for channel 4 CTRL register#defineDMA_CH4_AL2_CTRL_OFFSET_u(0x00000120)#defineDMA_CH4_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH4_AL2_CTRL_RESET"-"#defineDMA_CH4_AL2_CTRL_MSB_u(31)#defineDMA_CH4_AL2_CTRL_LSB_u(0)#defineDMA_CH4_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL2_TRANS_COUNT// Description : Alias for channel 4 TRANS_COUNT register#defineDMA_CH4_AL2_TRANS_COUNT_OFFSET_u(0x00000124)#defineDMA_CH4_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH4_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH4_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH4_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH4_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL2_READ_ADDR// Description : Alias for channel 4 READ_ADDR register#defineDMA_CH4_AL2_READ_ADDR_OFFSET_u(0x00000128)#defineDMA_CH4_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_AL2_READ_ADDR_RESET"-"#defineDMA_CH4_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH4_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH4_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 4 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000012c)#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH4_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL3_CTRL// Description : Alias for channel 4 CTRL register#defineDMA_CH4_AL3_CTRL_OFFSET_u(0x00000130)#defineDMA_CH4_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH4_AL3_CTRL_RESET"-"#defineDMA_CH4_AL3_CTRL_MSB_u(31)#defineDMA_CH4_AL3_CTRL_LSB_u(0)#defineDMA_CH4_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL3_WRITE_ADDR// Description : Alias for channel 4 WRITE_ADDR register#defineDMA_CH4_AL3_WRITE_ADDR_OFFSET_u(0x00000134)#defineDMA_CH4_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH4_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH4_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH4_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH4_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL3_TRANS_COUNT// Description : Alias for channel 4 TRANS_COUNT register#defineDMA_CH4_AL3_TRANS_COUNT_OFFSET_u(0x00000138)#defineDMA_CH4_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH4_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH4_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH4_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH4_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH4_AL3_READ_ADDR_TRIG// Description : Alias for channel 4 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH4_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000013c)#defineDMA_CH4_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH4_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH4_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH4_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH4_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH5_READ_ADDR// Description : DMA Channel 5 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH5_READ_ADDR_OFFSET_u(0x00000140)#defineDMA_CH5_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH5_READ_ADDR_MSB_u(31)#defineDMA_CH5_READ_ADDR_LSB_u(0)#defineDMA_CH5_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_WRITE_ADDR// Description : DMA Channel 5 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH5_WRITE_ADDR_OFFSET_u(0x00000144)#defineDMA_CH5_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH5_WRITE_ADDR_MSB_u(31)#defineDMA_CH5_WRITE_ADDR_LSB_u(0)#defineDMA_CH5_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_TRANS_COUNT// Description : DMA Channel 5 Transfer Count#defineDMA_CH5_TRANS_COUNT_OFFSET_u(0x00000148)#defineDMA_CH5_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH5_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH5_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH5_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH5_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH5_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH5_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH5_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH5_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH5_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH5_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH5_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH5_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH5_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH5_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH5_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH5_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH5_CTRL_TRIG// Description : DMA Channel 5 Control and Status#defineDMA_CH5_CTRL_TRIG_OFFSET_u(0x0000014c)#defineDMA_CH5_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH5_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH5_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH5_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH5_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH5_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH5_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH5_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH5_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH5_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH5_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH5_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH5_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH5_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH5_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH5_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH5_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH5_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH5_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH5_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH5_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH5_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH5_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH5_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH5_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH5_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH5_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH5_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH5_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH5_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH5_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH5_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH5_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH5_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH5_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH5_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH5_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH5_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH5_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH5_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH5_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH5_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH5_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH5_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH5_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH5_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH5_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH5_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH5_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH5_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH5_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH5_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH5_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH5_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH5_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH5_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH5_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH5_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH5_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH5_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH5_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH5_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH5_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH5_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL1_CTRL// Description : Alias for channel 5 CTRL register#defineDMA_CH5_AL1_CTRL_OFFSET_u(0x00000150)#defineDMA_CH5_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH5_AL1_CTRL_RESET"-"#defineDMA_CH5_AL1_CTRL_MSB_u(31)#defineDMA_CH5_AL1_CTRL_LSB_u(0)#defineDMA_CH5_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL1_READ_ADDR// Description : Alias for channel 5 READ_ADDR register#defineDMA_CH5_AL1_READ_ADDR_OFFSET_u(0x00000154)#defineDMA_CH5_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_AL1_READ_ADDR_RESET"-"#defineDMA_CH5_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH5_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH5_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL1_WRITE_ADDR// Description : Alias for channel 5 WRITE_ADDR register#defineDMA_CH5_AL1_WRITE_ADDR_OFFSET_u(0x00000158)#defineDMA_CH5_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH5_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH5_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH5_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 5 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000015c)#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH5_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL2_CTRL// Description : Alias for channel 5 CTRL register#defineDMA_CH5_AL2_CTRL_OFFSET_u(0x00000160)#defineDMA_CH5_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH5_AL2_CTRL_RESET"-"#defineDMA_CH5_AL2_CTRL_MSB_u(31)#defineDMA_CH5_AL2_CTRL_LSB_u(0)#defineDMA_CH5_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL2_TRANS_COUNT// Description : Alias for channel 5 TRANS_COUNT register#defineDMA_CH5_AL2_TRANS_COUNT_OFFSET_u(0x00000164)#defineDMA_CH5_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH5_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH5_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH5_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH5_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL2_READ_ADDR// Description : Alias for channel 5 READ_ADDR register#defineDMA_CH5_AL2_READ_ADDR_OFFSET_u(0x00000168)#defineDMA_CH5_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_AL2_READ_ADDR_RESET"-"#defineDMA_CH5_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH5_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH5_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 5 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000016c)#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH5_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL3_CTRL// Description : Alias for channel 5 CTRL register#defineDMA_CH5_AL3_CTRL_OFFSET_u(0x00000170)#defineDMA_CH5_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH5_AL3_CTRL_RESET"-"#defineDMA_CH5_AL3_CTRL_MSB_u(31)#defineDMA_CH5_AL3_CTRL_LSB_u(0)#defineDMA_CH5_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL3_WRITE_ADDR// Description : Alias for channel 5 WRITE_ADDR register#defineDMA_CH5_AL3_WRITE_ADDR_OFFSET_u(0x00000174)#defineDMA_CH5_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH5_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH5_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH5_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH5_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL3_TRANS_COUNT// Description : Alias for channel 5 TRANS_COUNT register#defineDMA_CH5_AL3_TRANS_COUNT_OFFSET_u(0x00000178)#defineDMA_CH5_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH5_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH5_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH5_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH5_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH5_AL3_READ_ADDR_TRIG// Description : Alias for channel 5 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH5_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000017c)#defineDMA_CH5_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH5_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH5_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH5_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH5_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH6_READ_ADDR// Description : DMA Channel 6 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH6_READ_ADDR_OFFSET_u(0x00000180)#defineDMA_CH6_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH6_READ_ADDR_MSB_u(31)#defineDMA_CH6_READ_ADDR_LSB_u(0)#defineDMA_CH6_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_WRITE_ADDR// Description : DMA Channel 6 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH6_WRITE_ADDR_OFFSET_u(0x00000184)#defineDMA_CH6_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH6_WRITE_ADDR_MSB_u(31)#defineDMA_CH6_WRITE_ADDR_LSB_u(0)#defineDMA_CH6_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_TRANS_COUNT// Description : DMA Channel 6 Transfer Count#defineDMA_CH6_TRANS_COUNT_OFFSET_u(0x00000188)#defineDMA_CH6_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH6_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH6_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH6_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH6_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH6_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH6_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH6_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH6_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH6_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH6_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH6_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH6_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH6_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH6_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH6_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH6_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH6_CTRL_TRIG// Description : DMA Channel 6 Control and Status#defineDMA_CH6_CTRL_TRIG_OFFSET_u(0x0000018c)#defineDMA_CH6_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH6_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH6_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH6_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH6_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH6_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH6_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH6_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH6_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH6_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH6_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH6_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH6_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH6_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH6_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH6_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH6_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH6_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH6_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH6_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH6_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH6_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH6_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH6_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH6_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH6_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH6_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH6_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH6_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH6_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH6_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH6_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH6_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH6_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH6_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH6_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH6_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH6_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH6_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH6_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH6_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH6_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH6_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH6_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH6_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH6_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH6_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH6_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH6_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH6_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH6_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH6_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH6_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH6_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH6_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH6_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH6_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH6_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH6_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH6_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH6_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH6_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH6_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH6_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL1_CTRL// Description : Alias for channel 6 CTRL register#defineDMA_CH6_AL1_CTRL_OFFSET_u(0x00000190)#defineDMA_CH6_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH6_AL1_CTRL_RESET"-"#defineDMA_CH6_AL1_CTRL_MSB_u(31)#defineDMA_CH6_AL1_CTRL_LSB_u(0)#defineDMA_CH6_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL1_READ_ADDR// Description : Alias for channel 6 READ_ADDR register#defineDMA_CH6_AL1_READ_ADDR_OFFSET_u(0x00000194)#defineDMA_CH6_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_AL1_READ_ADDR_RESET"-"#defineDMA_CH6_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH6_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH6_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL1_WRITE_ADDR// Description : Alias for channel 6 WRITE_ADDR register#defineDMA_CH6_AL1_WRITE_ADDR_OFFSET_u(0x00000198)#defineDMA_CH6_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH6_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH6_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH6_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 6 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000019c)#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH6_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL2_CTRL// Description : Alias for channel 6 CTRL register#defineDMA_CH6_AL2_CTRL_OFFSET_u(0x000001a0)#defineDMA_CH6_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH6_AL2_CTRL_RESET"-"#defineDMA_CH6_AL2_CTRL_MSB_u(31)#defineDMA_CH6_AL2_CTRL_LSB_u(0)#defineDMA_CH6_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL2_TRANS_COUNT// Description : Alias for channel 6 TRANS_COUNT register#defineDMA_CH6_AL2_TRANS_COUNT_OFFSET_u(0x000001a4)#defineDMA_CH6_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH6_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH6_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH6_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH6_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL2_READ_ADDR// Description : Alias for channel 6 READ_ADDR register#defineDMA_CH6_AL2_READ_ADDR_OFFSET_u(0x000001a8)#defineDMA_CH6_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_AL2_READ_ADDR_RESET"-"#defineDMA_CH6_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH6_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH6_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 6 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000001ac)#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH6_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL3_CTRL// Description : Alias for channel 6 CTRL register#defineDMA_CH6_AL3_CTRL_OFFSET_u(0x000001b0)#defineDMA_CH6_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH6_AL3_CTRL_RESET"-"#defineDMA_CH6_AL3_CTRL_MSB_u(31)#defineDMA_CH6_AL3_CTRL_LSB_u(0)#defineDMA_CH6_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL3_WRITE_ADDR// Description : Alias for channel 6 WRITE_ADDR register#defineDMA_CH6_AL3_WRITE_ADDR_OFFSET_u(0x000001b4)#defineDMA_CH6_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH6_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH6_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH6_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH6_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL3_TRANS_COUNT// Description : Alias for channel 6 TRANS_COUNT register#defineDMA_CH6_AL3_TRANS_COUNT_OFFSET_u(0x000001b8)#defineDMA_CH6_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH6_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH6_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH6_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH6_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH6_AL3_READ_ADDR_TRIG// Description : Alias for channel 6 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH6_AL3_READ_ADDR_TRIG_OFFSET_u(0x000001bc)#defineDMA_CH6_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH6_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH6_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH6_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH6_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH7_READ_ADDR// Description : DMA Channel 7 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH7_READ_ADDR_OFFSET_u(0x000001c0)#defineDMA_CH7_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH7_READ_ADDR_MSB_u(31)#defineDMA_CH7_READ_ADDR_LSB_u(0)#defineDMA_CH7_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_WRITE_ADDR// Description : DMA Channel 7 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH7_WRITE_ADDR_OFFSET_u(0x000001c4)#defineDMA_CH7_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH7_WRITE_ADDR_MSB_u(31)#defineDMA_CH7_WRITE_ADDR_LSB_u(0)#defineDMA_CH7_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_TRANS_COUNT// Description : DMA Channel 7 Transfer Count#defineDMA_CH7_TRANS_COUNT_OFFSET_u(0x000001c8)#defineDMA_CH7_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH7_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH7_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH7_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH7_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH7_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH7_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH7_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH7_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH7_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH7_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH7_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH7_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH7_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH7_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH7_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH7_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH7_CTRL_TRIG// Description : DMA Channel 7 Control and Status#defineDMA_CH7_CTRL_TRIG_OFFSET_u(0x000001cc)#defineDMA_CH7_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH7_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH7_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH7_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH7_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH7_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH7_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH7_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH7_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH7_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH7_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH7_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH7_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH7_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH7_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH7_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH7_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH7_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH7_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH7_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH7_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH7_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH7_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH7_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH7_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH7_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH7_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH7_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH7_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH7_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH7_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH7_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH7_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH7_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH7_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH7_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH7_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH7_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH7_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH7_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH7_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH7_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH7_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH7_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH7_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH7_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH7_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH7_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH7_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH7_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH7_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH7_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH7_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH7_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH7_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH7_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH7_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH7_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH7_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH7_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH7_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH7_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH7_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH7_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL1_CTRL// Description : Alias for channel 7 CTRL register#defineDMA_CH7_AL1_CTRL_OFFSET_u(0x000001d0)#defineDMA_CH7_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH7_AL1_CTRL_RESET"-"#defineDMA_CH7_AL1_CTRL_MSB_u(31)#defineDMA_CH7_AL1_CTRL_LSB_u(0)#defineDMA_CH7_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL1_READ_ADDR// Description : Alias for channel 7 READ_ADDR register#defineDMA_CH7_AL1_READ_ADDR_OFFSET_u(0x000001d4)#defineDMA_CH7_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_AL1_READ_ADDR_RESET"-"#defineDMA_CH7_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH7_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH7_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL1_WRITE_ADDR// Description : Alias for channel 7 WRITE_ADDR register#defineDMA_CH7_AL1_WRITE_ADDR_OFFSET_u(0x000001d8)#defineDMA_CH7_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH7_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH7_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH7_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 7 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x000001dc)#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH7_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL2_CTRL// Description : Alias for channel 7 CTRL register#defineDMA_CH7_AL2_CTRL_OFFSET_u(0x000001e0)#defineDMA_CH7_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH7_AL2_CTRL_RESET"-"#defineDMA_CH7_AL2_CTRL_MSB_u(31)#defineDMA_CH7_AL2_CTRL_LSB_u(0)#defineDMA_CH7_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL2_TRANS_COUNT// Description : Alias for channel 7 TRANS_COUNT register#defineDMA_CH7_AL2_TRANS_COUNT_OFFSET_u(0x000001e4)#defineDMA_CH7_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH7_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH7_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH7_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH7_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL2_READ_ADDR// Description : Alias for channel 7 READ_ADDR register#defineDMA_CH7_AL2_READ_ADDR_OFFSET_u(0x000001e8)#defineDMA_CH7_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_AL2_READ_ADDR_RESET"-"#defineDMA_CH7_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH7_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH7_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 7 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000001ec)#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH7_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL3_CTRL// Description : Alias for channel 7 CTRL register#defineDMA_CH7_AL3_CTRL_OFFSET_u(0x000001f0)#defineDMA_CH7_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH7_AL3_CTRL_RESET"-"#defineDMA_CH7_AL3_CTRL_MSB_u(31)#defineDMA_CH7_AL3_CTRL_LSB_u(0)#defineDMA_CH7_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL3_WRITE_ADDR// Description : Alias for channel 7 WRITE_ADDR register#defineDMA_CH7_AL3_WRITE_ADDR_OFFSET_u(0x000001f4)#defineDMA_CH7_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH7_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH7_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH7_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH7_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL3_TRANS_COUNT// Description : Alias for channel 7 TRANS_COUNT register#defineDMA_CH7_AL3_TRANS_COUNT_OFFSET_u(0x000001f8)#defineDMA_CH7_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH7_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH7_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH7_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH7_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH7_AL3_READ_ADDR_TRIG// Description : Alias for channel 7 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH7_AL3_READ_ADDR_TRIG_OFFSET_u(0x000001fc)#defineDMA_CH7_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH7_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH7_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH7_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH7_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH8_READ_ADDR// Description : DMA Channel 8 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH8_READ_ADDR_OFFSET_u(0x00000200)#defineDMA_CH8_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH8_READ_ADDR_MSB_u(31)#defineDMA_CH8_READ_ADDR_LSB_u(0)#defineDMA_CH8_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_WRITE_ADDR// Description : DMA Channel 8 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH8_WRITE_ADDR_OFFSET_u(0x00000204)#defineDMA_CH8_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH8_WRITE_ADDR_MSB_u(31)#defineDMA_CH8_WRITE_ADDR_LSB_u(0)#defineDMA_CH8_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_TRANS_COUNT// Description : DMA Channel 8 Transfer Count#defineDMA_CH8_TRANS_COUNT_OFFSET_u(0x00000208)#defineDMA_CH8_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH8_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH8_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH8_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH8_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH8_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH8_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH8_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH8_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH8_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH8_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH8_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH8_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH8_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH8_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH8_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH8_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH8_CTRL_TRIG// Description : DMA Channel 8 Control and Status#defineDMA_CH8_CTRL_TRIG_OFFSET_u(0x0000020c)#defineDMA_CH8_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH8_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH8_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH8_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH8_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH8_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH8_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH8_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH8_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH8_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH8_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH8_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH8_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH8_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH8_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH8_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH8_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH8_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH8_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH8_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH8_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH8_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH8_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH8_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH8_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH8_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH8_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH8_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH8_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH8_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH8_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH8_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH8_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH8_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH8_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH8_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH8_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH8_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH8_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH8_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH8_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH8_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH8_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH8_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH8_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH8_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH8_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH8_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH8_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH8_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH8_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH8_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH8_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH8_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH8_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH8_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH8_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH8_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH8_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH8_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH8_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH8_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH8_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH8_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL1_CTRL// Description : Alias for channel 8 CTRL register#defineDMA_CH8_AL1_CTRL_OFFSET_u(0x00000210)#defineDMA_CH8_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH8_AL1_CTRL_RESET"-"#defineDMA_CH8_AL1_CTRL_MSB_u(31)#defineDMA_CH8_AL1_CTRL_LSB_u(0)#defineDMA_CH8_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL1_READ_ADDR// Description : Alias for channel 8 READ_ADDR register#defineDMA_CH8_AL1_READ_ADDR_OFFSET_u(0x00000214)#defineDMA_CH8_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_AL1_READ_ADDR_RESET"-"#defineDMA_CH8_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH8_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH8_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL1_WRITE_ADDR// Description : Alias for channel 8 WRITE_ADDR register#defineDMA_CH8_AL1_WRITE_ADDR_OFFSET_u(0x00000218)#defineDMA_CH8_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH8_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH8_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH8_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 8 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000021c)#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH8_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL2_CTRL// Description : Alias for channel 8 CTRL register#defineDMA_CH8_AL2_CTRL_OFFSET_u(0x00000220)#defineDMA_CH8_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH8_AL2_CTRL_RESET"-"#defineDMA_CH8_AL2_CTRL_MSB_u(31)#defineDMA_CH8_AL2_CTRL_LSB_u(0)#defineDMA_CH8_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL2_TRANS_COUNT// Description : Alias for channel 8 TRANS_COUNT register#defineDMA_CH8_AL2_TRANS_COUNT_OFFSET_u(0x00000224)#defineDMA_CH8_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH8_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH8_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH8_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH8_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL2_READ_ADDR// Description : Alias for channel 8 READ_ADDR register#defineDMA_CH8_AL2_READ_ADDR_OFFSET_u(0x00000228)#defineDMA_CH8_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_AL2_READ_ADDR_RESET"-"#defineDMA_CH8_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH8_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH8_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 8 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000022c)#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH8_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL3_CTRL// Description : Alias for channel 8 CTRL register#defineDMA_CH8_AL3_CTRL_OFFSET_u(0x00000230)#defineDMA_CH8_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH8_AL3_CTRL_RESET"-"#defineDMA_CH8_AL3_CTRL_MSB_u(31)#defineDMA_CH8_AL3_CTRL_LSB_u(0)#defineDMA_CH8_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL3_WRITE_ADDR// Description : Alias for channel 8 WRITE_ADDR register#defineDMA_CH8_AL3_WRITE_ADDR_OFFSET_u(0x00000234)#defineDMA_CH8_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH8_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH8_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH8_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH8_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL3_TRANS_COUNT// Description : Alias for channel 8 TRANS_COUNT register#defineDMA_CH8_AL3_TRANS_COUNT_OFFSET_u(0x00000238)#defineDMA_CH8_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH8_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH8_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH8_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH8_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH8_AL3_READ_ADDR_TRIG// Description : Alias for channel 8 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH8_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000023c)#defineDMA_CH8_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH8_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH8_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH8_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH8_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH9_READ_ADDR// Description : DMA Channel 9 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH9_READ_ADDR_OFFSET_u(0x00000240)#defineDMA_CH9_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH9_READ_ADDR_MSB_u(31)#defineDMA_CH9_READ_ADDR_LSB_u(0)#defineDMA_CH9_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_WRITE_ADDR// Description : DMA Channel 9 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH9_WRITE_ADDR_OFFSET_u(0x00000244)#defineDMA_CH9_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH9_WRITE_ADDR_MSB_u(31)#defineDMA_CH9_WRITE_ADDR_LSB_u(0)#defineDMA_CH9_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_TRANS_COUNT// Description : DMA Channel 9 Transfer Count#defineDMA_CH9_TRANS_COUNT_OFFSET_u(0x00000248)#defineDMA_CH9_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH9_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH9_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH9_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH9_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH9_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH9_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH9_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH9_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH9_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH9_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH9_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH9_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH9_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH9_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH9_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH9_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH9_CTRL_TRIG// Description : DMA Channel 9 Control and Status#defineDMA_CH9_CTRL_TRIG_OFFSET_u(0x0000024c)#defineDMA_CH9_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH9_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH9_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH9_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH9_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH9_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH9_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH9_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH9_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH9_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH9_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH9_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH9_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH9_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH9_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH9_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH9_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH9_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH9_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH9_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH9_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH9_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH9_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH9_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH9_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH9_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH9_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH9_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH9_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH9_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH9_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH9_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH9_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH9_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH9_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH9_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH9_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH9_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH9_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH9_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH9_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH9_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH9_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH9_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH9_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH9_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH9_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH9_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH9_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH9_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH9_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH9_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH9_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH9_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH9_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH9_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH9_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH9_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH9_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH9_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH9_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH9_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH9_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH9_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL1_CTRL// Description : Alias for channel 9 CTRL register#defineDMA_CH9_AL1_CTRL_OFFSET_u(0x00000250)#defineDMA_CH9_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH9_AL1_CTRL_RESET"-"#defineDMA_CH9_AL1_CTRL_MSB_u(31)#defineDMA_CH9_AL1_CTRL_LSB_u(0)#defineDMA_CH9_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL1_READ_ADDR// Description : Alias for channel 9 READ_ADDR register#defineDMA_CH9_AL1_READ_ADDR_OFFSET_u(0x00000254)#defineDMA_CH9_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_AL1_READ_ADDR_RESET"-"#defineDMA_CH9_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH9_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH9_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL1_WRITE_ADDR// Description : Alias for channel 9 WRITE_ADDR register#defineDMA_CH9_AL1_WRITE_ADDR_OFFSET_u(0x00000258)#defineDMA_CH9_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH9_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH9_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH9_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 9 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000025c)#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH9_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL2_CTRL// Description : Alias for channel 9 CTRL register#defineDMA_CH9_AL2_CTRL_OFFSET_u(0x00000260)#defineDMA_CH9_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH9_AL2_CTRL_RESET"-"#defineDMA_CH9_AL2_CTRL_MSB_u(31)#defineDMA_CH9_AL2_CTRL_LSB_u(0)#defineDMA_CH9_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL2_TRANS_COUNT// Description : Alias for channel 9 TRANS_COUNT register#defineDMA_CH9_AL2_TRANS_COUNT_OFFSET_u(0x00000264)#defineDMA_CH9_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH9_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH9_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH9_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH9_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL2_READ_ADDR// Description : Alias for channel 9 READ_ADDR register#defineDMA_CH9_AL2_READ_ADDR_OFFSET_u(0x00000268)#defineDMA_CH9_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_AL2_READ_ADDR_RESET"-"#defineDMA_CH9_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH9_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH9_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 9 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000026c)#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH9_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL3_CTRL// Description : Alias for channel 9 CTRL register#defineDMA_CH9_AL3_CTRL_OFFSET_u(0x00000270)#defineDMA_CH9_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH9_AL3_CTRL_RESET"-"#defineDMA_CH9_AL3_CTRL_MSB_u(31)#defineDMA_CH9_AL3_CTRL_LSB_u(0)#defineDMA_CH9_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL3_WRITE_ADDR// Description : Alias for channel 9 WRITE_ADDR register#defineDMA_CH9_AL3_WRITE_ADDR_OFFSET_u(0x00000274)#defineDMA_CH9_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH9_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH9_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH9_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH9_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL3_TRANS_COUNT// Description : Alias for channel 9 TRANS_COUNT register#defineDMA_CH9_AL3_TRANS_COUNT_OFFSET_u(0x00000278)#defineDMA_CH9_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH9_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH9_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH9_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH9_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH9_AL3_READ_ADDR_TRIG// Description : Alias for channel 9 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH9_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000027c)#defineDMA_CH9_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH9_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH9_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH9_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH9_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH10_READ_ADDR// Description : DMA Channel 10 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH10_READ_ADDR_OFFSET_u(0x00000280)#defineDMA_CH10_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH10_READ_ADDR_MSB_u(31)#defineDMA_CH10_READ_ADDR_LSB_u(0)#defineDMA_CH10_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_WRITE_ADDR// Description : DMA Channel 10 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH10_WRITE_ADDR_OFFSET_u(0x00000284)#defineDMA_CH10_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH10_WRITE_ADDR_MSB_u(31)#defineDMA_CH10_WRITE_ADDR_LSB_u(0)#defineDMA_CH10_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_TRANS_COUNT// Description : DMA Channel 10 Transfer Count#defineDMA_CH10_TRANS_COUNT_OFFSET_u(0x00000288)#defineDMA_CH10_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH10_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH10_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH10_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH10_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH10_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH10_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH10_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH10_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH10_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH10_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH10_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH10_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH10_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH10_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH10_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH10_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH10_CTRL_TRIG// Description : DMA Channel 10 Control and Status#defineDMA_CH10_CTRL_TRIG_OFFSET_u(0x0000028c)#defineDMA_CH10_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH10_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH10_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH10_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH10_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH10_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH10_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH10_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH10_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH10_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH10_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH10_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH10_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH10_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH10_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH10_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH10_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH10_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH10_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH10_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH10_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH10_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH10_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH10_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH10_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH10_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH10_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH10_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH10_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH10_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH10_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH10_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH10_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH10_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH10_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH10_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH10_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH10_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH10_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH10_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH10_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH10_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH10_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH10_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH10_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH10_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH10_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH10_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH10_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH10_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH10_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH10_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH10_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH10_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH10_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH10_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH10_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH10_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH10_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH10_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH10_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH10_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH10_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH10_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL1_CTRL// Description : Alias for channel 10 CTRL register#defineDMA_CH10_AL1_CTRL_OFFSET_u(0x00000290)#defineDMA_CH10_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH10_AL1_CTRL_RESET"-"#defineDMA_CH10_AL1_CTRL_MSB_u(31)#defineDMA_CH10_AL1_CTRL_LSB_u(0)#defineDMA_CH10_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL1_READ_ADDR// Description : Alias for channel 10 READ_ADDR register#defineDMA_CH10_AL1_READ_ADDR_OFFSET_u(0x00000294)#defineDMA_CH10_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_AL1_READ_ADDR_RESET"-"#defineDMA_CH10_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH10_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH10_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL1_WRITE_ADDR// Description : Alias for channel 10 WRITE_ADDR register#defineDMA_CH10_AL1_WRITE_ADDR_OFFSET_u(0x00000298)#defineDMA_CH10_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH10_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH10_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH10_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 10 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000029c)#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH10_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL2_CTRL// Description : Alias for channel 10 CTRL register#defineDMA_CH10_AL2_CTRL_OFFSET_u(0x000002a0)#defineDMA_CH10_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH10_AL2_CTRL_RESET"-"#defineDMA_CH10_AL2_CTRL_MSB_u(31)#defineDMA_CH10_AL2_CTRL_LSB_u(0)#defineDMA_CH10_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL2_TRANS_COUNT// Description : Alias for channel 10 TRANS_COUNT register#defineDMA_CH10_AL2_TRANS_COUNT_OFFSET_u(0x000002a4)#defineDMA_CH10_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH10_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH10_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH10_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH10_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL2_READ_ADDR// Description : Alias for channel 10 READ_ADDR register#defineDMA_CH10_AL2_READ_ADDR_OFFSET_u(0x000002a8)#defineDMA_CH10_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_AL2_READ_ADDR_RESET"-"#defineDMA_CH10_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH10_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH10_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 10 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000002ac)#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH10_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL3_CTRL// Description : Alias for channel 10 CTRL register#defineDMA_CH10_AL3_CTRL_OFFSET_u(0x000002b0)#defineDMA_CH10_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH10_AL3_CTRL_RESET"-"#defineDMA_CH10_AL3_CTRL_MSB_u(31)#defineDMA_CH10_AL3_CTRL_LSB_u(0)#defineDMA_CH10_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL3_WRITE_ADDR// Description : Alias for channel 10 WRITE_ADDR register#defineDMA_CH10_AL3_WRITE_ADDR_OFFSET_u(0x000002b4)#defineDMA_CH10_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH10_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH10_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH10_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH10_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL3_TRANS_COUNT// Description : Alias for channel 10 TRANS_COUNT register#defineDMA_CH10_AL3_TRANS_COUNT_OFFSET_u(0x000002b8)#defineDMA_CH10_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH10_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH10_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH10_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH10_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH10_AL3_READ_ADDR_TRIG// Description : Alias for channel 10 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH10_AL3_READ_ADDR_TRIG_OFFSET_u(0x000002bc)#defineDMA_CH10_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH10_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH10_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH10_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH10_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH11_READ_ADDR// Description : DMA Channel 11 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH11_READ_ADDR_OFFSET_u(0x000002c0)#defineDMA_CH11_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH11_READ_ADDR_MSB_u(31)#defineDMA_CH11_READ_ADDR_LSB_u(0)#defineDMA_CH11_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_WRITE_ADDR// Description : DMA Channel 11 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH11_WRITE_ADDR_OFFSET_u(0x000002c4)#defineDMA_CH11_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH11_WRITE_ADDR_MSB_u(31)#defineDMA_CH11_WRITE_ADDR_LSB_u(0)#defineDMA_CH11_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_TRANS_COUNT// Description : DMA Channel 11 Transfer Count#defineDMA_CH11_TRANS_COUNT_OFFSET_u(0x000002c8)#defineDMA_CH11_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH11_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH11_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH11_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH11_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH11_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH11_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH11_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH11_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH11_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH11_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH11_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH11_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH11_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH11_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH11_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH11_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH11_CTRL_TRIG// Description : DMA Channel 11 Control and Status#defineDMA_CH11_CTRL_TRIG_OFFSET_u(0x000002cc)#defineDMA_CH11_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH11_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH11_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH11_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH11_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH11_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH11_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH11_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH11_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH11_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH11_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH11_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH11_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH11_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH11_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH11_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH11_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH11_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH11_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH11_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH11_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH11_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH11_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH11_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH11_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH11_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH11_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH11_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH11_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH11_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH11_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH11_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH11_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH11_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH11_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH11_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH11_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH11_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH11_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH11_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH11_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH11_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH11_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH11_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH11_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH11_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH11_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH11_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH11_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH11_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH11_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH11_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH11_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH11_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH11_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH11_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH11_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH11_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH11_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH11_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH11_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH11_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH11_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH11_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL1_CTRL// Description : Alias for channel 11 CTRL register#defineDMA_CH11_AL1_CTRL_OFFSET_u(0x000002d0)#defineDMA_CH11_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH11_AL1_CTRL_RESET"-"#defineDMA_CH11_AL1_CTRL_MSB_u(31)#defineDMA_CH11_AL1_CTRL_LSB_u(0)#defineDMA_CH11_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL1_READ_ADDR// Description : Alias for channel 11 READ_ADDR register#defineDMA_CH11_AL1_READ_ADDR_OFFSET_u(0x000002d4)#defineDMA_CH11_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_AL1_READ_ADDR_RESET"-"#defineDMA_CH11_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH11_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH11_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL1_WRITE_ADDR// Description : Alias for channel 11 WRITE_ADDR register#defineDMA_CH11_AL1_WRITE_ADDR_OFFSET_u(0x000002d8)#defineDMA_CH11_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH11_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH11_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH11_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 11 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x000002dc)#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH11_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL2_CTRL// Description : Alias for channel 11 CTRL register#defineDMA_CH11_AL2_CTRL_OFFSET_u(0x000002e0)#defineDMA_CH11_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH11_AL2_CTRL_RESET"-"#defineDMA_CH11_AL2_CTRL_MSB_u(31)#defineDMA_CH11_AL2_CTRL_LSB_u(0)#defineDMA_CH11_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL2_TRANS_COUNT// Description : Alias for channel 11 TRANS_COUNT register#defineDMA_CH11_AL2_TRANS_COUNT_OFFSET_u(0x000002e4)#defineDMA_CH11_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH11_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH11_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH11_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH11_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL2_READ_ADDR// Description : Alias for channel 11 READ_ADDR register#defineDMA_CH11_AL2_READ_ADDR_OFFSET_u(0x000002e8)#defineDMA_CH11_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_AL2_READ_ADDR_RESET"-"#defineDMA_CH11_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH11_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH11_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 11 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000002ec)#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH11_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL3_CTRL// Description : Alias for channel 11 CTRL register#defineDMA_CH11_AL3_CTRL_OFFSET_u(0x000002f0)#defineDMA_CH11_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH11_AL3_CTRL_RESET"-"#defineDMA_CH11_AL3_CTRL_MSB_u(31)#defineDMA_CH11_AL3_CTRL_LSB_u(0)#defineDMA_CH11_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL3_WRITE_ADDR// Description : Alias for channel 11 WRITE_ADDR register#defineDMA_CH11_AL3_WRITE_ADDR_OFFSET_u(0x000002f4)#defineDMA_CH11_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH11_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH11_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH11_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH11_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL3_TRANS_COUNT// Description : Alias for channel 11 TRANS_COUNT register#defineDMA_CH11_AL3_TRANS_COUNT_OFFSET_u(0x000002f8)#defineDMA_CH11_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH11_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH11_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH11_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH11_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH11_AL3_READ_ADDR_TRIG// Description : Alias for channel 11 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH11_AL3_READ_ADDR_TRIG_OFFSET_u(0x000002fc)#defineDMA_CH11_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH11_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH11_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH11_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH11_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH12_READ_ADDR// Description : DMA Channel 12 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH12_READ_ADDR_OFFSET_u(0x00000300)#defineDMA_CH12_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH12_READ_ADDR_MSB_u(31)#defineDMA_CH12_READ_ADDR_LSB_u(0)#defineDMA_CH12_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_WRITE_ADDR// Description : DMA Channel 12 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH12_WRITE_ADDR_OFFSET_u(0x00000304)#defineDMA_CH12_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH12_WRITE_ADDR_MSB_u(31)#defineDMA_CH12_WRITE_ADDR_LSB_u(0)#defineDMA_CH12_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_TRANS_COUNT// Description : DMA Channel 12 Transfer Count#defineDMA_CH12_TRANS_COUNT_OFFSET_u(0x00000308)#defineDMA_CH12_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH12_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH12_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH12_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH12_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH12_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH12_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH12_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH12_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH12_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH12_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH12_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH12_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH12_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH12_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH12_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH12_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH12_CTRL_TRIG// Description : DMA Channel 12 Control and Status#defineDMA_CH12_CTRL_TRIG_OFFSET_u(0x0000030c)#defineDMA_CH12_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH12_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH12_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH12_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH12_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH12_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH12_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH12_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH12_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH12_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH12_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH12_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH12_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH12_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH12_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH12_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH12_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH12_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH12_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH12_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH12_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH12_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH12_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH12_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH12_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH12_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH12_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH12_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH12_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH12_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH12_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH12_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH12_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH12_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH12_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH12_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH12_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH12_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH12_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH12_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH12_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH12_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH12_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH12_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH12_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH12_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH12_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH12_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH12_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH12_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH12_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH12_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH12_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH12_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH12_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH12_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH12_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH12_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH12_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH12_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH12_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH12_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH12_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH12_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL1_CTRL// Description : Alias for channel 12 CTRL register#defineDMA_CH12_AL1_CTRL_OFFSET_u(0x00000310)#defineDMA_CH12_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH12_AL1_CTRL_RESET"-"#defineDMA_CH12_AL1_CTRL_MSB_u(31)#defineDMA_CH12_AL1_CTRL_LSB_u(0)#defineDMA_CH12_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL1_READ_ADDR// Description : Alias for channel 12 READ_ADDR register#defineDMA_CH12_AL1_READ_ADDR_OFFSET_u(0x00000314)#defineDMA_CH12_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_AL1_READ_ADDR_RESET"-"#defineDMA_CH12_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH12_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH12_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL1_WRITE_ADDR// Description : Alias for channel 12 WRITE_ADDR register#defineDMA_CH12_AL1_WRITE_ADDR_OFFSET_u(0x00000318)#defineDMA_CH12_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH12_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH12_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH12_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 12 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000031c)#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH12_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL2_CTRL// Description : Alias for channel 12 CTRL register#defineDMA_CH12_AL2_CTRL_OFFSET_u(0x00000320)#defineDMA_CH12_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH12_AL2_CTRL_RESET"-"#defineDMA_CH12_AL2_CTRL_MSB_u(31)#defineDMA_CH12_AL2_CTRL_LSB_u(0)#defineDMA_CH12_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL2_TRANS_COUNT// Description : Alias for channel 12 TRANS_COUNT register#defineDMA_CH12_AL2_TRANS_COUNT_OFFSET_u(0x00000324)#defineDMA_CH12_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH12_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH12_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH12_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH12_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL2_READ_ADDR// Description : Alias for channel 12 READ_ADDR register#defineDMA_CH12_AL2_READ_ADDR_OFFSET_u(0x00000328)#defineDMA_CH12_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_AL2_READ_ADDR_RESET"-"#defineDMA_CH12_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH12_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH12_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 12 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000032c)#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH12_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL3_CTRL// Description : Alias for channel 12 CTRL register#defineDMA_CH12_AL3_CTRL_OFFSET_u(0x00000330)#defineDMA_CH12_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH12_AL3_CTRL_RESET"-"#defineDMA_CH12_AL3_CTRL_MSB_u(31)#defineDMA_CH12_AL3_CTRL_LSB_u(0)#defineDMA_CH12_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL3_WRITE_ADDR// Description : Alias for channel 12 WRITE_ADDR register#defineDMA_CH12_AL3_WRITE_ADDR_OFFSET_u(0x00000334)#defineDMA_CH12_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH12_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH12_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH12_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH12_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL3_TRANS_COUNT// Description : Alias for channel 12 TRANS_COUNT register#defineDMA_CH12_AL3_TRANS_COUNT_OFFSET_u(0x00000338)#defineDMA_CH12_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH12_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH12_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH12_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH12_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH12_AL3_READ_ADDR_TRIG// Description : Alias for channel 12 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH12_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000033c)#defineDMA_CH12_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH12_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH12_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH12_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH12_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH13_READ_ADDR// Description : DMA Channel 13 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH13_READ_ADDR_OFFSET_u(0x00000340)#defineDMA_CH13_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH13_READ_ADDR_MSB_u(31)#defineDMA_CH13_READ_ADDR_LSB_u(0)#defineDMA_CH13_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_WRITE_ADDR// Description : DMA Channel 13 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH13_WRITE_ADDR_OFFSET_u(0x00000344)#defineDMA_CH13_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH13_WRITE_ADDR_MSB_u(31)#defineDMA_CH13_WRITE_ADDR_LSB_u(0)#defineDMA_CH13_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_TRANS_COUNT// Description : DMA Channel 13 Transfer Count#defineDMA_CH13_TRANS_COUNT_OFFSET_u(0x00000348)#defineDMA_CH13_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH13_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH13_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH13_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH13_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH13_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH13_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH13_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH13_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH13_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH13_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH13_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH13_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH13_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH13_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH13_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH13_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH13_CTRL_TRIG// Description : DMA Channel 13 Control and Status#defineDMA_CH13_CTRL_TRIG_OFFSET_u(0x0000034c)#defineDMA_CH13_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH13_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH13_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH13_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH13_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH13_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH13_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH13_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH13_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH13_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH13_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH13_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH13_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH13_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH13_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH13_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH13_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH13_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH13_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH13_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH13_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH13_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH13_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH13_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH13_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH13_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH13_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH13_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH13_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH13_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH13_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH13_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH13_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH13_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH13_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH13_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH13_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH13_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH13_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH13_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH13_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH13_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH13_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH13_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH13_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH13_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH13_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH13_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH13_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH13_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH13_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH13_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH13_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH13_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH13_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH13_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH13_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH13_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH13_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH13_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH13_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH13_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH13_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH13_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL1_CTRL// Description : Alias for channel 13 CTRL register#defineDMA_CH13_AL1_CTRL_OFFSET_u(0x00000350)#defineDMA_CH13_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH13_AL1_CTRL_RESET"-"#defineDMA_CH13_AL1_CTRL_MSB_u(31)#defineDMA_CH13_AL1_CTRL_LSB_u(0)#defineDMA_CH13_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL1_READ_ADDR// Description : Alias for channel 13 READ_ADDR register#defineDMA_CH13_AL1_READ_ADDR_OFFSET_u(0x00000354)#defineDMA_CH13_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_AL1_READ_ADDR_RESET"-"#defineDMA_CH13_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH13_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH13_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL1_WRITE_ADDR// Description : Alias for channel 13 WRITE_ADDR register#defineDMA_CH13_AL1_WRITE_ADDR_OFFSET_u(0x00000358)#defineDMA_CH13_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH13_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH13_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH13_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 13 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000035c)#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH13_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL2_CTRL// Description : Alias for channel 13 CTRL register#defineDMA_CH13_AL2_CTRL_OFFSET_u(0x00000360)#defineDMA_CH13_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH13_AL2_CTRL_RESET"-"#defineDMA_CH13_AL2_CTRL_MSB_u(31)#defineDMA_CH13_AL2_CTRL_LSB_u(0)#defineDMA_CH13_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL2_TRANS_COUNT// Description : Alias for channel 13 TRANS_COUNT register#defineDMA_CH13_AL2_TRANS_COUNT_OFFSET_u(0x00000364)#defineDMA_CH13_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH13_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH13_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH13_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH13_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL2_READ_ADDR// Description : Alias for channel 13 READ_ADDR register#defineDMA_CH13_AL2_READ_ADDR_OFFSET_u(0x00000368)#defineDMA_CH13_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_AL2_READ_ADDR_RESET"-"#defineDMA_CH13_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH13_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH13_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 13 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x0000036c)#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH13_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL3_CTRL// Description : Alias for channel 13 CTRL register#defineDMA_CH13_AL3_CTRL_OFFSET_u(0x00000370)#defineDMA_CH13_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH13_AL3_CTRL_RESET"-"#defineDMA_CH13_AL3_CTRL_MSB_u(31)#defineDMA_CH13_AL3_CTRL_LSB_u(0)#defineDMA_CH13_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL3_WRITE_ADDR// Description : Alias for channel 13 WRITE_ADDR register#defineDMA_CH13_AL3_WRITE_ADDR_OFFSET_u(0x00000374)#defineDMA_CH13_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH13_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH13_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH13_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH13_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL3_TRANS_COUNT// Description : Alias for channel 13 TRANS_COUNT register#defineDMA_CH13_AL3_TRANS_COUNT_OFFSET_u(0x00000378)#defineDMA_CH13_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH13_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH13_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH13_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH13_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH13_AL3_READ_ADDR_TRIG// Description : Alias for channel 13 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH13_AL3_READ_ADDR_TRIG_OFFSET_u(0x0000037c)#defineDMA_CH13_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH13_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH13_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH13_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH13_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH14_READ_ADDR// Description : DMA Channel 14 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH14_READ_ADDR_OFFSET_u(0x00000380)#defineDMA_CH14_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH14_READ_ADDR_MSB_u(31)#defineDMA_CH14_READ_ADDR_LSB_u(0)#defineDMA_CH14_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_WRITE_ADDR// Description : DMA Channel 14 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH14_WRITE_ADDR_OFFSET_u(0x00000384)#defineDMA_CH14_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH14_WRITE_ADDR_MSB_u(31)#defineDMA_CH14_WRITE_ADDR_LSB_u(0)#defineDMA_CH14_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_TRANS_COUNT// Description : DMA Channel 14 Transfer Count#defineDMA_CH14_TRANS_COUNT_OFFSET_u(0x00000388)#defineDMA_CH14_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH14_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH14_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH14_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH14_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH14_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH14_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH14_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH14_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH14_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH14_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH14_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH14_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH14_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH14_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH14_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH14_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH14_CTRL_TRIG// Description : DMA Channel 14 Control and Status#defineDMA_CH14_CTRL_TRIG_OFFSET_u(0x0000038c)#defineDMA_CH14_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH14_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH14_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH14_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH14_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH14_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH14_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH14_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH14_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH14_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH14_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH14_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH14_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH14_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH14_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH14_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH14_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH14_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH14_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH14_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH14_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH14_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH14_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH14_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH14_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH14_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH14_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH14_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH14_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH14_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH14_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH14_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH14_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH14_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH14_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH14_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH14_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH14_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH14_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH14_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH14_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH14_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH14_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH14_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH14_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH14_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH14_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH14_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH14_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH14_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH14_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH14_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH14_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH14_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH14_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH14_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH14_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH14_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH14_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH14_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH14_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH14_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH14_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH14_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL1_CTRL// Description : Alias for channel 14 CTRL register#defineDMA_CH14_AL1_CTRL_OFFSET_u(0x00000390)#defineDMA_CH14_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH14_AL1_CTRL_RESET"-"#defineDMA_CH14_AL1_CTRL_MSB_u(31)#defineDMA_CH14_AL1_CTRL_LSB_u(0)#defineDMA_CH14_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL1_READ_ADDR// Description : Alias for channel 14 READ_ADDR register#defineDMA_CH14_AL1_READ_ADDR_OFFSET_u(0x00000394)#defineDMA_CH14_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_AL1_READ_ADDR_RESET"-"#defineDMA_CH14_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH14_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH14_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL1_WRITE_ADDR// Description : Alias for channel 14 WRITE_ADDR register#defineDMA_CH14_AL1_WRITE_ADDR_OFFSET_u(0x00000398)#defineDMA_CH14_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH14_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH14_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH14_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 14 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x0000039c)#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH14_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL2_CTRL// Description : Alias for channel 14 CTRL register#defineDMA_CH14_AL2_CTRL_OFFSET_u(0x000003a0)#defineDMA_CH14_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH14_AL2_CTRL_RESET"-"#defineDMA_CH14_AL2_CTRL_MSB_u(31)#defineDMA_CH14_AL2_CTRL_LSB_u(0)#defineDMA_CH14_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL2_TRANS_COUNT// Description : Alias for channel 14 TRANS_COUNT register#defineDMA_CH14_AL2_TRANS_COUNT_OFFSET_u(0x000003a4)#defineDMA_CH14_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH14_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH14_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH14_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH14_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL2_READ_ADDR// Description : Alias for channel 14 READ_ADDR register#defineDMA_CH14_AL2_READ_ADDR_OFFSET_u(0x000003a8)#defineDMA_CH14_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_AL2_READ_ADDR_RESET"-"#defineDMA_CH14_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH14_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH14_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 14 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000003ac)#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH14_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL3_CTRL// Description : Alias for channel 14 CTRL register#defineDMA_CH14_AL3_CTRL_OFFSET_u(0x000003b0)#defineDMA_CH14_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH14_AL3_CTRL_RESET"-"#defineDMA_CH14_AL3_CTRL_MSB_u(31)#defineDMA_CH14_AL3_CTRL_LSB_u(0)#defineDMA_CH14_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL3_WRITE_ADDR// Description : Alias for channel 14 WRITE_ADDR register#defineDMA_CH14_AL3_WRITE_ADDR_OFFSET_u(0x000003b4)#defineDMA_CH14_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH14_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH14_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH14_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH14_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL3_TRANS_COUNT// Description : Alias for channel 14 TRANS_COUNT register#defineDMA_CH14_AL3_TRANS_COUNT_OFFSET_u(0x000003b8)#defineDMA_CH14_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH14_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH14_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH14_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH14_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH14_AL3_READ_ADDR_TRIG// Description : Alias for channel 14 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH14_AL3_READ_ADDR_TRIG_OFFSET_u(0x000003bc)#defineDMA_CH14_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH14_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH14_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH14_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH14_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH15_READ_ADDR// Description : DMA Channel 15 Read Address pointer// This register updates automatically each time a read completes.// The current value is the next address to be read by this// channel.#defineDMA_CH15_READ_ADDR_OFFSET_u(0x000003c0)#defineDMA_CH15_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_READ_ADDR_RESET_u(0x00000000)#defineDMA_CH15_READ_ADDR_MSB_u(31)#defineDMA_CH15_READ_ADDR_LSB_u(0)#defineDMA_CH15_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_WRITE_ADDR// Description : DMA Channel 15 Write Address pointer// This register updates automatically each time a write// completes. The current value is the next address to be written// by this channel.#defineDMA_CH15_WRITE_ADDR_OFFSET_u(0x000003c4)#defineDMA_CH15_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_WRITE_ADDR_RESET_u(0x00000000)#defineDMA_CH15_WRITE_ADDR_MSB_u(31)#defineDMA_CH15_WRITE_ADDR_LSB_u(0)#defineDMA_CH15_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_TRANS_COUNT// Description : DMA Channel 15 Transfer Count#defineDMA_CH15_TRANS_COUNT_OFFSET_u(0x000003c8)#defineDMA_CH15_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH15_TRANS_COUNT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH15_TRANS_COUNT_MODE// Description : When MODE is 0x0, the transfer count decrements with each// transfer until 0, and then the channel triggers the next// channel indicated by CTRL_CHAIN_TO.//// When MODE is 0x1, the transfer count decrements with each// transfer until 0, and then the channel re-triggers itself, in// addition to the trigger indicated by CTRL_CHAIN_TO. This is// useful for e.g. an endless ring-buffer DMA with periodic// interrupts.//// When MODE is 0xf, the transfer count does not decrement. The// DMA channel performs an endless sequence of transfers, never// triggering other channels or raising interrupts, until an ABORT// is raised.//// All other values are reserved.// 0x0 -> NORMAL// 0x1 -> TRIGGER_SELF// 0xf -> ENDLESS#defineDMA_CH15_TRANS_COUNT_MODE_RESET_u(0x0)#defineDMA_CH15_TRANS_COUNT_MODE_BITS_u(0xf0000000)#defineDMA_CH15_TRANS_COUNT_MODE_MSB_u(31)#defineDMA_CH15_TRANS_COUNT_MODE_LSB_u(28)#defineDMA_CH15_TRANS_COUNT_MODE_ACCESS"RW"#defineDMA_CH15_TRANS_COUNT_MODE_VALUE_NORMAL_u(0x0)#defineDMA_CH15_TRANS_COUNT_MODE_VALUE_TRIGGER_SELF_u(0x1)#defineDMA_CH15_TRANS_COUNT_MODE_VALUE_ENDLESS_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_CH15_TRANS_COUNT_COUNT// Description : 28-bit transfer count (256 million transfers maximum).//// Program the number of bus transfers a channel will perform// before halting. Note that, if transfers are larger than one// byte in size, this is not equal to the number of bytes// transferred (see CTRL_DATA_SIZE).//// When the channel is active, reading this register shows the// number of transfers remaining, updating automatically each time// a write transfer completes.//// Writing this register sets the RELOAD value for the transfer// counter. Each time this channel is triggered, the RELOAD value// is copied into the live transfer counter. The channel can be// started multiple times, and will perform the same number of// transfers each time, as programmed by most recent write.//// The RELOAD value can be observed at CHx_DBG_TCR. If TRANS_COUNT// is used as a trigger, the written value is used immediately as// the length of the new transfer sequence, as well as being// written to RELOAD.#defineDMA_CH15_TRANS_COUNT_COUNT_RESET_u(0x0000000)#defineDMA_CH15_TRANS_COUNT_COUNT_BITS_u(0x0fffffff)#defineDMA_CH15_TRANS_COUNT_COUNT_MSB_u(27)#defineDMA_CH15_TRANS_COUNT_COUNT_LSB_u(0)#defineDMA_CH15_TRANS_COUNT_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH15_CTRL_TRIG// Description : DMA Channel 15 Control and Status#defineDMA_CH15_CTRL_TRIG_OFFSET_u(0x000003cc)#defineDMA_CH15_CTRL_TRIG_BITS_u(0xe7ffffff)#defineDMA_CH15_CTRL_TRIG_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_AHB_ERROR// Description : Logical OR of the READ_ERROR and WRITE_ERROR flags. The channel// halts when it encounters any bus error, and always raises its// channel IRQ flag.#defineDMA_CH15_CTRL_TRIG_AHB_ERROR_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_AHB_ERROR_BITS_u(0x80000000)#defineDMA_CH15_CTRL_TRIG_AHB_ERROR_MSB_u(31)#defineDMA_CH15_CTRL_TRIG_AHB_ERROR_LSB_u(31)#defineDMA_CH15_CTRL_TRIG_AHB_ERROR_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_READ_ERROR// Description : If 1, the channel received a read bus error. Write one to// clear.// READ_ADDR shows the approximate address where the bus error was// encountered (will not be earlier, or more than 3 transfers// later)#defineDMA_CH15_CTRL_TRIG_READ_ERROR_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_READ_ERROR_BITS_u(0x40000000)#defineDMA_CH15_CTRL_TRIG_READ_ERROR_MSB_u(30)#defineDMA_CH15_CTRL_TRIG_READ_ERROR_LSB_u(30)#defineDMA_CH15_CTRL_TRIG_READ_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_WRITE_ERROR// Description : If 1, the channel received a write bus error. Write one to// clear.// WRITE_ADDR shows the approximate address where the bus error// was encountered (will not be earlier, or more than 5 transfers// later)#defineDMA_CH15_CTRL_TRIG_WRITE_ERROR_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_WRITE_ERROR_BITS_u(0x20000000)#defineDMA_CH15_CTRL_TRIG_WRITE_ERROR_MSB_u(29)#defineDMA_CH15_CTRL_TRIG_WRITE_ERROR_LSB_u(29)#defineDMA_CH15_CTRL_TRIG_WRITE_ERROR_ACCESS"WC"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_BUSY// Description : This flag goes high when the channel starts a new transfer// sequence, and low when the last transfer of that sequence// completes. Clearing EN while BUSY is high pauses the channel,// and BUSY will stay high while paused.//// To terminate a sequence early (and clear the BUSY flag), see// CHAN_ABORT.#defineDMA_CH15_CTRL_TRIG_BUSY_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_BUSY_BITS_u(0x04000000)#defineDMA_CH15_CTRL_TRIG_BUSY_MSB_u(26)#defineDMA_CH15_CTRL_TRIG_BUSY_LSB_u(26)#defineDMA_CH15_CTRL_TRIG_BUSY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_SNIFF_EN// Description : If 1, this channel's data transfers are visible to the sniff// hardware, and each transfer will advance the state of the// checksum. This only applies if the sniff hardware is enabled,// and has this channel selected.//// This allows checksum to be enabled or disabled on a per-// control- block basis.#defineDMA_CH15_CTRL_TRIG_SNIFF_EN_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_SNIFF_EN_BITS_u(0x02000000)#defineDMA_CH15_CTRL_TRIG_SNIFF_EN_MSB_u(25)#defineDMA_CH15_CTRL_TRIG_SNIFF_EN_LSB_u(25)#defineDMA_CH15_CTRL_TRIG_SNIFF_EN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_BSWAP// Description : Apply byte-swap transformation to DMA data.// For byte data, this has no effect. For halfword data, the two// bytes of each halfword are swapped. For word data, the four// bytes of each word are swapped to reverse order.#defineDMA_CH15_CTRL_TRIG_BSWAP_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_BSWAP_BITS_u(0x01000000)#defineDMA_CH15_CTRL_TRIG_BSWAP_MSB_u(24)#defineDMA_CH15_CTRL_TRIG_BSWAP_LSB_u(24)#defineDMA_CH15_CTRL_TRIG_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_IRQ_QUIET// Description : In QUIET mode, the channel does not generate IRQs at the end of// every transfer block. Instead, an IRQ is raised when NULL is// written to a trigger register, indicating the end of a control// block chain.//// This reduces the number of interrupts to be serviced by the CPU// when transferring a DMA chain of many small control blocks.#defineDMA_CH15_CTRL_TRIG_IRQ_QUIET_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_IRQ_QUIET_BITS_u(0x00800000)#defineDMA_CH15_CTRL_TRIG_IRQ_QUIET_MSB_u(23)#defineDMA_CH15_CTRL_TRIG_IRQ_QUIET_LSB_u(23)#defineDMA_CH15_CTRL_TRIG_IRQ_QUIET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_TREQ_SEL// Description : Select a Transfer Request signal.// The channel uses the transfer request signal to pace its data// transfer rate. Sources for TREQ signals are internal (TIMERS)// or external (DREQ, a Data Request from the system).// 0x0 to 0x3a -> select DREQ n as TREQ// 0x3b -> Select Timer 0 as TREQ// 0x3c -> Select Timer 1 as TREQ// 0x3d -> Select Timer 2 as TREQ (Optional)// 0x3e -> Select Timer 3 as TREQ (Optional)// 0x3f -> Permanent request, for unpaced transfers.#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_RESET_u(0x00)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_BITS_u(0x007e0000)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_MSB_u(22)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_LSB_u(17)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_ACCESS"RW"#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER0_u(0x3b)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER1_u(0x3c)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER2_u(0x3d)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_TIMER3_u(0x3e)#defineDMA_CH15_CTRL_TRIG_TREQ_SEL_VALUE_PERMANENT_u(0x3f)// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_CHAIN_TO// Description : When this channel completes, it will trigger the channel// indicated by CHAIN_TO. Disable by setting CHAIN_TO = _(this// channel)_.//// Note this field resets to 0, so channels 1 and above will chain// to channel 0 by default. Set this field to avoid this// behaviour.#defineDMA_CH15_CTRL_TRIG_CHAIN_TO_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_CHAIN_TO_BITS_u(0x0001e000)#defineDMA_CH15_CTRL_TRIG_CHAIN_TO_MSB_u(16)#defineDMA_CH15_CTRL_TRIG_CHAIN_TO_LSB_u(13)#defineDMA_CH15_CTRL_TRIG_CHAIN_TO_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_RING_SEL// Description : Select whether RING_SIZE applies to read or write addresses.// If 0, read addresses are wrapped on a (1 << RING_SIZE)// boundary. If 1, write addresses are wrapped.#defineDMA_CH15_CTRL_TRIG_RING_SEL_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_RING_SEL_BITS_u(0x00001000)#defineDMA_CH15_CTRL_TRIG_RING_SEL_MSB_u(12)#defineDMA_CH15_CTRL_TRIG_RING_SEL_LSB_u(12)#defineDMA_CH15_CTRL_TRIG_RING_SEL_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_RING_SIZE// Description : Size of address wrap region. If 0, don't wrap. For values n >// 0, only the lower n bits of the address will change. This wraps// the address on a (1 << n) byte boundary, facilitating access to// naturally-aligned ring buffers.//// Ring sizes between 2 and 32768 bytes are possible. This can// apply to either read or write addresses, based on value of// RING_SEL.// 0x0 -> RING_NONE#defineDMA_CH15_CTRL_TRIG_RING_SIZE_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_RING_SIZE_BITS_u(0x00000f00)#defineDMA_CH15_CTRL_TRIG_RING_SIZE_MSB_u(11)#defineDMA_CH15_CTRL_TRIG_RING_SIZE_LSB_u(8)#defineDMA_CH15_CTRL_TRIG_RING_SIZE_ACCESS"RW"#defineDMA_CH15_CTRL_TRIG_RING_SIZE_VALUE_RING_NONE_u(0x0)// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_INCR_WRITE_REV// Description : If 1, and INCR_WRITE is 1, the write address is decremented// rather than incremented with each transfer.//// If 1, and INCR_WRITE is 0, this otherwise-unused combination// causes the write address to be incremented by twice the// transfer size, i.e. skipping over alternate addresses.#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_REV_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_REV_BITS_u(0x00000080)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_REV_MSB_u(7)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_REV_LSB_u(7)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_INCR_WRITE// Description : If 1, the write address increments with each transfer. If 0,// each write is directed to the same, initial address.//// Generally this should be disabled for memory-to-peripheral// transfers.#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_BITS_u(0x00000040)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_MSB_u(6)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_LSB_u(6)#defineDMA_CH15_CTRL_TRIG_INCR_WRITE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_INCR_READ_REV// Description : If 1, and INCR_READ is 1, the read address is decremented// rather than incremented with each transfer.//// If 1, and INCR_READ is 0, this otherwise-unused combination// causes the read address to be incremented by twice the transfer// size, i.e. skipping over alternate addresses.#defineDMA_CH15_CTRL_TRIG_INCR_READ_REV_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_INCR_READ_REV_BITS_u(0x00000020)#defineDMA_CH15_CTRL_TRIG_INCR_READ_REV_MSB_u(5)#defineDMA_CH15_CTRL_TRIG_INCR_READ_REV_LSB_u(5)#defineDMA_CH15_CTRL_TRIG_INCR_READ_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_INCR_READ// Description : If 1, the read address increments with each transfer. If 0,// each read is directed to the same, initial address.//// Generally this should be disabled for peripheral-to-memory// transfers.#defineDMA_CH15_CTRL_TRIG_INCR_READ_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_INCR_READ_BITS_u(0x00000010)#defineDMA_CH15_CTRL_TRIG_INCR_READ_MSB_u(4)#defineDMA_CH15_CTRL_TRIG_INCR_READ_LSB_u(4)#defineDMA_CH15_CTRL_TRIG_INCR_READ_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_DATA_SIZE// Description : Set the size of each bus transfer (byte/halfword/word).// READ_ADDR and WRITE_ADDR advance by this amount (1/2/4 bytes)// with each transfer.// 0x0 -> SIZE_BYTE// 0x1 -> SIZE_HALFWORD// 0x2 -> SIZE_WORD#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_BITS_u(0x0000000c)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_MSB_u(3)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_LSB_u(2)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_ACCESS"RW"#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_BYTE_u(0x0)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_HALFWORD_u(0x1)#defineDMA_CH15_CTRL_TRIG_DATA_SIZE_VALUE_SIZE_WORD_u(0x2)// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_HIGH_PRIORITY// Description : HIGH_PRIORITY gives a channel preferential treatment in issue// scheduling: in each scheduling round, all high priority// channels are considered first, and then only a single low// priority channel, before returning to the high priority// channels.//// This only affects the order in which the DMA schedules// channels. The DMA's bus priority is not changed. If the DMA is// not saturated then a low priority channel will see no loss of// throughput.#defineDMA_CH15_CTRL_TRIG_HIGH_PRIORITY_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_HIGH_PRIORITY_BITS_u(0x00000002)#defineDMA_CH15_CTRL_TRIG_HIGH_PRIORITY_MSB_u(1)#defineDMA_CH15_CTRL_TRIG_HIGH_PRIORITY_LSB_u(1)#defineDMA_CH15_CTRL_TRIG_HIGH_PRIORITY_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_CH15_CTRL_TRIG_EN// Description : DMA Channel Enable.// When 1, the channel will respond to triggering events, which// will cause it to become BUSY and start transferring data. When// 0, the channel will ignore triggers, stop issuing transfers,// and pause the current transfer sequence (i.e. BUSY will remain// high if already high)#defineDMA_CH15_CTRL_TRIG_EN_RESET_u(0x0)#defineDMA_CH15_CTRL_TRIG_EN_BITS_u(0x00000001)#defineDMA_CH15_CTRL_TRIG_EN_MSB_u(0)#defineDMA_CH15_CTRL_TRIG_EN_LSB_u(0)#defineDMA_CH15_CTRL_TRIG_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL1_CTRL// Description : Alias for channel 15 CTRL register#defineDMA_CH15_AL1_CTRL_OFFSET_u(0x000003d0)#defineDMA_CH15_AL1_CTRL_BITS_u(0xffffffff)#defineDMA_CH15_AL1_CTRL_RESET"-"#defineDMA_CH15_AL1_CTRL_MSB_u(31)#defineDMA_CH15_AL1_CTRL_LSB_u(0)#defineDMA_CH15_AL1_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL1_READ_ADDR// Description : Alias for channel 15 READ_ADDR register#defineDMA_CH15_AL1_READ_ADDR_OFFSET_u(0x000003d4)#defineDMA_CH15_AL1_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_AL1_READ_ADDR_RESET"-"#defineDMA_CH15_AL1_READ_ADDR_MSB_u(31)#defineDMA_CH15_AL1_READ_ADDR_LSB_u(0)#defineDMA_CH15_AL1_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL1_WRITE_ADDR// Description : Alias for channel 15 WRITE_ADDR register#defineDMA_CH15_AL1_WRITE_ADDR_OFFSET_u(0x000003d8)#defineDMA_CH15_AL1_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_AL1_WRITE_ADDR_RESET"-"#defineDMA_CH15_AL1_WRITE_ADDR_MSB_u(31)#defineDMA_CH15_AL1_WRITE_ADDR_LSB_u(0)#defineDMA_CH15_AL1_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL1_TRANS_COUNT_TRIG// Description : Alias for channel 15 TRANS_COUNT register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_OFFSET_u(0x000003dc)#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_BITS_u(0xffffffff)#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_RESET"-"#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_MSB_u(31)#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_LSB_u(0)#defineDMA_CH15_AL1_TRANS_COUNT_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL2_CTRL// Description : Alias for channel 15 CTRL register#defineDMA_CH15_AL2_CTRL_OFFSET_u(0x000003e0)#defineDMA_CH15_AL2_CTRL_BITS_u(0xffffffff)#defineDMA_CH15_AL2_CTRL_RESET"-"#defineDMA_CH15_AL2_CTRL_MSB_u(31)#defineDMA_CH15_AL2_CTRL_LSB_u(0)#defineDMA_CH15_AL2_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL2_TRANS_COUNT// Description : Alias for channel 15 TRANS_COUNT register#defineDMA_CH15_AL2_TRANS_COUNT_OFFSET_u(0x000003e4)#defineDMA_CH15_AL2_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH15_AL2_TRANS_COUNT_RESET"-"#defineDMA_CH15_AL2_TRANS_COUNT_MSB_u(31)#defineDMA_CH15_AL2_TRANS_COUNT_LSB_u(0)#defineDMA_CH15_AL2_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL2_READ_ADDR// Description : Alias for channel 15 READ_ADDR register#defineDMA_CH15_AL2_READ_ADDR_OFFSET_u(0x000003e8)#defineDMA_CH15_AL2_READ_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_AL2_READ_ADDR_RESET"-"#defineDMA_CH15_AL2_READ_ADDR_MSB_u(31)#defineDMA_CH15_AL2_READ_ADDR_LSB_u(0)#defineDMA_CH15_AL2_READ_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL2_WRITE_ADDR_TRIG// Description : Alias for channel 15 WRITE_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_OFFSET_u(0x000003ec)#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_RESET"-"#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_MSB_u(31)#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_LSB_u(0)#defineDMA_CH15_AL2_WRITE_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL3_CTRL// Description : Alias for channel 15 CTRL register#defineDMA_CH15_AL3_CTRL_OFFSET_u(0x000003f0)#defineDMA_CH15_AL3_CTRL_BITS_u(0xffffffff)#defineDMA_CH15_AL3_CTRL_RESET"-"#defineDMA_CH15_AL3_CTRL_MSB_u(31)#defineDMA_CH15_AL3_CTRL_LSB_u(0)#defineDMA_CH15_AL3_CTRL_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL3_WRITE_ADDR// Description : Alias for channel 15 WRITE_ADDR register#defineDMA_CH15_AL3_WRITE_ADDR_OFFSET_u(0x000003f4)#defineDMA_CH15_AL3_WRITE_ADDR_BITS_u(0xffffffff)#defineDMA_CH15_AL3_WRITE_ADDR_RESET"-"#defineDMA_CH15_AL3_WRITE_ADDR_MSB_u(31)#defineDMA_CH15_AL3_WRITE_ADDR_LSB_u(0)#defineDMA_CH15_AL3_WRITE_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL3_TRANS_COUNT// Description : Alias for channel 15 TRANS_COUNT register#defineDMA_CH15_AL3_TRANS_COUNT_OFFSET_u(0x000003f8)#defineDMA_CH15_AL3_TRANS_COUNT_BITS_u(0xffffffff)#defineDMA_CH15_AL3_TRANS_COUNT_RESET"-"#defineDMA_CH15_AL3_TRANS_COUNT_MSB_u(31)#defineDMA_CH15_AL3_TRANS_COUNT_LSB_u(0)#defineDMA_CH15_AL3_TRANS_COUNT_ACCESS"RW"// =============================================================================// Register : DMA_CH15_AL3_READ_ADDR_TRIG// Description : Alias for channel 15 READ_ADDR register// This is a trigger register (0xc). Writing a nonzero value will// reload the channel counter and start the channel.#defineDMA_CH15_AL3_READ_ADDR_TRIG_OFFSET_u(0x000003fc)#defineDMA_CH15_AL3_READ_ADDR_TRIG_BITS_u(0xffffffff)#defineDMA_CH15_AL3_READ_ADDR_TRIG_RESET"-"#defineDMA_CH15_AL3_READ_ADDR_TRIG_MSB_u(31)#defineDMA_CH15_AL3_READ_ADDR_TRIG_LSB_u(0)#defineDMA_CH15_AL3_READ_ADDR_TRIG_ACCESS"RW"// =============================================================================// Register : DMA_INTR// Description : Interrupt Status (raw)// Raw interrupt status for DMA Channels 0..15. Bit n corresponds// to channel n. Ignores any masking or forcing. Channel// interrupts can be cleared by writing a bit mask to INTR or// INTS0/1/2/3.//// Channel interrupts can be routed to either of four system-level// IRQs based on INTE0, INTE1, INTE2 and INTE3.//// The multiple system-level interrupts might be used to allow// NVIC IRQ preemption for more time-critical channels, to spread// IRQ load across different cores, or to target IRQs to different// security domains.//// It is also valid to ignore the multiple IRQs, and just use// INTE0/INTS0/IRQ 0.//// If this register is accessed at a security/privilege level less// than that of a given channel (as defined by that channel's// SECCFG_CHx register), then that channel's interrupt status will// read as 0, ignore writes.#defineDMA_INTR_OFFSET_u(0x00000400)#defineDMA_INTR_BITS_u(0x0000ffff)#defineDMA_INTR_RESET_u(0x00000000)#defineDMA_INTR_MSB_u(15)#defineDMA_INTR_LSB_u(0)#defineDMA_INTR_ACCESS"WC"// =============================================================================// Register : DMA_INTE0// Description : Interrupt Enables for IRQ 0// Set bit n to pass interrupts from channel n to DMA IRQ 0.//// Note this bit has no effect if the channel security/privilege// level, defined by SECCFG_CHx, is greater than the IRQ// security/privilege defined by SECCFG_IRQ0.#defineDMA_INTE0_OFFSET_u(0x00000404)#defineDMA_INTE0_BITS_u(0x0000ffff)#defineDMA_INTE0_RESET_u(0x00000000)#defineDMA_INTE0_MSB_u(15)#defineDMA_INTE0_LSB_u(0)#defineDMA_INTE0_ACCESS"RW"// =============================================================================// Register : DMA_INTF0// Description : Force Interrupts// Write 1s to force the corresponding bits in INTS0. The// interrupt remains asserted until INTF0 is cleared.#defineDMA_INTF0_OFFSET_u(0x00000408)#defineDMA_INTF0_BITS_u(0x0000ffff)#defineDMA_INTF0_RESET_u(0x00000000)#defineDMA_INTF0_MSB_u(15)#defineDMA_INTF0_LSB_u(0)#defineDMA_INTF0_ACCESS"RW"// =============================================================================// Register : DMA_INTS0// Description : Interrupt Status for IRQ 0// Indicates active channel interrupt requests which are currently// causing IRQ 0 to be asserted.// Channel interrupts can be cleared by writing a bit mask here.//// Channels with a security/privilege (SECCFG_CHx) greater// SECCFG_IRQ0) read as 0 in this register, and ignore writes.#defineDMA_INTS0_OFFSET_u(0x0000040c)#defineDMA_INTS0_BITS_u(0x0000ffff)#defineDMA_INTS0_RESET_u(0x00000000)#defineDMA_INTS0_MSB_u(15)#defineDMA_INTS0_LSB_u(0)#defineDMA_INTS0_ACCESS"WC"// =============================================================================// Register : DMA_INTE1// Description : Interrupt Enables for IRQ 1// Set bit n to pass interrupts from channel n to DMA IRQ 1.//// Note this bit has no effect if the channel security/privilege// level, defined by SECCFG_CHx, is greater than the IRQ// security/privilege defined by SECCFG_IRQ1.#defineDMA_INTE1_OFFSET_u(0x00000414)#defineDMA_INTE1_BITS_u(0x0000ffff)#defineDMA_INTE1_RESET_u(0x00000000)#defineDMA_INTE1_MSB_u(15)#defineDMA_INTE1_LSB_u(0)#defineDMA_INTE1_ACCESS"RW"// =============================================================================// Register : DMA_INTF1// Description : Force Interrupts// Write 1s to force the corresponding bits in INTS1. The// interrupt remains asserted until INTF1 is cleared.#defineDMA_INTF1_OFFSET_u(0x00000418)#defineDMA_INTF1_BITS_u(0x0000ffff)#defineDMA_INTF1_RESET_u(0x00000000)#defineDMA_INTF1_MSB_u(15)#defineDMA_INTF1_LSB_u(0)#defineDMA_INTF1_ACCESS"RW"// =============================================================================// Register : DMA_INTS1// Description : Interrupt Status for IRQ 1// Indicates active channel interrupt requests which are currently// causing IRQ 1 to be asserted.// Channel interrupts can be cleared by writing a bit mask here.//// Channels with a security/privilege (SECCFG_CHx) greater// SECCFG_IRQ1) read as 0 in this register, and ignore writes.#defineDMA_INTS1_OFFSET_u(0x0000041c)#defineDMA_INTS1_BITS_u(0x0000ffff)#defineDMA_INTS1_RESET_u(0x00000000)#defineDMA_INTS1_MSB_u(15)#defineDMA_INTS1_LSB_u(0)#defineDMA_INTS1_ACCESS"WC"// =============================================================================// Register : DMA_INTE2// Description : Interrupt Enables for IRQ 2// Set bit n to pass interrupts from channel n to DMA IRQ 2.//// Note this bit has no effect if the channel security/privilege// level, defined by SECCFG_CHx, is greater than the IRQ// security/privilege defined by SECCFG_IRQ2.#defineDMA_INTE2_OFFSET_u(0x00000424)#defineDMA_INTE2_BITS_u(0x0000ffff)#defineDMA_INTE2_RESET_u(0x00000000)#defineDMA_INTE2_MSB_u(15)#defineDMA_INTE2_LSB_u(0)#defineDMA_INTE2_ACCESS"RW"// =============================================================================// Register : DMA_INTF2// Description : Force Interrupts// Write 1s to force the corresponding bits in INTS2. The// interrupt remains asserted until INTF2 is cleared.#defineDMA_INTF2_OFFSET_u(0x00000428)#defineDMA_INTF2_BITS_u(0x0000ffff)#defineDMA_INTF2_RESET_u(0x00000000)#defineDMA_INTF2_MSB_u(15)#defineDMA_INTF2_LSB_u(0)#defineDMA_INTF2_ACCESS"RW"// =============================================================================// Register : DMA_INTS2// Description : Interrupt Status for IRQ 2// Indicates active channel interrupt requests which are currently// causing IRQ 2 to be asserted.// Channel interrupts can be cleared by writing a bit mask here.//// Channels with a security/privilege (SECCFG_CHx) greater// SECCFG_IRQ2) read as 0 in this register, and ignore writes.#defineDMA_INTS2_OFFSET_u(0x0000042c)#defineDMA_INTS2_BITS_u(0x0000ffff)#defineDMA_INTS2_RESET_u(0x00000000)#defineDMA_INTS2_MSB_u(15)#defineDMA_INTS2_LSB_u(0)#defineDMA_INTS2_ACCESS"WC"// =============================================================================// Register : DMA_INTE3// Description : Interrupt Enables for IRQ 3// Set bit n to pass interrupts from channel n to DMA IRQ 3.//// Note this bit has no effect if the channel security/privilege// level, defined by SECCFG_CHx, is greater than the IRQ// security/privilege defined by SECCFG_IRQ3.#defineDMA_INTE3_OFFSET_u(0x00000434)#defineDMA_INTE3_BITS_u(0x0000ffff)#defineDMA_INTE3_RESET_u(0x00000000)#defineDMA_INTE3_MSB_u(15)#defineDMA_INTE3_LSB_u(0)#defineDMA_INTE3_ACCESS"RW"// =============================================================================// Register : DMA_INTF3// Description : Force Interrupts// Write 1s to force the corresponding bits in INTS3. The// interrupt remains asserted until INTF3 is cleared.#defineDMA_INTF3_OFFSET_u(0x00000438)#defineDMA_INTF3_BITS_u(0x0000ffff)#defineDMA_INTF3_RESET_u(0x00000000)#defineDMA_INTF3_MSB_u(15)#defineDMA_INTF3_LSB_u(0)#defineDMA_INTF3_ACCESS"RW"// =============================================================================// Register : DMA_INTS3// Description : Interrupt Status for IRQ 3// Indicates active channel interrupt requests which are currently// causing IRQ 3 to be asserted.// Channel interrupts can be cleared by writing a bit mask here.//// Channels with a security/privilege (SECCFG_CHx) greater// SECCFG_IRQ3) read as 0 in this register, and ignore writes.#defineDMA_INTS3_OFFSET_u(0x0000043c)#defineDMA_INTS3_BITS_u(0x0000ffff)#defineDMA_INTS3_RESET_u(0x00000000)#defineDMA_INTS3_MSB_u(15)#defineDMA_INTS3_LSB_u(0)#defineDMA_INTS3_ACCESS"WC"// =============================================================================// Register : DMA_TIMER0// Description : Pacing (X/Y) fractional timer// The pacing timer produces TREQ assertions at a rate set by// ((X/Y) * sys_clk). This equation is evaluated every sys_clk// cycles and therefore can only generate TREQs at a rate of 1 per// sys_clk (i.e. permanent TREQ) or less.#defineDMA_TIMER0_OFFSET_u(0x00000440)#defineDMA_TIMER0_BITS_u(0xffffffff)#defineDMA_TIMER0_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_TIMER0_X// Description : Pacing Timer Dividend. Specifies the X value for the (X/Y)// fractional timer.#defineDMA_TIMER0_X_RESET_u(0x0000)#defineDMA_TIMER0_X_BITS_u(0xffff0000)#defineDMA_TIMER0_X_MSB_u(31)#defineDMA_TIMER0_X_LSB_u(16)#defineDMA_TIMER0_X_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_TIMER0_Y// Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y)// fractional timer.#defineDMA_TIMER0_Y_RESET_u(0x0000)#defineDMA_TIMER0_Y_BITS_u(0x0000ffff)#defineDMA_TIMER0_Y_MSB_u(15)#defineDMA_TIMER0_Y_LSB_u(0)#defineDMA_TIMER0_Y_ACCESS"RW"// =============================================================================// Register : DMA_TIMER1// Description : Pacing (X/Y) fractional timer// The pacing timer produces TREQ assertions at a rate set by// ((X/Y) * sys_clk). This equation is evaluated every sys_clk// cycles and therefore can only generate TREQs at a rate of 1 per// sys_clk (i.e. permanent TREQ) or less.#defineDMA_TIMER1_OFFSET_u(0x00000444)#defineDMA_TIMER1_BITS_u(0xffffffff)#defineDMA_TIMER1_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_TIMER1_X// Description : Pacing Timer Dividend. Specifies the X value for the (X/Y)// fractional timer.#defineDMA_TIMER1_X_RESET_u(0x0000)#defineDMA_TIMER1_X_BITS_u(0xffff0000)#defineDMA_TIMER1_X_MSB_u(31)#defineDMA_TIMER1_X_LSB_u(16)#defineDMA_TIMER1_X_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_TIMER1_Y// Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y)// fractional timer.#defineDMA_TIMER1_Y_RESET_u(0x0000)#defineDMA_TIMER1_Y_BITS_u(0x0000ffff)#defineDMA_TIMER1_Y_MSB_u(15)#defineDMA_TIMER1_Y_LSB_u(0)#defineDMA_TIMER1_Y_ACCESS"RW"// =============================================================================// Register : DMA_TIMER2// Description : Pacing (X/Y) fractional timer// The pacing timer produces TREQ assertions at a rate set by// ((X/Y) * sys_clk). This equation is evaluated every sys_clk// cycles and therefore can only generate TREQs at a rate of 1 per// sys_clk (i.e. permanent TREQ) or less.#defineDMA_TIMER2_OFFSET_u(0x00000448)#defineDMA_TIMER2_BITS_u(0xffffffff)#defineDMA_TIMER2_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_TIMER2_X// Description : Pacing Timer Dividend. Specifies the X value for the (X/Y)// fractional timer.#defineDMA_TIMER2_X_RESET_u(0x0000)#defineDMA_TIMER2_X_BITS_u(0xffff0000)#defineDMA_TIMER2_X_MSB_u(31)#defineDMA_TIMER2_X_LSB_u(16)#defineDMA_TIMER2_X_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_TIMER2_Y// Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y)// fractional timer.#defineDMA_TIMER2_Y_RESET_u(0x0000)#defineDMA_TIMER2_Y_BITS_u(0x0000ffff)#defineDMA_TIMER2_Y_MSB_u(15)#defineDMA_TIMER2_Y_LSB_u(0)#defineDMA_TIMER2_Y_ACCESS"RW"// =============================================================================// Register : DMA_TIMER3// Description : Pacing (X/Y) fractional timer// The pacing timer produces TREQ assertions at a rate set by// ((X/Y) * sys_clk). This equation is evaluated every sys_clk// cycles and therefore can only generate TREQs at a rate of 1 per// sys_clk (i.e. permanent TREQ) or less.#defineDMA_TIMER3_OFFSET_u(0x0000044c)#defineDMA_TIMER3_BITS_u(0xffffffff)#defineDMA_TIMER3_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_TIMER3_X// Description : Pacing Timer Dividend. Specifies the X value for the (X/Y)// fractional timer.#defineDMA_TIMER3_X_RESET_u(0x0000)#defineDMA_TIMER3_X_BITS_u(0xffff0000)#defineDMA_TIMER3_X_MSB_u(31)#defineDMA_TIMER3_X_LSB_u(16)#defineDMA_TIMER3_X_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_TIMER3_Y// Description : Pacing Timer Divisor. Specifies the Y value for the (X/Y)// fractional timer.#defineDMA_TIMER3_Y_RESET_u(0x0000)#defineDMA_TIMER3_Y_BITS_u(0x0000ffff)#defineDMA_TIMER3_Y_MSB_u(15)#defineDMA_TIMER3_Y_LSB_u(0)#defineDMA_TIMER3_Y_ACCESS"RW"// =============================================================================// Register : DMA_MULTI_CHAN_TRIGGER// Description : Trigger one or more channels simultaneously// Each bit in this register corresponds to a DMA channel. Writing// a 1 to the relevant bit is the same as writing to that// channel's trigger register; the channel will start if it is// currently enabled and not already busy.#defineDMA_MULTI_CHAN_TRIGGER_OFFSET_u(0x00000450)#defineDMA_MULTI_CHAN_TRIGGER_BITS_u(0x0000ffff)#defineDMA_MULTI_CHAN_TRIGGER_RESET_u(0x00000000)#defineDMA_MULTI_CHAN_TRIGGER_MSB_u(15)#defineDMA_MULTI_CHAN_TRIGGER_LSB_u(0)#defineDMA_MULTI_CHAN_TRIGGER_ACCESS"SC"// =============================================================================// Register : DMA_SNIFF_CTRL// Description : Sniffer Control#defineDMA_SNIFF_CTRL_OFFSET_u(0x00000454)#defineDMA_SNIFF_CTRL_BITS_u(0x00000fff)#defineDMA_SNIFF_CTRL_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_OUT_INV// Description : If set, the result appears inverted (bitwise complement) when// read. This does not affect the way the checksum is calculated;// the result is transformed on-the-fly between the result// register and the bus.#defineDMA_SNIFF_CTRL_OUT_INV_RESET_u(0x0)#defineDMA_SNIFF_CTRL_OUT_INV_BITS_u(0x00000800)#defineDMA_SNIFF_CTRL_OUT_INV_MSB_u(11)#defineDMA_SNIFF_CTRL_OUT_INV_LSB_u(11)#defineDMA_SNIFF_CTRL_OUT_INV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_OUT_REV// Description : If set, the result appears bit-reversed when read. This does// not affect the way the checksum is calculated; the result is// transformed on-the-fly between the result register and the bus.#defineDMA_SNIFF_CTRL_OUT_REV_RESET_u(0x0)#defineDMA_SNIFF_CTRL_OUT_REV_BITS_u(0x00000400)#defineDMA_SNIFF_CTRL_OUT_REV_MSB_u(10)#defineDMA_SNIFF_CTRL_OUT_REV_LSB_u(10)#defineDMA_SNIFF_CTRL_OUT_REV_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_BSWAP// Description : Locally perform a byte reverse on the sniffed data, before// feeding into checksum.//// Note that the sniff hardware is downstream of the DMA channel// byteswap performed in the read master: if channel CTRL_BSWAP// and SNIFF_CTRL_BSWAP are both enabled, their effects cancel// from the sniffer's point of view.#defineDMA_SNIFF_CTRL_BSWAP_RESET_u(0x0)#defineDMA_SNIFF_CTRL_BSWAP_BITS_u(0x00000200)#defineDMA_SNIFF_CTRL_BSWAP_MSB_u(9)#defineDMA_SNIFF_CTRL_BSWAP_LSB_u(9)#defineDMA_SNIFF_CTRL_BSWAP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_CALC// 0x0 -> Calculate a CRC-32 (IEEE802.3 polynomial)// 0x1 -> Calculate a CRC-32 (IEEE802.3 polynomial) with bit reversed data// 0x2 -> Calculate a CRC-16-CCITT// 0x3 -> Calculate a CRC-16-CCITT with bit reversed data// 0xe -> XOR reduction over all data. == 1 if the total 1 population count is odd.// 0xf -> Calculate a simple 32-bit checksum (addition with a 32 bit accumulator)#defineDMA_SNIFF_CTRL_CALC_RESET_u(0x0)#defineDMA_SNIFF_CTRL_CALC_BITS_u(0x000001e0)#defineDMA_SNIFF_CTRL_CALC_MSB_u(8)#defineDMA_SNIFF_CTRL_CALC_LSB_u(5)#defineDMA_SNIFF_CTRL_CALC_ACCESS"RW"#defineDMA_SNIFF_CTRL_CALC_VALUE_CRC32_u(0x0)#defineDMA_SNIFF_CTRL_CALC_VALUE_CRC32R_u(0x1)#defineDMA_SNIFF_CTRL_CALC_VALUE_CRC16_u(0x2)#defineDMA_SNIFF_CTRL_CALC_VALUE_CRC16R_u(0x3)#defineDMA_SNIFF_CTRL_CALC_VALUE_EVEN_u(0xe)#defineDMA_SNIFF_CTRL_CALC_VALUE_SUM_u(0xf)// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_DMACH// Description : DMA channel for Sniffer to observe#defineDMA_SNIFF_CTRL_DMACH_RESET_u(0x0)#defineDMA_SNIFF_CTRL_DMACH_BITS_u(0x0000001e)#defineDMA_SNIFF_CTRL_DMACH_MSB_u(4)#defineDMA_SNIFF_CTRL_DMACH_LSB_u(1)#defineDMA_SNIFF_CTRL_DMACH_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SNIFF_CTRL_EN// Description : Enable sniffer#defineDMA_SNIFF_CTRL_EN_RESET_u(0x0)#defineDMA_SNIFF_CTRL_EN_BITS_u(0x00000001)#defineDMA_SNIFF_CTRL_EN_MSB_u(0)#defineDMA_SNIFF_CTRL_EN_LSB_u(0)#defineDMA_SNIFF_CTRL_EN_ACCESS"RW"// =============================================================================// Register : DMA_SNIFF_DATA// Description : Data accumulator for sniff hardware// Write an initial seed value here before starting a DMA transfer// on the channel indicated by SNIFF_CTRL_DMACH. The hardware will// update this register each time it observes a read from the// indicated channel. Once the channel completes, the final result// can be read from this register.#defineDMA_SNIFF_DATA_OFFSET_u(0x00000458)#defineDMA_SNIFF_DATA_BITS_u(0xffffffff)#defineDMA_SNIFF_DATA_RESET_u(0x00000000)#defineDMA_SNIFF_DATA_MSB_u(31)#defineDMA_SNIFF_DATA_LSB_u(0)#defineDMA_SNIFF_DATA_ACCESS"RW"// =============================================================================// Register : DMA_FIFO_LEVELS// Description : Debug RAF, WAF, TDF levels#defineDMA_FIFO_LEVELS_OFFSET_u(0x00000460)#defineDMA_FIFO_LEVELS_BITS_u(0x00ffffff)#defineDMA_FIFO_LEVELS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_FIFO_LEVELS_RAF_LVL// Description : Current Read-Address-FIFO fill level#defineDMA_FIFO_LEVELS_RAF_LVL_RESET_u(0x00)#defineDMA_FIFO_LEVELS_RAF_LVL_BITS_u(0x00ff0000)#defineDMA_FIFO_LEVELS_RAF_LVL_MSB_u(23)#defineDMA_FIFO_LEVELS_RAF_LVL_LSB_u(16)#defineDMA_FIFO_LEVELS_RAF_LVL_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_FIFO_LEVELS_WAF_LVL// Description : Current Write-Address-FIFO fill level#defineDMA_FIFO_LEVELS_WAF_LVL_RESET_u(0x00)#defineDMA_FIFO_LEVELS_WAF_LVL_BITS_u(0x0000ff00)#defineDMA_FIFO_LEVELS_WAF_LVL_MSB_u(15)#defineDMA_FIFO_LEVELS_WAF_LVL_LSB_u(8)#defineDMA_FIFO_LEVELS_WAF_LVL_ACCESS"RO"// -----------------------------------------------------------------------------// Field : DMA_FIFO_LEVELS_TDF_LVL// Description : Current Transfer-Data-FIFO fill level#defineDMA_FIFO_LEVELS_TDF_LVL_RESET_u(0x00)#defineDMA_FIFO_LEVELS_TDF_LVL_BITS_u(0x000000ff)#defineDMA_FIFO_LEVELS_TDF_LVL_MSB_u(7)#defineDMA_FIFO_LEVELS_TDF_LVL_LSB_u(0)#defineDMA_FIFO_LEVELS_TDF_LVL_ACCESS"RO"// =============================================================================// Register : DMA_CHAN_ABORT// Description : Abort an in-progress transfer sequence on one or more channels// Each bit corresponds to a channel. Writing a 1 aborts whatever// transfer sequence is in progress on that channel. The bit will// remain high until any in-flight transfers have been flushed// through the address and data FIFOs.//// After writing, this register must be polled until it returns// all-zero. Until this point, it is unsafe to restart the// channel.#defineDMA_CHAN_ABORT_OFFSET_u(0x00000464)#defineDMA_CHAN_ABORT_BITS_u(0x0000ffff)#defineDMA_CHAN_ABORT_RESET_u(0x00000000)#defineDMA_CHAN_ABORT_MSB_u(15)#defineDMA_CHAN_ABORT_LSB_u(0)#defineDMA_CHAN_ABORT_ACCESS"SC"// =============================================================================// Register : DMA_N_CHANNELS// Description : The number of channels this DMA instance is equipped with. This// DMA supports up to 16 hardware channels, but can be configured// with as few as one, to minimise silicon area.#defineDMA_N_CHANNELS_OFFSET_u(0x00000468)#defineDMA_N_CHANNELS_BITS_u(0x0000001f)#defineDMA_N_CHANNELS_RESET"-"#defineDMA_N_CHANNELS_MSB_u(4)#defineDMA_N_CHANNELS_LSB_u(0)#defineDMA_N_CHANNELS_ACCESS"RO"// =============================================================================// Register : DMA_SECCFG_CH0// Description : Security configuration for channel 0. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH0_OFFSET_u(0x00000480)#defineDMA_SECCFG_CH0_BITS_u(0x00000007)#defineDMA_SECCFG_CH0_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH0_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH0_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH0_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH0_LOCK_MSB_u(2)#defineDMA_SECCFG_CH0_LOCK_LSB_u(2)#defineDMA_SECCFG_CH0_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH0_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH0_S_RESET_u(0x1)#defineDMA_SECCFG_CH0_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH0_S_MSB_u(1)#defineDMA_SECCFG_CH0_S_LSB_u(1)#defineDMA_SECCFG_CH0_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH0_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH0_P_RESET_u(0x1)#defineDMA_SECCFG_CH0_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH0_P_MSB_u(0)#defineDMA_SECCFG_CH0_P_LSB_u(0)#defineDMA_SECCFG_CH0_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH1// Description : Security configuration for channel 1. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH1_OFFSET_u(0x00000484)#defineDMA_SECCFG_CH1_BITS_u(0x00000007)#defineDMA_SECCFG_CH1_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH1_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH1_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH1_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH1_LOCK_MSB_u(2)#defineDMA_SECCFG_CH1_LOCK_LSB_u(2)#defineDMA_SECCFG_CH1_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH1_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH1_S_RESET_u(0x1)#defineDMA_SECCFG_CH1_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH1_S_MSB_u(1)#defineDMA_SECCFG_CH1_S_LSB_u(1)#defineDMA_SECCFG_CH1_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH1_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH1_P_RESET_u(0x1)#defineDMA_SECCFG_CH1_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH1_P_MSB_u(0)#defineDMA_SECCFG_CH1_P_LSB_u(0)#defineDMA_SECCFG_CH1_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH2// Description : Security configuration for channel 2. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH2_OFFSET_u(0x00000488)#defineDMA_SECCFG_CH2_BITS_u(0x00000007)#defineDMA_SECCFG_CH2_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH2_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH2_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH2_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH2_LOCK_MSB_u(2)#defineDMA_SECCFG_CH2_LOCK_LSB_u(2)#defineDMA_SECCFG_CH2_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH2_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH2_S_RESET_u(0x1)#defineDMA_SECCFG_CH2_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH2_S_MSB_u(1)#defineDMA_SECCFG_CH2_S_LSB_u(1)#defineDMA_SECCFG_CH2_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH2_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH2_P_RESET_u(0x1)#defineDMA_SECCFG_CH2_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH2_P_MSB_u(0)#defineDMA_SECCFG_CH2_P_LSB_u(0)#defineDMA_SECCFG_CH2_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH3// Description : Security configuration for channel 3. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH3_OFFSET_u(0x0000048c)#defineDMA_SECCFG_CH3_BITS_u(0x00000007)#defineDMA_SECCFG_CH3_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH3_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH3_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH3_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH3_LOCK_MSB_u(2)#defineDMA_SECCFG_CH3_LOCK_LSB_u(2)#defineDMA_SECCFG_CH3_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH3_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH3_S_RESET_u(0x1)#defineDMA_SECCFG_CH3_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH3_S_MSB_u(1)#defineDMA_SECCFG_CH3_S_LSB_u(1)#defineDMA_SECCFG_CH3_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH3_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH3_P_RESET_u(0x1)#defineDMA_SECCFG_CH3_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH3_P_MSB_u(0)#defineDMA_SECCFG_CH3_P_LSB_u(0)#defineDMA_SECCFG_CH3_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH4// Description : Security configuration for channel 4. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH4_OFFSET_u(0x00000490)#defineDMA_SECCFG_CH4_BITS_u(0x00000007)#defineDMA_SECCFG_CH4_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH4_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH4_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH4_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH4_LOCK_MSB_u(2)#defineDMA_SECCFG_CH4_LOCK_LSB_u(2)#defineDMA_SECCFG_CH4_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH4_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH4_S_RESET_u(0x1)#defineDMA_SECCFG_CH4_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH4_S_MSB_u(1)#defineDMA_SECCFG_CH4_S_LSB_u(1)#defineDMA_SECCFG_CH4_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH4_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH4_P_RESET_u(0x1)#defineDMA_SECCFG_CH4_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH4_P_MSB_u(0)#defineDMA_SECCFG_CH4_P_LSB_u(0)#defineDMA_SECCFG_CH4_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH5// Description : Security configuration for channel 5. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH5_OFFSET_u(0x00000494)#defineDMA_SECCFG_CH5_BITS_u(0x00000007)#defineDMA_SECCFG_CH5_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH5_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH5_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH5_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH5_LOCK_MSB_u(2)#defineDMA_SECCFG_CH5_LOCK_LSB_u(2)#defineDMA_SECCFG_CH5_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH5_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH5_S_RESET_u(0x1)#defineDMA_SECCFG_CH5_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH5_S_MSB_u(1)#defineDMA_SECCFG_CH5_S_LSB_u(1)#defineDMA_SECCFG_CH5_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH5_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH5_P_RESET_u(0x1)#defineDMA_SECCFG_CH5_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH5_P_MSB_u(0)#defineDMA_SECCFG_CH5_P_LSB_u(0)#defineDMA_SECCFG_CH5_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH6// Description : Security configuration for channel 6. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH6_OFFSET_u(0x00000498)#defineDMA_SECCFG_CH6_BITS_u(0x00000007)#defineDMA_SECCFG_CH6_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH6_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH6_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH6_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH6_LOCK_MSB_u(2)#defineDMA_SECCFG_CH6_LOCK_LSB_u(2)#defineDMA_SECCFG_CH6_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH6_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH6_S_RESET_u(0x1)#defineDMA_SECCFG_CH6_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH6_S_MSB_u(1)#defineDMA_SECCFG_CH6_S_LSB_u(1)#defineDMA_SECCFG_CH6_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH6_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH6_P_RESET_u(0x1)#defineDMA_SECCFG_CH6_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH6_P_MSB_u(0)#defineDMA_SECCFG_CH6_P_LSB_u(0)#defineDMA_SECCFG_CH6_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH7// Description : Security configuration for channel 7. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH7_OFFSET_u(0x0000049c)#defineDMA_SECCFG_CH7_BITS_u(0x00000007)#defineDMA_SECCFG_CH7_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH7_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH7_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH7_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH7_LOCK_MSB_u(2)#defineDMA_SECCFG_CH7_LOCK_LSB_u(2)#defineDMA_SECCFG_CH7_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH7_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH7_S_RESET_u(0x1)#defineDMA_SECCFG_CH7_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH7_S_MSB_u(1)#defineDMA_SECCFG_CH7_S_LSB_u(1)#defineDMA_SECCFG_CH7_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH7_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH7_P_RESET_u(0x1)#defineDMA_SECCFG_CH7_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH7_P_MSB_u(0)#defineDMA_SECCFG_CH7_P_LSB_u(0)#defineDMA_SECCFG_CH7_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH8// Description : Security configuration for channel 8. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH8_OFFSET_u(0x000004a0)#defineDMA_SECCFG_CH8_BITS_u(0x00000007)#defineDMA_SECCFG_CH8_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH8_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH8_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH8_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH8_LOCK_MSB_u(2)#defineDMA_SECCFG_CH8_LOCK_LSB_u(2)#defineDMA_SECCFG_CH8_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH8_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH8_S_RESET_u(0x1)#defineDMA_SECCFG_CH8_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH8_S_MSB_u(1)#defineDMA_SECCFG_CH8_S_LSB_u(1)#defineDMA_SECCFG_CH8_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH8_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH8_P_RESET_u(0x1)#defineDMA_SECCFG_CH8_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH8_P_MSB_u(0)#defineDMA_SECCFG_CH8_P_LSB_u(0)#defineDMA_SECCFG_CH8_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH9// Description : Security configuration for channel 9. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH9_OFFSET_u(0x000004a4)#defineDMA_SECCFG_CH9_BITS_u(0x00000007)#defineDMA_SECCFG_CH9_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH9_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH9_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH9_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH9_LOCK_MSB_u(2)#defineDMA_SECCFG_CH9_LOCK_LSB_u(2)#defineDMA_SECCFG_CH9_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH9_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH9_S_RESET_u(0x1)#defineDMA_SECCFG_CH9_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH9_S_MSB_u(1)#defineDMA_SECCFG_CH9_S_LSB_u(1)#defineDMA_SECCFG_CH9_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH9_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH9_P_RESET_u(0x1)#defineDMA_SECCFG_CH9_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH9_P_MSB_u(0)#defineDMA_SECCFG_CH9_P_LSB_u(0)#defineDMA_SECCFG_CH9_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH10// Description : Security configuration for channel 10. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH10_OFFSET_u(0x000004a8)#defineDMA_SECCFG_CH10_BITS_u(0x00000007)#defineDMA_SECCFG_CH10_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH10_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH10_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH10_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH10_LOCK_MSB_u(2)#defineDMA_SECCFG_CH10_LOCK_LSB_u(2)#defineDMA_SECCFG_CH10_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH10_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH10_S_RESET_u(0x1)#defineDMA_SECCFG_CH10_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH10_S_MSB_u(1)#defineDMA_SECCFG_CH10_S_LSB_u(1)#defineDMA_SECCFG_CH10_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH10_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH10_P_RESET_u(0x1)#defineDMA_SECCFG_CH10_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH10_P_MSB_u(0)#defineDMA_SECCFG_CH10_P_LSB_u(0)#defineDMA_SECCFG_CH10_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH11// Description : Security configuration for channel 11. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH11_OFFSET_u(0x000004ac)#defineDMA_SECCFG_CH11_BITS_u(0x00000007)#defineDMA_SECCFG_CH11_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH11_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH11_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH11_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH11_LOCK_MSB_u(2)#defineDMA_SECCFG_CH11_LOCK_LSB_u(2)#defineDMA_SECCFG_CH11_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH11_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH11_S_RESET_u(0x1)#defineDMA_SECCFG_CH11_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH11_S_MSB_u(1)#defineDMA_SECCFG_CH11_S_LSB_u(1)#defineDMA_SECCFG_CH11_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH11_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH11_P_RESET_u(0x1)#defineDMA_SECCFG_CH11_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH11_P_MSB_u(0)#defineDMA_SECCFG_CH11_P_LSB_u(0)#defineDMA_SECCFG_CH11_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH12// Description : Security configuration for channel 12. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH12_OFFSET_u(0x000004b0)#defineDMA_SECCFG_CH12_BITS_u(0x00000007)#defineDMA_SECCFG_CH12_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH12_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH12_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH12_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH12_LOCK_MSB_u(2)#defineDMA_SECCFG_CH12_LOCK_LSB_u(2)#defineDMA_SECCFG_CH12_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH12_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH12_S_RESET_u(0x1)#defineDMA_SECCFG_CH12_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH12_S_MSB_u(1)#defineDMA_SECCFG_CH12_S_LSB_u(1)#defineDMA_SECCFG_CH12_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH12_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH12_P_RESET_u(0x1)#defineDMA_SECCFG_CH12_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH12_P_MSB_u(0)#defineDMA_SECCFG_CH12_P_LSB_u(0)#defineDMA_SECCFG_CH12_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH13// Description : Security configuration for channel 13. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH13_OFFSET_u(0x000004b4)#defineDMA_SECCFG_CH13_BITS_u(0x00000007)#defineDMA_SECCFG_CH13_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH13_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH13_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH13_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH13_LOCK_MSB_u(2)#defineDMA_SECCFG_CH13_LOCK_LSB_u(2)#defineDMA_SECCFG_CH13_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH13_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH13_S_RESET_u(0x1)#defineDMA_SECCFG_CH13_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH13_S_MSB_u(1)#defineDMA_SECCFG_CH13_S_LSB_u(1)#defineDMA_SECCFG_CH13_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH13_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH13_P_RESET_u(0x1)#defineDMA_SECCFG_CH13_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH13_P_MSB_u(0)#defineDMA_SECCFG_CH13_P_LSB_u(0)#defineDMA_SECCFG_CH13_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH14// Description : Security configuration for channel 14. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH14_OFFSET_u(0x000004b8)#defineDMA_SECCFG_CH14_BITS_u(0x00000007)#defineDMA_SECCFG_CH14_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH14_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH14_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH14_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH14_LOCK_MSB_u(2)#defineDMA_SECCFG_CH14_LOCK_LSB_u(2)#defineDMA_SECCFG_CH14_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH14_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH14_S_RESET_u(0x1)#defineDMA_SECCFG_CH14_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH14_S_MSB_u(1)#defineDMA_SECCFG_CH14_S_LSB_u(1)#defineDMA_SECCFG_CH14_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH14_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH14_P_RESET_u(0x1)#defineDMA_SECCFG_CH14_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH14_P_MSB_u(0)#defineDMA_SECCFG_CH14_P_LSB_u(0)#defineDMA_SECCFG_CH14_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_CH15// Description : Security configuration for channel 15. Control whether this// channel performs Secure/Non-secure and Privileged/Unprivileged// bus accesses.//// If this channel generates bus accesses of some security level,// an access of at least that level (in the order S+P > S+U > NS+P// > NS+U) is required to program, trigger, abort, check the// status of, interrupt on or acknowledge the interrupt of this// channel.//// This register automatically locks down (becomes read-only) once// software starts to configure the channel.//// This register is world-readable, but is writable only from a// Secure, Privileged context.#defineDMA_SECCFG_CH15_OFFSET_u(0x000004bc)#defineDMA_SECCFG_CH15_BITS_u(0x00000007)#defineDMA_SECCFG_CH15_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH15_LOCK// Description : LOCK is 0 at reset, and is set to 1 automatically upon a// successful write to this channel's control registers. That is,// a write to CTRL, READ_ADDR, WRITE_ADDR, TRANS_COUNT and their// aliases.//// Once its LOCK bit is set, this register becomes read-only.//// A failed write, for example due to the write's privilege being// lower than that specified in the channel's SECCFG register,// will not set the LOCK bit.#defineDMA_SECCFG_CH15_LOCK_RESET_u(0x0)#defineDMA_SECCFG_CH15_LOCK_BITS_u(0x00000004)#defineDMA_SECCFG_CH15_LOCK_MSB_u(2)#defineDMA_SECCFG_CH15_LOCK_LSB_u(2)#defineDMA_SECCFG_CH15_LOCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH15_S// Description : Secure channel. If 1, this channel performs Secure bus// accesses. If 0, it performs Non-secure bus accesses.//// If 1, this channel is controllable only from a Secure context.#defineDMA_SECCFG_CH15_S_RESET_u(0x1)#defineDMA_SECCFG_CH15_S_BITS_u(0x00000002)#defineDMA_SECCFG_CH15_S_MSB_u(1)#defineDMA_SECCFG_CH15_S_LSB_u(1)#defineDMA_SECCFG_CH15_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_CH15_P// Description : Privileged channel. If 1, this channel performs Privileged bus// accesses. If 0, it performs Unprivileged bus accesses.//// If 1, this channel is controllable only from a Privileged// context of the same Secure/Non-secure level, or any context of// a higher Secure/Non-secure level.#defineDMA_SECCFG_CH15_P_RESET_u(0x1)#defineDMA_SECCFG_CH15_P_BITS_u(0x00000001)#defineDMA_SECCFG_CH15_P_MSB_u(0)#defineDMA_SECCFG_CH15_P_LSB_u(0)#defineDMA_SECCFG_CH15_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_IRQ0// Description : Security configuration for IRQ 0. Control whether the IRQ// permits configuration by Non-secure/Unprivileged contexts, and// whether it can observe Secure/Privileged channel interrupt// flags.#defineDMA_SECCFG_IRQ0_OFFSET_u(0x000004c0)#defineDMA_SECCFG_IRQ0_BITS_u(0x00000003)#defineDMA_SECCFG_IRQ0_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ0_S// Description : Secure IRQ. If 1, this IRQ's control registers can only be// accessed from a Secure context.//// If 0, this IRQ's control registers can be accessed from a Non-// secure context, but Secure channels (as per SECCFG_CHx) are// masked from the IRQ status, and this IRQ's registers can not be// used to acknowledge the channel interrupts of Secure channels.#defineDMA_SECCFG_IRQ0_S_RESET_u(0x1)#defineDMA_SECCFG_IRQ0_S_BITS_u(0x00000002)#defineDMA_SECCFG_IRQ0_S_MSB_u(1)#defineDMA_SECCFG_IRQ0_S_LSB_u(1)#defineDMA_SECCFG_IRQ0_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ0_P// Description : Privileged IRQ. If 1, this IRQ's control registers can only be// accessed from a Privileged context.//// If 0, this IRQ's control registers can be accessed from an// Unprivileged context, but Privileged channels (as per// SECCFG_CHx) are masked from the IRQ status, and this IRQ's// registers can not be used to acknowledge the channel interrupts// of Privileged channels.#defineDMA_SECCFG_IRQ0_P_RESET_u(0x1)#defineDMA_SECCFG_IRQ0_P_BITS_u(0x00000001)#defineDMA_SECCFG_IRQ0_P_MSB_u(0)#defineDMA_SECCFG_IRQ0_P_LSB_u(0)#defineDMA_SECCFG_IRQ0_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_IRQ1// Description : Security configuration for IRQ 1. Control whether the IRQ// permits configuration by Non-secure/Unprivileged contexts, and// whether it can observe Secure/Privileged channel interrupt// flags.#defineDMA_SECCFG_IRQ1_OFFSET_u(0x000004c4)#defineDMA_SECCFG_IRQ1_BITS_u(0x00000003)#defineDMA_SECCFG_IRQ1_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ1_S// Description : Secure IRQ. If 1, this IRQ's control registers can only be// accessed from a Secure context.//// If 0, this IRQ's control registers can be accessed from a Non-// secure context, but Secure channels (as per SECCFG_CHx) are// masked from the IRQ status, and this IRQ's registers can not be// used to acknowledge the channel interrupts of Secure channels.#defineDMA_SECCFG_IRQ1_S_RESET_u(0x1)#defineDMA_SECCFG_IRQ1_S_BITS_u(0x00000002)#defineDMA_SECCFG_IRQ1_S_MSB_u(1)#defineDMA_SECCFG_IRQ1_S_LSB_u(1)#defineDMA_SECCFG_IRQ1_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ1_P// Description : Privileged IRQ. If 1, this IRQ's control registers can only be// accessed from a Privileged context.//// If 0, this IRQ's control registers can be accessed from an// Unprivileged context, but Privileged channels (as per// SECCFG_CHx) are masked from the IRQ status, and this IRQ's// registers can not be used to acknowledge the channel interrupts// of Privileged channels.#defineDMA_SECCFG_IRQ1_P_RESET_u(0x1)#defineDMA_SECCFG_IRQ1_P_BITS_u(0x00000001)#defineDMA_SECCFG_IRQ1_P_MSB_u(0)#defineDMA_SECCFG_IRQ1_P_LSB_u(0)#defineDMA_SECCFG_IRQ1_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_IRQ2// Description : Security configuration for IRQ 2. Control whether the IRQ// permits configuration by Non-secure/Unprivileged contexts, and// whether it can observe Secure/Privileged channel interrupt// flags.#defineDMA_SECCFG_IRQ2_OFFSET_u(0x000004c8)#defineDMA_SECCFG_IRQ2_BITS_u(0x00000003)#defineDMA_SECCFG_IRQ2_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ2_S// Description : Secure IRQ. If 1, this IRQ's control registers can only be// accessed from a Secure context.//// If 0, this IRQ's control registers can be accessed from a Non-// secure context, but Secure channels (as per SECCFG_CHx) are// masked from the IRQ status, and this IRQ's registers can not be// used to acknowledge the channel interrupts of Secure channels.#defineDMA_SECCFG_IRQ2_S_RESET_u(0x1)#defineDMA_SECCFG_IRQ2_S_BITS_u(0x00000002)#defineDMA_SECCFG_IRQ2_S_MSB_u(1)#defineDMA_SECCFG_IRQ2_S_LSB_u(1)#defineDMA_SECCFG_IRQ2_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ2_P// Description : Privileged IRQ. If 1, this IRQ's control registers can only be// accessed from a Privileged context.//// If 0, this IRQ's control registers can be accessed from an// Unprivileged context, but Privileged channels (as per// SECCFG_CHx) are masked from the IRQ status, and this IRQ's// registers can not be used to acknowledge the channel interrupts// of Privileged channels.#defineDMA_SECCFG_IRQ2_P_RESET_u(0x1)#defineDMA_SECCFG_IRQ2_P_BITS_u(0x00000001)#defineDMA_SECCFG_IRQ2_P_MSB_u(0)#defineDMA_SECCFG_IRQ2_P_LSB_u(0)#defineDMA_SECCFG_IRQ2_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_IRQ3// Description : Security configuration for IRQ 3. Control whether the IRQ// permits configuration by Non-secure/Unprivileged contexts, and// whether it can observe Secure/Privileged channel interrupt// flags.#defineDMA_SECCFG_IRQ3_OFFSET_u(0x000004cc)#defineDMA_SECCFG_IRQ3_BITS_u(0x00000003)#defineDMA_SECCFG_IRQ3_RESET_u(0x00000003)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ3_S// Description : Secure IRQ. If 1, this IRQ's control registers can only be// accessed from a Secure context.//// If 0, this IRQ's control registers can be accessed from a Non-// secure context, but Secure channels (as per SECCFG_CHx) are// masked from the IRQ status, and this IRQ's registers can not be// used to acknowledge the channel interrupts of Secure channels.#defineDMA_SECCFG_IRQ3_S_RESET_u(0x1)#defineDMA_SECCFG_IRQ3_S_BITS_u(0x00000002)#defineDMA_SECCFG_IRQ3_S_MSB_u(1)#defineDMA_SECCFG_IRQ3_S_LSB_u(1)#defineDMA_SECCFG_IRQ3_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_IRQ3_P// Description : Privileged IRQ. If 1, this IRQ's control registers can only be// accessed from a Privileged context.//// If 0, this IRQ's control registers can be accessed from an// Unprivileged context, but Privileged channels (as per// SECCFG_CHx) are masked from the IRQ status, and this IRQ's// registers can not be used to acknowledge the channel interrupts// of Privileged channels.#defineDMA_SECCFG_IRQ3_P_RESET_u(0x1)#defineDMA_SECCFG_IRQ3_P_BITS_u(0x00000001)#defineDMA_SECCFG_IRQ3_P_MSB_u(0)#defineDMA_SECCFG_IRQ3_P_LSB_u(0)#defineDMA_SECCFG_IRQ3_P_ACCESS"RW"// =============================================================================// Register : DMA_SECCFG_MISC// Description : Miscellaneous security configuration#defineDMA_SECCFG_MISC_OFFSET_u(0x000004d0)#defineDMA_SECCFG_MISC_BITS_u(0x000003ff)#defineDMA_SECCFG_MISC_RESET_u(0x000003ff)// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER3_S// Description : If 1, the TIMER3 register is only accessible from a Secure// context, and timer DREQ 3 is only visible to Secure channels.#defineDMA_SECCFG_MISC_TIMER3_S_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER3_S_BITS_u(0x00000200)#defineDMA_SECCFG_MISC_TIMER3_S_MSB_u(9)#defineDMA_SECCFG_MISC_TIMER3_S_LSB_u(9)#defineDMA_SECCFG_MISC_TIMER3_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER3_P// Description : If 1, the TIMER3 register is only accessible from a Privileged// (or more Secure) context, and timer DREQ 3 is only visible to// Privileged (or more Secure) channels.#defineDMA_SECCFG_MISC_TIMER3_P_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER3_P_BITS_u(0x00000100)#defineDMA_SECCFG_MISC_TIMER3_P_MSB_u(8)#defineDMA_SECCFG_MISC_TIMER3_P_LSB_u(8)#defineDMA_SECCFG_MISC_TIMER3_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER2_S// Description : If 1, the TIMER2 register is only accessible from a Secure// context, and timer DREQ 2 is only visible to Secure channels.#defineDMA_SECCFG_MISC_TIMER2_S_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER2_S_BITS_u(0x00000080)#defineDMA_SECCFG_MISC_TIMER2_S_MSB_u(7)#defineDMA_SECCFG_MISC_TIMER2_S_LSB_u(7)#defineDMA_SECCFG_MISC_TIMER2_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER2_P// Description : If 1, the TIMER2 register is only accessible from a Privileged// (or more Secure) context, and timer DREQ 2 is only visible to// Privileged (or more Secure) channels.#defineDMA_SECCFG_MISC_TIMER2_P_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER2_P_BITS_u(0x00000040)#defineDMA_SECCFG_MISC_TIMER2_P_MSB_u(6)#defineDMA_SECCFG_MISC_TIMER2_P_LSB_u(6)#defineDMA_SECCFG_MISC_TIMER2_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER1_S// Description : If 1, the TIMER1 register is only accessible from a Secure// context, and timer DREQ 1 is only visible to Secure channels.#defineDMA_SECCFG_MISC_TIMER1_S_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER1_S_BITS_u(0x00000020)#defineDMA_SECCFG_MISC_TIMER1_S_MSB_u(5)#defineDMA_SECCFG_MISC_TIMER1_S_LSB_u(5)#defineDMA_SECCFG_MISC_TIMER1_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER1_P// Description : If 1, the TIMER1 register is only accessible from a Privileged// (or more Secure) context, and timer DREQ 1 is only visible to// Privileged (or more Secure) channels.#defineDMA_SECCFG_MISC_TIMER1_P_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER1_P_BITS_u(0x00000010)#defineDMA_SECCFG_MISC_TIMER1_P_MSB_u(4)#defineDMA_SECCFG_MISC_TIMER1_P_LSB_u(4)#defineDMA_SECCFG_MISC_TIMER1_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER0_S// Description : If 1, the TIMER0 register is only accessible from a Secure// context, and timer DREQ 0 is only visible to Secure channels.#defineDMA_SECCFG_MISC_TIMER0_S_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER0_S_BITS_u(0x00000008)#defineDMA_SECCFG_MISC_TIMER0_S_MSB_u(3)#defineDMA_SECCFG_MISC_TIMER0_S_LSB_u(3)#defineDMA_SECCFG_MISC_TIMER0_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_TIMER0_P// Description : If 1, the TIMER0 register is only accessible from a Privileged// (or more Secure) context, and timer DREQ 0 is only visible to// Privileged (or more Secure) channels.#defineDMA_SECCFG_MISC_TIMER0_P_RESET_u(0x1)#defineDMA_SECCFG_MISC_TIMER0_P_BITS_u(0x00000004)#defineDMA_SECCFG_MISC_TIMER0_P_MSB_u(2)#defineDMA_SECCFG_MISC_TIMER0_P_LSB_u(2)#defineDMA_SECCFG_MISC_TIMER0_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_SNIFF_S// Description : If 1, the sniffer can see data transfers from Secure channels,// and can itself only be accessed from a Secure context.//// If 0, the sniffer can be accessed from either a Secure or Non-// secure context, but can not see data transfers of Secure// channels.#defineDMA_SECCFG_MISC_SNIFF_S_RESET_u(0x1)#defineDMA_SECCFG_MISC_SNIFF_S_BITS_u(0x00000002)#defineDMA_SECCFG_MISC_SNIFF_S_MSB_u(1)#defineDMA_SECCFG_MISC_SNIFF_S_LSB_u(1)#defineDMA_SECCFG_MISC_SNIFF_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_SECCFG_MISC_SNIFF_P// Description : If 1, the sniffer can see data transfers from Privileged// channels, and can itself only be accessed from a privileged// context, or from a Secure context when SNIFF_S is 0.//// If 0, the sniffer can be accessed from either a Privileged or// Unprivileged context (with sufficient security level) but can// not see transfers from Privileged channels.#defineDMA_SECCFG_MISC_SNIFF_P_RESET_u(0x1)#defineDMA_SECCFG_MISC_SNIFF_P_BITS_u(0x00000001)#defineDMA_SECCFG_MISC_SNIFF_P_MSB_u(0)#defineDMA_SECCFG_MISC_SNIFF_P_LSB_u(0)#defineDMA_SECCFG_MISC_SNIFF_P_ACCESS"RW"// =============================================================================// Register : DMA_MPU_CTRL// Description : Control register for DMA MPU. Accessible only from a Privileged// context.#defineDMA_MPU_CTRL_OFFSET_u(0x00000500)#defineDMA_MPU_CTRL_BITS_u(0x0000000e)#defineDMA_MPU_CTRL_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_CTRL_NS_HIDE_ADDR// Description : By default, when a region's S bit is clear, Non-secure-// Privileged reads can see the region's base address and limit// address. Set this bit to make the addresses appear as 0 to Non-// secure reads, even when the region is Non-secure, to avoid// leaking information about the processor SAU map.#defineDMA_MPU_CTRL_NS_HIDE_ADDR_RESET_u(0x0)#defineDMA_MPU_CTRL_NS_HIDE_ADDR_BITS_u(0x00000008)#defineDMA_MPU_CTRL_NS_HIDE_ADDR_MSB_u(3)#defineDMA_MPU_CTRL_NS_HIDE_ADDR_LSB_u(3)#defineDMA_MPU_CTRL_NS_HIDE_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_CTRL_S// Description : Determine whether an address not covered by an active MPU// region is Secure (1) or Non-secure (0)#defineDMA_MPU_CTRL_S_RESET_u(0x0)#defineDMA_MPU_CTRL_S_BITS_u(0x00000004)#defineDMA_MPU_CTRL_S_MSB_u(2)#defineDMA_MPU_CTRL_S_LSB_u(2)#defineDMA_MPU_CTRL_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_CTRL_P// Description : Determine whether an address not covered by an active MPU// region is Privileged (1) or Unprivileged (0)#defineDMA_MPU_CTRL_P_RESET_u(0x0)#defineDMA_MPU_CTRL_P_BITS_u(0x00000002)#defineDMA_MPU_CTRL_P_MSB_u(1)#defineDMA_MPU_CTRL_P_LSB_u(1)#defineDMA_MPU_CTRL_P_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR0// Description : Base address register for MPU region 0. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR0_OFFSET_u(0x00000504)#defineDMA_MPU_BAR0_BITS_u(0xffffffe0)#defineDMA_MPU_BAR0_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR0_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR0_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR0_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR0_ADDR_MSB_u(31)#defineDMA_MPU_BAR0_ADDR_LSB_u(5)#defineDMA_MPU_BAR0_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR0// Description : Limit address register for MPU region 0. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR0_OFFSET_u(0x00000508)#defineDMA_MPU_LAR0_BITS_u(0xffffffe7)#defineDMA_MPU_LAR0_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR0_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR0_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR0_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR0_ADDR_MSB_u(31)#defineDMA_MPU_LAR0_ADDR_LSB_u(5)#defineDMA_MPU_LAR0_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR0_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR0_S_RESET_u(0x0)#defineDMA_MPU_LAR0_S_BITS_u(0x00000004)#defineDMA_MPU_LAR0_S_MSB_u(2)#defineDMA_MPU_LAR0_S_LSB_u(2)#defineDMA_MPU_LAR0_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR0_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR0_P_RESET_u(0x0)#defineDMA_MPU_LAR0_P_BITS_u(0x00000002)#defineDMA_MPU_LAR0_P_MSB_u(1)#defineDMA_MPU_LAR0_P_LSB_u(1)#defineDMA_MPU_LAR0_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR0_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR0_EN_RESET_u(0x0)#defineDMA_MPU_LAR0_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR0_EN_MSB_u(0)#defineDMA_MPU_LAR0_EN_LSB_u(0)#defineDMA_MPU_LAR0_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR1// Description : Base address register for MPU region 1. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR1_OFFSET_u(0x0000050c)#defineDMA_MPU_BAR1_BITS_u(0xffffffe0)#defineDMA_MPU_BAR1_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR1_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR1_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR1_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR1_ADDR_MSB_u(31)#defineDMA_MPU_BAR1_ADDR_LSB_u(5)#defineDMA_MPU_BAR1_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR1// Description : Limit address register for MPU region 1. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR1_OFFSET_u(0x00000510)#defineDMA_MPU_LAR1_BITS_u(0xffffffe7)#defineDMA_MPU_LAR1_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR1_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR1_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR1_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR1_ADDR_MSB_u(31)#defineDMA_MPU_LAR1_ADDR_LSB_u(5)#defineDMA_MPU_LAR1_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR1_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR1_S_RESET_u(0x0)#defineDMA_MPU_LAR1_S_BITS_u(0x00000004)#defineDMA_MPU_LAR1_S_MSB_u(2)#defineDMA_MPU_LAR1_S_LSB_u(2)#defineDMA_MPU_LAR1_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR1_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR1_P_RESET_u(0x0)#defineDMA_MPU_LAR1_P_BITS_u(0x00000002)#defineDMA_MPU_LAR1_P_MSB_u(1)#defineDMA_MPU_LAR1_P_LSB_u(1)#defineDMA_MPU_LAR1_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR1_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR1_EN_RESET_u(0x0)#defineDMA_MPU_LAR1_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR1_EN_MSB_u(0)#defineDMA_MPU_LAR1_EN_LSB_u(0)#defineDMA_MPU_LAR1_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR2// Description : Base address register for MPU region 2. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR2_OFFSET_u(0x00000514)#defineDMA_MPU_BAR2_BITS_u(0xffffffe0)#defineDMA_MPU_BAR2_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR2_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR2_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR2_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR2_ADDR_MSB_u(31)#defineDMA_MPU_BAR2_ADDR_LSB_u(5)#defineDMA_MPU_BAR2_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR2// Description : Limit address register for MPU region 2. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR2_OFFSET_u(0x00000518)#defineDMA_MPU_LAR2_BITS_u(0xffffffe7)#defineDMA_MPU_LAR2_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR2_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR2_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR2_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR2_ADDR_MSB_u(31)#defineDMA_MPU_LAR2_ADDR_LSB_u(5)#defineDMA_MPU_LAR2_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR2_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR2_S_RESET_u(0x0)#defineDMA_MPU_LAR2_S_BITS_u(0x00000004)#defineDMA_MPU_LAR2_S_MSB_u(2)#defineDMA_MPU_LAR2_S_LSB_u(2)#defineDMA_MPU_LAR2_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR2_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR2_P_RESET_u(0x0)#defineDMA_MPU_LAR2_P_BITS_u(0x00000002)#defineDMA_MPU_LAR2_P_MSB_u(1)#defineDMA_MPU_LAR2_P_LSB_u(1)#defineDMA_MPU_LAR2_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR2_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR2_EN_RESET_u(0x0)#defineDMA_MPU_LAR2_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR2_EN_MSB_u(0)#defineDMA_MPU_LAR2_EN_LSB_u(0)#defineDMA_MPU_LAR2_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR3// Description : Base address register for MPU region 3. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR3_OFFSET_u(0x0000051c)#defineDMA_MPU_BAR3_BITS_u(0xffffffe0)#defineDMA_MPU_BAR3_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR3_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR3_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR3_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR3_ADDR_MSB_u(31)#defineDMA_MPU_BAR3_ADDR_LSB_u(5)#defineDMA_MPU_BAR3_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR3// Description : Limit address register for MPU region 3. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR3_OFFSET_u(0x00000520)#defineDMA_MPU_LAR3_BITS_u(0xffffffe7)#defineDMA_MPU_LAR3_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR3_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR3_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR3_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR3_ADDR_MSB_u(31)#defineDMA_MPU_LAR3_ADDR_LSB_u(5)#defineDMA_MPU_LAR3_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR3_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR3_S_RESET_u(0x0)#defineDMA_MPU_LAR3_S_BITS_u(0x00000004)#defineDMA_MPU_LAR3_S_MSB_u(2)#defineDMA_MPU_LAR3_S_LSB_u(2)#defineDMA_MPU_LAR3_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR3_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR3_P_RESET_u(0x0)#defineDMA_MPU_LAR3_P_BITS_u(0x00000002)#defineDMA_MPU_LAR3_P_MSB_u(1)#defineDMA_MPU_LAR3_P_LSB_u(1)#defineDMA_MPU_LAR3_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR3_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR3_EN_RESET_u(0x0)#defineDMA_MPU_LAR3_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR3_EN_MSB_u(0)#defineDMA_MPU_LAR3_EN_LSB_u(0)#defineDMA_MPU_LAR3_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR4// Description : Base address register for MPU region 4. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR4_OFFSET_u(0x00000524)#defineDMA_MPU_BAR4_BITS_u(0xffffffe0)#defineDMA_MPU_BAR4_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR4_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR4_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR4_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR4_ADDR_MSB_u(31)#defineDMA_MPU_BAR4_ADDR_LSB_u(5)#defineDMA_MPU_BAR4_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR4// Description : Limit address register for MPU region 4. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR4_OFFSET_u(0x00000528)#defineDMA_MPU_LAR4_BITS_u(0xffffffe7)#defineDMA_MPU_LAR4_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR4_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR4_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR4_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR4_ADDR_MSB_u(31)#defineDMA_MPU_LAR4_ADDR_LSB_u(5)#defineDMA_MPU_LAR4_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR4_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR4_S_RESET_u(0x0)#defineDMA_MPU_LAR4_S_BITS_u(0x00000004)#defineDMA_MPU_LAR4_S_MSB_u(2)#defineDMA_MPU_LAR4_S_LSB_u(2)#defineDMA_MPU_LAR4_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR4_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR4_P_RESET_u(0x0)#defineDMA_MPU_LAR4_P_BITS_u(0x00000002)#defineDMA_MPU_LAR4_P_MSB_u(1)#defineDMA_MPU_LAR4_P_LSB_u(1)#defineDMA_MPU_LAR4_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR4_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR4_EN_RESET_u(0x0)#defineDMA_MPU_LAR4_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR4_EN_MSB_u(0)#defineDMA_MPU_LAR4_EN_LSB_u(0)#defineDMA_MPU_LAR4_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR5// Description : Base address register for MPU region 5. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR5_OFFSET_u(0x0000052c)#defineDMA_MPU_BAR5_BITS_u(0xffffffe0)#defineDMA_MPU_BAR5_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR5_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR5_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR5_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR5_ADDR_MSB_u(31)#defineDMA_MPU_BAR5_ADDR_LSB_u(5)#defineDMA_MPU_BAR5_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR5// Description : Limit address register for MPU region 5. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR5_OFFSET_u(0x00000530)#defineDMA_MPU_LAR5_BITS_u(0xffffffe7)#defineDMA_MPU_LAR5_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR5_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR5_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR5_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR5_ADDR_MSB_u(31)#defineDMA_MPU_LAR5_ADDR_LSB_u(5)#defineDMA_MPU_LAR5_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR5_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR5_S_RESET_u(0x0)#defineDMA_MPU_LAR5_S_BITS_u(0x00000004)#defineDMA_MPU_LAR5_S_MSB_u(2)#defineDMA_MPU_LAR5_S_LSB_u(2)#defineDMA_MPU_LAR5_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR5_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR5_P_RESET_u(0x0)#defineDMA_MPU_LAR5_P_BITS_u(0x00000002)#defineDMA_MPU_LAR5_P_MSB_u(1)#defineDMA_MPU_LAR5_P_LSB_u(1)#defineDMA_MPU_LAR5_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR5_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR5_EN_RESET_u(0x0)#defineDMA_MPU_LAR5_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR5_EN_MSB_u(0)#defineDMA_MPU_LAR5_EN_LSB_u(0)#defineDMA_MPU_LAR5_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR6// Description : Base address register for MPU region 6. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR6_OFFSET_u(0x00000534)#defineDMA_MPU_BAR6_BITS_u(0xffffffe0)#defineDMA_MPU_BAR6_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR6_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR6_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR6_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR6_ADDR_MSB_u(31)#defineDMA_MPU_BAR6_ADDR_LSB_u(5)#defineDMA_MPU_BAR6_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR6// Description : Limit address register for MPU region 6. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR6_OFFSET_u(0x00000538)#defineDMA_MPU_LAR6_BITS_u(0xffffffe7)#defineDMA_MPU_LAR6_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR6_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR6_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR6_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR6_ADDR_MSB_u(31)#defineDMA_MPU_LAR6_ADDR_LSB_u(5)#defineDMA_MPU_LAR6_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR6_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR6_S_RESET_u(0x0)#defineDMA_MPU_LAR6_S_BITS_u(0x00000004)#defineDMA_MPU_LAR6_S_MSB_u(2)#defineDMA_MPU_LAR6_S_LSB_u(2)#defineDMA_MPU_LAR6_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR6_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR6_P_RESET_u(0x0)#defineDMA_MPU_LAR6_P_BITS_u(0x00000002)#defineDMA_MPU_LAR6_P_MSB_u(1)#defineDMA_MPU_LAR6_P_LSB_u(1)#defineDMA_MPU_LAR6_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR6_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR6_EN_RESET_u(0x0)#defineDMA_MPU_LAR6_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR6_EN_MSB_u(0)#defineDMA_MPU_LAR6_EN_LSB_u(0)#defineDMA_MPU_LAR6_EN_ACCESS"RW"// =============================================================================// Register : DMA_MPU_BAR7// Description : Base address register for MPU region 7. Writable only from a// Secure, Privileged context.#defineDMA_MPU_BAR7_OFFSET_u(0x0000053c)#defineDMA_MPU_BAR7_BITS_u(0xffffffe0)#defineDMA_MPU_BAR7_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_BAR7_ADDR// Description : This MPU region matches addresses where addr[31:5] (the 27 most// significant bits) are greater than or equal to BAR_ADDR, and// less than or equal to LAR_ADDR.//// Readable from any Privileged context, if and only if this// region's S bit is clear, and MPU_CTRL_NS_HIDE_ADDR is clear.// Otherwise readable only from a Secure, Privileged context.#defineDMA_MPU_BAR7_ADDR_RESET_u(0x0000000)#defineDMA_MPU_BAR7_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_BAR7_ADDR_MSB_u(31)#defineDMA_MPU_BAR7_ADDR_LSB_u(5)#defineDMA_MPU_BAR7_ADDR_ACCESS"RW"// =============================================================================// Register : DMA_MPU_LAR7// Description : Limit address register for MPU region 7. Writable only from a// Secure, Privileged context, with the exception of the P bit.#defineDMA_MPU_LAR7_OFFSET_u(0x00000540)#defineDMA_MPU_LAR7_BITS_u(0xffffffe7)#defineDMA_MPU_LAR7_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR7_ADDR// Description : Limit address bits 31:5. Readable from any Privileged context,// if and only if this region's S bit is clear, and// MPU_CTRL_NS_HIDE_ADDR is clear. Otherwise readable only from a// Secure, Privileged context.#defineDMA_MPU_LAR7_ADDR_RESET_u(0x0000000)#defineDMA_MPU_LAR7_ADDR_BITS_u(0xffffffe0)#defineDMA_MPU_LAR7_ADDR_MSB_u(31)#defineDMA_MPU_LAR7_ADDR_LSB_u(5)#defineDMA_MPU_LAR7_ADDR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR7_S// Description : Determines the Secure/Non-secure (=1/0) status of addresses// matching this region, if this region is enabled.#defineDMA_MPU_LAR7_S_RESET_u(0x0)#defineDMA_MPU_LAR7_S_BITS_u(0x00000004)#defineDMA_MPU_LAR7_S_MSB_u(2)#defineDMA_MPU_LAR7_S_LSB_u(2)#defineDMA_MPU_LAR7_S_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR7_P// Description : Determines the Privileged/Unprivileged (=1/0) status of// addresses matching this region, if this region is enabled.// Writable from any Privileged context, if and only if the S bit// is clear. Otherwise, writable only from a Secure, Privileged// context.#defineDMA_MPU_LAR7_P_RESET_u(0x0)#defineDMA_MPU_LAR7_P_BITS_u(0x00000002)#defineDMA_MPU_LAR7_P_MSB_u(1)#defineDMA_MPU_LAR7_P_LSB_u(1)#defineDMA_MPU_LAR7_P_ACCESS"RW"// -----------------------------------------------------------------------------// Field : DMA_MPU_LAR7_EN// Description : Region enable. If 1, any address within range specified by the// base address (BAR_ADDR) and limit address (LAR_ADDR) has the// attributes specified by S and P.#defineDMA_MPU_LAR7_EN_RESET_u(0x0)#defineDMA_MPU_LAR7_EN_BITS_u(0x00000001)#defineDMA_MPU_LAR7_EN_MSB_u(0)#defineDMA_MPU_LAR7_EN_LSB_u(0)#defineDMA_MPU_LAR7_EN_ACCESS"RW"// =============================================================================// Register : DMA_CH0_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH0_DBG_CTDREQ_OFFSET_u(0x00000800)#defineDMA_CH0_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH0_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH0_DBG_CTDREQ_MSB_u(5)#defineDMA_CH0_DBG_CTDREQ_LSB_u(0)#defineDMA_CH0_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH0_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH0_DBG_TCR_OFFSET_u(0x00000804)#defineDMA_CH0_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH0_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH0_DBG_TCR_MSB_u(31)#defineDMA_CH0_DBG_TCR_LSB_u(0)#defineDMA_CH0_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH1_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH1_DBG_CTDREQ_OFFSET_u(0x00000840)#defineDMA_CH1_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH1_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH1_DBG_CTDREQ_MSB_u(5)#defineDMA_CH1_DBG_CTDREQ_LSB_u(0)#defineDMA_CH1_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH1_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH1_DBG_TCR_OFFSET_u(0x00000844)#defineDMA_CH1_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH1_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH1_DBG_TCR_MSB_u(31)#defineDMA_CH1_DBG_TCR_LSB_u(0)#defineDMA_CH1_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH2_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH2_DBG_CTDREQ_OFFSET_u(0x00000880)#defineDMA_CH2_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH2_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH2_DBG_CTDREQ_MSB_u(5)#defineDMA_CH2_DBG_CTDREQ_LSB_u(0)#defineDMA_CH2_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH2_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH2_DBG_TCR_OFFSET_u(0x00000884)#defineDMA_CH2_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH2_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH2_DBG_TCR_MSB_u(31)#defineDMA_CH2_DBG_TCR_LSB_u(0)#defineDMA_CH2_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH3_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH3_DBG_CTDREQ_OFFSET_u(0x000008c0)#defineDMA_CH3_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH3_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH3_DBG_CTDREQ_MSB_u(5)#defineDMA_CH3_DBG_CTDREQ_LSB_u(0)#defineDMA_CH3_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH3_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH3_DBG_TCR_OFFSET_u(0x000008c4)#defineDMA_CH3_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH3_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH3_DBG_TCR_MSB_u(31)#defineDMA_CH3_DBG_TCR_LSB_u(0)#defineDMA_CH3_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH4_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH4_DBG_CTDREQ_OFFSET_u(0x00000900)#defineDMA_CH4_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH4_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH4_DBG_CTDREQ_MSB_u(5)#defineDMA_CH4_DBG_CTDREQ_LSB_u(0)#defineDMA_CH4_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH4_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH4_DBG_TCR_OFFSET_u(0x00000904)#defineDMA_CH4_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH4_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH4_DBG_TCR_MSB_u(31)#defineDMA_CH4_DBG_TCR_LSB_u(0)#defineDMA_CH4_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH5_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH5_DBG_CTDREQ_OFFSET_u(0x00000940)#defineDMA_CH5_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH5_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH5_DBG_CTDREQ_MSB_u(5)#defineDMA_CH5_DBG_CTDREQ_LSB_u(0)#defineDMA_CH5_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH5_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH5_DBG_TCR_OFFSET_u(0x00000944)#defineDMA_CH5_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH5_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH5_DBG_TCR_MSB_u(31)#defineDMA_CH5_DBG_TCR_LSB_u(0)#defineDMA_CH5_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH6_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH6_DBG_CTDREQ_OFFSET_u(0x00000980)#defineDMA_CH6_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH6_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH6_DBG_CTDREQ_MSB_u(5)#defineDMA_CH6_DBG_CTDREQ_LSB_u(0)#defineDMA_CH6_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH6_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH6_DBG_TCR_OFFSET_u(0x00000984)#defineDMA_CH6_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH6_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH6_DBG_TCR_MSB_u(31)#defineDMA_CH6_DBG_TCR_LSB_u(0)#defineDMA_CH6_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH7_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH7_DBG_CTDREQ_OFFSET_u(0x000009c0)#defineDMA_CH7_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH7_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH7_DBG_CTDREQ_MSB_u(5)#defineDMA_CH7_DBG_CTDREQ_LSB_u(0)#defineDMA_CH7_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH7_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH7_DBG_TCR_OFFSET_u(0x000009c4)#defineDMA_CH7_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH7_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH7_DBG_TCR_MSB_u(31)#defineDMA_CH7_DBG_TCR_LSB_u(0)#defineDMA_CH7_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH8_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH8_DBG_CTDREQ_OFFSET_u(0x00000a00)#defineDMA_CH8_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH8_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH8_DBG_CTDREQ_MSB_u(5)#defineDMA_CH8_DBG_CTDREQ_LSB_u(0)#defineDMA_CH8_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH8_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH8_DBG_TCR_OFFSET_u(0x00000a04)#defineDMA_CH8_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH8_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH8_DBG_TCR_MSB_u(31)#defineDMA_CH8_DBG_TCR_LSB_u(0)#defineDMA_CH8_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH9_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH9_DBG_CTDREQ_OFFSET_u(0x00000a40)#defineDMA_CH9_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH9_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH9_DBG_CTDREQ_MSB_u(5)#defineDMA_CH9_DBG_CTDREQ_LSB_u(0)#defineDMA_CH9_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH9_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH9_DBG_TCR_OFFSET_u(0x00000a44)#defineDMA_CH9_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH9_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH9_DBG_TCR_MSB_u(31)#defineDMA_CH9_DBG_TCR_LSB_u(0)#defineDMA_CH9_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH10_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH10_DBG_CTDREQ_OFFSET_u(0x00000a80)#defineDMA_CH10_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH10_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH10_DBG_CTDREQ_MSB_u(5)#defineDMA_CH10_DBG_CTDREQ_LSB_u(0)#defineDMA_CH10_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH10_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH10_DBG_TCR_OFFSET_u(0x00000a84)#defineDMA_CH10_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH10_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH10_DBG_TCR_MSB_u(31)#defineDMA_CH10_DBG_TCR_LSB_u(0)#defineDMA_CH10_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH11_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH11_DBG_CTDREQ_OFFSET_u(0x00000ac0)#defineDMA_CH11_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH11_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH11_DBG_CTDREQ_MSB_u(5)#defineDMA_CH11_DBG_CTDREQ_LSB_u(0)#defineDMA_CH11_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH11_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH11_DBG_TCR_OFFSET_u(0x00000ac4)#defineDMA_CH11_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH11_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH11_DBG_TCR_MSB_u(31)#defineDMA_CH11_DBG_TCR_LSB_u(0)#defineDMA_CH11_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH12_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH12_DBG_CTDREQ_OFFSET_u(0x00000b00)#defineDMA_CH12_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH12_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH12_DBG_CTDREQ_MSB_u(5)#defineDMA_CH12_DBG_CTDREQ_LSB_u(0)#defineDMA_CH12_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH12_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH12_DBG_TCR_OFFSET_u(0x00000b04)#defineDMA_CH12_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH12_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH12_DBG_TCR_MSB_u(31)#defineDMA_CH12_DBG_TCR_LSB_u(0)#defineDMA_CH12_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH13_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH13_DBG_CTDREQ_OFFSET_u(0x00000b40)#defineDMA_CH13_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH13_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH13_DBG_CTDREQ_MSB_u(5)#defineDMA_CH13_DBG_CTDREQ_LSB_u(0)#defineDMA_CH13_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH13_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH13_DBG_TCR_OFFSET_u(0x00000b44)#defineDMA_CH13_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH13_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH13_DBG_TCR_MSB_u(31)#defineDMA_CH13_DBG_TCR_LSB_u(0)#defineDMA_CH13_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH14_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH14_DBG_CTDREQ_OFFSET_u(0x00000b80)#defineDMA_CH14_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH14_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH14_DBG_CTDREQ_MSB_u(5)#defineDMA_CH14_DBG_CTDREQ_LSB_u(0)#defineDMA_CH14_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH14_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH14_DBG_TCR_OFFSET_u(0x00000b84)#defineDMA_CH14_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH14_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH14_DBG_TCR_MSB_u(31)#defineDMA_CH14_DBG_TCR_LSB_u(0)#defineDMA_CH14_DBG_TCR_ACCESS"RO"// =============================================================================// Register : DMA_CH15_DBG_CTDREQ// Description : Read: get channel DREQ counter (i.e. how many accesses the DMA// expects it can perform on the peripheral without// overflow/underflow. Write any value: clears the counter, and// cause channel to re-initiate DREQ handshake.#defineDMA_CH15_DBG_CTDREQ_OFFSET_u(0x00000bc0)#defineDMA_CH15_DBG_CTDREQ_BITS_u(0x0000003f)#defineDMA_CH15_DBG_CTDREQ_RESET_u(0x00000000)#defineDMA_CH15_DBG_CTDREQ_MSB_u(5)#defineDMA_CH15_DBG_CTDREQ_LSB_u(0)#defineDMA_CH15_DBG_CTDREQ_ACCESS"WC"// =============================================================================// Register : DMA_CH15_DBG_TCR// Description : Read to get channel TRANS_COUNT reload value, i.e. the length// of the next transfer#defineDMA_CH15_DBG_TCR_OFFSET_u(0x00000bc4)#defineDMA_CH15_DBG_TCR_BITS_u(0xffffffff)#defineDMA_CH15_DBG_TCR_RESET_u(0x00000000)#defineDMA_CH15_DBG_TCR_MSB_u(31)#defineDMA_CH15_DBG_TCR_LSB_u(0)#defineDMA_CH15_DBG_TCR_ACCESS"RO"4295 defines// =============================================================================/* ... */#endif// _HARDWARE_REGS_DMA_H
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.