- •Contents
- •List of Tables
- •List of Figures
- •Preface
- •About this document
- •Feedback
- •Introduction
- •1.1 About the ARM PrimeCell MultiPort Memory Controller (PL172)
- •1.2 Supported dynamic memory devices
- •1.3 Supported static memory devices
- •Functional Overview
- •2.1 PrimeCell MPMC functional description
- •2.2 Overview of a PrimeCell MPMC, ASIC, or ASSP system
- •2.3 Low power operation
- •2.4 Lock and semaphores
- •2.5 Arbitration
- •2.6 Memory bank select
- •2.7 Memory map
- •Programmer’s Model
- •3.1 About the programmer’s model
- •3.2 Register descriptions
- •Programmer’s Model for Test
- •4.1 PrimeCell MPMC test harness overview
- •4.2 Scan testing
- •4.3 Test registers
- •Static Memory Controller
- •5.1 Static memory device selection
- •5.2 Write-protection
- •5.3 Extended wait transfers
- •5.4 Memory mapped peripherals
- •5.5 Static memory initialization
- •5.6 Byte lane control
- •5.7 Byte lane control and databus steering for little and big-endian configurations
- •Dynamic Memory Controller
- •6.1 Write-protection
- •6.2 Access sequencing and memory width
- •6.3 Address mapping
- •6.4 Dynamic memory controller command descriptions
- •6.5 Generic SDRAM initialization example
- •6.6 Micron MT48LC4M16A2 SDRAM initialization example
- •6.8 Micron MT28F4M16S2 SyncFlash initialization example
- •6.9 Micron SyncFlash commands
- •Common Memory Transactions
- •7.1 Static and dynamic memory transaction latency
- •Test Interface Controller
- •8.1 About TIC
- •8.2 Sequence of events leading to entry into TIC test mode
- •System Connectivity
- •9.2 Self-refresh entry
- •9.3 Example system
- •Off-chip Connectivity
- •10.2 Pin count reduction by reducing databus width
- •10.3 Pin count reduction by removing functionality
- •10.4 Address pin reduction
- •10.5 Chip select pin reduction
- •10.6 Device support
- •10.7 Multiplexing static and dynamic memory pins
- •10.8 Reducing pin count by multiplexing MPMC pins
- •10.9 About MPMC timing
- •10.10 On-chip timing path
- •10.11 Off-chip timing path
- •10.12 Clock strategy
- •10.13 Clock ratios
- •10.14 Memory clock and fed-back clock strategy
- •Pad Interface Timing
- •A.1 Overview
- •A.2 Signal delay
- •A.3 Method to reduce delay
- •A.4 Methods to reduce skew
- •A.5 Methods to minimize the effects of delay and skew
- •A.6 Example SDRAM memory timing diagram
- •A.7 SDRAM memory timing paths
- •Troubleshooting
- •B.1 Troubleshooting
- •C.1 AHB register signals
- •C.2 AHB memory signals
- •C.3 Miscellaneous and clock signals
- •C.4 Pad interface and control signals
- •C.5 Test Interface Controller (TIC) signals
- •C.6 Scan test signals
System Connectivity
9.2Self-refresh entry
The section describes:
•Power Management Unit self-refresh entry
•Manual self-refresh entry on page 9-7
•Forcing AHB masters idle on page 9-8.
Note
After self-refresh exit some devices require a number of auto-refresh cycles to take place. If this is the case the auto-refresh cycles must be generated by reprogramming the refresh period and waiting for the required number of refresh commands to occur.
9.2.1Power Management Unit self-refresh entry
Power Management Unit (PMU) self-refresh entry uses a PMU to handshake with the MPMC to enter self-refresh mode. These signals are shown in Figure 9-2.
MPMC
MPMCSREFREQ
MPMCSREFACK PMU
Figure 9-2 PMU self-refresh
When the PMU requires the SDRAM memory to enter self-refresh mode it must first ensure that there are no masters performing transactions to the MPMC. Various methodologies to perform this are described in Forcing AHB masters idle on page 9-8.
When the AHB masters cannot perform transfers to the MPMC the PMU can then assert the self-refresh request (MPMCSREFREQ) signal. The MPMC then flushes its buffers and puts the SDRAM memory into self-refresh mode. When the memory has been placed into self-refresh mode the MPMC asserts the self-refresh acknowledge (MPMCSREFACK) signal.
9-6 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
System Connectivity
The PMU can then gate HCLK as required, see *a in Figure 9-3.
For exit from self-refresh, the PMU re-enables the clocks, and then brings MPMCSREFREQ LOW. The SDRAM controller then exits self-refresh mode. When self-refresh is exited the memory controller does not allow any access to the SDRAM until the values in the MPMCDynamictSREX and MPMCDynamictXSR registers time out. When the SDRAM controller has exited self-refresh it lowers the MPMCSREFACK signal. The PMU can then enable the AHB masters to access the AHB bus. This can be performed in a number of ways:
•by performing soft reset
•by generating an interrupt
•by enabling a peripheral transfer to complete, which is used to stall the ARM processor
•by lowering the signal to the arbiter so that a dummy AHB master is no longer granted the bus.
*a
HCLK
MPMCSREFREQ
MPMCSREFACK
Figure 9-3 PMU self-refresh waveforms
9.2.2Manual self-refresh entry
Self-refresh can be entered manually in systems where the ARM processor can execute code from internal memory, or from another memory controller.
To enter self-refresh mode the processor must first ensure that there are no masters currently performing transactions to the MPMC. Various methodologies to perform this are described in Forcing AHB masters idle on page 9-8.
While the ARM processor is executing code from internal memory or another memory controller it must then set the SR bit (self-refresh request) in the MPMCDynamicControl register. The MPMC then flushes its buffers and put the memory into self-refresh mode. When the memory has been placed into self-refresh mode the MPMC asserts the SA bit (self-refresh acknowledge) in the MPMCStatus register. The ARM processor must wait until this bit goes active, before continuing the power down procedure. PMU to gate HCLK as necessary.
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
9-7 |
System Connectivity
For exit from self-refresh, the PMU re-enables the clocks and the ARM processor starts executing code. The ARM processor then clears the self-refresh request (SR) bit in the MPMCDynamicControl register. The SDRAM controller then proceeds to exit self-refresh mode, this takes about 200 clock cycles. When the SDRAM controller has exited self-refresh it clears the self-refresh acknowledge (SA) bit in the MPMCStatus register. The ARM processor can then reprogram the AHB masters to enable them to perform transactions to the MPMC.
9.2.3Forcing AHB masters idle
AHB masters can be forced idle by the following methods:
•The ARM processor can be used to program or interrupt the other masters to stop performing transfers. The ARM processor must then either enter a forever loop, or alternatively read a register in the PMU that waits the transfer until the processor has to re-awake.
•The PMU can assert a signal to the AHB arbiters which puts a dummy AHB master on the bus. For multi-layer AHB systems a MuxM2S component is required. Masters with AHB-Lite interfaces also require an AHB-Lite to AHB wrapper. See Figure 9-4 on page 9-9.
9-8 |
Copyright © 2002 ARM Limited. All rights reserved. |
ARM DDI 0215A |
System Connectivity
HBUSGNTM1 |
HBUSREQM1 |
HBUSGNTM2 |
HBUSREQM2 |
HBUSGNTM3 |
HBUSREQM3 |
|
AHB |
MuxM2S |
Input stage |
|
Output stage |
AHB |
|
|
master 1 |
and decoder |
|
and arbiter |
slave 1 |
||
|
|
|
|
|
|
|
|
|
AHB |
MuxM2S |
Input stage |
Multilayer |
Output stage |
AHB |
|
|
bus |
||||||
|
master 2 |
and decoder |
and arbiter |
slave 2 |
|||
|
matrix |
||||||
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
AHB |
MuxM2S |
Input stage |
|
Output stage |
PMU slave |
|
|
master 3 |
and decoder |
|
and arbiter |
|||
|
|
|
|||||
|
|
|
|
|
|
|
|
|
Arbiters |
|
|
|
|
|
|
(1 per master) |
|
|
|
|
|||
HBUSGNT |
(x3) |
HBUSREQ |
(x3) |
|
|
|
|
AHB dummy |
|
|
|
|
|||
|
master |
|
|
|
|
|
|
|
|
|
|
REQUESTDUMMYMASTER (x3) |
|
||
|
|
|
|
ACKNOWLEDGEDUMMYMASTER (x3) |
|
Figure 9-4 Forcing AHB masters idle in a multi-layer system
ARM DDI 0215A |
Copyright © 2002 ARM Limited. All rights reserved. |
9-9 |