System Control Coprocessor
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
3-114
ID012310
Non-Confidential, Unrestricted Access
MRC p15, 0, <Rd>, c11, c4, 0
; Read DMA Control Register
MCR p15, 0, <Rd>, c11, c4, 0
; Write DMA Control Register
While the channel has the status of Running or Queued, any attempt to write to the DMA
Control Register results in architecturally Unpredictable behavior. For ARM1176JZF-S
processors writes to the DMA Control Register have no effect when the DMA channel is
running or queued.
3.2.38
c11, DMA Internal Start Address Register
The purpose of the DMA Internal Start Address Register for each channel is to define the first
address in the TCM for that channel. That is, it defines the first address that data transfers go to
or from.
The DMA Internal Start Address Register is:
•
in CP15 c11
•
one 32-bit read/write register for each DMA channel common to Secure and Non-secure
worlds
•
accessible in user and privileged modes.
The DMA Internal Start Address Register bits [31:0] contain the Internal Start VA.
Access in the Non-secure world depends on the DMA bit, see
c1, Non-Secure Access Control
Register
on page 3-55. The processor can access this register in User mode if the U bit, see
c11,
DMA User Accessibility Register
on page 3-107, for the currently selected channel is set to 1.
Table 3-114 lists the results of attempted access for each mode.
To access the DMA Internal Start Address Register set the DMA Channel Number Register to
the appropriate DMA channel and read or write CP15 c11 with:
•
Opcode_1 set to 0
•
CRn set to c11
•
CRm set to c5
•
Opcode_2 set to 0.
For example:
MRC p15, 0, <Rd>, c11, c5, 0
; Read DMA Internal Start Address Register
MCR p15, 0, <Rd>, c11, c5, 0
; Write DMA Internal Start Address Register
The Internal Start Address is a VA. Page tables describe the physical mapping of the VA when
the channel starts.
Table 3-114 Results of access to the DMA Internal Start Address Register
U bit
DMA bit
Secure Privileged
Read or Write
Non-secure Privileged
Read or Write
Secure User
Read or Write
Non-secure User
Read or Write
0
0
Data
Undefined exception
Undefined exception
Undefined exception
1
Data
Data
Undefined exception
Undefined exception
1
0
Data
Undefined exception
Data
Undefined exception
1
Data
Data
Data
Data