DDI0515F Juno Arm Development Platform Soc TRM
DDI0515F Juno Arm Development Platform Soc TRM
SoC
Revision: r2p0
Change history
23 September 2014 B.a Non-Confidential Second issue of TRM that relates to r0p0
29 April 2016 B.b Non-Confidential Third issue of TRM that relates to r0p0\
05 June 2015 D.a Non-Confidential Second issue of TRM that relates to r1p0
29 April 2016 D.b Non-Confidential Third issue of TRM that relates to r1p0
Proprietary Notice
This document is protected by copyright and other related rights and the practice or implementation of the information
contained in this document may be protected by one or more patents or pending patent applications. No part of this
document may be reproduced in any form by any means without the express prior written permission of ARM. No
license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document
unless specifically stated.
Your access to the information in this document is conditional upon your acceptance that you will not use or permit
others to use the information for the purposes of determining whether implementations infringe any third party patents.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY DAMAGES,
INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR
CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or
disclosure of this document complies fully with any relevant export laws and regulations to assure that this document
or any portion thereof is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner”
in reference to ARM’s customers is not intended to create or refer to any partnership relationship with any other
company. ARM may make changes to this document at any time and without notice.
If any of the provisions contained in these terms conflict with any of the provisions of any signed written agreement
covering this document with ARM, then the signed written agreement prevails over and supersedes the conflicting
provisions of these terms. This document may be translated into other languages for convenience, and you agree that if
there is any conflict between the English version of this document and any translation, the terms of the English version
of the Agreement shall prevail.
LES-PRE-20348
Confidentiality Status
This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license
restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this
document to.
Product Status
Web Address
http://www.arm.com
Preface
About this book .......................................................................................................... vii
Feedback ................................................................................................................... xii
Chapter 1 Introduction
1.1 About the ARM Development Platform (ADP) SoC ................................................. 1-2
1.2 Components ............................................................................................................ 1-3
1.3 Compliance .............................................................................................................. 1-4
1.4 Product documentation and architecture ................................................................. 1-7
1.5 ARM IP revisions ..................................................................................................... 1-8
1.6 Product revisions ..................................................................................................... 1-9
Appendix B Revisions
This preface introduces the Juno r2 ARM® Development Platform (ADP) SoC Technical
Reference Manual. It contains the following sections:
• About this book on page vii.
• Feedback on page xii.
The rmpn identifier indicates the revision status of the product described in this book, for
example, r2p0, where:
rm Identifies the major revision of the product, for example, r2.
pn Identifies the minor revision or modification status of the product, for example,
p0.
Intended audience
This book is written for software engineers who want to work with an ARM reference platform.
The manual describes the functionality of the ADP.
Chapter 1 Introduction
Read this chapter for a high-level view of the ARM Development Platform (ADP)
SoC and a description of its features.
Appendix B Revisions
Read this appendix for a description of the technical changes between released
issues of this book.
Glossary
The ARM Glossary is a list of terms that are used in ARM documentation, together with
definitions for those terms. The ARM Glossary does not contain terms that are industry standard
unless the ARM meaning differs from the generally accepted meaning.
Conventions
Typographical conventions
Style Purpose
bold Highlights interface elements, such as menu names. Denotes signal names. Also used for terms in descriptive
lists, where appropriate.
monospace Denotes text that you can enter at the keyboard, such as commands, file and program names, and source code.
monospace Denotes a permitted abbreviation for a command or option. You can enter the underlined text instead of the full
command or option name.
monospace italic Denotes arguments to monospace text where the argument is to be replaced by a specific value.
monospace bold Denotes language keywords when used outside example code.
<and> Encloses replaceable terms for assembler syntax where they appear in code or code fragments. For example:
MRC p15, 0 <Rd>, <CRn>, <CRm>, <Opcode_2>
SMALL CAPITALS Used in body text for a few terms that have specific technical meanings, that are defined in the ARM glossary.
For example, IMPLEMENTATION DEFINED, UNKNOWN, and UNPREDICTABLE.
Timing diagrams
The figure named Key to timing diagram conventions explains the components used in timing
diagrams. Variations, when they occur, have clear labels. You must not assume any timing
information that is not explicit in the diagrams.
Shaded bus and signal areas are undefined, so the bus or signal can assume any value within the
shaded area at that time. The actual level is unimportant and does not affect normal operation.
Clock
HIGH to LOW
Transient
HIGH/LOW to HIGH
Bus stable
Bus change
Timing diagrams sometimes show single-bit signals as HIGH and LOW at the same time and
they look similar to the bus change shown in Key to timing diagram conventions on page viii.
If a timing diagram shows a single-bit signal in this way then its value does not affect the
accompanying description.
Signals
Signal level The level of an asserted signal depends on whether the signal is
active-HIGH or active-LOW. Asserted means:
• HIGH for active-HIGH signals.
• LOW for active-LOW signals.
Additional reading
ARM publications
This book contains information that is specific to this product. See the following documents for
other relevant information:
• Juno r2 ARM® Development Platform SoC Technical Overview (ARM DTO 0038).
http://infocenter.arm.com/help/topic/com.arm.doc.dto0038c
• ARM® Cortex®-A53 MPCore Processor Technical Reference Manual (ARM DDI 0500).
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500f
• ARM® CoreLink™ SMC-35x AXI Static Memory Controller Series Technical Reference
Manual (ARM DDI 0380). http://infocenter.arm.com/help/topic/com.arm.doc.ddi0380h
• ARM® Watchdog Module (SP805) Technical Reference Manual (ARM DDI 0270).
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0270b
• ARM® PrimeCell® UART (PL011) Technical Reference Manual (ARM DDI 0270).
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0183g
• AMBA® AXI™ and ACE™ Protocol Specification AXI3™, AXI4™, and AXI4-Lite™ ACE and
ACE-Lite™ (ARM IHI 0022).
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0022e
• Principles of ARM® Memory Maps Platform Design Document (ARM DEN 0001).
http://infocenter.arm.com/help/topic/com.arm.doc.den0001c
• Trusted Base System Architecture Platform Design Document (ARM DEN 0007).
Other publications
Feedback
ARM welcomes feedback on this product and its documentation.
If you have any comments or suggestions about this product, contact your supplier and give:
• An explanation with as much information as you can provide. Include symptoms and
diagnostic procedures if appropriate.
Feedback on content
Note
ARM tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the
quality of the represented document when used with any other PDF reader.
This chapter introduces the Juno r2 ARM Development Platform (ADP). It contains the
following sections:
• About the ARM Development Platform (ADP) SoC on page 1-2.
• Components on page 1-3.
• Compliance on page 1-4.
• Product documentation and architecture on page 1-7.
• ARM IP revisions on page 1-8.
• Product revisions on page 1-9.
• A platform for ARMv8-A software and tool development to enable robust testing of
software deliverables on Linaro-based kernels such as Linux and Android.
• A platform for optimized software and tool development of heterogeneous compute such
as:
— AArch64 kernel and tools.
— big.LITTLE™.
— General-Purpose computing on Graphics Processing Units (GPGPU) compute, for
example, OpenCL.
• A platform for Secure software development that complies with the Trusted Base System
Architecture CLIENT1 Platform Design Document.
1.2 Components
The ADP SoC contains the following components:
• Dual HDCLCD Display Controllers with the resolution characteristics that Table 2-5 on
page 2-11 shows.
• System Profiler.
• A Peripheral Component Interconnect Express (PCIe) Gen2.0 four lanes, Root Port and
PHY, that has both I/O coherent and non-coherent modes.
• USB 2.0 Enhanced Host Controller Interface (EHCI), Open Host Controller Interface
(OHCI), 480Mbps, UTMI+ Low-Pin Interface (ULPI) interface to off-chip PHY.1
• Static memory controller PL354, 64MB NOR flash and board peripherals.
• I2C.
• Security peripherals:
— Random Number Generator (RNG).
— Simulated Non-Volatile (NV) Counters.
— Simulated fuses.
Figure 2-1 on page 2-2 shows a block diagram of the ADP system.
1.3 Compliance
The ADP complies with, or includes components that comply with, the following specifications:
• ARM Architecture.
• Generic Interrupt Controller architecture.
• Advanced Microcontroller Bus Architecture.
• Platform Design Documents and white papers on page 1-5.
• big.LITTLE on page 1-5.
• Virtualization on page 1-5.
This TRM complements the TRMs for included components, architecture reference manuals,
architecture specifications, protocol specifications, and relevant external standards. It does not
duplicate information from these sources.
The clusters do not support the T32EE, that is, ThumbEE, instruction set.
See the ARM® Architecture Reference Manual, ARMv8, for ARMv8-A architecture profile for
more information.
The ADP implements the ARM Generic Interrupt Controller (GIC) v2m architecture, that the
Server Base System Architecture (SBSA) Platform Design Document (PDD) defines.
GICv2m provides an extension to the GICv2 Generic Interrupt Controller Architecture, that the
ARM Generic Interrupt Controller Architecture Specification, Architecture Version 2.0 defines.
GICv2m enables PCI Express Message Signaled Interrupts (MSIs) to set GICv2 Shared
Peripheral Interrupts (SPIs) to pending and provides a similar mechanism to the message-based
interrupt features added in GICv3.
• AMBA® 4 Advanced eXtensible Interface (AXI) and ACE protocol. See the AMBA® AXI™
and ACE™ Protocol Specification AXI3™, AXI4™, and AXI4-Lite™ ACE and ACE-Lite™.
• AMBA Advanced Peripheral Bus (APB) protocol. See the AMBA® APB Protocol
Specification.
• AMBA 3 Advanced Trace Bus (ATB) protocol. See the AMBA® 3 ATB Protocol
Specification.
The System Control Processor (SCP) Cortex-M3 processor in the ADP complies with the ARM
AMBA® 3 AHB-Lite Protocol (v1.0) Specification.
AHB-Lite is a subset of the full AMBA AHB protocol specification. It provides all the basic
functions that are required by most AMBA AHB slave and master designs, particularly when
used with a multi-layer AMBA interconnect.
The ADP architecture complies with the following Platform Design Documents (PDDs):
• Level 1 of Server Base System Architecture PDD.
http://infocenter.arm.com/help/topic/com.arm.doc.den0029
• Trusted Board Boot Requirements PDD.
• Trusted Base System Architecture CLIENT1 PDD.
There are some limitations to the TBSA. See Trusted Base System Architecture (TBSA)
compliance on page 2-20.
1.3.6 big.LITTLE
The inclusion of two coherent clusters enables you to use big.LITTLE power-management
strategies. This enables a single system to handle both high-intensity and low-intensity tasks in
the most energy-efficient manner.
1.3.7 Virtualization
The Cortex-A72 and Cortex-A53 clusters implement the ARMv8-A architecture that includes
support for virtualization. The ADP provides extra support for virtualization as follows:
Stage 2 page table translation for masters, that the following provide:
• A CoreLink MMU-401 System Memory Management Unit (SMMU) for the following:
— The Embedded Trace Router (ETR).
— PCI Express.
— Each HDLCD controller.
— The CoreLink DMA-330.
See also:
Product Revision
This chapter describes the functionality of the Juno r2 ARM Development Platform (ADP).
ADP
Dual display controllers PCIe x 4 USB 2.0 EHCI General DMA IC-FPGA
slave interface
HDLCD 0 HDLCD 1 Clock sources
PCIe Gen2 USB 2.0 DMA PL330 TLX-400
+ PHY Resets
CoreLink CoreLink MMU-401 MMU-401
MMU-401 MMU-401 CoreLink CoreLink NIC-400 Interconnect Clocks
MMU-401 and
resets
Memories Peripherals
CoreLink TZC-400 TrustZone Address Space Controller
Secure RAM Secure Watchdog
CoreLink DMC-400 Dynamic Memory Controller Non-secure RAM Message handling
Secure ROM Others
Non-secure ROM
Table 2-1 shows the affinity values assigned to each application processor.
• Two cores and a Snoop Control Unit (SCU) that you can use to ensure coherency within
the cluster, and with other devices, using the CoreLink CCI-400.
• Four cores and a Snoop Control Unit (SCU) that you can use to ensure coherency within
the cluster, and with other devices, using the CoreLink CCI-400.
2.2.4 Interrupts
All Cortex-A72 and Cortex-A53 interrupts are routed through a shared Generic Interrupt
Controller (GIC), the CoreLink GIC-400. The Cortex-M3 SCP has its own interrupt controller.
Some interrupts from the SCP are routed to the shared GIC-400.
The GIC-400 provides registers that manage the following, for one or more:
• Interrupt sources.
• Interrupt behavior.
• Interrupt routing.
GIC-400
Other
peripherals
Compute Subsystem
2.2.5 Interconnects
This section describes the interconnects that the ADP uses. It contains the following
subsections:
• CoreLink CCI-400 Cache Coherent Interconnect.
• CoreLink NIC-400 Network Interconnect on page 2-5.
• CoreLink DMC-400 Dynamic Memory Controller on page 2-5.
The CCI-400 also supports Distributed Virtual Memory (DVM) messaging for managing
caches, system MMUs, and Translation Lookaside Buffers (TLBs) in ACE-Lite components.
Note
• DVM messages do not maintain the MMU-401 for the Embedded Trace Router (ETR).
• DVM messages sent from the Cortex-A72 and Cortex-A53 processors are DVMv8 and
are not required to maintain MMU-400 or MMU-401 because the processors are DVMv7
components. Therefore, you must use the registers for each component to maintain the
system MMUs.
See the ARM® CoreLink™ CCI-400 Cache Coherent Interconnect Technical Reference Manual.
The CoreLink DMC-400 Dynamic Memory Controller connects from two 128-bit CCI-400
ACE-Lite master ports, and the HDLCD controllers, through the TZC-400, to the two 32-bit
DDR PHY Interfaces (DFIs). Transactions from any of the three ACE-Lite ports can access
either of the DFI interfaces.
2.2.6 Events
The EVENTO and EVENTI signals are cross-wired between the application processor
clusters. Cross-wiring ensures that Send Event (SEV) instructions that a core in one cluster
executes causes cores in the other cluster to wake from Wait For Event (WFE).
The event signals are also cross-wired between the application processor clusters and the
Cortex-M3 System Control Processor (SCP). SEV instructions that are executed on the SCP
wake application processor clusters from a WFE. Similarly, SEV instructions that are executed
on the application processor clusters wake the SCP from a WFE.
In the ARMv8-A Architecture, if the global exclusive monitor for a cluster changes from the
Exclusive state to the Open state, an event for that cluster is generated. In the ADP, the
DMC-400 implements the global exclusive monitor. The Cortex-A72 and Cortex-A53 clusters
provide an interface to receive notification that this global exclusive monitor has made this state.
To support this v8 behavior, an event signal from the DMC-400 connects to the Cortex-A72 and
Cortex-A53 clusters.
• A job manager that controls the graphics processing that is sent to the GPU.
• Four Shader cores that perform all the rendering and computation operations.
• A hierarchical tiler that lists all the objects in a scene, so that the shader cores can process
the objects efficiently.
• A Memory-Management Unit (MMU) that performs address translation of data reads and
writes from components in the system.
The GPU uses multiple texture formats that you must enable.
The GPU and its associated software are compatible with the following standards:
• OpenCL 1.1.
• OpenGL ES 1.1, 2.0, and 3.0.
• OpenVG 1.1.
• EGL 1.4.
The Mali-T624 GPU contains a 256KB L2 RAM configuration. For more information about the
Mali-T624 GPU, see the following:
• Mali™-T600 Series GPU Technical Overview.
• Mali™-T600 Series GPU Technical Reference Manual.
2.4 Memory
The following sections describe the memory organization in the ADP:
• Application memory map.
• CoreLink DMC-400 Memory Controller.
• Memory bus architecture.
• TrustZone system design.
The DMC-400 is a memory controller that is designed for use with high-performance systems
based around ARM processor and GPU cores. It offers many fully programmable Quality of
Service (QoS) settings and supports DDR3 JEDEC-compatible memory devices.
The DMC-400 supports dual 32-bit DDR3 memory. The memory controller contains two
interfaces to the CCI-400, two asynchronous QVN AXI slave interfaces, that connect
non-coherent masters, and two DFI 2.1-compliant interfaces for DRAM PHYs. For more
information about the DMC-400, see the ARM® CoreLink™ DMC-400 Dynamic Memory
Controller Technical Reference Manual.
The memory system in the ADP utilizes advanced QoS methods to manage latency and
bandwidth for the components and interfaces.
The bus architecture is based on the AMBA4 protocol and provides a low latency access path
to the external memory device from the processors in the system and also provides sufficient
bandwidth to the high-bandwidth components. It is based on the CoreLink NIC-400 Network
Interconnect and CCI-400 Cache Coherent Interconnect. See the ARM® CoreLink™ NIC-400
Network Interconnect Technical Reference Manual.
The ADP design provides security features at the system level to facilitate the use of trusted
software on the system. It provides a base set of security infrastructure within the ADP. The
ADP memory system includes features that provide compliance with the ARM Trusted Base
System Architecture PDD. See the following:
• Security on page 2-20.
• CoreLink TZC-400 TrustZone Address Space Controller security on page 2-22.
• ARM® Trusted Base System Architecture CLIENT1 Platform Design Document.
Table 2-2 shows all peripherals that are accessible to all application processors using the
Application memory, excluding debug components that are mapped to the CoreSight AXI and
APB areas. See Application processor memory map on page 3-10.
Name Description
Application processor AON_REF_CLK CNTCTL Application processor AON_REF_CLK Generic Timers, Control Registers.
See Application processor AON_REF_CLK Generic Timer on page 2-30.
Application processor AON_REF_CLK CNTBase0 Application processor AON_REF_CLK Generic Timers, Control Registers.
See Application processor AON_REF_CLK Generic Timer on page 2-30.
Application processor AON_REF_CLK CNTBase1
Trusted watchdog Trusted Watchdog. See the ARM® Watchdog Module (SP805) Technical
Reference Manual.
Generic Watchdog Generic Watchdog. See the ARM® Server Base System Architecture Platform
Design Document.
DMC_CFG Configuration interface of the DMC-400. See the ARM® CoreLink™ DMC-400
Dynamic Memory Controller Technical Reference Manual.
Name Description
CCI_PV CoreLink CCI-400 Cache Coherent Interconnect. See the ARM® CoreLink™
CCI-400 Cache Coherent Interconnect Technical Reference Manual.
Mali-T624 GPU GPU register interface. See the Mali™-T600 Series GPU Technical Reference
Manual.
The ADP supports USB 2.0 with a data rate of 480Mbps, and can connect common system
peripherals such as keyboard, mouse, and flash drive. The USB 2.0 Host Controller has the
following features:
• Fully compliant with the Enhanced Host Controller Interface (EHCI) specification.
• Contains a single EHCI controller that supports USB high-speed data rates of 480Mbps.
• Contains a single companion Open Host Controller Interface (OHCI) controller that
supports USB full and low speed device data rates.
• The USB 2.0 Host Controller is on the chip and connects to a USB PHY on the board
using a 60MHz 12-pin UTMI+ Low-Pin Interface (ULPI) SDR interface.
• Debug is an optional feature in EHCI, and the USB 2.0 Host Controller does not support
debug.
• Legacy emulation interface and PCI power-management features of the USB Host
Controller IP that the ADP does not use.
The ADP includes a system CoreLink DMA-330 controller as a master on the compute
subsystem I/O coherent slave interface. The DMA controller can transfer data within memory,
or between memory and peripherals.
The DMA-330 implements TrustZone. The boot_manager_ns input signal on the DMA-330
controls the security state of the device as follows:
0 When the pin is 0, the DMA manager is in the Secure state and the Secure APB
interface issues instructions. The ADP ignores any instructions that the
Non-secure APB interface issues.
1 When the pin is 1, the DMA manager is in the Non-secure state, and either the
Secure or the Non-secure APB interface can control the DMA channel.
In the ADP, the DMA_BOOT_MANAGER_NS bit of the DMA Control Register 0 controls this
pin.
Icache lines 16
Icache words 8
Number of channels 8
Number of interrupts 8
The system DMA controller also includes peripheral request interfaces to support transfer
between peripherals and memory, without the intervention of the processor. Table 2-4 shows the
peripheral request IDs.
0 STM
1 UART0 RX
2 UART0 TX
3 UART1 RX
4 UART1 TX
5 I2S
7 Reserved
The ADP includes two independent HDLCD display controllers. Table 2-5 shows the display
resolutions that are supported, and the pixel clock frequencies required.
Juno
Parameter Default Description
setting
COUNTER_BITS 11 12 Number of bits used for all timing counters and configuration registers.
The maximum resolution that is supported is 212 × 212 = 4096 × 4096
and this resolution is sufficient for QFHD and 4K2K.
The DMA and USB masters are AXI3 masters and do not support ACE-Lite natively. To enable
these masters to snoop the hardware coherent caches of the CPUs, Juno supports a limited form
of ACE-Lite signaling. Signaling is performed by driving the AxDOMAIN signals
appropriately from the MMU-401 associated with the master.
This scheme supports a restricted set of ACE-Lite transactions, that is, only the ACE-Lite
transactions that are compatible with AXI4 and NIC-400. Table 2-7 and Table 2-8 show the
supported types of ACE-Lite transactions for write and read transactions. For this scheme to
work, the only extra signal an AXI3 master requires is the shareability domain, and the
MMU-401 supports this scheme.
The static memory interface in the ADP supports NOR memory natively and other peripherals
through the FPGA on the board. The NOR flash is intended to be a simple boot mechanism
during early board bring-up activities.
The PL354 supports two SRAM style memory interfaces. Each memory interface supports four
chip selects, providing eight chip selects in total. Juno uses six of the eight available chip selects.
To reduce the pin count on the package, the two memory interfaces on the PL354 share the set
of test chip pins using the External Bus Interface (EBI), PL220, block. The EBI handles the
required arbitration between the memory interfaces. The PL354 configuration space is
memory-mapped at 0x00_7FFD_0000.
Table 2-9 on page 2-13 shows the default address ranges for the chip selects. However, you can
change the address range by programming appropriate address mask and match values in the
SCC registers using the serial interface when the chip is held in reset. Select the address mask
and match values so that no address maps to more than one chip select.
CoreLink SMC-354 Static Memory Controller (SMC) on page A-7 describes the PL354
configuration parameters.
Table 2-9 shows the PL354 chip selects and address ranges.
CS4 Reserved -
CS5 Reserved -
CS1 Reserved -
The ADP includes an I2S interface that supports four-channel stereo audio output for
high-quality audio to the external display. The I2S bus only handles audio data, and so the
control signaling is handled through a separate I2C bus.
The ADP board includes two HDMI connectors for attaching displays. The DisplayPort
supports 8-channel audio streams with sampling rates up to 24 bits at 192kHz. These values
dictate the maximum audio resolution that is configured on the Juno I2S controller.
Stereo data pairs, left and right, that the processor writes using the APB interface, are shifted out
serially in the appropriate data output, SD0, SD1, SD2, or SD3. The shifting is timed with
respect to I2S_CLK. WS is the word select line and selects between left and right data.
The following signals gate the clock output from the ADP to the slave device:
SCLK_GATE Clock enable signal that disables the output clock when the controller has
been disabled.
SCLK_EN Gating signal when data resolution of the transmit channel is less than the
current word select size.
SDO3
APB SDO2
INTR SDO1
SDO0
I2S controller
WS
I2SCLK
SCLK_GATE
I2SCLKOUT
SCLK_EN
The I2S used in the ADP is APB mapped. The key features are as follows:
• Four stereo transmit channels that are configured with a maximum audio resolution of 24.
If necessary, you can reprogram the transmit channels during operation to any supported
resolution lesser than 24.
• Word select length is set to 24. You can reprogram the word select length during operation
to supported values.
1. An I2C that is mapped in the SCP AHB expansion area and exclusively controls the
PMIC.
2. An I2C that is mapped in the application processor area and performs board functions such
as HDMI controller configuration.
3. An I2C that is mapped in the application processor area and exclusively controls trusted
user input from a keypad.
The I2C controller that is used in the ADP is an APB mapped peripheral.
• Two wire, Serial Data Line (SDA) and Serial CLock (SCL).
• The I2C IP can operate in either master or slave mode, but not both. For the ADP, all three
I2C instances operate in master mode.
• The I2C controller requires that ic_clk is the same frequency or faster than APB interface
clock. To guarantee that this requirement is always met, in the ADP, the primary input
clock, I2CCLK, drives both ic_clk and the APB interface. An asynchronous APB bridge
is then added to ensure that the APB interface can be operated asynchronously with rest
of the system.
Table 2-10 shows the minimum ic_clk values for Standard and Fast modes, with high, and low
count values for SCL generation. The maximum suppressed spike length registers
IC_FS_SPKLEN and IC_HS_SPKLEN are programmed to 1. In the ADP, ic_clk is the same
as the APB interface clock, that is, 100MHz, and considerably higher than the minimum ic_clk
frequency permitted.
Figure 2-4 shows the pad connections for the I2C interface. You can use the PBIDIR pad from
the 28HPM I/O library for the I2C signals.
ic_clk_oe and ic_data_oe are the I2C clock and data outputs respectively. Both outputs are open
drain signals and require external pull-up on the board.
ic_clk_oe ic_data_oe
SCL SDA
ic_clk_in ic_data_in
2.5.8 UART
The ADP includes UARTs, SoC UART 0, and SoC UART 1, for:
• Firmware messages.
• Debugging OS kernel.
The UART signals connect to RS232 connectors on the board. Figure 2-5 shows the PL011
UART integration.
UARTTXD
APB UARTRXD
nUARTCTS
nUARTDSR To RS-232 connector
UARTRXINTR nUARTDCD
UART nUARTDTR
UARTTXINTR
nUARTRTS
UARTCLK nUARTRI 1'b1
nSIROUT 1'b1
DMA interface
nSIRIN IrDA interface not used
• The PL011 UART provides a DMA request interface that, in the ADP, is connected to the
DMA-330 system DMA controller.
The UART supports a wide range of baud rates depending on the frequency of the input
UART_CLK in addition to the integer, UARTIBRD, and fractional, UARTFBRD, divisor
registers in the PL011 UART.
Table 2-11 shows the typical Baud rates and the divisor values, with a UART_CLK clock
frequency of 7.3728MHz from the crystal. The fractional divisor is not used in this specific case.
If a non-friendly UART_CLK frequency is used, there can be slight error in the generated Baud
rate when compared to the required Baud rate.
0x1 460800
0x2 230400
0x4 115200
0x6 76800
0x8 57600
0xC 38400
0x18 19200
0x20 14400
0x30 9600
You can use system override registers to override aspects of the system outside the compute
subsystem, such as the security state of peripherals and the shareability settings of masters that
do not support ACE-Lite signaling. See System override registers on page 3-40. The System
Override Registers Unit is an APB peripheral in the application processor memory map. The
base address of the peripheral is 0x7FFF_0000.
It is a Secure access only peripheral. If a Non-secure access attempts to access any of these
registers, the interconnect responds with a DECERR response. Any Secure access to
unimplemented areas within the 4K region is RAZ, WI. The block also includes the following
general purpose registers for software use:
• GPR_0.
• GPR_1.
CoreLink NIC-400 Network Interconnect components connect other system components into
the CCI-400. For example, NIC-400s connect master components to CCI-400 slave ports, and
slave components to CCI-400 master ports.
• Connect compute subsystem components to the CCI-400 and provide access for masters
and slaves outside the compute subsystem.
• Connect SoC-level peripheral components, that is, components that are outside the
compute subsystem, to the compute subsystem.
• Slave port S0 which connects to the master interface of the PCIe Root Complex.
• Slave port S1 which connects, through NIC-400 interconnect, to the SCP, CoreSight
Debug system, USB 2.0 interface, DMA-330, and the external Thin Links IC-FPGA slave
extension interface.
• Master port M0 which connects to the slave interface of the PCIe Root Complex.
• Master port M1 which connects, through NIC-400 interconnect, to DMC-400 and on-chip
memories, various Compute Subsystem peripherals, NOR flash interface, I2S, I2C, Dual
UARTs, various security components and the external Thin Links IC-FPGA master
extension interface.
2.6.3 CoreLink MMU-401 and MMU-400 System Memory Management (SMMU) components
The ADP includes system Memory Management Units (MMUs) to support system
virtualization, where guest Operating Systems (OSs) run on a hypervisor and are only aware of
Intermediate Physical Addresses (IPAs). The system MMU components handle stage 2 address
translations, that is, IPA to Physical Address (PA).
A CoreLink MMU-400 is located between the Mali-T624 GPU and the CCI-400.
Virtual memory maintenance does not use Distributed Virtual Memory (DVM) transactions.
Instead, in the ADP, the translation tables are maintained in software by writing to the APB4
programming interface of the MMU blocks.
• The DMA-330 has one manager thread and eight channel threads. The DMA outputs the
channel information using the AXI ARID[3:0] and AWID[3:0] signals. For example, an
AxID value of 0x0 corresponds to channel 0, and an AxID value of 0x1 corresponds to
channel 1, until the AxID value of 0x7 correspond to channel 7. Transactions belonging
to the manager thread have an AxID value of 0x8.
• The MMU-401 in-front of the DMA-330 includes a Security State Determination (SSD)
table containing nine entries. The AxID[3:0] signal performs the SSD table indexing. An
AxID value of 0 corresponds to SSD entry 0, an AxID value of 1 corresponds to SSD
entry 1, until the AxID value of 8 correspond to SSD entry 8.
• The MMU-401 in-front of the DMA-330 supports four contexts. The AxID of incoming
transaction is compared with the eight stream matching registers to map to one of the four
contexts.
CoreLink MMU-40x System Memory Management Unit (SMMU) components on page A-5
shows the MMU-40x configuration options.
The CoreLink DMC-400 Dynamic Memory Controller connects the ADP memory system to the
DDR3 PHY that provides access to the SDRAMs.
See:
2.7 Security
This section describes:
• About security.
• Trusted Base System Architecture (TBSA) compliance.
• ADP device security model.
• Trusted entropy source on page 2-24.
• Trusted root-key storage on page 2-25.
• Trusted non-volatile counters on page 2-26.
• Trusted HDLCD controller on page 2-27.
• Secure on-chip memories on page 2-28.
• Interconnect IP on page 2-28.
The section describes the support that the ADP platform provides for the Secure platform. Level
1 of the Trusted Base System Architecture CLIENT1 Platform Design Document (PDD) defines
the Secure platform.
Although the ADP intends to comply with TBSA v1, there are some differences to keep the
platform design simple and to support more use cases.
• The HDLCD controller does not support the issuing of Secure accesses. You can force it
to support Secure accesses by driving the AxPROT[1] bits from Secure memory mapped
registers.
• Trusted root key storage requires fuses. The ADP implements key storage using registers
with the key values tied-off in hardware.
The following subsections provide additional information to the TBSA, and focus on key
devices, modules, and interfaces in the system that contribute to security:
• Application processor security on page 2-21.
• CoreLink GIC-400 Generic Interrupt Controller security on page 2-21.
• Interconnect security on page 2-21.
• CoreLink TZC-400 TrustZone Address Space Controller security on page 2-22.
The application processors in the ADP support the ARMv8-A architecture including the
Security Extensions.
Note
The CP15SDISABLE input signals to the Cortex-A72 and Cortex-A53 clusters are tied LOW.
A CoreLink GIC-400 Generic Interrupt Controller that implements the GICv2 architecture is
present, and all application processors in the ADP share it. The GIC-400 supports Security
Extensions.
• Signaling Secure interrupts to the target processor using either the IRQ or the FIQ
exception request.
• A unified scheme for handling the priority of Secure and Non-secure interrupts.
The CoreLink GIC-400 supports 16 Software Generated Interrupts (SGIs). You can program
these interrupts to implement the following concurrently:
• Eight Non-secure software-generated interrupts.
• Eight Secure software-generated interrupts.
See the ARM® Generic Interrupt Controller Architecture Specification, Architecture version 2.0.
Interconnect security
Within the ADP, one of the following places peripherals into Secure or Non-secure world:
• The peripheral itself, interpreting the NS flag that is provided by the master that made the
request.
The NIC-400 registers that affect security are Secure access only.
For more information about the NIC-400 registers, see the following:
• SoC Interconnect NIC-400 Registers on page 3-50.
• Compute subsystem NIC-400 Registers on page 3-63.
• ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual.
TrustZone is the security architecture that ARM developed. The TZC-400 TrustZone Address
Space Controller is an important component in systems that use the TrustZone architecture. The
TZC-400 controls access to address regions and is programmed to enable specific masters to
access particular regions of memory, and block access from other masters.
In the ADP, the TZC-400 is located between the CoreLink CCI-400 Cache Coherent
Interconnect, and the CoreLink DMC-400 Dynamic Memory Controller. The TZC-400 enables
the Trusted OS to define multiple regions within the DDR memory that have different security
access permissions. The configuration of the TZC-400 in the ADP is as follows:
• Four filter units, one for each ACE-Lite interface of the DMC-400. These filter units share
region configurations.
• Nine regions, that include one base region, region 0, and eight fully software-configurable
regions, regions 1-8. These regions enable you to define up to eight independent regions
with different security requirements.
• The ADP supports 13 Non-Secure Access IDentifier (NSAID) values, including the
default ID, and enables up to 12 masters, or groups of masters, to be uniquely identified
so that they can be given different Non-secure access permissions. NSAID values are
mapped as follows:
0 Default ID that any masters use that are not necessary to be
identified separately from the rest, including CCI-400. This value is
used by default.
Note
The CCI-400 does not store the NSAID values of cache lines that it
temporarily stores. As a result, if the CCI-400 performs line write
backs, it does not reinstate the NSAID values of the original
accesses. Therefore, you must not set Non-secure memory areas that
are protected by NSAID as shareable. Otherwise, security violations
can occur.
1 PCIe.
2 HDLCD0.
3 HDLCD1.
4 USB.
5 DMA.
6 Thin Links.
7-8 Reserved. Do not use.
9 Application processors.
10 Mali-T624 GPU.
11 SCP.
12 All CoreSight accesses.
13-15 Reserved. Do not use.
Note
When programming the TZC-400 regions, ensure that all regions are 64KB-aligned, and that
each region has a size that is at least 64KB, or a multiple of 64KB, to comply with the TBSA.
See the ARM® Trusted Base System Architecture PDD.
The following Secure access only on-die boot ROM is implemented in the ADP:
• Trusted boot ROM for application processor boot code.
• Trusted boot ROM for the SCP.
The trusted boot ROM for application processor boot code is permanently mapped to address
0x00_0000_0000, the reset vector for the application processors, and is on-chip.
Application processor trusted software can use a Secure access only on-die RAM area. The
NIC-400 is configured to make this SRAM Secure access only.
The DDR Memory Controller, DMC-400, and the DDR PHY interface attached to the ADP do
not directly support TrustZone technology-based security. However, the NIC-400 maps the
configuration register spaces for the DMC-400 and the DDR3 PHY as software-configurable
and defaults at reset to permit only Secure accesses.
Watchdog security
The ADP provides two Secure watchdog timers that enable you to force an automatic hardware
reset of the whole system when they time out. The watchdog timers are:
• The watchdog timer in the SCP subsystem. Because it is in the SCP subsystem, only
Secure software can access it.
Note
A Generic Watchdog also exists in the application processor system, that both Secure and
Non-secure software can access. This watchdog cannot cause an automatic hardware reset.
See:
• Watchdog timers on page 2-31.
• Cross triggers on page 2-37.
• Trusted entropy source.
• Trusted root-key storage on page 2-25.
• Trusted non-volatile counters on page 2-26.
• Trusted HDLCD controller on page 2-27.
The ADP includes a Trusted Entropy Source that is based on a design from ARM Research and
Development. The Trusted Entropy Source generates one 128-bit random number at a time.
Software then generates 512 different random numbers that are based on that seed.
Flow diagrams
The flow diagrams in this section provide a general idea on how to program the RNG peripheral
and generate the 128-bit random number value.
Start configuration
Yes
End configuration
Figure 2-7 shows the Interrupt Service Routine (ISR) flow chart.
Start ISR
End ISR
The Trusted Root-Key Storage is implemented as an APB mapped register bank with the
programmers view that Table 2-12 shows. The Secure platform certification process requires
that the reset value of these registers is always the same, and the certification requires that the
values are hardcoded.
If a Non-secure access attempts to access any of these registers, the response is a DECERR. Any
Secure access to unimplemented areas within the 4K region is RAZ, WI.
0x00 R 0xB2043562 TZ_PUB_KEY_HASH_0 Lowest 32 bits [31:0] of 256-bit Trust Public Key (ROTPK)
0x20 R 0xFC1C5C16 HU_KEY_0 Lowest 32 bits [31:0] of 128-bit Hardware Unique Key (HUK)
0x44 R 0x57AA4A40 END_KEY_0 Lowest 32 bits [31:0] of 256-bit Private Endorsement Key (PEK)
The trusted non-volatile counters are implemented as an APB-mapped register bank with the
programmers view that Table 2-13 shows. The Secure platform certification process requires
that the reset value of these registers is always the same, and requires the values to be hardcoded.
Any Secure accesses to unimplemented areas within the 4K region are RAZ, WI.
The HDLCD controller must be able to display trusted frame data and the controller must read
trusted frame buffer using Secure access.
The ARM HDLCD controller does not support security. In the ADP, the SSD table present in
the MMU-401 determines the security state of the HDLCD controller. Secure software can
control the security state of the HDLCD Controller by causing it to transition between Secure
and Non-secure. If the SSD table entry is marked as Secure, then the Non-secure transactions
from the HDLCD controller that arrive at the MMU-401 are converted to Secure transactions
before they are sent to the memory.
The ADP also permits the HDLCD transactions to be marked as Secure by writing to the
SEC_HDLCD register in the System Override Registers Unit. Writing to the SEC_HDLCD
register forces all HDLCD transactions to be Secure. That is, ARPROT[1] = 0, independent of
the MMU-401 settings. Figure 2-8 on page 2-28 shows this scheme.
The APB interfaces of the HDLCD controllers have programmable security settings on the
interconnect. The default state is Secure access only but you can update it by programming the
interconnect.
By using this scheme, the Trusted Base System Architecture Platform Design Document
recommends the following:
• Ensure that the security settings in the MMU-401 SSD table and APB configuration
interface of the HDLCD controller are switched at the same time when the display is
inactive.
• The mode must not be switched while there are valid AXI transactions on the bus.
• When the HDLCD controller is configured to be Secure, it must point to trusted frame
buffer in trusted memory.
• When switching from Secure to Non-secure, any pixel data in the display must be wiped
if it is accessible.
SEC_HDLCD
Register
AXI
master
APB
The system contains the following individual memory regions in the application memory map
that are marked as always Secure access only:
• A memory region for the on-chip ROM.
• A memory region for the on-chip SRAM.
Note
The SCP also contains Secure ROM and SRAM.
2.7.9 Interconnect IP
Only a subset of masters within the system can generate Secure accesses. These masters include:
• The SCP.
• The application processors.
• Debug and trace logic, when it is operating in Secure mode.
Also, software can configure the GPU and displays to generate Secure accesses. Some
peripherals are also mapped as Secure access only, and you can use software to configure others
to be Secure access only. You can configure the DMA to generate Secure or Non-secure
transactions.
2.8 Timers
This section describes:
• Time domains.
• Counter and timer components on page 2-30.
• Processor power modes on page 2-31.
• Watchdog timers on page 2-31.
AON_REF_CLK time
View of time that the application processors observe. Low-power modes
can affect this time domain.
The application processors operate in a time domain called AON_REF_CLK time. This time
domain is based on the main reference clock, AON_REF_CLK, and is also visible to the SCP.
A Generic Counter component, called the AON_REF_CLK counter, generates a time value for
the AON_REF_CLK time domain. The component meets the requirements of the
memory-mapped counter module that the ARM v7AR Architecture Reference Manual describes.
It is in the VSYS.AON power domain.
Generic Timer
All application processors in the ADP implement the ARM Generic Timer.
Interrupts from these timers are mapped to Private Peripheral Interrupts (PPIs)
in the CoreLink GIC-400 Generic Interrupt Controller. Accesses to these Generic
Timers are through a low-latency system-mapped register.
An extra time domain exists that exclusively generates CoreSight timestamps. This time domain
is also based on the main reference clock AON_REF_CLK, but differs from the
AON_REF_CLK time domain because it cannot be halted during debug. The SCP can save and
restore the value of this counter in the same way that it does for the AON_REF_CLK time
domain. See CoreSight timestamps on page 2-40.
This counter has the same features as the AON_REF_CLK counter. However, there is no
mechanism to stop this counter using debug.
The ADP includes two memory-mapped ARM Generic Timers, that the ARM Architecture
Reference Manual v7AR Edition defines. The Generic Timers provide two timer frames, each
without a second view, and each without a virtual timer capability.
The timer is called the application processor AON_REF_CLK Generic Timer, and the
individual timers are named as follows in the applications memory map, and are in the
VSYS.SYSTOP power domain:
• Application processor AON_REF_CLK CNTCTL.
• Application processor AON_REF_CLK CNTBase0.
• Application processor AON_REF_CLK CNTBase1.
Table 2-14 shows the frames that the application processor and SCP memory map contain, that
relate to the counter and timer components.
Frame Description
AON_REF_CLK CNTControl Frame that contains the control registers for the AON_REF_CLK counter
AON_REF_CLK CNTRead Frame that contains the status registers for the AON_REF_CLK counter
CS CNTControl Frame that contains the control registers for the CoreSight timestamp counter
Application processor AON_REF_CLK CNTCTL CNTCTLBase frame for the application processor AON_REF_CLK timers
Application processor AON_REF_CLK CNTBase0 frame for the application processor AON_REF_CLK timer, and is
CNTBase0 only accessible using Secure accesses
Application processor AON_REF_CLK CNTBase1 frame for the application processor AON_REF_CLK timer
CNTBase1
A processor can generate timer interrupts after entering into WFI or WFE mode. Processor cores
can enter WFI and WFE modes without any side-effects relating to their timers. When a cluster
is powered down, Generic Timer state is lost.
Trusted watchdog
The application processor subsystem includes an ARM SP805 watchdog timer that protects the
Secure boot process when it is necessary to run non-trusted device drivers.
The first time the trusted watchdog expires, an interrupt to the CoreLink GIC-400 Generic
Interrupt Controller is generated. If Secure boot software fails to clear the watchdog, and it
expires for a second time, a global reset is generated.
This watchdog increments at 32.768kHz. This watchdog can also be halted in debug using the
cross trigger network, but only when the SYSWD_HOD_EN field in the SSC_SWDHOD
register is set to HIGH.
Generic Watchdog
The Server Base System Architecture defines and requires a Generic Watchdog for use by EL2
software. This watchdog generates the following interrupts.
2. This interrupt must cause EL2 and higher levels to be reset. Because the application
processors in the ADP both implement EL3, you can reset EL2 by routing this interrupt
as an SPI that you can configure as an EL3 interrupt.
Two memory mapped register frames manage the Generic Watchdog. In the ADP, Secure and
Non-secure accesses can access the frames.
For information about the programmers model of the Generic Watchdog, see the following:
• Application processor interrupt map on page 3-3.
• Application processor memory map on page 3-10.
• ARM® Server Base System Architecture Platform Design Document.
Figure 2-9 on page 2-34 shows a high-level representation of the ADP debug architecture. It
excludes timestamp distribution. See CoreSight timestamps on page 2-40. Most of the
debug-related components are located in the CoreSight subsystem. Others are located in the
Cortex-A72 and Cortex-A53 clusters, the SCP subsystem, and in the main system.
STM
The ADP contains two application processor clusters. Each cluster, internally, contains the
following debug components:
• A Performance Monitor Unit (PMU) for each core. This module implements Cortex-A72
embedded performance monitoring functionality.
• An Embedded Trace Macrocell (ETM) for each processor. This module generates
real-time trace information that trace tools can use to reconstruct the execution of all or
part of a program. Each ETM generates an ATB trace output that is sent to a funnel before
going to the CoreSight subsystem.
• A trace funnel that arbitrates up to four trace sources down to one ATB trace output before
it is sent to the CoreSight subsystem.
• A Cross Trigger Interface (CTI) for each processor, with a Cross Trigger Matrix (CTM)
for the cluster. The CTI enables debug subsystems to interact, that is, cross trigger, with
each other. The CTI connects to a CTM in the CoreSight subsystem.
• Debug control with an APB register interface to provide accessibility to debug registers
in the cluster.
• A local debug ROM table that contains a list of components in the cluster, enabling the
debugger to determine the components that are implemented locally in the cluster.
• An Embedded Logic Analyzer (ELA) that has a multi-state trigger capability to drive
actions such as:
— Stop clock and scan.
— Start and stop trace.
— Cause irritation.
— Generate a trigger on an external pad.
Each core in the Cortex-A72 and Cortex-A53 clusters also generates and receives the following
debug-related signaling:
• Debug communication signal outputs that drive interrupts at the GIC-400. See
Application processor interrupt map on page 3-3.
• Power control requests from each cluster, and each drives an interrupt input of the SCP,
A72DBGPWRUPREQ or A53DBGPWRUPREQ.
Each cluster also contains a debug authentication interface, with the signals DBGEN, NIDEN,
SPIDEN, and SPNIDEN.
For more information about the Cortex-A72 and Cortex-A53 debug architecture, see the
following:
• ARM® Cortex®-A72 MPCore Processor Technical Reference Manual.
• ARM® Cortex®-A53 MPCore Processor Technical Reference Manual.
2.9.3 Trace
Each cluster contains an ATB funnel that is associated with it. The funnels are the Cortex-A72
funnel, and Cortex-A53 funnel, that funnels all trace sources from each core down to one ATB
interface each. Each funnel contains four ATB slave ports, with slave port 0 connected to core
0, slave port 1 connected to core 1. If any core is not implemented, the associated slave port is
tied-off.
The trace output signals combine with two trace expansions using another funnel, Funnel
cssys0, before they are fed into the Embedded Trace FIFO (ETF), ETF0. The funnel input
connections are as follows:
ATB Slave Port 0 Connected to the ATB bus from the Cortex-A72 funnel.
ATB Slave Port 1 Connected to the ATB bus from the Cortex-A53 funnel.
ATB Slave Port 2 Connected using an asynchronous bridge and provided as an ATB
extension Interface, ATB Extension 0.
ATB Slave Port 3 Connected using an asynchronous bridge and provided as an ATB
extension Interface, ATB Extension 1.
The SCP subsystem also contains an ATB funnel that funnels the two trace sources from the
ITM and the ETM down to one ATB interface.
This trace output is then combined with the STM trace source and System Profiler trace source
using another funnel, Funnel cssys1, before it is fed into the ETF, ETF1. The funnel inputs are
connected as follows:
The trace outputs of funnels cssys0 and cssys1 each feed into an Embedded Trace FIFO (ETF)
and then combine using funnel cssys2. The funnel inputs connect as follows:
Both ETFs implement a 64KB buffer that enables buffering of trace data. The output trace data
stream of the funnel, Funnel cssys2, is then replicated before it is sent to either the:
• Trace Port Interface Unit (TPIU), that sends it out using the trace port.
• ETR that can write the trace data to memory located in the application memory space.
The MMU-401 translates addresses of accesses from the ETR to memory to support the use of
Intermediate Physical Address (IPA) at the ETR. The ETF can also operate as a trace buffer
enabling either:
• The debugger to capture the trace data using the JTAG interface.
• The application processors to access it when performing self-hosted debug.
Cross triggers provide a way for cores and devices to trigger each other in a controlled manner.
Triggers to and from a device or processor connect to a CTI module that maps them onto
channels that are then connected to one or more CTMs to replicate the channels to all CTIs in
the system.
Table 2-15 shows the components that have trigger sources and sinks in the ADP and how they
are connected.
Cortex-A72 cores Y Y Triggers from each core connect to a CTI associated with the cluster, and all CTIs
in the cluster then connect to a CTM within the cluster before connecting to a CTM
in the CoreSight subsystem.
Cortex-A53 cores Y Y Triggers from each core connect to a CTI associated with the cluster, and all CTIs
in the cluster then connect to a CTM within the cluster before connecting to a CTM
in the CoreSight subsystem.
Cortex-M3 SCP Y Y Triggers from the Cortex-M3 processor connect to a CTI shared with the 32kHz
Generic Counter in the SCP. This CTI then connects to the CTM within the
CoreSight subsystem.
32kHz Generic Counter N Y This Generic Counter takes two trigger sources from the CTI, shared with the
32k CNTControl Cortex-M3 SCP, to enable it to halt the counter.
ETF Y Y The ETF generates two triggers, FULL and ACQCOMP, and takes trigger inputs
to drive FLUSHIN and TRIGIN. These triggers connect to CTI0 in the CoreSight
subsystem.
ETR Y Y The ETR generates two triggers, FULL and ACQCOMP, and takes trigger inputs
for FLUSHIN and TRIGIN. These triggers connect to CTI0 in the CoreSight
subsystem.
TPIU N Y The TPIU takes trigger inputs for FLUSHIN and TRIGIN. These triggers connect
to CTI0 in the CoreSight subsystem.
AON_REF_CLK N Y This Generic Counter takes two triggers to enable it to halt the counter. These
Generic Counter sources are from CTI1 in the CoreSight subsystem.
AON_REF_CLK
CNTControl
Juno System Profiler Y Y The System Profiler takes a single trigger input and provides a single trigger
output. These triggers connect to CTI1 in the CoreSight subsystem.
SCP watchdog N Y The SCP watchdog takes two trigger sources from the CTI, shared with the
Cortex-M3 SCP, to enable it to halt the watchdog timer.
Trusted watchdog N Y The trusted watchdog takes two trigger sources to enable it to halt the watchdog
timer. These sources are from CTI1 in the CoreSight subsystem.
For more information about CTI and CTM, see the ARM® CoreSight™ Components Technical
Reference Manual.
The System Trace Macrocell (STM) is a trace source that provides high-bandwidth trace of
instrumentation that is embedded into software. This instrumentation is made up of
memory-mapped writes to the STM using its AXI slave interface. In addition, the STM provides
a hardware event interface, generating trace data on the rising edge of the signals on the
hardware event interface. It also implements an APB interface that connects to the APB bus
from the CoreSight subsystem.
The STM AXI interface occupies a 16MB address space in the application memory map.
However, for each processor core in the ADP, and also each unique master interface, or group
of master interfaces, in the system, the STM presents a separate view of the 16MB AXI space
to each as if each core or master has its own private STM, therefore providing up to a full 65536
extended stimulus port for each core or master interface.
Table 2-16 on page 2-39 shows the STM views and the master or processor cores with which
each is associated.
Note
The STM provides at total of 64 views, and some are Reserved. Table 2-16 on page 2-39 also
shows how these views are mapped to STPv2 master ID on the ATB trace port.
When accessing the STM using the AXI slave expansion interface, each external master is
identified using the same ARUSER[9:6] and AWUSER[8:5] bits that the TZC-400 NSAID
inputs also use. For each access to the STM from the AXI slave expansion interface, the value
on ARUSER[9:6] and AWUSER[8:5] identifies the view of the expansion master view that is
required, with the value of x+1 selecting the expansion master x view, where x is in the range
0-7.
If the value of the ARUSER[9:6] and AWUSER[8:5] bits is not in the range 1-8, and the access
does not belong to any logical system master that Table 2-16 shows, then the default master
view, 62, is selected.
[2:3] Reserved - -
[8:31] Reserved - -
[42:61] Reserved - -
HWEVENTS[0] CTI0TRIGOUT[4] Trigger output CTI0TRIGOUT[4] from CTI0, rising edge detection
HWEVENTS[1] CTI0TRIGOUTN[4] Trigger output CTI0TRIGOUT[4] from CTI0, falling edge detection
HWEVENTS[2] CTI0TRIGOUT[5] Trigger output CTI0TRIGOUT[5] from CTI0, rising edge detection
HWEVENTS[3] CTI0TRIGOUTN[5] Trigger output CTI0TRIGOUT[5] from CTI0, falling edge detection
HWEVENTS[63:4] - Reserved
This debug subsystem includes the Cortex-A72 and Cortex-A53 clusters, and associated debug
components that are accessible using the application memory map. External debug access to this
subsystem uses a DAP that consists of the following:
• An SWJ - DP that is a combined JTAG-DP and SWDP, enabling debug access either using
JTAG or SWD.
• An APB-AP, that is an APB Memory Access Port. In the ADP, this module enables the
debugger to directly connect to the APB bus within the CoreSight subsystem that connects
using an APB switch to all debug related components mapped to the CoreSight debug and
trace APB region within the peripherals region of the application memory map.
• An APB switch, that enables APB accesses from the system and from the APB-AP to
either access CoreSight subsystem components.
All debug components in the ADP operate in a separate time domain to the time domains of the
application processors and the system control processor that Timers on page 2-29 describes. A
separate Generic Counter, CS CNTControl, is implemented that provides a timestamp only for
use as the CoreSight timestamp. This Generic Counter operates on the main reference clock that
is distributed to all CoreSight components.
The CoreSight system requires a higher resolution, higher clock frequency 64-bit time value that
timestamps trace data from trace sources. The 56 least significant bits of the AON_REF_CLK
time count value from CS CNTControl are the 56 most significant bits of the timestamp value.
A CoreSight Interpolator component generates the least significant 8 bits of the timestamp,
using a local high frequency clock and interpolation.
The following equation describes how to generate the high-resolution Timestamp from the
original low-resolution Timestamp Counter:
The timestamp value that the STM reports is natural binary encoded and 64 bits wide.
2.10 Boot
This section describes:
• About boot.
• Initial power, clock, and Reset requirements for boot.
The ADP supports the Trusted Board Boot on ARM Reference Hardware Platform Design
Document. To support boot, the ADP provides:
For the ADP to successfully boot-up, the SCP must be supplied with power and clocks, and its
reset must be deasserted, without any software support. The ADP must meet the following
conditions:
• The ADP Board power-management IC supplies VAON, VSYS, VA72, VA53, and
VGPU.
• Resolution:
VGA 640 × 480 at 60fps and pixel clock frequency of 23.75MHz.
UXGA 1600 × 1200 at 60fps and pixel clock frequency of 63.5MHz.
Full HD 1920 × 1080 at 60fps and pixel clock frequency of 148.5MHz.
QXGA, 40% blanking
2048 × 1536 at 30fps and pixel clock frequency of 132MHz.
WQXGA, 40% blanking
2560 × 1600 at 30fps and pixel clock frequency of 172MHz.
WQXGA, reduced blanking
2560 × 1600 at 60fps and pixel clock frequency of 210MHz.
• Frame buffer:
— Supports all common non-indexed RGB formats.
— Frame buffer can be placed anywhere in memory.
— Scan lines must be a multiple of 8 bytes long, and aligned to 8-byte boundaries.
There are no other restrictions on size or placement. Line pitch configurable in
multiples of 8 bytes.
• Management:
— Frame buffer address can be updated at any time, and applies from the next full
frame.
— Frame buffer size, color depth, and timing can only be changed while the display is
disabled.
• Maskable interrupts:
— DMA-end, last part of frame that is read from bus.
— VSYNC.
— Underrun.
— Bus error.
• Color depths:
— Supports 8 bits per color. Frame buffers with other color depths are truncated or
interpolated to 8 bits per component.
• Interfaces:
— AMBA 3 APB interface for configuration.
— Read-only AXI bus for frame buffer reads.
— Standard LCD external interface. All timings and polarities are configurable.
— APB, AXI, and pixel clock can run on separate asynchronous clocks.
• Buffering:
— Internal 1KB buffer.
— After underrun, it blanks the rest of the frame and resynchronizes from the next
frame.
2.12 PCIe
The ADP includes a 4-lane PCIe Root Port capable of operating at up to 5GTps per lane. The
Root Port supports high-bandwidth connectivity with external peripherals such as SATA disk
controllers and Gigabit Ethernet NIC. The PCIe Root Port and PHY are integrated on the chip.
The Root Port supports the Enhanced Configuration Access Mechanism (ECAM) for access to
the PCIe configuration spaces of all devices in the PCIe subsystem. See the PCI Express Base
Specification Revision 3.0 for more information on ECAM.
2.12.2 Interrupts
The ADP includes a Message Signaled Interrupt (MSI) unit that complies with the GICv2m
architecture. The Server Base System Architecture (SBSA) defines the GICv2m architecture.
The MSI unit converts memory writes, that target GICv2m registers, into edge-triggered
interrupt signals that are connected to the GIC-400 Generic Interrupt Controller. Application
processor interrupt map on page 3-3 shows the SPIs allocated to the MSI unit. The GICv2m
architecture enables an IMPLEMENTATION DEFINED number of Non-secure MSI frames to be
implemented. The MSI unit implements four of these frames. Application processor memory
map on page 3-10 shows these frames.
The PCIe macro provides interrupts that Table 3-3 on page 3-4 shows. All the interrupts are of
type level except for the System Error Interrupt, that is of type edge.
2.12.3 MSI
The ADP can convert memory writes to an interrupt using an MSI component that implements
the GICv2m architecture.
In the ADP, the MSI component supports four Non-secure frames. Each frame occupies a 64KB
region and has 32 SPIs.
The tl_clk signal must be 133MHz for correct operation of the PCIe macro.
2.12.5 Limitations
• Retention of PCIe configuration, sticky registers in the PCI Express Base Specification,
Revision 3.0, when the SoC is powered down.
• Relaxed Ordering.
• ID based ordering.
• Virtual Channels.
• Address Translation Services.
• Slot power limit.
• Peer-to-peer.
The ADP supports the addition of peripherals such as GPUs and codecs to the external FPGA
LogicTile for use cases such as prototyping and development of device drivers. Adding
peripherals requires the ADP to provide both AXI slave and master interfaces to connect to
external peripherals. However, exporting the full AXI interface from the chip is expensive in
terms of pin count and die area.
Therefore, the ADP uses a simple low pin-count solution using the TLX-400 Thin Links. The
chip-to-chip interface does not use any high-speed I/O, SerDes, or PHY, because these
components are not available in the 28HPM process.
The CoreLink TLX-400 Network Interconnect Thin Links is an extension to the CoreLink
NIC-400 Network Interconnect base product and provides a mechanism to reduce the number
of signals in an AXI point-to-point connection and enable it to be routed over a longer distance.
AXI interfaces
Two Thin Link bridges are required for off-chip communication using the AXI protocol.
The chip-to-chip interface in the ADP consists of a Thin Links based AXI master and AXI slave
interface to integrate off-chip logic. External masters on the FPGA, such as the GPU and video
codecs, use the AXI slave interface to access the ADP memory. The cores in the ADP use the
AXI master interface to configure the peripherals on the FPGA.
Figure 2-10 on page 2-47 shows the AXI interfaces between the ADP and the FPGA.
ADP FPGA
AXI AXI
>250MB/s
slave master
AXI AXI
master slave
Location The AXI master port in the FPGA connects to the AXI slave port in the
ADP.
Configurations This AXI4 interface can connect to an AXI master interface, or multiple
AXI masters on the FPGA. The interface supports the following.
• 128-bit data.
• 40-bit address.
• 6 ID bits.
• The ARUSERTLXS[5:0] and AWUSERTLXS[4:0] signals
support coherency signals on the ACE-Lite interface, excluding
ARBAR and AWBAR:
ARSNOOP[3:0] Indicates that the transaction type of a
shareable access is mapped to
ARUSERTLXS[5:2].
ARDOMAIN[1:0] Indicates that the shareability domain of the
transaction is mapped to
ARUSERTLXS[1:0].
AWSNOOP[2:0] Indicates that the transaction type of a
shareable access is mapped to
AWUSERTLXS[4:2].
AWDOMAIN[1:0] Indicates that the shareability domain of the
transaction is mapped to
AWUSERTLXS[1:0].
Bandwidth Requirement
Table 2-18 shows the bandwidth that is required on the AXI slave
interface.
Required bandwidth on
External master
Thin Links based AXI slave port
Location The AXI Master Port in the ADP is connected to the AXI Slave Port in the
FPGA.
Configurations This AXI4 interface can connect to an AXI slave interface, or multiple
AXI interfaces, on the FPGA. The interface supports the following.
• 64-bit data.
• 40-bit address.
• 14 ID bits.
• ARUSERTLXM[3:0] and AWUSERTLXM[3:0] signals identify
masters. That is, the ID of the master that generated the transaction
to the AXI master interface. The master could be either in the
compute subsystem or outside at the SoC level.
Bandwidth Requirement
The AXI master interface bandwidth is not critical because the traffic is
mostly APB configuration writes. However, it is necessary to occasionally
clear the frame buffer in the FPGA tile.
TLX-400 bandwidth
To support the bandwidth requirements on the AXI slave interface, the ADP uses the following
link widths:
• 56 in the forward direction, AW, AR, W.
• 48 in the reverse direction, R, B.
The 128-bit AXI bus internal to the ADP runs at up to 533MHz that provides a bandwidth
capacity of 8.5GBps. The Thin Links configuration in the ADP supports the following,
assuming the same 533MHz clock:
• 25% of the maximum AXI bandwidth, 2.13GBps, in the forward direction.
• 31% of the maximum AXI bandwidth, 2.64GBps, in the reverse direction.
However, the ADP-FPGA interface only supports up to 61.5MHz clock. Therefore the
bandwidth that is supported on the ADP slave interface is as follows:
• Forward direction, 2.13GBps x (61.5/533) = 246MBps.
• Reverse direction, 2.64GBps × (61.5/533) = 305MBps.
The Thin Links based slave interface can accept 16 outstanding reads and 16 outstanding writes
from an external master.
The AXI master interface has a data width of 64 bits. This width means that the AXI width is
different to the AXI slave interface. The 64-bit AXI bus internal to the ADP runs at up to
400MHz and supports a maximum bandwidth of 4GBps.
The AXI master interface bandwidth is not critical at the slave interface. Therefore, a link width
of 16, single direction, is selected for the ADP. This scheme supports bandwidths of:
• 68MBps, forward.
• 78MBps, reverse.
Latency
Block Clock frequency Period
AR R AW W B
This chapter describes the Juno r2 ARM Development Platform (ADP) registers, and provides
information on how to program the ADP.
• Do not attempt to access Reserved or unused address locations. Attempting to access these
locations can result in UNPREDICTABLE behavior.
The ARM Development Platform (ADP) supports a configurable number of cores across two
clusters.
Interrupts from processor cores connect to a GIC-400 generic interrupt controller that both
clusters share. The ARM Generic Interrupt Controller Architecture associates each core with a
core ID value.
Table 3-1 shows the core ID values that are assigned for each core.
0 1 2 3 4 5
The Generic Interrupt Controller Architecture defines the following types of interrupt:
• Private Peripheral Interrupts (PPIs) separately exist for each processor.
• Shared Peripheral Interrupts (SPIs) are shared for all processors.
Table 3-2 shows the PPI map for the application processors in the ADP.
29 Cortex-A72 or Cortex-A53 cluster nCNTPSIRQ Secure PL1 physical timer event, PPI1.
Table 3-3 shows the SPI map for the application processor cores in the ADP. In the ADP, for
configurations that include fewer than eight cores, interrupts for unimplemented cores are
Reserved.
40 Reserved.
41
42
43
44
45
46
47
Table 3-3 Application processor cluster shared peripheral interrupt map (continued)
78 - Reserved.
79
Table 3-3 Application processor cluster shared peripheral interrupt map (continued)
82 - Reserved.
95-99 - Reserved.
101-114 - Reserved.
121 Interrupt 1.
122 Interrupt 2.
123 Interrupt 3.
Table 3-3 Application processor cluster shared peripheral interrupt map (continued)
146 - Reserved.
147
160 PCIe Root Port AXI address translation post error interrupt.
161 PCIe Root Port AXI address translation fetch error interrupt.
162 PCIe Root Port AXI address translation discard error interrupt.
164 PCIe Root Port PCIe address translation post error interrupt.
165 PCIe Root Port PCIe address translation fetch error interrupt.
166 PCIe Root Port PCIe address translation discard error interrupt.
Table 3-3 Application processor cluster shared peripheral interrupt map (continued)
102 EXT_IRQ[2]
103-191 - Juno ARM Development Platform SoC internal peripherals and systems.
195 EXT_IRQ[6] GPIO (0) and GPIO (1) used for extra user key entry.
All board interrupts are level-sensitive. The IOFPGA conditions any edge-triggered interrupt
before routing it to the ADP, and provides appropriate registers for software to clear the
interrupt.
For more information, see the ARM® Versatile™ Express Juno r2 Development Platform
(V2M-Juno r2) Technical Reference Manual.
ARMv8-A supports an SError exception, an interrupt mechanism for system error events. The
GICv2 does not support these exceptions, so the nREI and nSEI inputs to the Cortex-A72 and
Cortex-A53 clusters are unused and tied HIGH.
Figure 3-1 on page 3-11 shows a top-level representation of the application memory map that
complies with the Principles of ARM Memory Maps. It shows 1024GB of address space,
accessible using 40-bit addressing, and is divided up into the following types of subregions:
Expansion area These areas are mapped to the asynchronous AXI master expansion
interface to enable partners to interface to the subsystem.
The memory map that this section describes also shows the overall security attributes associated
with each area of memory. The security attributes are split into the following groups:
User-defined
These areas are mapped to expansion interfaces and components outside the ADP
and define their access security. These components must use the ARPROT[1] or
AWPROT[1] bits provided on the expansion interfaces to determine the security
permission of each access. Accesses that fail any external security checks must
result in a DECERR response.
Figure 3-1 shows the ADP top-level application memory map, but it does not show areas with
multiple security attributes.
0x100_0000_0000
Reserved 512GB
0x80_0000_0000
0x40_0000_0000
Reserved 216GB
0x10_0000_0000
DRAM 6GB
0x08_8000_0000
Reserved 30GB
0x01_0000_0000
DRAM 2GB
0x00_8000_0000
ADP peripherals 512MB
0x00_6000_0000
PCIe expansion 512MB
0x00_4000_0000
Reserved 272MB
0x00_2F00_0000
ADP peripherals 256MB
0x00_1F00_0000
SMC interface 368MB
0x00_0800_0000
Boot 128MB
0x00_0000_0000
Application processor
Address space memory map
Reserved
Expansion interfaces
• Where a region maps a peripheral or device, if the peripheral or device occupies less than
the region size used, for example, if a peripheral only occupies 4KB from the available
64KB of the region Reserved for it, access to the unmapped region results in a DECERR
response.
• Accesses to Reserved areas within the memory map result in a DECERR response.
• When accessing areas that peripherals or devices occupy, these peripherals or devices
determine the response to return. These areas can include unmapped or Reserved areas
within the areas that the peripheral or device occupies.
The following sections describe the boot and ADP peripheral areas, and how the DMC area
maps to DRAM memory using the memory controller. This section describes:
• Boot region on page 3-12.
• Peripherals region on page 3-14.
• DRAM on page 3-20.
• Application memory map summary on page 3-21.
Figure 3-2 shows that the first 128MB of the address map is defined as a Secure boot region and
only Secure accesses can access it.
Reserved
0x0800_0000
PCIe expansion
Reserved 65280KB
0x0404_0000
Reserved Trusted RAM 256KB
0x0400_0000
DRAM
Reserved 65472KB
Reserved
DRAM
0x0001_0000
ADP peripherals Trusted boot ROM 64KB
0x0000_0000
PCIe expansion
Reserved
ADP peripherals
SMC interface
Boot
Application processor
memory map
Address space
Reserved
Expansion interfaces
Figure 3-3 shows that a 368MB region starting from address 0x00_0800_0000 is defined as the
ADP SMC interface area.
Reserved
PCIe expansion
Reserved
DRAM
Reserved
DRAM
ADP peripherals
PCIe expansion
0x1EFF_FFFF
CS3, IOFPGA system peripherals 48MB
Reserved 0x1C00_0000
CS2, 10/100 Ethernet 64MB
0x1800_0000
ADP peripherals Reserved 65280KB
0x1404_0000
SMC interface CS1 IOFPGA, block RAM 256KB
0x1400_0000
Boot
Reserved 128MB
Application processor
0x0C00_0000
memory map CS0, NOR 64MB
0x0800_0000
Address space
Reserved
Expansion interfaces
This region defines the memory map for peripherals and memories that are part of the ADP.
Figure 3-4 shows that a 256MB region starting from address 0x00_1F00_0000 is defined as the
ADP peripherals and memory area.
0x2F00_0000
Reserved Reserved 16352KB
0x2E00_8000
Non-trusted SRAM 32KB
0x2E00_0000
Reserved 16320KB
PCIe expansion 0x2D01_0000
Graphics 64KB
0x2D00_0000
Reserved 14144KB
Reserved 0x2C23_0000
Processor peripherals 2404KB
0x2C01_0000
Reserved 10MB
DRAM 0x2B61_0000
Reserved System peripherals 22592KB
DRAM 0x2A00_0000
ADP peripherals Reserved 16MB
PCIe expansion 0x2900_0000
Address space
Reserved
Expansion interfaces
Non-trusted ROM
This non-trusted ROM area contains non-trusted boot code. See the Trusted Base System
Architecture Platform Design Document.
Reserved 768KB
0x2325_0000
Cortex-A53 core 2 trace 64KB
0x2324_0000
Cortex-A53 core 2 PMU 64KB
0x2323_0000
Cortex-A53 core 2 CTI 64KB
0x2322_0000
Cortex-A53 core 2 debug 64KB
0x2321_0000
Reserved 768KB
0x2315_0000
0x2900_0000 Cortex-A53 core 1 trace 64KB
0x2314_0000
Cortex-A53 core 1 PMU 64KB
STM AXI slave 0x2313_0000
Cortex-A53 core 1 CTI 64KB
0x2312_0000
0x2800_0000 Cortex-A53 core 1 debug 64KB
0x2311_0000
Reserved 192KB
0x2335_0000
Cortex-A53 debug 0x230E_0000
Cortex-A53 ELA 64KB
APB interface 0x230D_0000
0x2300_0000 Cortex-A53 ATB funnel 64KB
0x230C_0000
Reserved 12992KB
Reserved 448KB
0x2235_0000
Cortex-A72 debug 0x2305_0000
Cortex-A53 core 0 trace 64KB
APB interface 0x2304_0000
0x2200_0000 Cortex-A53 core 0 PMU 64KB
0x2303_0000
CoreSight APB Cortex-A53 core 0 CTI 64KB
16MB 0x2302_0000
expansion Cortex-A53 core 0 debug 64KB
0x2301_0000
0x2100_0000 Cortex-A53 ROM table 64KB
0x2300_0000
Reserved 14912KB
0x2017_0000
SYS_CTI2 64KB 0x2015_0000
0x2016_0000 Cortex-A72 core 1 trace 64KB
Funnel cssys2 64KB 0x2014_0000
0x2015_0000 Cortex-A72 core 1 PMU 64KB
ETF1, ETB1 64KB 0x2213_0000
0x2014_0000 Cortex-A72 core 1 CTI 64KB
Funnel cssys1 64KB 0x2212_0000
0x2013_0000 Cortex-A72 core 1 debug 64KB
Replicator 64KB 0x2211_0000
0x2012_0000
SYS_CTI1 64KB Reserved 192KB
0x2011_0000
STM debug APB 64KB 0x220E_0000
0x2010_0000 Cortex-A72 ELA 64KB
0x220D_0000
Reserved 512KB Cortex-A72 ATB funnel 64KB
0x220C_0000
0x2008_0000
ETR 64KB
0x2007_0000 Reserved 448KB
Reserved 128KB
0x2205_0000
0x2005_0000 Cortex-A72 core 0 trace 64KB
Funnel main 64KB 0x2204_0000
0x2004_0000 Cortex-A72 core 0 PMU 64KB
TPIU 64KB 0x2203_0000
0x2003_0000 Cortex-A72 core 0 CTI 64KB
SYS_CTI0 64KB 0x2202_0000
0x2002_0000 Cortex-A72 core 0 debug 64KB
ETF0, ETB0 64KB 0x2201_0000
0x2001_0000 Cortex-A72 ROM table 64KB
CS ROM 64KB 0x2200_0000
0x2000_0000
0x2B61_0000
ETR MMU-401 64KB
Reserved 0x2B60_0000
Reserved Reserved 960KB
Non-trusted SRAM
0x2B51_0000
PCIe MMU-401 64KB
Reserved 0x2B50_0000
Reserved 960KB
Graphics
PCIe expansion 0x2B41_0000
GPU MMU-400 64KB
Reserved 0x2B40_0000
Reserved 1MB
Processor peripherals
Reserved 0x2B30_0000
Reserved
System Profiler 1MB
DRAM System peripherals 0x2B20_0000
SCP Message Handling Unit (MHU) 64KB
Reserved 0x2B1F_0000
DRAM Reserved
Reserved 1280KB
ADP peripherals
PCIe expansion 0x2B0B_0000
CoreSight DMC-400 configuration 64KB
0x2B0A_0000
Reserved
Reserved 8576KB
ADP peripherals Reserved
SMC interface 0x2A84_0000
Non-trusted ROM AP_REFCLK_NS CNTBase0 64KB
Boot 0x2A83_0000
AP_REFCLK_S CNTBase0 64KB
Application processor 0x2A82_0000
AP_REFCLK CNTCTL 64KB
memory map 0x2A81_0000
REFCLK CNTRead 64KB
0x2A80_0000
Address space
Reserved Reserved 3392KB
Reserved 3200KB
0x2A10_0000
Compute subsystem NIC-400 GPV 1MB
0x2A00_0000
The processor peripherals region is Reserved for peripherals that the application processors
require.
• GIC-400. See the ARM® CoreLink™ GIC-400 Generic Interrupt Controller Technical
Reference Manual.
• CCI-400 Programmers View. See the ARM® CoreLink™ CCI-400 Cache Coherent
Interconnect Technical Reference Manual.
• GICv2m MSI unit. See Message Signaled Interrupt (MSI) unit on page 3-9.
0x2C23_0000
Reserved 64KB
Reserved
Reserved 128KB
Non-trusted SRAM
0x2C20_0000
Reserved
GICv2m MSI 256KB
Graphics
PCIe expansion 0x2C1C_0000
Reserved
Reserved 1152KB
Processor peripherals
Reserved 0x2C0A_0000
Reserved CCI-400 64KB
0x2C09_0000
DRAM System peripherals
Reserved 124KB
Reserved
DRAM Reserved 0x2C07_1000
GIC-400 virtual CPU interface 8KB
ADP peripherals 0x2C06_F000
PCIe expansion Reserved 120KB
CoreSight
0x2C05_1000
Reserved GIC-400 virtual interface control 8KB
0x2C04_F000
ADP peripherals Reserved Reserved 120KB
SMC interface 0x2C03_1000
Non-trusted ROM GIC-400 physical CPU interface 8KB
Boot 0x2C02_F000
Application processor Reserved 120KB
memory map 0x2C01_1000
GIC-400 distributor 4KB
0x2C01_0000
Address space
Reserved
Expansion interfaces
The graphics region contains graphics-related processing units. Figure 3-8 on page 3-18 shows
the graphics region memory map.
Address space
Reserved
Reserved Reserved
Expansion interfaces
Non-trusted SRAM
Reserved 0x2D01_0000
PCIe expansion Mali T600
Graphics 64KB
Series GPU
Reserved 0x2D00_0000
Reserved
Processor peripherals
Reserved
DRAM
Reserved System peripherals
DRAM
ADP peripherals Reserved
PCIe expansion
Reserved CoreSight
ADP peripherals
SMC interface Reserved
Boot
Non-trusted ROM
Application processor
memory map
Non-trusted SRAM
The Non-trusted SRAM is a 32KB scratch RAM that application processor software uses.
Figure 3-9 on page 3-19 shows that a 256MB region starting from address 0x00_1F00_0000 is
defined as the ADP peripherals and memory area.
0x8000_0000
System override registers 64KB
0x7FFF_0000
Reserved 64KB
Reserved 0x7FFE_0000
SMC PL354 configuration 64KB
0x7FFD_0000
USB Enhanced Host Controller Interface (OHCI) 64KB
0x7FFC_0000
USB Open Host Controller Interface (OHCI) 64KB
0x7FFB_0000
I2C 64KB
PCIe expansion 0x7FFA_0000
I2S 64KB
0x7FF9_0000
SOC_UART0 64KB
0x7FF8_0000
SOC_UART1 64KB
Reserved 0x7FF7_0000
HDLCD 0 configuration 64KB
0x7FF6_0000
HDLCD 1 configuration 64KB
DRAM 0x7FF5_0000
Reserved 64KB
Reserved 0x7FF4_0000
PCIe Root Port configuration 64KB
DRAM 0x7FF3_0000
PCIe control 64KB
ADP peripherals 0x7FF2_0000
Secure DMA PL330 configuration 64KB
PCIe expansion 0x7FF1_0000
DMA PL330 configuration 64KB
0x7FF0_0000
Reserved DFI PHY 0 configuration 64KB
0x7FEF_0000
DFI PHY 1 configuration 64KB
ADP peripherals 0x7FEE_0000
SMC interface
Boot Reserved 256KB
Application processor
memory map 0x7FEA_0000
Secure I2C 64KB
0x7FE9_0000
Address space Keys 64KB
0x7FE8_0000
Reserved NV counter 64KB
0x7FE7_0000
True Random Number Generator (TRNG) 64KB
Expansion interfaces 0x7FE6_0000
Surge detector 64KB
0x7FE5_0000
Power, Voltage, Temperature (PVT) Cortex-A53 64KB
0x7FE4_0000
PVT Cortex-A72 64KB
0x7FE3_0000
PVT Mali 64KB
0x7FE2_0000
PVT SoC 64KB
0x7FE1_0000
PVT standard cell 64KB
0x7FE0_0000
SoC NIC-400 GPV 1MB
0x7FD0_0000
Reserved 1MB
0x7FB4_0000
USB_SMMU 64KB
0x7FB3_0000
HDLCD0_SMMU 64KB
0x7FB2_0000
HDLCD1_SMMU 64KB
0x7FB1_0000
DMA_SMMU 64KB
0x7FB0_0000
Reserved 251MB
0x7000_0000
0x6000_0000
3.3.4 DRAM
The ADP can support up to a total of 512GB of DRAM, although the board supplies 8GB of
DRAM. The DRAM regions of the memory map are provided in accordance with the Principle
of ARM Memory Maps white paper. The ADP includes a DMC-400 Dynamic Memory
Controller and a DDR3 PHY that enable it to access DRAM.
The CoreLink DMC-400 can protect areas of memory from unwanted memory map aliasing
using address mask and address match registers. These registers determine whether a
transaction to a location is to result in a DECERR response. For more information, see the ARM®
CoreLink™ DMC-400 Dynamic Memory Controller Technical Reference Manual Supplement.
0x100_0000_0000
Reserved
0x88_0000_0000
0x80_0000_0000
PCIe expansion
0x40_0000_0000
Reserved
0x10_0000_0000
DRAM
0x08_8000_0000 Reserved 24GB
Reserved
0x01_0000_0000
DRAM
0x00_8000_0000
ADP peripherals
0x00_6000_0000
PCIe expansion
0x00_4000_0000
0x00_3000_0000 Reserved
0x00_2F00_0000 DRAM 6GB
ADP peripherals
0x00_1F00_0000
SMC interface
0x00_0800_0000
Boot DRAM 2GB
0x00_0000_0000
Application processor The DMC-400 remaps
memory map these to contiguous
Address space
addresses
Reserved
Expansion interfaces
You must configure the DMC-400 to remap the distributed areas so that they form a contiguous
area before accessing DRAM as Figure 3-10 shows. You must configure the DMC-400
configuration registers during Secure boot so that when access targets any unpopulated areas of
memory in the DMC-400, it returns a DECERR, including any access that is beyond 512GB.
See the ARM® CoreLink™ DMC-400 Dynamic Memory Controller Technical Reference Manual.
An option exists to program up to eight Secure or Non-secure access regions, excluding the base
region, in the external memory using the TZC-400 Address Space Controller. See CoreLink
TZC-400 TrustZone Address Space Controller security on page 2-22.
STM AXI Slave 0x00_2800_0000 0x00_28FF_FFFF 16MB Secure and Non-secure access
Compute subsystem NIC-400 GPV 0x00_2A00_0000 0x00_2A0F_FFFF 1MB Secure access only
ADP System Security Control Registers 0x00_2A42_0000 0x00_2A42_FFFF 64KB Secure access only
EL2 Generic Watchdog Control 0x00_2A44_0000 0x00_2A44_FFFF 64KB Secure and Non-secure access
Application processor AON_REF_CLK 0x00_2A81_0000 0x00_2A81_FFFF 64KB Device, peripheral, defined security
CNTCTL
Application processor AON_REF_CLK 0x00_2A83_0000 0x00_2A83_FFFF 64KB Secure and Non-secure access
CNTBase1
GIC physical CPU interface 0x00_2C02_F000 0x00_2C03_0FFF 8KB Device, peripheral, defined security
GIC virtual interface control 0x00_2C04_F000 0x00_2C05_0FFF 8KB Device, peripheral, defined security
GIC virtual CPU interface 0x00_2C06_F000 0x00_2C07_0FFF 8KB Device, peripheral, defined security
GICv2m MSI Frame 0 0x00_2C1C_0000 0x00_2C1C_FFFF 64KB Secure and Non-secure access
GICv2m MSI Frame 1 0x00_2C1D_0000 0x00_2C1D_FFFF 64KB Secure and Non-secure access
GICv2m MSI Frame 2 0x00_2C1E_0000 0x00_2C1E_FFFF 64KB Secure and Non-secure access
GICv2m MSI Frame 3 0x00_2C1F_0000 0x00_2C1F_FFFF 64KB Secure and Non-secure access
SoC Interconnect NIC-400 GPV 0x00_7FD0_0000 0x00_7FDF_FFFF 1MB Secure access only
PVT Monitor, standard cell 0x00_7FE0_0000 0x00_7FE0_0FFF 4KB Programmable access security
PCIe Control Registers 0x00_7FF2_0000 0x00_7FF2_FFFF 64KB Device, peripheral, defined security
PCIe memory address space 0x40_0000_0000 0x7F_FFFF_FFFF 256GB User-defined, exported security
These registers are located in the AON power domain and their states are maintained even if all
the system has been powered down, except for the removal of VSYS.
• ADP peripherals register map that is equally visible to both the application processor and
the SCP.
The following sections are not comprehensive descriptions, or even a full summary of all the
visible register states. They summarize the register states of peripherals that are not part of the
standard ARM IP distributions, and have been developed specifically for the ADP with the
Technical Reference Manuals for all the standard ARM IP register states.
Table 3-6 shows the SSC registers in offset order from the base memory address.
The SSC_BASE is the base address of the SSC. All registers in this module are Secure access
only. If a Non-secure access attempts to access these Secure registers, or any unmapped
unimplemented registers within the 4KB region starting from SSC_BASE, they receive a
DECERR response. Any Secure accesses to unimplemented areas within the 4KB region
starting from SSC_BASE RAZ, WI.
This section describes the System Security Control registers. Table 3-6 on page 3-27 provides
cross references to individual registers.
SSC_ICCFG_STAT Register
SSC_ICCFG_SET Register
SSC_ICCFG_CLR Register
SSC_DBGCFG_STAT Register
31 8 7 6 5 4 3 2 1 0
Reserved
SPIDEN_SEL_STAT
SPIDEN_INT_STAT
SPNIDEN_SEL_STAT
SPNIDEN_INT_STAT
DEVICEEN_SEL_STAT
DEVICEEN_INT_STAT
Reserved
SSC_DBGCFG_SET Register
31 8 7 6 5 4 3 2 1 0
Reserved
SPIDEN_SEL_SET
SPIDEN_INT_SET
SPNIDEN_SEL_SET
SPNIDEN_INT_SET
DEVICEEN_SEL_SET
DEVICEEN_INT_SET
Reserved
[7] SPIDEN_SEL_SET Sets SPIDEN external or internal drive selection, SPIDEN_SEL_STAT, to HIGH.
[5] SPNIDEN_SEL_SET Sets SPNIDEN external or internal drive selection, SPNIDEN_SEL_STAT, to HIGH.
[3] DEVICEEN_SEL_SET Sets DEVICEEN external or internal drive selection, DEVICEEN_SEL_STAT, to HIGH.
SSC_DBGCFG_CLR Register
31 8 7 6 5 4 3 2 1 0
Reserved
SPIDEN_SEL_CLR
SPIDEN_INT_CLR
SPNIDEN_SEL_CLR
SPNIDEN_INT_CLR
DEVICEEN_SEL_CLR
DEVICEEN_INT_CLR
Reserved
[7] SPIDEN_SEL_CLR Clears SPIDEN external or internal drive selection, SPIDEN_SEL_STAT, to LOW.
[5] SPNIDEN_SEL_CLR Clears SPNIDEN external or internal drive selection, SPNIDEN_SEL_STAT, to LOW.
[3] DEVICEEN_SEL_CLR Clears DEVICEEN external or internal drive selection, DEVICEEN_SEL_STAT, to LOW.
SSC_AUXDBGCFG Register
Purpose Auxiliary Debug Configuration Register. A Secure access only read and
write register. This register provides override control of the DBGEN and
NIDEN debug authentication signals.
Usage constraints Setting any of the bits in this register violates compliance with the ARM
Architecture Standard Configurations Platform Design Document, and
requires self-hosted debug to always be present. To disable the use of
external debuggers, drive DEVICEEN LOW using the SSC_DBGCFG
registers instead.
Note
ARM strongly recommends not to use this register, and to leave both bits
at their reset values.
31 2 1 0
Reserved
INTERNAL_DEBUG_OVERRIDE
SSC_SWDHOD Register
Purpose A Secure access only read and write register. It drives control signals that
enable the Halt On Debug functionality of both the SCP watchdog timer,
and the system Secure watchdog.
31 2 1 0
Reserved
SCPWD_HOD_EN
SYSWD_HOD_EN
[1] SCPWD_HOD_EN Setting this bit to HIGH enables the Halt On Debug functionality of the watchdog timer in the SCP
subsystem. When enabled, you can halt the SCP Watchdog using the cross trigger network.
Setting this field to LOW disables Halt on Debug for the SCP watchdog.
[0] SYSWD_HOD_EN Setting this bit to HIGH enables the Halt On Debug functionality of the trusted watchdog in the
main subsystem.
When enabled, you can halt the trusted watchdog using the cross trigger network.
Setting this bit to LOW disables Halt on Debug for the Secure watchdog in the main system.
SSC_GPRETN Register
Purpose A Secure access only read and write memory-mapped register that
provides 16 bits of general storage space for security purposes. The
SSC_GPRETN Register resets only on a system powerup reset.
31 16 15 0
Reserved GPRETN
SSC_VERSION Register
Purpose A Secure access only memory-mapped register that specifies the version
ID for the ADP security feature.
31 28 27 24 23 20 19 12 11 0
DESIGNER_ID PART_NUMBER
MINOR REVISION
MAJOR REVISION
CONFIGURATION
Peripheral ID Registers
SSC_PID_4 Register
31 8 7 4 3 0
[7:4] SIZE Indicates the log2 of the number of 4KB blocks that the interface occupies. This field is set to 0x0.
[3:0] DES_2 JEP106 continuation code that identifies the designer. This field is set to 0x4 for ARM.
SSC_PID_0 Register
31 8 7 0
Reserved PART_0
[7:0] PART_0 Bits [7:0] of the part number. This field is set to 0x41.
SSC_PID_1 Register
31 8 7 4 3 0
[7:4] DES_0 Bits [3:0] of the JEP Identity. This field is set to 0xB for ARM.
[3:0] PART_1 Bits [11:8] of the part number. This field is set to 0x8.
SSC_PID_2 Register
31 8 7 4 3 2 0
JEDEC
[2:0] DES_1 Bits [6:4] of Designer field. This field is set to 0x3 for ARM.
SSC_PID_3 Register
31 8 7 0
Reserved Reserved
COMP_ID Registers
COMP_ID0 Register
COMP_ID1 Register
COMP_ID2 Register
COMP_ID3 Register
The Message Handling Unit (MHU) is a memory-mapped peripheral that provides a mechanism
to assert interrupt signals to facilitate inter-processor message passing between the SCP and the
application processor. The message payload can be deposited into main memory or on-chip
memories, and therefore, the MHU is used as a messaging signaling mechanism.
• A high-priority Non-secure interrupt and a low priority Non-secure interrupt in the SCP
interrupt map.
For each of the six interrupt signals, with a slight difference for the Secure interrupt to the
application processor, the MHU drives the signal using a 32-bit register, with all 32 bits logically
ORed together. The MHU provides a set of registers to enable software to set, clear, and check
the status of each of the bits of this register independently. The use of 32 bits for each interrupt
line enables software to provide more information about the source of the interrupt. For
example, each bit of the register can be associated with a type of event that can contribute to
raising the interrupt.
From these memory-mapped registers, all registers that are associated with Secure interrupts are
mapped as Secure access only, and the rest are accessible to Secure and Non-secure accesses. If
Non-secure accesses attempt to access Secure registers, these accesses are RAZ, WI. If such a
violation occurs, you can use software to configure the MHU to raise an interrupt to the
application processor.
This interrupt is merged with the Secure application processor interrupt, and when enabled
using the MHU_SCFG register, bit 31 of the SCP_INTR_S_STAT register is also used as the
status for this interrupt.
All unmapped, unused areas within the 4KB region that the MHU occupies is Reserved and
accesses targeting them are RAZ, WI.
Note
Software cannot set bit 31 of the MHU SCP_INTR_S register directly regardless of the settings
of the MHU_SCFG Register on page 3-45. It is Reserved for reporting an access violation.
Therefore, writes to bit 31 of the SCP_INTR_S_SET register are ignored.
Because the MHU registers all reside in the same 64Kbyte region, to avoid conflicts with
Normal world software, avoid Secure access to any Non-secure MHU interrupt set, clear, and
status registers.
Table 3-27 on page 3-42 shows a summary of the register map of the MHU.
Table 3-23 shows the System Override registers in offset order from the base memory address.
This section describes the System Override registers. Table 3-23 provides cross references to
individual registers.
SEC_HDLCD Register
[31:2] - Reserved.
GPR_0 Register
GPR_1 Register
Addresses are relative to the base address of the MHU that the ADP memory map defines.
Table 3-27 shows the MHU registers in offset order from the base memory address.
For more information on the MHU, see Message Handling Unit (MHU) on page 3-38.
Because each interrupt line contains three similar control and status registers that are associated
with it, the following sections describe these three registers together, where one of the following
replaces <n> for its associated interrupt line:
SCP_INTR_L Low priority Non-secure interrupt from the SCP to the application
processor.
SCP_INTR_H High priority Non-secure interrupt from the SCP to the application
processor.
CPU_INTR_L Low priority Non-secure interrupt from the application processor to the
SCP.
CPU_INTR_H High priority Non-secure interrupt from the application processor to the
SCP.
This section describes the MHU registers. Table 3-27 on page 3-42 provides cross references to
individual registers.
<n>_STAT Registers
Purpose Low priority, Non-secure interrupt status registers, from the SCP to the
application processor. Each one shows the status of all 32 bits of the
register that drives the associated interrupt line. If any of the bits are set in
the register, then the associated interrupt line is asserted.
Note
For the SCP_INTR_S_STAT register that controls the Secure interrupt to
the application processor, bit 31 also denotes an access violation when the
SVIEN field in the MHU_SCFG register is set HIGH.
31 0
n_<stat>
[31:0] <n>_STAT If any of these bits are set, then the associated interrupt line is asserted.
Bits are set by writing a 1 to the associated SET register, and are cleared
by writing a 0 to the associated CLEAR register.
<n>_SET Registers
Purpose Low priority Non-secure interrupt set register, from the SCP to the
application processor. It sets bits in the associated <n>_STAT register.
When read, it always returns 0x0000_0000.
31 0
n_<set>
[31:0] <n>_SET Setting any bit in this 32-bit field HIGH sets the corresponding bit in the associated <n>_STAT register.
You can set this field as follows:
0 No effect.
1 Writing a 1 to any bit in this 32-bit field clears the corresponding bit in the associated
<n>_STAT register.
<n>_CLEAR Registers
Purpose Low priority Non-secure interrupt clear register, from the SCP to the
application processor. It clears bits in the associated <n>_STAT register.
When read, it always returns 0x0000_0000.
31 0
n_<clear>
MHU_SCFG Register
Purpose MHU Secure configuration register that enables or disables the raising of
interrupts when access security violations occur. An access security
violation is when a Non-secure access attempts to access a Secure only
access register. When enabled, and an access security violation occurs, bit
31 of the INTR_S_STAT register, that controls the MHU_SCP_ INTR_S
Secure interrupt to the application processor, is set HIGH.
31 1 0
Reserved
SVIEN
PID Registers
MHU_PID_4 Register
31 8 7 4 3 0
[7:4] SIZE Indicates the log2 of the number of 4KB blocks that the interface occupies. This field is set to 0x0.
[3:0] DES_2 JEP106 continuation code that identifies the designer. This field is set to 0x4 for ARM.
MHU_PID_1 Register
31 8 7 4 3 0
[7:4] DES_0 Bits [3:0] of the JEP Identity. This field is set to 0xB for ARM.
[3:0] PART_1 Bits [11:8] of the part number. This field is set to 0x0.
MHU_PID_2 Register
31 8 7 4 3 2 0
Reserved REVISION
JEDEC
DES_1
[2:0] DES_1 Bits [6:4] of the Designer field. This field is set to 0x3 for ARM.
MHU_PID_3 Register
31 8 7 0
Reserved Reserved
MHU_PID_0 Register
31 8 7 0
Reserved PART_0
[7:0] PART_0 Bits [7:0] of the part number. This field is set to 0x98.
COMP_ID Registers
MHU_COMP_ID0 Register
31 8 7 0
Reserved COMP_ID0
MHU_COMP_ID1 Register
31 8 7 0
Reserved COMP_ID1
MHU_COMP_ID2 Register
31 8 7 0
Reserved COMP_ID2
MHU_COMP_ID3 Register
31 8 7 0
Reserved COMP_ID3
This section provides a summary of the registers present in the SoC Interconnect NIC-400
Global Programmers View (GPV) block.
Table 3-41 shows the SoC Interconnect NIC-400 sub blocks in offset order from the block base
memory address.
Master interfaces
Slave interfaces
This section provides a summary of the registers that are located in each sub block of the SoC
interconnect NIC-400. Table 3-41 on page 3-50 provides cross references to the sub block base
addresses.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
0x008 security0 WO 32 Security setting for transactions through usb_ehci master interface.
0x00C security1 WO 32 Security setting for transactions through tlx_mst master interface.
0x010 security2 WO 32 Security setting for transactions through usb_ohci master interface.
0x01C security5 WO 32 Security settings for transactions passing through the identified
boot-Secure APB master interfaces:
[0] surge_det.
[1] pvt_a53.
[2] pvt_soc.
[3] pvt_mali.
[4] pvt_a72.
[5] pvt_std_cell.
[6] dfi_phy0_cfg.
[7] dfi_phy1_cfg.
[8] i2s.
[9] hdlcd0_cfg.
[10] hdlcd1_cfg.
[11] uart0.
[12] uart1.
[13] i2c.
[14] pl354_smc_cfg.
[15] pl330_dma_nsec.
Bit values:
0 Secure.
1 Non-secure.
ID Registers
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for NIC-400 master interface to the USB EHCI slave interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for NIC-400 master interface to the slave interface on the Thin Links (TLX) master
port.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for NIC-400 master interface to the USB OHCI slave interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for NIC-400 master interface to the PL354 SMC slave interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the internal NIC-400 bridge between the AXI backplane and the master interfaces
to the following APB4 slave interfaces:
• HDLCD 0 SMMU configuration.
• HDLCD 1 SMMU configuration.
• USB SMMU configuration.
• DMA-330 configuration.
• PCIe configuration.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the internal NIC-400 bridge between the AXI backplane and the master interfaces
to the following slave interfaces:
• DMA-330 DMA Non-secure interface.
• PL354 SMC configuration.
• Surge Detector.
• Process, Voltage, and Temperature (PVT) monitors.
• DFI PHY 0 configuration.
• DFI PHY 1 configuration.
• I2S.
• HDLCD 0 configuration.
• HDLCD 1 configuration.
• UART 0.
• UART 1.
• I2C.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the internal NIC-400 bridge between the AXI backplane and the master interfaces
to the following slave interfaces:
• Random Number Generator.
• Non-volatile counters.
• Keys and fuses.
• System Override Registers.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 master interface to the I/O coherent slave port on the compute
subsystem.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface to the master extension port of the compute
subsystem.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface to the HDLCD Controller 0 master.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers, except where indicated.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to
ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this
register.
Registers for the NIC-400 slave interface to the HDLCD Controller 1 master.
Except where stated otherwise, see the ARM® CoreLink™ NIC-400 Network Interconnect
Technical Reference Manual for descriptions of these registers.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to
ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this
register.
Registers for the NIC-400 slave interface to the DMA-330 DMA master.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to
ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this
register.
Registers for the NIC-400 slave interface to the master interface of the Thin Links slave port.
Except where stated otherwise, see the ARM® CoreLink™ NIC-400 Network Interconnect
Technical Reference Manual for descriptions of these registers.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to
ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this
register.
Registers for the NIC-400 slave interface to the USB master interface.
Except where stated otherwise, see the ARM® CoreLink™ NIC-400 Network Interconnect
Technical Reference Manual for descriptions of these registers.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to
ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this
register.
Registers for the NIC-400 internal downsizing bridge between the compute subsystem master
port slave interface and the main switch for the master interfaces for the attached SoC level
peripherals.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
This section provides a summary of the registers present in the compute subsystem NIC-400
GPV block.
Table 3-59 shows the compute subsystem NIC-400 sub blocks in offset order from the block
base memory address.
This section provides a summary of the registers in each sub block of the Compute subsystem
NIC-400 registers. Table 3-59 provides cross references to sub block base addresses.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
ID Registers
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface that is connected to CCI-400 Master Interface 1.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface that connects to the SoC Interconnect NIC-400 master
interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to ARM®
CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this register.
Registers for the NIC-400 slave interface that connects to the SCP master interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface that connects to the CoreSight Subsystem DAP master
interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Registers for the NIC-400 slave interface that connects to the CoreSight Subsystem ETR master
interface.
See the ARM® CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for
descriptions of these registers.
Table 3-66 on page 3-67 shows the CS_ETR sub block registers.
0x10C qos_cntla RW 32 QoS control register. Enable bits for all the QoS regulators:
[31:21] Reserved. RAZ, do not modify.
[20] mode_ar_fc.
[19:17] Reserved. RAZ, do not modify.
[16] mode_aw_fc.
[15:8] Reserved. RAZ, do not modify.
[7] en_awar_ot.
[6] en_ar_ot.
[5] en_aw_ot.
[4] en_ar_fc.
[3] en_aw_fc.
[2:0] Reserved. RAZ, do not modify.
a. See the ARM® CoreLink™ QoS-400 Network Interconnect Advanced Quality of Service Supplement to ARM®
CoreLink™ NIC-400 Network Interconnect Technical Reference Manual for a description of this register.
Table 3-67 shows the registers in offset order from the base memory address.
0x0100 FB_BASE RW 0x0 32 Frame Buffer Base Address Register on page 3-73
0x0104 FB_LINE_LENGTH RW 0x0 32 Frame Buffer Line Length Register on page 3-73
0x0108 FB_LINE_COUNT RW 0x0 32 Frame Buffer Line Count Register on page 3-74
0x010C FB_LINE_PITCH RW 0x0 32 Frame Buffer Line Pitch Register on page 3-75
0x0204 V_BACK_PORCH RW 0x0 32 Vertical Back Porch Width Register on page 3-77
0x020C V_FRONT_PORCH RW 0x0 32 Vertical Front Porch Width Register on page 3-78
0x0214 H_BACK_PORCH RW 0x0 32 Horizontal Back Porch Width Register on page 3-79
0x021C H_FRONT_PORCH RW 0x0 32 Horizontal Front Porch Width Register on page 3-80
This section describes the HDLCD controller registers. Table 3-67 on page 3-68 provides cross
references to individual registers.
Version Register
Purpose Contains a static version number for the LCD controller. Changes to the
processor that affect registers and data structures increment the
VERSION_MAJOR value and reset the VERSION_MINOR value.
Other changes that do not affect the binary compatibility only increment
the VERSION_MINOR number.
31 16 15 8 7 0
[15:8] VERSION_MAJOR These bits provide the major product version information.
For release r0p0, the value is 0x00.
[7:0] VERSION_MINOR These bits provide the minor product version information.
For release r0p0, the value is 0x00.
31 4 3 2 1 0
Reserved
UNDERRUN
VSYNC
BUS_ERROR
DMA_END
[3] UNDERRUN No data was available to display while DATAEN was active.
This interrupt triggers if the controller does not have pixel data available to drive when DATAEN is active.
When this trigger occurs, the controller drives the default color for the rest of the screen and attempts to
display the next frame correctly.
[1] BUS_ERROR The DMA module received a bus error while reading data.
This interrupt triggers if any frame buffer read operation ever reports an error.
Purpose Clears interrupt sources. Writing a 1 to the bit of an asserted source clears
the interrupt in the Interrupt Raw Status Register on page 3-69, and in the
Interrupt Status Register on page 3-72 if it is not masked.
31 4 3 2 1 0
Reserved
UNDERRUN
VSYNC
BUS_ERROR
DMA_END
[3] UNDERRUN No data was available to display while DATAEN was active.
This interrupt triggers if the controller does not have pixel data available to drive when DATAEN is active.
When this trigger occurs, the controller drives the default color for the rest of the screen and attempts to
display the next frame correctly.
[1] BUS_ERROR The DMA module received a bus error while reading data.
This interrupt triggers if any frame buffer read operation ever reports an error.
Purpose If the corresponding mask bit is set to 1, this register contains the bit mask
that enables an interrupt source.
31 4 3 2 1 0
Reserved
UNDERRUN
VSYNC
BUS_ERROR
DMA_END
[3] UNDERRUN No data was available to display while DATAEN was active.
This interrupt triggers if the controller does not have pixel data available to drive when DATAEN is active.
When this trigger occurs, the controller drives the default color for the rest of the screen and attempts to
display the next frame correctly.
[1] BUS_ERROR The DMA module received a bus error while reading data.
This interrupt triggers if any frame buffer read operation ever reports an error.
Purpose This register is the Interrupt Raw Status Register on page 3-69 ANDed
with the Interrupt Mask Register on page 3-71 and shows the active and
masked interrupt sources. Bits selected by the Interrupt Mask Register on
page 3-71 are active in the Interrupt Status Register. These bits show the
status of the interrupt sources. Bits not selected by the Interrupt Mask are
inactive. If any of the sources are asserted in the Interrupt Status Register,
then the external IRQ line is asserted.
31 4 3 2 1 0
Reserved
UNDERRUN
VSYNC
BUS_ERROR
DMA_END
[3] UNDERRUN No data was available to display while DATAEN was active.
This interrupt triggers if the controller does not have pixel data available to drive when DATAEN is active.
When this trigger occurs, the controller drives the default color for the rest of the screen and attempts to
display the next frame correctly.
[1] BUS_ERROR The DMA module received a bus error while reading data.
This interrupt triggers if any frame buffer read operation ever reports an error.
Purpose Contains the address of the first pixel of the first line in the frame buffer.
31 3 2 0
FB_BASE_ADDR
Reserved
31 3 2 0
FB_LINE_LENGTH
Reserved
Purpose Contains the number of lines to read from the frame buffer.
31 12 11 0
Reserved FB_LINE_COUNT
Purpose Contains the number of bytes between the start of one line in the frame
buffer, and the start of the next line. This value is treated as a signed 2’s
complement number, enabling negative pitch if necessary.
31 3 2 0
FB_LINE_PITCH
Reserved
Purpose Controls aspects of how the LCD controller accesses the bus. This value
can be tuned to better match the characteristics of the memory controller
and other units in the system.
31 12 11 8 7 5 4 3 2 1 0
Reserved
MAX_OUTSTANDING
Reserved
BURST_16
BURST_8
BURST_4
BURST_2
BURST_1
Note
• If the scan line length does not end up at a multiple of the permitted burst lengths, the
controller uses smaller bursts to read the remaining few pixels in each scan line. If no
bursts are permitted, this mechanism also triggers, and has the same effect as permitting
all bursts.
• Incorrectly configuring this register can degrade the performance of both the LCD
controller and the rest of the system.
Purpose Contains the width of the vertical synch signal, which is counted in
number of horizontal scan lines.
31 12 11 0
Reserved V_SYNC
Purpose Contains the width of the interval between the vertical sync and the first
visible line, which is counted in number of horizontal scan lines.
31 12 11 0
Reserved V_BACK_PORCH
Purpose Contains the width of the vertical data area, that is, the number of visible
lines, which are counted in the number of horizontal scan lines.
31 12 11 0
Reserved V_DATA
Purpose Contains the width of the interval between the last visible line and the next
vertical synchronization, which is counted in number of horizontal scan
lines.
31 12 11 0
Reserved V_FRONT_PORCH
Purpose Contains the width of the horizontal synch signal, which is counted in
pixel clocks.
31 12 11 0
Reserved H_SYNC
Purpose Contains the width of the interval between the horizontal sync and the first
visible column, which is counted in pixel clocks.
31 12 11 0
Reserved H_BACK_PORCH
Purpose Contains the width of the horizontal data area, that is, the number of
visible columns that are counted in pixel clocks.
31 12 11 0
Reserved H_DATA
Purpose Contains the width of the interval between the last visible column and the
next horizontal synchronization, which is counted in pixel clocks.
31 12 11 0
Reserved H_FRONT_PORCH
Polarities Register
Purpose Controls the polarities of the synchronization signals and PXLCLK that
is exported.
31 5 4 3 2 1 0
Reserved
PXLCK_POLARITY
DATA_POLARITY
DATAEN_POLARITY
HSYNC_POLARITY
VSYNC_POLARITY
[4] PXLCLK_POLARITY Contains value of the PXLCLKPOL output. This value is intended to be used for controlling the
polarity of the pixel clock that is exported.
Note
• PXLCLK_POLARITY=b1;
— PXLCLK, HDLCD, and MMB_IDCLK, export, are the same polarity.
• PXLCLK_POLARITY=b0;
— PXLCLK, HDLCD, and MMB_IDCLK, export, are the opposite polarity.
Command Register
31 1 0
Reserved
ENABLE
Purpose BYTES_PER_PIXEL plus 1 bytes are extracted from the internal buffer.
The extracted bytes form a 32-bit value. If BIG_ENDIAN is set before the
color components are extracted, the individual bytes are then optionally
reordered.
31 24 23 16 15 8 7 0
3 2 1 0
Undefined 2 1 0
Undefined 1 0
Undefined 0
31 24 23 16 15 8 7 0
0 1 2 3
0 1 2 Undefined
0 1 Undefined
0 Undefined
Figure 3-58 shows the bit assignments for the big endian format.
31 30 5 4 3 2 0
Reserved
BIG_ENDIAN BYTES_PER_PIXEL
Reserved
Table 3-88 shows the bit assignments for the big endian format.
[4:3] BYTES_PER_PIXEL Number of bytes to extract from the buffer for each pixel to display, minus one.
Purpose The bytes extracted from the internal buffer are presented as a 32-bit
value. These registers select how many bits, and at which position, extract
and use as the red, green, and blue color components. If no bits are
extracted or no data is available, the default color is used.
31 24 23 16 15 12 11 8 7 5 4 0
Reserved Reserved
Table 3-90 shows the PCIe Control Registers in offset order from the base memory address.
0x1004 PCIe reset control WO 0x0 32 PCIe Reset Control Register on page 3-86.
0x1008 PCIe reset status RO 0x0 32 PCIe Reset Status Register on page 3-87.
0x100C PCIe clock control RW 0x0 32 PCIe Clock Control Register on page 3-88.
0x2010 Root Port Test In Lower RW 0x0 32 Root Port Test In Register on page 3-89.
0x2018 Root Port Test Out Lower RO 0x0 32 Root Port Test Out Register on page 3-89.
0x2020 Root Port LTSSM RO 0x0 32 Root Port LTSSM Register on page 3-89.
Note
Any memory that is not allocated is treated as RAZ/WI and does not generate an error.
This section describes the PCIe Control registers. Table 3-90 on page 3-85 provides cross
references to individual registers.
Caution
These registers are only for debug and DFT purposes. Software must not access these registers.
Usage constraints Do not modify the values in this register after the PHY_REL bit has been
set.
31 2 1 0
Reserved
FD_SEL
SSC
[1] FD_SEL Feedback divider input selection for the PHY PLL:
0 Integer divider.
1 Fractional divider.
31 3 2 1 0
Reserved
nCLR_STK
RC_REL
PHY_REL
[2] nCLR_STK Select whether on the next reset of the PCIe subsystem, the sticky bits in the PCIe configuration registers
inside the Root Port are reset.
0 Sticky bits are reset at next reset of PCIe subsystem.
1 Sticky bits are not reset at next reset of PCIe subsystem.
Note
In the ADP, this feature is not implemented and software is advised to always set this bit to 0.
[1] RC_REL Releases the transaction and PCIe layers of the Root Port.
0 Writing a 0 has no effect.
1 Writing a 1 to this register releases the transaction and PCIe layers from reset when the PCIe
subsystem is released from reset.
This register changes to 0 when the PCIe subsystem reset occurs.
31 4 3 2 1 0
Reserved
CLR_STK_ST
RC_ST
PHY_ST
PLL_ST
[3] CLR_STK_ST Indicates whether on the next reset of the PCIe subsystem, the sticky bits
in the PCIe configuration registers are reset.
0 Sticky bits are reset at next reset of PCIe subsystem.
1 Sticky bits are not reset at next reset of PCIe subsystem.
31 9 8 7 0
Reserved DELAY
AXI_FORCE
[7:0] DELAY Selects the number of AXI clock cycles of bus inactivity that is required to pass before the AXI clock
is gated.
0 The AXI clock is gated when all transactions have completed.
1 The AXI clock is gated one clock cycle after all transaction have completed.
PMAD_DEBUG Register
Note
This register is for debug and DFT purposes only. Software must not access this register.
PCS_DEBUG_SEL Register
Note
This register is for debug and DFT purposes only. Software must not access this register.
PCS_DEBUG_OUT Register
Note
This register is for debug and DFT purposes only. Software must not access this register.
Note
This register is for debug and DFT purposes only. Software must not access this register.
Note
This register is for debug and DFT purposes only. Software must not access this register.
Note
This register is for debug and DFT purposes only. Software must not access this register.
Secure Register
31 2 1 0
Reserved
MS
S
[1] MS Controls the security of transactions that the PCIe endpoints generate:
0 Secure transaction.
1 Non-secure transaction.
[0] S Controls whether Non-secure transactions can access the PCIe registers:
0 Only Secure.
1 Non-secure and Secure.
Note
This register is RAZ/WI for Non-secure accesses.
PID4 Register
31 8 7 4 3 0
Reserved 4KB
CONT CODE
[7:4] 4KB Number of 4KB blocks that are used by this component in a power
of 2 format. For the PCIe registers, the value is 0x6.
[3:0] CONT CODE The JEP106 continuation code. For ARM Limited, the value is 0x4.
PID0 Register
31 8 7 0
Reserved PART NO
PID1 Register
31 8 7 4 3 0
[7:4] JEP106 ID JEP106 Identity code [3:0]. For ARM Limited, the value is 0xB.
PID2 Register
31 8 7 4 3 2 0
Reserved REV 1
JEP106 ID
[7:4] REV Revision number. Incremental value starting at 0x0. For the PCIe registers, the value is 0x0.
[2:0] JEP106 ID JEP106 identity code [6:4]. For ARM Limited, the value is 0x3.
PID3 Register
31 8 7 4 3 0
[7:4] REVAND Indicates minor errata fixes specific to this design, for example, metal fixes. For the
PCIe registers, the value is 0x0.
[3:0] CUST MOD Indicates customer modification to reusable IP. For the PCIe registers, the value is 0x0.
ID0 Register
31 8 7 0
Reserved PREAMBLE
ID1 Register
31 8 7 4 3 0
Reserved PREAMBLE
COMPONENT CLASS
[7:4] COMPONENT CLASS The class of the component. For the PCIe registers, the value is 0xF.
ID2 Register
31 8 7 0
Reserved PREAMBLE
ID3 Register
31 8 7 0
Reserved PREAMBLE
Table 3-106 shows the PCIe Root Port configuration Registers in address order from the base
memory address.
0x0008-0x000F - - - Reserved.
0x001C-0x007F - - - Reserved.
0x0084-0x008F - - - Reserved.
0x00B4-0x00BF - - - Reserved.
0x00C4 - - - Reserved.
0x00CC-0x00CF - - - Reserved.
0x00D0-0x00D3 - - - Reserved.
0x00E0-0x00FB - - - Reserved.
0x0108-0x013F - - - Reserved.
0x0144-0x0173 - - - Reserved.
0x0188-0x018F - - - Reserved.
0x019C-0x01D7 - - - Reserved.
0x01E4-0x3F03 - - - Reserved.
Note
Program these registers before the Root Port is released from reset. See the RC_REL bit in PCIe
Reset Control Register on page 3-86. Any changes to these registers after reset is released can
lead to UNPREDICTABLE results. The exceptions are the following registers:
• IMASK_LOCAL Register on page 3-120.
• ISTATUS_LOCAL Register on page 3-120.
• ISTATUS_MSI Register on page 3-122.
• ICMD_PM Register on page 3-122.
This section describes the control and status registers. Table 3-106 on page 3-96 provides cross
references to individual registers.
BRIDGE_VER Register
31 28 27 24 23 12 11 0
[31:28] - Reserved.
[27:24] DMA_NUM Indicates the number of DMA engines that are implemented in the
core. Supported values are in the range 0x0-0x8.
[11:0] VERSION Provides the bridge IP core version. For example, 0x123 indicates
version 1.2.3 of the core.
BRIDGE_BUS Register
31 28 27 24 23 20 19 16 15 12 11 0
VERSION
DATAPATH
RD_OUTREQ_N
WR_OUTREQ_N
MAXPAYLOAD
MAXRREQSIZE
[31:28] MAXRREQSIZE Provides the maximum read request size of the bridge internal bus. Supported values are:
0 128 bytes.
1 256 bytes.
2 512 bytes.
3 1024 bytes.
4 2048 bytes.
5 4096 bytes.
[27:24] MAXPAYLOAD Provides the maximum payload size of the bridge internal bus. Supported values are:
0 128 bytes.
1 256 bytes.
2 512 bytes.
3 1024 bytes.
4 2048 bytes.
5 4096 bytes.
[15:12] DATAPATH Indicates the bridge internal bus data path width:
5 256-bits
[11:0] VERSION Provides the bridge internal bus version. For example, 0x123 indicates version 1.2.3 of the Bus.
PCIE_IF_CONF Register
31 28 27 24 23 20 19 16 15 12 11 0
VERSION
IF_ID
B2P_MRD_OUTREQ_N
P2B_MRD_OUTREQ_N
MAXPAYLOAD
MAXRREQSIZE
[31:28] MAXRREQSIZE Provides the maximum supported read request size for the PCIe interface. Supported values
are:
0 128 Bytes.
1 256 Bytes.
2 512 Bytes.
3 1024 Bytes.
4 2048 Bytes.
5 4096 Bytes.
[27:24] MAXPAYLOAD Provides the maximum supported payload size for the PCIe interface. Supported values are:
0 128 Bytes.
1 256 Bytes.
2 512 Bytes.
3 1024 Bytes.
4 2048 Bytes.
5 4096 Bytes.
[23:20] P2B_MRD_OUTREQ_N Number of outstanding read requests from the PCIe domain that the bridge can handle
simultaneously. Supported values are:
0 1 outstanding request.
1 2 outstanding requests.
…
7 128 outstanding requests.
[19:16] B2P_MRD_OUTREQ_N Number of outstanding read requests that the bridge can issue to the PCIe domain. Supported
values are:
0 One outstanding request.
1 Two outstanding requests.
…
7 128 outstanding requests.
[15:12] IF_ID Provides the ID to target this interface, that is, 0. This ID specifies the TRSL_ID fields of the
Address translation Registers descriptions on page 3-126.
[11:0] VERSION Provides the PCI Express Controller core version. For example, 0x123 indicates version 1.2.3
of the core.
PCIE_BASIC_CONF Register
Purpose Provides information on the implementation of the PCIe Root Port core.
31 28 27 24 23 20 19 16 15 8 7 0
FUNC_NUM
[31:28] TYPE Advertises the PCI Express core type. Supported values are:
0x0 Native Endpoint.
0x1 Root Port.
Other values are Reserved.
[27:24] COMPL Advertises the core compliance to PCI Express 3.0 specification. The
only supported value is 0x3. Other values are Reserved.
[23:20] VC_NUM Advertises the number of virtual channels that are implemented in the
core. The only supported value is 0x1. Other values are Reserved.
[19:16] FUNC_NUM Advertises the number of functions that are implemented in the core.
Supported values are between 4'h1 and 4'h8. Other values are
Reserved.
PCIE_BASIC_STATUS Register
31 28 27 24 23 12 11 8 7 0
Reserved NEG_LINK_WIDTH
NEG_MAXPAYLOAD NEG_LINK_SPEED
NEG_MAXRREQSIZE
[31:28] NEG_MAXRREQSIZE Reports the negotiated maximum read request size of the PCIe link. Supported values are:
0 128 bytes.
1 256 bytes.
2 512 bytes.
3 1024 bytes.
4 2048 bytes.
5 4096 bytes.
[27:24] NEG_MAXPAYLOAD Reports the negotiated maximum Payload of the PCIe link. Supported values are:
0 128 bytes.
1 256 bytes.
2 512 bytes.
3 1024 bytes.
4 2048 bytes.
5 4096 bytes.
[11:8] NEG_LINK_SPEED Reports the negotiated link speed of the PCIe link. Supported values are:
1 2.5Gbps link speed.
2 5.0Gbps link speed.
3 8.0Gbps link speed.
[7:0] NEG_LINK_WIDTH Reports the negotiated link width of the PCIe link. Supported values are:
01 x1 link width.
02 x2 link width.
04 x4 link width.
08 x8 link width.
10 x16 link width.
GEN_SETTINGS Register
This PCIE_CFGCTRL Register is deprecated. Software must use the PCIe configuration
register instead.
PCIE_VC_CRED_0 Register
Purpose Enables system firmware to set the initial flow control credit values for
Virtual Channel 0.
Usage constraints All fields in this register are set to their maximum legal values at reset. An
initial value of 0x0 means infinite flow control credits. A Root Port must
advertise infinite credits for completion data and completion headers, so
the only legal value for completion credits is 0x0. The minimum legal
value for the posted and non-posted credits is 0x1.
31 28 27 20 19 8 7 0
POSTED_DATA_CREDITS
NON_POSTED_HEADER_CREDITS
NON_POSTED_DATA_CREDITS POSTED_HEADER_CREDITS
[31:28] NON_POSTED_DATA_CREDITS Bits [3:0] of Non-Posted data credits. Legal values are 0x01-0x10.
[27:20] NON_POSTED_HEADER_CREDITS Number of Non-Posted Header credits. Legal values are 0x01-0x0F.
[19:8] POSTED_DATA_CREDITS Number of Posted Data credits. Legal values are 0x01-0x0B8.
[7:0] POSTED_HEADER_CREDITS Number of Posted Header credits. Legal values are 0x01-0x18.
Note
Software must not rely on the values of this register after reset and is therefore required to
program this register with legal values before releasing the Root Port from reset. See the
RC_REL bit in the PCIe Reset Control Register on page 3-86.
PCIE_VC_CRED_1 Register
Purpose Enables system firmware to set the initial flow control credit values for
Virtual Channel 0.
Usage constraints All fields in this register are set to their maximum legal values at reset. An
initial value of 0x0 means infinite flow control credits. A Root Port must
advertise infinite credits for completion data and completion headers, so
the only legal value for completion credits is 0x0. The minimum legal
value for the posted and non-posted credits is 0x1.
31 24 23 12 11 4 3 0
Reserved COMPLETION_DATA_CREDITS
COMPLETION_HEADER_CREDITS
NON_POSTED_DATA_CREDITS
[31:24] - Reserved.
[3:0] NON_POSTED_DATA_CREDITS Bits [7:4] of Non-Posted Data credits. Legal values are 0x01-0x10.
Note
Software must not rely on the values of this register after reset and is therefore required to
program this register with legal values before releasing the Root Port from reset. See the
RC_REL bit in the PCIe Reset Control Register on page 3-86.
PCIE_PCI_IDS_0
31 16 15 0
DEVICE_ID VENDOR_ID
[31:16] DEVICE_ID Sets the value of the PCIe Device ID for the Root Port.
[15:0] VENDOR_ID Sets the value of the PCIe Vendor ID for the Root Port.
PCIE_PCI_IDS_1
31 16 15 0
CLASS_CODE REVISION_ID
[31:8] CLASS_CODE Sets the value of the PCIe Class code for the Root Port.
[7:0] REVISION_ID Sets the value of the PCIe Revision ID for the Root Port.
PCIE_PCI_IDS_2
31 16 15 0
SUB_SYSTEM_DEVICE_ID SUB_SYSTEM_VENDOR_ID
[31:16] SUB_SYSTEM_DEVICE_ID Sets the value of the PCIe Subsystem device ID for the Root Port.
[15:0] SUB_SYSTEM_VENDOR_ID Sets the value of the PCIe Subsystem vendor ID for the Root Port.
PCIE_PCI_LPM Register
Purpose Enables system firmware to set the values of the capability fields in the
PCI Power Management Capabilities Register.
31 27 26 25 24 22 21 20 0
Reserved
DSI
AUXILIARY CURRENT_SUPPORT
D1_SUPPORT
D2_SUPPORT
PME_SUPPORT
[20:0] - Reserved.
PCIE_PCI_IRQ_0 Register
Purpose PCI Interrupt, MSI, and MSI-X Settings, per function number.
31 30 27 26 16 15 7 6 4 3 2 0
MSI_X_ENABLE INT_PIN
Reserved
NUM_MSI
[30:27] - Reserved.
[15:7] - Reserved.
[3] - Reserved.
Note
The use of MSI and MSI-X generation by the Root Port is deprecated. Software must instead
use the GICv2m to generate MSI or MSI-X interrupts.
PCIE_PCI_IRQ_1 Register
Purpose PCI Interrupt, MSI, and MSI-X Settings, per function number.
31 3 2 0
TABLE_OFFSET
TABLE_BIR
Note
The use of MSI and MSI-X generation by the Root Port is deprecated. Software must instead
use the GICv2m to generate MSI or MSI-X interrupts.
PCIE_PCI_IRQ_2 Register
Purpose PCI Interrupt, MSI, and MSI-X Settings, per function number.
31 3 2 0
PBA_OFFSET
PBA_BIR
Note
The use of MSI and MSI-X generation by the Root Port is deprecated. Software must instead
use the GICv2m to generate MSI or MSI-X interrupts.
PCIE_PEX_DEV Register
Purpose Enables system firmware to set the values of the capability fields in the
PCI Express Device Capabilities Register.
31 12 11 9 8 6 5 3 2 0
Reserved
EP_LAT_L1
EP_LAT_L0S
Reserved
MAX_PAYLOAD_SIZE
[31:12] - Reserved.
[5:3] - Reserved.
PCIE_PEX_LINK Register
Purpose Enables system firmware to set the values of the capability fields in the
PCI Express Link Capabilities Register.
31 24 23 18 17 15 14 12 11 10 9 0
L1_EXIT_LAT
L0S_EXIT_LAT
ASPM_L1
ASPM_L0S
[23:18] - Reserved.
[9:0] - Reserved.
PCIE_PEX_SPC Register
31 30 21 20 16 15 14 13 12 11 0
Reserved Reserved
AER_ENABLE DEV_NUM_RP
RP_RCB
LINK_DE_EMPHASIS
CLK_CONFIG
SLOT_REG_IMPL
[30:21] - Reserved.
[14] LINK_DE_EMPHASIS Sets the initial value of the Selectable de-emphasis field in the Link Control 2 registers.
[13] CLK_CONFIG Sets the Slot Clock Configuration field in the PCIe Link Status Register:
0 Independent.
1 SYS_REF_CLK.
[11:0] - Reserved.
PCIE_PEX_SPC2 Register
31 23 22 18 17 13 12 8 7 3 2 1 0
Reserved
ASPM_L1_DLY
ASPM_L0_DLY
PCIE_MSI_MESSAGE_NUM
AER_MSI_MESSAGE_NUM
ECRC_CHECK_ENABLE
ECRC_GEN_ENABLE
Reserved
[31:23] - Reserved.
[2] ECRC_CHECK_ENABLE Enables the ECRC Check Capable bit in the PCI Express
Advanced Error Capabilities and Control Register.
[1] ECRC_GEN_ENABLE Enables the ECRC Generation Capable bit in the PCI Express
Advanced Error Capabilities and Control Register.
[0] - Reserved.
PCIE_PEX_NFTS Register
31 24 23 16 15 8 7 0
[31:24] - Reserved.
PCIE_BAR_WIN Register
31 4 3 2 1 0
Reserved
PREFETCH_WIN64_ENABLE
PREFETCH_WIN_ENABLE
IO_WIN32_ENABLE
IO_WIN_ENABLE
[31:4] - Reserved.
PCIE_EQ_PRESET_LANE_0_1 Register
Purpose Sets the values of the Lane Equalization Control Register of the Secondary
PCI Express Extend Capability.
31 30 28 27 24 23 22 20 19 16 15 14 12 11 8 7 6 4 3 0
Reserved
LANE1_UP_RCV_HINT
LANE1_UP_TRS_PRES
Reserved
LANE1_DWN_RCV_HINT
LANE1_DWN_TRS_HINT
Reserved
LANE0_UP_RCV_HINT
LANE0_UP_TRS_PRES
Reserved
LANE0_DWN_RCV_HINT
LANE0_DWN_TRS_HINT
[31] - Reserved.
[30:28] LANE1_UP_RCV_HINT Sets the value of the upstream port receiver preset hint for lane 1.
[27:24] LANE1_UP_TRS_PRES Sets the value of the upstream port transmitter preset for lane 1.
[23] - Reserved.
[22:20] LANE1_DWN_RCV_HINT Sets the value of the downstream port receiver preset hint for lane 1.
[19:16] LANE1_DWN_TRS_HINT Sets the value of the downstream port transmitter preset for lane 1.
[15] - Reserved.
[14:12] LANE0_UP_RCV_HINT Sets the value of the upstream port receiver preset hint for lane 0.
[11:8] LANE0_UP_TRS_PRES Sets the value of the upstream port transmitter preset hint for lane 0.
[7] - Reserved.
[6:4] LANE0_DWN_RCV_HINT Sets the value of the downstream port receiver preset hint or lane 0.
[3:0] LANE0_DWN_TRS_HINT Sets the value of the downstream port transmitter preset hint for lane 0.
Note
Transmitter preset and receiver preset values must be set to legal values, as specified in the PCI
Express Specification.
PCIE_EQ_PRESET_LANE_2_3 Register
Purpose Sets the values of the Lane Equalization Control Register of the Secondary
PCI Express Extend Capability.
31 30 28 27 24 23 22 20 19 16 15 14 12 11 8 7 6 4 3 0
Reserved
LANE3_UP_RCV_HINT
LANE3_UP_TRS_PRES
Reserved
LANE3_DWN_RCV_HINT
LANE3_DWN_TRS_HINT
Reserved
LANE2_UP_RCV_HINT
LANE2_UP_TRS_PRES
Reserved
LANE2_DWN_RCV_HINT
LANE2_DWN_TRS_HINT
[31] - Reserved.
[30:28] LANE3_UP_RCV_HINT Sets the value of the upstream port receiver preset hint for lane 3.
[27:24] LANE3_UP_TRS_PRES Sets the value of the upstream port transmitter preset for lane 3.
[23] - Reserved.
[22:20] LANE3_DWN_RCV_HINT Sets the value of the downstream port receiver preset hint for lane 3.
[19:16] LANE3_DWN_TRS_HINT Sets the value of the downstream port transmitter preset for lane 3.
[15] - Reserved.
[14:12] LANE2_UP_RCV_HINT Sets the value of the upstream port receiver preset hint for lane 2.
[11:8] LANE2_UP_TRS_PRES Sets the value of the upstream port transmitter preset hint for lane 2.
[7] - Reserved.
[6:4] LANE2_DWN_RCV_HINT Sets the value of the downstream port receiver preset hint or lane 2.
[3:0] LANE2_DWN_TRS_HINT Sets the value of the downstream port transmitter preset hint for lane 2.
PCIE_CFGNUM Register
Purpose Selects the configuration space that the bridge configuration space
accesses.
31 21 20 19 16 15 8 7 3 2 0
Reserved
FORCE_BE
BYTE_EN
BUS_NUMBER
DEVICE_NUMBER
FUNC_NUMBER
[20] FORCE_BE When asserted, the byte enable of the CFG read or write request is forced to the BYTE_EN
field value, regardless of AXI strobes. Asserting this bit might be required, for example,
when targeting the R1C register, because there is no read strobe in the AXI protocol.
Note
This register is deprecated. Software must use the ECAM method of accessing the PCI
Configuration Space. See the PCI Express Base Specification Revision 3.0.
PM_CONF_0 Register
Purpose PCI Power Management Data Register. PCI Power Management Data
Register provides the scaling factor and state dependant data that are
related to the power state selected by the Data Select Register in the Power
Budgeting Capability.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 0
Reserved
DATA_SCALE_0
DATA_SCALE_1
DATA_SCALE_2
DATA_SCALE_3
DATA_SCALE_4
DATA_SCALE_5
DATA_SCALE_6
DATA_SCALE_7
[31:30] DATA_SCALE_7 Data scale value that is returned when the Data Select Register is set to 0x7:
0x0 Reserved.
0x1 0.1 multiplier.
0x2 0.01 multiplier.
0x3 0.001 multiplier.
[29:28] DATA_SCALE_6 Data scale value that is returned when the Data Select Register is set to 0x6.
[27:26] DATA_SCALE_5 Data scale value that is returned when the Data Select Register is set to 0x5.
[25:24] DATA_SCALE_4 Data scale value that is returned when the Data Select Register is set to 0x4.
[23:22] DATA_SCALE_3 Data scale value that is returned when the Data Select Register is set to 0x3.
[21:20] DATA_SCALE_2 Data scale value that is returned when the Data Select Register is set to 0x2.
[19:18] DATA_SCALE_1 Data scale value that is returned when the Data Select Register is set to 0x1.
[17:16] DATA_SCALE_0 Data scale value that is returned when the Data Select Register is set to 0x0.
[15:0] - Reserved.
Note
See the PCI Power Management Specification, v1.2 for a full description of this register.
PM_CONF_1 Register
Purpose PCI Power Management Data Register. PCI Power Management Data
Register provides the scaling factor and state dependant data that are
related to the power state selected by the Data Select Register in the Power
Budgeting Capability.
31 24 23 16 15 8 7 0
[31:24] DATA_VALUE_3 Sets the value that is returned in the Base Power field when the Data Select Register is 0x3.
[23:16] DATA_VALUE_2 Sets the value that is returned in the Base Power field when the Data Select Register is 0x2.
[15:8] DATA_VALUE_1 Sets the value that is returned in the Base Power field when the Data Select Register is 0x1.
[7:0] DATA_VALUE_0 Sets the value that is returned in the Base Power field when the Data Select Register is 0x0.
Note
See the PCI Power Management Specification, v1.2 for a full description of this register.
PM_CONF_2 Register
Purpose PCI Power Management Data Register. PCI Power Management Data
Register provides the scaling factor and state dependant data that are
related to the power state selected by the Data Select Register in the Power
Budgeting Capability.
31 24 23 16 15 8 7 0
[31:24] DATA_VALUE_7 Sets the value that is returned in the Base Power field when the Data Select Register is 0x7.
[23:16] DATA_VALUE_6 Sets the value that is returned in the Base Power field when the Data Select Register is 0x6.
[15:8] DATA_VALUE_5 Sets the value that is returned in the Base Power field when the Data Select Register is 0x5.
[7:0] DATA_VALUE_4 Sets the value that is returned in the Base Power field when the Data Select Register is 0x4.
Note
See the PCI Power Management Specification, v1.2 for a full description of this register.
This section describes the interrupt and event registers that enable, disable, monitor, and clear
interrupt sources. Table 3-106 on page 3-96 provides cross references to individual registers.
IMASK_LOCAL Register
Purpose Root Port Interrupt Mask. Setting a bit enables the associated interrupt
source and clearing a bit masks the interrupt source. See
ISTATUS_LOCAL Register for information about the bits of this register.
ISTATUS_LOCAL Register
31 24 23 20 19 16 15 8 7 0
A_ATR_EVT
P_ATR_EVT
[31:24] PM_MSI_INT Reports Power Management, MSI, and Interrupts events to the application processor:
7 System error signaled, Root Port only, Reserved for Endpoint.
6 PM/Hotplug event for Root Port, Legacy power management state change for Endpoint.
5 AER event, RP only, Reserved for EP.
4 MSI received, RP only, Reserved for EP.
3 Asserted when PCI interrupt line D is asserted, RP only, Reserved for EP.
2 Asserted when PCI interrupt line C is asserted, RP only, Reserved for EP.
1 Asserted when PCI interrupt line B is asserted, RP only, Reserved for EP.
0 Asserted when PCI interrupt line A is asserted, RP only, Reserved for EP.
When one of the sources of these interrupts is activated, an interrupt asserted as Table 3-3 on page 3-4
shows.
[15:8] DMA_ERROR Reports that an error occurred during a DMA transfer. The bit number i corresponds to DMA Engine
number i.
[7:0] DMA_END Reports that a DMA transfer is ended. The bit number i corresponds to DMA Engine number i.
Note
The use of ISTATUS_LOCAL and IMASK_LOCAL for the following interrupts is deprecated:
• System error.
• PM/Hotplug.
• AER.
• MSI.
• INTx.
IMSI_ADDR Register
Purpose Specifies the address that the Root Port uses to trigger an MSI interrupt to
the application processor.
Note
• This address is 64-bit aligned. Bits [2:0] are 000.
• This register is deprecated. Software must use the GICv2m for MSI.
ISTATUS_MSI Register
Purpose MSI Message, that is a read, write, clear register. Bits [31:0] are asserted
when an MSI with message number 31-0 is received. The application
processor must monitor and clear these bits:
• Writing 1 clears a bit.
• Writing 0 has no effect.
Note
MSI messages with numbers greater than 31 are ignored and discarded.
Note
This register is deprecated. Software must use the GICv2m for MSI.
ICMD_PM Register
Purpose Event Command. Enables the application processor to activate and send
events to the PCIe bus.
31 5 4 3 0
Reserved Reserved
LINK_OFF
[31:5] - Reserved.
[4] LINK_OFF The application processor can send a Turn Off Link command to start L2 state entry negotiation.
If the Endpoint device is also ready to enter this state, then both devices enter L2 state and this link
is turned off. Deasserting this signal forces the core to exit L2 state and wakes the link.
[3:0] - Reserved.
ISTATUS_PM Register
Purpose PCI Legacy Power Management State. Reports the PCIe power state.
31 2 1 0
Reserved
PCIE_PWR_MGT
ISTATUS_P_ADT_WIN0 Register
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[3] DOORBELL PCIe Doorbell interrupt status. Indicates that a successful PCIe request has been translated.
[2] DIS_ERR PCIe Discard Error interrupt status. Indicates a completion timeout on a PCIe read request.
[1] FETCH_ERR PCIe Fetch Error interrupt status. Indicates that an error occurred with a PCIe read request.
[0] POST_ERR PCIe Post Error interrupt status. Indicates that an error occurred with a PCIe write request.
ISTATUS_P_ADT_WIN1 Register
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[3] DOORBELL PCIe Doorbell interrupt status. Indicates that a successful PCIe request has been translated.
[2] DIS_ERR PCIe Discard Error interrupt status. Indicates a completion timeout on a PCIe read request.
[1] FETCH_ERR PCIe Fetch Error interrupt status. Indicates that an error occurred with a PCIe read request.
[0] POST_ERR PCIe Post Error interrupt status. Indicates that an error occurred with a PCIe write request.
ISTATUS_A_ADT_SLV0 Register
31 28 27 24 23 20 19 16 15 12 11 8 7 4 3 0
[3] DOORBELL AXI Doorbell interrupt status. Indicates that a successful AXI request has been translated.
[2] DIS_ERR AXI Discard Error interrupt status. Indicates a completion timeout on an AXI read request.
[1] FETCH_ERR AXI Fetch Error interrupt status. Indicates that an error has occurred with an AXI read request.
[0] POST_ERR AXI Post Error interrupt status. Indicates that an error has occurred with an AXI write request.
Note
An AXI transaction is a transaction that the application processor issues to the PCIe system.
This section describes the address translation registers. Table 3-106 on page 3-96 provides cross
references to individual registers.
Three sets of Address translation tables exist, and each set contains up to eight individual
programmable tables.
Two sets of Address translation tables translate from the PCIe address space to the application
processor address space, one for each BAR implemented by the Root Port.
The other table performs address translation from the application processor address space to the
PCIe address space.
Table 3-142 shows the layout of the individual address translation tables within the set.
0x14-0x17 - RO - Reserved
Note
• Table 0 of AXI4 Slave 0 Address translation tables is RO and is configured to map the
PCIe configuration space to 0x4000_0000 in the application processor memory map.
• Tables 1-7 are RW and software must use them to map the address translation from the
application processor address space to the PCIe address space.
• SRC_ADDR and TRSL_ADDR are aligned to the size of the translation table.
Note
If an address translation event occurs, it is reported to the ISTATUS_X_ADT_X registers and
ISTATUS_LOCAL Register on page 3-120.
You can enable interrupts by using the IMASK_LOCAL Register on page 3-120 and clear
interrupts by using the ISTATUS_LOCAL Register on page 3-120.
SRC_ADDR_LO Register
Purpose Sets the source address and size of the region of memory that incoming
transactions must address for the translation table to be applied.
31 12 11 7 6 1 0
ATR_IMP
[11:7] - Reserved.
[6:1] ATR_SIZE Defines the Address Translation Space Size. This space size in bytes is equal to 2(ATR_SIZE +1).
Permitted values for this field are from 6’d11 (212 =4 KBytes) to 6’d63 (264 = 16 Exabytes) only.
[0] ATR_IMP When set to 1, indicates that the Translation Address Table is enabled.
SRC_ADDR_UP Register
TRSL_ADDR_LO Register
31 12 11 0
TRSL_ADDR[31:12] Reserved
[11:0] - Reserved.
TRSL_ADDR_UP register
TRSL_PARAM Register
Purpose Sets the transaction properties and destination of the transactions that this
table translates.
31 28 27 16 15 4 3 0
[31:28] - Reserved.
[15:4] - Reserved.
[3:0] TRSL_ID Sets the target for the translated transaction. The permitted values are:
4’d0 PCIe Tx/Rx interface.
4’d1 PCIe config interface.
Note
Table 0 of ATR_AXI_SLV0 is configured to map 0x4000_0000 to the PCIe
configuration space. ARM recommends that software does not map another
region of memory to the configuration space.
TRSL_MASK Register
Table 3-149 shows the MSI Registers in offset order from the base memory address.
This section describes the MSI registers. Table 3-149 provides cross references to individual
registers.
MSI_TYPER Register
31 26 25 16 15 10 9 0
[31:26] - Reserved.
[25:16] Base SPI number Returns the lowest SPI assigned to the frame. For:
Frame 0 Value reads as 224.
Frame 1 Value reads as 256.
Frame 2 Value reads as 288.
Frame 3 Value reads as 320.
[15:10] - Reserved.
MSI_SETSPI_NSR Register
See the ARM® Server Base System Architecture Platform Design Document,
http://infocenter.arm.com/help/topic/com.arm.doc.den0029/index.html.
MSI_IIDR Register
31 20 19 16 15 12 11 8 7 6 0
[31:20] Product ID -
Purpose PID4.
31 8 7 4 3 0
Reserved 4KB
CONT CODE
[7:4] 4KB Number of 4KB blocks that are used by this component in a power
of 2 format. For the ADP MSI, the value is 0x6.
[3:0] CONT CODE The JEP106 continuation code. For ARM Limited, this field is 0x4.
31 8 7 0
Reserved PART NO
31 8 7 4 3 0
[7:4] JEP106 ID JEP106 Identity code [3:0]. For ARM Limited, the value is 0xB.
31 8 7 4 3 2 0
JEP106 ID
[7:4] ARCHREV Revision Number. Incremental value starting at 0x0. For the ADP MSI, the value is 0x0.
[2:0] JEP106 ID JEP106 Identity code [6:4]. For ARM Limited, the value is 0x3.
31 8 7 4 3 0
[7:4] REVAND Indicates minor errata fixes specific to this design, for example, metal fixes. For the ADP
MSI, the value is 0x0.
[3:0] CUST MOD Indicates customer modification to reusable IP. For the ADP MSI, the value is 0x0.
Purpose Identification 0.
31 8 7 0
Reserved PREAMBLE
Purpose Identification 1.
31 8 7 4 3 0
Reserved PREAMBLE
COMPONENT CLASS
[7:4] COMPONENT CLASS The class of the component. For the CSS MSI, the value is 0xF.
Purpose Identification 2.
31 8 7 0
Reserved PREAMBLE
Purpose Identification 3.
31 8 7 0
Reserved PREAMBLE
Table 3-161 shows the registers in offset order from the base memory address.
This section describes the trusted entropy source registers. Table 3-161 provides cross
references to individual registers.
[31:0] Output [31:0] Least significant word of 128-bit word of random data. This field
is only valid when the Ready bit in the STATUS Register on
page 3-141 is set HIGH.
[31:0] Output [63:32] Second word of 128-bit word of random data. This field is only valid
when the Ready bit in the STATUS Register on page 3-141 is set HIGH.
[31:0] Output [95:64] Third word of 128-bit word of random data. This field is only valid
when the Ready bit in the STATUS Register on page 3-141 is set HIGH.
[31:0] Output [127:96] Final word of 128-bit word of random data. This field is only
valid when the Ready bit in the STATUS Register is set HIGH.
STATUS Register
31 1 0
Reserved
Ready
Purpose If the mask register is set, the RNG generates an interrupt when the new
random number is ready.
31 1 0
Reserved
Ready_mask
[0] Ready_mask If this bit is set HIGH, the interrupt line is asserted when the ready condition is true.
[31:0] Sample_clocks This field programs the enable pulse width for the Entropy Source. The pulse width for the Enable control
is equal to sample_clocks clock cycles. If you program it LOW, the enable is held asserted for one cycle.
The pulse width limits are as follows:
Minimum 1 clock cycle.
Maximum (232 – 1) = 231 clock cycles.
This field can only be written when the enable_trng bit in CONTROL Register is deasserted.
CONTROL Register
31 2 1 0
Reserved
Abort trng
Enable trng
[31:2] - Reserved.
[1] Abort_trng Setting the bit to 1 aborts the entropy gathering tasks by deasserting the “Enable”
control and resetting the output value registers. This bit automatically clears to 0.
[0] Enable_trng Setting this bit to 1 starts the TRNG gathering entropy from the entropy source. This bit
automatically clears after deasserting the “Enable” control to the entropy source.
Note
This register is self-clearing.
This chapter describes the IP configurations for the subcomponents of the Juno r2 ARM
Development Platform (ADP). It contains the following sections:
• Cortex-A72 processor cluster on page A-2.
• Cortex-A53 processor cluster on page A-3.
• Mali-T624 GPU on page A-4.
• CoreLink MMU-40x System Memory Management Unit (SMMU) components on
page A-5.
• CoreLink DMC-400 Dynamic Memory Controller (DMC) on page A-6.
• CoreLink SMC-354 Static Memory Controller (SMC) on page A-7.
Number of cores 2
Number of cores 4
L2 cache Included
Value
Configuration options
GPU PCIe ETR DMA USB HDLCD0 HDLCD1
AXI data width 128 bits 128 bits 64 bits 128 bits 128 bits 64 bits 64 bits
Number of contexts 1 4 1 4 1 1 1
Stream ID 1a 15a 1a 4b 1a 1a 1a
TLB depth 32 32 2 64 64 36 36
a. Stream ID value is 0.
b. Stream ID value is the channel number. In the DMA component, channel threads have a stream ID that is equal to the channel number. The
manager thread has a stream ID of 0x8.
In Table A-4, the stream ID value represents the width of the stream ID and not the value of the
stream ID.
For the GPU, ETR, USB, HDLCD0, and HDLCD1 components, all transactions have a stream
ID of 0.
For the DMA component, the value of the stream ID is the channel number. In the DMA
component, channel threads have a stream ID that is equal to the channel number. The manager
thread has a stream ID of 0x8.
See CoreLink MMU-401 and MMU-400 System Memory Management (SMMU) components on
page 2-18.
SYSTEM_DATA_WIDTH 128 ACE data signal width, for each system interface.
SYSTEM_READ_ACCEPTANCE 64a Outstanding read acceptance capability, for each system interface.
SYSTEM_READ_HAZARD_DEPTH 16a Read hazard acceptance capability, for each system interface.
MEMORY_DATA_WIDTH 128 Memory interface width, width of the DFI data buses.
WRITE_BUFFER_DEPTH 32a Depth of the write buffer, for each memory interface.
a. Buffer and queue depths are specified in terms of the number of memory bursts.
AXI width 64
MEMIF width 32
MEMIF CS 8
Exclusive monitors 4
CFIFO Depth 8
WFIFO Depth 16
RFIFO Depth 16
AID Width 14
Pipeline True
ECC False
This appendix describes the technical changes between released issues of this book.
First release. - -
Removed the SCP controlled Level 2 cache maintenance Application processors on page 2-3. r0p0
subsection.
Removed the System Control Processor (SCP) memory map Memory on page 2-7. r0p0
subsection.
Removed some information from Time domains section. Time domains on page 2-29. r0p0
Removed some information from Memory map frames section. Memory map frames on page 2-31. r0p0
Removed some information from Processor power modes section. Processor power modes on page 2-31. r0p0
Removed the SCP firmware watchdog subsection. Watchdog timers on page 2-31. r0p0
Removed the following subsections: Debug and Profiling on page 2-33. r0p0
• SCP debug architecture.
• SCP CoreSight debug subsystem.
• Debug power control.
• Debug from reset.
• System Profiler.
• SCP AON_REF_CLK Generic Timer.
• 32kHz Generic Timer.
Added CCI-400 information to text and to ADP figure. CoreLink CCI-400 Cache Coherent r0p0
Interconnect on page 2-17.
Figure 2-1 on page 2-2.
Added RW1C to list of register access types. About this programmers model on r0p0
page 3-2.
Updated the ADP block diagram. Figure 2-1 on page 2-2. r1p0
Updated the ADP debug architecture, excluding timestamp ADP debug architecture, excluding timestamp r1p0
distribution diagram. distribution on page 2-34.
Added information to the Cortex-A57 and Cortex-A53 processor Cortex-A72 and Cortex-A53 processor Debug r1p0
debug architecture section. architecture on page 2-35.
Updated the CoreSight debug and trace region memory map CoreSight debug and trace region memory map on r1p0
diagram. page 3-15.
Updated the Application memory map table. Application memory map summary on page 3-21. r1p0
Added information about the stream ID values for all components. In CoreLink MMU-40x System Memory Management r1p0
particular, the stream ID values for the PCIe and DMA components Unit (SMMU) components on page A-5.
that have non-zero stream ID values.
Removed incorrect footnotes, underneath Memory Management CoreLink MMU-40x System Memory Management r1p0
Unit configuration options table, that relate to non-zero stream ID Unit (SMMU) components on page A-5.
values.
Added CCI-400 information to text and to ADP figure. CoreLink CCI-400 Cache Coherent Interconnect r1p0
on page 2-17.
Figure 2-1 on page 2-2.
Added RW1C to list of register access types. About this programmers model on page 3-2. r1p0
Changed the big processor from a Cortex-A57 to a Cortex-A72. Throughout the document. r2p0
Removed incorrect footnotes, underneath Memory Management CoreLink MMU-40x System Memory Management r2p0
Unit configuration options table, that relate to non-zero stream ID Unit (SMMU) components on page A-5.
values.
Added CCI-400 information to text and to ADP figure. CoreLink CCI-400 Cache Coherent Interconnect r2p0
on page 2-17.
Figure 2-1 on page 2-2.
Added RW1C to list of register access types. About this programmers model on page 3-2. r2p0