dm00045899

RM0321
Reference manual
SPEAr320S address map and registers
Introduction
This document provides the address map and register descriptions for the SPEAr320S,
embedded MPU with ARM926 core. Additional reference information is documented in the
manual RM0319 SPEAr320S architecture and functionality.
IP groups
Table 1.
SPEAr320S IP groups
IP group
Constituent IPs
Processors, &
busses
ARM926EJ-S
Bus interconnection matrix
Vectored interrupt controller (VIC)
General device
resources
DMA controller (DMAC)
General purpose timers (GPT)
Real-time clock (RTC)
System controller (SYSCTR)
Watchdog timer (WDT)
Cryptographic co-processor (C3)
System configuration registers (MISC)
Memory
interfaces
Multiport DDR controller (MPMC)
MMC-SD card/SDIO controller
Serial NOR Flash controller (SMI)
Parallel NAND Flash controller (FSMC)
External memory interface (EMI)
Graphics, video,
& audio
LCD display controller (CLCD)
JPEG codec accelerator (JPGC)
High-speed
connectivity
Fast Ethernet port (MII0)
Fast Ethernet ports (RMII0/RMII1/MII1)
USB 2.0 Host ports (UHC)
USB 2.0 Device port (UDC)
November 2012
Doc ID 022642 Rev 3
1/584
www.st.com
RM0321
Table 1.
IP group
Other
connectivity
2/584
SPEAr320S IP groups (continued)
Constituent IPs
Analog-to-digital converter (ADC)
Universal asynchronous receiver/transmitter (UART)
Extended general purpose I/O (PL_GPIO)
General purpose I/Os (basGPIO)
I2C bus ports (I2C)
Digital audio port (I2S)
Pulse width modulators (PWM)
Legacy IEEE 1284 parallel port (SPP)
Fast infrared port (IRDA)
RAS configuration (RASCFG)
Controller area network ports (CAN)
Synchronous serial ports (SSP)
Touchscreen interface (OUT_X)
Doc ID 022642 Rev 3
RM0321
Contents
Contents
1
Address map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2
ARM926EJ-S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3
Bus interconnection matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4
Multiport DDR controller (MPMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1
MEM0_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2
MEM1_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.3
MEM2_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.4
MEM3_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.5
MEM4_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.6
MEM5_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.7
MEM6_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.8
MEM7_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.9
MEM8_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.10
MEM9_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.11
MEM10_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.12
MEM11_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.13
MEM12_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.14
MEM13_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.15
MEM14_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.16
MEM15_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.17
MEM16_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.18
MEM17_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.19
MEM18_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.20
MEM19_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.21
MEM20_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.22
MEM21_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.23
MEM22_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.24
MEM23_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.25
MEM24_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Doc ID 022642 Rev 3
3/584
Contents
4/584
RM0321
4.2.26
MEM25_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.27
MEM26_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.28
MEM27_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.29
MEM28_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2.30
MEM29_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.31
MEM30_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.32
MEM31_CTL/MEM32_CTL/MEM33_CTL register . . . . . . . . . . . . . . . . 61
4.2.33
MEM34_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.34
MEM35_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.35
MEM36_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.36
MEM37_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.37
MEM38_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.38
MEM39_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.39
MEM40_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.40
MEM41_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.41
MEM42_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.42
MEM43_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.43
MEM44_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.44
MEM45_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.45
MEM46_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.46
MEM47_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.47
MEM48_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.48
MEM49_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.49
MEM50_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.50
MEM51_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.51
MEM52_CTL/MEM53_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.52
MEM54_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2.53
MEM55_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2.54
MEM56_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2.55
MEM57_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2.56
MEM58_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.57
MEM59_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.58
MEM60_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.59
MEM61_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.60
MEM62_CTL/MEM63_CTL/MEM64_CTL register . . . . . . . . . . . . . . . . 71
4.2.61
MEM65_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.62
MEM66_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Doc ID 022642 Rev 3
RM0321
Contents
4.3
5
6
7
4.2.63
MEM67_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.64
MEM68_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.65
MEM[69-97]_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.66
MEM[98-99]_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.67
MEM100_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.68
MEM101_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.69
MEM102_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.70
MEM103_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.71
MEM104_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.72
MEM105_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.73
MEM106_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.74
MEM107_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.75
MEM108_CTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Summary of memory controller parameters . . . . . . . . . . . . . . . . . . . . . . . 76
Serial NOR Flash controller (SMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.1
SMI_CR1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2.2
SMI_CR2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2.3
SMI_SR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.2.4
SMI_TR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.5
SMI_RR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Parallel NAND Flash controller (FSMC) . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.1
GenMemCtrl_PC(i) registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.2
GenMemCtrl_Comm(i)/GenMemCtrl_Attrib(i) . . . . . . . . . . . . . . . . . . . 101
6.2.3
GenMemCtrl_ECCr(i) registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2.4
GenMemCtrl peripheral identification registers . . . . . . . . . . . . . . . . . . 102
6.2.5
GenMemCtrl P Cell identification registers (GenMemCtrlPCellID0-3) . 103
External memory interface (EMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2.1
Start CS register (tSCS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Doc ID 022642 Rev 3
5/584
Contents
8
RM0321
6/584
Start of enable register (tSE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2.3
Enable duration (Write) (tENw) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2.4
Enable duration (Read) (tENr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2.5
Disable CS register (tDCS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.2.6
Control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.2.7
Time out register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.2.8
Acknowledgement register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.2.9
IRQ register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
USB 2.0 Host ports (UHC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.2
EHCI register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.3
9
7.2.2
8.2.1
HCCAPBASE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.2.2
HCSPARAMS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.2.3
HCCPARAMS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.2.4
USBCMD register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.2.5
USBSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.2.6
USBINTR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2.7
FRINDEX register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8.2.8
CTRLDSSEGMENT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2.9
PERIODICLISTBASE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2.10
SYNCLISTADDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2.11
CONFIGFLAG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2.12
PORTSC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2.13
INSNREG00 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.2.14
INSNREG01 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.2.15
INSNREG02 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.2.16
INSNREG03 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.2.17
INSNREG05 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
OHCI register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.1
Operation registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.2
Control and status partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3.3
Memory pointer partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
8.3.4
Frame counter partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.3.5
Root hub partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
USB 2.0 Device port (UDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Doc ID 022642 Rev 3
RM0321
10
Contents
9.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.2.1
Device configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.2.2
Device control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9.2.3
Device status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.2.4
Device interrupt register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.2.5
Device interrupt mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.2.6
Endpoint interrupt register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.2.7
Endpoint interrupt mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.2.8
Endpoint control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.2.9
Endpoint status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
9.2.10
Endpoint buffer size and received packet frame number register . . . . 168
9.2.11
Endpoint maximum packet size and buffer size register . . . . . . . . . . . 169
9.2.12
Endpoint setup buffer pointer register . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.13
Endpoint data description pointer register . . . . . . . . . . . . . . . . . . . . . . 169
9.2.14
UDC20 endpoint register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Fast Ethernet port (MII0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.2.1
Bus mode register (Register0, DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.2.2
Transmit poll demand register (Register1, DMA) . . . . . . . . . . . . . . . . . 177
10.2.3
Receive poll demand register (Register2, DMA) . . . . . . . . . . . . . . . . . 177
10.2.4
Receive descriptor list address register (Register3, DMA) . . . . . . . . . 177
10.2.5
Transmit descriptor list address register (Register4, DMA) . . . . . . . . . 178
10.2.6
Status register (Register 5, DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
10.2.7
Operation mode register (Register 6, DMA) . . . . . . . . . . . . . . . . . . . . 182
10.2.8
Interrupt enable register (Register7, DMA) . . . . . . . . . . . . . . . . . . . . . 185
10.2.9
Missed frame and buffer overflow counter register (Register8, DMA) . 186
10.2.10 Current host transmit descriptor register (Register18, DMA) . . . . . . . . 186
10.2.11 Current host receive descriptor register (Register19, DMA) . . . . . . . . 187
10.2.12 Current host transmit buffer address register (Register20, DMA) . . . . 187
10.2.13 Current host receive buffer address register (Register21, DMA) . . . . . 187
10.2.14 MAC configuration register (Register0, MAC) . . . . . . . . . . . . . . . . . . . 187
10.2.15 MAC frame filter register (Register1, MAC) . . . . . . . . . . . . . . . . . . . . . 190
10.2.16 Hash table high register (Register2, MAC) . . . . . . . . . . . . . . . . . . . . . 192
10.2.17 Hash table low register (Register3, MAC) . . . . . . . . . . . . . . . . . . . . . . 192
Doc ID 022642 Rev 3
7/584
Contents
RM0321
10.2.18 MII address register (Register4, MAC) . . . . . . . . . . . . . . . . . . . . . . . . 192
10.2.19 MII data register (Register5, MAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
10.2.20 Flow control register (Register6, MAC) . . . . . . . . . . . . . . . . . . . . . . . . 193
10.2.21 VLAN tag register (Register7, MAC) . . . . . . . . . . . . . . . . . . . . . . . . . . 195
10.2.22 Wake-up frame filter register (Register10, MAC) . . . . . . . . . . . . . . . . . 195
10.2.23 PMT control and status register (Register11, MAC) . . . . . . . . . . . . . . 196
10.2.24 Interrupt status register (Register 14, MAC) . . . . . . . . . . . . . . . . . . . . 197
10.2.25 Interrupt mask register (Register 15, MAC) . . . . . . . . . . . . . . . . . . . . . 198
10.2.26 MAC address0 high register (Register16, MAC) . . . . . . . . . . . . . . . . . 198
10.2.27 MAC address0 low register (Register17, MAC) . . . . . . . . . . . . . . . . . . 198
10.2.28 MAC address1 high register (Register18, MAC) . . . . . . . . . . . . . . . . . 199
10.2.29 MAC address1 low register (Register19, MAC) . . . . . . . . . . . . . . . . . . 200
10.2.30 MMC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
11
Fast Ethernet ports (RMII0/RMII1/MII1) . . . . . . . . . . . . . . . . . . . . . . . . 207
11.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11.2.1
Control, configuration and status registers . . . . . . . . . . . . . . . . . . . . . 209
11.2.2
Transmit status register (0x14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.2.3
Transmit buffer queue pointer (0x1C) . . . . . . . . . . . . . . . . . . . . . . . . . 212
11.2.4
Receive buffer queue pointer (0x18) . . . . . . . . . . . . . . . . . . . . . . . . . . 212
11.2.5
Receive status register (0x20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.2.6
Interrupt status register (0x24) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.2.7
Interrupt enable register (0x28) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
11.2.8
Interrupt disable register (0x2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
11.2.9
Interrupt mask register (0x30) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
11.2.10 PHY maintenance register (0x34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
11.2.11 Pause time register (0x38) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.12 Transmit pause quantum(0xBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.13 Wake-on LAN register (0xC4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.14 Address matching registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.2.15 Specific address 1 bottom (0x98) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.2.16 Specific address 1 top (0x9C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.2.17 Specific address 2 bottom (0xA0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.2.18 Specific address 2 top (0xA4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.19 Specific address 3 bottom(0xA8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.20 Specific address 3 top (0xAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
8/584
Doc ID 022642 Rev 3
RM0321
Contents
11.2.21 Specific address 4 bottom(0xB0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.22 Specific address 4 top (0xB4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.2.23 Type ID checking (0xB8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.2.24 Hash register bottom [31:0] (0x90) . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.2.25 Hash register bottom [63:32] (0x94) . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.2.26 Statistics registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.2.27 Pause frames received (0x3C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.2.28 Frames transmitted OK (0x40) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.2.29 Single collision frames (0x44) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.2.30 Multiple collision frames (0x48) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.2.31 Frames received OK (0x4C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11.2.32 Frames check sequence errors (0x50) . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.33 Alignment errors (0x54) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.34 Deferred transmission frames (0x58) . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.2.35 Late collisions (0x5C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.2.36 Excessive collisions (0x60) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.2.37 Transmit underrun errors (0x64) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.2.38 Carrier sense errors (0x68) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
11.2.39 Receive resource errors (0x6C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.2.40 Receive overrun errors (0x70) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.2.41 Receive symbol errors (0x74) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.2.42 Excessive length errors (0x78) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
11.2.43 Receive Jabbers (0x7C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.2.44 Undersize frames (0x80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.2.45 SQE test errors (0x84) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.2.46 Received length field mismatch (0x88) . . . . . . . . . . . . . . . . . . . . . . . . 225
11.2.47 Transmitted pause frames (0x8C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
11.2.48 Common configuration register (0xB300_0010) . . . . . . . . . . . . . . . . . 226
12
MMC-SD card/SDIO controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
12.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
12.2.1
SDMASysAddr register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
12.2.2
BLKSize register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
12.2.3
BLKCount register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
12.2.4
CMDARG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
12.2.5
TRMode register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Doc ID 022642 Rev 3
9/584
Contents
RM0321
12.2.6
CMD register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
12.2.7
RESP(i) registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
12.2.8
BufDataPort register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
12.2.9
PRSTATE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
12.2.10 HOSTCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12.2.11 PWRCTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
12.2.12 BLKGAPCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
12.2.13 WKUPCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.2.14 CLKCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
12.2.15 TMOUTCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.2.16 SWRES register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
12.2.17 NIRQSTAT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
12.2.18 ERRIRQSTAT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
12.2.19 NIRQSTATEN register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
12.2.20 ERRIRQSTATEN register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
12.2.21 NIRQSIGEN register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12.2.22 ERRIRQSIGEN register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
12.2.23 ACMD12ERSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
12.2.24 CAP1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
12.2.25 CAP2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12.2.26 MAXCURR1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.2.27 MAXCURR2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.2.28 ACMD12FEERSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
12.2.29 FEERRINTSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
12.2.30 ADMAERRSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
12.2.31 ADMAADDR1/ADMAADDR2 registers . . . . . . . . . . . . . . . . . . . . . . . . 263
12.2.32 SPIIRQSUPP register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.2.33 SLTIRQSTS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
12.2.34 HCTRLVER register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
13
10/584
Controller area network ports (CAN) . . . . . . . . . . . . . . . . . . . . . . . . . . 265
13.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
13.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.2.1
Hardware reset description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.2.2
CAN protocol related register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
13.2.3
Message interface register sets (IF1/IF2) . . . . . . . . . . . . . . . . . . . . . . 272
13.2.4
IFx command request registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Doc ID 022642 Rev 3
RM0321
Contents
13.2.5
IFx command mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
13.2.6
IFx message buffer registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
13.2.7
Message objects in the message memory . . . . . . . . . . . . . . . . . . . . . 276
13.2.8
Message handler registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
13.2.9
Interrupt registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
13.2.10 Transmission request registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
13.2.11 New data registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
13.2.12 Interrupt pending registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
13.2.13 Message valid 1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
14
Universal asynchronous receiver/transmitter (UART) . . . . . . . . . . . . 283
14.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
14.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
14.2.1
UARTDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
14.2.2
UARTRSR/UARTECR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
14.2.3
UARTFR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
14.2.4
UARTIBRD register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
14.2.5
UARTFBRD register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
14.2.6
UARTLCR_H register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
14.2.7
UARTCR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
14.2.8
UARTIFLS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
14.2.9
UARTIMSC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
14.2.10 UARTRIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
14.2.11 UARTMIS Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
14.2.12 UARTICR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
14.2.13 UARTDMACR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
15
I2C bus ports (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
15.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
15.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
15.2.1
IC_CON register (0x000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
15.2.2
IC_TAR register (0x004) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
15.2.3
IC_SAR register (0x008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
15.2.4
IC_HS_MADDR register (0x00C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
15.2.5
IC_DATA_CMD register (0x010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
15.2.6
IC_SS_SCL_HCNT register (0x014) . . . . . . . . . . . . . . . . . . . . . . . . . . 304
15.2.7
IC_SS_SCL_LCNT register (0x018) . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Doc ID 022642 Rev 3
11/584
Contents
RM0321
15.2.8
IC_FS_SCL_HCNT register (0x01C) . . . . . . . . . . . . . . . . . . . . . . . . . . 306
15.2.9
IC_FS_SCL_LCNT register (0x020) . . . . . . . . . . . . . . . . . . . . . . . . . . 307
15.2.10 IC_HS_SCL_HCNT register (0x024) . . . . . . . . . . . . . . . . . . . . . . . . . . 307
15.2.11 IC_HS_SCL_LCNT register (0x028) . . . . . . . . . . . . . . . . . . . . . . . . . . 308
15.2.12 IC_INTR_STAT register (0x02C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
15.2.13 IC_INTR_MASK register (0x030) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
15.2.14 IC_RAW_INTR_STAT register (0x034) . . . . . . . . . . . . . . . . . . . . . . . . 310
15.2.15 IC_RX_TL register (0x038) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
15.2.16 IC_TX_TL register (0x03C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
15.2.17 IC_CLR_INTR register (0x040) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
15.2.18 Individual interrupt clearing registers(0x044 - 0x068) . . . . . . . . . . . . . 312
15.2.19 IC_ENABLE register (0x06C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
15.2.20 IC_STATUS register (0x070) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
15.2.21 IC_TXFLR and IC_RXFLR registers (0x074 - 0x078) . . . . . . . . . . . . . 314
15.2.22 IC_SDA_HOLD (0x07C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
15.2.23 IC_TX_ABRT_SOURCE register (0x080) . . . . . . . . . . . . . . . . . . . . . . 315
15.2.24 IC_DMA_CR register (0x088) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
15.2.25 IC_DMA_TDLR register (0x08C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
15.2.26 IC_DMA_RDLR register (0x090) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
15.2.27 IC_COMP_PARAM1 register (0x0F4) . . . . . . . . . . . . . . . . . . . . . . . . . 318
16
Synchronous serial ports (SSP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
16.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
16.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
16.2.1
SSPCR0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
16.2.2
SSPCR1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
16.2.3
SSPDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
16.2.4
SSPSR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
16.2.5
SSPCPSR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
16.2.6
SSPIMSC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
16.2.7
SSPRIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
16.2.8
SSPMIS Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
16.2.9
SSPICR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
16.2.10 SSPDMACR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
16.2.11 PHERIPHID0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
16.2.12 PHERIPHID1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
16.2.13 PHERIPHID2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12/584
Doc ID 022642 Rev 3
RM0321
Contents
16.2.14 PHERIPHID3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
16.2.15 PCELLID0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
16.2.16 PCELLID1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
16.2.17 PCELLID2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
16.2.18 PCELLID3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
17
Fast infrared port (IRDA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
17.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
17.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
17.2.1
IrDA_CON register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
17.2.2
IrDA_CONF register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
17.2.3
IrDA_PARA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
17.2.4
IrDA_DV register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
17.2.5
IrDA_STAT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
17.2.6
IrDA_TFS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
17.2.7
IrDA_RFS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
17.2.8
IrDA_TXB register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
17.2.9
IrDA_RXB register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
17.2.10 IrDA_IMSC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
17.2.11 IrDA_RIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
17.2.12 IrDA_MIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
17.2.13 IrDA_ICR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
17.2.14 IrDA_ISR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
17.2.15 IrDA_DMA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
18
19
Legacy IEEE 1284 parallel port (SPP) . . . . . . . . . . . . . . . . . . . . . . . . . 339
18.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
18.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
18.2.1
Data register, SPPDATA (offset 0x00) . . . . . . . . . . . . . . . . . . . . . . . . . 339
18.2.2
Status register, SPPSTAT (offset 0x04) . . . . . . . . . . . . . . . . . . . . . . . . 339
18.2.3
Control register, SPPCTRL (offset 0x08) . . . . . . . . . . . . . . . . . . . . . . . 340
18.2.4
Interrupt status register, SPPIS (offset 0x0C) . . . . . . . . . . . . . . . . . . . 341
18.2.5
Interrupt enable register, SPPIE (Offset 0x10) . . . . . . . . . . . . . . . . . . 341
18.2.6
Interrupt clear register, SPPIC (offset 0x14) . . . . . . . . . . . . . . . . . . . . 341
Analog-to-digital converter (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
19.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Doc ID 022642 Rev 3
13/584
Contents
RM0321
19.2
20
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
19.2.1
ADC_CTRL_STATUS_REG register . . . . . . . . . . . . . . . . . . . . . . . . . . 344
19.2.2
AVERAGE_REG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
19.2.3
SCAN RATE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
19.2.4
ADC_CLK_REG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
19.2.5
CHx CTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
19.2.6
CHx DATA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
General purpose I/Os (basGPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
20.2.1
GPIODIR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
20.2.2
GPIODATA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
20.2.3
GPIOIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
20.2.4
GPIOIBE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
20.2.5
GPIOIEV register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
20.2.6
GPIOIE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
20.2.7
GPIORIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
20.2.8
GPIOMIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
20.2.9
GPIOIC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
21
Extended general purpose I/O (PL_GPIO) . . . . . . . . . . . . . . . . . . . . . 354
22
LCD display controller (CLCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
22.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
22.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
22.2.1
LCD timing 0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
22.2.2
LCD timing 1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
22.2.3
LCD timing 2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
22.2.4
LCD timing 3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
22.2.5
LCDUPBASE and LCPLPBASE registers . . . . . . . . . . . . . . . . . . . . . . 361
22.2.6
LCDIMSC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
22.2.7
LCD control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
22.2.8
LCDRIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
22.2.9
LCDMIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
22.2.10 LCDICR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
22.2.11 LCDUPCURR and LCDLPCURR registers . . . . . . . . . . . . . . . . . . . . . 365
14/584
Doc ID 022642 Rev 3
RM0321
Contents
22.2.12 LCDPalette register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
22.2.13 PHERIPHID0-3 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
22.2.14 PCELLIDID0-3 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
23
Touchscreen interface (OUT_X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
24
JPEG codec accelerator (JPGC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
24.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
24.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
24.2.1
JPGCreg0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
24.2.2
JPGCReg1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
24.2.3
JPGCreg2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
24.2.4
JPGCreg3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
24.2.5
JPGCreg4-7 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
24.2.6
JPGC control status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
24.2.7
JPGC bytes from fifo to core register . . . . . . . . . . . . . . . . . . . . . . . . . . 376
24.2.8
JPGC bytes from core to fifo register . . . . . . . . . . . . . . . . . . . . . . . . . . 376
24.2.9
JPGC bust count beforeInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
24.2.10 DMAC registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
24.2.11 JPGCFifoIn register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
24.2.12 JPGCFifoOut register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
24.2.13 JPGCqmem memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
24.2.14 JPGChuffmin memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
24.2.15 JPGC huffbase memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
24.2.16 JPGChuffsymb memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
24.2.17 JPGCDHTmem memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
24.2.18 JPGChuffenc memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
25
Digital audio port (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
25.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
25.2
Register descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
25.2.1
I2S controller enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
25.2.2
I2S RX block enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
25.2.3
I2S TX block enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
25.2.4
I2S clock enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
25.2.5
I2S clock configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
25.2.6
I2S RX FIFO reset register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Doc ID 022642 Rev 3
15/584
Contents
RM0321
25.2.7
I2S TX FIFO reset register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
25.2.8
I2S left RX buffer/left TX holding register . . . . . . . . . . . . . . . . . . . . . . . 388
25.2.9
I2S right RX buffer/right TX holding register . . . . . . . . . . . . . . . . . . . . 389
25.2.10 I2S RX enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
25.2.11 I2S TX enable register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
25.2.12 I2S RX configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
25.2.13 I2S TX configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
25.2.14 I2S interrupt status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
25.2.15 I2S interrupt mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
25.2.16 I2S RX overrun register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
25.2.17 I2S TX overrun register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
25.2.18 I2S RX FIFO configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
25.2.19 I2S TX FIFO configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
25.2.20 I2S RX FIFO flush register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
25.2.21 I2S TX FIFO flush register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
25.2.22 I2S RX DMA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
25.2.23 I2S TX DMA register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
26
27
16/584
Cryptographic co-processor (C3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
26.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
26.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
26.2.1
System registers (C3_SYS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
26.2.2
Master interface register (C3_HIF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
26.2.3
Instruction dispatcher registers (C3_IDn) . . . . . . . . . . . . . . . . . . . . . . 412
26.2.4
Channel registers (C3_CHn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
26.2.5
DES channel registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
26.2.6
AES channel registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
26.2.7
Unified hash with HMAC channel registers . . . . . . . . . . . . . . . . . . . . . 424
System controller (SYSCTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
27.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
27.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
27.2.1
SCCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
27.2.2
SCSYSSTAT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
27.2.3
SCIMCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
27.2.4
SCIMSTAT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
27.2.5
SCXTALCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Doc ID 022642 Rev 3
RM0321
Contents
27.2.6
28
SCPLLCTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
System configuration registers (MISC) . . . . . . . . . . . . . . . . . . . . . . . . 441
28.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
28.2
Miscellaneous local register description . . . . . . . . . . . . . . . . . . . . . . . . . 442
28.2.1
SoC_CFG_CTR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
28.2.2
DIAG_CFG_CTR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
28.2.3
PLL 1/2_CTR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
28.2.4
PLL1/2_FRQ registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
28.2.5
PLL1/2_MOD registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
28.2.6
PLL_CLK_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
28.2.7
CORE_CLK_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
28.2.8
PRPH_CLK_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
28.2.9
PERIP1_CLK_ENB register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
28.2.10 RAS_CLK_ENB register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
28.2.11 PRSC1/2/3_CLK_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
28.2.12 AMEM_CFG_CTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
28.2.13 Auxiliary clock synthesizer registers . . . . . . . . . . . . . . . . . . . . . . . . . . 465
28.2.14 Soft reset control registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
28.2.15 SoC configuration basic parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 470
28.2.16 Special configuration parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
28.2.17 Memory BIST execution control registers . . . . . . . . . . . . . . . . . . . . . . 478
28.2.18 Diagnostic functionality registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
28.3
29
Miscellaneous global register description . . . . . . . . . . . . . . . . . . . . . . . 498
28.3.1
RAS1/2_GPP_INP register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
28.3.2
RAS1/2_GPP_OUT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
RAS configuration (RASCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
29.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
29.2
Register descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
29.2.1
RASCFG boot strap register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
29.2.2
RASCFG interrupt status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
29.2.3
RASCFG interrupt mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
29.2.4
RASCFG select register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
29.2.5
RASCFG control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
29.2.6
RASCFG touchscreen duration register . . . . . . . . . . . . . . . . . . . . . . . 508
29.2.7
RASCFG extended control register . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Doc ID 022642 Rev 3
17/584
Contents
RM0321
29.2.8
RASCFG GPIO select register 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
29.2.9
RASCFG GPIO select register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
29.2.10 RASCFG GPIO select register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
29.2.11 RASCFG GPIO select register 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
29.2.12 RASCFG GPIO output register 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
29.2.13 RASCFG GPIO output register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
29.2.14 RASCFG GPIO output register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
29.2.15 RASCFG GPIO output register 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
29.2.16 RASCFG GPIO enable register 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
29.2.17 RASCFG GPIO enable register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
29.2.18 RASCFG GPIO enable register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
29.2.19 RASCFG GPIO enable register 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
29.2.20 RASCFG GPIO input register 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
29.2.21 RASCFG GPIO input register 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
29.2.22 RASCFG GPIO input register 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
29.2.23 RASCFG GPIO input register 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
29.2.24 RASCFG GPIO interrupt mask register 0 . . . . . . . . . . . . . . . . . . . . . . 515
29.2.25 RASCFG GPIO interrupt mask register 1 . . . . . . . . . . . . . . . . . . . . . . 516
29.2.26 RASCFG GPIO interrupt mask register 2 . . . . . . . . . . . . . . . . . . . . . . 516
29.2.27 RASCFG GPIO interrupt mask register 3 . . . . . . . . . . . . . . . . . . . . . . 516
29.2.28 RASCFG GPIO legacy interrupt status register 0 . . . . . . . . . . . . . . . . 517
29.2.29 RASCFG GPIO legacy interrupt status register 1 . . . . . . . . . . . . . . . . 517
29.2.30 RASCFG GPIO legacy interrupt status register 2 . . . . . . . . . . . . . . . . 518
29.2.31 RASCFG GPIO legacy interrupt status register 3 . . . . . . . . . . . . . . . . 518
29.2.32 RASCFG GPIO interrupt status register 0 . . . . . . . . . . . . . . . . . . . . . . 518
29.2.33 RASCFG GPIO interrupt status register 1 . . . . . . . . . . . . . . . . . . . . . . 519
29.2.34 RASCFG GPIO interrupt status register 2 . . . . . . . . . . . . . . . . . . . . . . 519
29.2.35 RASCFG GPIO interrupt status register 3 . . . . . . . . . . . . . . . . . . . . . . 519
29.2.36 RASCFG GPIO edge polarity register 0 . . . . . . . . . . . . . . . . . . . . . . . 520
29.2.37 RASCFG GPIO edge polarity register 1 . . . . . . . . . . . . . . . . . . . . . . . 520
29.2.38 RASCFG GPIO edge polarity register 2 . . . . . . . . . . . . . . . . . . . . . . . 521
29.2.39 RASCFG GPIO edge polarity register 3 . . . . . . . . . . . . . . . . . . . . . . . 521
29.2.40 RASCFG extended mode IO select register 0 . . . . . . . . . . . . . . . . . . . 521
29.2.41 RASCFG extended mode IO select register 1 . . . . . . . . . . . . . . . . . . . 523
29.2.42 RASCFG extended mode IO select register 2 . . . . . . . . . . . . . . . . . . . 525
29.2.43 RASCFG extended mode IO select register 3 . . . . . . . . . . . . . . . . . . . 527
29.2.44 RASCFG extended mode IO select register 4 . . . . . . . . . . . . . . . . . . . 529
18/584
Doc ID 022642 Rev 3
RM0321
Contents
29.2.45 RASCFG extended mode IO select register 5 . . . . . . . . . . . . . . . . . . . 531
29.2.46 RASCFG extended mode IO select register 6 . . . . . . . . . . . . . . . . . . . 533
29.2.47 RASCFG extended mode IO select register 7 . . . . . . . . . . . . . . . . . . . 535
29.2.48 RASCFG extended mode IO select register 8 . . . . . . . . . . . . . . . . . . . 537
29.2.49 RASCFG extended mode IO select register 9 . . . . . . . . . . . . . . . . . . . 539
29.2.50 RASCFG extended mode IO select register 10 . . . . . . . . . . . . . . . . . . 541
30
Vectored interrupt controller (VIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
30.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
30.2
Register descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
30.2.1
VICIRQSTATUS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
30.2.2
VICFIQSTATUS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
30.2.3
VICRAWINTR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
30.2.4
VICINTSELECT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
30.2.5
VICINTENABLE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
30.2.6
VICINTENCLEAR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
30.2.7
VICSOFTINT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
30.2.8
VICSOFTINTCLEAR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
30.2.9
VICPROTECTION register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
30.2.10 VICVECTADDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
30.2.11 VICDEFVECTADDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
30.2.12 VICVECTADDR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
30.2.13 VICVECTCNTL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
30.2.14 Peripheral identification registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
30.2.15 VICPERIPHID0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
30.2.16 VICPERIPHID1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
30.2.17 VICPERIPHID2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
30.2.18 VICPERIPHID3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
30.2.19 Identification registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
30.2.20 VICPCELLID0 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
30.2.21 VICPCELLID1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
30.2.22 VICPCELLID2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
30.2.23 VICPCELLID3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
31
Watchdog timer (WDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
31.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
31.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Doc ID 022642 Rev 3
19/584
Contents
32
33
RM0321
31.2.1
WdogLoad register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
31.2.2
WdogValue register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
31.2.3
WdogControl register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
31.2.4
WdogIntClr register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
31.2.5
WdogRIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
31.2.6
WdogMIS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
31.2.7
WdogLock register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Real-time clock (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
32.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
32.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
32.2.1
CONTROL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
32.2.2
STATUS register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
32.2.3
TIME register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
32.2.4
DATE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
32.2.5
ALARM TIME registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
32.2.6
ALARM DATE registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
32.2.7
REGxMC register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
DMA controller (DMAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
33.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
33.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
33.2.1
DMACIntStatus register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
33.2.2
DMACIntTCStatus register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
33.2.3
DMACIntTCClear register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
33.2.4
DMACIntErrorStatus register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
33.2.5
DMACIntErrClr register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
33.2.6
DMACRawIntTCStatus register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
33.2.7
DMACRawIntErrorStatus register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
33.2.8
DMACEnbldChns register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
33.2.9
DMACSoftBReq register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
33.2.10 DMACSoftSReq register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
33.2.11 DMACSoftLBReq register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
33.2.12 DMACSoftLSReq register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
33.2.13 DMAC configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
33.2.14 DMACSync register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
33.2.15 DMACCnSrcAddr register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
20/584
Doc ID 022642 Rev 3
RM0321
Contents
33.2.16 DMACCnDestAddr register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
33.2.17 DMACCnLLI register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
33.2.18 DMACCn control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
33.2.19 DMAC Configuration register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
33.2.20 DMACPeriphID register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
33.2.21 DMACPCellID register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
34
35
36
General purpose timers (GPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
34.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
34.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
34.2.1
Timer_control register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
34.2.2
TIMER_STATUS_INT_ACK register . . . . . . . . . . . . . . . . . . . . . . . . . . 577
34.2.3
TIMER_COMPARE register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
34.2.4
TIMER_COUNT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
34.2.5
TIMER_REDG_CAPT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
34.2.6
TIMER_FEDG_CAPT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Pulse width modulators (PWM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
35.1
Register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
35.2
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
35.2.1
PWM control register 1 .. 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
35.2.2
PWM duty cycle register 1 .. 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
35.2.3
PWM period length register 1 .. 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Doc ID 022642 Rev 3
21/584
List of tables
RM0321
List of tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
Table 6.
Table 7.
Table 8.
Table 9.
Table 10.
Table 11.
Table 12.
Table 13.
Table 14.
Table 15.
Table 16.
Table 17.
Table 18.
Table 19.
Table 20.
Table 21.
Table 22.
Table 23.
Table 24.
Table 25.
Table 26.
Table 27.
Table 28.
Table 29.
Table 30.
Table 31.
Table 32.
Table 33.
Table 34.
Table 35.
Table 36.
Table 37.
Table 38.
Table 39.
Table 40.
Table 41.
Table 42.
Table 43.
Table 44.
Table 45.
Table 46.
Table 47.
Table 48.
22/584
SPEAr320S IP groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
SPEAr320S main memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Reconfigurable array subsystem memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Parameter size to mapping conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
MEM0_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
MEM1_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
MEM2_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
MEM3_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
MEM4_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
MEM5_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
MEM6_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
MEM7_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
MEM8_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
MEM9_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
MEM10_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
MEM11_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
MEM12_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
MEM13_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
MEM14_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
MEM15_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
MEM16_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
MEM17_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
MEM18_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
MEM19_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
MEM20_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
MEM21_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
MEM22_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
MEM23_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
MEM24_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
MEM25_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
MEM26_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
MEM27_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
MEM28_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
MEM29_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
MEM30_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
MEM31_CTL/MEM32_CTL/MEM33_CTL register bit assignments . . . . . . . . . . . . . . . . . . 61
MEM34_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
MEM35_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
MEM36_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
MEM37_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
MEM38_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
MEM39_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
MEM40_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
MEM41_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
MEM42_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
MEM43_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
MEM44_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Doc ID 022642 Rev 3
RM0321
Table 49.
Table 50.
Table 51.
Table 52.
Table 53.
Table 54.
Table 55.
Table 56.
Table 57.
Table 58.
Table 59.
Table 60.
Table 61.
Table 62.
Table 63.
Table 64.
Table 65.
Table 66.
Table 67.
Table 68.
Table 69.
Table 70.
Table 71.
Table 72.
Table 73.
Table 74.
Table 75.
Table 76.
Table 77.
Table 78.
Table 79.
Table 80.
Table 81.
Table 82.
Table 83.
Table 84.
Table 85.
Table 86.
Table 87.
Table 88.
Table 89.
Table 90.
Table 91.
Table 92.
Table 93.
Table 94.
Table 95.
Table 96.
Table 97.
Table 98.
Table 99.
Table 100.
List of tables
MEM45_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
MEM46_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
MEM47_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
MEM48_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
MEM49_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
MEM50_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
MEM51_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
MEM52_CTL/MEM53_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
MEM54_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
MEM55_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
MEM56_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
MEM57_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
MEM58_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
MEM59_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
MEM60_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
MEM61_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
MEM62_CTL/MEM63_CTL/MEM64_CTL register bit assignments . . . . . . . . . . . . . . . . . . 71
MEM65_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
MEM66_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
MEM67_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
MEM68_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
MEM[69-97]_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
MEM[98-99]_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
MEM100_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
MEM101_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
MEM102_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
MEM103_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
MEM104_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
MEM105_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
MEM106_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
MEM107_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
MEM108_CTL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Memory controller parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
SMI registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
SMI_CR1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
SMI_CR2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
SMI_SR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
SMI_TR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
SMI_RR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
FSMC address map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
FSMC control and timing registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
FSMC identification registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
GenMemCtrl_PC(i) register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
GenMemCtrl_Comm(i)/GenMemCtrl_Attrib(i) register bit assignments . . . . . . . . . . . . . . 101
GenMemCtrl_ECCr(i) register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GenMemCtrlPeriphID0 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GenMemCtrlPeriphID1 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GenMemCtrlPeriphID2 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GenMemCtrlPeriphID3 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
GenMemCtrlPCellID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
GenMemCtrlPCellID1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
GenMemCtrlPCellID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Doc ID 022642 Rev 3
23/584
List of tables
Table 101.
Table 102.
Table 103.
Table 104.
Table 105.
Table 106.
Table 107.
Table 108.
Table 111.
Table 109.
Table 110.
Table 112.
Table 113.
Table 114.
Table 115.
Table 116.
Table 117.
Table 118.
Table 119.
Table 120.
Table 121.
Table 122.
Table 123.
Table 124.
Table 125.
Table 126.
Table 127.
Table 128.
Table 129.
Table 130.
Table 131.
Table 132.
Table 133.
Table 134.
Table 135.
Table 136.
Table 137.
Table 138.
Table 139.
Table 140.
Table 141.
Table 142.
Table 143.
Table 144.
Table 145.
Table 146.
Table 147.
Table 148.
Table 149.
Table 150.
Table 151.
Table 152.
24/584
RM0321
GenMemCtrlPCellID3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Base address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Register summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Acknowledgement register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
IRQ register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
UHC registers base address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
EHCI host controller capability registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
EHCI host controller specific registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
EHCI host controller operational registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
EHCI host controller auxiliary power well registers summary . . . . . . . . . . . . . . . . . . . . . . 109
Host controller operational registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
HCCAPBASE register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
HCSPARAMS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
HCCPARAMS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
USBCMD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
USBSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
USBINTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
FRINDEX register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
USBCMD register encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
PERIODICLISTBASE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
ASYNCLISTADDR register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
CONFIGFLAG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
PORTSC register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
INSNREG01 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
INSNREG03 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
INSNREG05 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
HcRevision register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
HcControl register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
HcCommandStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
HcInterruptStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
HcInterruptEnable register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
HcInterruptDisable register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
HcHCCA register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
HcPeriodCurrentED register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
HcControlHeadED register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
HcControlCurrentED register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
HcBulkHeadED register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
HcBulkCurrentED register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
HcDoneHead register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
HcFmInterval register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
HcFmRemaining register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
HcFmNumber register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
HcPeriodicStart register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
HcLSThreshold register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
HcRhDescriptorA register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
HcRhDescriptorB register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
HcRhStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
HcRhPortStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
In endpoint-specific CSRs summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Out endpoint-specific CSRs summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Global CSRs summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Doc ID 022642 Rev 3
RM0321
Table 153.
Table 154.
Table 155.
Table 156.
Table 157.
Table 158.
Table 159.
Table 160.
Table 161.
Table 162.
Table 163.
Table 164.
Table 165.
Table 166.
Table 167.
Table 168.
Table 169.
Table 170.
Table 171.
Table 172.
Table 173.
Table 174.
Table 175.
Table 176.
Table 177.
Table 178.
Table 179.
Table 180.
Table 181.
Table 182.
Table 183.
Table 184.
Table 185.
Table 186.
Table 187.
Table 188.
Table 189.
Table 190.
Table 191.
Table 192.
Table 193.
Table 194.
Table 195.
Table 196.
Table 197.
Table 198.
Table 199.
Table 200.
Table 201.
Table 202.
Table 203.
Table 204.
List of tables
UDCl CSRs summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Device configuration register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Device control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Device status register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Device interrupt register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Device interrupt mask register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Endpoint interrupt register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Endpoint interrupt mask register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Endpoint control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Endpoint status register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Endpoint buffer size/received packet frame number register bit assignments . . . . . . . . . 168
Endpoint maximum packet size/buffer size register bit assignments . . . . . . . . . . . . . . . . 169
Endpoint SETUP buffer pointer register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . 169
Endpoint data description pointer register bit assignments . . . . . . . . . . . . . . . . . . . . . . . 169
Endpoint register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
DMA registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
MAC global registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
MMC (MAC management counters) registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Bus mode register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
DA bit description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Transmit poll demand register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Receive poll demand register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Receive descriptor list address register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . 178
Transmit descriptor list address register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . 178
Status register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
EB field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
TS filed bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
RS field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
NIS field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
AIS field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Operation mode register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
TTC field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
RFD field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
RFA field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
RTC field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Interrupt enable register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Missed frame and buffer overflow counter register bit assignments. . . . . . . . . . . . . . . . . 186
MAC configuration register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
IFG field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
BL field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
MAC frame filter register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
PCF field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
MII address register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
CR field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
MII data register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Flow control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
PLT field bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
VLAN tag register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
4 bit command registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
PMT CSR bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Interrupt status register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Interrupt mask register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Doc ID 022642 Rev 3
25/584
List of tables
Table 205.
Table 206.
Table 207.
Table 208.
Table 209.
Table 210.
Table 211.
Table 212.
Table 213.
Table 214.
Table 215.
Table 216.
Table 217.
Table 218.
Table 219.
Table 220.
Table 221.
Table 222.
Table 223.
Table 224.
Table 225.
Table 226.
Table 227.
Table 228.
Table 229.
Table 230.
Table 231.
Table 232.
Table 233.
Table 234.
Table 235.
Table 236.
Table 237.
Table 238.
Table 239.
Table 240.
Table 241.
Table 242.
Table 243.
Table 244.
Table 245.
Table 246.
Table 247.
Table 248.
Table 249.
Table 250.
Table 251.
Table 252.
Table 253.
Table 254.
Table 255.
Table 256.
26/584
RM0321
MAC address0 high register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
MAC Address0 low register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
MAC Address1 high register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
MAC address byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
MAC Address1 low register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
MMC control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
MMC receive interrupt register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
MMC transmit interrupt register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
MMC receive interrupt mask register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Base address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Programming interface register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Network control register (0x00). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Network configuration register (0x04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Network status register (0x08) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Revision register (0xFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Transmit status register bit assignments (0x14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Transmit buffer queue pointer (0x1C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Receive buffer queue pointer (0x18) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Receive status register (0x20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Interrupt status register bit assignments (0x24) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Interrupt enable register bit assignments (0x28) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Interrupt disable register bit assignments (0x2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Interrupt mask register bit assignments (0x30). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
PHY maintenance register bit assignments (0x34). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Pause time register bit assignments (0x38) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Transmit pause quantum bit assignments (0xBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Wake-on LAN register bit assignments (0xC4). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Specific address 1 bottom bit assignments (0x98) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Specific address 1 top bit assignments (0x9C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Specific address 2 bottom bit assignments (0xA0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Specific address 2 top bit assignments (0xA4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Specific address 3 bottom bit assigments (0xA8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Specific address 3 top bit assignments (0xAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Specific address 4 bottom bit assignments (0xB0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Specific address 4 top bit assignments (0xB4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Type ID checking bit assignments (0xB8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Hash register bottom [31:0] bit assignments (0x90) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Hash register bottom [63:32} bit assignments (0x94) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Pause frames received (0x3C) bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Frames transmitted OK (0x40) bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Single collisions frames (0x44) bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Multiple collision frames (0x48) bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Frames received OK (0x4C) bit assingments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Frames check sequence errors (0x50) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Alignment errors (0x54) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Deferred transmission frames (0x58) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Late collisions (0x5C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Excessive collisions (0x60) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Transmit underrun errors (0x64) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Carrier sense errors (0x68). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Receive resource errors (0x6C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Receive overrun errors (0x70) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Doc ID 022642 Rev 3
RM0321
Table 257.
Table 258.
Table 259.
Table 260.
Table 261.
Table 262.
Table 263.
Table 264.
Table 265.
Table 266.
Table 267.
Table 268.
Table 269.
Table 270.
Table 271.
Table 272.
Table 273.
Table 274.
Table 275.
Table 276.
Table 277.
Table 278.
Table 279.
Table 280.
Table 281.
Table 282.
Table 283.
Table 284.
Table 285.
Table 286.
Table 287.
Table 288.
Table 289.
Table 290.
Table 291.
Table 292.
Table 293.
Table 294.
Table 295.
Table 296.
Table 297.
Table 298.
Table 299.
Table 300.
Table 301.
Table 302.
Table 303.
Table 304.
Table 305.
Table 306.
Table 307.
Table 308.
List of tables
Receive symbol errors (0x74) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Excessive length errors (0x78) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Receive Jabbers (0x&7C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Undersize frames (0x80) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
SQE test errors (0x84) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Received length field mismatch (0x88) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Transmitted pause frames (0x8C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
MMC-SD card/SDIO controller register map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Register field types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
SDMASysAddr register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
BLKSize register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
BLKCount register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
ARG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
TRMODE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Determination of transfer type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
CMD register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Relation between parameters and the name of response type . . . . . . . . . . . . . . . . . . . . 234
RESP register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Response bit definition for each response type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
BufDataPort register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
PRSTATE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
HOSTCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
PWRCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
BLKGAPCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
WKUPCTRL register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
CLKCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
TMOUTCTRL register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
SWRES register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
NIRQSTAT register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Relation between transfer complete and data time out error . . . . . . . . . . . . . . . . . . . . . . 249
Relation between command complete and time out error . . . . . . . . . . . . . . . . . . . . . . . . 250
ERRIRQSTAT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Relation between command CRC error end time out error. . . . . . . . . . . . . . . . . . . . . . . . 252
NIRQSTATEN register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
ERRIRQSTATEN register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
NIRQSIGEN register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
ERRIRQSIGEN register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
ACMD12ERSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Relation between auto CMD12 CRC error and auto CMD12 timeout error . . . . . . . . . . . 256
CAP1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
CAP2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
MAXCURR1 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
MAXCURR2 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Maximum current value definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
ACMD12FEERSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
FEERRINTSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
ADMAERRSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
ADMAERRSTS bits[1:0] definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
ADMAADDR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
32-bit address ADMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
64-bit address ADMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
SPIIRQSUPP register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Doc ID 022642 Rev 3
27/584
List of tables
Table 309.
Table 310.
Table 311.
Table 312.
Table 313.
Table 314.
Table 315.
Table 316.
Table 317.
Table 318.
Table 319.
Table 320.
Table 321.
Table 322.
Table 323.
Table 324.
Table 325.
Table 326.
Table 327.
Table 328.
Table 329.
Table 330.
Table 331.
Table 332.
Table 333.
Table 334.
Table 335.
Table 336.
Table 337.
Table 338.
Table 339.
Table 340.
Table 341.
Table 342.
Table 343.
Table 344.
Table 345.
Table 346.
Table 347.
Table 348.
Table 349.
Table 350.
Table 351.
Table 352.
Table 353.
Table 354.
Table 355.
Table 356.
Table 357.
Table 358.
Table 359.
Table 360.
28/584
RM0321
SLTIRQSTS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
HCTRLVER register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
CAN register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
CAN control register (0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Status register (0x04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Error counter (0x08) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Bit Timing Register (0x0C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Test register (0x14). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
BRP extension register (0x18) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
IF1 and IF2 message interface register sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
IFx command request registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
IFx command mask register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
IFx mask registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
IFx arbitration registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
IFx message control registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
IFx data A and data B registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Structure of a message object in the message memory. . . . . . . . . . . . . . . . . . . . . . . . . . 277
Interrupt registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Transmission request registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
New data registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Interrupt pending registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Message valid 1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
UART base addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
UART data registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
UART error status/clear registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
UART control and status register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
UART interrupts and DMA registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
UART identification register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
UART data register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
UARTRSR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
UARTECR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
UARTFR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
UARTIBRD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
UARTFBRD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Typical baud rate and divisors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
UARTLCR_H register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Truth table for SPS, EPS and PEN bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
UARTCR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
UARTIFLS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
UARTIMSC register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
UARTRIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
UARTMIS register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
UARTICR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
UARTDMACR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
I2C registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
IC_CON register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
IC_TAR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
IC_SAR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
IC_HS_MADDR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
IC_DATA_CMD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
IC_SS_SCL_HCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
IC_SS_SCL_HCNT sample calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Doc ID 022642 Rev 3
RM0321
Table 361.
Table 362.
Table 363.
Table 364.
Table 365.
Table 366.
Table 367.
Table 368.
Table 369.
Table 370.
Table 371.
Table 372.
Table 373.
Table 374.
Table 375.
Table 376.
Table 377.
Table 378.
Table 379.
Table 380.
Table 381.
Table 382.
Table 383.
Table 384.
Table 385.
Table 386.
Table 387.
Table 388.
Table 389.
Table 390.
Table 391.
Table 392.
Table 393.
Table 394.
Table 395.
Table 396.
Table 397.
Table 398.
Table 399.
Table 400.
Table 401.
Table 402.
Table 403.
Table 404.
Table 405.
Table 406.
Table 407.
Table 408.
Table 409.
Table 410.
Table 411.
Table 412.
List of tables
IC_SS_SCL_LCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
IC_SS_SCL_LCNT sample calculations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
IC_FS_SCL_HCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
IC_FS_SCL_HCNT sample calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
IC_FS_SCL_LCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
IC_FS_SCL_LCNT sample calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
IC_HS_SCL_HCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
IC_HS_SCL_HCNT sample calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
IC_HS_SCL_LCNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
IC_HS_SCL_LCNT sample calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
IC_INTR_STAT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
IC_INTR_MASK register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
IC_RAW_INTR_STAT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
IC_RX_TL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
IC_TX_TL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
IC_CLR_INTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Individual interrupt clearing registers must be read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
IC_ENABLE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
IC_STATUS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
IC_TXFLR and IC_RXFLR register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
IC_SDA_HOLD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
IC_TX_ABRT_SOURCE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
IC_DMA_CR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
IC_DMA_TDLR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
IC_DMA_RDLR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
IC_COMP_PARAM register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
SSP base address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
SSP registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
SSPCR0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
SSPCR1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
SSPDR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
SSPSR register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
SSPCPSR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
SSPIMSC register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
SSPRIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
SSPMIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
SSPICR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
SSPDMACR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PHERIPHID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PHERIPHID1 register bit assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PHERIPHID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PHERIPHID3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
PCELLID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
PCELLID1 register bit assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
PCELLID2 register bit assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
PCELLID3 register bit assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
FIrDA controller control and status registers summary. . . . . . . . . . . . . . . . . . . . . . . . . . . 329
FIrDA controller data registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
FIrDA controller interrupt and DMA registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . 329
IrDA_CON register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
IrDA_CONF register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
IrDA_PARA register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Doc ID 022642 Rev 3
29/584
List of tables
Table 413.
Table 414.
Table 415.
Table 416.
Table 417.
Table 418.
Table 419.
Table 420.
Table 421.
Table 422.
Table 423.
Table 424.
Table 425.
Table 426.
Table 427.
Table 428.
Table 429.
Table 430.
Table 431.
Table 432.
Table 433.
Table 434.
Table 435.
Table 436.
Table 437.
Table 438.
Table 439.
Table 440.
Table 441.
Table 442.
Table 443.
Table 444.
Table 445.
Table 446.
Table 447.
Table 448.
Table 449.
Table 450.
Table 451.
Table 452.
Table 453.
Table 454.
Table 455.
Table 456.
Table 457.
Table 458.
Table 459.
Table 460.
Table 461.
Table 462.
Table 463.
Table 464.
30/584
RM0321
IrDA_DV register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
IrDA_STAT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
IrDA_TFS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
IrDA_RFS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
IrDA_TXB register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
IrDA_RXB register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
IrDA_IMSC register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
IrDA_RIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
IrDA_MIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
IrDA_ICR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
IrDA_ISR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
IrDA_DMA register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Register summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
SPPDATA (Offset 0x00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
SPPSTAT (Offset 0x04) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
SPPCTRL (Offset 0x08) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
SPPIS (Offset 0x 0C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
SPPIE (offset 0x10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
SPPIC (offset 0x14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
ADC registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
ADC_CTRL_STATUS_REG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Conversion data bits position in AVERAGE_REG (High Resolution = 0). . . . . . . . . . . . . 346
Conversion data bits position in AVERAGE_REG (High Resolution = 1). . . . . . . . . . . . . 346
SCAN RATE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
ADC_CLK_REG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
CHx CTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
CHx DATA register (normal mode) bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
CHx DATA register (HIGH RESOLUTION mode bit assignments . . . . . . . . . . . . . . . . . . 348
GPIO data direction register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
GPIO data register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
GPIO interrupt control registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
GPIO identification registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
GPIODIR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
GPIODATA register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
GPIOIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
GPIOIBE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
GPIOIEV register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
GPIOIE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
GPIORIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
GPIOMIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
GPIOIC register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
CLCD configuration registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Color palette register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Identification register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
LCDTiming0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
LCDTiming1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
LCDTiming2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
LCDTiming3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
LCDUPBASE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
LCDLPBASE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
LCDIMSC register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
LCDControl register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Doc ID 022642 Rev 3
RM0321
Table 465.
Table 466.
Table 467.
Table 468.
Table 469.
Table 470.
Table 471.
Table 472.
Table 473.
Table 474.
Table 475.
Table 477.
Table 479.
Table 480.
Table 482.
Table 483.
Table 481.
Table 484.
Table 485.
Table 486.
Table 487.
Table 488.
Table 489.
Table 490.
Table 491.
Table 492.
Table 493.
Table 494.
Table 495.
Table 496.
Table 497.
Table 498.
Table 499.
Table 500.
Table 501.
Table 502.
Table 503.
Table 504.
Table 505.
Table 506.
Table 507.
Table 508.
Table 509.
Table 510.
Table 511.
Table 512.
Table 513.
Table 514.
Table 515.
Table 516.
Table 517.
Table 518.
List of tables
LCDRIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
LCDMIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
LCDICR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
LCDUPCURR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
LCDLPCURR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
LCDPalette register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
PHERIPHID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
PHERIPHID1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
PHERIPHID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
PHERIPHID3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
PCCELLIDIDO register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
PCELLIDID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
JPGC memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
JPGC core registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
JPGC FIFO registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
JPGC internal memories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
JPGC codec controller registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
JPGCreg0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
JPGCreg1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
JPGCreg2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
JPGCReg3 register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
JPGCreg4-7 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
JPGC control status register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
JPGC bytes from fifo to core register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
JPGC bytes from core to fifo register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
JPGCbust Count before Init register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
JPGC fifo in register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
JPGC fifo out register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
JPGCqmem memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
JPGCHuffMin memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
JPGC huffbase memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
JPGC huffsymb memory map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
JPGCDHTmem memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
JPGCHuffEnc memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Location of AC huffman codes in JPGCHuffEnc memory . . . . . . . . . . . . . . . . . . . . . . . . 380
Location of DC huffman codes in JPGCHuffEnc memory . . . . . . . . . . . . . . . . . . . . . . . . 381
I2S register list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
C3 register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
C3 system components register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
AHB mapped registers for master interface (HIF). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
AHB mapped registers for an Instruction Dispatcher (ID). . . . . . . . . . . . . . . . . . . . . . . . . 412
AHB mapped registers for Channel (CH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
DES registers map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
AES registers map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
UHH channel registers map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
System controller control and status registers summary . . . . . . . . . . . . . . . . . . . . . . . . . 435
System controller identification registers summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
SCCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
SCIMCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
SCIMSTAT register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
SCXTALCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
SCPLLCTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Doc ID 022642 Rev 3
31/584
List of tables
Table 519.
Table 520.
Table 521.
Table 522.
Table 523.
Table 524.
Table 525.
Table 526.
Table 527.
Table 528.
Table 529.
Table 530.
Table 531.
Table 532.
Table 533.
Table 534.
Table 535.
Table 536.
Table 537.
Table 538.
Table 539.
Table 540.
Table 541.
Table 542.
Table 543.
Table 544.
Table 545.
Table 546.
Table 547.
Table 548.
Table 549.
Table 550.
Table 551.
Table 552.
Table 553.
Table 554.
Table 555.
Table 556.
Table 557.
Table 558.
Table 559.
Table 560.
Table 561.
Table 562.
Table 563.
Table 564.
Table 565.
Table 566.
Table 567.
Table 568.
Table 569.
Table 570.
32/584
RM0321
Miscellaneous register main memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Miscellaneous local space registers overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
SoC_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
DIAG_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
PLL 1/2_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
PLL1/2_FRQ register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
PLL1/2_MOD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
PLL_CLK_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
CORE_CLK_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
PRPH_CLK_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
PERIP1_CLK_ENB register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
RAS_CLK_ENB register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
PRSC1/2/3_CLK_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
AMEM_CFG_CTRL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Clock Synthesizer input frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Auxiliary clock synthesizer register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
PERIP1_SOF_RST register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
RAS_SOF_RST register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Interconnection matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
ICM 1-9_ARB_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
DMA_CHN_CFG register bit assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
RAS DMA configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
USB2_PHY_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
MAC_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Powerdown_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
COMPSSTL_1V8_CFG/DDR_2V5_COMPENSATION register bit assignments. . . . . . . 475
COMPCOR_3V3_CFG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
DDR_PAD register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
BIST1_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
BIST2_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
BIST3_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
BIST4_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
BIST1_STS_RES register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
BIST2_STS_RES register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
BIST3_STS_RES register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
BIST4_STS_RES register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
BIST5_RSLT_REG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
SYSERR_CFG_CTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
USB_TUN_PRM register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Drive Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Pull Up and Pull Down Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Slew selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
PLGPIO0_PAD_PRG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
PLGPIO1_PAD_PRG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
PLGPIO2_PAD_PRG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
PLGPIO3_PAD_PRG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
PLGPIO4_PAD_PRG register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Miscellaneous global space registers overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
RAS_GPP1_IN register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
RAS_GPP2_IN register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
RAS_GPP_EXT_IN register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
RAS_GPP1_OUT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Doc ID 022642 Rev 3
RM0321
Table 571.
Table 572.
Table 573.
Table 574.
Table 575.
Table 576.
Table 577.
Table 578.
Table 579.
Table 580.
Table 581.
Table 582.
Table 583.
Table 584.
Table 585.
Table 586.
Table 587.
Table 588.
Table 589.
Table 590.
Table 591.
Table 592.
Table 593.
Table 594.
Table 595.
Table 596.
Table 597.
Table 598.
Table 599.
Table 600.
Table 601.
Table 602.
Table 603.
Table 604.
Table 605.
Table 606.
Table 607.
Table 608.
Table 609.
Table 610.
Table 611.
Table 612.
Table 613.
Table 614.
Table 615.
Table 616.
Table 617.
Table 618.
Table 619.
Table 620.
Table 621.
Table 622.
List of tables
RAS_GPP2_OUT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
RAS_GPP_EXT_OUT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
RASCFG register list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
VIC interrupt control registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
VIC vector address registers summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
VIC interrupt vector control registers summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
VIC identification registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
VICIRQSTATUS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
VICFIQSTATUS register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
VICRAWINTR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
VICINTSELECT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
VICINTENABLE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
VICINTENCLEAR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
VICSOFTINT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
VICSOFTINTCLEAR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
VICPROTECTION register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
VICVECTADDR register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
VICVECTCNTL registers bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Peripheral identification registers bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
VICPERIPHID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
VICPERIPHID1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
VICPERIPHID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
VICPERIPHID3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
VICPCELLID0 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
VICPCELLID1 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
VICPCELLID2 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
VICPCELLID3 register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Watchdog control and status registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Watchdog identification registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
WdogControl register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
WdogRIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
WdogMIS register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
WdogLock register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
RTC functional registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
CONTROL register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
STATUS register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
TIME register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
DATE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
ALARM TIME register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
ALARM DATE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
REG1MC registers bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
REG2MC register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
DMAC global registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
DMAC channel registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
DMAC peripheral registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
DMAC cell identification registers summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
DMACIntStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
DMACIntTCStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
DMACIntTCClear register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
DMA ClntErrorStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
DMACIntErrClr register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
DMACRawIntTCStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Doc ID 022642 Rev 3
33/584
List of tables
Table 623.
Table 624.
Table 625.
Table 626.
Table 627.
Table 628.
Table 629.
Table 630.
Table 631.
Table 632.
Table 633.
Table 634.
Table 635.
Table 636.
Table 637.
Table 638.
Table 639.
Table 640.
Table 641.
Table 642.
Table 643.
Table 644.
Table 645.
Table 646.
Table 647.
Table 648.
34/584
RM0321
DMACRawIntErrorStatus register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
DMACEnbldChns register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
DMACSoftBReq register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
DMACSoftSReq register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
DMACSoftLBReq register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
DMACSoftLSReq register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
DMACConfiguration register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
DMACSync register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
DMACCnSrcAddr register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
DMACCnDestAddr register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
DMACCnLLI register bit assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
DMACCnControl register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
DMAC Configuration register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Register summary of a generic couple of GPTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Timer_Control register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
PRESCALER configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
TIMER_STATUS_INT_ACK register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
TIMER_COMPARE register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
TIMER_COUNT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
TIMER_REDG_CAPT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
TIMER_FEDG_CAPT register bit assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Register interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Control_reg_x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Duty_reg_x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Period_Reg_x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Doc ID 022642 Rev 3
RM0321
1
Address map
Address map
Table 2.
SPEAr320S main memory map
Start address
End address
Peripheral
Description
0x0000.0000
0x3FFF.FFFF
External DRAM
Low power DDR or DDR2
0x4000.0000
0xBFFF.FFFF
-
Reconfigurable array
subsystem (see Table 3)
0xC000.0000
0xCFFF.FFFF
-
Reserved
0xD000.0000
0xD007.FFFF
UART0
0xD008.0000
0xD00F.FFFF
ADC
0xD010.0000
0xD017.FFFF
SSP0
0xD018.0000
0xD01F.FFFF
I2C0
0xD020.0000
0xD07F.FFFF
-
Reserved
0xD080.0000
0xD0FF.FFFF
JPGC
JPEG codec
0xD100.0000
0xD17F.FFFF
IrDA
0xD180.0000
0xD1FF.FFFF
-
Reserved
0xD280.0000
0xD7FF.FFFF
SRAM
Static RAM shared memory
(8 Kbytes)
0xD800.0000
0xE07F.FFFF
-
Reserved
0xE080.0000
0xE0FF.FFFF
MII0
Ethernet controller
0xE100.0000
0xE10F.FFFF
USB 2.0 Device
FIFO
0xE110.0000
0xE11F.FFFF
USB 2.0 Device
Configuration registers
0xE120.0000
0xE12F.FFFF
USB 2.0 Device
Plug detect
0xE130.0000
0xE17F.FFFF
-
Reserved
0xE180.0000
0xE18F.FFFF
USB 2.0 EHCI 0/1
0xE190.0000
0xE19F.FFFF
USB 2.0 OHCI 0
0xE1A0.0000
0xE20F.FFFF
-
0xE210.0000
0xE21F.FFFF
USB 2.0 OHCI 1
0xE220.0000
0xE27F.FFFF
-
Reserved
0xE280.0000
0xE28F.FFFF
ML USB ARB
Configuration register
0xE290.0000
0xE7FF.FFFF
-
Reserved
0xE800.0000
0xEFFF.FFFF
-
Reserved
0xF000.0000
0xF00F.FFFF
GPT Timer0_1/0_1
0xF010.0000
0xF10F.FFFF
-
Reserved
0xF110.0000
0xF11F.FFFF
VIC
Vectored interrupt controller
0xF120.0000
0xF7FF.FFFF
-
Reserved
0xF800.0000
0xF9FF.FFFF
Serial Flash memory
Doc ID 022642 Rev 3
Reserved
35/584
Address map
RM0321
Table 2.
36/584
SPEAr320S main memory map (continued)
Start address
End address
Peripheral
Description
0xFA00.0000
0xFBFF.FFFF
-
Reserved
0xFC00.0000
0xFC1F.FFFF
Serial Flash controller
(SMI)
0xFC20.0000
0xFC3F.FFFF
-
0xFC40.0000
0xFC5F.FFFF
DMAC
0xFC60.0000
0xFC7F.FFFF
MPMC
0xFC80.0000
0xFC87.FFFF
GPT Timer 1_1/1_2
0xFC88.0000
0xFC8F.FFFF
Watchdog timer
0xFC90.0000
0xFC97.FFFF
Real time clock
0xFC98.0000
0xFC9F.FFFF
basGPIO
0xFCA0.0000
0xFCA7.FFFF
System controller
0xFCA8.0000
0xFCAF.FFFF
Miscellaneous registers
0xFCB0.0000
0xFCB7.FFFF
GPT Timer 2_1/2_2
0xFCB8.0000
0xFCFF.FFFF
-
Reserved
0xFD00.0000
0xFEFF.FFFF
-
Reserved
0xFF00.0000
0xFFFF.FFFF
BootROM
Doc ID 022642 Rev 3
Reserved
DDR multiport controller
Base GPIO
RM0321
Address map
Table 3.
Reconfigurable array subsystem memory map
Start address
End address
Peripheral
0x4000.0000
0x47FF.FFFF
EMI
0x4800.0000
0x4BFF.FFFF
-
0x4C00.0000
0x5FFF.FFFF
FSMC
0x6000.0000
0x600F.FFFF
UART5
0x6010.0000
0x601F.FFFF
UART6
0x6020.0000
0x6FFF.FFFF
-
0x7000.0000
0x7FFF.FFFF
MMC-SD card/SDIO
0x8000.0000
0x8000.3FFF
Boot memory
0x8000.4000
0x8FFF.FFFF
-
0x9000.0000
0x9FFF.FFFF
CLCD
0xA000.0000
0xA0FF.FFFF
Parallel port
0xA100.0000
0xA1FF.FFFF
CAN0
0xA200.0000
0xA2FF.FFFF
CAN1
0xA300.0000
0xA3FF.FFFF
UART1
0xA400.0000
0xA4FF.FFFF
UART2
0xA500.0000
0xA5FF.FFFF
SSP1
0xA600.0000
0xA6FF.FFFF
SSP2
0xA700.0000
0xA7FF.FFFF
I2C1
0xA800.0000
0xA8FF.FFFF
PWM
0xA900.0000
0xA90F.FFFF
I2C2
0xA910.0000
0xA91F.FFFF
UART3
0xA920.0000
0xA92F.FFFF
UART4
0xA930.0000
0xA93F.FFFF
RS485
0xA940.0000
0xA94F.FFFF
I2S
0xA950.0000
0xA9FF.FFFF
-
Reserved
0xAA00.0000
0xAAFF.FFFF
RMII0
Ethernet controller
0xAB00.0000
0xABFF.FFFF
RMII1/MII1
Ethernet controller
0xAC00.0000
0xB2FF.FFFF
-
Reserved
0xB300.0000
0xBFFF.FFFF
RASCFG
Doc ID 022642 Rev 3
Description
Reserved
Reserved
Reserved
Pulse width modulator
37/584
ARM926EJ-S
2
RM0321
ARM926EJ-S
Refer to Chapter 28: System configuration registers (MISC) for the registers related to
ARM926EJ-S configuration.
38/584
Doc ID 022642 Rev 3
RM0321
3
Bus interconnection matrix
Bus interconnection matrix
Refer to Chapter 28: System configuration registers (MISC) for the registers related to the
Bus interconnection matrix.
Doc ID 022642 Rev 3
39/584
Multiport DDR controller (MPMC)
RM0321
4
Multiport DDR controller (MPMC)
4.1
Register summary
A register may contain multiple parameters, a single parameter, or partial data for a
parameter. As a result, a READ from or a WRITE to a particular parameter may require
multiple READ or WRITE commands to different register addresses.
While parameters can be of any size, each parameter is mapped to byte boundaries that will
fit the entire parameter. Unused bits are considered reserved and indicated with a RESV
tag. Reserved fields will return 0 on all register reads.
Table 4.
Parameter size to mapping conditions
Parameter size (in Bits)
Mapping size
Starting address
1 to 8
1 byte
Byte Boundary
9 to 16
2 bytes
2 Byte Boundary
17 to 128
4 bytes
4 Byte Boundary
The MPMC base address in SPEAr320S is 0xFC60.0000. The address refers to the register
address reg_addr, not a signal on the command address line. The registers are not byte
addressable unless the register width is defined as 8 bits. To read or write a single
parameter, use the register mask to mask other bits.
Table 5.
Name
Offset
MPMC register
address
Type(1)
Parameter(s)
AHB2_FIFO_TYPE_REG
AHB1_FIFO_TYPE_REG
AHB0_FIFO_TYPE_REG
ADDR_CMP_EN
MEM0_CTL
0x00
0x00
RW
RW
RW
RW
MEM1_CTL
0x04
0x01
RW
RW
AHB4_FIFO_TYPE_REG
AHB3_FIFO_TYPE_REG
0x02
RW
RW
WR
RW
BANK_SPLIT_EN
AUTO_REFRESH_MODE
AREFRESH
AP
0x03
RW
RD
RW
RW
DLL_BYPASS_MODE
DLLLOCKREG
DDRII_SDRAM_MODE
CONCURRENTAP
0x04
RW
RW
RW
RW
INTRPTAPBURST
FAST_WRITE
EIGHT_BANK_MODE
DQS_N_EN
MEM2_CTL
MEM3_CTL
MEM4_CTL
40/584
Registers summary
0x08
0x0C
0x10
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 5.
Name
MEM5_CTL
MEM6_CTL
MEM7_CTL
MEM8_CTL
MEM9_CTL
MEM10_CTL
MEM11_CTL
MEM12_CTL
MEM13_CTL
MEM14_CTL
Registers summary (continued)
Offset
0x14
0x18
0x1C
0x20
0x24
0x28
0x2C
0x30
0x34
0x38
MPMC register
address
Type(1)
Parameter(s)
0x05
RW
RW
RW
RW
ODT_ADD_TURN_CLK_EN
NO_CMD_INIT
INTRPTWRITEA
INTRPTREADA
0x06
RW
RW
RW
RW
REDUC
PRIORITY_EN
POWER_DOWN
PLACEMENT_EN
0x07
RW
RW
RW
RW
START
SREFRESH
RW_SAME_EN
REG_DIMM_ENABLE
0x08
WR
RW
RW
RW
WRITE_MODEREG
WRITEINTERP
WEIGHTED_ROUND_ROBIN_LATENCY_
CONTROL
TRAS_LOCKOUT
0x09
RW
RW
RD
RW
ODT_RD_MAP_CS1
ODT_RD_MAP_CS0
MAX_CS_REG
CS_MAP
0x0A
RW
RD
RW
RW
RTT_0
OUT_OF_RANGE_TYPE
ODT_WR_MAP_CS1
ODT_WR_MAP_CS0
0x0B
RW
RW
RW
RW
AHB0_R_PRIORITY
AHB0_PORT_ORDERING
ADDR_PINS
RTT_PAD_TERMINATION
0x0C
RW
RW
RW
RW
AHB1_W_PRIORITY
AHB1_R_PRIORITY
AHB1_PORT_ORDERING
AHB0_W_PRIORITY
0x0D
RW
RW
RW
RW
AHB3_PORT_ORDERING
AHB2_W_PRIORITY
AHB2_R_PRIORITY
AHB2_PORT_ORDERING
0x0E
RW
RW
RW
RW
AHB4_R_PRIORITY
AHB4_PORT_ORDERING
AHB3_W_PRIORITY
AHB3_R_PRIORITY
Doc ID 022642 Rev 3
41/584
Multiport DDR controller (MPMC)
Table 5.
Registers summary (continued)
Name
Offset
MPMC register
address
Type(1)
Parameter(s)
MEM15_CTL
0x3C
0x0F
RW
AHB4_W_PRIORITY
MEM16_CTL
0x40
0x10
-
This register is intentionally blank.
TCKE
OUT_OF_RANGE_SOURCE_ID
COLUMN_SIZE
CASLAT
MEM17_CTL
0x44
0x11
RW
RD
RW
RW
MEM18_CTL
0x48
0x12
RW
RW
RW
TRTP
TRRD
TEMRS
0x13
RW
RW
RW
RW
WRLAT
WEIGHTED_ROUND_ROBIN_WEIGHT_S
HARING
TWTR
TWR_INT
0x14
RW
RW
RW
RW
AHB0_PRIORITY2_RELATIVE_PRIORITY
AHB0_PRIORITY1_RELATIVE_PRIORITY
AHB0_PRIORITY0_RELATIVE_PRIORITY
AGE_COUNT
0x15
RW
RW
RW
WR
AHB0_PRIORITY6_RELATIVE_PRIORITY
AHB0_PRIORITY5_RELATIVE_PRIORITY
AHB0_PRIORITY4_RELATIVE_PRIORITY
AHB0_PRIORITY3_RELATIVE_PRIORITY
0x16
RW
RW
RW
RW
AHB1_PRIORITY2_RELATIVE_PRIORITY
AHB1_PRIORITY1_RELATIVE_PRIORITY
AHB1_PRIORITY0_RELATIVE_PRIORITY
AHB0_PRIORITY7_RELATIVE_PRIORITY
0x17
RW
RW
RW
RW
AHB1_PRIORITY6_RELATIVE_PRIORITY
AHB1_PRIORITY5_RELATIVE_PRIORITY
AHB1_PRIORITY4_RELATIVE_PRIORITY
AHB1_PRIORITY3_RELATIVE_PRIORITY
0x18
RW
RW
RW
RW
AHB2_PRIORITY2_RELATIVE_PRIORITY
AHB2_PRIORITY1_RELATIVE_PRIORITY
AHB2_PRIORITY0_RELATIVE_PRIORITY
AHB1_PRIORITY7_RELATIVE_PRIORITY
0x19
RW
RW
RW
RW
AHB2_PRIORITY6_RELATIVE_PRIORITY
AHB2_PRIORITY5_RELATIVE_PRIORITY
AHB2_PRIORITY4_RELATIVE_PRIORITY
AHB2_PRIORITY3_RELATIVE_PRIORITY
MEM19_CTL
MEM20_CTL
MEM21_CTL
MEM22_CTL
MEM23_CTL
MEM24_CTL
MEM25_CTL
42/584
RM0321
0x4C
0x50
0x54
0x58
0x5C
0x60
0x64
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 5.
Name
MEM26_CTL
MEM27_CTL
MEM28_CTL
Registers summary (continued)
Offset
0x68
0x6C
0x70
MPMC register
address
Type(1)
Parameter(s)
0x1A
RW
RW
RW
RW
AHB3_PRIORITY2_RELATIVE_PRIORITY
AHB3_PRIORITY1_RELATIVE_PRIORITY
AHB3_PRIORITY0_RELATIVE_PRIORITY
AHB2_PRIORITY7_RELATIVE_PRIORITY
0x1B
RW
RW
RW
RW
AHB3_PRIORITY6_RELATIVE_PRIORITY
AHB3_PRIORITY5_RELATIVE_PRIORITY
AHB3_PRIORITY4_RELATIVE_PRIORITY
AHB3_PRIORITY3_RELATIVE_PRIORITY
0x1C
RW
RW
RW
RW
AHB4_PRIORITY2_RELATIVE_PRIORITY
AHB4_PRIORITY1_RELATIVE_PRIORITY
AHB4_PRIORITY0_RELATIVE_PRIORITY
AHB3_PRIORITY7_RELATIVE_PRIORITY
AHB4_PRIORITY6_RELATIVE_PRIORITY
AHB4_PRIORITY5_RELATIVE_PRIORITY
AHB4_PRIORITY4_RELATIVE_PRIORITY
AHB4_PRIORITY3_RELATIVE_PRIORITY
MEM29_CTL
0x74
0x1D
RW
RW
RW
RW
MEM30_CTL
0x78
0x1E
RW
AHB4_PRIORITY7_RELATIVE_PRIORITY
MEM31_CTL
0x7C
0x1F
-
This register intentionally blank.
MEM32_CTL
0x80
0x20
-
This register intentionally blank.
MEM33_CTL
0x84
0x21
-
This register intentionally blank.
MEM34_CTL
0x88
0x22
RW
RW
RW
CASLAT_LIN_GATE
CASLAT_LIN
APREBIT
0x23
RD
RD
RW
RW
MAX_ROW_REG
MAX_COL_REG
INITAREF
COMMAND_AGE_COUNT
0x24
RD
RW
RW
RW
WRR_PARAM_VALUE_ERR
TRP
TDAL
Q_FULLNESS
0x25
RW
RW
RW
WR
TFAW
OCD_ADJUST_PUP_CS_0
OCD_ADJUST_PDN_CS_0
INT_ACK
0x26
RD
RW
RW
RW
INT_STATUS
INT_MASK
TRC
TMRD
MEM35_CTL
MEM36_CTL
MEM37_CTL
MEM38_CTL
0x8C
0x90
0x94
0x98
Doc ID 022642 Rev 3
43/584
Multiport DDR controller (MPMC)
Table 5.
44/584
RM0321
Registers summary (continued)
Name
Offset
MPMC register
address
Type(1)
Parameter(s)
MEM39_CTL
0x9C
0x27
RW
RW
DLL_DQS_DELAY_1
DLL_DQS_DELAY_0
MEM40_CTL
0xA0
0x28
RW
DQS_OUT_SHIFT
MEM41_CTL
0xA4
0x29
RW
WR_DQS_SHIFT
MEM42_CTL
0xA8
0x2A
RW
RW
RW
TRFC
TRCD_INT
TRAS_MIN
MEM43_CTL
0xAC
0x2B
RW
RW
AHB1_PRIORITY_RELAX
AHB0_PRIORITY_RELAX
MEM44_CTL
0xB0
0x2C
RW
RW
AHB3_PRIORITY_RELAX
AHB2_PRIORITY_RELAX
MEM45_CTL
0xB4
0x2D
RW
AHB4_PRIORITY_RELAX
MEM46_CTL
0xB8
0x2E
RD
OUT_OF_RANGE_LENGTH
MEM47_CTL
0xBC
0x2F
RW
RW
AHB0_WRCNT
AHB0_RDCNT
MEM48_CTL
0xC0
0x30
RW
RW
AHB1_WRCNT
AHB1_RDCNT
MEM49_CTL
0xC4
0x31
RW
RW
AHB2_WRCNT
AHB2_RDCNT
MEM50_CTL
0xC8
0x32
RW
RW
AHB3_WRCNT
AHB3_RDCNT
MEM51_CTL
0xCC
0x33
RW
RW
AHB4_WRCNT
AHB4_RDCNT
MEM52_CTL
0xD0
0x34
-
This register intentionally blank.
MEM53_CTL
0xD4
0x35
-
This register intentionally blank.
MEM54_CTL
0xD8
0x36
RW
TREF
MEM55_CTL
0xDC
0x37
RW
EMRS3_DATA
MEM56_CTL
0xE0
0x38
RW
RW
TRAS_MAX
TDLL
MEM57_CTL
0xE4
0x39
RW
RW
TXSR
TXSNR
MEM58_CTL
0xE8
0x3A
RD
VERSION
MEM59_CTL
0xEC
0x3B
RW
TINIT
MEM60_CTL
0xF0
0x3C
RD
OUT_OF_RANGE_ADDR[31:0]
MEM61_CTL
0xF4
0x3D
RD
OUT_OF_RANGE_ADDR[33:32]
MEM62_CTL
0xF8
0x3E
-
This register intentionally blank.
MEM63_CTL
0xFC
0x3F
-
This register intentionally blank.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 5.
Registers summary (continued)
Name
Offset
MPMC register
address
Type(1)
Parameter(s)
MEM64_CTL
0x100
0x40
-
This register intentionally blank.
MEM65_CTL
0x104
0x41
RW
DLL_DQS_DELAY_BYPASS_0
MEM66_CTL
0x108
0x42
RW
RW
DLL_INCREMENT
DLL_DQS_DELAY_BYPASS_1
MEM67_CTL
0x10C
0x43
RW
RD
DLL_START_POINT
DLL_LOCK
MEM68_CTL
0x110
0x44
RW
RW
WR_DQS_SHIFT_BYPASS
DQS_OUT_SHIFT_BYPASS
MEM69_CTL
0x114
0x45
-
This register intentionally blank.
MEM70_CTL
0x118
0x46
-
This register intentionally blank.
MEM71_CTL
0x11C
0x47
-
This register intentionally blank.
MEM72_CTL
0x120
0x48
-
This register intentionally blank.
MEM73_CTL
0x124
0x49
-
This register intentionally blank.
MEM74_CTL
0x128
0x4A
-
This register intentionally blank.
MEM75_CTL
0x12C
0x4B
-
This register intentionally blank.
MEM76_CTL
0x130
0x4C
-
This register intentionally blank.
MEM77_CTL
0x134
0x4D
-
This register intentionally blank.
MEM78_CTL
0x138
0x4E
-
This register intentionally blank.
MEM79_CTL
0x13C
0x4F
-
This register intentionally blank.
MEM80_CTL
0x140
0x50
-
This register intentionally blank.
MEM81_CTL
0x144
0x51
-
This register intentionally blank.
MEM82_CTL
0x148
0x52
-
This register intentionally blank.
MEM83_CTL
0x14C
0x53
-
This register intentionally blank.
MEM84_CTL
0x150
0x54
-
This register intentionally blank.
MEM85_CTL
0x154
0x55
-
This register intentionally blank.
MEM86_CTL
0x158
0x56
-
This register intentionally blank.
MEM87_CTL
0x15C
0x57
-
This register intentionally blank.
MEM88_CTL
0x160
0x58
-
This register intentionally blank.
MEM89_CTL
0x164
0x59
-
This register intentionally blank.
MEM90_CTL
0x168
0x5A
-
This register intentionally blank.
MEM91_CTL
0x16C
0x5B
-
This register intentionally blank.
MEM92_CTL
0x170
0x5C
-
This register intentionally blank.
MEM93_CTL
0x174
0x5D
-
This register intentionally blank.
MEM94_CTL
0x178
0x5E
-
This register intentionally blank.
MEM95_CTL
0x17C
0x5F
-
This register intentionally blank.
Doc ID 022642 Rev 3
45/584
Multiport DDR controller (MPMC)
Table 5.
RM0321
Registers summary (continued)
Name
Offset
MPMC register
address
Type(1)
Parameter(s)
MEM96_CTL
0x180
0x60
-
This register intentionally blank.
MEM97_CTL
0x184
0x61
-
This register intentionally blank.
MEM98_CTL
0x188
0x62
RW
USER_DEF_REG_0
MEM99_CTL
0x18C
0x63
RW
USER_DEF_REG_1
0x64
RW
RW
RW
RW
ENABLE_QUICK_SREFRESH
DRIVE_DQ_DQS
BIG_ENDIAN_EN
ACTIVE_AGING
0x65
RW
RW
RW
RW
SWAP_EN
RD2RD_TURN
PWRUP_SREFRESH_EXIT
EN_LOWPOWER_MODE
LOWPOWER_AUTO_ENABLE
CKE_DELAY
LOWPOWER_REFRESH_ENABLE
TREF_ENABLE
MEM100_CT
L
MEM101_CT
L
0x190
0x194
MEM102_CT
L
0x198
0x66
RW
RW
RW
RW
MEM103_CT
L
0x19C
0x67
RW
RW
EMRS1_DATA
LOWPOWER_CONTROL
MEM104_CT
L
0x1A0
0x68
RW
RW
EMRS2_DATA_1
EMRS2_DATA_0
MEM105_CT
L
0x1A4
0x69
RW
RW
LOWPOWER_INTERNAL_CNT
LOWPOWER_EXTERNAL_CNT
MEM106_CT
L
0x1A8
0x6A
RW
RW
LOWPOXER_RFSH_HOLD
LOWPOWER_POWER_DOWN_CNT
MEM107_CT
L
0x1AC
0x6B
RW
RW
TCPD
LOWPOWER_SELF_REFRESH_CNT
MEM108_CT
L
0x1B0
0x6C
RW
TPDEX
1. Type refers to the writeability of the parameter.
RW=READ/WRITE.
RD=Read Only.
WR=Write Only.
RW=READ/WRITE, where one or more bits of the parameter have additional functionality and
require special handling.
Note:
46/584
For a comprehensive explanation of the meaning of parameters, please refer to Section 4.3
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
4.2
Register description
4.2.1
MEM0_CTL register
.
Table 6.
4.2.2
MEM0_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:28]
-
-
-
Reserved. Read undefined. Write should be
zero.
[27:24]
AHB2_FIFO_TYPE
0x0
0x0-0x3
Clock domain correlation between port 2 and
Memory Controller core.
[23:20]
-
-
-
Reserved. Read undefined. Write should be
zero.
[19:16]
AHB1_FIFO_TYPE
0x0
0x0-0x3
Clock domain correlation between port 1 and
Memory Controller core.
[15:12]
-
-
-
Reserved. Read undefined. Write should be
zero.
[11:08]
AHB0_FIFO_TYPE
0x0
0x0-0x3
Clock domain correlation between port 0 and
Memory Controller core.
[07:04]
-
-
-
Reserved. Read undefined. Write should be
zero.
[03:00]
ADDR_CMP_EN
0x0
0x0-0x1
Enable address collision detection for CMD
queue placement logic.
MEM1_CTL register
Table 7.
MEM1_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:10]
-
-
-
Reserved. Read undefined. Write should be
zero.
[09:08]
AHB4_FIFO_TYPE
0x0
0x0-0x3
Clock domain correlation between port 4 and
Memory Controller core.
[07:02]
-
-
-
Reserved. Read undefined. Write should be
zero.
[01:00]
AHB3_FIFO_TYPE
0x0
0x0-0x1
Clock domain correlation between port 3 and
Memory Controller core.
Doc ID 022642 Rev 3
47/584
Multiport DDR controller (MPMC)
4.2.3
MEM2_CTL register
Table 8.
4.2.4
MEM2_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
BANK_SPLI_EN
0x0
0x0-0x1
Enable bank splitting for CMD queue placement
logic.
[23:17]
-
-
-
Reserved. Read undefined. Write should be
zero.
[16]
AUTO_RFSH_MODE 0x0
0x0-0x1
Define autorefresh to occur at next burst or next
CMD boundary.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
AREFRESH
0x0
0x0-0x1
Trigger autorefresh at boundary specified by
AUTO_RFSH_MODE. WRITE-ONLY
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
AP
0x0
0x0-0x1 Enable auto pre-charge mode of controller.
MEM3_CTL register
Table 9.
48/584
RM0321
MEM3_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
DLL_BYPASS_MO
0x0
DE
0x0 - 0x1 Enable the DLL bypass feature of the controller.
[23:17]
-
-
-
Reserved. Read undefined. Write should be
zero.
[16]
DLLLOCK
0x0
0x0 - 0x1
Status of DLL lock coming out of master delay.
READ-ONLY
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
DDRII_DDRI_MOD
0x0
E
0x0 - 0x1
Define mode of controller as DDRI(mobile) or
DDRII.
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
CONCURRENTAP
0x0
0x0 - 0x1
Allow controller to issue CMDs to other banks
while a bank is in auto precharge.
Doc ID 022642 Rev 3
RM0321
4.2.5
Multiport DDR controller (MPMC)
MEM4_CTL register
Table 10.
4.2.6
MEM4_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
INTRPTAPBURST
0x0
0x0 - 0x1
Allow the controller to interrupt an auto precharge CMD with another CMD.
[23:17]
-
-
-
Reserved. Read undefined. Write should be
zero.
[16]
FAST_WRITE
0x0
0x0 - 0x1
Define when write CMDs are issued to DRAM
devices.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
EIGHT_BANK_MO
0x0
DE
0x0 - 0x1 Number of banks on the DRAM(s).
[07:01]
-
-
-
[00]
DQS_N_EN
0x0
0x0 - 0x1 Set DQS pin as single-ended or differential.
Reserved. Read undefined. Write should be
zero.
MEM5_CTL register
Table 11.
MEM5_CTL register bit assignments
Bit
Name
Reset
Range
value
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
ODT_ADD_TURN_C
0x0
LK_EN
0x0 0x1
Enable extra turn-around clock between back-toback READs/WRITEs to different chip selects.
[23:17]
-
-
-
Reserved. Read undefined. Write should be
zero.
[16]
NOCMDINIT
0x0
0x0 0x1
Disable DRAM CMDs until TDLL has expired
during initialization.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
INTRPTWRITEA
0x0
0x0 0x1
Allow the controller to interrupt a combined write
CMD with auto pre-charge with another write
CMD.
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
INTRPTREADA
0x0
0x0 0x1
Allow the controller to interrupt a combined read
with auto precharge CMD with another read
CMD.
Doc ID 022642 Rev 3
49/584
Multiport DDR controller (MPMC)
4.2.7
MEM6_CTL register
Table 12.
4.2.8
MEM6_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
REDUC
0x0
0x0 - 0x1 Enable the half datapath feature of the controller.
[23:17]
-
-
-
[16]
PRIORITY_EN
0x0
0x0 - 0x1 Enable priority for CMD queue placement logic.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
POWER_DOWN
0x0
0x0 - 0x1
Disable clock enable and set DRAMs in powerdown state.
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
PLACEMENT_EN
0x0
0x0 - 0x1 Enable placement logic for CMD queue.
Reserved. Read undefined. Write should be
zero.
MEM7_CTL register
Table 13.
50/584
RM0321
MEM7_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
START
0x0
0x0 - 0x1 Begin CMD processing in the controller.
[23:17]
-
-
-
[16]
SREFRESH
0x0
0x0 - 0x1 Place DRAMs in self-refresh mode.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
SW_SAME_EN
0x0
0x0 - 0x1
Enable read/ write grouping for CMD queue
placement logic.
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
REG_DIMM_EN
0x0
0x0 - 0x1
Enable registered DIMM operation of the
controller.
Reserved. Read undefined. Write should be
zero.
Doc ID 022642 Rev 3
RM0321
4.2.9
Multiport DDR controller (MPMC)
MEM8_CTL register
Table 14.
4.2.10
MEM8_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:25]
-
-
-
Reserved. Read undefined. Write should be
zero.
[24]
WRITE_MODE_RE
0x0
G
0x0 - 0x1 Write EMRS data to the DRAMs. WRITE-ONLY
[23:17]
-
-
-
Reserved. Read undefined. Write should be
zero.
[16]
WRITE_INTRPT
0x0
0x0 - 0x1
Allow controller to interrupt write bursts to the
DRAMs with a read CMD.
[15:09]
-
-
-
Reserved. Read undefined. Write should be
zero.
[08]
WEIGHTED_ROU
ND_ROBIN_LATE
CNCY_CONTROL
0x0
0x0 - 0x1 Free-running or limited WRR latency counters.
[07:01]
-
-
-
Reserved. Read undefined. Write should be
zero.
[00]
TRAS_LOCKOUT
0x0
0x0 - 0x1
Allow the controller to execute auto pre-charge
CMDs before TRAS_MIN expires.
MEM9_CTL register
Table 15.
MEM9_CTL register bit assignments
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
[25:24] ODT_RD_MAP_CS1 0x0
0x0 - 0x3
ODT Chip Select 1 map for READs.
Determines which chip(s) will have
termination when a read occurs on chip 1.
[23:18] -
-
Reserved. Read undefined. Write should be
zero.
[17:16] ODT_RD_MAP_CS0 0x0
0x0 - 0x3
ODT Chip Select 0 map for READs.
Determines which chip(s) will have
termination when a read occurs on chip 0.
[15:10] -
-
-
Reserved. Read undefined. Write should be
zero.
[09:80] MAX_CS
0x2
0x0 - 0x2
Maximum number of chip selects available.
READ-ONLY
[07:02] -
-
-
Reserved. Read undefined. Write should be
zero.
[01:00] CS_MAP
0x0
0x0 - 0x3
Specify which chip selects are active.
Bit
Name
[31:26] -
-
Doc ID 022642 Rev 3
51/584
Multiport DDR controller (MPMC)
4.2.11
MEM10_CTL register
Table 16.
Range
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be
zero.
[25:24] RTT_0
0x0
0x0 - 0x3
On-Die termination resistance setting for all
DRAM devices.
[23:18] -
-
-
Reserved. Read undefined. Write should be
zero.
[17:16] OUTOFRANGETYPE
0x0
0x0 - 0x3
Type of CMD that caused an Out-of-Range
interrupt. READ-ONLY
[15:10] -
-
-
Reserved. Read undefined. Write should be
zero.
[09:08] ODT_WR_MAP_CS1
0x0
ODT Chip Select 1 map for WRITEs.
0x0 - 0x3 Determines which chip(s) will have
termination when a write occurs on chip 1.
[07:02] -
-
-
[01:00] ODT_WR_MAP_CS0
0x0
ODT Chip Select 0 map for WRITEs.
0x0 - 0x3 Determines which chip(s) will have
termination when a write occurs on chip 0.
Name
Reserved. Read undefined. Write should be
zero.
MEM11_CTL register
Table 17.
MEM11_CTL register bit assignments
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should
be zero.
[26:24] AHB0_R_PRIOTRITY
0x0
0x0 - 0x7 Priority of read CMDs from port 0.
[23:19] -
-
-
[18:16] AHB0_PORT_ORDERING
0x0
0x0 - 0x7 Reassigned port order for port 0.
[15:11] -
-
-
Reserved. Read undefined. Write should
be zero.
[10:08] ADDR_PINS
0x0
0x0 - 0x7
Difference between number of addr pins
available and number being used.
[07:02] -
-
-
Reserved. Read undefined. Write should
be zero.
[01:00] RTT_PAD_TERMINATION
0x0
0x0 - 0x3
Set termination resistance in controller
pads
Bit
52/584
MEM10_CTL register bit assignments
Reset
value
Bit
4.2.12
RM0321
Name
Doc ID 022642 Rev 3
Reserved. Read undefined. Write should
be zero.
RM0321
4.2.13
Multiport DDR controller (MPMC)
MEM12_CTL register
Table 18.
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should be
zero.
[26:24] AHB1_W_PRIORITY
0x0
0x0 - 0x7 Priority of write commands from port 1.
[23:19] -
-
-
[18:16] AHB1_R_PRIORITY
0x0
0x0 - 0x7 Priority of read commands from port 1.
[15:11] -
-
-
0x0
0x0 - 0x7 Reassigned port order for port 1.
[07:03] -
-
-
[02:00] AHB0_W_PRIORITY
0x0
0x0 - 0x7 Priority of write commands from port 0.
Bit
[10:08]
4.2.14
MEM12_CTL register bit assignments
Name
AHB1_PORT_ORDE
RING
Reserved. Read undefined. Write should be
zero.
Reserved. Read undefined. Write should be
zero.
Reserved. Read undefined. Write should be
zero.
MEM13_CTL register
Table 19.
Bit
MEM13_CTL register bit assignments
Name
[31:27] -
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should
be zero.
[26:24] AHB3_PORT_ORDERING 0x0
0x0 - 0x7 Reassigned port order for port 3.
[23:19] -
-
-
[18:16] AHB2_W_PRIORITY
0x0
0x0 - 0x7 Priority of write commands from port 2.
[15:11] -
-
-
[10:08] AHB2_R_PRIORITY
0x0
0x0 - 0x7 Priority of read commands from port 2.
[07:03] -
-
-
[02:00] AHB2_PORT_ORDERING 0x0
Reserved. Read undefined. Write should
be zero.
Reserved. Read undefined. Write should
be zero.
Reserved. Read undefined. Write should
be zero.
0x0 - 0x7 Reassigned port order for port 2.
Doc ID 022642 Rev 3
53/584
Multiport DDR controller (MPMC)
4.2.15
MEM14_CTL register
Table 20.
MEM14_CTL register bit assignments
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should
be zero.
[26:24] AHB4_R_PRIORITY
0x0
0x0 - 0x7 Priority of read commands from port 4.
[23:19] -
-
-
Bit
4.2.16
RM0321
Name
[18:16] AHB4_PORT_ORDERING 0x0
0x0 - 0x7 Reassigned port order for port 4.
[15:11] -
-
-
[10:08] AHB3_W_PRIORITY
0x0
0x0 - 0x7 Priority of write commands from port 3.
[07:03] -
-
-
[02:00] AHB3_R_PRIORITY
0x0
0x0 - 0x7 Priority of read commands from port 3.
Bit
Reserved. Read undefined. Write should
be zero.
MEM15_CTL register bit assignments
Name
[31:03] -
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
[02:00] AHB4_W_PRIORITY 0x0
0x0 - 0x7 Priority of write commands from port 4.
MEM16_CTL register
‘
Table 22.
Bit
MEM16_CTL register bit assignments
Name
[31:00] -
54/584
Reserved. Read undefined. Write should
be zero.
MEM15_CTL register
Table 21.
4.2.17
Reserved. Read undefined. Write should
be zero.
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
Doc ID 022642 Rev 3
RM0321
4.2.18
Multiport DDR controller (MPMC)
MEM17_CTL register
Table 23.
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should be
zero.
[26:24] TCKE
0x0
0x0 - 0x7 Minimum CKE pulse width.
[23:19] -
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0x7
Source ID of CMD that caused an Out-ofRange interrupt. READ-ONLY
[15:11] -
-
-
Reserved. Read undefined. Write should be
zero.
[10:08] COLUMN_SIZE
0x0
0x0 - 0x7
Difference between number of column pins
available and number being used.
[07:03] -
-
-
Reserved. Read undefined. Write should be
zero.
[02:00] CAS_LATENCY
0x0
0x0 - 0x7
Encoded CAS latency sent to DRAMs during
initialization.
Bit
[18:16]
4.2.19
Name
OUT_OF_RANGE_S
OURCE_ID
MEM18_CTL register
Table 24.
MEM18_CTL register bit assignments
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should be zero.
[26:24] TRTP
0x0
0x0 - 0x7 DRAM TRTP parameter in cycles.
[23:19] -
-
-
[18:16] TRRD
0x0
0x0 - 0x7 DRAM TRRD parameter in cycles.
[15:03] -
-
-
[02:00] TEMRS
0x0
0x0 - 0x7 DRAM TEMRS parameter in cycles.
Bit
4.2.20
MEM17_CTL register bit assignments
Name
Reserved. Read undefined. Write should be zero.
Reserved. Read undefined. Write should be zero.
MEM19_CTL register
Table 25.
MEM19_CTL register bit assignments
Reset
value
Range
Description
[31:27] -
-
-
Reserved. Read undefined. Write should be zero.
[26:24] WRLAT
0x0
0x0 - 0x7 DRAM WRLAT parameter in cycles.
[23:18] -
-
-
Bit
Name
Reserved. Read undefined. Write should be zero.
Doc ID 022642 Rev 3
55/584
Multiport DDR controller (MPMC)
Table 25.
Bit
4.2.21
MEM19_CTL register bit assignments (continued)
Name
Range
Description
0x0 - 0x3 Per-port pair shared arbitration for WRR.
[15:11] -
-
-
[10:08] TWTR
0x0
0x0 - 0x7 DRAM TWTR parameter in cycles.
[07:03] -
-
-
[02:00] TWR_INT
0x0
0x0 - 0x7 DRAM TWR parameter in cycles.
Reserved. Read undefined. Write should be zero.
Reserved. Read undefined. Write should be zero.
MEM20_CTL register
Bit
MEM20_CTL register bit assignments
Name
[31:28] [27:24]
[19:16]
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 2 CMDs from port
0.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 1 CMDs from port
0.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 0 CMDs from port
0.
-
AHB0_PRIORITY1_RE
0x0
LATIVE_PRIORITY
[15:12] [11:08]
Reset
Range
value
AHB0_PRIORITY2_RE
0x0
LATIVE_PRIORITY
[23:20] -
-
AHB0_PRIORITY0_RE
0x0
LATIVE_PRIORITY
[07:06] -
-
-
Reserved. Read undefined. Write should be
zero.
[05:00] AGE_COUNT
0x0
0x0 - 0x3F
Initial value of master generate counter for
CMD aging.
MEM21_CTL register
Table 27.
Bit
[27:24]
MEM21_CTL register bit assignments
Name
[31:28] -
56/584
Reset
value
WEIGHTED_ROU
[17:16] ND_ROBIN_WEIG 0x0
HT_SHARING
Table 26.
4.2.22
RM0321
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 6 CMDs from port
0.
AHB0_PRIORITY6_REL
0x0
ATIVE_PRIORITY
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 27.
Bit
MEM21_CTL register bit assignments (continued)
Name
[23:20] [19:16]
4.2.23
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 5 CMDs from port
0.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 4 CMDs from port
0.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 3 CMDs from port
0.
-
AHB0_PRIORITY4_REL
0x0
ATIVE_PRIORITY
[07:04] [03:00]
Description
AHB0_PRIORITY5_REL
0x0
ATIVE_PRIORITY
[15:12] [11:08]
Reset
Range
value
-
AHB0_PRIORITY3_REL
0x0
ATIVE_PRIORITY
MEM22_CTL register
Table 28.
Bit
Name
[31:28] [27:24]
-
-
Reserved. Read undefined. Write
should be zero.
0x0 - 0xF
Relative priority of priority 2 CMDs
from port 1.
-
Reserved. Read undefined. Write
should be zero.
0x0 - 0xF
Relative priority of priority 1 CMDs
from port 1.
-
Reserved. Read undefined. Write
should be zero.
0x0 - 0xF
Relative priority of priority 0 CMDs
from port 1.
-
Reserved. Read undefined. Write
should be zero.
0x0 - 0xF
Relative priority of priority 7 CMDs
from port 0.
-
-
AHB1_PRIORITY0_RELATIVE_
0x0
PRIORITY
[07:04] [03:00]
Description
AHB1_PRIORITY1_RELATIVE_
0x0
PRIORITY
[15:12] [11:08]
Reset
Range
value
AHB1_PRIORITY2_RELATIVE_
0x0
PRIORITY
[23:20] [19:16]
MEM22_CTL register bit assignments
-
AHB0_PRIORITY7_RELATIVE_
0x0
PRIORITY
Doc ID 022642 Rev 3
57/584
Multiport DDR controller (MPMC)
4.2.24
MEM23_CTL register
Table 29.
Bit
MEM23_CTL register bit assignments
Name
[31:28] [27:24]
[19:16]
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 6 CMDs from port
1.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 5 CMDs from port
1.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 4 CMDs from port
1.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 3 CMDs from port
1.
-
AHB1_PRIORITY6_REL
0x0
ATIVE_PRIORITY
-
AHB1_PRIORITY3_REL
0x0
ATIVE_PRIORITY
MEM24_CTL register
Table 30.
Bit
MEM24_CTL register bit assignments
Name
[31:28] [27:24]
AHB2_PRIORITY2_RE
LATIVE_PRIORITY
[23:20] [19:16]
AHB2_PRIORITY1_RE
LATIVE_PRIORITY
[15:12] [11:08]
AHB2_PRIORITY0_RE
LATIVE_PRIORITY
[07:04] [03:00]
58/584
-
AHB1_PRIORITY6_REL
0x0
ATIVE_PRIORITY
[07:04] [03:00]
Description
-
[15:12] [11:08]
Reset
Range
value
AHB1_PRIORITY6_REL
0x0
ATIVE_PRIORITY
[23:20] -
4.2.25
RM0321
AHB1_PRIORITY7_RE
LATIVE_PRIORITY
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 2 CMDs from port
2.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 1 CMDs from port
2.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 0 CMDs from port
2.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 7 CMDs from port
1.
Doc ID 022642 Rev 3
RM0321
4.2.26
Multiport DDR controller (MPMC)
MEM25_CTL register
Table 31.
Bit
MEM25_CTL register bit assignments
Name
[31:28] [27:24]
4.2.27
-
Reserved. Read undefined. Write should
be zero.
0x0 - 0xF
Relative priority of priority 6 CMDs from
port 2.
-
Reserved. Read undefined. Write should
be zero.
0x0 - 0xF
Relative priority of priority 5 CMDs from
port 2.
-
Reserved. Read undefined. Write should
be zero.
0x0 - 0xF
Relative priority of priority 4 CMDs from
port 2.
-
Reserved. Read undefined. Write should
be zero.
0x0 - 0xF
Relative priority of priority 3 CMDs from
port 2.
AHB2_PRIORITY6_RELA
0x0
TIVE_PRIORITY
-
AHB2_PRIORITY6_RELA
0x0
TIVE_PRIORITY
[07:04] [03:00]
-
-
[15:12] [11:08]
Description
AHB2_PRIORITY6_RELA
0x0
TIVE_PRIORITY
[23:20] [19:16]
Reset
Range
value
-
AHB2_PRIORITY3_RELA
0x0
TIVE_PRIORITY
MEM26_CTL register
T
Table 32.
Bit
Name
[31:28] [27:24]
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 2 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 1 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 0 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 7 CMDs from port
2.
-
-
AHB3_PRIORITY0_RE
0x0
LATIVE_PRIORITY
[07:04] [03:00]
Description
AHB3_PRIORITY1_RE
0x0
LATIVE_PRIORITY
[15:12] [11:08]
Reset
Range
value
AHB3_PRIORITY2_RE
0x0
LATIVE_PRIORITY
[23:20] [19:16]
MEM26_CTL register bit assignments
-
AHB2_PRIORITY7_RE
0x0
LATIVE_PRIORITY
Doc ID 022642 Rev 3
59/584
Multiport DDR controller (MPMC)
4.2.28
RM0321
MEM27_CTL register
Table 33.
Bit
MEM27_CTL register bit assignments
Name
[31:28] [27:24]
4.2.29
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 6 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 5 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 4 CMDs from port
3.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 3 CMDs from port
3.
-
AHB3_PRIORITY6_RE
0x0
LATIVE_PRIORITY
-
AHB3_PRIORITY3_RE
0x0
LATIVE_PRIORITY
MEM28_CTL register
Table 34.
Bit
[27:24]
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 2 CMDs from port 4.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 1 CMDs from port 4.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 0 CMDs from port 4.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0xF
Relative priority of priority 7 CMDs from port 3.
-
-
AHB4_PRIORITY0_R
0x0
ELATIVE_PRIORITY
[07:04] [03:00]
Description
AHB4_PRIORITY1_R
0x0
ELATIVE_PRIORITY
[15:12] [11:08]
Reset
Range
value
AHB4_PRIORITY2_R
0x0
ELATIVE_PRIORITY
[23:20] [19:16]
MEM28_CTL register bit assignments
Name
[31:28] -
60/584
-
AHB3_PRIORITY6_RE
0x0
LATIVE_PRIORITY
[07:04] [03:00]
-
-
[15:12] [11:08]
Description
AHB3_PRIORITY6_RE
0x0
LATIVE_PRIORITY
[23:20] [19:16]
Reset
Range
value
-
AHB3_PRIORITY7_R
0x0
ELATIVE_PRIORITY
Doc ID 022642 Rev 3
RM0321
4.2.30
Multiport DDR controller (MPMC)
MEM29_CTL register
Table 35.
Bit
MEM29_CTL register bit assignments
Name
[31:28] [27:24]
AHB4_PRIORITY6_REL
ATIVE_PRIORITY
[23:20] [19:16]
AHB4_PRIORITY6_REL
ATIVE_PRIORITY
[15:12] [11:08]
AHB4_PRIORITY6_REL
ATIVE_PRIORITY
[07:04] [03:00]
4.2.31
AHB4_PRIORITY3_REL
ATIVE_PRIORITY
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 6 CMDs from port
4.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 5 CMDs from port
4.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 4 CMDs from port
4.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 3 CMDs from port
4.
MEM30_CTL register
Table 36.
Bit
MEM30_CTL register bit assignments
Name
[31:04] [03:00]
4.2.32
Reset
Range
value
AHB4_PRIORITY7_REL
ATIVE_PRIORITY
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0xF
Relative priority of priority 7 CMDs from port
4.
MEM31_CTL/MEM32_CTL/MEM33_CTL register
Table 37.
Bit
MEM31_CTL/MEM32_CTL/MEM33_CTL register bit assignments
Name
[31:00] -
Reset
Range
value
Description
-
Reserved. Read undefined. Write should be zero.
-
Doc ID 022642 Rev 3
61/584
Multiport DDR controller (MPMC)
4.2.33
RM0321
MEM34_CTL register
Table 38.
MEM34_CTL register bit assignments
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be
zero.
[27:24] CASLAT_LIN_GATE 0x0
0x0 - 0xF
Adjusts data capture gate open by half cycles.
[23:20] -
-
-
Reserved. Read undefined. Write should be
zero.
[19:16] CASLAT_LIN
0x0
0x0 - 0xF
Sets latency from read CMD send to data receive
from/to controller.
[15:12] -
-
-
Reserved. Read undefined. Write should be
zero.
[11:08] APREBIT
0x0
0x0 - 0xF
Location of the auto pre-charge bit in the DRAM
address.
[07:00] -
-
-
Reserved. Read undefined. Write should be
zero.
Bit
Name
[31:28] -
4.2.34
MEM35_CTL register
Table 39.
Reset
Range
value
Description
[31:28] -
-
-
Reserved. Read undefined. Write should be zero.
[27:24] MAX_ROW
0xF
0x0 - 0xF
Maximum width of memory addresses bus.
READ-ONLY
[23:20] -
-
-
Reserved. Read undefined. Write should be zero.
[19:16] MAX_COL
0xE
0x0 - 0xE
Maximum width of column address in DRAMs.
READ-ONLY
[15:12] -
-
-
Reserved. Read undefined. Write should be zero.
[11:08] INITAREF
0x0
0x0 - 0xF
Number of auto-refresh CMDs to execute during
DRAM initialization.
[07:06] -
-
-
Reserved. Read undefined. Write should be zero.
0x00
0x0 - 0x3F
Initial value of individual CMD aging counters for
CMD aging.
Bit
[05:00]
62/584
MEM35_CTL register bit assignments
Name
COMMAND_AGE
_COUNT
Doc ID 022642 Rev 3
RM0321
4.2.35
Multiport DDR controller (MPMC)
MEM36_CTL register
Table 40.
Bit
MEM36_CTL register bit assignments
Name
[31:28] [27:24]
4.2.36
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be zero.
0x0 - 0xF
Errors/warnings related to the WRR parameters.
READ-ONLY
WRR_PARAM_VA
0x0
LUE_ERR
[23:20] -
-
-
Reserved. Read undefined. Write should be zero.
[19:16] TRP
0x0
0x0 - 0xF
DRAM TRP parameter in cycles.
[15:12] -
-
-
Reserved. Read undefined. Write should be zero.
[11:08] TDAL
0x0
0x0 - 0xF
DRAM TDAL parameter in cycles.
[07:04] -
-
-
Reserved. Read undefined. Write should be zero.
[03:00] Q_FULLNESS
0x0
0x0 - 0xF
Quantity that determines CMD queue full.
MEM37_CTL register
Table 41.
MEM37_CTL register bit assignments
Reset
Range
value
Description
[31:29] -
-
-
Reserved. Read undefined. Write should be
zero.
[28:24] TFAW
0x0
0x0 - 0x1F DRAM TFAW parameter in cycles.
[23:21] -
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0x1F
OCD pull-up adjust setting for DRAMs for chip
select 0.
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0x1F
OCD pull-down adjust setting for DRAMs for chip
select 0.
Bit
[20:16]
Name
OCD_ADJUST_PUP
0x0
_CS0
[15:13] [12:08]
-
OCD_ADJUST_PDN
0x0
_CS0
[07:06] -
-
-
Reserved. Read undefined. Write should be
zero.
[05:00] INT_ACK
0x0
0x0 - 0x3F
Clear mask of the INT_STATUS parameter.
WRITE-ONLY
Doc ID 022642 Rev 3
63/584
Multiport DDR controller (MPMC)
4.2.37
MEM38_CTL register
Table 42.
4.2.38
MEM38_CTL register bit assignments
Bit
Name
Reset
Range
value
Description
[31]
-
-
-
Reserved. Read undefined. Write should be zero.
[30:24] INT_STATUS
0x0
0x0 - 0x7F
Status of interrupt features in the controller.
READ-ONLY
[23]
-
-
Reserved. Read undefined. Write should be zero.
[22:16] INT_MASK
0x0
0x0 - 0x7F
Mask for controller_int signals from the
INT_STATUS parameter.
[15:13] -
-
-
Reserved. Read undefined. Write should be zero.
[12:08] TRC
0x0
0x0 - 0x1F DRAM TRC parameter in cycles.
[07:05] -
-
-
[04:00] TMRD
0x0
0x0 - 0x1F DRAM TMRD parameter in cycles.
-
Bit
MEM39_CTL register bit assignments
Name
[31:15] -
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be zero.
[14:08]
DLL_DQS_DELA
Y1
0x0
0x0 - 0x7F
Fraction of a cycle to delay the dqs signal from the
DRAMs for dll_rd_dqs_slice 1 during READs.
[07]
-
-
-
Reserved. Read undefined. Write should be zero.
[06:00]
DLL_DQS_DELA
0
0x0
0x0 - 0x7F
Fraction of a cycle to delay the dqs signal from the
DRAMs for dll_rd_dqs_slice 0 during READs.
MEM40_CTL register
Table 44.
MEM40_CTL register bit assignments
Bit
Name
Reset
Range
value
Description
[31]
-
-
-
Reserved. Read undefined. Write should be zero.
[30:24]
DQS_OUT_
SHIFT
0x0
0x0 - 0x7F
Fraction of a cycle to delay the write dqs signal to the
DRAMs during WRITEs.
-
-
Reserved. Read undefined. Write should be zero.
[23:00] -
64/584
Reserved. Read undefined. Write should be zero.
MEM39_CTL register
Table 43.
4.2.39
RM0321
Doc ID 022642 Rev 3
RM0321
4.2.40
Multiport DDR controller (MPMC)
MEM41_CTL register
Table 45.
Reset
Range
value
Description
[31:23] -
-
-
Reserved. Read undefined. Write should be zero.
[22:16] WR_DQS_SHIFT
0x0
0x0 - 0x7F
Fraction of a cycle to delay the ddr_close signal in
the controller.
[15:00] -
-
-
Reserved. Read undefined. Write should be zero.
Bit
4.2.41
Name
MEM42_CTL register
Table 46.
MEM42_CTL register bit assignments
Reset
Range
value
Description
[31:24] TRFC
0x0
0x0 - 0xFF
DRAM TRFC parameter in cycles.
[23:16] TRCD_INT
0x0
0x0 - 0xFF
DRAM TRCD parameter in cycles.
[15:08] TRAS_MIN
0x0
0x0 - 0xFF
DRAM TRAS_MIN parameter in cycles.
[07:00] -
-
-
Reserved. Read undefined. Write should be zero.
Bit
4.2.42
MEM41_CTL register bit assignments
Name
MEM43_CTL register
Table 47.
Bit
Name
[31:26] [25:16]
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x000 - 0x3FF
Counter value to trigger priority relax on port
1.
-
Reserved. Read undefined. Write should be
zero.
0x000 - 0x3FF
Counter value to trigger priority relax on port
0.
AHB1_PRIORITY
0x000
_RELAX
[15:10] [09:00]
MEM43_CTL register bit assignments
-
AHB0_PRIORITY
0x000
_RELAX
Doc ID 022642 Rev 3
65/584
Multiport DDR controller (MPMC)
4.2.43
RM0321
MEM44_CTL register
Table 48.
Bit
MEM44_CTL register bit assignments
Name
[31:26] [25:16]
4.2.44
-
-
Reserved. Read undefined. Write should
be zero.
0x000 - 0x3FF
Counter value to trigger priority relax on
port 3.
-
Reserved. Read undefined. Write should
be zero.
0x000 - 0x3FF
Counter value to trigger priority relax on
port 2.
-
MEM45_CTL register
Bit
MEM45_CTL register bit assignments
Name
[31:10] [09:00]
AHB4_PRIORITY
_RELAX
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x000
0x000 - 0x3FF
Counter value to trigger priority relax on port
4.
MEM46_CTL register
Table 50.
Bit
[25:16]
MEM46_CTL register bit assignments
Name
[31:26] -
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x000 - 0x3FF
Length of CMD that caused an Out-of-Range
interrupt. READ-ONLY
-
Reserved. Read undefined. Write should be
zero.
OUT_OF_RANGE
0x000
_LENGTH
[15:00] -
66/584
Description
AHB2_PRIORITY_
0x000
RELAX
Table 49.
4.2.45
Range
AHB3_PRIORITY_
0x000
RELAX
[15:10] [09:00]
Reset
value
-
Doc ID 022642 Rev 3
RM0321
4.2.46
Multiport DDR controller (MPMC)
MEM47_CTL register
Table 51.
MEM47_CTL register bit assignments
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] AHB0_WRCNT 0x000
0x000 - 0x7FF
Number of bytes for an INCR WRITE CMD on
port 0.
[15:11] -
-
-
Reserved. Read undefined. Write should be
zero.
[10:00] AHB0_RDCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR READ CMD on
port 0.
Bit
Name
[31:26] -
4.2.47
MEM48_CTL register
Table 52.
4.2.48
MEM48_CTL register bit assignments
Bit
Name
Reset
value
Range
Description
[31:26]
-
-
-
Reserved. Read undefined. Write should be
zero.
[25:16]
AHB1_WRCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR WRITE CMD
on port 1.
[15:11]
-
-
-
Reserved. Read undefined. Write should be
zero.
[10:00]
AHB1_RDCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR READ CMD on
port 1.
MEM49_CTL register
Table 53.
MEM49_CTL register bit assignments
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] AHB2_WRCNT 0x000
0x000 - 0x7FF
Number of bytes for an INCR WRITE CMD on
port 2.
[15:11] -
-
-
Reserved. Read undefined. Write should be
zero.
[10:00] AHB2_RDCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR READ CMD on
port 2.
Bit
Name
[31:26] -
Doc ID 022642 Rev 3
67/584
Multiport DDR controller (MPMC)
4.2.49
MEM50_CTL register
Table 54.
Range
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] AHB3_WRCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR WRITE CMD on
port 3.
[15:11] -
-
-
Reserved. Read undefined. Write should be
zero.
[10:00] AHB3_RDCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR READ CMD on
port 3.
Name
MEM51_CTL register
Table 55.
Range
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] AHB4_WRCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR WRITE CMD on
port 4.
[15:11] -
-
-
Reserved. Read undefined. Write should be
zero.
[10:00] AHB4_RDCNT
0x000
0x000 - 0x7FF
Number of bytes for an INCR READ CMD on
port 4.
Name
MEM52_CTL/MEM53_CTL register
Table 56.
Bit
MEM52_CTL/MEM53_CTL register bit assignments
Name
[31:00] -
68/584
MEM51_CTL register bit assignments
Reset
value
Bit
4.2.51
MEM50_CTL register bit assignments
Reset
value
Bit
4.2.50
RM0321
Reset
value
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
Doc ID 022642 Rev 3
RM0321
4.2.52
Multiport DDR controller (MPMC)
MEM54_CTL register
Table 57.
Reset
value
Range
Description
[31:14] -
-
-
Reserved. Read undefined. Write should be
zero.
[13:00] TREF
0x0000
0x0000 - 0x3FFF DRAM TREF parameter in cycles.
Bit
4.2.53
MEM54_CTL register bit assignments
Name
MEM55_CTL register
Table 58.
Bit
MEM55_CTL register bit assignments
Name
[31:15] [14:00]
4.2.54
Range
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0000 0x7FFF
EMRS3 data.
EMRS3_DA
0x0000
TA
MEM56_CTL register
Table 59.
MEM56_CTL register bit assignments
Reset
value
Range
Description
[31:16] TRAS_MAX
0x0000
0x0000 - 0xFFFF
DRAM TRAS_MAX parameter in cycles.
[15:00] TDLL
0x0000
0x0000 - 0xFFFF
DRAM TDLL parameter in cycles.
Bit
4.2.55
Reset
value
Name
MEM57_CTL register
Table 60.
MEM57_CTL register bit assignments
Reset
value
Range
Description
[31:16] TXSR
0x0000
0x0000 - 0xFFFF
DRAM TXSR parameter in cycles.
[15:00] TXSNR
0x0000
0x0000 - 0xFFFF
DRAM TXSNR parameter in cycles.
Bit
Name
Doc ID 022642 Rev 3
69/584
Multiport DDR controller (MPMC)
4.2.56
MEM58_CTL register
Table 61.
Range
Description
[31:16] -
-
-
Reserved. Read undefined. Write should be
zero.
[15:00] VERSION
0x2041
-
Controller version number. READ-ONLY
Name
MEM59_CTL register
Table 62.
MEM59_CTL register bit assignments
Reset
value
Range
Description
[31:24] -
-
-
Reserved. Read undefined. Write should be
zero.
[23:00] TINIT
0x000000
0x0 - 0xFFFFFF
DRAM TINIT parameter in cycles.
Bit
4.2.58
MEM58_CTL register bit assignments
Reset
value
Bit
4.2.57
Name
MEM60_CTL register
Table 63.
Bit
MEM60_CTL register bit assignments
Name
[31:00] out_rng_addr
4.2.59
Reset value
0x0000.0000
Range
Description
0x0 - 0xFFFF.FFFF
Lower portion of address of
CMD that caused an Out-ofRange interrupt.
READ-ONLY
MEM61_CTL register
Table 64.
MEM61_CTL register bit assignments
Reset
value
Range
Description
[31:02] -
-
-
Reserved. Read undefined. Write should
be zero.
[01:00] out_rng_addr
0x0
0x0 - 0x3
Upper portion of address of CMD that
caused an Out-of-Range interrupt.
READ-ONLY
Bit
70/584
RM0321
Name
Doc ID 022642 Rev 3
RM0321
4.2.60
Multiport DDR controller (MPMC)
MEM62_CTL/MEM63_CTL/MEM64_CTL register
Table 65.
Bit
MEM62_CTL/MEM63_CTL/MEM64_CTL register bit assignments
Name
[31:00] -
4.2.61
Reset
Range
value
Description
-
Reserved. Read undefined. Write should be zero.
MEM65_CTL register
Table 66.
Bit
MEM65_CTL register bit assignments
Name
[31:26] -
[25:16]
dll_dqs_dly_byp
s0
[15:00] -
4.2.62
Reset
Range
value
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0
Number of delay elements to include in the dqs
0x1 - 0x3FF signal from the DRAMs for dll_rd_dqs_slice 0
during READs when DLL is being bypassed.
-
-
Reserved. Read undefined. Write should be
zero.
MEM66_CTL register
Table 67.
MEM66_CTL register bit assignments
Reset
Range
value
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] dll_increment
0x0
0x1 - 0x3FF
Number of elements to add to DLL_START_P
OINT when searching for lock.
[15:10] -
-
-
Reserved. Read undefined. Write should be
zero.
[09:00] dll_dqs_dly_byps1
0x0
Number of delay elements to include in the dqs
0x1 - 0x3FF signal from the DRAMs for dll_rd_dqs_slice
1during READs when DLL is being bypassed.
Bit
4.2.63
-
Name
MEM67_CTL register
Table 68.
MEM67_CTL register bit assignments
Reset
Range
value
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be zero.
[25:16] dll_start_point
0x0
0x1 - 0x3FF
Initial delay count when searching for lock in master
DLL.
Bit
Name
Doc ID 022642 Rev 3
71/584
Multiport DDR controller (MPMC)
Table 68.
Description
[15:10] -
-
-
Reserved. Read undefined. Write should be zero.
[09:00] dll_lock
0x0
0x1 - 0x3FF
Number of delay elements in master DLL lock.
READ ONLY
Name
MEM68_CTL register
Table 69.
MEM68_CTL register bit assignments
Reset
Range
value
Description
[31:26] -
-
-
Reserved. Read undefined. Write should be
zero.
[25:16] wr_dqs_shft_byps
0x0
Number of delay elements to include in the
0x1 - 0x3FF ddr_close signal in the controller when the DLL
is being bypassed.
[15:10] -
-
-
[09:00] dqs_out_shft_byps
0x0
Number of delay elements to include in the write
0x1 - 0x3FF dqs signal to the DRAMs during WRITEs when
the DLL is being bypassed.
Bit
4.2.65
MEM67_CTL register bit assignments (continued)
Reset
Range
value
Bit
4.2.64
Name
Bit
MEM[69-97]_CTL register bit assignments
Name
[31:00] -
Reset
Range
value
Description
-
Reserved. Read undefined. Write should be zero.
Bit
MEM[98-99]_CTL register bit assignments
Name
Reset
Range
value
[31:00] user_def_reg(x) 0x0
72/584
-
MEM[98-99]_CTL register
Table 71.
Note:
Reserved. Read undefined. Write should be
zero.
MEM[69-97]_CTL register
Table 70.
4.2.66
RM0321
0x0 - 0xFFFF_FFFF
Description
User defined register.
Only the USER_DEF_REG(0) bit 0 is used in SPEAr320S. All the other bits are reserved.
Doc ID 022642 Rev 3
RM0321
4.2.67
Multiport DDR controller (MPMC)
MEM100_CTL register
Table 72.
Bit
MEM100_CTL register bit assignments
Name
[31:25] [24]
Description
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0x1
Allow user to interrupt memory initialization to
enter self refresh mode.
enable_quick_sref
0x0
resh
[23:17] -
-
-
Reserved. Read undefined. Write should be
zero.
[16]
0x0
0x0 - 0x1
Sets DQ/DQS output enable behavior when
controller is idle.
-
-
Reserved. Read undefined. Write should be
zero.
0x0
0x0 - 0x1
Set byte ordering as little endian or big endian.
[07:01] -
-
-
Reserved. Read undefined. Write should be
zero.
[00]
0x0
0x0 - 0x1
Enable command aging in the command queue.
drive_dq_dqs
[15:09] [08]
4.2.68
Reset
Range
value
big_endian_enabl
e
active_aging
MEM101_CTL register
Table 73.
MEM101_CTL register bit assignments
Reset
Range
value
Description
[31:25] -
-
-
Reserved. Read undefined. Write should be
zero.
[24]
0x0
0x0 - 0x1
Enable command swapping logic in execution
unit.
[23:17] -
-
-
Reserved. Read undefined. Write should be
zero.
[16]
0x0
0x0 - 0x1
Enable insertion of addition turn around clock
for back to back READs to different css.
[15:09] -
-
-
Reserved. Read undefined. Write should be
zero.
[08]
0x0
0x0 - 0x1
Allow powerup via self-refresh instead of full
memory initialization.
[07:01] -
-
-
Reserved. Read undefined. Write should be
zero.
[00]
0x0
0x0 - 0x1
Enable low power mode in controller.
Bit
Name
swap_enable
rd2rd_turn
pwrup_srefresh_exit
en_lowpower_mode
Doc ID 022642 Rev 3
73/584
Multiport DDR controller (MPMC)
4.2.69
RM0321
MEM102_CTL register
Table 74.
Bit
MEM102_CTL register bit assignments
Name
[31:29] [28:24]
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0x1F
Enables automatic entry into the low power
mode on idle.
-
-
Reserved. Read undefined. Write should be
zero.
[18:16] cke_delay
0x0
0x0 - 0x7
Additional cycles to delay CKE for status
reporting.
[15:10] -
-
-
Reserved. Read undefined. Write should be
zero.
0x0 - 0x3
Enable refreshes during power down.
lowpower_refresh_en
0x0
able
[07:01] -
-
-
Reserved. Read undefined. Write should be
zero.
[00]
0x0
0x0 - 0x1
Issue self refresh CMDs to the DRAMs every
TREF cycles.
tref_enable
MEM103_CTL register
MEM103_CTL register bit assignments
Reset
Range
value
Description
[31:23] -
-
-
Reserved. Read undefined. Write should be
zero.
[22:08] emrs1_data
0x0
0x0 - 0x7FFF
EMRS1 data.
[07:05] -
-
-
Reserved. Read undefined. Write should be
zero.
[04:00] lowpower_control
0x0
0x0 - 0x1F
Controls entry into the low power modes.
Bit
Name
MEM104_CTL register
Table 76.
MEM104_CTL register bit assignments
Reset
value
Range
Description
[31:15] -
-
-
Reserved. Read undefined. Write
should be zero.
[30;16] emrs2_data1
0x0000
0x0000 - 0x7FFF
EMRS2 data for chips select 1.
Bit
74/584
-
lowpower_auto_enab
0x0
le
Table 75.
4.2.71
Description
[23:19] -
[09:08]
4.2.70
Reset
Range
value
Name
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 76.
MEM104_CTL register bit assignments (continued)
Bit
Name
Reset
value
Range
Description
[15]
-
-
-
Reserved. Read undefined. Write
should be zero.
0x0000
0x0000 - 0x7FFF
EMRS2 data for chip select 0.
[14:00] emrs2_data0
4.2.72
MEM105_CTL register
Table 77.
MEM105_CTL register bit assignments
Reset
Range
value
Description
0x0
0x0 - 0xFFFF
Counts idle cycles to self refresh with memory
and controller clk gating.
[15:00] lowpower_ext_cnt 0x0
0x0 - 0xFFFF
Counts idle cycles to self refresh with memory
clock gating.
Bit
Name
[31:16] lowpower_int_cnt
4.2.73
MEM106_CTL register
Table 78.
Reset
Range
value
Description
[31:16] lowpoxer_rfsh_hold
0x0
0x0 - 0xFFFF
Re-Sync counter for DLL in Clock Gate
Mode.
[15:00] lowpower_pwdwn_cnt
0x0
0x0 - 0xFFFF Counts idle cycles to memory powerdown.
Bit
4.2.74
Name
MEM107_CTL register
Table 79.
MEM107_CTL register bit assignments
Reset
Range
value
Description
[31:16] tcpd
0x0
0x0 - 0xFFFF
DRAM TCPD parameter in cycles.
[15:00] lowpower_srfsh_cnt
0x0
0x0 - 0xFFFF
Counts idle cycles to memory self refresh.
Bit
4.2.75
MEM106_CTL register bit assignments
Name
MEM108_CTL register
Table 80.
MEM108_CTL register bit assignments
Reset
Range
value
Description
[31:16] Reserved
-
-
Reserved. Read undefined. Write should be zero.
[15:00] TPDEX
0x0
0x0 - 0xFFFF
DRAM TPDEX parameter in cycles.
Bit
Name
Doc ID 022642 Rev 3
75/584
Multiport DDR controller (MPMC)
RM0321
4.3
Summary of memory controller parameters
Note:
The table below gives a description of the parameters referred to throughout this chapter. To
fully understand the concepts related to each parameter, please refer to the relevant
sections of the document.
Table 81.
Memory controller parameters
Parameter
Description
AGING[0]
Enables aging of commands in the command queue when using the
placement logic to fill the command queue.
The total number of cycles required to decrement the priority value on a
command by one is the product of the values in the age_count and
command_age_count parameters.
1'b0 - Disabled
1'b1 - Enabled
addr_cmp_en [0]
Enables address collision/data coherency detection as a condition
when using the placement logic to fill the command queue.
1'b0 - Disabled
1'b1 - Enabled
addr_pins [2:0]
Defines the difference between the maximum number of address pins
configured (15) and the actual number of pins being used. The user
address is automatically shifted so that the user address space is
mapped contiguously into the memory map based on the value of this
parameter.
age_count [5:0]
Holds the initial value of the master aging-rate counter. When using the
placement logic to fill the command queue, the command aging
counters will be decremented one each time the master aging-rate
counter counts down age_count cycles.
ahbX_fifo_type_reg [1:0]
Sets the correlation of the clock domains between AHB port X and the
Memory Controller core clock.
2'b00 - Asynchronous
2'b01 - 2:1 Reserved
2'b10 - 1:2 Port: Core Pseudo-Synchronous
2'b11 - Synchronous
ahbX_port_ordering [2:0]
Used in weighted round-robin arbitration to modify the order than the
ports are scanned when multiple commands are at the same priority
level and have the same relative priorities.
ahbX_priority_relax [9:0]
Holds the counter value for AHB port X at which the priority relax
condition is triggered in weighted round robin arbitration.
ahbX_priorityY_relative_pri Holds the relative priority of AHB port X for priority Y commands in
ority [3:0]
weighted round robin arbitration.
ahbX_r_priority [2:0]
76/584
Sets the priority of READ commands from AHB port X. A value of 0 is
the highest priority.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
ahbX_rdcnt [10:0]
Holds the number of bytes to be responded to AHB port X after an
INCR READ AHB command. The AHB logic will subdivide an INCR
request into Memory Controller core commands of the size of this
parameter. The logic will continue requesting bursts of this size as soon
as the previous request has been received by the AHB port. If the INCR
command is terminated on an unnatural boundary, the logic will discard
the unnecessary words.
The value defined in this parameter should be a multiple of the number
of bytes in the AHB port width. Clearing this parameter will cause the
port to issue commands of 0 length to the Memory Controller core,
which the core interprets as the pre-configured value of 1024 bytes.
ahbX_w_priority [2:0]
Sets the priority of WRITE commands from AHB port X. A value of 0 is
the highest priority.
ahbX_wrcnt [10:0]
Holds the number of bytes to send to the Memory Controller core from
AHB port X for an INCR WRITE AHB command. The AHB logic will
subdivide an INCR request into Memory Controller core commands of
the size of this parameter. The logic will continue sending bursts of this
size as the previous request has been transmitted by the AHB port. If
the INCR command is terminated on an unnatural boundary, the logic
will discard the unnecessary words.
The value defined in this parameter should be a multiple of the number
of bytes in the AHB port width. Clearing this parameter will cause the
port to issue commands of 0 length to the Memory Controller core,
which the core interprets as the pre-configured value of 1024 bytes.
ap [0]
Enables auto pre-charge mode for DRAM devices.(1)
'b0 - Auto pre-charge mode disabled. Memory banks will stay open until
another request requires this bank, the maximum open time (tras_max)
has elapsed, or a refresh command closes all the banks.
'b1 - Auto pre-charge mode enabled. All READ and WRITE
transactions must be terminated by an auto pre-charge command.
If a transaction consists of multiple READ or write bursts, only the last
command is issued with an auto pre-charge.
aprebit [3:0]
Defines the location of the auto pre-charge bit in the DRAM address in
decimal encoding.(1)
arefresh [0]
Begins an automatic refresh to the DRAM devices based on the setting
of the auto_refresh_mode parameter. If there are any open banks when
this parameter is set, the Memory Controller will automatically close
these banks before issuing the auto-refresh command. This parameter
will always read back 'b0.
1'b0 - No action
1'b1 - Issue refresh to the DRAM devices
Doc ID 022642 Rev 3
77/584
Multiport DDR controller (MPMC)
Table 81.
78/584
RM0321
Memory controller parameters (continued)
Parameter
Description
auto_refresh_mode [0]
Sets the mode to be performed as the automatic refresh will occur. If
auto_refresh_mode is set and a refresh is required to memory, the
Memory Controller will either delay this refresh until the end of the
current transaction has been reached (if the transaction is fully
contained inside a single page), or until the current transaction hits the
end of the current page.
1'b0 - Issue refresh on the next DRAM burst boundary, even if the
current command is not complete.
1'b1 - Issue refresh on the next command boundary.
bank_split_en [0]
Enables bank splitting as a condition when using the placement logic to
fill the command queue.
1'b0 - Disabled
1'b1 - Enabled
big_endian_en [0]
Selects the byte ordering for Memory Controllers with programmable
endian setting.
1'b0 - Little Endian
1'b1 - Big Endian
caslat [2:0]
Sets the CAS latency encoding that the memory uses. The binary value
of this parameter is dependent on the memory device, since the same
caslat value may have different meanings to different memories. This
will be programmed into the DRAM devices at initialization. The CAS
encoding will be specified in the DRAM spec sheet, and should
correspond to the caslat_lin parameter.
caslat_lin [3:0]
Sets the CAS latency linear value as half-cycles expressed increments
number.
This sets an internal adjustment for the delay since the READ
command is sent from the Memory Controller until data will be received
back. The timing window inside which the data is captured is a fixed
length. The caslat_lin parameter adjusts the start of this data capture
window.
Not all linear values are supported by every memory devices: please
refer to the specification for the memory devices being actually used.
4'b0000 - 4'b0001 - Reserved
4'b0010 -1 cycle
4'b0011 - 1.5 cycles
4'b0100 - 2 cycles
4'b0101 - 2.5 cycles
4'b0110 - 3 cycles
4'b0111 - 3.5 cycles
4'b1000 - 4 cycles
4'b1001 - 4.5 cycles
4'b1010 - 5 cycles
4'b1011 - 5.5 cycles
4'b1100 - 6 cycles
4'b1101 - 6.5 cycles
4'b1110 - 7 cycles
4'b1111 - 7.5 cycles
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
caslat_lin_gate [3:0]
Adjusts the data capture gate open time by half-cycle expressed
increments number.
This parameter is set differently than caslat_lin one whether there are
fixed offsets in the flight path between the memories and the Memory
Controller for clock gating. When caslat_lin_gate is a larger value than
caslat_lin, the data capture window will become shorter. A
caslat_lin_gate value smaller than caslat_lin may have no effect on the
data capture window, depending on the fixed offsets in the device and
the board.
4'b0000 - 4’b0001 - Reserved
4'b0010 - 1 cycle
4'b0011 - 1.5 cycles
4'b0100 - 2 cycles
4'b0101 - 2.5 cycles
4'b0110 - 3 cycles
4'b0111 - 3.5 cycles
4'b1000 - 4 cycles
4'b1001 - 4.5 cycles
4'b1010 - 5 cycles
4'b1011 - 5.5 cycles
4'b1100 - 6 cycles
4'b1101 - 6.5 cycles
4'b1110 - 7 cycles
4'b1111 - 7.5 cycles
cke_delay [2:0]
Sets the number of additional cycles of delay to include in the CKE
signal cke_status for status reporting. The default delay is 0 cycles.
column_size [2:0]
Shows the difference between the maximum column width available
(14) and the actual number of column pins being used. The user
address is automatically shifted so that its space is mapped
contiguously into the memory map based on the value of this
parameter.
Holds the initial value of the command aging counters associated with
each command in the command queue. When using the placement
command_age_count [5:0] logic to fill the command queue, the command aging counters
decrement one each time the master aging-rate counter counts down
age_count cycles.
concurrentap [0]
Enables concurrent auto pre-charge. Some DRAM devices do not allow
one bank to be auto pre-charged while another bank is reading or
writing. The JEDEC standard allows concurrent auto pre-charge. Set
this parameter for the DRAM device being used.
1'b0 - Concurrent auto pre-charge disabled.
1'b1 - Concurrent auto pre-charge enabled.
Doc ID 022642 Rev 3
79/584
Multiport DDR controller (MPMC)
Table 81.
80/584
RM0321
Memory controller parameters (continued)
Parameter
Description
cs_map [1:0]
Sets the mask that determines which chip select pins are active, with
each bit representing a different chip select. The user address chip
select field will be mapped into the active chip selects indicated by this
parameter in ascending order from lowest to highest. This allows the
Memory Controller to map the entire contiguous user address into any
group of chip selects. Bit 0 of this parameter corresponds to chip select
[0], bit 1 corresponds to chip select [1], etc.
The number of chip selects, i.e. the number of bits set to 1 in this
parameter, must be a power of 2.
ddrii_sdram_mode [0]
Selects between the DDR1(Mobile) and DDR2 modes of operation.(2)
1'b0 - DDR1(mobile) mode
1'b1 - DDR2 mode
dll_bypass_mode [0]
Defines the behavior of the DLL bypass logic and establishes which set
of delay parameters will be used.
When dll_bypass_mode is set to 'b0, the values programmed in the
dll_dqs_delay_X, dqs_out_shift, and wr_dqs_shift are used. These
parameters add fractional increments of the clock to the specified lines.
When dll_bypass_mode is set to 'b1, the values programmed into the
dll_dqs_delay_bypass_X, dqs_out_shift_bypass, and
wr_dqs_shift_bypass are used. These parameters specify the actual
number of delay elements added to each of the lines. If the total delay
time programmed into the delay parameters exceeds the number of
delay elements in the delay chain, the delay will be set to the maximum
number of delay elements in the delay chain.
1'b0 - Normal operational mode.
1'b1 - Bypass the DLL master delay line.
dll_dqs_delay_X [6:0]
Sets the delay for the read_dqs signal from the DDR SDRAM devices
for dll_rd_dqs_slice X. This delay is used center the edges of the
read_dqs signal so that the READ data will be captured in the middle of
the valid window in the I/O logic.
Each increment of this parameter adds a delay of 1/128 of the system
clock. The same delay will be added to the read_dqs signal for each
byte of the READ data. (3)
dll_dqs_delay_bypass_X
[9:0]
Sets the delay for the read_dqs signal from the DDR SDRAM devices
for dll_rd_dqs_slice X for READs when the DLL is being bypassed. This
delay is used to center the edges of the read_dqs signal so that the
READ data will be captured in the middle of the valid window in the I/O
logic.
The value programmed into this parameter sets the actual number of
delay elements in the read_dqs line. The same delay will be added to
the read_dqs signal for each byte of the READ data. If the total delay
time programmed exceeds the number of delay elements in the delay
chain, the delay will be set internally to the maximum number of delay
elements available.(4)
dll_increment [9:0]
Defines the number of delay elements to recursively increment the
dll_start_point parameter with when searching for lock.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
dll_lock [9:0]
Shows the actual number of delay elements used to capture one full
clock cycle. This parameter is automatically updated every time a
refresh operation is performed. This parameter is read-only.
dll_start_point [9:0]
Sets the number of delay elements to place in the master delay line to
start searching for lock in master DLL.
dlllockreg [0]
DLL lock/unlock. This parameter is read-only.
dqs_n_en [0]
Enables differential data strobe signals from the DRAM.
1'b0 - Single-ended DQS signal from the DRAM.
1'b1 - Differential DQS signal from the DRAM.
dqs_out_shift [6:0]
Sets the delay for the clk_dqs_out signal of the ddr_close to ensure
correct data capture in the I/O logic. Each increment of this parameter
adds a delay of 1/128 of the system clock. (5)
Sets the delay for the clk_dqs_out signal of the ddr_close when the DLL
is being bypassed. This is used to ensure correct data capture in the
I/O logic.
dqs_out_shift_bypass [9:0] The value programmed into this parameter sets the actual number of
delay elements in the clk_dqs_out line. If the total delay time
programmed exceeds the number of delay elements in the delay chain,
the delay will be set internally to the maximum number of delay
elements available. (6)
drive_dq_dqs [0]
Selects whether the DQ output enables and DQS output enables will be
driven active when the Memory Controller is in idle state.
1'b0 - Leave the output enables de-asserted when idle.
1'b1 - Drive the output enables active when idle.
eight_bank_mode [0].
Reports that the memory devices have eight banks.
1'b0 - Memory devices have 4 banks.
1'b1 - Memory devices have 8 banks
emrs1_data [14:0]
Holds the EMRS1 data written during DDRII initialization. The contents
of this parameter will be programmed into the DRAM at initialization or
when the write_modereg parameter is set to 1'b1. Consult the DRAM
specification for the correct settings of this parameter.
emrs2_data_X [14:0]
Holds the EMRS2 data written during DDRII initialization for chip select
X. The contents of this parameter will be programmed into the DRAM at
initialization or when the write_modereg parameter is set to 1'b1.
Consult the DRAM specification for the correct settings for this
parameter.
emrs3_data [14:0]
Holds the EMRS3 data written during DDRII initialization. The contents
of this parameter will be programmed into the DRAM at initialization or
when the write_modereg parameter is set to 1'b1. Consult the DRAM
specification for the correct settings for this parameter.
en_lowpower_mode [0]
Enables the mobile mode of the Memory Controller. (7)
1'b0 - Disabled
1'b1 - Enabled
Doc ID 022642 Rev 3
81/584
Multiport DDR controller (MPMC)
Table 81.
82/584
RM0321
Memory controller parameters (continued)
Parameter
Description
enable_quick_srefresh [0]
When this bit is set, the memory initialization sequence will be
interrupted and self-refresh mode will be entered.
1'b0 - Continue memory initialization.
1'b1 - Interrupts memory initialization and enter self-refresh mode.
fast_write [0]
Controls the mode and timing the WRITE commands are issued toward
the DRAM devices.
1'b0 - The Memory Controller will issue a WRITE command to the
DRAM devices as it has received enough data for one DRAM burst. In
this mode, WRITE data can be sent in any cycle relative to the WRITE
command. This mode also allows multi-word WRITE command data to
arrive in non-sequential cycles.
1'b1 - The Memory Controller will issue a WRITE command to the
DRAM devices after the first word of the WRITE data is received by the
Memory Controller. The first word can be sent at any time relative to the
WRITE command. In this mode, multi-word WRITE command data
must be available to the Memory Controller in sequential cycles.
initaref [3:0]
Defines the number of auto-refresh commands needed by the DRAM
devices to satisfy the initialization sequence.
int_ack [5:0]
Sets the clearing of the int_status parameter.
If any of the int_ack bits are set to 'b1 the corresponding bit in the
int_status parameter will be set to 'b0. Any int_ack bits set to 1'b0 does
not affect the corresponding bit in the int_status parameter. This
parameter will always read back as “0”.
int_mask [6:0]
Active-high mask bits that control the value of the Memory controller_int
signal on the Memory Controller interface. This mask is inverted and
then logically AND'ed with the outputs of the int_status parameter.
int_status [6:0]
Reports the status of all possible interrupts generated by the Memory
Controller. The MSB is the result of a logical OR of all the lower bits.
This parameter is read-only.
The int_status bits correspond to these interrupts:
Bit 0 - A single access outside the defined PHYSICAL memory space
detected.
Bit 1 - Multiple accesses outside the defined PHYSICAL memory space
detected.
Bit 2 - DRAM initialization complete.
Bit 3 - Address cross page boundary detected.
Bit 4 - Both DDR2 and Mobile modes have been enabled.
Bit 5 - DLL unlock condition detected.
Bit 6 - Logical OR of all other bits.
intrptapburst [0]
Controls whether an interruption of an auto pre-charge command, by
another command for a different bank, is allowed.
If enabled, the current operation will be interrupted.
However, the bank will be pre-charged as if the current operation were
allowed to continue.
1'b0 - Interrupt Disable.
1'b1 - Interrupt Enable.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
intrptreada [0]
Controls whether an interruption of a combined READ with auto precharge command, by another READ command toward the same bank
before the current READ command has been completed, is allowed.
1'b0 - Interrupt Disable.
1'b1 - Interrupt Enable.
intrptwritea [0]
Controls whether an interruption of a combined WRITE with auto precharge command, by another READ or WRITE command toward the
same bank before the current WRITE command has been completed,
is allowed.
1'b0 - Interrupt Disable.
1'b1 - Interrupt Enable.
Lowpower_auto_enable
[4:0]
Sets automatic entry into the low power modes for the Memory
Controller.
Bit 0 - Controls memory self-refresh with memory and controller clock
gating mode (Mode 5).
Bit 1 - Controls memory self-refresh with memory clock gating mode
(Mode 4).
Bit 2 - Controls memory self-refresh mode (Mode 3).
Bit 3 - Controls memory power-down with memory clock gating mode
(Mode 2).
Bit 4 - Controls memory power-down mode (Mode 1).
For every bit:
1'b0 - Automatic entry into this mode is disabled. The user may enter
this mode manually by setting the associated lowpower_control bit.
1this parameter is set to ''b1 - Automatic entry into this mode is
enabled. The mode will be entered automatically when the proper
counters expire, and only if the associated lowpower_control bit is set.
lowpower_control [4:0]
Controls the individual low power modes of the device.
Bit 0 - Controls memory self-refresh with memory and controller clock
gating mode (Mode 5).
Bit 1 - Controls memory self-refresh with memory clock gating mode
(Mode 4).
Bit 2 - Controls memory self-refresh mode (Mode 3).
Bit 3 - Controls memory power-down with memory clock gating mode
(Mode 2).
Bit 4 - Controls memory power-down mode (Mode 1).
For every bit:
1'b0 - Disabled.
1'b1 - Enabled.
lowpower_external_cnt
[15:0]
Counts the number of idle cycles before memory self-refresh with
memory clock gating low power mode.
lowpower_internal_cnt
[15:0]
Counts the number of idle cycles before memory self-refresh with
memory and controller clock gating low power mode.
lowpower_power_down_cn Counts the number of idle cycles before either memory power-down or
t [15:0]
power-down with memory clock gating low power mode.
Doc ID 022642 Rev 3
83/584
Multiport DDR controller (MPMC)
Table 81.
RM0321
Memory controller parameters (continued)
Parameter
Description
lowpower_refresh_enable
[1:0]
Sets whether refreshes will occur while the Memory Controller is in any
of the low power modes.
1'b0 - Refreshes still occur
1'b1 - Refreshes do not occur
lowpoxer_rfsh_hold [15:0]
Sets the number of cycles that the Memory Controller will wait before
attempting to re-lock the DLL when using the controller clock gating
mode low power mode. This counter will ONLY be used in this mode,
the deepest low power mode.
When this counter expires, the DLL will be un-gated for at least 16
cycles during which the DLL will attempt to re-lock. After 16 cycles have
elapsed and the DLL has locked, the DLL controller clock will be gated
again and the counter will reset to this value. If the DLL requires more
than 16 cycles to re-lock, the un-gated time will be longer.
lowpower_self_refresh_cnt Counts the number of cycles to the next memory self-refresh low power
[15:0]
mode.
84/584
max_col_reg [3:0]
Shows the maximum width of column address in the DRAM devices.
This value can be used to set the column_size parameter. This
parameter is read-only.
column_size = max_col_reg - <number of column bits in memory
device>.
max_cs_reg [1:0]
Defines the maximum number of chip selects for the Memory Controller
as the log2 of the number of chip selects.
max_row_reg [3:0]
Shows the maximum width of the memory address bus (number of row
bits) for the Memory Controller. This value can be used to set the
addr_pins parameter. This parameter is read-only.
addr_pins = max_row_reg - <number of row bits in memory device>.
no_cmd_init [0]
Disables DRAM commands until DLL initialization is complete and tdll
has expired.
1'b0 - Issue only REF and PRE commands during DLL initialization of
the DRAM devices.
1'b1 - Do not issue any type of command during DLL initialization of the
DRAM devices.
ocd_adjust_pdn_cs [4:0]
Sets the off-chip driver (OCD) pull-down adjustment settings for the
DRAM devices. The Memory Controller will issue OCD adjust
commands to the DRAM devices during power up.
Bits 3:0 - Number of OCD adjust commands to be issued.
Bit 4 - Increment(1) or decrement(0) OCD settings.
ocd_adjust_pup_cs [4:0]
Sets the off-chip driver (OCD) pull-up adjustment settings for the DRAM
devices. The Memory Controller will issue OCD adjust commands to
the DRAM devices during power up.
Bits 3:0 - Number of OCD adjust commands to be issued.
Bit 4 - Increment(1) or decrement(0) OCD settings.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
odt_add_turn_clk_en [0]
Adds a turn-around clock between back-to-back READs or back-toback WRITEs to different chip selects. The additional clock may be
needed at higher clock frequencies.
The “turn off” and “turn on” time of termination resistors are not
scalable. At higher clock frequencies, it is possible that these times may
overlap, resulting in two active resistors while the DQS line is still active.
This could compromise the signal integrity of the DQS signal. The
additional clock prevents this overlap.
1'b0 - No additional clocking required.
1'b1 - Additional clock added for back-to-back READs or back-to-back
WRITEs that occur to different banks.
odt_rd_map_csX [1:0]
Sets up which (if any) chip(s) will have their ODT termination active
while a READ occurs on chip select X.(8)
i.e. Since that the system consists of 2 chip selects if the
odt_rd_map_cs0 is set to ‘b10, then when CS0 is performing a READ,
CS1 will have active ODT termination.
Bit 0 - If set to ‘b1 CS0 will have active ODT termination when chip
select X us performing a READ.
Bit 1 - If set to ‘b1 CS1 will have active ODT termination when chip
select X is performing a READ.
odt_wr_map_csX [1:0]
Sets up which (if any) chip(s) will have their ODT termination active
while a WRITE occurs on chip select X.(9)
i.e. Since that the system consists of 2 chip selects, if the
odt_wr_map_cs0 is set to ‘b10, then when CS0 is performing a WRITW,
CS1 will have active ODT termination.
Bit 0 = CS0 will have active ODT termination when chip select X is
performing a WRITE.
Bit 1 = CS1 will have active ODT termination when chip select X is
performing a WRITE.
out_of_range_addr [33:0]
Holds the address of the command that has begotten an out-of-range
interrupt request to the memory devices. This parameter is read-only.
out_of_range_length [9:0]
Holds the length of the command that has begotten an out-of-range
interrupt request to the memory devices. This parameter is read-only.
out_of_range_source_id
[2:0]
Holds the Source ID of the command that has begotten an out-of-range
interrupt request to the memory devices. This parameter is read-only.
out_of_range_type [1:0]
Holds the type of command that caused an out-of-range interrupt
request to the memory devices. This parameter is read-only.
placement_en [0]
Enables using the placement logic to fill the command queue.
1‘b0 - Placement logic is disabled. The command queue is a straight
FIFO.
1‘b1 - Placement logic is enabled. The command queue will be filled
according to the placement logic factors.
Doc ID 022642 Rev 3
85/584
Multiport DDR controller (MPMC)
Table 81.
86/584
RM0321
Memory controller parameters (continued)
Parameter
Description
power_down [0]
When this parameter is set to 1'b1, the Memory Controller will complete
processing of the current burst for the current transaction (if any), issue
a pre-charge all command and then disable the clock enable signal to
the DRAM devices. Any subsequent commands in the command queue
will be suspended until this parameter is set to 1'b0.
1'b0 - Enable full power state.
1'b1 - Disable the clock enable and power down the Memory Controller.
priority_en [0]
Controls priority as a condition when using the placement logic to fill the
command queue.
1'b0 - Disabled
1'b1 - Enabled
pwrup_srefresh_exit [0]
Controls controller to exit power-down mode by executing a self-refresh
instead of the full memory initialization.
1'b0 - Disabled
1'b1 - Enabled
q_fullness [3:0]
Defines quantity of data that will be considered full for the command
queue.
rd2rd_turn [0]
Adds an additional clock between back-to-back READ operations to
different chip selects. The extra clock is required for mobile DDR
devices where:
tac_max > (period/2+tac_min)
Without this additional clock, the first READ may drive DQS out at
tac_max and the second READ may drive DQS out at tac_min,
resulting in a contention on the DQS line.
1'b0 - Disabled
1'b1 - Enabled
reduc [0]
Controls the width of the memory datapath. When enabled, the upper
half of the memory buses (DQ, DQS and DM) are unused and relevant
data only exists in the lower half of the buses. This parameter expands
the Memory Controller for use with memory devices of the configured
width or half of the configured width.
1'b0 - Standard operation using full memory bus.
1'b1 - Memory datapath width is half of the maximum size.
reg_dimm_enable [0]
Enables registered DIMM operations to control the address and
command pipeline of the Memory Controller.
1'b0 - Normal operation
1'b1 - Enable registered DIMM operation.
rtt_0 [1:0]
Defines the On-Die termination resistance for all DRAM devices. The
Memory Controller can not be set for different termination values for
each chip select.
2'b00 - Termination Disabled
2'b01 - 75 Ohm
2'b10 - 150 Ohm
2'b11 - Reserved
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
rtt_pad_termination [1:0]
Sets the termination resistance in the Memory Controller pads. The
Memory Controller decodes this information and sets the
param_75_ohm_sel output signal accordingly. The param_75_ohm_sel
signal will be asserted if this parameter is set to 'b01 and de-asserted
otherwise. This parameter also disables the output signal tsel, an
active-high, dynamic signal which is used in the pads to enable
termination on READs. If this parameter is set to 2'b00, the tsel signal
will be held low.
2'b00 = Termination Disabled
2'b01 = 75 Ohm
2'b10 = 150 Ohm
2'b11 = Reserved
rw_same_en [0]
Enables READ/WRITE grouping as a condition when using the
placement logic to fill the command queue.
1'b0 - Disabled
1'b1 - Enabled
srefresh [0]
When this parameter is set to 1'b1, the DRAM device(s) will be placed
in self-refresh mode. For this, the current burst for the current
transaction (if any) will complete, all banks will be closed, the selfrefresh command will be issued to the DRAM, and the clock enable
signal will be de-asserted. The system will remain in self-refresh mode
until this parameter is set to 1'b0. The DRAM devices will return to
normal operating mode after the self-refresh exit time (txsr) of the
device and any DLL initialization time for the DRAM is reached. The
Memory Controller will resume processing of the commands from the
break point.
This parameter will be updated with an assertion of the srefresh_enter
pin, regardless of the behavior on the register interface. To disable selfrefresh again after a srefresh_enter pin assertion, the user will need to
clear the parameter to 1'b0.
1'b0 - Disable self-refresh mode.
1'b1 - Begin self-refresh of the DRAM devices.
start [0]
With this parameter set to 'b0, the Memory Controller will not issue any
command to the DRAM devices or respond to any signal activity except
for reading and writing parameters.
Once this parameter is set to 'b1, the Memory Controller will respond to
inputs from the device. When set, the Memory Controller begins its
initialization routine. When the interrupt bit in the int_status parameter
associated with completed initialization is set, the user may begin to
submit transactions.
1'b0 - Controller is not in active mode.
1'b1 - Begin active mode for the Memory Controller.
swap_en [0]
Enables swapping of the active command for a new higher-priority
command when using the placement logic.
1’b0 - Disabled
1’b1 - Enabled
tcke [2:0]
Defines the minimum CKE pulse width, in cycles.
Doc ID 022642 Rev 3
87/584
Multiport DDR controller (MPMC)
Table 81.
88/584
RM0321
Memory controller parameters (continued)
Parameter
Description
tcpd [15:0]
Defines the clock enable to pre-charge delay time for the DRAM
devices, in cycles.
tdal [3:0]
Defines the auto pre-charge WRITE recovery time when auto precharge is enabled (ap is set), in cycles. This is defined internally as tRP
(pre-charge time)+auto pre-charge WRITE recovery time.
Not all memories use this parameter. If tDAL is defined in the memory
specification, then program this parameter to the specified value. If the
memory does not specify a tDAL time, then this parameter should be
set to tWR+tRP.
If this parameter is set to of 0x0 the Memory Controller will not function
properly when auto pre-charge is enabled.
tdll [15:0]
Defines the DRAM DLL lock time, in cycles.
temrs [2:0]
Defines the DRAM extended mode parameter set time, in cycles.
tfaw [4:0]
Defines the DRAM tFAW parameter, in cycles.
tinit [23:0]
Defines the DRAM initialization time, in cycles.
tmrd [4:0]
Defines the DRAM mode register set command time, in cycles.
tpdex [15:0]
Defines the DRAM power-down exit command period, in cycles.
tras_lockout [0]
Defines the tRAS lockout setting for the DRAM device. tRAS lockout
allows the Memory Controller to execute auto pre-charge commands
before the tras_min parameter has expired.
1’b0 - tRAS lockout not supported by memory device.
1’b1 - tRAS lockout supported by memory device.
tras_max [15:0]
Defines the DRAM maximum row active time, in cycles.
tras_min [7:0]
Defines the DRAM minimum row activate time, in cycles.
trc [4:0]
Defines the DRAM period between active commands for the same
bank, in cycles.
trcd_int [7:0]
Defines the DRAM RAS to CAS delay, in cycles
tref [13:0]
Defines the DRAM cycles between refresh commands.
tref_enable [0]
Enables internal refresh commands. If command refresh mode is
configured, then refresh commands will be issued based on the internal
tref counter and any refresh commands sent through the command
interface.
1'b0 - Internal refresh commands disabled.
1'b1 - Internal refresh commands enabled.
trfc [7:0]
Defines the DRAM refresh command time, in cycles.
trp [3:0]
Defines the DRAM pre-charge command time, in cycles.
trrd [2:0]
Defines the DRAM activate to activate delay for different banks, in
cycles.
trtp [2:0]
Defines the DRAM tRTP (READ to pre-charge time) parameter, in
cycles.
twr_int [2:0]
Defines the DRAM WRITE recovery time, in cycles.
Doc ID 022642 Rev 3
RM0321
Multiport DDR controller (MPMC)
Table 81.
Memory controller parameters (continued)
Parameter
Description
twtr [2:0]
Sets the number of cycles needed to switch from a WRITE to a READ
operation, as requested by the DDR SDRAM specification.
txsnr [15:0]
Defines the DRAM tXSNR parameter, in cycles.
txsr [15:0]
Defines the DRAM self-refresh exit time, in cycles.
user_def_reg_0 [31:0]
Bit[31:1] - Reserved
Bit[0] - Controls READ data retime:
1'b0 = Read data retime in circuit
1'b1 = Read data retime is bypassed
user_def_reg_1 [31:0]
This register is not used in the device and should be considered as
reserved.
version [15:0]
Holds the Memory Controller version number for this controller. This
parameter is read-only For the actual silicon revision (XX,YY) the
controller revision is 0x2041
Controls the weighted round-robin latency option.
weighted_round_robin_late 1'b0 - Counters only count when their port has a command waiting to
ncy _control [0]
be processed.
1'b1 - Counters are always running.
Reports that the port pair is tied together in arbitration decisions during
weighted round-robin arbitration. Bit 0 represents ports 0 and 1, bit 1
weighted_round_robin_wei represents ports 2 and 3, etc. Bit setting is as follows:
ght _sharing [1:0]
1'b0 - The represented ports are treated independently in arbitration.
1'b1- The represented ports are tied together for arbitration.
wr_dqs_shift [6:0]
wr_dqs_shift_bypass [9:0]
Sets the delay for the ddr_close signal to ensure correct data capture in
the I/O logic.
Each increment of this parameter adds a delay of 1/128 of the system
clock. The same delay will be added to the clk_dqs_out signal for each
slice.(10)
Sets the delay for the ddr_close signal when the DLL is being
bypassed. This is used to ensure correct data capture in the I/O logic
The value programmed into this parameter sets the actual number of
delay elements in the ddr_close line. If the total delay time programmed
exceeds the number of delay elements in the delay chain, the delay will
be set internally to the maximum number of delay elements available.
(11)
write_modereg [0]
Supplies the EMRS data for each chip select to allow individual chips to
set masked refreshing. When this parameter is set to 1'b1, the mode
parameter(s) [EMRS register] within the DRAM devices will be written.
Each subsequent write_modereg setting will write the EMRS register of
the next chip select. This parameter will always read back as 1'b0.
The mode registers are automatically written at initialization of the
Memory Controller. There is no need to initiate a mode register WRITE
after setting the start parameter in the Memory Controller unless some
value in these registers needs to be changed after initialization. (12)
Doc ID 022642 Rev 3
89/584
Multiport DDR controller (MPMC)
Table 81.
RM0321
Memory controller parameters (continued)
Parameter
Description
writeinterp [0]
Defines whether the Memory Controller can interrupt a WRITE burst
with a READ command. Some memory devices do not allow this
functionality.
1'b0 - The device does not support READ commands interrupting
WRITE commands.
1'b1 - The device does support READ commands interrupting WRITE
commands.
wrlat [2:0]
Defines the WRITE latency since the WRITE command is issued until
the time the WRITE data is presented to the DRAM devices, in cycles.
wrr_param_value_err [3:0]
Shows the weighted round-robin arbitration errors/warnings. This
parameter is read-only.
Bit 0 - The port ordering parameters do not all contain unique values.
Bit 1 - Any of the relative priority parameters have been programmed
with a zero value.
Bit 2 - The relative priority values for any of the ports paired through the
weighted_round_robin_weight_sharing parameter are not identical.
Bit 3 - The port ordering parameter values for paired ports is not
sequential.
1. For this parameter and the following ones involving pre-charge concepts, please refer to Bank Splitting.
This parameter may not be modified after the start parameter has been asserted.
2. SPEAR™ Memory Controller does not support the MOBILE feature in DDR2 mode. Therefore, setting this
bit in conjunction with the MOBILE mode enable bit (en_lowpower_mode) will cause an interrupt.
3. These parameters must be static during normal operation.
4. These parameters must be static during normal operation. While these parameters default to 0x0, the
minimum valid value is 0x1. The user should program these parameters to a non-zero value during
initialization
5. This parameter must be static during normal operation.
6. This parameter must be static during normal operation. While this parameter defaults to 0x0, the minimum
valid value is 0x1. The user should program this parameter to a non-zero value during initialization.
7. SPEAR™ Memory Controller does not support the MOBILE feature in DDR2 mode. Therefore, setting this
bit in conjunction with the DDR2 mode enable bit (ddrii_sdram_mode) will cause an interrupt.
8. Only one chip select (and therefore 1 bit) may be set at any time.
9. Only one chip select (and therefore 1 bit) may be set at any time.
10. This parameter must be static during normal operation.
11. This parameter must be static during normal operation.While this parameter defaults to 0x0, The minimum
valid value is 0x1. The user must program this parameter to a non-zero value during initialization.
12. This parameter may not be changed when the memory is in power-down mode (when the CKE input is deasserted).
90/584
Doc ID 022642 Rev 3
RM0321
Serial NOR Flash controller (SMI)
5
Serial NOR Flash controller (SMI)
5.1
Register summary
The SMI can be fully configured by programming a set of 32-bit wide registers which can be
accessed at the base address 0xFC00.0000.
Note:
All transfers to and from these registers must be 32-bit wide only. Any attempt to access with
a different size will result in an ERROR response.
Table 82.
SMI registers summary
Name
Offset
Reset value
Description
SMI_CR1
0x000
32’h51
SMI control register 1
SMI_CR2
0x004
32’h0
SMI control register 2
SMI_SR
0x008
32’h0
SMI status register
SMI_TR
0x00C
32’h0
SMI transmit register
SMI_RR
0x010
32’h0
SMI receive register
5.2
Register description
5.2.1
SMI_CR1 register
The SMI_CR1 (control register 1) is a RW register used to configure the behavior of SMI
(together with coupled SMI_CR2).
Table 83.
SMI_CR1 register bit assignments
Reset
value
Bit
Name
[31:30]
Reserved -
[29]
[28]
WBM
SW
1’h0
1’h0
Type
Description
-
Read: undefined. Write: should be zero.
RW
Write burst mode.
Setting this bit, the write burst mode is enabled and
selected external memory device remains active after an
AHB write request. In contrast (bit cleared, default),
selected memory device is released.
RW
Software mode.
Setting this bit, the software operation mode of SMI is
enabled, otherwise (bit cleared, default), the hardware
operation mode is enabled.
Doc ID 022642 Rev 3
91/584
Serial NOR Flash controller (SMI)
Table 83.
Bit
SMI_CR1 register bit assignments (continued)
Name
Reset
value
Type
Description
[27:26]
ADD_LE
NGTH
2’h0
RW
Address length.
This is a 2 bit field where each bit is associated to a specific
external memory bank, specifically the LSB (bit [24]) refers
to bank0. In particular, each bit states the length of the
address following the instruction opcode issued by SMI to
the relevant bank, according to encoding:
1‘b0 = 3 bytes (default)
1‘b1 = 2 bytes (for EEPROM compliance)
[25:24]
-
-
-
Not Used
RW
Clock hold period selection.
This 8 bit field states the hold period (where SMI_CK is
stopped while chip select remains active) between bytes as
an integer number of SMI_CK periods (tSMI_CK)
RW
Fast read mode.
This bit provides for mode selection during reading
operation. Setting this bit a clock frequency up to 50 MHz is
available, otherwise (bit cleared) it is reduced to 20 MHz.
RW
Prescaler value.
This 7 bit field allows to set the prescaler value used to
generate the SMI_CK clock by adjusting the AHB bus
fequency.
Note: The SMI_CK frequency is actually changed after the
completion of ongoing transfer.
RW
Deselect time.
This 4 bit field enables to configure the deselect time, that is
the minimum interval lasting between release of chip select
signal and next selection. That is, chip select signal
remains released (not selected) for at least (TCS + 1)
SMI_CK clock periods.
Actual deselect time at power-on reset depends on TCS
reset value (4’h5) and it is limited by the SMI_CK frequency
at power-on reset, that is 19 MHz, resulting in tSMI_CK =
52.6 ns. It follows that, at reset, tcs = (5+1) · 52.6 ns = 316
ns.
Note: FAST and TCS fields must be written at the same
time as PRESC. All these values are taken into account
after the completion of the ongoing transfer. Any check of
the consistency among these three values has to be done
by software.
[23:16]
[15]
[14:08]
[07:04]
92/584
RM0321
HOLD
FAST
PRESC
TCS
8’h0
1’h0
7’h0
4’h5
Doc ID 022642 Rev 3
RM0321
Serial NOR Flash controller (SMI)
Table 83.
Bit
5.2.2
SMI_CR1 register bit assignments (continued)
Name
Reset
value
Type
Description
[03:02]
Not used
[01:00]
Bank enable.
This is a 2 bit field where each bit is associated to a specific
external memory bank, specifically the LSB (bit [0]) refers to
bank0. Setting a bit, the relevant memory bank is enabled.
At power-on reset, all banks are disabled except bank0
(reset value 0x1) to allow booting from external memory.
Note: If any AHB master makes a request on a disabled
bank (relevant bit cleared in BE field), an ERROR response
is sent back to AHB master. In contrast, write enable, read
status register and send commands are not sent if the bank
is disabled, without any error message.
BE
2’h1
RW
SMI_CR2 register
The SMI_CR2 (Control register 2) is a RW register used to configure the behavior of SMI
(together with coupled SMI_CR1).
Table 84.
SMI_CR2 register bit assignments
Bit
Name
Reset
value
Type
Description
[31:14]
Reserved
-
-
Read: undefined. Write: should be zero.
RW
Bank select.
This 2 bit field allows to select the external memory bank,
according to encoding:
2‘b00 = Bank0
2‘b01 = Bank1
2‘b10 = Not Implemented
2‘b11 = Not Implemented
Note: Only one bank can be accessed at a time, and the
BS value is latched at the beginning of transfer.
RW
Write enable command.
Setting this bit, a write enable command is sent to the
memory bank selected by the BS field. The WEN bit is
then directly cleared by hardware as soon as the write
enable command has been successfully sent. A write of
1‘b0 has no effect.
Note: The WEN bit must be used in software mode to
send either a write or an erase command.
RW
Read status register command.
Setting this bit, a read status register command is sent to
the memory bank selected by the BS field. Result from
memory is then loaded into the SMSR field of SMI_SR
register. The RSR bit is then directly cleared by hardware
as soon as the read status register command has been
successfully completed. A write of 1‘b0 has no effect.
[13:12]
[11]
[10]
BS
WEN
RSR
2’h0
1’h0
1’h0
Doc ID 022642 Rev 3
93/584
Serial NOR Flash controller (SMI)
Table 84.
Bit
[09]
[08]
94/584
SMI_CR2 register bit assignments (continued)
Name
WCIE
TFIE
Reset
value
1’h0
1’h0
Description
RW
Write complete interrupt enable.
Setting this bit, it allows to enable the issue of an interrupt
request when write complete event occurs. This event also
results in setting the write complete flag (WCF) in the
SMI_SR register.
RW
Transfer finished interrupt enable
Setting this bit, it allows to enable the issue of an interrupt
request when software transfer complete event occurs.
This event also results in setting the transfer finished flag
(TFF) in the SMI_SR register.
RW
Send command.
Setting this bit, the transfer to external memory starts
according to data format defined by both REC_LENGTH
and TRA_LENGTH fields of this register. A write of 1‘b0
has no effect.
Note: The WEN bit can be set by software (only if Software
mode is enabled), and it is cleared by hardware only.
SEND
[06:04]
REC_LEN
GTH
3’h0
RW
Reception length.
This 3 bit field is used to specify the number of bytes to be
received from external memory, following a send
command (setting SEND bit).
[03]
Reserved
-
-
Read: undefined. Write: should be zero.
RW
Transmission length.
This 3 bit field is used to specify the number of bytes to be
transmitted to external memory, following a send
command (setting SEND bit).
Note: The REC_LENGTH and TRA_LENGTH fields must
be set by software, and their values are latched at the
beginning of software transfer.
TRA_LEN
GTH
1’h0
Type
[07]
[02:00]
Note:
RM0321
3’h0
Interrupt request issued (IRQ9), will be the OR of the events enabled by WCIE and TFIE
fields (see Interrupts table on page 696).
Doc ID 022642 Rev 3
RM0321
5.2.3
Serial NOR Flash controller (SMI)
SMI_SR register
The SMI_SR (Status register) is a RO register used to retrieve the current status of SMI.
Table 85.
SMI_SR register bit assignments
Bit
Name
Reset
value
Type
Description
[31:14]
Reserved
-
-
Read: undefined.
RO
Write mode for selected bank.
This 2-bit field reports the write mode status for the two
supported memory banks. Each bit is associated with a
single bank (specifically the LSB, bit [14], refers to Bank0).
A bit is set when the related bank is in write mode, that is,
when a write enable command – opcode 8’h06 – is sent to
the relevant memory bank. Note: The WM field is not
cleared by instructions sent in software mode.
RO
Error flag 1: forbidden access.
This bit is used to issue error flags concerning access to
external memory. Specifically, if set ERF1 marks forbidden
access to memory, that is: read/write access requested on
disabled bank, read/write access requested in software
mode, or read requests in write burst mode (bit WBM set in
SMI_CR1 register,).
RO
Error flag 2: forbidden Write request.
This bit is used to issue error flags concerning access to
external memory. Specifically, if set ERF2 marks specific
forbidden write request, that is: write requests when out of
write mode (bit WM cleared in this register for relevant
bank), size changed between two consecutive write
requests, or address is not incremented. Note: Setting
either ERF1 or ERF2, an ERROR response is sent back to
AHB master on HRESP.
RO
Write complete flag.
This bit is set in case of write completion, that is when the
WIP bit of SMSR is set to 1‘b0 (stating the end of
programming). After a write instruction, a read status
register command (opcode 8’h05) is performed by
hardware.
[13:12]
[11]
[10]
[09]
WM
ERF1
ERF2
WCF
2’h0
1’h0
1’h0
1’h0
Doc ID 022642 Rev 3
95/584
Serial NOR Flash controller (SMI)
Table 85.
Bit
[08]
[07:00]
5.2.4
RM0321
SMI_SR register bit assignments (continued)
Name
TFF
Reset
value
1’h0
SMSR
8’h0
Type
Description
RO
Transfer finished flag.
This bit is set when transfer with external memory is
completed, that is after REC_LENGTH and TRA_LENGTH
bytes (set in SMI_CR2 register) have been received and
transmitted, respectively. Besides, TFF is set when either
the read status register (bit RSR in SMI_CR2) or the write
enable (bit WEN in SMI_CR2) commands are finished.
RO
Memory device status register.
This 8 bit field is used to store a copy of the external
memory status register. This field is updated in 2 distinct
ways: at first, when the RSR bit in SMI_CR2 register is set
(SMSR is updated after the RSR sequence), and after a
write request to a memory bank (SMSR is updated until the
write cycle is finished, that is when bit [0] of this field is
cleared).
Note: This field is refreshed every 8 SMI_CLK periods.
SMI_TR register
The SMI_TR is the transmit register which is used by SMI to send either data or commands
to external serial memory. In particular, SMI_TR is a 8-bit barrel shifter, where byte0 is sent
first and then 8 bits are shifted before sending byte1 and so on.
This register can be written in software mode only (bit SW set in SMI_CR1 register), and
when actual transfer is not yet started (bit SEND cleared in SMI_CR2 register).
Note:
The SMI_TR is also used in hardware mode, but its content is not kept entering in this
mode.
Table 86.
SMI_TR register bit assignments
Bit
Name
Reset value
[31:24]
Byte3
8’h00
[23:16]
Byte2
8’h00
[15:08]
Byte1
8’h00
[07:00]
Byte0
8’h00
Description
Transmit register (8 bit barrel shifter).
96/584
Doc ID 022642 Rev 3
RM0321
5.2.5
Serial NOR Flash controller (SMI)
SMI_RR register
The SMI_RR is the receive register which is used by SMI to receive data from external serial
memory. Received bytes from external memory are first placed in byte0, then in other next
fields of SMI_RR until byte3.
This register must be read in software mode (bit SW set in SMI_CR1 register) after transfer
is finished (bit TFF set in SMI_SR register), otherwise the register content is not valid.
Note:
The SMI_RR is also used in Hardware mode, but its content is not kept entering in this
mode.
Table 87.
SMI_RR register bit assignments
Bit
Name
Reset value
[31:24]
Byte3
8’h00
[23:16]
Byte2
8’h00
[15:08]
Byte1
8’h00
[07:00]
Byte0
8’h00
Description
Receive register.
Doc ID 022642 Rev 3
97/584
Parallel NAND Flash controller (FSMC)
RM0321
6
Parallel NAND Flash controller (FSMC)
6.1
Register summary
The FSMC can be fully configured by programming its 32-bit wide registers which can be
accessed at the base address 0x4C00.0000.
The configuration registers allow to specify the type of external device (Flash) as well as the
associated timings (that is how many HCLK cycles to complete a transaction), and other
external device characteristics so that FSMC can use the correct protocol.
The FSMC registers are usually initialized at boot time, however it is possible to change
them at any moment. They can be logically arranged in two main groups:
●
control and timing registers for FSMC configuration (listed in Table 89)
●
identification registers: eight 8-bit RO registers reporting FSMC-specific information
(listed in Table 90)
The address space for FSMC is further divided as shown in the following table.
Table 88.
FSMC address map
Address
0x4C00.0000 to 0x4FFF.FFFF
FSMC configuration registers
0x5000.0000 to 0x53FF.FFFF
NAND Bank0
0x5000.0000
Data to/from NAND Bank0
0x5001.0000
Command to NAND Bank0 (Asserts CL signal to NAND) (Note 1)
0x5002.0000
Address to NAND Bank0 (Asserts AL signal to NAND) (Note 1)
0x5400.0000 to 0x54FF.FFFF
Data to/from NAND Bank1
0x5401.0000
Command to NAND Bank1 (Asserts CL signal to NAND) (Note 1)
0x5402.0000
Address to NAND Bank1 (Asserts AL signal to NAND) (Note 1)
98/584
NAND Bank2
0x5800.0000
Data to/from NAND Bank2
0x5801.0000
Command to NAND Bank2 (Asserts CL signal to NAND) (Note 1)
0x5802.0000
Address to NAND Bank2 (Asserts AL signal to NAND) (Note 1)
0x5C00.0000 to 0x5CFF.FFFF
1
NAND Bank1
0x5400.0000
0x5800.0000 to 0x58FF.FFFF
Note:
Description
NAND Bank3
0x5C00.0000
Data to/from NAND Bank3
0x5C01.0000
Command to NAND Bank3 (Asserts CL signal to NAND) (Note 1)
0x5C02.0000
Address to NAND Bank3 (Asserts AL signal to NAND) (Note 1)
CL and AL signals for NAND Flash correspond to the addresses A16 and A17 respectively
on FSMC. If we write at an address within the address range of a particular NAND bank
such that the address bit 16/17 is ‘1’, the CL/AL pin at output will go high. Data on data lines
is thus interpreted as command in the case of A16 and as address in the case of A17.
Doc ID 022642 Rev 3
RM0321
Parallel NAND Flash controller (FSMC)
Table 89.
Note:
FSMC control and timing registers summary
Name
Offset
Type
Description
-
0x000 to 0x03C
-
Reserved
GenMemCtrl_PC0
0x040
RW
Controls of NAND 0
-
0x044
-
Reserved
GenMemCtrl_Comm0
0x048
RW
Timings of NAND 0 in common memory mode
GenMemCtrl_Attrib0
0x04C
RW
Timings of NAND 0 in attribute memory mode
-
0x050
-
Reserved
GenMemCtrl_ECCr0
0x054
RO
NAND-Flash 0 ECC Result.
-
0x058 to 0x05C
-
Reserved
GenMemCtrl_PC1
0x060
RW
Controls of NAND 1
-
0x064
-
Reserved
GenMemCtrl_Comm1
0x068
RW
Timings of NAND 1 in common memory mode
GenMemCtrl_Attrib1
0x06C
-
Timings of NAND 1 in attribute memory mode
-
0x070
-
Reserved
GenMemCtrl_ECCr1
0x074
RO
NAND-Flash 1 ECC Result
-
0x078 to 0x07C
-
Reserved
GenMemCtrl_PC2
0x080
RW
Controls of NAND 2
-
0x084
-
Reserved
GenMemCtrl_Comm2
0x088
RW
Timings of NAND 2 in common memory mode
GenMemCtrl_Attrib2
0x08C
RW
Timings of NAND 2 in attribute memory mode.
-
0x090
-
Reserved
GenMemCtrl_ECCr2
0x094
RO
NAND-Flash 2 ECC Result
-
0x098 to 0x09C
-
Reserved
GenMemCtrl_PC3
0x0A0
RW
Controls of NAND 3
-
0x0A4
RW
Reserved
GenMemCtrl_Comm3
0x0A8
RW
Timings of NAND 3 in common memory mode
GenMemCtrl_Attrib3
0x0AC
RW
Timings of NAND 3 in attribute memory mode
-
0x0B0
-
Reserved
GenMemCtrl_ECCr3
0x0B4
RO
NAND-Flash 3 ECC Result
-
0x0B8 to 0x0BC
-
Reserved
In addition to reserved locations within the control and timing registers address space, offset
addresses from 0x0C0 to 0xFDC are reserved for test purposes. All these locations must
not be used during normal operation.
Doc ID 022642 Rev 3
99/584
Parallel NAND Flash controller (FSMC)
Table 90.
RM0321
FSMC identification registers summary
Name
Offset
Width
(bit)
Type
Reset Value Description
GenMemCtrl_PeriphID0
0xFE0
8
RO
8’h90
GenMemCtrl_PeriphID1
0xFE4
8
RO
8’h00
GenMemCtrl_PeriphID2
0xFE8
8
RO
8’h08
GenMemCtrl_PeriphID3
0xFEC
8
RO
8’h00
GenMemCtrl_PCellID0
0xFF0
8
RO
8’h0D
GenMemCtrl_PCell ID1
0xFF4
8
RO
8’hF0
GenMemCtrl_PCellID2
0xFF8
8
RO
8’h05
GenMemCtrl_PCellID3
0xFFC
8
RO
8’hB1
Peripheral Identification
IPCell Identification
6.2
Register description
6.2.1
GenMemCtrl_PC(i) registers
GenMemCtrl_PC(i) (with i= 0...3) is a RW control register used for NAND Flash.
Table 91.
Bit
Name
Reset Value
Description
[31:17]
-
-
Reserved. Read: undefined. Write: should be zero.
4’h0
ALE to REb delay. Used for NAND Flash, this 4-bit field
indicates the time from ALE low to REb low, Tar, as an integer
number of HCLK cycles according to following formula: Tar =
HCLK cycles * (tar +1). The minimum value for this field is
4'b0000 (default), that is Tar is one HCLK cycle.
[16:13]
tar
[12:09}
tclr
4’h0
CLE to REb delay. Used for NAND Flash, this 4-bit field
indicates the time from CLE low to REb low, Tclr, as an integer
number of HCLK cycles according to following formula: Tclr =
HCLK cycles * (tclr +1). The minimum value for this field is
4'b0000 (default), that is Tclr is one HCLK cycle.
[08]
-
1’h0
Reserved. Read: undefined. Write: should be zero.
1’h0
ECC page length. This bit allows to define the page length of
the NAND Flash memory device for configuring the ECC
computation logic, according to the encoding below:
1’b0 - 512 (default)
1’b1 - 256
1’h0
ECC computation logic enable bit. This bit allows to enable the
ECC computation logic, according to the encoding below:
1’b0 - Disabled and Reset (default)
1’b1 - Enabled
[07]
[06]
100/584
GenMemCtrl_PC(i) register bit assignments
Eccplen
Eccen
Doc ID 022642 Rev 3
RM0321
Parallel NAND Flash controller (FSMC)
Table 91.
Bit
Name
Reset Value
Description
Dev_width Undefined
Data width. This 2-bit field indicates the data width, according
to the encoding below:
2’b00 - 8 bit
2’b01 - 16 bit
2’b10 - 32 bit (Not used in SPEAr320S)
2’b11 - Not used
Note: This field is valid only if Dev_type (bit 3) is NAND Flash.
[03]
Dev_type
1’h1
Type of device. This bit indicates the type of device, according
to the encoding below:
1’b0 - Not used
1’b1 - NAND Flash (default)
[02]
Enable
1’h0
Enable NAND Active High
[01]
Wait_on
1’h0
Activates the wait feature for the NAND Active High
[00]
Reset
1’h0
Software reset for NAND
Reset level = 1
[05:04]
6.2.2
GenMemCtrl_PC(i) register bit assignments (continued)
GenMemCtrl_Comm(i)/GenMemCtrl_Attrib(i)
The GenMemCtrl_Comm(i)/GenMemCtrl_Attrib(i) (with i= 0...3) is a RW register containing
the timing control information of each bank used for NAND Flash memories.
Table 92.
Bit
[31:24]
[23:16]
[15:08]
[07:00]
GenMemCtrl_Comm(i)/GenMemCtrl_Attrib(i) register bit assignments
Name
Thiz
Thold
Twait
Tset
Reset Value Description
8‘hFC
Time from address valid to data bus driven (Write cycle only)
The total time is: thiz = Tclk * Thiz.
Min value for Thiz is 0.
8‘hFC
Time from enable off to when address/data goes to high
impedance(Read and write cycle)
The total time is: thold = Tclk * Thold.
T period = tset + twait+ thold
Min value for Thold is 1.
8‘hFC
Time from enable on to enable off for all signals (Read and write
cycle)
The total time is: twait = Tclk * (Twait + 1).
Min value for Twait is 1.
8‘hFC
Time from address valid to RE/WE activation (Read and write
cycle)
The total time is: tset = Tclk * (Tset + 1).
Min value for Tset is 0.
Doc ID 022642 Rev 3
101/584
Parallel NAND Flash controller (FSMC)
6.2.3
RM0321
GenMemCtrl_ECCr(i) registers
GenMemCtrl_ECCr(i) (with i= 0...3) is a 32-bit RO register which contains the ECC (Error
Correction Code) computation result for the corresponding NAND Flash memory.
The ECC is actually a Hamming-based code which is used to preserve the consistency of
data stored in NAND Flash memories. The ECC algorithm consists in calculating the row
and column parity of a page of memory and to place the 3-byte result in an ECC table,
where it can be retrieved in order to check the consistency of the data. The
GenMemCtrl_ECCr0 reports this ECC 3-byte result.
Table 93.
6.2.4
GenMemCtrl_ECCr(i) register bit assignments
Bit
Name
Reset Value Description
[31:24]
-
-
Reserved. Read: undefined. Write: should be zero.
[23:16]
ECC3
8‘hFF
MSB part of ECC.
[15:08]
ECC2
8‘hFF
ECC.
[07:00]
ECC1
8‘hFF
LSB part of ECC.
GenMemCtrl peripheral identification registers
The GenMemCtrlPeriphID0-3 registers are four read-only 8-bit registers.
Table 94.
GenMemCtrlPeriphID0 register bit assignments
Bit
Name
Reset Value Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:00]
Part Number0
8‘h90
These bits read back as 0x90
Table 95.
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:04]
Designer0
4‘h0
These bits read back as 0x0
[03:00]
PartNumber1 4‘h0
These bits read back as 0x0
Table 96.
102/584
GenMemCtrlPeriphID1 register bit assignments
GenMemCtrlPeriphID2 register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:04]
Revision
4‘h0
These bits return the peripheral revision.
[03:00]
Designer1
4‘h08
These bits read back as 0x8
Doc ID 022642 Rev 3
RM0321
Parallel NAND Flash controller (FSMC)
Table 97.
6.2.5
GenMemCtrlPeriphID3 register bit assignments
Bit
Name
Reset Value Description
[31:08]
-
-
[07:00]
Configuration 8‘h00
Reserved. Read: undefined. Write: should be zero.
These bits read back as 0x00
GenMemCtrl P Cell identification registers (GenMemCtrlPCellID0-3)
The GenMemCtrlPCellID0-3 registers are four read-only 8-bit registers.
Table 98.
GenMemCtrlPCellID0 register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:00]
GenMemCtrl
8‘h0D
PCellID0
Table 99.
These bits read back as 0x0D
GenMemCtrlPCellID1 register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:00]
GenMemCtrl
8‘hF0
PCellID1
These bits read back as 0xF0
Table 100. GenMemCtrlPCellID2 register bit assignments
Bit
Name
Reset Value Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:00]
GenMemCtrl
PCellID2
8‘h05
These bits read back as 0x05
Table 101. GenMemCtrlPCellID3 register bit assignments
Bit
Name
Reset Value Description
[31:08]
-
-
Reserved. Read: undefined. Write: should be zero.
[07:00]
GenMemCtrl
PCellID3
8‘hB1
These bits read back as 0xB1
Doc ID 022642 Rev 3
103/584
External memory interface (EMI)
RM0321
7
External memory interface (EMI)
7.1
Register summary
All register accesses on the EMI block should be of 32 bits. (AHB HSIZE = "10"). If not so,
an AHB error is generated. All registers mentioned have read and write access from AHB.
Each peripheral has 6 registers each, in which various timing parameters are programmed.
Registers are namely Start CS Register, Start of Enable Register, Enable Duration (Write)
Register, Enable Duration (Read) Register, Disable CS Register and Control Register.
There are also Timeout, Acknowledgement and IRQ registers, which are common to all
peripherals connected.
Table 102. Base address
Name
Range
Registers (common to all peripherals)
0x4000.0000 - 0x43FF.FFFF
Peripheral 0 (external memory connected to CS0)
0x4400.0000 - 0x44FF.FFFF
Peripheral 1 (external memory connected to CS1)
0x4500.0000 - 0x45FF.FFFF
Peripheral 2 (external memory connected to CS2)
0x4600.0000 - 0x46FF.FFFF
Peripheral 3 (external memory connected to CS3)
0x4700.0000 - 0x47FF.FFFF
Table 103. Register summary
104/584
Name
Offset
Valid bits
tSCS_0_reg
Registers base address + 0x0
16
tSE_0_reg
Registers base address + 0x4
16
tENw_0_reg
Registers base address + 0x8
16
tENr_0_reg
Registers base address + 0xC
16
tDCS_0_reg
Registers base address + 0x10
16
control_0_reg
Registers base address + 0x14
8
tSCS_1_reg
Registers base address + 0x18
16
tSE_1_reg
Registers base address + 0x1C
16
tENw_1_reg
Registers base address + 0x20
16
tENr_1_reg
Registers base address + 0x24
16
tDCS_1_reg
Registers base address + 0x28
16
control_1_reg
Registers base address + 0x2C
8
tSCS_2_reg
Registers base address + 0x30
16
tSE_2_reg
Registers base address + 0x34
16
tENw_2_reg
Registers base address + 0x38
16
tENr_2_reg
Registers base address + 0x3C
16
tDCS_2_reg
Registers base address + 0x40
16
Doc ID 022642 Rev 3
RM0321
External memory interface (EMI)
Table 103. Register summary (continued)
Name
Offset
Valid bits
control_2_reg
Registers base address + 0x44
8
tSCS_3_reg
Registers base address + 0x48
16
tSE_3_reg
Registers base address + 0x4C
16
tENw_3_reg
Registers base address + 0x50
16
tENr_3_reg
Registers base address + 0x54
16
tDCS_3_reg
Registers base address + 0x58
16
control_3_reg
Registers base address + 0x5C
8
timeout_reg
Registers base address + 0x60
32
ack_reg
Registers base address + 0x64
8
irq_reg
Registers base address + 0x68
3
7.2
Register description
7.2.1
Start CS register (tSCS)
This register indicates the start of the CS signal, with respect to the assertion of address
bus. During the start of the read/write cycle, address is put on the address bus. Now you
have the option to delay the assertion of CS signal. The delayed value can be put into this
register. A zero value asserts the CS signal immediately.
If the acknowledgement feature (EMI_WAIT# signal) is used, CS is asserted only after
getting high value for EMI_WAIT# signal. The value programmed amounts to those many
AHB cycles.
7.2.2
Start of enable register (tSE)
This register indicates the time to start the assertion of EMI_WE# or EMI_OE#, after we
have asserted the EMI_CEn signal
7.2.3
Enable duration (Write) (tENw)
This register indicates the duration for which write enable will be present, for instance
EMI_WE# will remain asserted tENw number of AHB cycles. If the acknowledgement
feature is used, then the duration starts after the assertion of acknowledgement by the
peripheral.
7.2.4
Enable duration (Read) (tENr)
This register indicates the duration for which the data phase will be present, for instance
EMI_OE# will remain asserted tENr number of AHB cycles. If the acknowledgement feature
is used, the duration starts after the assertion of acknowledgement by the peripheral.
Doc ID 022642 Rev 3
105/584
External memory interface (EMI)
7.2.5
RM0321
Disable CS register (tDCS)
This register indicates the deassertion of EMI_CEn after disabling of enable signal. If the
acknowledgement feature is used, then the duration starts after the assertion of
acknowledgement by the peripheral.
7.2.6
Control register
Table 104. Control register bit assignments
Bits
Name
[07:06]
7.2.7
Description
Not used
[05]
Reserved
Default value is ‘0’.
[04]
Endianness
'0': Little Endian data.
'1': Big Endian data.
[03]
Read Lane
'0': Data is always read on the peripheral bus from lower byte (or
halfword).
'1': During Read, data is picked from correct lanes of the peripheral
bus.
[02]
Bus Sized
Access
'0': EMI doesn't perform accesses of size other than peripheral's.
'1': EMI performs different size accesses.
[01:00]
Perip Size
Data size of the peripheral connected.
00: 8 bit
01: 16 bit
Time out register
The timeout register is used to handle erratic behavior cases, for example when a peripheral
is not responding. Timeout value starts as soon as any Read/Write instruction is received for
a peripheral. Default value for timeout register is 0xFF. This can be overridden through
programming. Timeout mechanism only works with cases which use acknowledgement
feature.
7.2.8
Acknowledgement register
Table 105. Acknowledgement register bit assignments
Bits
Name
[07:04]
106/584
Description
Not used
[03]
Ack CS3
This bit indicates whether acknowledgement behavior is required for
CS3 peripheral or not. A ‘1’ value indicates Ack behavior not required.
[02]
Ack CS2
This bit indicates whether acknowledgement behavior is required for
CS2 peripheral or not. A ‘1’ value indicates Ack behavior not required.
[01]
Ack CS1
This bit indicates whether acknowledgement behavior is required for
CS1 peripheral or not. A ‘1’ value indicates Ack behavior not required.
[00]
Ack CS0
This bit indicates whether acknowledgement behavior is required for
CS0 peripheral or not. A ‘1’ value indicates Ack behavior not required.
Doc ID 022642 Rev 3
RM0321
7.2.9
External memory interface (EMI)
IRQ register
This register lists the error interrupts. Interrupt(s) can be disabled by writing value ‘0’ on the
particular bit(s) of this register.
IR
Table 106. IRQ register bit assignments
Bits
Name
[07:03]
Description
Not used
[02]
Bus sized
access error
If “Bus sized access” feature is not used, unequal size transactions
can’t be used.
[01]
Timeout
Error
Timeout has occured.
[00]
Size Mismatch
Non valid Hsize or transactions in which size of AHB transaction is
greater than size of peripheral connected.
Doc ID 022642 Rev 3
107/584
USB 2.0 Host ports (UHC)
RM0321
8
USB 2.0 Host ports (UHC)
8.1
Register summary
The UHC can be fully configured by programming a set of 32-bit wide registers which can be
accessed through the AHB BIU slave module at the base addresses given below (for the
controller and the two host ports provided by the device.
Table 107. UHC registers base address
Host controller
Host port
Base address
EHCI
1 or 2
0xE180.0000(USBBASE)
OHCI
1
0xE190.0000
OHCI
2
0xE210.0000(USBBASE)
Register map for EHCI
The EHCI controller can enable communication through one of the two ports by setting the
corresponding PORTSC register in the EHCI Operation Register block.
The registers of the EHCI host controller can be grouped in four different classes:
Note:
●
Read-only capability registers (listed inTable 108), which specify the limits, restrictions
and capabilities of the EHCI host controller implementation. These values are used as
parameters for the HCD.
●
Read/write operational registers (listed in Table 109), used by system software to
control and monitor the operational state of the EHCI host controller. These registers
are implemented in the core power well.
Each operational register is only reset (that is, initialized to its default value) in case of
assertion of system hardware reset, or in response to a host controller reset (HCRESET bit
set to 1‘b1 in USBCMD register).
●
Note:
Auxiliary power well registers (listed in Table 110), which are part of the operational
registers but implemented in the auxiliary power well.
Each auxiliary power well register is only reset (that is, initialized to its default value) by
hardware in case of initial power-up of the auxiliary power well, or in response to a host
controller reset (HCRESET bit set to 1‘b1 in USBCMD register).
●
PCR registers (listed in Table 111), which allow to program configurable registers, such
as the packet buffer depth, break memory transfer when the threshold value is reached,
the frame length, and UTMI control and status register access.
Table 108. EHCI host controller capability registers summary
108/584
Name
Offset(1)
Type
Reset value
Description
HCCAPBASE
USBBASE+ 0x00
RO
32’h01000010
Capability registers base
address
HCSPARAMS
USBBASE+ 0x04
RO
32’h00001116
Structural parameters
HCCPARAMS
USBBASE+ 0x08
RO
32’h0000A010 Capability parameters
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
1. The offset is intended to be with respect to the operational registers base address:USBBASE is
fixed to the EHCI base address.
Table 109. EHCI host controller operational registers summary
Name
Offset (1)
USBCMD
Type
Reset value
Description
USBOPBASE+ 0x00 RO
32’h00080900
USB command
USBSTS
USBOPBASE+ 0x04 RW
32’h00001000
USB status
USBINTR
USBOPBASE+ 0x08 RW
32’h0
USB interrupt enable
FRINDEX
USBOPBASE+ 0x0C RW
32’h0
USB frame index
CTRLDSSEGMENT
USBOPBASE+ 0x10 RW
32’h0
4G segment selector
PERIODICLISTBASE USBOPBASE+ 0x14 RW
32’h0
Periodic frame list base
address
ASYNCLISTADDR
32’h0
Asynchronous list address
USBOPBASE+ 0x18 RW
1. Offset calculated by reading HCCAPBASE. The offset is kept with respect to the operational
registers base address: USBOPBASE = USBBASE + 0x10.
Table 110. EHCI host controller auxiliary power well registers summary
Name
Offset (1)
CONFIGFLAG
Type
Reset value
Description
USBOPBASE+ 0x40 RW
32’h0
Configured flag
PORTSC1
USBOPBASE+ 0x44
32’h00002000
Port 1 status and control
PORTSC2
0x48
32’h00000000
Port 2 status and control
(2)
1. The offset is intended to be with respect to the operational registers base address
(USBOPBASE).
2. Depending on port power control (see PP bit description in PORTSC register).
Table 111. EHCI host controller specific registers summary
Name
Offset (1)
Size
(bit)
Type Reset value
Description
INSNREG00
USBOPBASE+0x80
14
RW
14’h0
Programmable microframe
base value
INSNREG01
USBOPBASE+ 0x84
32
RW
32’h00200020
Programmable packet buffer
out/in thresholds
INSNREG02
USBOPBASE+0x88
12
RW
12’h080
Programmable packet buffer
depth
INSNREG03
USBOPBASE+0x8C
1
RW
1’h0
Break memory transfer
INSNREG04
USBOPBASE+ 0x90
3
RW
3’h0
For debug purposes only
INSNREG05
USBOPBASE+0x94
32
RW
32’h00001000
UTMI control and status
registers
1. The offset is intended to be with respect to the operational registers base address
(USBOPBASE).
Doc ID 022642 Rev 3
109/584
USB 2.0 Host ports (UHC)
RM0321
Register Map for OHCI
Table 112. Host controller operational registers
110/584
Offset
Register name
00
HcRevision
04
HcControl
08
HcCommandStatus
0C
HcInterruptStatus
10
HcInterruptEnable
14
HcInterruptDisable
18
HcHCCA
1C
HcPeriodCurrentED
20
HcControlHeadED
24
HcControlCurrentED
28
HcBulkHeadED
2C
HcBulkCurrentED
30
HcDoneHead
34
HcFmInterval
38
HcFmRemaining
3C
HcFmNumber
40
HcPeriodicStart
44
HcLSTreshold
48
HcRhDescriptorA
4C
HcRhDescriptorB
50
HcRhStatus
54
HcRhPortStatus[1]
--
--
54+4*NDP
HcRhPortStatus[NDP]
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
8.2
EHCI register description
8.2.1
HCCAPBASE register
The HCCAPBASE is a RO register which contains the base address of the DWord-aligned
memory-mapped EHCI host controller capability registers.
Table 113. HCCAPBASE register bit assignments
Bit
8.2.2
Name
Reset value Description
[31:16]
HCIVERSION
16’h0100
This field contains a BCD encoding of the EHCI
revision number supported by this host controller. The
most significant byte of this register represents a
major revision and the least significant byte is the
minor revision.
[15:08]
Reserved
-
Read: undefined
[07:00]
CAPLENGTH
8’h10
This field is used as an offset to add to register base
to find the beginning of the Operational Register
Space.
HCSPARAMS register
The HCSPARAMS is a RO register stating the structural parameters of the EHCI host
controller, such as the number of downstream ports, etc.
Table 114. HCSPARAMS register bit assignments
Bit
Name
Reset value Description
[31:24]
Reserved
-
Read: undefined.
[23:20]
DPN
4’h0
Debug port number.
This field identifies which of the EHCI host controller
ports is the debug port, according to encoding:
4‘b0000 = No debug port.
4‘b0001 = Port #1.
... =...
4‘b1111 = Port #15.
Note: The value in DPN field must not be greater than
N_PORTS field.
[19:17]
Reserved
-
Read: undefined.
1‘h0
Port indicators.
This bit indicates whether the ports support port
indicator control. When this bit is set, each port status
control register (PORTSC) of auxiliary power well
includes a specific RW field (PIC, port indicator
control) for controlling the state of the port indicator.
[16]
P_INDICATOR
Doc ID 022642 Rev 3
111/584
USB 2.0 Host ports (UHC)
RM0321
Table 114. HCSPARAMS register bit assignments (continued)
Bit
[15:12]
[11:08]
112/584
Name
N_CC
N_PCC
Reset value Description
4‘h1
Number of companion controllers.
This field indicates the number of companion OHCI
host controllers (USB 1.1) associated with the EHCI
host controller (USB 2.0). A zero value in this field
indicates that there are no companion OHCI host
Controllers, whereas a non-zero value indicates that
there are as many companion OHCI host controllers
(default is 1).
4‘h1
Number of ports per companion controller.
This field indicates the number of ports supported per
each companion OHCI host controller. It is used to
indicate the port routing configuration to system
software. The default convention (bit PRR set to 0b0)
is that the first N_PCC ports are assumed to be
routed to companion controller #1, the next N_PCC
ports to companion controller #2, and so on.
Note: The number in this field must be consistent with
both N_PORTS and N_CC.
[07]
PRR
1‘h0
Port routing rules.
This field indicates the port routing method which
drives how all ports are mapped to companion
controllers, according to encoding:
1‘b0 = The first N_PCC ports are routed to the lowest
numbered function companion OHCI host controller,
the next N_PCC port are routed to the next lowest
function companion controller, and so on.
1‘b1 = The port routing is explicitly enumerated by the
first N_PORTS elements of the HCSP-PORTROUTE
array (in the capability registers). In the device, just
one single port is present for each controller, so this
information is actually irrelevant.
[06:05]
Reserved
-
Read: undefined.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 114. HCSPARAMS register bit assignments (continued)
Bit
[04]
[03:00]
8.2.3
Name
PPC
N_PORTS
Reset value Description
1’h1
Port power control.
This field indicates whether the EHCI host controller
implementation includes port power control. In
particular, setting this bit a port power switch is
enabled for each port, otherwise (PPC set to 1‘b0)
each port is hard-wired to power.
Note: The value of this field affects the functionality of
the port power field (PP) in each port status control
registers of auxiliary power well.
4’h2
Number of physical downstream ports.
This field specifies the number of physical
downstream ports implemented on this EHCI host
controller. The value of this field (ranging from 4’h1 to
4’hF, that is 1 to 15) determines how many port
registers are addressable in the auxiliary power well
registers memory-space (ranging from offset 0x40 to
0x7C with respect to USBOPBASE address).
Note: A zero-value in this field is undefined.
HCCPARAMS register
The HCCPARAMS is a RO register stating the capability parameters of the EHCI host
controller, such as scheduling, addressing, etc.
Table 115. HCCPARAMS register bit assignments
Bit
Name
Reset value Description
[31:16]
Reserved
-
Read: undefined.
8’hA0
EHCI extended capabilities pointer.
This optional field indicates the existence of a
capabilities list. A zero value indicates that no
extended capabilities are implemented, whereas a
non-zero value indicates the offset in PCI
configuration space of the first EHCI extended
capability.
Note: The pointer value in this field must be 8’h40 or
greater in order to maintain the consistency of the
PCI header defined for this class of device.
[15:08]
EECP
Doc ID 022642 Rev 3
113/584
USB 2.0 Host ports (UHC)
RM0321
Table 115. HCCPARAMS register bit assignments (continued)
Bit
Reset value Description
[07:04]
IST
4’h1
Isochronous scheduling threshold.
This field indicates, relative to the current position of
the executing EHCI host controller, where software
can reliably update the isochronous schedule. When
bit [7] of this field is 1‘b0 (default), the value of the
least significant 3 bits indicates the number of microframes a EHCI host controller can hold a set of
isochronous data structures (one as default or more)
before flushing the state. When bit [7] is set to 1‘b1,
then host software assumes the EHCI host controller
may cache an isochronous data structure for an
entire frame.
[03]
Reserved
-
Read: undefined.
1‘h0
Asynchronous schedule park capability.
If this bit is set, then the EHCI host controller supports
the park feature for high-speed (HS) queue heads in
the asynchronous schedule. The park feature can be
disabled or enabled as well as set to a specific level
by using the asynchronous schedule park mode
enable and asynchronous schedule park mode count
fields in the USBCMD register.
1‘h0
Programmable frame list flag.
This bit states the frame list length, according to
encoding:
1‘b0 = System software must use a frame list length
of 1024 elements with this EHCI host controller. In
this case, the frame list size (FLS) in the USBCMD
register is a read only field and it should be set to
2‘b00.
1‘b1 = System software can specify and use a smaller
frame list, configured by the frame list size (FLS) field
in the USBCMD register.
The frame list must always be aligned on a 4K page
boundary, in order to ensure that the frame list is
always physically contiguous.
1‘h0
64 bits addressing capability.
This bit documents the addressing range capability of
this implementation, according to encoding:
1‘b0 = Data structures using 32 bit address memory
pointers.
1‘b1 = Data structures using 64 bit address memory
pointers.
[02]
[01]
[00]
8.2.4
Name
ASPC
PFLF
64BAC
USBCMD register
The USBCMD is a RW register which indicates the command to be executed by the serial
bus EHCI host controller.
Note:
114/584
Writing this register causes a command to be executed.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 116. USBCMD register bit assignments
Bit
Name
Reset value Description
[31:24]
Reserved
-
Read: undefined. Write: should be zero.
[23:16]
ITC
8’h08
Interrupt threshold control.
This field is used by system software to select the
maximum rate at which the EHCI host controller will
issue interrupts, according to encoding (any value
other than those defined above yields undefined
results):
8‘h00 = Reserved.
8‘h01 = 1 micro-frame.
8‘h02 = 2 micro-frames.
8‘h04 = 4 micro-frames.
8‘h08 = 8 micro-frames (default, equal to 1 ms).
8‘h10 = 16 micro-frames (2 ms).
8‘h20 = 32 micro-frames (4 ms).
8‘h40 = 64 micro-frames (8 ms).
Note: Software modifications to this field while HH bit
in USBSTS register is equal to 0 results in undefined
behavior.
[15:12]
Reserved
-
Read: undefined. Write: should be zero.
[11]
ASPME
1‘h1
Asynchronous schedule park mode enable.
This bit is used by software to enable (bit set to 1‘b1)
or disable (1‘b0) the Park mode.
If the asynchronous park capability bit in the
HCCPARAMS register (ASPC, bit [2]) is set, then this
bit defaults to 1‘b1 and it is RW. In contrast, this bit
must be set to 1‘b0 and it is RO.
[10]
Reserved
-
Read: undefined. Write: should be zero.
2‘h1
Asynchronous schedule park mode count.
This 2 bit field contains a count of the number of
successive transactions the EHCI host controller is
allowed to execute from a high-speed (HS) queue
head on the asynchronous schedule before
continuing the traversal of the asynchronous
schedule. Valid values are 2’h1 (2‘b01) to 2’h3 (2’b11)
only.
If the asynchronous park capability bit in the
HCCPARAMS register (ASPC, bit [2]) is set, then this
field defaults to 2‘b11 and it is RW. In contrast, it
defaults to 2‘b00 and it is RO.
Note: Software must not write a zero value (2‘b00) to
this field when park mode enable is set as it will result
in undefined behavior.
[09:08]
ASPMC
Doc ID 022642 Rev 3
115/584
USB 2.0 Host ports (UHC)
RM0321
Table 116. USBCMD register bit assignments (continued)
Bit
[07]
[06]
[05]
[04]
116/584
Name
LHCR
IAAD
ASE
PSE
Reset value Description
1‘h0
Light host controller reset.
This bit allows the driver to reset the EHCI host
controller without affecting the state of the ports or the
relationship to the companion OHCI host controllers.
For example, the PORSTC registers should not be
reset to their default values and the CF bit (in
CONFIGFLAG register setting should not go to zero
(retaining port ownership relationships).
If this bit is set to 1‘b0, the light host controller reset
has been completed and it is safe for host software to
re-initialize the EHCI host controller. Besides, if this
bit is set to 1‘b1, the light host controller reset has not
yet completed.
Note: If light host controller reset is not implemented,
reading this bit will always return a zero value (1‘b0).
1‘h0
Interrupt on async advance doorbell.
This bit is used as a doorbell by software to tell the
EHCI host controller to issue an interrupt the next
time it advances asynchronous schedule. Software
must write a 1‘b1 to this bit to ring the doorbell.
When the EHCI host controller has evicted all
appropriate cached schedule state, it sets the
interrupt on async advance status bit (IAA, bit [5]) in
the USBSTS register. If the Interrupt on async
advance enable bit in the USBINTR, is set, then the
EHCI host controller will assert an interrupt at the
next interrupt threshold.
Note: The EHCI host controller clears the IAAD bit
after it has set the IAA status bit in the USBSTS
register.
Note: In order to avoid undefined results, software
should not set this bit when the asynchronous
schedule is disabled.
1‘h0
Asynchronous schedule enable.
This bit controls whether the EHCI host controller
skips processing the asynchronous schedule,
according to encoding:
1‘b0 = Don’t process the asynchronous schedule.
1‘b1 = Use the ASYNCLISTADDR register to access
the asynchronous schedule.
1‘h0
Periodic schedule enable.
This bit controls whether the EHCI host controller
skips processing the periodic schedule, according to
encoding:
1‘b0 = Don’t process the periodic schedule.
1‘b1 = Use the PERIODICLISTBASE register to
access the periodic schedule.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 116. USBCMD register bit assignments (continued)
Bit
[03:02]
[01]
[00]
Name
FLS
HCRESET
RS
Reset value Description
2‘h0
Frame list size.
This 2 bit field specifies the size of the frame list,
according to encoding:
2‘b00 = 102 elements (4096 bytes).
2‘b01 = 512 elements (2048 bytes).
2‘b10 = 256 elements (1024 bytes) - for resourceconstrained environments
2‘b11 = Reserved.
The frame list size set by this field controls which bits
in the FRINDEX register should be used for the frame
list current index.
1‘h0
Host controller reset.
This control bit is used by software to reset the EHCI
host controller. When software set this bit, the EHCI
host controller resets its internal pipelines, timers,
counters, state machines, etc. to their initial values.
Any transaction currently in progress on USB is
immediately terminated. A USB reset is not driven on
downstream ports. PCI configuration registers are not
affected by this reset. All operational registers,
including port registers and port state machines are
set to their initial values.
Note: Port ownership reverts to the companion OHCI
host controller(s), with the side effects.
This bit is cleared by the EHCI host controller when
the reset process is complete.
Note: Software cannot terminate the reset process
early by writing a 1‘b0 to this field. Software must
reinitialize the EHCI host controller in order to return
to an operational state.
Note: Software setting this bit while HCHalted bit in
USBSTS register is equal to 1‘b0 results in undefined
behavior (because attempting to reset an actively
running EHCI host controller).
1‘h0
Run / stop.
Setting this bit, the EHCI host controller proceeds
with execution of the schedule, and it continues
execution as long as RS is set.
Clearing this bit, the EHCI host controller completes
the current and any actively pipelined transactions on
the USB and then halts. The HCHalted bit in the
USBSTS register reflects this status.
Note: The EHCI host controller must halt within 16
micro-frames after software clears the RS bit.
Note: In order to avoid undefined results, software
must not set the RS bit until the EHCI host controller
is in the halted state (i.e., HCHalted in the USBSTS
register is set to 1‘b1).
Doc ID 022642 Rev 3
117/584
USB 2.0 Host ports (UHC)
8.2.5
RM0321
USBSTS register
The USBSTS is a RW register which indicates pending interrupts and various states of the
EHCI host controller.
Note:
1
The status resulting from a transaction on the serial bus is not indicated in this register.
2
Software clears a bit in this register by writing a 1‘b1 to it.
Table 117. USBSTS register bit assignments
Bit
Name
Reset value Description
[31:16]
Reserved
-
Read: undefined. Write: should be zero.
1‘h0
Asynchronous schedule status.
The bit reports the current real status of the
asynchronous schedule, according to encoding:
1‘b0 = Disabled.
1‘b1 = Enabled.
The EHCI host controller is not required to
immediately disable or enable the asynchronous
schedule when software transitions the asynchronous
schedule enable bit in the USBCMD register. When
this bit and the asynchronous schedule enable bit are
the same value, the asynchronous schedule is either
enabled or disabled.
[15]
118/584
ASS
[14]
PSS
1‘h0
Periodic schedule status.
The bit reports the current real status of the periodic
schedule, according to encoding:
1‘b0 = Disabled.
1‘b1 = Enabled.
The EHCI host controller is not required to
immediately disable or enable the periodic schedule
when software transitions the periodic schedule
enable bit in the USBCMD register. When this bit and
the periodic schedule enable bit are the same value,
the periodic schedule is either enabled or disabled.
[13]
R
1‘h0
Reclamation.
This is a read-only status bit, which is used to detect
an empty asynchronous schedule.
[12]
HH
1‘h1
HCHalted.
This bit is set by the EHCI host controller after it has
stopped executing as a result of the RS bit (in
USBCMD register being cleared, either by software or
by the EHCI host controller hardware (e.g. internal
error). Besides, this bit is set to 1‘b0 whenever the RS
bit is set to 1‘b1.
[11:06]
Reserved
-
Read: undefined. Write: should be zero.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 117. USBSTS register bit assignments (continued)
Bit
[05]
[04]
[03]
[02]
Name
IAA
HSE
FLR
PCD
Reset value Description
1‘h0
Interrupt on async advance.
This status bit indicates the assertion of that interrupt
source. System software can force the EHCI host
controller to issue an interrupt the next time the EHCI
host controller advances the asynchronous schedule
by setting the interrupt on async advance doorbell bit
(IAAD) in the USBCMD register.
1‘h0
Host system error.
This bit is set by the EHCI host controller when a
serious error occurs during a host system access
involving the EHCI host controller module.
When this error occurs, the EHCI host controller
clears the RS bit in the USBCMD register to prevent
further execution of the scheduled TDs(1).
1‘h0
Frame list rollover.
This bit is set by the EHCI host controller when the
frame list index (see FRINDEX register in rolls over
from its maximum value to 0.
The exact value at which the rollover occurs depends
on the frame list size. For example, if the frame list
size (as programmed in the Frame list size, FLS, field
of the USBCMD register) is 1024 (FLS is 2‘b00), the
frame index register rolls over every time
FRINDEX[13] toggles. Similarly, if the size is 512
(FLS is 2‘b01), the EHCI host controller sets the FLR
bit every time FRINDEX[12] toggles.
1‘h0
Port change detect.
This bit is set by the EHCI host controller when any
port for which the port owner bit is set to 1‘b0 (bit PO
in port status controls register) has a change bit
transition from a 1‘b0 to a 1‘b1 or a force port resume
bit transition from a ‘b0 to a ‘b1 as a result of a J-K
transition detected on a suspended port.
This bit will also be set as a result of the connect
status change being set to 1‘b1 after system software
has relinquished ownership of a connected port by
writing a 1‘b1 to a port's port owner (PO) bit.
Doc ID 022642 Rev 3
119/584
USB 2.0 Host ports (UHC)
RM0321
Table 117. USBSTS register bit assignments (continued)
Bit
[01]
[00]
Name
USBERRINT
USBINT
Reset value Description
1‘h0
USB error interrupt.
This bit is set by the EHCI host controller when
completion of a USB transaction results in an error
condition (e.g., error counter underflow). If the TD on
which the error interrupt occurred also had its IOC bit
set, both this bit and USBINT bit are set.
1‘h0
USB interrupt.
This bit is set by the EHCI host controller on the
completion of a USB transaction, which results in the
retirement of a TD that had its IOC bit set. The EHCI
host controller also sets this bit when a short packet
is detected (actual number of bytes received was less
than the expected number of bytes).
1. See EHCI documentation for the detailed definitions of the data structures TD, IOC, etc.
8.2.6
USBINTR register
The USBINTR is a RW register which enables to report corresponding interrupts to the
software. It means that when an enabling bit of this register is set and the corresponding
interrupt is active, an interrupt is generated and sent to the EHCI host controller, that issue
the interrupt request (IRQ26 for EHCI1).
Note:
Interrupt sources that are disabled in this register (enabling bit set to 1‘b0) still appear in
USBSTS register allowing the software to poll for events.
Table 118. USBINTR register bit assignments
Bit
Name
Reset value Description
[31:06]
Reserved
-
[05]
[04]
[03]
120/584
Read: undefined. Write: should be zero.
Interrupt on Async
1‘h0
Advance Enable
When both this bit and the Interrupt on async
advance (IAA) bit in the USBSTS register are set, the
EHCI host controller will issue an interrupt at the next
interrupt threshold.
The interrupt is acknowledged by software clearing
the IAA bit.
Host System Error
1‘h0
Enable
When both this bit and the host system error (HSE)
bit in the USBSTS register are set, the EHCI host
controller will issue an interrupt.
The interrupt is acknowledged by software clearing
the HSE bit.
Frame List
Rollover Enable
When both this bit and the frame list rollover (FLR) bit
in the USBSTS register are set, the EHCI host
controller will issue an interrupt.
The interrupt is acknowledged by software clearing
the FLR bit.
1‘h0
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 118. USBINTR register bit assignments (continued)
Bit
[02]
[01]
[00]
8.2.7
Name
Port Change
Interrupt Enable
USB Error
Interrupt Enable
USB Interrupt
Enable
Reset value Description
1‘h0
When both this bit and the port change detect (PGD)
bit in the USBSTS register are set, the EHCI host
controller will issue an interrupt.
The interrupt is acknowledged by software clearing
the PGD bit.
1‘h0
When both this bit and the USBERRINT bit in the
USBSTS register are set, the EHCI host controller will
issue an interrupt at the next interrupt threshold. The
interrupt is acknowledged by software clearing the
USBERRINT bit.
1‘h0
When both this bit and the USBINT bit in the
USBSTS register are set, the EHCI host controller will
issue an interrupt at the next interrupt threshold. The
interrupt is acknowledged by software clearing the
USBINT bit.
FRINDEX register
The FRINDEX (frame index) is a RW register used by the EHCI host controller to index into
the periodic frame list. The register updates every 125 microseconds, that is each microframe.
Note:
1
The FRINDEX register must be written as a DWord. Byte writes produce undefined results.
2
The FRINDEX register cannot be written unless the EHCI host controller is in the halted
state as indicated by the HCHalted bit (in USBSTS register). A write to this register while the
RS bit (in USBCMD register) is set to 0b1 produces undefined results. Writes to this register
also affect the SOF value.
Table 119. FRINDEX register bit assignments
Bit
Name
Reset value Description
[31:14]
Reserved
-
Read: undefined. Write: should be zero.
[13:00]
Frame Index
14‘h0000
See Table 120.
The value of the frame index field increments at the end of each time frame (e.g. microframe). In particular, bits [N:3] of this field are used as frame list current index to select a
particular entry in the periodic frame list during periodic schedule execution.
Note:
This means that each location of the frame list is accessed 8 times (frames or micro-frames)
before moving to the next index.
The actual number of bits (that is, N) used for the frame list current index depends on the
size of the frame list as set by system software in the FLS field in the USBCMD register,
according to encoding:
Doc ID 022642 Rev 3
121/584
USB 2.0 Host ports (UHC)
RM0321
Table 120. USBCMD register encoding
FLS field value
Number of elements
N
2‘b00
1024
12
2‘b01
512
11
2‘b10
256
10
2‘b11
Reserved
-
The SOF frame number value for the bus SOF token is derived or alternatively managed
from this register. The value of FRINDEX must be 125 µsec (1 micro-frame) ahead of the
SOF token value. The SOF value may be implemented as an 11 bit shadow register. For this
discussion, this shadow register is 11 bits and is named SOFV. Then, SOFV updates every
8 micro-frames (1 millisecond).
An example implementation to achieve this behavior is to increment SOFV each time the
FRINDEX[2:0] increments from a 0 to a 1.
Software must use the value of FRINDEX to derive the current micro-frame number, both for
high-speed isochronous scheduling purposes and to provide the get micro-frame number
function required for client drivers.
Therefore, the value of FRINDEX and the value of SOFV must be kept consistent if either
chip is reset or software writes to FRINDEX. Writes to FRINDEX must also write-through
FRINDEX[13:3] to SOFV[10:0]. In order to keep the update as simple as possible, software
should never write a FRINDEX value where the three least significant bits are 3‘b111 or
3‘b000.
8.2.8
CTRLDSSEGMENT register
The CTRLDSSEGMENT (control data structure segment) is a RW register which
corresponds to the most significant address bits [63:32] for all EHCI data structures.
If the 64 bit addressing capability (64BAC) field in HCCPARAMS register is set to 1‘b0, then
this register is not used. Software cannot write to it and a read from this register will return
zeros.
If the 64BAC field in HCCPARAMS register is set to 1‘b1, then this register is used with the
link pointers to construct 64 bit addresses to EHCI control data structures. This register is
concatenated with the link pointer from either the PERIODICLISTBASE, ASYNCLISTADDR
or any control data structure link field to construct a 64 bit address.
This register allows the Host software to locate all control data structures within the same 4
GByte memory segment.
8.2.9
PERIODICLISTBASE register
The PERIODICLISTBASE (periodic frame list base address) is a RW register which
contains the beginning address of the periodic frame list in the system memory. If the EHCI
host controller is in 64 bit mode (as indicated by a 1‘b1 in the 64BAC field in the
HCCSPARAMS register, then the most significant 32 bits of every control data structure
address comes from the CTRLDSSEGMENT register (see above).
The contents of this register are combined with the FRINDEX register to enable the EHCI
host controller to step through the periodic frame list in sequence.
122/584
Doc ID 022642 Rev 3
RM0321
Note:
USB 2.0 Host ports (UHC)
1
System software loads this register prior to starting the schedule execution by the EHCI host
controller.
2
The memory structure referenced by this physical memory pointer is assumed to be 4
kbytes aligned.
Table 121. PERIODICLISTBASE register bit assignments
8.2.10
Bit
Name
Reset value Description
[31:12]
Base address
20’h0
These bits correspond to memory address signals
[31:12], respectively.
[11:00]
Reserved
-
Read: undefined. Write: should be zero.
SYNCLISTADDR register
The ASYNCLISTADDR (current asynchronous list address) is a RW register which contains
the address of the next asynchronous queue head to be executed.
Note:
1
If the Host Controller is in 64 bit mode (as indicated by a 1‘b1 in the 64BAC field in the
HCCSPARAMS register, then the most significant 32 bits of every control data structure
address comes from the CTRLDSSEGMENT register.
2
Bits [4:0] of this register cannot be modified by system software and will always return a zero
when read.
3
The memory structure referenced by this physical memory pointer is assumed to be 32
bytes (cache line) aligned.
Table 122. ASYNCLISTADDR register bit assignments
8.2.11
Bit
Name
Reset value Description
[31:05]
LPL
27’h0
Link pointer low. These bits correspond to memory
address signals [31:5], respectively. This field may
only reference a queue head (QH).
[04:00]
Reserved
-
Read: undefined. Write: should be zero.
CONFIGFLAG register
The CONFIGFLAG is a RW register which is properly set by the host software as the last
action in EHCI host controller initialization (after initial power-on or hardware/software
reset). In particular, this register allows to control the global port routing policy of the EHCI
host controller.
Doc ID 022642 Rev 3
123/584
USB 2.0 Host ports (UHC)
RM0321
Table 123. CONFIGFLAG register bit assignments
Bit
Name
Reset value Description
[31:01]
Reserved
-
Read: undefined. Write: should be zero.
1’h0
Configure flag.
This bit controls the global port routing policy of the
EHCI host controller, according to encoding:
1‘b0 = All ports are routed to the appropriate
companion OHCI host controller.
1‘b1 = All ports are routed to the EHCI host controller.
[00]
8.2.12
CF
PORTSC registers
Each EHCI host controller must implement one or more port status and control (PORTSC)
registers. The actual number of PORTSC registers implemented by the EHCI host controller
is reported in the N_PORTS field of the HCSPARAMS register. For SPEAr320S
implementation this value is 4’h2 then two ports are available.
The bit assignments of each PORTSCi (i = 1, 2... N_PORTS) register are given in Table 124.
Table 124. PORTSC register bit assignments
Bit
Name
Reset
value
Description
[31:23]
Reserved
-
Read: undefined. Write: should be zero.
[22]
WKOC_E
1’h0
Wake on over-current enable.
Setting this bit enables the port to be sensitive to over-current
conditions as wake-up events.
[21]
WKDSCNNT_E 1’h0
Wake on disconnect enable.
Setting this bit enables the port to be sensitive to device
disconnects as wake-up events.
WKCNNT_E
1’h0
Wake on connect enable.
Setting this bit enables the port to be sensitive to device
connects as wake-up events.
Note: The three fields above are all zero if port power (PP bit
in this register) is zero.
4’h0
Port test control.
When this 4 bit field is zero (4‘b0), the port is not operating in a
test mode. In contrast, a non-zero value indicates that it is
operating in test mode and the specific test mode is indicated
by the specific value, according to encoding:
4‘b0000 = Disabled.
4‘b0001 = Test J_STATE.
4‘b0010 = Test K_STATE.
4‘b0011 = Test SE0_NAK.
4‘b0100 = Test Packet.
4‘b0101 = Test FORCE_ENABLE.
4‘b0001 to 4‘b1111Reserved.
[20]
[19:16]
124/584
PTC
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 124. PORTSC register bit assignments (continued)
Bit
[15:14]
[13]
[12]
Name
PIC
PO
PP
Reset
value
Description
2’h0
Port indicator control.
Writing to these 2 bit field has no effect if the P_INDICATOR
bit in the HCSPARAMS register is cleared. If P_INDICATOR bit
is set to 1‘b1, then the PIC encoding is:
2‘b00 = Port indicators are off.
2‘b01 = Amber.
2‘b10 = Green.
2‘b11 = Undefined.
Note: This field is zero if port power (PP bit in this register) is
zero.
1’h1
Port owner.
This bit unconditionally goes to 1‘b0 when the CF bit in the
CONFIGFLAG register makes a 1‘b0 to 1‘b1 transition. In
contrast, this bit unconditionally goes to 1‘b1 whenever the CF
bit is 1‘b0.
System software uses this PO field to release ownership of the
port to a selected host controller (in the event that the attached
device is not an high-speed device). Software writes a 1‘b1 to
this bit when the attached device is not an HS device, meaning
that a companion OHCI host controller owns and controls the
relevant port.
1’h0
Port Power.
The function of this bit depends on the value of the port power
control (PPC) field in the HCSPARAMS register, according to
encoding:
1‘b0 1‘b1 = EHCI host controller does not have port power
control switches, and each port is hard-wired to power. This
field is RO.
1‘b1 1‘bx = EHCI host controller has port power control
switches, and actual PP value represents the current setting of
the switch:
1‘b0 Off
1‘b1 On
When power is not available on a port (i.e. PP equals to 1 ‘b0),
the port is non-functional and will not report attaches,
detaches, etc.
Note: When an over-current condition is detected on a
powered port and PPC is set, the PP bit in each affected port
may be transitioned by the EHCI host controller from 1‘b1 to
1‘b0 (then removing power from the port).
Doc ID 022642 Rev 3
125/584
USB 2.0 Host ports (UHC)
RM0321
Table 124. PORTSC register bit assignments (continued)
Bit
Reset
value
Description
[11:10]
LS
2’h0
Line status.
This 2 bit field reflects the current logical levels of the D+ (bit
[11]) and D- (bit [10]) signal lines, according to encoding:
2‘b00 SE0 = Not low-speed device, perform EHCI reset.
2‘b01 J-state = Not low-speed device, perform EHCI reset.
2‘b10 K-state = Low-speed device, release ownership of port.
2‘b11 Undefined = Not low-speed device, perform EHCI reset.
These bits are used for detection of low-speed (LS) USB
devices prior to the port reset and enable sequence.
Note: This field is valid only when the port enable bit is 1‘b0
and the current connect status bit is set to 1‘b1.
Note: The value of this field is undefined if port power (PP bit
in this register) is zero.
[09]
Reserved
-
Read: undefined. Write: should be zero.
1’h0
Port Reset.
This bit states whether the port is in reset, according to
encoding:
1‘b0 = Port is not in reset.
1‘b1 = Port is in reset.
When software writes a 1‘b1 to this bit (from a 1‘b0), the bus
reset sequence as defined in the Universal Serial Bus
Specification Revision 2.0 is started. Software must keep this
bit at a 1‘b1 long enough to ensure the reset sequence
completes.
Note: When software writes this PR bit to a 1‘b1, it must also
write a 1‘b0 to the port enable bit.
Software writes a 1‘b0 to this bit to terminate the bus reset
sequence.
Note: When software writes a 1‘b0 to this bit there may be a
delay before the bit status changes to a 1‘b0. The bit status will
not read as a 1‘b0 until after the reset has completed.
If the port is in high-speed (HS) mode after reset is complete,
the EHCI host controller will automatically enable this port
(e.g. set the port enable bit to a 1‘b1). A EHCI host controller
must terminate the reset and stabilize the state of the port
within 2 milliseconds of software transitioning this bit from
a1’b1 to a 1‘b0.
Note: The HCHalted bit in the USBSTS register should be a
zero before software attempts to use the PR bit. The EHCI
host controller may hold PR asserted to a one when the
HCHalted bit is a one.
Note: This field is zero if port power (PP bit in this register) is
zero.
[08]
126/584
Name
PR
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 124. PORTSC register bit assignments (continued)
Bit
[07]
Name
S
Reset
value
Description
1’h0
Suspend.
This bit states whether the port is in suspend, according to
encoding:
1‘b0 = Port is not in suspend state.
1‘b1 = Port is in suspend state.
This S bit together with the port enabled bit (PEN) in this
register define the port states as follows:
1‘b0 1‘bx = Disabled.
1‘b1 1‘b0 = Enabled.
1‘b1 1‘b1 = Suspend.
When in suspend state, downstream propagation of data is
blocked on this port, except for port reset. The blocking occurs
at the end of the current transaction, if a transaction was in
progress when this bit was written to 1‘b1. In the suspend
state, the port is sensitive to resume detection. Note that the
bit status does not change until the port is suspended and that
there may be a delay in suspending a port if there is a
transaction currently in progress on the USB.
A write of 1’b0 to this bit is ignored by the EHCI Host
Controller. The EHCI host controller will unconditionally set
this bit to a zero when:
software sets the force port resume (FPR) bit to 1‘b0 (from a
1‘b1)
software sets the port reset (PR) bit to 1‘b1 (from a 1‘b0).
Note: If host software sets this bit to 1‘b1 when the port is not
enabled (i.e. PEN bit is 1‘b0) the results are undefined.
Note: This field is zero if port power (PP bit in this register) is
zero.
Doc ID 022642 Rev 3
127/584
USB 2.0 Host ports (UHC)
RM0321
Table 124. PORTSC register bit assignments (continued)
Bit
[06]
[05]
[04]
[03]
128/584
Name
FPR
OcC
OcA
PEDC
Reset
value
Description
1’h0
Force port resume.
This bit states whether the port is in suspend, according to
encoding:
1‘b0 = No resume (K-state) detected/driven on port.
1‘b1 = Resume detected/driven on port.
The functionality defined for manipulating this bit depends on
the value of the suspend bit (see above). For example, if the
port is not suspended (S is 1‘b0 and PEN is 1‘b1) and
software transitions this bit to 1‘b1, then the effects on the bus
are undefined.
The EHCI host controller sets the FPR bit to 1‘b1 if a J-to-K
transition is detected while the port is in the Suspend state.
When this bit changes to 1‘b1 because a J-to-K transition is
detected, the port change detect (PCD) bit in the USBSTS
register is also set to 1‘b1.
Software sets this bit to 1‘b1 to drive resume signaling. In this
case, the EHCI host controller must not set the port change
detect bit. The resume signaling (full-speed 'K') is driven on
the port as long as this bit remains a 1‘b1. Software must
appropriately time the resume and set this bit to a zero when
the appropriate amount of time has elapsed. Writing a zero
(from one) causes the port to return to high-speed mode
(forcing the bus below the port into a high-speed idle). This bit
will remain a one until the port has switched to the high-speed
idle.
The EHCI host controller must complete this transition within 2
milliseconds of software setting this bit to 1‘b0.
Note: This field is zero if port power (PP bit in this register) is
zero.
1’h0
Over-current change.
This bit is set to 1‘b1 when there is a change in the overcurrent active (OcA) bit in this register. Software clears this bit
by writing a one to this bit position.
1’h0
Over-current active.
This bit states whether the port has a over-current condition,
according to encoding:
1‘b0 = This port does not have an over-current condition.
1‘b1 = This port currently has an over-current condition.
Note: This bit will automatically transition from a 1‘b1 to a 1‘b0
when the over-current condition is removed.
1’h0
Port enable/disable change.
This bit is set to 1‘b1 when port enabled/disabled status
(reflected by the PEN bit in this register) has changed.
Software clears this bit by writing a one to this bit position.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 124. PORTSC register bit assignments (continued)
Bit
[02]
[01]
[00]
8.2.13
Name
PEN
CSC
CCS
Reset
value
Description
1’h0
Port enabled/disabled.
This bit states whether the port is enabled, according to
encoding:
1‘b0 = Disabled.
1‘b1 = Enabled.
Ports can only be enabled by the EHCI host controller as a
part of the reset and enable. Software cannot enable a port by
writing a 1‘b1 to this field. The EHCI host controller will only
set this bit to 1‘b1 when the reset sequence determines that
the attached device is an high-speed (HS) device.
Ports can be disabled by either a fault condition (disconnect
event or other fault condition) or by host software. When the
port is disabled (1‘b0), downstream propagation of data is
blocked on this port, except for reset.
Note: The bit status does not change until the port state
actually changes. There may be a delay in disabling or
enabling a port due to other EHCI host controller and bus
events.
This field is zero if port power (PP bit in this register) is zero.
1’h0
Connect status change.
This bit is set to indicates that a change has occurred in the
port’s current connect status (CCS bit in this register).
The EHCI host controller sets this bit for all changes to the port
device connect status, even if system software has not cleared
an existing connect status change. For example, the insertion
status changes twice before system software has cleared the
changed condition, hub hardware will be setting an already-set
bit (i.e., the bit will remain set).
Software clears this bit by writing a one to this bit position.
This field is zero if port power (PP bit in this register) is zero.
1’h0
Current connect status.
This bit reflects the current state of the port, according to
encoding, and may not correspond directly to the event that
caused the CSC bit to be set:
1‘b0 = No device is present on port.
1‘b1 = Device is present on port.
This field is zero if port power (PP bit in this register) is zero.
INSNREG00 register
The INSNREG00 is a RW 14 bit register which allows to reduce the microframe length in
simulation.
Doc ID 022642 Rev 3
129/584
USB 2.0 Host ports (UHC)
8.2.14
RM0321
INSNREG01 register
The INSNREG01 is a RW register which allows to break memory transactions (in both out
and in direction) into chunks once a threshold value (in bytes) is reached. Enabling of break
memory feature is driven by the INSNREG03 register.
Table 125. INSNREG01 register bit assignments
8.2.15
Bit
Name
Reset value Description
[31:16]
OUT
16’h0020
Out transactions threshold (in bytes).
[15:00]
IN
16’h0020
In transactions threshold (in bytes).
INSNREG02 register
The INSNREG02 is a RW 12 bit register which allows to configure the packet buffer depth.
As stated by the reset value (12’h080), the buffer depth is 128 x 32 by default.
8.2.16
INSNREG03 register
The INSNREG03 is a RW 1 bit register used in conjunction with INSNREG01 to
enable/disable breaking of memory transactions into chunks. The bit description is given in
Table 126.
Table 126. INSNREG03 register bit assignments
8.2.17
Bit
Name
Reset value Description
[00]
BMT
1’h0
Setting this bit enables break memory transfer.
INSNREG05 register
The INSNREG05 is a RW 32 bit register which allows to read the UTMI registers from the
following signals:
Table 127. INSNREG05 register bit assignments
130/584
Bit
Name
Reset value Description
[31:18]
Reserved
-
Read: undefined. Write: should be zero.
[17]
VBusy
1’h0
Software RO.
[16:13]
VPort
4’h0
Software R/W.
[12]
VControlLoadM
1’h0
1‘b0 › Load new control word
1‘b1 › NOP (Software R/W).
[11:08]
VControl
4’h0
Vendor control (software R/W).
[07:00]
VStatus
8’h0
Vendor status (software RO).
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
8.3
OHCI register description
8.3.1
Operation registers
The Host Controller (HC) contains a set of on-chip operational registers which are mapped
into a noncacheable portion of the system addressable space. These registers are used by
the Host Controller Driver (HCD). According to the function of these registers, they are
divided into four partitions, specifically for Control and Status, Memory Pointer, Frame
Counter and Root Hub. All of the registers should be read and written as Dwords.
Reserved bits may be allocated in future releases of this specification. To ensure
interoperability, the Host Controller Driver that does not use a reserved field should not
assume that the reserved field contains 0. Furthermore, the Host Controller Driver should
always preserve the value(s) of the reserved field. When a R/W register is modified, the
Host Controller Driver should first read the register, modify the bits desired, then write the
register with the reserved bits still containing the read value. Alternatively, the Host
Controller Driver can maintain an in-memory copy of previously written values that can be
modified and then written to the Host Controller register. When a write to set/clear register is
written, bits written to reserved fields should be 0.
8.3.2
Control and status partition
HcRevision register
Table 128. HcRevision register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31:08]
Reserved
[07:00]
Revision
This read-only field contains the BCD representation of
the version of the HCI specification that is implemented by
this HC.
For example, a value of 11h corresponds to version 1.1.
All of the HC implementations that are compliant with this
specification will have a value of 10h.
REV
8’h10
R
R
HcControl register
The HcControl register defines the operating modes for the Host Controller. Most of the
fields in this register are modified only by the Host Controller Driver, except
HostControllerFunctionalState and RemoteWakeupConnected.
Doc ID 022642 Rev 3
131/584
USB 2.0 Host ports (UHC)
RM0321
Table 129. HcControl register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:11]
[10]
[09]
[08]
[07:06]
132/584
HC
--
Reserved
RWE
R
RemoteWakeupEnable
This bit is used by HCD to enable or disable the remote
wakeup feature upon the detection of upstream resume
signaling. When this bit is set and the ResumeDetected bit
in HcInterruptStatus is set, a remote wakeup is signaled to
the host system. Setting this bit has no impact on the
generation of hardware interrupt.
R
RemoteWakeupConnected
This bit indicates whether HC supports remote wakeup
signaling. If remote wakeup is supported and used by the
system it is the responsibility of system firmware to set
this bit during POST. HC clears the bit upon a hardware
reset but does not alter it upon a software reset. Remote
wakeup signaling of the host system is host-bus-specific
and is not described in this specification.
R
InterruptRouting
This bit determines the routing of interrupts generated by
events registered in HcInterruptStatus. If clear, all
interrupts are routed to the normal host bus interrupt
mechanism. If set, interrupts are routed to the System
Management Interrupt. HCD clears this bit upon a
hardware reset, but it does not alter this bit upon a
software reset. HCD uses this bit as a tag to indicate the
ownership of HC.
R
HostControllerFunctionalState for USB
00b: USBRESET
01b: USBRESUME
10b: USBOPERATIONAL
11b: USBSUSPEND
A transition to USBOPERATIONAL from another state
causes SOF generation to begin 1 ms later. HCD may
determine whether HC has begun sending SOFs by
reading the StartofFrame field of
HcInterruptStatus.
This field may be changed by HC only when in the
USBSUSPEND state. HC may move from the
USBSUSPEND state to the USBRESUME state after
detecting the resume signaling from a downstream port.
HC enters USBSUSPEND after a software reset, whereas
it enters USBRESET after a hardware reset. The latter
also resets the RootHub and asserts subsequent reset
signaling to downstream ports.
RWC
IR
HCFS
0b
0b
0b
00b
R/W
R/W
R/W
R/W
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 129. HcControl register bit assignments (continued)
Read/Write
Bits
Name
Reset
Description
HCD
[05]
[04]
[03]
BLE
CLE
IE
0b
0b
0b
R/W
R/W
R/W
HC
R
BulkListEnable
This bit is set to enable the processing of the Bulk list in
the next Frame. If cleared by HCD, processing of the Bulk
list does not occur after the next SOF. HC checks this bit
whenever it determines to process the list. When disabled,
HCD may modify the list. If HcBulkCurrentED is pointing
to an ED to be removed, HCD must advance the pointer
by updating HcBulkCurrentED before re-enabling
processing of the list.
R
ControlListEnable
This bit is set to enable the processing of the Control list in
the next Frame. If cleared by HCD, processing of the
Control list does not occur after the next SOF. HC must
check this bit whenever it determines to process the list.
When disabled, HCD may modify the list. If
HcControlCurrentED is pointing to an ED to be removed,
HCD must advance the pointer by updating
HcControlCurrentED before re-enabling processing of the
list.
R
IsochronousEnable
This bit is used by HCD to enable/disable processing of
isochronous EDs. While processing the periodic list in a
Frame, HC checks the status of this bit when it finds an
Isochronous ED (F=1). If set (enabled), HC continues
processing the EDs. If cleared (disabled), HC halts
processing of the periodic list (which now contains only
isochronous EDs) and begins processing the Bulk/Control
lists. Setting this bit is guaranteed to take effect in the next
Frame (not the current Frame).
Doc ID 022642 Rev 3
133/584
USB 2.0 Host ports (UHC)
RM0321
Table 129. HcControl register bit assignments (continued)
Read/Write
Bits
Name
Reset
Description
HCD
[02]
[01:00]
PLE
CBSR
0b
00b
R/W
R/W
HC
R
PeriodicListEnable
This bit is set to enable the processing of the periodic list
in the next Frame. If cleared by HCD, processing of the
periodic list does not occur after the next SOF. HC must
check this bit before it starts processing the list.
R
ControlBulkServiceRatio
This specifies the service ratio between Control and Bulk
EDs. Before processing any of the nonperiodic lists, HC
must compare the ratio specified with its internal count on
how many nonempty Control EDs have been processed,
in determining whether to continue serving another
Control ED or switching to Bulk EDs.
The internal count will be retained when crossing the
frame boundary. In case of reset, HCD is responsible for
restoring this value.
00 - 1:1
01 - 2:1
10 - 3:1
11 - 4:1
HcCommandStatus register
The HcCommandStatus register is used by the Host Controller to receive commands issued
by the Host Controller Driver, as well as reflecting the current status of the Host Controller.
To the Host Controller Driver, it appears to be a "write to set" register. The Host Controller
must ensure that bits written as ‘1’ become set in the register while bits written as ‘0’ remain
unchanged in the register. The Host Controller Driver may issue multiple distinct commands
to the Host Controller without concern for corrupting previously issued commands. The Host
Controller Driver has normal read access to all bits.
The SchedulingOverrunCount field indicates the number of frames with which the Host
Controller has detected the scheduling overrun error. This occurs when the Periodic list
does not complete before EOF. When a scheduling overrun error is detected, the Host
Controller increments the counter and sets the SchedulingOverrun field in the
HcInterruptStatus register.
134/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 130. HcCommandStatus register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31:18]
Reserved
[17:16]
SchedulingOverrunCount
These bits are incremented on each scheduling overrun
error. It is initialized to 00b and wraps around at 11b. This
will be incremented when a scheduling overrun is
detected even if SchedulingOverrun in HcInterruptStatus
has already been set. This is used by HCD to monitor any
persistent scheduling problems.
SOC
00b
R
R/W
[15:04]
Reserved
[03]
R/R
OwnershipChangeRequest
This bit is set by an OS HCD to request a change of
control of the HC. When set HC will set the
OwnershipChange field in HcInterruptStatus. After the
changeover, this bit is cleared and remains so until the
next request from OS HCD.
R
BulkListFilled
This bit is used to indicate whether there are any TDs on
the Bulk list. It is set by HCD whenever it adds a TD to an
ED in the Bulk list.
When HC begins to process the head of the Bulk list, it
checks BF. As long as BulkListFilled is 0, HC will not start
processing the Bulk list. If BulkListFilled is 1, HC will start
processing the Bulk list and will set BF to 0. If HC finds a
TD on the list, then HC will set BulkListFilled to 1 causing
the Bulk list processing to continue. If no TD is found on
the Bulk list, and if HCD does not set BulkListFilled, then
BulkListFilled will still be 0 when HC completes
processing the Bulk list and Bulk list processing will stop.
[02]
OCR
BLF
00b
0b
R/W
R/W
Doc ID 022642 Rev 3
135/584
USB 2.0 Host ports (UHC)
RM0321
Table 130. HcCommandStatus register bit assignments (continued)
Read/Write
Bits
Name
Reset
Description
HCD
[01]
[00]
CLF
HCR
0b
0b
R/W
R/W
HC
R
ControlListFilled
This bit is used to indicate whether there are any TDs on
the Control list. It is set by HCD whenever it adds a TD to
an ED in the Control list.
When HC begins to process the head of the Control list, it
checks CLF. As long as ControlListFilled is 0, HC will not
start processing the Control list. If CF is 1, HC will start
processing the Control list and will set ControlListFilled to
0. If HC finds a TD on the list, then HC will set
ControlListFilled to 1 causing the Control list processing to
continue. If no TD is found on the Control list, and if the
HCD does not set ControlListFilled, then ControlListFilled
will still be 0 when HC completes processing
the Control list and Control list processing will stop.
R
HostControllerReset
This bit is set by HCD to initiate a software reset of HC.
Regardless of the functional state of HC, it moves to the
USBSUSPEND state in which most of the operational
registers are reset except those stated otherwise; e.g., the
InterruptRouting field of HcControl, and no Host bus
accesses are allowed. This bit is cleared by HC upon the
completion of the reset operation.The reset operation
must be completed within 10 ms. This bit, when set,
should not cause a reset to the Root Hub and no
subsequent reset signaling should be asserted to its
downstream ports.
HcInterruptStatus register
This register provides status on various events that cause hardware interrupts. When an
event occurs, Host Controller sets the corresponding bit in this register. When a bit becomes
set, a hardware interrupt is generated if the interrupt is enabled in the HcInterruptEnable
register (see Section 7.1.5) and the MasterInterruptEnable bit is set. The Host Controller
Driver may clear specific bits in this register by writing ‘1’ to bit positions to be cleared. The
Host Controller Driver may not set any of these bits. The Host Controller will never clear the
bit.
136/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 131. HcInterruptStatus register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31]
Reserved
[30]
OwnershipChange
This bit is set by HC when HCD sets the
OwnershipChangeRequest field in HcCommandStatus.
This event, when unmasked, will always generate an
System Management Interrupt (SMI) immediately.
This bit is tied to 0b when the SMI pin is not implemented.
OC
0b
R/W
R/W
[29:07]
[06]
[05]
[04]
[03]
[02]
[01]
[00]
Reserved
RHSC 0b
FN0
UE
RD
SF
WDH
SO
0b
0b
0b
0b
0b
0b
R/W/
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RootHubStatusChange
This bit is set when the content of HcRhStatus or the
content of any of
HcRhPortStatus[NumberofDownstreamPort] has
changed.
R/W
FrameNumberOverflow
This bit is set when the MSb of HcFmNumber (bit 15)
changes value, from 0 to 1 or from 1 to 0, and after
HccaFrameNumber has been updated.
R/W
UnrecoverableError
This bit is set when HC detects a system error not related
to USB. HC should not proceed with any processing nor
signaling before the system error has been corrected.
HCD clears this bit after HC has been reset.
R/W
ResumeDetected
This bit is set when HC detects that a device on the USB
is asserting resume signaling. It is the transition from no
resume signaling to resume signaling causing this bit to
be set. This bit is not set when HCD sets the
USBRESUME state.
R/W
StartofFrame
This bit is set by HC at each start of a frame and after the
update of HccaFrameNumber. HC also generates a SOF
token at the same time.
R/W
WritebackDoneHead
This bit is set immediately after HC has written
HcDoneHead to HccaDoneHead. Further updates of the
HccaDoneHead will not occur until this bit has been
cleared. HCD should only clear this bit after it has saved
the content of HccaDoneHead.
R/W
SchedulingOverrun
This bit is set when the USB schedule for the current
Frame
overruns
and
after
the
update
of
HccaFrameNumber. A scheduling overrun will also cause
the SchedulingOverrunCount of HcCommandStatus to be
incremented.
Doc ID 022642 Rev 3
137/584
USB 2.0 Host ports (UHC)
RM0321
HcInterruptEnable register
Each enable bit in the HcInterruptEnable register corresponds to an associated interrupt bit
in the HcInterruptStatus register. The HcInterruptEnable register is used to control which
events generate a hardware interrupt. When a bit is set in the HcInterruptStatus register
AND the corresponding bit in the HcInterruptEnable register is set AND the
MasterInterruptEnable bit is set, then a hardware interrupt is requested on the host bus.
Writing a '1' to a bit in this register sets the corresponding bit, whereas writing a '0' to a bit in
this register leaves the corresponding bit unchanged. On read, the current value of this
register is returned.
Table 132. HcInterruptEnable register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31]
MIE
0b
R/W
R
A ‘0’ written to this field is ignored by HC. A '1' written to
this field enables interrupt generation due to events
specified in the other bits of this register. This is used by
HCD as a Master Interrupt Enable.
[30]
OC
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Ownership Change.
[29:07]
Reserved
[06]
RHSC
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Root Hub Status
Change.
[05]
FNO
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Frame Number
Overflow.
[04]
UE
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Unrecoverable
Error.
[03]
RD
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Resume Detect.
[02]
SF
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Start of Frame.
[01]
WDH
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to HcDoneHead
Writeback.
[00]
SO
0b
R/W
R
0 - Ignore
1 - Enable interrupt generation due to Scheduling
Overrun.
HcInterruptDisable register
Each disable bit in the HcInterruptDisable register corresponds to an associated interrupt bit
in the HcInterruptStatus register. The HcInterruptDisable register is coupled with the
138/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
HcInterruptEnable register. Thus, writing a '1' to a bit in this register clears the
corresponding bit in the HcInterruptEnable register, whereas writing a '0' to a bit in this
register leaves the corresponding bit in the HcInterruptEnable register unchanged. On read,
the current value of the HcInterruptEnable register is returned.
Table 133. HcInterruptDisable register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31]
MIE
0b
R/W
R
A ‘0’ written to this field is ignored by HC. A '1' written to
this field disables interrupt generation due to events
specified in the other bits of this register. This field is set
after a hardware or software reset.
[30]
OC
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Ownership Change.
[29:07]
8.3.3
Reserved
[06]
RHSC
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Root Hub Status
Change.
[05]
FNO
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Frame Number
Overflow.
[04]
UE
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Unrecoverable
Error.
[03]
RD
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Resume Detect.
[02]
SF
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Start of Frame.
[01]
WDH
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to HcDoneHead
Writeback.
[00]
SO
0b
R/W
R
0 - Ignore
1 - disable interrupt generation due to Scheduling
Overrun.
Memory pointer partition
HcHCCA register
The HcHCCA register contains the physical address of the Host Controller Communication
Area. The Host Controller Driver determines the alignment restrictions by writing all 1s to
HcHCCA and reading the content of HcHCCA. The alignment is evaluated by examining the
number of zeroes in the lower order bits. The minimum alignment is 256 bytes; therefore,
bits 0 through 7 must always return '0' when read. Detailed description can be found in
Chapter 4. This area is used to hold the control structures and the Interrupt table that are
accessed by both the Host Controller and the Host Controller Driver.
Doc ID 022642 Rev 3
139/584
USB 2.0 Host ports (UHC)
RM0321
Table 134. HcHCCA register bit assignments
Read/Write
Bits
[31:08]
Name
HCCA
Reset
0h
Description
HCD
HC
R/W
R
[07:00]
This is the base address of the Host Controller
Communication Area.
Reserved
HcPeriodCurrentED register
The HcPeriodCurrentED register contains the physical address of the current Isochronous
or Interrupt Endpoint Descriptor.
Table 135. HcPeriodCurrentED register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:04]
PCED
0h
R
HC
R/W
[03:00]
PeriodCurrentED
This is used by HC to point to the head of one of the
Periodic lists which will be processed in the current
Frame. The content of this register is updated by HC after
a periodic ED has been processed. HCD may read the
content in determining which ED is currently being
processed at the time of reading.
Reserved
HcControlHeadED register
The HcControlHeadED register contains the physical address of the first Endpoint
Descriptor of the Control list.
Table 136. HcControlHeadED register bit assignments
Read/Write
Bits
Name
Reset
Descritpion
HCD
[31:04]
CHED
0h
R/W
HC
R
[03:00]
ControlHeadED
HC traverses the Control list starting with the
HcControlHeadED pointer. The content is loaded from
HCCA during the initialization of HC.
Reserved
HcControlCurrentED register
The HcControlCurrentED register contains the physical address of the current Endpoint
Descriptor of the Control list.
140/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 137. HcControlCurrentED register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:04]
CCED
0h
R/W
HC
R/W
[03:00]
ControlCurrentED
This pointer is advanced to the next ED after serving the
present one. HC will continue processing the list from
where it left off in the last Frame. When it reaches the end
of the Control list, HC checks the ControlListFilled of in
HcCommandStatus. If set, it copies the content of
HcControlHeadED to HcControlCurrentED and clears the
bit. If not set, it does nothing. HCD is allowed to modify
this register only when the ControlListEnable of HcControl
is cleared. When set, HCD only reads the instantaneous
value of this register. Initially, this is set to zero to indicate
the end of the Control list.
Reserved
HcBulkHeadED register
The HcBulkHeadED register contains the physical address of the first Endpoint Descriptor
of the Bulk list.
Table 138. HcBulkHeadED register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:04]
BHED
0h
R/W
[03:00]
HC
R
BulkHeadED
HC traverses the Bulk list starting with the HcBulkHeadED
pointer. The content is loaded from HCCA during the
initialization of HC.
Reserved
HcBulkCurrentED register
The HcBulkCurrentED register contains the physical address of the current endpoint of the
Bulk list. As the Bulk list will be served in a round-robin fashion, the endpoints will be
ordered according to their insertion to the list.
Doc ID 022642 Rev 3
141/584
USB 2.0 Host ports (UHC)
RM0321
Table 139. HcBulkCurrentED register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:04]
BCED
0h
R/W
HC
R/W
[03:00]
BulkCurrentED
This is advanced to the next ED after the HC has served
the present one. HC continues processing the list from
where it left off in the last Frame. When it reaches the end
of the Bulk list, HC checks the ControlListFilled of
HcControl. If set, it copies the content of HcBulkHeadED
to HcBulkCurrentED and clears the bit. If it is not set, it
does nothing. HCD is only allowed to modify this register
when the BulkListEnable of HcControl is cleared. When
set, the HCD only reads the instantaneous value of this
register. This is initially set to zero to indicate the end of
the Bulk list.
Reserved
HcDoneHead register
The HcDoneHead register contains the physical address of the last completed Transfer
Descriptor that was added to the Done queue. In normal operation, the Host Controller
Driver should not need to read this register as its content is periodically written to the HCCA.
Table 140. HcDoneHead register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:04]
DH
0h
R
R/W
[03:00]
8.3.4
HC
DoneHead
When a TD is completed, HC writes the content of
HcDoneHead to the NextTD field of the TD. HC then
overwrites the content of HcDoneHead with the address
of this TD. This is set to zero whenever HC writes the
content of this register to HCCA. It also sets the
WritebackDoneHead of HcInterruptStatus.
Reserved
Frame counter partition
HcFmInterval register
The HcFmInterval register contains a 14 bit value which indicates the bit time interval in a
Frame, (i.e., between two consecutive SOFs), and a 15 bit value indicating the Full Speed
maximum packet size that the Host Controller may transmit or receive without causing
scheduling overrun. The Host Controller Driver may carry out minor adjustment on the
FrameInterval by writing a new value over the present one at each SOF. This provides the
programmability necessary for the Host Controller to synchronize with an external clocking
resource and to adjust any unknown local clock offset.
142/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 141. HcFmInterval register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31]
[30:16]
FIT
0b
FSMPS TBD
R/W‘
R/W
HC
R
FrameIntervalToggle
HCD toggles this bit whenever it loads a new value to
FrameInterval.
R
FSLargestDataPacket
This field specifies a value which is loaded into the
Largest Data Packet Counter at the beginning of each
frame. The counter value represents the largest amount
of data in bits which can be sent or received by the HC in
a single transaction at any given time without causing
scheduling overrun. The field value is calculated by the
HCD.
[15:14]
Reserved
[13:00]
FrameInterval
This specifies the interval between two consecutive
SOFs in bit times. The nominal value is set to be 11,999.
HCD should store the current value of this field before
resetting HC. By setting the HostControllerReset field of
HcCommandStatus as this will cause the HC to reset this
field to its nominal value. HCD may choose to restore the
stored value upon the completion of the Reset sequence.
FI
2EDFh R/W
R
HcFmRemaining register
The HcFmRemaining register is a 14 bit down counter showing the bit time remaining in the
current Frame.
Table 142. HcFmRemaining register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31]
FRT
0b
R
HC
R/W
FrameRemainingToggle
This bit is loaded from the FrameIntervalToggle field of
HcFmInterval whenever FrameRemaining reaches 0. This
bit is used by HCD for the synchronization between
FrameInterval and FrameRemaining.
[30:14]
Reserved
[13:00]
FrameRemaining
This counter is decremented at each bit time. When it
reaches zero, it is reset by loading the FrameInterval
value specified in HcFmInterval at the next bit time
boundary. When entering the USBOPERATIONAL state,
HC re-loads the content with the FrameInterval of
HcFmInterval and uses the updated value from the next
SOF.
FR
0h
R
R/W
Doc ID 022642 Rev 3
143/584
USB 2.0 Host ports (UHC)
RM0321
HcFmNumber register
The HcFmNumber register is a 16 bit counter. It provides a timing reference among events
happening in the Host Controller and the Host Controller Driver. The Host Controller Driver
may use the 16 bit value specified in this register and generate a 32 bit frame number
without requiring frequent access to the register.
Table 143. HcFmNumber register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31:16]
Reserved
[15:00]
FrameNumber
This is incremented when HcFmRemaining is re-loaded. It
will be rolled over to 0h after ffffh. When entering the
USBOPERATIONAL state, this will be incremented
automatically. The content will be written to HCCA after
HC has incremented the FrameNumber at each frame
boundary and sent a SOF but before HC reads the first
ED in that Frame. After writing to HCCA, HC will set the
StartofFrame in HcInterruptStatus.
FN
0h
R
R/W
HcPeriodicStart register
The HcPeriodicStart register has a 14 bit programmable value which determines when is the
earliest time HC should start processing the periodic list.
Table 144. HcPeriodicStart register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
HC
[31:14]
Reserved
[13:00]
PeriodicStart
After a hardware reset, this field is cleared. This is then
set by HCD during the HC initialization. The value is
calculated roughly as 10% off from HcFmInterval. A
typical value will be 3E67h. When HcFmRemaining
reaches the value specified, processing of the periodic
lists will have priority over Control/Bulk processing. HC
will therefore start processing the Interrupt list after
completing the current Control or Bulk transaction that is
in progress.
PS
0h
R/W
R
HcLSThreshold register
The HcLSThreshold register contains an 11 bit value used by the Host Controller to
determine whether to commit to the transfer of a maximum of 8-byte LS packet before EOF.
Neither the Host Controller nor the Host Controller Driver are allowed to change this value.
144/584
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 145. HcLSThreshold register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
8.3.5
HC
[31:12]
Reserved
[11:00]
LSThreshold
This field contains a value which is compared to the
FrameRemaining field prior to initiating a Low Speed
transaction. The transaction is started only if
FrameRemaining ³ this field. The value is calculated by
HCD with the consideration of transmission and setup
overhead.
LST
0628h
R/W
R
Root hub partition
All registers included in this partition are dedicated to the USB Root Hub which is an integral
part of the Host Controller though still a functionally separate entity. The HCD emulates
USBD accesses to the Root Hub via a register interface. The HCD maintains many USBdefined hub features which are not required to be supported in hardware. For example, the
Hub's Device, Configuration, Interface, and Endpoint Descriptors are maintained only in the
HCD as well as some static fields of the Class Descriptor. The HCD also maintains and
decodes the Root Hub's device address as well as other trivial operations which are better
suited to software than hardware.
The Root Hub register interface is otherwise developed to maintain similarity of bit
organization and operation to typical hubs which are found in the system. Below are four
register definitions: HcRhDescriptorA, HcRhDescriptorB, HcRhStatus, and
HcRhPortStatus[1:NDP]. Each register is read and written as a Dword. These registers are
only written during initialization to correspond with the system implementation. The
HcRhDescriptorA and HcRhDescriptorB registers should be implemented such that they are
writeable regardless of the HC USB state. HcRhStatus and HcRhPortStatus must be
writeable during the USBOPERATIONAL state.
Note:
IS denotes an implementation-specific reset value for that field.
HcRhDescriptorA register
The HcRhDescriptorA register is the first register of two describing the characteristics of the
Root Hub. Reset values are implementation-specific. The descriptor length (11), descriptor
type (TBD), and hub controller current (0) fields of the hub Class Descriptor are emulated by
the HCD. All other fields are located in the HcRhDescriptorA and HcRhDescriptorB
registers.
Doc ID 022642 Rev 3
145/584
USB 2.0 Host ports (UHC)
RM0321
Table 146. HcRhDescriptorA register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:24]
IS
R/W
R
PowerOnToPowerGoodTime
This byte specifies the duration HCD has to wait before
accessing a powered-on port of the Root Hub. It is
implementation-specific. The unit of time is 2 ms. The
duration is calculated as POTPGT * 2 ms.
[23:13]
Reserved
[12]
R
NoOverCurrentProtection
This bit describes how the overcurrent status for the Root
Hub ports are reported. When this bit is cleared, the
OverCurrentProtectionMode field specifies global or perport reporting.
0: Over-current status is reported collectively for all
downstream ports
1: No overcurrent protection supported
R
OverCurrentProtectionMode
This bit describes how the overcurrent status for the Root
Hub ports are reported. At reset, this fields should reflect
the same mode as PowerSwitchingMode. This field is
valid only if the NoOverCurrentProtection field is cleared.
0: over-current status is reported collectively for all
downstream ports
1: over-current status is reported on a per-port basis
R
DeviceType
This bit specifies that the Root Hub is not a compound
device. The Root Hub is not permitted to be a compound
device. This field should always read/write 0.
R
NoPowerSwitching
These bits are used to specify whether power switching is
supported or port are always powered. It is
implementationspecific. When this bit is cleared, the
PowerSwitchingMode specifies global or per-port
switching.
0: Ports are power switched
1: Ports are always powered on when the HC is powered
on
[11]
[10]
[09]
146/584
POTP
GT
HC
NOCP
IS
OCPM IS
DT
NPS
0b
IS
R/W
R/W
R
R/W
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 146. HcRhDescriptorA register bit assignments (continued)
Read/Write
Bits
Name
Reset
Description
HCD
[08]
[07:00]
PSM
NDP
IS
IS
R/W
R/W
HC
R
PowerSwitchingMode
This bit is used to specify how the power switching of the
Root Hub ports is controlled. It is implementation-specific.
This field is only valid if the NoPowerSwitching field is
cleared.
0: all ports are powered at the same time.
1: each port is powered individually. This mode allows port
power to be controlled by either the global switch or
perport switching. If the PortPowerControlMask bit is set,
the port responds only to port power commands
(Set/ClearPortPower). If the port mask is cleared, then the
port is controlled only by the global power switch
(Set/ClearGlobalPower).
R
NumberDownstreamPorts
These bits specify the number of downstream ports
supported by the Root Hub. It is implementation-specific.
The minimum number of ports is 1. The maximum number
of ports supported by OpenHCI is 15.
HcRhDescriptorB register
The HcRhDescriptorB register is the second register of two describing the characteristics of
the Root Hub. These fields are written during initialization to correspond with the system
implementation. Reset values are implementation-specific.
Doc ID 022642 Rev 3
147/584
USB 2.0 Host ports (UHC)
RM0321
Table 147. HcRhDescriptorB register bit assignments
Read/Write
Bits
Name
Reset
Description
HCD
[31:16]
[15:00]
PPCM
DR
IS
IS
R/W
R/W
HC
R
PortPowerControlMask
Each bit indicates if a port is affected by a global power
control command when PowerSwitchingMode is set.
When set, the port's power state is only affected by perport power control (Set/ClearPortPower). When cleared,
the port is controlled by the global power switch
(Set/ClearGlobalPower). If the device is configured to
global switching mode
(PowerSwitchingMode=0), this field is not valid.
bit 0: Reserved
bit 1: Ganged-power mask on Port #1
bit 2: Ganged-power mask on Port #2
...
bit15: Ganged-power mask on Port #15
R
DeviceRemovable
Each bit is dedicated to a port of the Root Hub. When
cleared, the attached device is removable. When set, the
attached device is not removable.
bit 0: Reserved
bit 1: Device attached to Port #1
bit 2: Device attached to Port #2
...
bit15: Device attached to Port #15
HcRhStatus register
The HcRhStatus register is divided into two parts. The lower word of a Dword represents the
Hub Status field and the upper word represents the Hub Status Change field. Reserved bits
should always be written '0'.
Table 148. HcRhStatus register bit assignments
Read/Write
Bits
[31]
148/584
Name
Reset
CRWE
Description
HCD
HC
W
R
(write) ClearRemoteWakeupEnable
Writing a '1' clears DeviceRemoveWakeupEnable. Writing
a '0' has no effect.
[30:18]
Reserved
[17]
OverCurrentIndicatorChange
This bit is set by hardware when a change has occurred to
the OCI field of this register. The HCD clears this bit by
writing a ‘1’. Writing a ‘0’ has no effect.
OCIC
0b
R/W
R/W
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 148. HcRhStatus register bit assignments (continued)
Read/Write
Bits
Name
Reset
Description
HCD
[16]
[15]
LPSC
0b
DRWE 0b
R/W
R/W
HC
R
(read) LocalPowerStatusChange
The Root Hub does not support the local power status
feature; thus, this bit is always read as ‘0’.(write)
SetGlobalPower
In
global
power
mode
(PowerSwitchingMode=0), This bit is written to ‘1’ to turn
on power to all ports (clear PortPowerStatus). In per-port
power mode, it sets PortPowerStatus only on ports whose
PortPowerControlMask bit is not set. Writing a ‘0’ has no
effect.
R
(read) DeviceRemoteWakeupEnable
This bit enables a ConnectStatusChange bit as a resume
event, causing a USBSUSPEND to USBRESUME state
transition and setting the ResumeDetected interrupt.
0 = ConnectStatusChange is not a remote wakeup event.
1 = ConnectStatusChange is a remote wakeup event.
(write) SetRemoteWakeupEnable
Writing a '1' sets DeviceRemoveWakeupEnable. Writing a
'0' has no effect.
[14:02]
Reserved
[01]
R/W
OverCurrentIndicator
This bit reports overcurrent conditions when the global
reporting is implemented. When set, an overcurrent
condition exists. When cleared, all power operations are
normal. If per-port overcurrent protection is implemented
this bit is always ‘0’
R
(read) LocalPowerStatus
The Root Hub does not support the local power status
feature; thus, this bit is always read as ‘0’.
(write) ClearGlobalPower In global power mode
(PowerSwitchingMode=0), This bit is written to ‘1’ to turn
off power to all ports (clear PortPowerStatus). In per-port
power mode, it clears PortPowerStatus only on ports
whose PortPowerControlMask bit is not set. Writing a ‘0’
has no effect.
[00]
OCI
LPS
0b
0b
R
R/W
HcRhPortStatus[1:NDP] register
The HcRhPortStatus[1:NDP] register is used to control and report port events on a per-port
basis. NumberDownstreamPorts represents the number of HcRhPortStatus registers that
are implemented in hardware. The lower word is used to reflect the port status, whereas the
upper word reflects the status change bits. Some status bits are implemented with special
write behavior (see below). If a transaction (token through handshake) is in progress when a
write to change port status occurs, the resulting port status change must be postponed until
the transaction completes. Reserved bits should always be written '0'.
Doc ID 022642 Rev 3
149/584
USB 2.0 Host ports (UHC)
RM0321
Table 149. HcRhPortStatus register bit assignments
Read/write
Bits
Name
Reset
Description
HCD
[31:21]
Reserved
[20]
R/W
PortResetStatusChange
This bit is set at the end of the 10-ms port reset signal.
The HCD writes a ‘1’ to clear this bit. Writing a ‘0’ has no
effect.
0 = port reset is not complete
1 = port reset is complete
R/W
PortOverCurrentIndicatorChange
This bit is valid only if overcurrent conditions are reported
on a per-port basis. This bit is set when Root Hub
changes the PortOverCurrentIndicator bit. The HCD
writes a ‘1’ to clear this bit. Writing a ‘0’ has no effect.
0 = no change in PortOverCurrentIndicator
1 = PortOverCurrentIndicator has changed
R/W
PortSuspendStatusChange
This bit is set when the full resume sequence has been
completed. This sequence includes the 20-s resume
pulse, LS EOP, and 3-ms resychronization delay. The
HCD writes a ‘1’ to clear this bit. Writing a ‘0’ has no
effect. This bit is also cleared when ResetStatusChange is
set.
0 = resume is not completed
1 = resume completed
R/W
PortEnableStatusChange
This bit is set when hardware events cause the
PortEnableStatus bit to be cleared. Changes from HCD
writes do not set this bit. The HCD writes a ‘1’ to clear this
bit. Writing a ‘0’ has no effect.
0 = no change in PortEnableStatus
1 = change in PortEnableStatus
R/W
ConnectStatusChange
This bit is set whenever a connect or disconnect event
occurs. The HCD writes a ‘1’ to clear this bit. Writing a ‘0’
has no effect. If CurrentConnectStatus is cleared when a
SetPortReset, SetPortEnable, or SetPortSuspend write
occurs, this bit is set to force the driver to re-evaluate the
connection status since these writes should not occur if
the port is disconnected.
0 = no change in CurrentConnectStatus
1 = change in CurrentConnectStatus
Note: If the DeviceRemovable[NDP] bit is set, this bit is
set only after a Root Hub reset to inform the system that
the device is attached.
[19]
[18]
[17]
[16]
[15:10]
150/584
HC
PRSC
OCIC
PSSC
PESC
CSC
0b
0b
0b
0b
0b
R/W
R/W
R/W
R/W
R/W
Reserved
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 149. HcRhPortStatus register bit assignments (continued)
Read/write
Bits
Name
Reset
Description
HCD
[09]
[08]
[07:05]
LSDA
PPS
xb
0b
R/W
R/W
HC
R/W
(read) LowSpeedDeviceAttached
This bit indicates the speed of the device attached to this
port. When set, a Low Speed device is attached to this
port. When clear, a Full Speed device is attached to this
port.
This
field
is
valid
only
when
the
CurrentConnectStatus is set.
0 = full speed device attached
1 = low speed device attached
(write)
ClearPortPower
The
HCD
clears
the
PortPowerStatus bit by writing a ‘1’ to this bit. Writing a ‘0’
has no effect.
R/W
(read) PortPowerStatus
This bit reflects the port’s power status, regardless of the
type of power switching implemented. This bit is cleared if
an overcurrent condition is detected. HCD sets this bit by
writing SetPortPower or SetGlobalPower. HCD clears this
bit by writing ClearPortPower or ClearGlobalPower. Which
power control switches are enabled is determined by
PowerSwitchingMode and PortPortControlMask[NDP]. In
global switching mode (PowerSwitchingMode=0), only
Set/ClearGlobalPower controls this bit. In per-port power
switching
(PowerSwitchingMode=1),
if
the
PortPowerControlMask[NDP] bit for the port is set, only
Set/ClearPortPower commands are enabled. If the mask
is not set, only Set/ClearGlobalPower commands are
enabled.
When
port
power
is
disabled,
CurrentConnectStatus,
PortEnableStatus,
PortSuspendStatus, and PortResetStatus
should be reset.
0 = port power is off
1 = port power is on
(write) SetPortPower
The HCD writes a ‘1’ to set the PortPowerStatus bit.
Writing a ‘0’ has no effect. Note: This bit is always reads
‘1b’ if power switching is not supported.
Reserved
Doc ID 022642 Rev 3
151/584
USB 2.0 Host ports (UHC)
RM0321
Table 149. HcRhPortStatus register bit assignments (continued)
Read/write
Bits
Name
Reset
Description
HCD
[04]
[03]
[02]
152/584
PRS
POCI
PSS
0b
0b
0b
R/W
R/W
R/W
HC
R/W
(read) PortResetStatus
When this bit is set by a write to SetPortReset, port reset
signaling is asserted. When reset is completed, this bit is
cleared when PortResetStatusChange is set. This bit
cannot be set if CurrentConnectStatus is cleared.
0 = port reset signal is not active
1 = port reset signal is active
(write) SetPortReset
The HCD sets the port reset signaling by writing a ‘1’ to
this bit. Writing a ‘0’
has no
effect. If
CurrentConnectStatus is cleared, this write does not set
PortResetStatus, but instead sets ConnectStatusChange.
This informs the driver that it attempted to reset a
disconnected port.
R/W
(read) PortOverCurrentIndicator
This bit is only valid when the Root Hub is configured in
such a way that overcurrent conditions are reported on a
per-port basis. If per-port overcurrent reporting is not
supported, this bit is set to 0. If cleared, all power
operations are normal for this port. If set, an overcurrent
condition exists on this port. This bit always reflects the
overcurrent input signal
0 = no overcurrent condition.
1 = overcurrent condition detected.
(write) ClearSuspendStatus
The HCD writes a ‘1’ to initiate a resume. Writing a ‘0’ has
no effect. A resume is initiated only if PortSuspendStatus
is set.
R/W
(read) PortSuspendStatus
This bit indicates the port is suspended or in the resume
sequence. It is set by a SetSuspendState write and
cleared when PortSuspendStatusChange is set at the end
of the resume interval. This bit cannot be set if
CurrentConnectStatus is cleared. This bit is also cleared
when PortResetStatusChange is set at the end of the port
reset or when the HC is placed in the USBRESUME state.
If an upstream resume is in progress, it should propagate
to the HC.
0 = port is not suspended
1 = port is suspended
(write) SetPortSuspend
The HCD sets the PortSuspendStatus bit by writing a ‘1’
to this bit. Writing a ‘0’ has no effect. If
CurrentConnectStatus is cleared, this write does not set
PortSuspendStatus;
instead
it
sets
ConnectStatusChange. This informs the driver that it
attempted to suspend a disconnected port.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Host ports (UHC)
Table 149. HcRhPortStatus register bit assignments (continued)
Read/write
Bits
Name
Reset
Description
HCD
[01]
[00]
PES
CCS
0b
0b
R/W
R/W
HC
R/W
(read) PortEnableStatus
This bit indicates whether the port is enabled or disabled.
The Root Hub may clear this bit when an overcurrent
condition, disconnect event, switched-off power, or
operational bus error such as babble is detected. This
change also causes PortEnabledStatusChange to be set.
HCD sets this bit by writing SetPortEnable and clears it by
writing ClearPortEnable. This bit cannot be set when
CurrentConnectStatus is cleared. This bit is also set, if not
already, at the completion of a port reset when
ResetStatusChange is set or port suspend when
SuspendStatusChange is set.
0 = port is disabled
1 = port is enabled
(write) SetPortEnable
The HCD sets PortEnableStatus by writing a ‘1’. Writing a
‘0’ has no effect. If CurrentConnectStatus is cleared, this
write does not set PortEnableStatus, but instead sets
ConnectStatusChange. This informs the driver that it
attempted to enable a disconnected port.
R/W
(read) CurrentConnectStatus
This bit reflects the current state of the downstream port.
0 = no device connected
1 = device connected
(write) ClearPortEnable
The HCD writes a ‘1’ to this bit to clear the
PortEnableStatus bit. Writing a ‘0’ has no effect. The
CurrentConnectStatus is not affected by any write.
Note: This bit is always read ‘1b’ when the attached
device is nonremovable (DeviceRemoveable[NDP]).
Doc ID 022642 Rev 3
153/584
USB 2.0 Device port (UDC)
RM0321
9
USB 2.0 Device port (UDC)
9.1
Register summary
The 32-bit wide control and status registers (CSRs) of the UDC-AHB subsystem provide a
high degree of control, making the device both configurable and scalable. These CSRs can
be accessed at the base address 0xE110.0000.
The CSRs can be grouped in two basic categories:
●
Global CSRs (listed in Table 152), which are specific to the UDC-AHB subsystem.
●
Endpoint CSRs (listed in Table 150 and in Table 151), which are specific to a particular
endpoint within the UDC-AHB subsystem. Specifically, each endpoint supported by the
UDC-AHB subsystem is associated to a set of specific 32-bit CSRs for each direction
(in/out).
As explained by the memory map in Figure 1, these CSRs are mapped in the 0x0000 to
0x04FC offset address space (with respect to the base address above). Apart from these
device-level CSRs, the UDC itself contains other specific CSRs which are mapped in the
0x0500 to 0x07FC offset address space.
Moreover, the FIFOs are mapped at base address 0xE100_0800. Offset addresses from
0x0800 up to a 0x1800 host the data in the RxFIFO (Receive FIFO controller), which are
followed by the memory space allocated to TxFIFOs.
Table 150. In endpoint-specific CSRs summary
Endpoint
Name
Offset
Type
Reset value
0
Control
0x0000
RW
32’h0
Status
0x0004
RO
32’h0
Buffer size
0x0008
RW
32’h0
Maximum packet size
0x000C
RW
32’h0
Reserved
0x0010
-
-
Data description pointer
0x0014
RW
32’h0
Reserved
0x0018
-
-
Write confirmation
0x001C
RW
-
As Endpoint 0
0x0020 - 0x003C
As Endpoint 0
Reserved
0x0040 - 0x005C
As Endpoint 0
0x0060 - 0x007C
Reserved
0x0080 - 0x009C
As Endpoint 0
0x00A0 - 0x00BC
Reserved
0x00C0 - 0x00DC
As Endpoint 0
0x00E0 - 0x00FC
Reserved
0x0100 - 0x011C
As Endpoint 0
0x0120 - 0x013C
Reserved
0x0140 - 0x015C
1
3
5
7
9
154/584
Doc ID 022642 Rev 3
As Endpoint 0
As Endpoint 0
As Endpoint 0
As Endpoint 0
RM0321
USB 2.0 Device port (UDC)
Table 150. In endpoint-specific CSRs summary (continued)
Endpoint
Name
Offset
Type
11
As Endpoint 0
0x0160 - 0x017C
As Endpoint 0
Reset value
0x0180 - 0x019C
13
As Endpoint 0
0x01A0 - 0x01BC
As Endpoint 0
0x01C0 - 0x01DC
15
As Endpoint 0
0x01E0 - 0x01FC
As Endpoint 0
Table 151. Out endpoint-specific CSRs summary
Endpoint
Name
Offset
Type
Reset value
0
Control
0x0200
RW
32’h0
Status
0x0204
RO
32’h0
Packet frame number
0x0208
RW
32’h0
Buffer size
0x020C
RW
32’h0
SETUP buffer pointer
0x0210
RW
32’h0
Data description pointer
0x0214
RW
32’h0
Reserved
0x0218
-
-
Read confirmation
0x021C
RW
-
Reserved
0x0220 - 0x023C
As Endpoint 0
0x0240 -0x025C
Reserved
0x0260 - 0x027C
As Endpoint 0
0x0280 - 0x029C
Reserved
0x02A0 - 0x02BC
As Endpoint 0
0x02C0 - 0x02DC
Reserved
0x02E0 - 0x02FC
As Endpoint 0
0x0300 - 0x031C
Reserved
0x0320 - 0x033C
As Endpoint 0
0x0340 - 0x035C
Reserved
0x0360 -0x037C
As Endpoint 0
0x0380 -0x039C
Reserved
0x03A0 -0x03BC
As Endpoint 0
0x03C0 - 0x03DC
Reserved
0x03E0 -0x03FC
2
4
6
8
10
12
14
Doc ID 022642 Rev 3
As Endpoint 0
As Endpoint 0
As Endpoint 0
As Endpoint 0
As Endpoint 0
As Endpoint 0
As Endpoint 0
155/584
USB 2.0 Device port (UDC)
RM0321
Table 152. Global CSRs summary
Name
Offset
Type
Reset value
Device configuration
0x0400
RW
32’h0
Device control
0x0404
RW
32’h0
Device status
0x0408
RO
32’h0
Device interrupt
0x040C
RW
32’h0
Device interrupt mask
0x0410
RW
32’h0
Endpoint interrupt
0x0414
RW
32’h0
Endpoint interrupt mask
0x0418
RW
32’h0
Reserved
0x041C to 0x04fc
Table 153. UDCl CSRs summary
Endpoint Name
156/584
Offset
Type
Reset value
Reserved
0x0500
0
UDC20 Endpoint register
0x0504
RW
32’h0
1
UDC20 Endpoint register
0x0508
RW
32’h0
2
UDC20 Endpoint register
0x050C
RW
32’h0
3
UDC20 Endpoint register
0x0510
RW
32’h0
4
UDC20 Endpoint register
0x0514
RW
32’h0
5
UDC20 Endpoint register
0x0518
RW
32’h0
6
UDC20 Endpoint register
0x051C
RW
32’h0
7
UDC20 Endpoint register
0x0520
RW
32’h0
8
UDC20 Endpoint register
0x0524
RW
32’h0
9
UDC20 Endpoint register
0x0528
RW
32’h0
10
UDC20 Endpoint register
0x052C
RW
32’h0
11
UDC20 Endpoint register
0x0530
RW
32’h0
12
UDC20 Endpoint register
0x0534
RW
32’h0
13
UDC20 Endpoint register
0x0538
RW
32’h0
14
UDC20 Endpoint register
0x053C
RW
32’h0
15
UDC20 Endpoint register
0x0540
RW
32’h0
Reserved
0x0544 To 0x07FC
Doc ID 022642 Rev 3
RM0321
USB 2.0 Device port (UDC)
Figure 1.
UDC-AHB subsystem memory map
32 bit wide
Address range
0xE100_0000
Reserved
0xE100_07FF
Implemented as
RAM
0xE100_0800
RxFIFO
0xE100_0800
+
RxFIFO depth
0xE110_0000
TxFIFO
UDC Subsystem
with AHB CSRs
0xE110_04FC
0xE110_0500
UDC CSRs
0xE110_07FC
Mamory map
(Processor view point)
9.2
Register description
9.2.1
Device configuration register
The Device configuration is a RW register which allows to configure the USB 2.0 Device.
Table 154. Device configuration register bit assignments
Bit
Name
Reset value Description
[31:19]
Reserved
-
[18]
[17]
Read: undefined. Write: should be zero.
SET_DESC 1'h0
Set descriptor requests support.
This bit states how the USB device replies to set Descriptor
request, according to encoding:
1‘b0 = A STALL handshake is sent back to the USB Host.
1‘b1 = The SETUP packet passes to the application.
CSR_PRG
Dynamic UDC register programming support.
Setting this bit, the application is able to dynamically
program the UDC CSRs whenever an interrupt is received
for either a set configuration or a set interface request.
In this case, the USB device returns a NAK handshake
during the status in stage of both the set configuration and
set interface requests until the application sets the
CSR_DONE bit of the Device control register on page 159.
1'h0
Doc ID 022642 Rev 3
157/584
USB 2.0 Device port (UDC)
RM0321
Table 154. Device configuration register bit assignments (continued)
Bit
[16]
[15:13]
HALT
STATUS
HS_TIMEO
UT CALIB
Reset value Description
1'h0
Reply to USB host Clear_Feature request for endpoint 0.
This bit indicates whether the USB device must respond
with either a STALL (bit set to 1‘b1) or an ACK (bit set to
1‘b0)
handshake
when
a
Clear_Feature
(ENDPOINT_HALT) request for Endpoint 0 has been
issued by the USB host.
3‘h0
Timeout counter in HS operation.
This 3 bit field indicates the integer number of PHY clocks
to the USB device’s timeout counter in high-speed (HS)
operation.
The application uses this value to increase the timeout
value (736 to 848 bit times in HS operation), which depends
on the PHY’s delay in generating a line state condition. The
default timeout value is 736 bit times.
[12:10]
FS_TIMEO
UT CALIB
3‘h0
Timeout counter in FS operation.
This 3 bit field indicates the integer number of phy clocks to
the USB device’s timeout counter in full-speed (FS)
operation.
The application uses this value to increase the timeout
value (16 to 18 bit times in FS operation), which depends
on the PHY’s delay in generating a line state condition. The
default timeout value is 16 bit times.
[09]
PHY_ERRO
1'h0
R DETECT
PHY error detection.
Setting this bit, the USB device detects either the
phy_rxvalid or the phy_rxactive input signal to be
continuously asserted for 2 ms, indicating a PHY error.
[08]
STATUS_1
1'h0
See description.
1'h0
STATUS_1, STATUS
These 2 bits together provide an option for the USB device
to respond to the USB host with a STALL or an ACK
handshake if the USB host has issued a non-zero-length
data packet during the status-out stage of a control transfer.
Refer to USB device technical documentation for more
information.
1'h0
UTMI data bus interface direction.
This bit states the direction of the UTMI data bus interface,
according to encoding:
1‘b0 = Unidirectional.
1‘b1 = Bidirectional.
[07]
[06]
158/584
Name
STATUS
DIR
[05]
PI
1'h0
UTMI PHY interface.
This bit indicates the interface size which the UTMI PHY
must support, according to encoding:
1‘b0 = 16 bit.
1‘b1 = 8 bit.
[04]
SS
1'h0
If set, the USB device supports Sync frame.
[03]
SP
1'h0
If set, the USB device is self-powered.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Device port (UDC)
Table 154. Device configuration register bit assignments (continued)
Bit
Name
Reset value Description
[02]
RWKP
1'h0
If set, the USB device is remote wake up capable.
2’h0
Device speed.
These 2 bits give the expected speed the application
programs for the USB device, according to encoding:
– 2‘b00 HS
– 2‘b01 FS
– 2‘b10 LS
– 2‘b11 Reserved
However, the actual speed at which the USB device
operates depends on the enumerated speed field (ENUM
SPD) of the device status register (see Device status
register on page 161).
Note: The UDC11-AHB subsystem uses only the LSB (bit
0) of SPD field, whereas bit 1 is don’t care (2’bx0 = LS,
2‘bx1 = FS).
[01:00]
9.2.2
SPD
Device control register
The device control is a RW register which allows to control (at runtime) the USB 2.0 after
device configuration.
Table 155. Device control register bit assignments
Bit
[31:24]
Name
THLEN (1)
Reset value
Description
8’h00
Threshold length.
This 8 bit field indicates the number (THLEN + 1) of 32 bit
entries in the RxFIFO before the DMA can start data transfer
(in an out transaction in DMA mode when thresholding is
enabled). The 8’h00 reset value means that only one entry
in RxFIFO is enough to start the DMA data transfer.
[23:16]
BRLEN (1)
8’h00
Burst length.
This 8 bit field indicates the length of a single burst on the
AHB bus as an integer number (BRLEN + 1) of 32 bit data
transfers, when burst split features of DMA mode is enabled.
The 8’h00 reset value means then a burst length of (1 · 32)
bits.
[15:14]
Reserved
-
Read: undefined. Write: should be zero.
1'h0
CSR programming completion notification.
This bit is used by the application to notify the UDC-AHB
subsystem that all required CSRs configuration has been
completed (bit set to 1‘b1). Then, the UDC-AHB subsystem
can acknowledge (ACK reply) the current set configuration
or set interface command.
[13]
CSR_DONE
Doc ID 022642 Rev 3
159/584
USB 2.0 Device port (UDC)
RM0321
Table 155. Device control register bit assignments (continued)
Bit
[12]
[11]
[10]
DEVNAK
SCALE
SD
Reset value
Description
1'h0
NAK handshake.
setting this bit, the udc-ahb Subsystem returns a NAK
handshake to all out endpoints, avoiding then to set the
SNAK bit of each endpoint control register (Endpoint control
register on page 164).
1'h0
Scale down.
Setting this bit, the timer values inside the UDC-AHB
subsystem are scaled down when running gate-level
simulation only, aiming to reduce simulation time. Clear the
bit for normal operation.
1'h0
Soft disconnect.
This bit is used by the software application to signal the UDC
to soft-disconnect. In particular, setting this bit causes the
UDC-AHB Subsystem to enter the disconnected state.
[09]
MODE
1'h0
Operation mode.
This bit allows to select the operation mode of the UDC-AHB
subsystem, according to encoding:
1‘b0 = slave-only mode.
1‘b1 = DMA mode.
[08]
BREN (1)
1'h0
Burst transfer to AHB bus enable.
Setting this bit, the DMA burst split is enabled, and burst
length is programmed by the BRLEN field in this register.
1'h0
Thresholding enable.
Setting this bit, the DMA threshold is enabled, and a number
of quadlets equal to the threshold value (field THLEN in this
register) are transferred from the RxFIFO to the memory in
an out transaction in DMA mode.
1'h0
Buffer fill mode enable.
Setting this bit, the DMA buffer fill mode is enabled, and the
data are transferred into contiguous locations pointed to by
the buffer address.
[07]
[06]
160/584
Name
THE (1)
BF
(1)
[05]
BE (1)
1'h0
Endianness bit.
Setting this bit, the system byte ordering can be changed
from little endian (default, BE set to 1‘b0) to big endian.
Note: Only data accesses are endian-sensitive (in both
slave-only and DMA mode). Descriptor and CSR accesses
are always in little endian mode.
[04]
DU (1)
1'h0
Descriptor update.
Setting this bit, the DMA updates the descriptor at the end of
each packet processed.
[03]
TDE (1)
1'h0
DMA transmission.
Setting this bit, the transmit DMA is enabled.
[02]
RDE (1)
1'h0
DMA receive.
Setting this bit, the receive DMA is enabled.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Device port (UDC)
Table 155. Device control register bit assignments (continued)
Bit
Name
Reset value
Description
[01]
Reserved
-
Read: undefined. Write: should be zero.
1'h0
Resuming signaling on the USB.
This bit is used by the software application to perform a
remote wake-up resume. Setting this bit, the UDC-AHB
subsystem signals the USB host to resume the USB bus.
however, the application must first set RWKP bit in the
device configuration register, (indicating that the UDC-AHB
subsystem supports the remote wake-up feature), and the
USB host must already have issued a set feature request to
enable the device’s remote wake-up feature.
[00]
RES
1. Field supported in DMA mode only.
9.2.3
Device status register
The device status is a RO register which echoes status information needed to service some
of the interrupts.
Table 156. Device status register bit assignments
Bit
Name
Reset value Description
[31:18]
TS
14’h0000
Frame number of the received SOF.
This 14 bit field indicates the frame number of the received
SOF, according to the following rules:
High-Speed (HS) operation
[31:21] = Millisecond frame number.
[20:18] = Microframe number
Full-Speed (FS) operation
[31:29] = Reserved.
[28:18] = Millisecond frame number.
[17]
Reserved
-
Read: undefined. Write: should be zero.
1'h0
PHY Error.
This bit is set when either the phy_rxvalid or phy_rxactive
input signal is detected to be continuously asserted for 2 ms.
It results that the UDC-AHB subsystem goes to the suspend
state. When the application serves the early suspend
interrupt (ES bit of the Device interrupt register) it also must
check this bit to determine if the early suspend interrupt was
generated due to PHY error detection.
Note: This bit is reserved for the UDC11-AHB subsystem.
1'h0
Receive FIFO empty status.
This bit is set as soon as DMA data transfer has been
completed and no new packets have been received. In
contrast, this bit is cleared after receiving a valid packet from
the USB. It is set according to the encoding:
– 1‘b0 = Not empty.
– 1‘b1 = Empty.
[16]
[15]
PHY
ERROR
RXFIFO
EMPTY
Doc ID 022642 Rev 3
161/584
USB 2.0 Device port (UDC)
RM0321
Table 156. Device status register bit assignments (continued)
Bit
[14:13]
9.2.4
Name
ENUM
SPD
Reset value Description
2’h0
Enumerated speed.
These 2 bits give the speed at which the subsystem comes
up after the speed enumeration, according to the encoding:
– 2‘b00 = HS.
– 2‘b01 = FS.
– 2‘b10 = LS.
– 2‘b11 = Reserved.
If the expected speed is HS (field SPD = 2‘b00 in the device
configuration register and the udc-ahb Subsystem is
connected to a USB 1.1 host controller, then after speed
enumeration, these bits indicates that the subsystem is
operating in FS mode (2‘b01).
Besides, if SPD states HS again but the UDC-AHB
subsystem is connected to a USB 2.0 host controller, then
after speed enumeration, these bits indicate that the
subsystem is operating in HS mode (2‘b00).
Finally, if the expected speed is either LS (SPD = 2‘b10) or
FS (SPD = 2‘b01) and the UDC-AHB subsystem is connected
to either a USB 1.1 or a USB 2.0 host controller, then after
speed enumeration, these bits indicate that the subsystem is
operating in either LS mode (2‘b10) or FS mode (2‘b01,
respectively).
[12]
SUSP
1'h0
Suspend status.
This bit is set according the encoding:
– 1‘b0 = Not detected.
– 1‘b1 = Detected on USB.
[11:08]
ALT
4’h0
Alternate setting.
Please refer to USB standard for more details.
[07:04]
INTF
4’h0
Interface.
Please refer to USB standard for more details.
[03:00]
CFG
4’h0
Configuration.
Please refer to USB standard for more details.
Device interrupt register
The device interrupt is a RW register whose bits are set when there are system-level events.
Indeed interrupts are used by the software application to make system-level decisions.
Note:
162/584
After checking this register, the application must clear the interrupt by writing a 1‘b1 to the
corresponding bit.
Doc ID 022642 Rev 3
RM0321
USB 2.0 Device port (UDC)
Table 157. Device interrupt register bit assignments
Bit
Name
Reset value Description
[31:07]
Reserved
-
Read: undefined. Write: should be zero.
[06]
ENUM
1'h0
Speed enumeration completed.
If set, this bit indicates that speed enumeration is completed.
Note: This bit is only used for the UDC20.
[05]
SOF
1'h0
SOF token detected.
If set, this bit indicates that a SOF token is detected on the
USB.
1'h0
Suspend state detected.
If set, this bit indicates that a suspend state is detected on
the USB for duration of 3 milliseconds, following the 3
millisecond ES interrupt activity due to an idle state.
Note: For the UDC20, there is no suspend interrupt to the
application if the PHY clock is suspended via the Suspendm
signal.
1'h0
Reset detected.
If set, this bit indicates that a reset is detected on the USB.
Note: If the application didn’t serve this interrupt, the UDCAHB subsystem returns a NAK handshake for all
transactions except the 8 SETUP packet bytes from the USB
host.
1'h0
Idle state detected.
If set, this bit indicates that an idle state is detected on the
USB for duration of 3 milliseconds.
Note: This interrupt bit is used by the application firmware to
finish its job before the subsystem generates a true suspend
(US) interrupt (that is, 3 milliseconds after the ES interrupt).
1'h0
Set interface command.
If set, this bit indicates that a set interface command has
been received from the USB host.
Note: If the application didn’t serve this interrupt, the UDCAHB subsystem returns a NAK handshake for all
transactions except the 8 SETUP packet bytes from the USB
host.
1'h0
Set configuration command.
If set, this bit indicates that a set configuration command has
been received from the USB host.
Note: If the application didn’t serve this interrupt, the UDCAHB subsystem returns a NAK handshake for all
transactions except the 8 SETUP packet bytes from the USB
host.
[04]
[03]
[02]
[01]
[00]
US
UR
ES
SI
SC
Doc ID 022642 Rev 3
163/584
USB 2.0 Device port (UDC)
9.2.5
RM0321
Device interrupt mask register
The device interrupt mask is a RW register which allows to mask the system levels
interrupts. Setting to 1‘b1 the appropriate bit position in the register the designated interrupt
is masked.
If masked, the corresponding interrupt signal will not reach the application and its interrupt
bit will not be set in the Device interrupt register.
Note:
The mask mapping reflects masking on device interrupts register bits e.g. LSB masking
through this register signifies SC interrupt of device interrupt register is masked.
Table 158. Device interrupt mask register bit assignments
9.2.6
Bit
Name
Reset value Description
[31:07]
Reserved
-
Read: undefined. Write: should be zero.
[06:00]
MASK
7’h0
Mask equivalent device interrupt bit.
Endpoint interrupt register
The endpoint interrupt is a RW register whose bits are set when there are endpoint-level
events. The MSB 16 bits of the register are allocated to out endpoints, and the LSB 16 bits
to in endpoints.
Note:
After checking this register, the application must clear the interrupt by writing a ‘b1 to the
corresponding bit.
Table 159. Endpoint interrupt register bit assignments
9.2.7
Bit
Name
Reset value Description
[31:16]
OUT EP
16’h0000
One bit per out endpoint.
[15:00]
IN EP
16’h0000
One bit per in endpoint.
Endpoint interrupt mask register
The endpoint interrupt mask is a RW register which allows to mask the endpoint-level
interrupts. Setting to 1‘b1 the appropriate bit position in the register, the designated interrupt
is masked.
If masked, the corresponding interrupt signal will not reach the application and its interrupt
bit will not be set in the Endpoint interrupt register.
Table 160. Endpoint interrupt mask register bit assignments
9.2.8
Bit
Name
Reset value Description
[31:16]
OUT EP MASK
16’h0000
One bit per out endpoint.
[15:00]
IN EP MASK
16’h0000
One bit per in endpoint.
Endpoint control register
The endpoint control is an endpoint-specific RW register which allows to setup the endpoint
as required by the application.
164/584
Doc ID 022642 Rev 3
RM0321
Note:
USB 2.0 Device port (UDC)
If the corresponding endpoint is bidirectional (both in and out), there will be two such
endpoint control registers.
Table 161. Endpoint control register bit assignments
Bit
Name
Reset value Description
[31:10]
Reserved
-
Read: undefined. Write: should be zero.
1'h0
Receive ready.
This bit is set by the application (at any time), or receiving an
out packet, the DMA sends the packet to system memory.
This bit is cleared at the end of packet if the descriptor
update bit, DU, is set in the Device control register. In
contrast, this bit is cleared at the end of payload if the DU bit
is set to 1‘b0. If the DMA is busy transferring the data, the
application cannot clear this bit.
1'h0
Clear NAK.
This bit is used by the application to clear the NAK bit in this
register. For example, after a SETUP packet has been
decoded as a valid command by the application, then the
application must set the CNAK bit to clear the NAK bit. The
application also must clear the NAK bit (through CNAK)
whenever the subsystem sets it (i.e., the STALL bit in this
register is set by the application).
Note: The application is allowed to clear this bit only when
either the RxFIFO is empty (for single RxFIFO
implementation) or when the RxFIFO corresponding to the
same logical is empty (for multiple RxFIFO implementation).
1'h0
Set NAK.
This bit is used by the application to set the NAK bit in this
register.
Note: The application must not set the NAK bit for an in
endpoint until an in token has been received indicating that
the TxFIFO is empty.
1'h0
NAK handshake.
If set, this bit forces the endpoint to reply to the USB Host
with a NAK handshake. Setting and clearing of NAK bit are
allowed by SNAK and CNAK bits respectively. For example,
after a SETUP packet (preliminarily decoded by the
application) has been received by the core, the core sets the
NAK bit for all control in and out endpoints. Besides, NAK bit
is also set after a STALL response for the endpoint.
Note: A SETUP packet is sent to the application regardless
of whether the NAK bit is set.
2’h0
Endpoint type.
This 2 bit field gives the endpoint type, according to
encoding:
– 2‘b00 = Control.
– 2‘b01 = Isochronous (ISO).
– 2‘b10 = Bulk.
– 2‘b11 = Interrupt.
[09]
[08]
[07]
[06]
[05:04]
RRDY
CNAK
SNAK
NAK
ET
Doc ID 022642 Rev 3
165/584
USB 2.0 Device port (UDC)
RM0321
Table 161. Endpoint control register bit assignments (continued)
Bit
[03]
[02]
[01]
[00]
9.2.9
Name
P
SN
F
S
Reset value Description
1'h0
Poll demand.
If set, this bit indicates a poll demand from the application.
Note: This bit is reserved for out endpoints only.
1'h0
Snoop mode.
Enabling this bit, the subsystem does not check the
correctness of out packets before transferring them to
application memory (snoop mode).
Note: This bit is reserved for in endpoints only.
1'h0
Flush the TxFIFO.
Setting this bit, it flushes the TxFIFO.
Note: This bit is reserved for out endpoints only.
1'h0
STALL handshake.
If set, this bit forces the endpoint to reply to the USB Host
with a STALL handshake. For example, on successful
reception of a SETUP packet (preliminarily decoded by the
application), the subsystem clears both in and out stall bits,
and sets both in and out NAK bits. In case of non-SETUP
packets, the subsystem clears either in or out stall bit if a
STALL handshake is sent back to the USB Host, and set the
corresponding NAK bit. Besides, a STALL handshake for
next transactions of a stalled endpoint is returned until the
USB Host issues a Clear_Feature command to clear it.
Note: The application must check for RxFIFO emptiness
before setting the in and out stall bit.
Endpoint status register
The endpoint status is a endpoint-specific RO register which reports the current status of
the associated endpoint.
Note:
If the corresponding endpoint is bidirectional (both in and out), there will be two such
endpoint status registers.
Table 162. Endpoint status register bit assignments
Bit
Name
Reset value Description
[31:24]
Reserved
-
Read: undefined.
1'h0
Isochronous in transaction is completed.
This bit indicates that an isochronous (iso) in transaction for
this endpoint has been completed. the application can use
this information to program the iso in data for the next
microframe.
Note: The iso in done bit is used in slave-only mode, and it
is reserved for the UDC11 only.
[23]
166/584
ISO IN
DONE
Doc ID 022642 Rev 3
RM0321
USB 2.0 Device port (UDC)
Table 162. Endpoint status register bit assignments (continued)
Bit
[22:11]
[10]
Name
RX PKT
SIZE
TDC
Reset value Description
12’h000
Receive packet size.
This 12 bit field indicates the number of bytes in the current
receive packet which the RxFIFO is receiving. In case of
incoming SETUP data, this field doesn’t report the
corresponding number of bytes (8 byte every time), but the
configuration status as follows:
[22:19] = Configuration number.
[18:15] = Interface number.
[14:11] = Alternate setting number
Note: This field is used in slave-only mode. In DMA mode,
the application must check the status from the endpoint
data descriptor.
1'h0
Transmit DMA completion.
If set, this bit indicates that transmit DMA has been
completed, transferring a descriptor chain’s data to the
TxFIFO. After servicing the corresponding interrupt, the
application must clear this bit.
[09]
HE
1'h0
Error response on the AHB.
If set, this bit indicates that an error response on the AHB
occurs, during data transfer, descriptor fetch or descriptor
update for this endpoint. After servicing the corresponding
interrupt, the application must clear this bit.
[08]
Reserved
-
Read: undefined.
1'h0
Buffer not available.
This bit is set if the descriptor status is either host busy or
DMA done, stating that the descriptor was not ready at the
time tried to access. After servicing the corresponding
interrupt, the application must clear this bit.
1'h0
In token reception.
If set, this bit states that an in token has been received by
the endpoint. After servicing the corresponding interrupt,
the application must clear this bit. This bit is reserved in
case of out endpoints.
[07]
[06]
BNA
IN
[05:04]
OUT
2‘h0
Out packet reception.
This 2 bit field states that if an out packet has been received
by the endpoint. The type of the incoming data is given by
encoding:
– 2‘b00 = None.
– 2‘b01 = Data.
– 2‘b10 = SETUP data (8 bytes).
– 2‘b11 = Reserved.
In order to clear these bits, the application must write the
same values.
[03:00]
Reserved
-
Read: undefined.
Doc ID 022642 Rev 3
167/584
USB 2.0 Device port (UDC)
9.2.10
RM0321
Endpoint buffer size and received packet frame number register
This is a dual-function endpoint-specific RW register which gives either the buffer size or the
TxFIFO associated to an in endpoint, or the frame number in which a packet is received an
out endpoint (useful to handle ISO traffic).
Table 163. Endpoint buffer size/received packet frame number register bit
assignments
Bit
Name
Reset value Description
[31:18]
Reserved
-
Read: undefined. Write: should be zero.
2’h0
Initial data PID to be sent for a high-bandwidth ISO
transaction.
For IN
These 2 bits indicate the initial data PID to be transmitted for
an high-bandwidth ISO transaction, according to encoding:
– 2‘b00 = DATA0.
– 2‘b01 = DATA0.
– 2‘b10 = DATA1.
– 2‘b11 = DATA2.
For OUT,
These 2 bits indicate the initial data PID of the packet
received (that is, available in the RxFIFO) for an highbandwidth ISO transaction, according to encoding:
– 2'b00 = DATA0.
– 2'b01 = DATA1.
– 2'b10 = DATA2.
– 2'b11 = MDATA.
Note: The ISO PID field is used in slave-only mode, and it is
reserved for the UDC11.
[17:16]
[15:00]
168/584
ISO PID
(IN/OUT)
BUFF SIZE
16’h0000
(IN)
For IN
Buffer size required for this endpoint.
This 16 bit field represents the size of the buffer associated
to that in endpoint as an integer number of 32 bit words.
Resulting flexibility in buffer size allows the application to
cope with interface or configuration changes.
For OUT
Frame number in which the packet is received.
This 16 bit field states the frame number in which an
incoming packet has been received by the RxFIFO for that
out endpoint, as follows:
-High-Speed (HS) operation
[15:14] Reserved.
[13:3] Millisecond frame number.
[2:0] Micro-frame number.
Full-Speed (FS) operation
[15:11] Reserved.
[10:0] Millisecond frame number
Doc ID 022642 Rev 3
RM0321
9.2.11
USB 2.0 Device port (UDC)
Endpoint maximum packet size and buffer size register
This is an endpoint-specific RW register which gives both the buffer size in the RxFIFO
associated to an out endpoint, and the maximum packet size an endpoint (both in and out)
should support. This maximum packet size is used to calculate whether the RxFIFO has
sufficient space to accept a packet.
Note:
When the maximum packet size for a specific endpoint is changed, the application must also
properly set the UDC register space.
Table 164. Endpoint maximum packet size/buffer size register bit assignments
Bit
9.2.12
Name
Reset value Description
[31:16]
BUFF SIZE
16’h0000
Buffer size required for this endpoint.
This 16 bit field represent the size of the buffer in the
RxFIFO associated to that out endpoint as an integer
number of 32 bit words. Resulting flexibility in buffer
size allows the application to cope with interface or
configuration changes.
[15:00]
MAX PKT SIZE
16’h0000
Maximum packet size for the endpoint (in bytes).
Endpoint setup buffer pointer register
The endpoint SETUP buffer pointer is an endpoint-specific RW register which contains the
SETUP buffer pointer used in SETUP commands.
Note:
1
The endpoint SETUP buffer pointer register is used in DMA mode only.
2
The endpoint SETUP buffer pointer register is applicable to control endpoints only, whereas
it is reserved for all other endpoints.
Table 165. Endpoint SETUP buffer pointer register bit assignments
9.2.13
Bit
Name
Reset value Description
[31:00]
SUBPTR
32’h0000
SETUP buffer pointer.
Endpoint data description pointer register
The endpoint data description pointer is an endpoint-specific RW register which contains
data descriptor pointer. Both in and out endpoints have a data descriptor pointer each (32 bit
wide).
Table 166. Endpoint data description pointer register bit assignments
Bit
Name
Reset value Description
[31:00]
DESPTR
32’h0000
Data descriptor pointer.
Doc ID 022642 Rev 3
169/584
USB 2.0 Device port (UDC)
9.2.14
RM0321
UDC20 endpoint register
The UDC20 endpoint register is used by SW to describe the endpoint characteristics.
Table 167. Endpoint register bit assignments
Note:
170/584
Bit
Name
Reset value Description
[31:30]
Reserved
-
Read: undefined. Write: should be zero.
[29:19]
MaxPackSize
11’h000
Maximum endpoint packet size.
[18:15]
AltSetting
4’h0
Alternate setting to which this endpoint belongs.
[14:11]
InterfNumber
4’h0
Interface number to which this endpoint belongs.
[10:07]
ConfNumber
4’h0
Configuration number to which this endpoint belongs.
[06:05]
EPType
2’h0
Endpoint type. The possible options are:
– 2’b00: Control
– 2’b01: Isochronous
– 2’b10: Bulk
– 2’b11: Interrupt
[04]
EPDir
1’h0
Endpoint direction. The possible options are:
– 1’b0: out
– 1’b1: in
[03:00]
EPNumber
4’h0
Logical endpoint number
The UDC 2.0 registers will not be accessible in SUSPEND mode as the UDC2.0 registers
operate on PHY clock which is disabled in the SUSPEND mode.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
10
Fast Ethernet port (MII0)
10.1
Register summary
The MII0 port can be fully configured by programming a set of 32-bit wide registers which
can be accessed at the base address 0xE080.0000.
The registers can be grouped in two different classes:
●
DMA registers (listed in Table 168)
●
MAC registers (listed in Table 169)
Table 168.
DMA registers summary
Name
Offset
Reset value Description
Register 0
0x1000
32’h0
Bus Mode Register
Register 1
0x1004
32’h0
Transmit Poll Demand Register
Register 2
0x1008
32’h0
Receive Poll Demand Register
Register 3
0x100C
32’h0
Receive Descriptor List Address Register
Register 4
0x1010
32’h0
Transmit Descriptor List Address Register
Register 5
0x1014
32’h0
Status Register
Register 6
0x1018
32’h0
Operation Mode Register
Register 7
0x101C
32’h0
Interrupt Enable Register
Register 8
0x1020
32’h0
Missed Frame And Buffer Overflow Counter Register
-
0x1024 to 0x1044 -
Reserved
Register 18 0x1048
32’h0
Current Host Transmit Descriptor Register
Register 19 0x104C
32’h0
Current Host Receive Descriptor Register
Register 20 0x1050
32’h0
Current Host Transmit Buffer Address Register
Register 21 0x1054
32’h0
Current Host Receive Buffer Address Register
Table 169.
MAC global registers summary
Name
Offset
Reset value
Description
Register 0
0x0000
32’h0
Mac Configuration Register
Register 1
0x0004
32’h0
Mac Frame Filter Register
Register 2
0x0008
32’h0
Hash Table High Register
Register 3
0x000C
32’h0
Hash Table Low Register
Register 4
0x0010
32’h0
Mii Address Register
Register 5
0x0014
32’h0
Mii Data Register
Register 6
0x0018
32’h0
Flow Control Register
Register 7
0x001C
32’h0
Vlan Tag Register
Register 8
0x0020
8’h10
Version Register (RO)
Doc ID 022642 Rev 3
171/584
Fast Ethernet port (MII0)
Table 169.
RM0321
MAC global registers summary (continued)
Name
Offset
Reset value
Description
-
0x0024
-
Reserved
Register 10
0x0028
-
Pointer To Wake-up Frame Filter Registers
Register 11
0x002C
32’h0
Pmt Control And Status Register
-
0x0030 to
0x0034
-
Reserved
Register 14
0x0038
32’h0
Interrupt Register
Register 15
0x003C
32’h0
Interrupt Mask Register
Register16
0x0040
32’h8000FFFF
Mac Address0 High Register
Register17
0x0044
32’hFFFFFFFF
Mac Address0 Low Register
Register18
0x0048
32’h0000FFFF
Mac Address1 High Register
Register19
0x004C
32’hFFFFFFFF
Mac Address1 Low Register
Register 20
to 47
0x0050 to
0x00BC
As for
Register18/19
Mac Address1 High/low Registers (With I = 2...15)
-
0x00C0 to
0x00D8
-
Reserved
-
0x00DC to
0x00FC
-
Reserved
Register 64
to 127
0x0100 to
0x01FC
-
MMC Registers
Table 170. MMC (MAC management counters) registers
172/584
Name
Offset
Reset Value
Description
Register 64
0x0100
32’h0
Mmc_cntrl establishes the operating mode of MMC
Register 65
0x0104
32’h0
Mmc_intr_rx maintains the interrupts generated from all
of the receive statistics counters.
Register 66
0x0108
32’h0
Mmc_intr_tx maintains the interrupts generated from all
of the transmit statistics counters.
Register 67
0x010C
32’h0
Mmc_intr_mask_rx maintains the mask for the interrupt
generated from all of the received statistics counters.
Register 68
0x0110
32’h0
Mmc_intr_mask_tx maintains the mask for the interrupt
generated from all of the transmit statistics counters.
Register 69
0x0114
32’h0
Txoctetcount_gb is the number of bytes, exclusive of
preamble and retried bytes, in good and bad frames
Register 70
0x0118
32’h0
Txframecount_gb is the number of good and bad frames
transmitted, exclusive of retried frames.
Register 71
0x011C
32’h0
Txbroadcastframes_g is the number of good broadcast
frames transmitted
Register 72
0x0120
32’h0
Txmulticastframes_g is the number of good multicast
frames transmitted
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 170. MMC (MAC management counters) registers (continued)
Name
Offset
Reset Value
Description
Register 73
0x0124
32’h0
Tx64octets_gb is the number of good and bad frames
transmitted with length 64 bytes, exclusive of preamble
and retried frames.
32’h0
Tx65to127octets_gb is the number of good and bad
frames transmitted with length between 65 and 127
(inclusive) bytes, exclusive of preamble and retried
frames.
32’h0
Tx128to255octets_gb is the number of good and bad
frames transmitted with length between 127 and 255
(inclusive) bytes, exclusive of preamble and retried
frames.
32’h0
Tx256to511octets_gb is the number of good and bad
frames transmitted with length between 256 and 511
(inclusive) bytes, exclusive of preamble and retried
frames.
32’h0
Tx512to1023octets_gb is the number of good and bad
frames transmitted with length between 512 and 1023
(inclusive) bytes, exclusive of preamble and retried
frames.
Register 74
Register 75
Register 76
Register 77
0x0128
0x012C
0x0130
0x0134
Register 78
0x0138
32’h0
Tx1024tomaxoctets_gb is the number of good and bad
frames transmitted with length between1024 and
mqaxsize (inclusive) bytes, exclusive of preamble and
retried frames.
Register 79
0x013C
32’h0
Txunicastframes_gb is the number of good and bad
unicast frames transmitted.
Register 80
0x0140
32’h0
Txmulticastframes_gb is the number of good and bad
multicast frames transmitted.
Register 81
0x0144
32’h0
Txbroadcastframes_gb is the number of good and bad
broadcast frames transmitted.
Register 82
0x0148
32’h0
Txunderflowerror is the number of frames aborted due to
frame underflow error.
Register 83
0x014C
32’h0
Txsinglecol_g is the number of successfully transmitted
frames after a single collision in Half-duplex mode.
Register 84
0x0150
32’h0
Txmulticol_g is the number of successfully transmitted
frames after more than a single collision in Half-duplex
mode.
Register 85
0x0154
32’h0
Txdeferred is the number of successfully transmitted
frames after a deferral in Half-duplex mode.
Register 86
0x0158
32’h0
Txlatecol is the number of frames aborted due to late
collision error.
Register 87
0x015C
32’h0
Txexesscol is the number of frames aborted due to
excessive (16) collision errors.
Register 88
0x0160
32’h0
Txcarriererror is the number of frames aborted due to
carrier sense error (no carrier or loss of carrier).
Doc ID 022642 Rev 3
173/584
Fast Ethernet port (MII0)
RM0321
Table 170. MMC (MAC management counters) registers (continued)
174/584
Name
Offset
Reset Value
Description
Register 89
0x0164
32’h0
Txoctetcount_g is the number of bytes transmitted,
exclusive of preamble, in good frames only.
Register 90
0x0168
32’h0
Txframecount_g is the number of good frames
transmitted.
Register 91
0x016C
32’h0
Txexcessdef is the number of frames aborted due to
excessive deferral error (deferred for more than two
max-sized frame times).
Register 92
0x0170
32’h0
Txpauseframes is the number of good PAUSE frames
transmitted.
Register 93
0x0174
32’h0
Txvlanframes_g is the number of good VLAN frames
transmitted, exclusive of retried frames.
Register 94
0x0178
32’h0
Reserved
Register 95
0x017C
32’h0
Reserved
Register 96
0x0180
32’h0
Rxframecount_gb is the number of good and bad frames
received.
Register 97
0x0184
32’h0
Rxoctetcount_gb is the number of bytes received
exclusive of preamble, in good and bad frames.
Register 98
0x0188
32’h0
Rxoctetcount_g is the number of bytes received
exclusive of preamble, only in good frames.
Register 99
0x018C
32’h0
Rxbroadcastframes_g is the number of good broadcast
frames received.
Register 100
0x0190
32’h0
Rxmulticastframes_g is the number of good multicast
frames received.
Register 101
0x0194
32’h0
Rxcrcerror is the number of frames received with CRC
error.
Register 102
0x0198
32’h0
Rxalignmenterror is the number of frames received with
alignment (dribble) error. Valid only in 10/100 mode.
Register 103
0x019C
32’h0
Rxrunterror is the number of frames received with runt
(<64 bytes and CRC error) error.
Register 104
0x01A0
32’h0
Rxjabbererror is the number of giant frames received
with length (including CRC) greater than 1,518 bytes
(1,522 bytes with VLAN tagged) and with CRC error. If
Jumbo Frame mode is enabled, the frames of length
greater than 9,018 bytes (9,022 for VLAN tagged) are
considered as giant frames.
Register 105
0x01A4
32’h0
Rxundersize_g is the number of frames received with
length less than 64 bytes, without any errors.
Register 106
0x01A8
32’h0
Rxoversize_g is the number of frames received with
length greater than the maxsize (1,518 0r 1,522 for
VLAN tagged frames) without errors.
Register 107
0x01AC
32’h0
Rx64octets_gb is the number of good and bad frames
received with length 64 bytes, exclusive of preamble.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 170. MMC (MAC management counters) registers (continued)
Name
Offset
Reset Value
Description
Register 108
0x01B0
32’h0
Rx65to127octets_gb is the number of good and bad
frames received with length between 127 and 255
(inclusive) bytes, exclusive of preamble.
Register 109
0x01B4
32’h0
Rx128to255octets_gb is the number of good and bad
frames transmitted with length between 127 and 255
(inclusive) bytes, exclusive of preamble.
Register 110
0x01B8
32’h0
Rx256to511octets_gb is the number of good and bad
frames transmitted with length between 256 and 511
(inclusive) bytes, exclusive of preamble.
Register 111
0x01BC
32’h0
Rx512to1023octets_gb is the number of good and bad
frames transmitted with length between 512 and 1023
(inclusive) bytes, exclusive of preamble.
Register 112
0x01C0
32’h0
Rx1024tomaxoctets_gb is the number of good and bad
frames transmitted with length between 1024 and
maxsize (inclusive) bytes, exclusive of preamble and
retried frames.
Register 113
0x01C4
32’h0
Rxunicastframes_g is the number of good unicast
frames received.
Register 114
0x01C8
32’h0
Rxlengtherror is the number of frames received with
length error (length type field!= frame size) for all frames
with valid length field.
Register 115
0x01CC
32’h0
Rxoutofrangetype is the number of frames received with
length field not equal to the valid frame size (greater than
1500 but less than 1536).
Register 116
0x01D0
32’h0
Rxpauseframes is the number of good and valid PAUSE
frames received.
Register 117
0x01D4
32’h0
Rxfifooverflow is the number of missed received frames
due to FIFO overflow.
Register 118
0x01D8
32’h0
Rxvlanframes_gb is the number of good and bad VLAN
frames received.
Register 119
0x01DC
32’h0
Rxwatchdogerror is the number of frames received with
error due to watchdog timeout error (frames with a data
load larger than 2,048 bytes).
Register 120127
0x01E00x01FC
32’h0
Reserved
Doc ID 022642 Rev 3
175/584
Fast Ethernet port (MII0)
RM0321
10.2
Register description
10.2.1
Bus mode register (Register0, DMA)
The bus mode is a register which establishes the bus operating mode for the DMA.
Table 171. Bus mode register bit assignments
Bit
Name
Reset Value
Type
Description
[31:17]
Reserved
-
RO
Read: undefined
[16]
FB
1’h0
RW
Fixed Burst
[15:14]
PR
2’h0
RW
Rx:Tx Priority Ratio.
[13:08]
PBL
6’h0
RW
Programmable Burst Length.
[07]
Reserved
-
RO
Read: undefined
[06:02]
DSL
5’h0
RW
Descriptor Skip Length.
[01]
DA
1’h0
RW
DMA Arbitration Scheme
[00]
SWR
1’h0
RW
Software Reset
●
FB
Setting this bit, the AHB Master interface performs only fixed bursts transfers (SINGLE,
INCR4, INCR8 or INCR16). In contrast, the AHB will use SINGLE and INCR burst only.
●
PR
This 2 bit field indicates the ratio of the RxDMA requests given priority over TxDMA
request, according to encoding below:
VALUE
Rx:Tx RATIO
2‘b00
1:1
2‘b01
2:1
2‘b10
3:1
2‘b11
4:1
●
PBL
This 6 bit field states the maximum number of beats to be transferred in one DMA
transmission. Each time DMA starts a burst transfer on the host bus, it will always
attempt to burst as specified by PBL value. Valid values for PBL are 1, 2, 4, 8, 16 and
32, and any other value will result in undefined behavior.
●
DSL
This 5 bit field specifies the number of Word/Dword/Long (depending on 32(64/128 bit
bus) to skip between two unchained descriptors. If DSL is zero (5'h0, default) then the
descriptor table is taken as contiguous by the DMA in ring mode.
●
DA
This bit allows the selection of the DMA arbitration scheme, according to encoding
below:
176/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 172. DA bit description
VALUE
ARBITRATION SCHEME
1‘b0
Round robin with Rx:Tx priority given in PR field.
1‘b1
Rx has priority over Tx.
●
SWR
Setting this bit, the DMA Controller resets all MAC internal registers and logic. This bit
is automatically cleared after the reset has completed.
10.2.2
Transmit poll demand register (Register1, DMA)
The Transmit Poll Demand is a register which enables the transmit DMA to check whether or
not the current descriptor is owned by DMA.
Table 173. Transmit poll demand register bit assignments
Bit
Name
Reset Value
Type
Description
[31:00]
TPD
32’h0
RW
Transmit Poll Demand.
●
TPD
When these bits are written with any value, the DMA reads the current descriptor
pointed to by DMA Register18 (Current Host Transmit Descriptor). If the pointed
descriptor is available the transmission resumes, otherwise (that is, the descriptor is
owned by the host), transmission returns to suspend state and TU bit in DMA Register5
(Status) is asserted.
10.2.3
Receive poll demand register (Register2, DMA)
The Receive Poll Demand is a register which enables the receive DMA to check for new
descriptors.
Table 174. Receive poll demand register bit assignments
Bit
Name
Reset Value
Type
Description
[31:00]
RPD
32’h0
RW
Receive Poll Demand.
●
RPD
When these bits are written with any value, the DMA reads the current descriptor
pointed to by DMA Register19 (Current Host Receive Descriptor). If the pointed
descriptor is available the reception resumes, otherwise (that is, the descriptor is
owned by the host), reception returns to suspend state and RU bit in DMA Register5
(Status) is asserted.
10.2.4
Receive descriptor list address register (Register3, DMA)
The receive descriptor list address is a register which points to the start of the Receiver
Descriptor List.
Doc ID 022642 Rev 3
177/584
Fast Ethernet port (MII0)
Note:
RM0321
Writing to this register is permitted only when reception is stopped. When stopped, the
register must be written to before the receive Start command is given.
Table 175. Receive descriptor list address register bit assignments
10.2.5
Bit
Name
Reset value Type
Description
[31:00]
SRL
32’h0
Start of receive list.
RW
Transmit descriptor list address register (Register4, DMA)
The Transmit Descriptor List Address is a register which points to the start of the Transmit
Descriptor List.
Note:
Writing to this register is permitted only when transmission is stopped. When stopped, the
register can be written to before the transmission Start command is given.
Table 176. Transmit descriptor list address register bit assignments
10.2.6
Bit
Name
Reset value
Type
Description
[31:00]
STL
32’h0
RW
Start of transmit list.
Status register (Register 5, DMA)
The Status is a RO register which contains all the status bit that the DMA reports to the host,
and it is usually read by the software driver during an interrupt service routine or polling.
Note:
The Status register bits are not cleared when read. Unreserved bits [16:0] in this register are
cleared writing 1‘b1 to them, whereas writing 1‘b0 has no effect. The same [16:0] bits can be
masked by the appropriate bits in Register 7 (Interrupt Enable Register).
Table 177. Status register bit assignments
178/584
Bit
Name
Reset Value Type
Description
[31:29]
Reserved
-
RO
Read:undefined
[28]
GPI
1’h0
RO
MAC PMT Interrupt
[27]
GMI
1’h0
RO
MAC MMC Interrupt
[26]
Reserved
-
RO
Read:undefined
[25:23]
EB
3’h0
RO
Error bits
[22:20]
TS
3’h0
RO
Transmit Process State
[19:17]
RS
3’h0
RO
Receive Process State
[16]
NIS
1‘h0
RW
Normal Interrupt Summary
[15]
AIS
1‘h0
RW
Abnormal Interrupt Summary
[14]
ERI
1‘h0
RW
Early Receive Interrupt
[13]
FBI
1’h0
RW
Fatal Bus Error Interrupt
[12:11]
Reserved
-
RO
Read: undefined
[10]
ETI
1’h0
RW
Early Transmit Interrupt
[09]
RWT
1’h0
RW
Receive Watchdog Timeout
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 177. Status register bit assignments (continued)
Bit
Name
Reset Value Type
Description
[08]
RPS
1’h0
RW
Receive Process Stopped
[07]
RU
1’h0
RW
Receive Buffer Unavailable
[06]
RI
1’h0
RW
Receive Interrupt
[05]
UNF
1’h0
RW
Transmit Underflow
[04]
OVF
1’h0
RW
Receive Overflow
[03]
TJT
1’h0
RW
Transmit Jabber Timeout
[02]
TU
1’h0
RW
Transmit Buffer Unavailable
[01]
TPS
1’h0
RW
Transmit Process Stopped
[00]
TI
1’h0
RW
Transmit Interrupt.
●
GPI
This bit reflects the pmt_intr_o signal output of the MAC Core, in the frame of PMT
(Power Management) module.
Note:
The corresponding registers in MAC Core must be read to get the exact cause of this
interrupt and clear the source.
●
GMI
This bit reflects an interrupt event in the MMC (MAC Management Counters) module of
the MAC Core.
Note:
The corresponding registers in MAC Core must be read to get the exact cause of this
interrupt and clear the source.
●
EB
This 3 bit field indicates the type of error that caused a Bus Error response on the AHB
interface, according to encoding below:
Table 178. EB field bit assignments
Bit 23
Bit 24
Bit 25
Error
1‘b0
-
-
During data transfer by RxDMA.
1‘b1
-
-
During data transfer by TxDMA.
-
1‘b0
-
During write transfer.
-
1‘b1
-
During read transfer.
-
-
1‘b0
During data buffer access.
-
-
1‘b1
During descriptor access.
This field does not generate an interrupt. This field is valid only when FBI bit in this register
is set.
●
TS
This 3 bit field reflects the state of the Transmit DMA FSM, according to encoding
below:
Doc ID 022642 Rev 3
179/584
Fast Ethernet port (MII0)
RM0321
Table 179. TS filed bit assignments
Value
State
Description
3‘b000
Stopped
Reset or stop transmission command issued.
3‘b001
Running
Fetching transmit transfer descriptor.
3‘b010
Running
Waiting for status.
3‘b011
Running
Reading data from host memory buffer and queuing it to transmit buffer
(TxFIFO).
3‘b100
Reserved
-
3‘b101
Reserved
-
3‘b110
Suspended
Transmit descriptor unavailable or transmit buffer underflow.
3‘b111
Running
Closing transmitting descriptor.
●
RS
This 3 bit field reflects the state of the Receive DMA FSM, according to encoding
below:
Table 180. RS field bit assignments
Value
State
Description
3‘b000
Stopped
Reset or stop reception command issued.
3‘b001
Running
Fetching receive transfer descriptor.
3‘b010
Reserved
-
3‘b011
Running
Waiting for receive packet.
3‘b100
Suspended
Receive descriptor unavailable.
3‘b101
Running
Closing receiving descriptor.
3‘b110
Reserved
-
3‘b111
Running
Transferring the receive packet data from receiver buffer to host
memory.
●
NIS
The value of this bit is the logical OR of the following bits in this register (if
corresponding interrupt bits are enabled in DMA Register7, section 1.4.2.8, that is only
unmasked bits affect NIS):
Table 181. NIS field bit assignments
FIELD
180/584
Bit
Transmit Interrupt
TI
0
Transmit Buffer Unavailable
TU
2
Receive Interrupt
RI
6
Early Receive Interrupt
ERI
14
Doc ID 022642 Rev 3
RM0321
Note:
Fast Ethernet port (MII0)
This bit must be cleared (writing a 1'b1) each time a corresponding bit that causes NIS to be
set is cleared.
●
AIS
The value of this bit is the logical OR of the following bits in this register (if
corresponding interrupt bits are enabled in DMA Register7, section 1.4.2.8, that is only
unmasked bits affect AIS):
Table 182. AIS field bit assignments
Field
Note:
Bit
Transmit Process Stopped
TPS
1
Transmit Jabber Timeout
TJT
3
Receive FIFO Overflow
OVF
4
Transmit Underflow
UNF
5
Receive Buffer Unavailable
RU
7
Receive Process Stopped
RPS
8
Receive Watchdog Timeout
RWT
9
Early Transmit Interrupt
ETI
10
Fatal Bus Error
FBI
13
This bit must be cleared (writing a 1'b1) each time a corresponding bit that causes AIS to be
set is cleared.
●
ERI
If set it indicates that the DMA had filled the first data buffer of the packet. The RI bit in
this register automatically clears the ERI bit.
●
FBI
If set it indicates that a Bus Error occurred (refer to EB field in this register), and DMA
disables all its bus accesses.
●
ETI
If set it indicates that the frame to be transmitted was fully transferred to MAC.
●
RWT
This bit is set when a frame with a length greater than 2048 bytes is received.
●
RPS
This bit is set when the Receive Process enters in the Stopped state (refer to RS field in
this register).
●
RU
If set it indicates that the Next Descriptor in the Receive list is owned by the host and it
can't be acquired by DMA (receive buffer unavailable), resulting in Receive Process
Doc ID 022642 Rev 3
181/584
Fast Ethernet port (MII0)
RM0321
suspended. This bit is set only when the previous descriptor in Receive list is owned by
DMA.
●
RI
If set it indicates the completion of frame reception. Note that Receive Process remains
in running state.
●
UNF
If set it indicates that the Transmit Buffer had an underflow during frame transmission.
Transmission is then suspended and an underflow error is set in TDES0.
●
OVF
If set it indicates that the Receive Buffer had an overflow during frame reception. If the
partial frame is transferred to application, the overflow status is set in RDES0.
●
TJT
If set it indicates that the transmit jabber timeout expired, meaning that the transmitter
had been excessively active. Transmission is then aborted and placed in Stopped state,
causing the bit [14] in TDES0 to be set.
●
TU
If set it indicates that the Next Descriptor in the Transmit list is owned by the host and it
can't be acquired by DMA (transmit buffer unavailable), resulting in Transmit Process
suspended.
●
TPS
This bit is set when the Transmit Process enters in the Stopped state (refer to TS field
in this register).
●
TI
If set it indicates the completion of frame transmission, and bit [31] in TDES1 is set for
the first descriptor.
10.2.7
Operation mode register (Register 6, DMA)
The Operation Mode is a register which establishes the transmit and receive operating
modes and commands.
Note:
182/584
The operation mode register should be the last CSR to be written as part of DMA
initialization.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 183. Operation mode register bit assignments
Bit
Name
Reset Value
Type
Description
[31:22]
Reserved
-
RO
Read: undefined
[21]
SF
1’h0
RW
Store and Forward
[20]
FTF
1’h0
RW
Flush Transmit FIFO
[19:17]
Reserved
-
RW
Read: undefined
[16:14]
TTC
3’h0
RW
Transmit Threshold Control
[13]
ST
1’h0
RW
Start/Stop Transmission Command
[12:11]
RFD
2’h0
RW
Threshold for De-activating Flow Control
[10:09]
RFA
2’h0
RW
Threshold for Activating Flow Control
[08]
EFC
1’h0
RW
Enable HW Flow Control
[07]
FEF
1’h0
RW
Forward Error Frames
[06]
FUF
1’h0
RW
Forward Undersized Good Frames
[05]
Reserved
-
RO
Read: undefined
[04:03]
RTC
2’h0
RW
Receive Threshold Control
[02]
OSF
1’h0
RW
Operate on Second Frame
[01]
SR
1’h0
RW
Start/Stop Receive
[00]
Reserved
-
RO
Read: undefined
●
SF
Setting this bit, the transmission starts when a full frame resides in the Transmit FIFO. If
set, the TTC field in this register is ignored.
Note:
This bit should be changed only when transmission is stopped.
●
FTF
Setting this bit, the Transmit FIFO controller logic is reset and all data in the FIFO is
flushed (lost). When the flushing is fully completed, this bit is automatically cleared.
●
TTC
This 3 bit field allows start of transmission when the frame size in the Transmit FIFO is
larger than the stated threshold, according to encoding below:
Table 184. TTC field bit assignments
Value
Threshold (Byte)
3‘b000
64
3‘b001
128
3‘b010
192
3‘b011
256
3‘b100
40
3‘b101
32
Doc ID 022642 Rev 3
183/584
Fast Ethernet port (MII0)
RM0321
Table 184. TTC field bit assignments (continued)
Note:
Value
Threshold (Byte)
3‘b110
24
3‘b111
16
This field is used only when SF bit in this register is cleared.
●
ST
Setting this bit, the transmission process is placed in the Running state, and the DMA
checks the Transmit List for a frame to be transmitted either at the current position
(pointed by the Transmit Descriptor List Address register, Section 10.2.5) or at position
retained in case of transmission was stopped previously.
Clearing this bit, the transmission process is placed in the Stopped state after
completing the transmission of the current frame.
●
RFD
This 2 bit field controls the threshold (that is, fill-level of Receive FIFO) at which the
flow-control (in both HD and FD) is de-asserted after activation, according to encoding
below:
Table 185. RFD field bit assignments
Value
Threshold
2‘b00
(Full - 1K) bytes
2‘b01
(Full - 2K) bytes
2‘b10
(Full - 3K) bytes
2‘011
(Full - 4K) bytes
●
RFA
This 2 bit field controls the threshold (that is, fill-level of Receive FIFO) at which the
flow-control (in both HD and FD) is activated, according to encoding below:
Table 186. RFA field bit assignments
Note:
Value
Threshold
2‘b00
(Full - 1K) bytes
2‘b01
(Full - 2K) bytes
2‘b10
(Full - 3K) bytes
2‘011
(Full - 4K) bytes
This threshold is applicable only for Receive FIFO of size of 4Kbytes and above, and when
bit EFC in this register is set.
●
EFC
Setting this bit, the flow-control operation based on fill-level (threshold) of Receive FIFO
is enabled.
184/584
Doc ID 022642 Rev 3
RM0321
Note:
Fast Ethernet port (MII0)
This bit is not used (reserved) when the Receive FIFO size is less than 4Kbytes.
●
FEF
Setting this bit, all frames except runt-error frames will be forwarded to the DMA.
Otherwise, the Receive FIFO will drop frames with error status.
●
FUF
Setting this bit, the Receive FIFO will forward undersized frames (frames with no error
and length less than 64 bytes, including pad-bytes and CRC). Otherwise, the Receive
FIFO will drop all frames of size less than 64 bytes, unless frame is already transferred
due to lower value of RTC value (in this register).
●
RTC
This 2 bit field allows start of transfer request to DMA when the frame size in the
Receive FIFO is larger than the stated threshold, according to encoding below:
Table 187. RTC field bit assignments
Value
Threshold (Byte)
2‘b00
64
2‘b01
32
2‘b10
96
2‘011
128
●
OSF
Setting this bit, the DMA is instructed to process a second frame of the Transmit List
even before to obtain the status of the first frame.
●
SR
Setting this bit, the receive process is placed in the Running state, and the DMA
attempts to acquire the descriptor from the Receive List and process incoming frames.
Descriptor acquisition is attempted from the current position (pointed by the Receive
Descriptor List Address register) or at position retained in case of reception was
previously stopped.
Clearing this bit, the receive process is placed in the Stopped state after completing the
transmission of the current frame.
10.2.8
Interrupt enable register (Register7, DMA)
The Interrupt Enable is a register which enables the interrupts reported by register5
(Section 10.2.6).
Note:
Setting a bit enables the corresponding interrupt. After reset, all interrupts are disabled.
Table 188. Interrupt enable register bit assignments
Bit
Name
Reset value Type
Description
[31:17]
Reserved
-
RO
Read: undefined
[16]
NIE
1’h0
RW
Normal interrupt summary enable
[15]
AIE
1’h0
RW
Abnormal interrupt summary enable
[14]
ERE
1’h0
RW
Early receive interrupt enable
Doc ID 022642 Rev 3
185/584
Fast Ethernet port (MII0)
RM0321
Table 188. Interrupt enable register bit assignments (continued)
10.2.9
Bit
Name
Reset value Type
Description
[13]
FBE
1’h0
RW
Fatal bus error interrupt enable
[12:11]
Reserved
-
RO
Read: undefined
[10]
ETE
1’h0
RW
Early transmit interrupt enable
[09]
RWE
1’h0
RW
Receive watchdog timeout enable
[08]
RSE
1’h0
RW
Receive stopped enable
[07]
RUE
1’h0
RW
Receive buffer unavailable enable
[06]
RIE
1’h0
RW
Receive interrupt enable
[05]
UNE
1’h0
RW
Underflow interrupt enable
[04]
OVE
1’h0
RW
Overflow interrupt enable
[03]
TJE
1’h0
RW
Transmit jabber timeout enable
[02]
TUE
1’h0
RW
Transmit buffer unavailable enable
[01]
TSE
1’h0
RW
Transmit stopped enable
[00]
TIE
1’h0
RW
Transmit interrupt enable
Missed frame and buffer overflow counter register (Register8, DMA)
The Missed Frame And Buffer Overflow Counter is a register which reports the current value
of the two counters maintained by DMA Controller to track the number of missed frames
during reception.
As stated in the bit assignments given in Table 189, bits [15:0] indicate the number of
missed frames due to the host buffer being unavailable, and bits [27:17] indicate the number
of missed frames due to buffer overflow conditions.
Table 189. Missed frame and buffer overflow counter register bit assignments
10.2.10
Bit
Name
Reset Value
Type
Description
[31:29]
Reserved
-
RO
Read: undefined
[28]
-
1’h0
RW
Overflow for FIFO Overflow Counter
[27:17]
-
11’h0
RW
Number of frames missed by the application
[16]
-
1’h0
RW
Overflow for Missed Frame Counter
[15:00]
-
16’h0
RW
Number of frames missed by the controller
Current host transmit descriptor register (Register18, DMA)
The Current Host Transmit Descriptor is a RO register which points to the start address of
the current transmit descriptor read by the DMA. This pointer is updated by DMA during
operation.
186/584
Doc ID 022642 Rev 3
RM0321
10.2.11
Fast Ethernet port (MII0)
Current host receive descriptor register (Register19, DMA)
The Current Host Receive Descriptor is a RO register which points to the start address of
the current receive descriptor read by the DMA. This pointer is updated by DMA during
operation.
10.2.12
Current host transmit buffer address register (Register20, DMA)
The Current Host Transmit Buffer Address is a RO register which points to the current
transmit buffer address being read by the DMA. This pointer is updated by DMA during
operation.
10.2.13
Current host receive buffer address register (Register21, DMA)
The Current Host Receive Buffer Address is a RO register which points to the current
receive buffer address being read by the DMA. This pointer is updated by DMA during
operation.
10.2.14
MAC configuration register (Register0, MAC)
The MAC configuration is a register which establishes receive and transmit operating
modes.
Table 190. MAC configuration register bit assignments
Bit
Name
Reset Value
Type
Description
[31:24]
Reserved
-
RO
Read: undefined
[23]
WD
1’h0
RW
Watchdog Disable
[22]
JD
1’h0
RW
Jabber Disable
[21]
Reserved
-
RO
Read: undefined
[20]
JE
1’h0
RW
Jumbo Frame Enable
[19:17]
IFG
3’h0
RW
Inter Frame Gap
[16]
DCRS
1’b0
RW
Disable Carrier Sense During Transmission
[15]
Reserved
-
RO
Read: undefined
[14]
Reserved
-
RO
Read: undefined
[13]
DO
1’h0
RW
Disable Receive Own
[12]
LM
1’h0
RW
Loop-back Mode
[11]
DM
1’h0
RW
Duplex Mode
[10]
IPC
1’h0
RW
Checksum Offload
[09]
DR
1’h0
RW
Disable Retry
[08]
Reserved
[07]
ACS
1’h0
RW
Automatic Pad/CRC Stripping
[06:05]
BL
2’h0
RW
Back-off Limit
[04]
DC
1’h0
RW
Deferral Check
[03]
TE
1’h0
RW
Transmitter Enable
Reserved
Doc ID 022642 Rev 3
187/584
Fast Ethernet port (MII0)
RM0321
Table 190. MAC configuration register bit assignments (continued)
Bit
Name
Reset Value
Type
Description
[02]
RE
1’h0
RW
Receiver Enable.
[01:00]
Reserved
-
RO
Read: undefined.
●
WD
Setting this bit, the MAC disables the watchdog timer on the receiver. Otherwise, MAC
allows no more than 2048 bytes (10240 bytes, if JE bit in this register is set) of the
receiving frame and cuts off any bytes received after that.
●
JD
Setting this bit, the MAC disables the jabber timer on the transmitter. Otherwise, MAC
cuts off the transmitter if the application sends out more than 2048 bytes (10240 bytes,
if JE bit in this register is set) of data during transmission.
●
JE
Setting this bit, the MAC allows Jumbo frames of size 9018 bytes (9022 bytes for VLAN
tagged frames) without reporting a giant frame error in the receive frame status.
Note:
JD bit in this register should be set in order to transmit jumbo frames.
●
Note:
IFG
This 3 bit field controls the minimum inter frame gap between frames during transmission,
according to encoding below:
Table 191. IFG field bit assignments
Note:
Value
Inter Frame Gap
3‘b000
96 bit times
3‘b001
88 bit times
3‘b010
80 bit times
...
...
3‘b111
40 bit times
In half-duplex mode, the minimum IFG can be configured up to 64 bit times (IFG = 3'b100).
●
DCRS
When set high, this bit makes the MAC transmitter ignore the MII CRS signal during
frame transmission in half-duplex mode. This request results in no errors generated
due to Loss of Carrier or No Carrier during such transmission. When this bit is low, the
MAC transmitter generates such errors due to Carrier Sense and will even abort the
transmissions.
●
DO
Setting this bit, the MAC disables the reception of frame when the mii_txen_o is
asserted in half-duplex mode. Otherwise, the MAC receives all packets that are given
by the PHY while transmitting.
188/584
Doc ID 022642 Rev 3
RM0321
Note:
Fast Ethernet port (MII0)
This bit is not applicable (RO with default value) if the MAC is operating in full-duplex.
●
LM
Setting this bit, the MAC operates in loop-back mode at MII. In this mode, the MII
receive clock input is required for the loop-back to work properly.
●
DM
Setting this bit, the MAC operates in a full-duplex mode where it can transmit and
receive simultaneously.
Note:
This bit is RO with default value of 1'b1 in full-duplex only configuration.
●
IPC
Setting this bit, the MAC calculates the 16 bit 1's complement of the 1's complement
sum of the payload data (16 bit) and sends it to the application at the end of frame.
●
DR
Setting this bit, the MAC will attempt only one transmission. In case of a collision, the
MAC will ignore the current frame transmission and report a Frame Abort with
excessive collision error in the transmit frame status.
Clearing this bit, the MAC will attempt retries based on the settings of BL field in this
register (bits [06:05]).
Note:
This bit is applicable only to half-duplex mode and it is reserved in full-duplex only
configuration.
●
ACS
Setting this bit, the MAC will strip the Pad/FCS field on incoming frames only if the
length's field value is less than or equal to 1500 bytes. All received frames with length
field greater than or equal to 1501 bytes will be passed to the application without
stripping the Pad/FCS field.
Clearing this bit, the MAC will pass unmodified all incoming frames to the application.
●
BL
This 2 bit field represents the back-off limit which determines the random integer
number (r) of slot time delays (that is., 512 bit times) the MAC waits before
rescheduling a transmission attempt during retries after a collision.
The random integer r takes value ranging from 0 to 2k (2k not included), being k
specified by BL field according to encoding below:
Table 192. BL field bit assignments
Value
K
2‘b00
min (n,10)
2‘b01
min (n,8)
2‘b10
min (n,4)
2‘b11
min(n,1)
Doc ID 022642 Rev 3
189/584
Fast Ethernet port (MII0)
Note:
RM0321
1
where n is the number of retransmission attempts.
2
This bit is applicable only to half-duplex mode and it is reserved (RO) in full-duplex only
configuration.
●
DC
Setting this bit, the deferral check function is enabled in the MAC. The MAC will issue a
Frame Abort status, along with the excessive deferral error bit set in the transmit frame
status when transmit state machine is deferred for more than 24 288 bit times.
Note:
This bit is applicable only to half-duplex mode and it is reserved (RO) in full-duplex only
configuration.
●
TE
Setting this bit, transmit state machine of the MAC is enabled for transmission on the
MII. Otherwise, transmit state machine is disabled after the completion of the
transmission of the current frame, and will not transmit any further frames.
●
RE
Setting this bit, receive state machine of the MAC is enabled for receiving frames from
the MII. Otherwise, receive state machine is disabled after the completion of the
reception of the current frame, and will not receive any further frames.
10.2.15
MAC frame filter register (Register1, MAC)
The MAC frame filter is a register which contains the filter controls for receiving frames.
Note:
The 1st level of filtering is performed going to the address check block of the MAC (address
filtering). The 2nd level of filtering is performed on the incoming frame, based on other
controls such as ‘pass bad frames’ or ‘pass control frames’.
Table 193. MAC frame filter register bit assignments
Bit
Name
Reset Value
Type
Description
[31]
RA
1’h0
RW
Receive All.
[30:11]
Reserved
-
RO
Read: undefined
[10]
HPF
1’b0
RW
Hash or Perfect Filter
[09]
SAF
1’h0
RW
Source Address Filter Enable
[08]
SAIF
1’h0
RW
SA Inverse Filtering
[07:06]
PCF
2’h0
RW
Pass Control Frames
[05]
DBF
1’h0
RW
Disable Broadcast Frames
[04]
PM
1’h0
RW
Pass All Multicast
[03]
DAIF
1’h0
RW
DA Inverse Filtering
[02]
HMC
1’h0
RW
Hash MultiCast
[01]
HUC
1’h0
RW
Hash UniCast
[00]
PR
1’h0
RW
Promiscuous Mode
●
RA
Setting this bit, the MAC Receiver module passes to the application all frames received
regardless of whether they pass the address filter or not (but result of SA/DA filtering is
190/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
updated - pass or fail - in the corresponding bits in the received frame status word
(Receive Descriptor 0, RDES0).
Clearing this bit, only frames that pass the SA/DA address filter are passed to the
application.
●
HPF
When set, this bit configures the address filter to pass a frame if it matches either the
perfect filtering or the hash filtering as set by HMC or HUC bits. When low and if the
HUC/HMC bit is set, the frame is passed only if it matches the Hash filter.
●
SAF
Setting this bit, the MAC drops frame when SA filter fails (that is, when SA field of
received frames doesn't match with the values programmed in the enabled SA
registers). Clearing this bit, the MAC Core forwards the received frame to the
application and with the updated received frame status word (Receive Descriptor 0,
RDES0, section 1.2.3.1) depending on the SA address comparison.
●
SAIF
Setting this bit, the frames whose SA matches the SA registers will be marked as failing
the SA address filter (inverse filtering mode). Otherwise (bit cleared), frames whose SA
doesn't match the SA registers will be marked as failing the SA address filter (nominal
filtering mode).
●
PCF
This 2 bit field controls the forwarding of all control frames (including unicast and
multicast PAUSE frames), according to encoding below:
Table 194. PCF field bit assignments
Value
Description
2‘b00
MAC filters all control frames from reaching application
2‘b01
2‘b10
MAC forwards all control frames to application even if they fail the address filter.
2‘b11
MAC forwards all control frames that pass the address filter.
●
DBF
Setting this bit, the MAC address filtering module filters all incoming broadcast frames.
●
PM
Setting this bit, all received frames with a multicast destination address (first bit in the
destination address is 1'b1) are passed. If this bit is cleared, filtering of multicast frames
depends on HMC field (bit [2]) in this register.
●
DAIF
Setting this bit, the unicast/multicast frames whose DA matches the DA registers will be
marked as failing the DA address filter (inverse filtering mode). Otherwise (bit cleared),
frames whose DA doesn't match the DA registers will be marked as failing the DA
address filter (nominal filtering mode).
●
HMC
Setting this bit, the MAC performs destination address filtering of received multicast
frames according to the hash table (as set in Register2, MAC, and Register3, MAC, in
section 1.4.2.16 and 1.4.2.17, respectively). Clearing this bit, the MAC performs a
Doc ID 022642 Rev 3
191/584
Fast Ethernet port (MII0)
RM0321
perfect destination address filtering for multicast frames (comparing the DA field with
the values programmed in DA registers).
●
HUC
Setting this bit, the MAC performs destination address filtering of received unicast
frames according to the hash table (as set in Register2, MAC, and Register3, MAC.
Clearing this bit, the MAC performs a perfect destination address filtering for unicast
frames (comparing the DA field with the values programmed in DA registers).
●
PR
On setting this bit, the MAC address filtering module passes all incoming frames
regardless of its destination or source address. In this case, the SA/DA filter fails status
bit of the received frame status word will always be cleared.
10.2.16
Hash table high register (Register2, MAC)
The Hash Table High (HTH) is a register which contains the upper 32 bits of the 64 bit hash
table used for group address filtering.
10.2.17
Hash table low register (Register3, MAC)
The Hash Table Low (HTL) is a register which contains the lower 32 bits of the 64 bit hash
table used for group address filtering.
10.2.18
MII address register (Register4, MAC)
The MII Address is a register which controls the management cycles to the external PHY
through the management interface.
Table 195. MII address register bit assignments
Bit
Name
Reset Value
Type
Description
[31:16]
Reserved
-
RO
Read: undefined
[15:11]
PA
5’h0
RW
Physical Layer Address
[10:06]
GR
5’h0
RW
MII Register
[05]
Reserved
-
RO
Read: undefined
[04:02]
CR
3’h0
RW
CSR Clock Range
[01]
GW
1’h0
RW
MII Write
[00]
GB
1’h0
RW
MII Busy
●
PA
This 5 bit field tells which of the 32 possible PHY devices are being accessed.
●
GR
This 5 bit field selects the desired MII register in the selected PHY device.
●
CR
This 3 bit field allows selection of frequency range of CSR clock (provided as input by
the application) and it is used to set the frequency of the MDC (MAC DMA Controller)
clock, according to encoding below:
192/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 196. CR field bit assignments
Value
CSR Frequency Range
MDC Clock
3‘b000
60-100 MHz
CSR clock/42
3‘b001
100-150 MHz
CSR clock/62
3‘b010
20-35 MHz
CSR clock/16
3‘b011
35-60 MHz
CSR clock/26
3‘b100
150-250 MHz
CSR clock/102
3‘b101
250-300 MHz
CSR clock/122
3‘b110
Reserved
-
3‘b111
Reserved
-
●
GW
If this bit is set, the PHY is informed that the current operation will be a Write operation
using the MII Data register. Otherwise (bit cleared), this will be a Read operation
placing the data in the MII Data register.
●
GB
This bit should read a logic 1'b0 before writing to this register (Register4, MII Address)
and Register5 (MII Data, section 1.4.2.19). During a PHY register access, this bit will
be set to 1'b1 by the application to indicate that a Read or Write access is in progress.
This bit must be set to 1'b0 during a Write to this Register4. This Register4 should not
be written to until this bit is cleared.
Register5 should be kept valid until this bit GB is cleared by the MAC during a PHY
Write operation. Besides, the same Register5 is invalid until this bit is cleared by the
MAC during a PHY Read operation.
10.2.19
MII data register (Register5, MAC)
The MII data is a register which stores the 16 bit write data to be written to the PHY register
located at the address indicated in MII address register (Section 10.2.18). It also stores the
16 bit read data from the PHY register located at the same address.
Table 197.
10.2.20
MII data register bit assignments
Bit
Name
Reset value Type
Description
[31:16]
Reserved
-
RO
Read: undefined
[15:00]
GD
16’h0
RW
MII data
Flow control register (Register6, MAC)
The Flow Control is a register which controls the generation and reception of the Control
(pause command) frames by the MAC.
Doc ID 022642 Rev 3
193/584
Fast Ethernet port (MII0)
RM0321
Table 198. Flow control register bit assignments
Bit
Name
Reset Value
Type
Description
[31:16]
PT
16’h0
RW
Pause Time
[15:08]
Reserved
-
RO
Read: undefined
[7]
DZPQ
1’b0
RW
Disable Zero-Quanta Pause
[6]
Reserved
-
RO
Read: undefined
[05:04]
PLT
2’h0
RW
Pause Low Threshold
[03]
UP
1’h0
RW
Unicast Pause Frame Detect
[02]
RFE
1’h0
RW
Receive Flow Control Enable
[01]
TFE
1’h0
RW
Transmit Flow Control Enable
[00]
FCB/BPA
1’h0
RW
Flow Control Busy/Back-Pressure
Activate
●
PT
This 16 bit field represents the value (expressed as an integer number of slot times) to
be used in the Pause Time field in the transmit control frame.
●
DZPQ
When set, this bit disables the automatic generation of Zero-Quanta Pause Control
frames on the deassertion of the flow-control signal from the FIFO layer (MTL flow
control signal). When this bit is reset, normal operation with automatic Zero-Quanta
Pause Control frame generation is enabled.
●
PLT
This 2 bit field allows configuration of the threshold of the PAUSE timer at which the
input flow control is checked for automatic re-transmission of PAUSE frame, according
to encoding below:
Table 199. PLT field bit assignments
Value
Threshold
2‘b00
Pause Time - 4 slot time
2‘b01
Pause Time - 28 slot time
2‘b10
Pause Time - 144 slot time
2‘b11
Pause Time - 256 slot time
where, Pause Time is configured by the PT field in this register (see above), and slot time is
the time taken to transmit 512 bits (64 bytes) on the MII interface.
Note:
The threshold value specified by PLT should be always greater than the Pause Time (PT
field).
●
UP
Setting this bit, the MAC will detect the Pause frames with the station's unicast address
specified in MAC Address0 High register (section 1.4.2.24) and MAC Address0 Low
194/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
register (1.4.2.25), in addition to the detecting Pause frame with the unique multicast
address.
Clearing this bit, the MAC will detect only a Pause frame with the unique multicast
address specified in the 802.3x standard.
●
RFE
Setting this bit, the MAC will decode the received Pause frame and disable its
transmitter for a specified time (Pause Time). Otherwise (bit cleared), the decode
function of the Pause frame is disabled.
●
TFE
(In Full-Duplex mode) Setting this bit, the MAC enables the flow control operation to
transmit Pause frames. Otherwise (bit cleared), no Pause frames will not be transmitted
by MAC.
(In Half-Duplex mode) Setting this bit, the MAC enables the back-pressure operation.
Otherwise (bit cleared), back-pressure feature is disabled.
●
FCB/BPA
Setting this bit, a Pause Control frame is initiated in Full-Duplex mode and the backpressure function is activated in Half-Duplex mode (if TFE bit above is set).
Note:
(In Full-Duplex mode) During a transfer of the Control Frame, this bit will continue to be set
meaning that a frame transmission is in progress. After the completion of Pause control
frame transmission, the MAC will clear this bit.
10.2.21
VLAN tag register (Register7, MAC)
The VLAN tag is a register which contains the IEEE 802.1Q VLAN tag to identify the VLAN
frames. The MAC compares the 13th and the 14th bytes of the receiving frames (length/type)
with 0x8100, and the following 15th and 16th bytes with the VLAN tag: if a match occurs, the
MAC sets the VLAN bit in the received frame status word (receive descriptor 0).
Table 200. VLAN tag register bit assignments
10.2.22
Bit
Name
Reset
value
Type
Description
[31:16]
Reserved
-
RO
Read: undefined.
[15:00]
VL
16’h0
RW
VLAN tag identifier.
Wake-up frame filter register (Register10, MAC)
This register is actually a 32 bit pointer used by the application to access (read/write) eight
(not transparent) Wake-up Frame Filter registers, reported in Figure 2, involved in the power
management (PMT, see Section 10.2.23).
It means that eight sequential Write operations to this address will write all wake-up frame
filter registers, and eight sequential read operations from this address will read all Wake-up
Frame Filter registers.
Doc ID 022642 Rev 3
195/584
Fast Ethernet port (MII0)
Figure 2.
RM0321
Wake-up frame filter registers
wkupfmfilter_reg0
Filter 0 Byte Mask
wkupfmfilter_reg0
Filter 1 Byte Mask
wkupfmfilter_reg0
Filter 2 Byte Mask
wkupfmfilter_reg0
Filter 3 Byte Mask
wkupfmfilter_reg0
wkupfmfilter_reg0
Filter 3
Command
Filter 3
Offset
RSVD
Filter 2
Command
Filter 2
Offset
RSVD
Filter 1
Command
Filter 1
Offset
RSVD
Filter 0
Command
Filter 0
Offset
RSVD
wkupfmfilter_reg0
Filter 1 CRC -16
Filter 0 CRC -16
wkupfmfilter_reg0
Filter 3 CRC -16
Filter 2 CRC -16
Four programmable filters (filter 0 to filter 3) are available to support four different receive
frame patterns. The corresponding 32 bit byte mask registers allow to define which bytes of
the frame are checked by the filter to determine whether or not the frame is a wake-up
frame. The MSB (bit [31]) must be 1‘b0. If a bit j ([30:0]) is set, then the (offset + j) byte of the
incoming frame is processed by the CRC block.
As many as 4 bit Command registers control the operation of relevant filter, see Table 201.
Table 201. 4 bit command registers
Bit
Description
[03]
Setting this bit, filter applies only to multicast frames, otherwise to unicast frames
only.
[02]
Reserved
[01]
Reserved
[00]
Setting this bit, the relevant filter is enabled.
Moreover, the 8 bit Offset registers define the offset (within the frame) which point the first
byte of the frames to be examined by the filter. The minimum allowed is 12. At last, the four
16 bit CRC registers contain the 16 bit CRC value calculated from the pattern, as well as the
byte mask programmed to the wake-up filter register block.
If the incoming frame passes the address filtering set by the command register, and if the
CRC-16 matches the incoming examined pattern, then it means that a wake-up frame is
received.
10.2.23
PMT control and status register (Register11, MAC)
The PMT (Power Management) Control And Status Register (CSR) is intended to program
the request wake-up events and to monitor the wake-up events as part of the power
management mechanism supported by the MAC.
196/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 202. PMT CSR bit assignments
Bit
Reset value Type
Description
[31]
1’h0
RW
Wake-up frame filter register pointer reset.
If set, it resets the remote wake-up frame filter pointer to 3’b000
(eight remote wake-up registers are present). It is automatically
cleared after 1 clock cycle.
[30:10]
-
RO
Reserved. Read: undefined.
[09]
1’h0
RW
Global unicast.
If set, it enables any unicast packet filtered by MAC address
recognition (DAF) to be a wake-up frame.
[08:07]
-
RO
Reserved. Read: undefined.
RW
Wake-up frame received.
If set, it indicates that the power management event was
generated due to the reception of a wake-up frame. This bit is
cleared by a read into this register.
[06]
1’h0
[05]
1’h0
RW
Magic packet received.
If set, it indicates that the power management event was
generated due to the reception of a magic packet. This bit is
cleared by a Read into this register.
[04:03]
-
RO
Reserved. Read: undefined.
[02]
1’h0
RW
Wake-up frame enable.
If set, it enables generation of a power management event due to
wake-up frame reception.
[01]
1’h0
RW
Magic packet enable. If set, it enables generation of a power
management event due to magic packet reception.
RW
Power down.
If set, all received frames will be dropped. This bit is automatically
cleared when a wake-up frame or a magic packet is received, and
the power-down mode is disabled.
Note that this bit should be set only when either wake-up frame
enable (bit [2]) or magic packet enable (bit [1]) are set.
[00]
10.2.24
1’h0
Interrupt status register (Register 14, MAC)
The Interrupt Status Register contents identify the events in the MAC-CORE that can
generate interrupt.
Table 203. Interrupt status register bit assignments
Bit
Reset Value Type
[31:16]
[15:05]
Description
Reserved
-
RO
Reserved
Doc ID 022642 Rev 3
197/584
Fast Ethernet port (MII0)
RM0321
Table 203. Interrupt status register bit assignments (continued)
Bit
[04]
10.2.25
Reset Value Type
Description
1’h0
RO
MMC Interrupt Status
This bit is set high whenever an interrupt is generated in the MMC
Interrupt register (see section MMC Receive Interrupt Register).
This bit is cleared whenever the bit in the interrupt register is
cleared.
[03]
1’h0
RO
PMT Interrupt Status
This bit is set whenever a Magic packet or Wake-on-Lan frame is
received in the Power-down mode (refer to bit 5 and 6 in PMT
Control and Status Register (Register11, MAC)
[02:00]
-
RO
Reserved
Interrupt mask register (Register 15, MAC)
The interrupt Mask Register bits enable the user to mask the interrupt signal due to the
corresponding event in the Interrupt Status Register. The interrupt signal is sbd_intr_o.
Table 204. Interrupt mask register bit assignments
Bit
Reset value Type
Description
[31:16]
10.2.26
Reserved
[15:04]
-
RO
Reserved
[03]
1’h0
RW
PMT interrupt mask
This bit when set, will disable the assertion of the interrupt signal
due to the setting of PMT interrupt status bit in Register 14.
[02:00]
-
RO
Reserved. Read: undefined
MAC address0 high register (Register16, MAC)
The MAC address0 High is a register which contains the upper 16 bits ([47:32]) of the 6-byte
first MAC address of the station.
Table 205. MAC address0 high register bit assignments
10.2.27
Bit
Name
Reset value Type Description
[31]
MO
1’h1
RO
Always set to 1’b1
[30:16] Reserved
-
RO
Read: undefined
[15:00] A[47:32]
16’hFFFF
RW
MAC address0 [47:32]
MAC address0 low register (Register17, MAC)
The MAC address0 Low is a register which contains the lower 32 bits ([31:00]) of the 6-byte
first MAC address of the station.
198/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 206. MAC Address0 low register bit assignments
10.2.28
Bit
Name
Reset value
Type
Description
[31:00]
A[31:0]
32’hFFFFFFFF
RW
MAC address0 [31:00]
MAC address1 high register (Register18, MAC)
The MAC Address1 High is a register which contains the upper 16 bits ([47:32]) of the 6-byte
2nd MAC address of the station.
Table 207. MAC Address1 high register bit assignments
Bit
Name
Reset Value
Type
Description
[31]
AE
1’h0
RW
Address Enable
[30]
SA
1’h0
RW
Source Address
[29:24]
MBC
6’h0
RW
Mask Byte Control
[23:16]
Reserved
-
RO
Read: undefined
[15:00]
A[47:32]
16’hFFFF
RW
MAC Address1 [47:32]
●
AE
Setting this bit, the MAC address filtering module uses the 2nd MAC address for perfect
filtering.
●
SA
This bit allows to specify whether the MAC Address1 [47:0] is used to compare with the
SA fields (SA is 1'b1) or with the DA fields (SA is 1'b0) of the received frame.
●
MBC
This 6 bit field controls masking of each of the MAC address byte, according to
encoding below:
Table 208. MAC address byte
Bit
MAC Address Byte
[29]
Register18[15:8]
[28]
Register18[7:0]
[27]
Register19[31:24]
[26]
Register19[23:16]
[25]
Register19[15:8]
[24]
Register19[7:0]
Setting a bit, the corresponding byte of the received SA/DA is not compared with the
contents of MAC Address1 registers.
Doc ID 022642 Rev 3
199/584
Fast Ethernet port (MII0)
10.2.29
RM0321
MAC address1 low register (Register19, MAC)
The MAC Address1 Low is a register which contains the lower 32 bits ([31:0]) of the 6-byte
2nd MAC address of the station.
Table 209. MAC Address1 low register bit assignments
Note:
Bit
Name
Reset value
Type
[31:00]
A[31:0]
32’hFFFFFFFF RW
Description
MAC address1 [31:0]
1
The description for registers20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44 and 46 (MAC
address2 High through MAC Address15 High) is the same as for the register18 (MAC
address1 High).
2
The description for registers21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45 and 47 (MAC
address2 low through MAC address15 low) is the same as for the register19 (MAC address1
low).
10.2.30
MMC registers
As reported in Table 169, the address space of MAC CSRs ranging from 0x0100 to 0x01FC
(Register64 to Register127) hosts the MMC (MAC management counters) registers.
The MMC unit of MAC maintains a set of 32 bit registers for gathering statistics on received
and transmitted frames (that is., number of bytes transmitted, number of good and bad
frames transmitted, number of frames received with CRC error, and so on).
These MMC registers also include a control register (Register64, mmc_cntrl), two registers
containing interrupts generated, both receive and transmit (Register65 and Register66,
mmc_intr_rx and mmc_intr_tx respectively), and two registers containing masks for these
interrupts (Register67 and Register68, mmc_intr_mask_rx and mmc_intr_mask_tx
respectively).
A description of the five MMC registers is given in the following sections.
MMC control register
The MMC control register is responsible for the operating mode of the management
counters.
Table 210. MMC control register bit assignments
200/584
Bit
Name
Reset value Type
[31:03]
Reserved -
Description
RO
-
[02]
ROR
1’h0
RO
Reset on read. When set, the MMC counters will be
reset to zero after read (self-clearing after reset). The
counters are cleared when the least significant byte lane
(bits[7:0]) is read.
[01]
CSR
1’h0
RO
Counter stop rollover. When set, counter after reaching
maximum value will not roll over to zero.
[00]
CR
1’h0
RO
Counters reset. When set, all counters will be reset. This
bit will be cleared automatically after 1 clock cycle.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
MMC receive interrupt register
The MMC receive interrupt register maintains the interrupts generated when receive statistic
counters reach half their maximum values. (MSB of the counters is set.) It is a 32 bit wide
register. An interrupt bit is cleared when the respective MMC counter that caused the
interrupt is read. The least significant byte-lane (bits[7:0]) of the respective counter must be
read in order to clear the interrupt bit.
Table 211. MMC receive interrupt register bit assignments
Bit
Name
Reset value Type
Description
[31:24]
Reserved
-
RO
-
[23]
-
1’h0
-
The bit is set when the rxwatchdog error counter
reaches half the maximum value.
[22]
-
1’h0
-
The bit is set when the rxvlanframes_gb counter
reaches half the maximum value.
[21]
-
1’h0
-
The bit is set when the rxfifooverflow counter
reaches half the maximum value.
[20]
-
1’h0
-
The bit is set when the rxpauseframes counter
reaches half the maximum value.
[19]
-
1’h0
-
The bit is set when the rxoutofrangetype counter
reaches half the maximum value.
[18]
-
1’h0
-
The bit is set when the rxlengtherror counter
reaches half the maximum value.
[17]
-
1’h0
-
The bit is set when the rxunicastframes_gb counter
reaches half the maximum value.
[16]
-
1’h0
-
The bit is set when the rx1024tomaxoctets_gb
counter reaches half the maximum value.
[15]
-
1’h0
-
The bit is set when the rx512to1023octets_gb
counter reaches half the maximum value.
[14]
-
1’h0
-
The bit is set when the rx216to511octets_gb
counter reaches half the maximum value.
[13]
-
1’h0
-
The bit is set when the rx128to255octets_gb
counter reaches half the maximum value.
[12]
-
1’h0
-
The bit is set when the rx64to127octets_gb counter
reaches half the maximum value.
[11]
-
1’h0
-
The bit is set when the rx64octets_gb counter
reaches half the maximum value.
[10]
-
1’h0
-
The bit is set when the rxoversize_g counter
reaches half the maximum value.
[09]
-
1’h0
-
The bit is set when the rxundersize_g counter
reaches half the maximum value.
[08]
-
1’h0
-
The bit is set when the rxjabbererror counter
reaches half the maximum value.
[07]
-
1’h0
-
The bit is set when the rxrunterror counter reaches
half the maximum value.
Doc ID 022642 Rev 3
201/584
Fast Ethernet port (MII0)
RM0321
Table 211. MMC receive interrupt register bit assignments (continued)
Bit
Name
Reset value Type
Description
[06]
-
1’h0
-
The bit is set when the rxalignmenterror counter
reaches half the maximum value.
[05]
-
1’h0
-
The bit is set when the rxcrcerror counter reaches
half the maximum value.
[04]
-
1’h0
-
The bit is set when the rxmulticastframes_g counter
reaches half the maximum value.
[03]
-
1’h0
-
The bit is set when the rxbroadcastframes_g
counter reaches half the maximum value.
[02]
-
1’h0
-
The bit is set when the rxoctetcount_g counter
reaches half the maximum value.
[01]
-
1’h0
-
The bit is set when the rxoctetcount_gb counter
reaches half the maximum value.
[00]
-
1’h0
-
The bit is set when the rxframecount_gb counter
reaches half the maximum value.
MMC transmit interrupt register
The MMC transmit interrupt register maintains the interrupts generated when transmit
statistic counters reach half their maximum values. (MSB of the counters is set.) It is a 32 bit
wide register. An interrupt bit is cleared when the respective MMC counter that caused the
interrupt is read. The least significant byte-lane (bits[7:0]) of the respective counter must be
read in order to clear the interrupt bit.
Table 212. MMC transmit interrupt register bit assignments
202/584
Bit
Name
Reset value Type
Description
[31:25]
Reserved -
RO
-
[24]
-
1’h0
-
The bit is set when the txvlanframes_g counter reaches
half the maximum value.
[23]
-
1’h0
-
The bit is set when the txpauseframes error counter
reaches half the maximum value.
[22]
-
1’h0
-
The bit is set when the txoexcessdef counter reaches
half the maximum value.
[21]
-
1’h0
-
The bit is set when the txframecount_g counter reaches
half the maximum value.
[20]
-
1’h0
-
The bit is set when the txoctetcount_g counter reaches
half the maximum value.
[19]
-
1’h0
-
The bit is set when the txcarriererror counter reaches
half the maximum value.
[18]
-
1’h0
-
The bit is set when the txexesscol counter reaches half
the maximum value.
[17]
-
1’h0
-
The bit is set when the txlatecol counter reaches half the
maximum value.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 212. MMC transmit interrupt register bit assignments (continued)
Bit
Name
Reset value Type
Description
[16]
-
1’h0
-
The bit is set when the txdeferred counter reaches half
the maximum value.
[15]
-
1’h0
-
The bit is set when the txmulticol_g counter reaches half
the maximum value.
[14]
-
1’h0
-
The bit is set when the txsinglecol_g counter reaches
half the maximum value.
[13]
-
1’h0
-
The bit is set when the txunderflowerror counter reaches
half the maximum value.
[12]
-
1’h0
-
The bit is set when the txbroadcastframes_gb counter
reaches half the maximum value.
[11]
-
1’h0
-
The bit is set when the txmulticastframes_gb counter
reaches half the maximum value.
[10]
-
1’h0
-
The bit is set when the txunicastframes_gb counter
reaches half the maximum value.
[09]
-
1’h0
-
The bit is set when the tx1024tomaxoctets_gb counter
reaches half the maximum value.
[08]
-
1’h0
-
The bit is set when the tx512to1023octets_gb counter
reaches half the maximum value.
[07]
-
1’h0
-
The bit is set when the tx256to511octets_gb counter
reaches half the maximum value.
[06]
-
1’h0
-
The bit is set when the tx128to255octets_gb counter
reaches half the maximum value.
[05]
-
1’h0
-
The bit is set when the tx65to127octets_gb counter
reaches half the maximum value.
[04]
-
1’h0
-
The bit is set when the tx64to127octets_gb counter
reaches half the maximum value.
[03]
-
1’h0
-
The bit is set when the txmulticastframes_g counter
reaches half the maximum value.
[02]
-
1’h0
-
The bit is set when the txbroadcastframes_g counter
reaches half the maximum value.
[01]
-
1’h0
-
The bit is set when the txframecount_gb counter
reaches half the maximum value.
[00]
-
1’h0
-
The bit is set when the txoctetcount_gb counter reaches
half the maximum value.
MMC receive interrupt mask register
The MMC receive interrupt mask register maintains masks for the interrupts generated
when receive statistic counters reach half their maximum values. (MSB of the counters is
set.) It is a 32 bit wide register.
Doc ID 022642 Rev 3
203/584
Fast Ethernet port (MII0)
RM0321
Table 213. MMC receive interrupt mask register bit assignments
Bit
204/584
Name
Reset value Type
Description
[31:24] Reserved -
RO
-
[23]
-
1’h0
RW
Setting this bit masks the interrupt when the rxwatchdog
counter reaches half the maximum value.
[22]
-
1’h0
RW
Setting this bit masks the interrupt when the
rxvlanframes_gb counter reaches half the maximum
value.
[21]
-
1’h0
RW
Setting this bit masks the interrupt when the
rxfifooverflow counter reaches half the maximum value.
[20]
-
1’h0
RW
Setting this bit masks the interrupt when the
rxpauseframes counter reaches half the maximum value.
[19]
-
1’h0
The bit is set when the rxcarriererror counter reaches half
the maximum value.
[18]
1’h0
The bit is set when the rxexesscol counter reaches half
the maximum value.
[17]
1’h0
The bit is set when the rxlatecol counter reaches half the
maximum value.
[16]
1’h0
The bit is set when the rxdeferred counter reaches half
the maximum value.
[15]
1’h0
The bit is set when the rxmulticol_g counter reaches half
the maximum value.
[14]
1’h0
The bit is set when the rxsinglecol_g counter reaches half
the maximum value.
[13]
1’h0
The bit is set when the rxunderflowerror counter reaches
half the maximum value.
[12]
1’h0
The bit is set when the rxbroadcastframes_gb counter
reaches half the maximum value.
[11]
1’h0
The bit is set when the rxmulticastframes_gb counter
reaches half the maximum value.
[10]
1’h0
The bit is set when the rxunicastframes_gb counter
reaches half the maximum value.
[09]
1’h0
The bit is set when the rx1024tomaxoctets_gb counter
reaches half the maximum value.
[08]
1’h0
The bit is set when the rx512to1023octets_gb counter
reaches half the maximum value.
[07]
1’h0
The bit is set when the rx256to511octets_gb counter
reaches half the maximum value.
[06]
1’h0
The bit is set when the rx128to255octets_gb counter
reaches half the maximum value.
[05]
1’h0
The bit is set when the rx65to127octets_gb counter
reaches half the maximum value.
[04]
1’h0
The bit is set when the rx64to127octets_gb counter
reaches half the maximum value.
Doc ID 022642 Rev 3
RM0321
Fast Ethernet port (MII0)
Table 213. MMC receive interrupt mask register bit assignments (continued)
Bit
Name
Reset value Type
Description
[03]
1’h0
The bit is set when the rxmulticastframes_g counter
reaches half the maximum value.
[02]
1’h0
The bit is set when the rxbroadcastframes_g counter
reaches half the maximum value.
[01]
-
1’h0
RW
Setting this bit masks the interrupt when the
rxoctetcount_gb counter reaches half the maximum
value.
[00]
-
1’h0
RW
Setting this bit masks the interrupt when the
rxframecount_gb counter reaches half the maximum
value.
Doc ID 022642 Rev 3
205/584
Fast Ethernet port (MII0)
206/584
RM0321
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
11
Fast Ethernet ports (RMII0/RMII1/MII1)
11.1
Register summary
Each MACB has its own set of individual registers having the same offset in AHB address
space. Only the base address of this register set differs. The start address of each MACB is
shown in the table below. Registers are accessed using the MACB APB Slave Interface.
Table 214. Base address
MACB PHY interface to be
used
Address Space
RMII0
0xAA00.0000 - 0xAAFF.FFFF
RMII1/MII1
0xAB00.0000 - 0xABFF.FFFF
Table 215. Programming interface register map
Offset
Function
R/W
Reset Value
0x00
Network Control Register
R/W
32’h0
0x04
Network Configuration Register
R/W
32’h800
0x08
Network Status Register
RO
32’h0b01XX
0x0C
Reserved
-
-
0x10
Reserved
-
-
0x14
Transmit Status Register
R/W
32’h0
0x18
Receive Buffer Queue Pointer
R/W
32’h0
0x1C
Transmit Buffer Queue Pointer
R/W
32’h0
0x20
Receive status register
R/W
32’h0
0x24
Interrupt status register
R/W
32’h0
0x28
Interrupt enable register
WO
-
0x2C
Interrupt disable register
WO
-
0x30
Interrupt mask register
RO
32’h3FFF
0x34
PHY maintenance register
R/W
32’h0
0x38
Pause Time register
RO
32’h0
0x3C
Pause frames received
R/W
32’h0
0x40
Frames transmitted OK
R/W
32’h0
0x44
Single collision frames
R/W
32’h0
0x48
Multiple collision frames
R/W
32’h0
0x4C
Frames received OK
R/W
32’h0
0x50
Frame check sequence errors
R/W
32’h0
0x54
Alignment errors
R/W
32’h0
Doc ID 022642 Rev 3
207/584
Fast Ethernet ports (RMII0/RMII1/MII1)
RM0321
Table 215. Programming interface register map (continued)
208/584
Offset
Function
R/W
Reset Value
0x58
Deferred transmission frames
R/W
32’h0
0x5C
Late collisions
R/W
32’h0
0x60
Excessive collisions
R/W
32’h0
0x64
Transmit underrun errors
R/W
32’h0
0x68
Carrier sense errors
R/W
32’h0
0x6C
Receive resource errors
R/W
32’h0
0x70
Receive overrun errors
R/W
32’h0
0x74
Receive symbol errors
R/W
32’h0
0x78
Excessive length errors
R/W
32’h0
0x7C
Receive jabbers
R/W
32’h0
0x80
Undersize frames
R/W
32’h0
0x84
SQE test errors
R/W
32’h0
0x88
Received length field mismatch
R/W
32’h0
0x8C
Transmitted pause frames
R/W
32’h0
0x90
Hash register bottom [31:0]
R/W
32’h0
0x94
Hash register top [63:32]
R/W
32’h0
0x98
Specific address 1 bottom
R/W
32’h0
0x9C
Specific address 1 top
R/W
32’h0
0xA0
Specific address 2 bottom
R/W
32’h0
0xA4
Specific address 2 top
R/W
32’h0
0xA8
Specific address 3 bottom
R/W
32’h0
0xAC
Specific address 3 top
R/W
32’h0
0xB0
Specific address 4 bottom
R/W
32’h0
0xB4
Specific address 4 top
R/W
32’h0
0xB8
Type ID checking
R/W
32’h0
0xBC
Transmit pause quantum
R/W
32’hFFFF
0xC0
Reserved
-
-
0xC4
Wake on LAN
R/W
32’h0
0xC8-0xF8
Reserved
-
-
0xFC
Revision Register
RO
32’h0001XXXX
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2
Register description
11.2.1
Control, configuration and status registers
Table 216. Network control register (0x00)
Bits
Function
R/W
Reset Value
[31:13]
Reserved - read as zero, ignored on write.
RO
19’h0
[12]
Transmit zero quantum pause frame - writing a one to this bit
will transmit a pause frame with zero pause quantum at the
next available transmitter idle time.
WO
1’h0
[11]
Transmit pause frame - writing one to this bit transmits a pause
frame with the pause quantum from the transmit pause
WO
quantum register at the next available transmitter idle time.
1’h0
[10]
Transmit halt - writing one to this bit will halt transmission as
soon as any ongoing frame transmission ends.
WO
1’h0
[09]
Start transmission - writing one to this bit will start
transmission.
WO
1’h0
[08]
Back pressure - if set in half duplex mode will force collisions
on all received frames.
R/W
1’h0
[07]
Write enable for statistics registers - setting this bit to one
makes the statistics registers writable for functional test
purposes.
R/W
1’h0
[06]
Increment statistics registers - this bit is write only.
Writing a one increments all the statistics registers by one for
test purposes.
WO
1’h0
[05]
Clear statistics registers - this bit is write only. Writing a one
clears the statistics registers.
WO
1’h0
[04]
Management port enable - set to one to enable the
management port. When zero forces MDIO to high impedance R/W
state and MDC low.
1’h0
[03]
Transmit enable - when set enables the Ethernet transmitter to
send data. When reset transmission will stop immediately, the
transmit FIFO and control registers will be cleared and the
R/W
transmit queue pointer register will reset to point to the start of
the transmit descriptor list.
1’h0
[02]
Receive enable - when set enables the MACB to receive data.
When reset frame reception will stop immediately and the
receive FIFO will be cleared. The receive queue pointer
register is unaffected.
R/W
1’h0
[01]
Loopback local - connects txd to rxd, tx_en to rx_dv, 0 forces
full duplex and drives rx_clk and tx_clk with pclk divided by 4.
rx_clk and tx_clk may glitch as the MACB is switched into and
out of internal loop back. It is important that receive and
R/W
transmit circuits have already been disabled when making the
switch into and out of internal loop back. This function may not
be supported by some instantiations of the MACB.
1’h0
[00]
Loopback - asserts the loopback signal to the PHY.
1’h0
Doc ID 022642 Rev 3
R/W
209/584
Fast Ethernet ports (RMII0/RMII1/MII1)
RM0321
Table 217. Network configuration register (0x04)
210/584
Bits
Function
R/W
Reset Value
[31:23]
Reserved - read as zero, ignored on write.
RO
9’h0
[22]
If set pclk is divided down by 128 to generate mdc. This allows
R/W
pclk operation up to 320MHz. See alsa bits 11:10.
1’h0
[21]
When set, pause frames will not be copied to memory when bit
4 copy all frames is set. If this bit is not set pause frames will be R/W
copied to memory in copy all frames mode.
1’h0
[20]
Receive bad preamble - when set frames with non-standard
pre-amble are not errored.
R/W
1’h0
[19]
Ignore RX FCS - when set frames with FCS/CRC errors will not
be rejected and no FCS error statistics will be counted. For
R/W
normal operation, this bit must be set to 0.
1’h0
[18]
Enable frames to be received in half-duplex mode while
transmitting.
R/W
1’h0
[17]
Discard receive FCS - when set, the FCS field of received
frames will not be copied to memory.
R/W
1’h0
[16]
Receive length field checking enable - when set, frames with
measured lengths shorter than their length fields will be
discarded. Frames containing a type ID in bytes 13 and 14 length/type ID greater than 0x0600 - will not be counted as
length errors.
R/W
1’h0
[15:14]
Receive buffer offset - indicates the number of bytes by which
the received data is offset from the start of the first receive
buffer.
R/W
1’h0
[13]
Pause enable - when set transmission will pause when a valid
pause frame is received.
R/W
1’h0
[12]
Receive enable - when set enables the MACB to receive data.
When reset frame reception will stop immediately and the
R/W
receive FIFO will be cleared. The receive queue pointer register
is unaffected.
1’h0
[11:10]
Set according to pclk speed - this determines by what number
pclk will be divided to generate MDC. For conformance with
802.3 MDC must not exceed 2.5 MHz (MDC is only active
during MDIO read and write operations).
2’b00 divide pclk by 8 (pclk up to 20 MHz)
2’b01 divide pclk by 16 (pclk up to 40 MHz)
2’b10 divide pclk by 32 (pclk up to 80 MHz)
2’b11 divide pclk by 64 (pclk up to 160 MHz)
See also bit 22 which takes precedence.
R/W
1’h0
[09]
External address match enable - when set the eam pin can be
used to copy frames to memory.
R/W
1’h0
[08]
Receive 1536 byte frames - setting this bit means the MACB
will receive frames up to 1536 bytes in length. Normally the
MACB would reject any frame above 1518 bytes.
R/W
1’h0
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
Table 217. Network configuration register (0x04) (continued)
Bits
Function
R/W
Reset Value
[07]
Unicast hash enable - when set unicast frames will be received
when the 6 bit hash function of the destination address points R/W
to a bit that is set in the hash register.
1’h0
[06]
Multicast hash enable - when set multicast frames will be
received when the 6 bit hash function of the destination
address points to a bit that is set in the hash register.
R/W
1’h0
[05]
No broadcast - when set to 1 frames addressed to the
broadcast address of all ones will not be received.
R/W
1’h0
[04]
Copy all frames - when set to 1 all valid frames will be received. R/W
1’h0
[03]
Jumbo frames - set to one to enable jumbo frames of up to
10,240 bytes to be accepted.
R/W
1’h0
[02]
Bit rate - set to 1 to configure the interface for serial operation.
Must be set before receive and transmit enable in the network
control register. If set a serial interface is configured with
transmit and receive data being driven out on txd[0] and
received on rxd[0] serially. Also the crs and rx_dv are logically
ORed together so either may be used as the data valid signal.
R/W
1’h0
[01]
Full duplex - if set to 1 the transmit block ignores the state of
collision and carrier sense and allows receive while
transmitting. Also controls the half_duplex pin.
R/W
1’h0
[00]
Speed - set to 1 to indicate 100 Mbit/s operation, 0 for 10
Mbit/s. The value of this pin is reflected on the speed pin.
R/W
1’h0
Table 218. Network status register (0x08)
Bits
Function
R/W
Reset Value
[31:03]
Reserved - read as zero, ignored on write.
RO
29’h0
[02]
PHY management logic is idle (i.e. has completed) - read only.
RO
1’h1
[01]
Returns status of the mdio_in pin. Use the PHY maintenance
register for reading managed frames rather than this bit.
RO
1’h0
[00]
Returns status of link pin.
RO
-
Table 219. Revision register (0xFC)
11.2.2
Bits
Function
R/W
Reset Value
[31:16]
Part reference - for MACB design, this is fixed at 0x01.
RO
16’h1
[15:00]
Revision reference - fixed two byte value specific to revision of
design.
RO
-
Transmit status register (0x14)
This register, when read, provides details of the status of transmission. Once read,
individual bits may be cleared by writing 1 to them. It is not possible to set a bit to 1 by
writing to the register.
Doc ID 022642 Rev 3
211/584
Fast Ethernet ports (RMII0/RMII1/MII1)
RM0321
Table 220. Transmit status register bit assignments (0x14)
Bits
Function
[31:07] Reserved - read as zero, ignored on write.
11.2.3
R/W
Reset Value
RO
25’h0
[06]
Transmit underrun - set when transmit DMA was not able to read
data from memory. Either because the AHB bus was not granted in
time, because a not OK hresp was returned or because a used bit
was read mid way through frame transmission. If this happens the
transmitter will force bad CRC and tx_er high. When using an
external FIFO interface, this bit is also set when
tx_r_underflow input is asserted during frame transfer. Cleared by
writing a one to this bit.
R/W
1’h0
[05]
Transmit complete - set when a frame has been transmitted. Cleared
R/W
by writing a one to this bit.
1’h0
[04]
Buffers exhausted mid frame - if the buffers run out during
transmission of a frame then transmission stops, FCS shall be bad
and tx_er asserted. Cleared by writing a one to this bit.
R/W
1’h0
[03]
Transmit go - if high transmit is active.
R/W
1’h0
[02]
Retry limit exceeded - cleared by writing a one to this bit.
R/W
1’h0
[01]
Collision occurred - set by the assertion of collision.
Cleared by writing a one to this bit.
R/W
1’h0
[00]
Used bit read - set when a transmit buffer descriptor is read with its
used bit set. Cleared by writing a one to this bit.
R/W
1’h0
Transmit buffer queue pointer (0x1C)
This register points to the entry in the transmit buffer queue (descriptor list) currently being
used. It is written with the start location of the transmit buffer descriptor list. The lower order
bits increment as buffers are used up and wrap to their original values after either 1024
buffers or when the wrap bit of the entry is set.
This register can only be written when transmit is inactive, that is, when bit 3 in the transmit
status register is low.
As transmit buffer reads consist of bursts of two words, it is recommended that bit 2 is
always written with zero. This is to prevent a burst from crossing a 1K boundary, in violation
of Section 3.6 of the AMBA specification.
Table 221. Transmit buffer queue pointer (0x1C)
11.2.4
Bits
Function
R/W
Reset Value
[31:02]
Transmit buffer queue pointer - written with the address of the start
of the transmit queue, reads as a pointer to the first buffer of the
frame being transmitted or about to be transmitted.
R/W
30’h0
[01:00]
Reserved - set to zero.
RO
2’h0
Receive buffer queue pointer (0x18)
This register points to the entry in the receive buffer queue (descriptor list) currently being
used. It is written with the start location of the receive buffer descriptor list. The lower order
212/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
bits increment as buffers are used up and wrap to their original values after either 1024
buffers or when bit 1 of the entry is set.
Reading this register returns the location of the descriptor currently being accessed. This
value increments as buffers are used. Software should not use this register for determining
where to remove received frames from the queue as it constantly changes as new frames
are received. Software should instead work its way through the buffer descriptor queue
checking the used bits.
Receive buffer writes also comprise bursts of two words, and as with transmit buffer reads, it
is recommended that bit 2 is always written with zero to prevent a burst from crossing a 1K
boundary, in violation of Section 3.6 of the AMBA specification.
Table 222. Receive buffer queue pointer (0x18)
11.2.5
Bits
Function
R/W
Reset Value
[31:02]
Receive buffer queue pointer - written with the address of the start
of the receive queue, reads as a pointer to the current buffer being
used.
R/W
30’h0
[01:00]
Reserved - set to zero.
RO
2’h0
Receive status register (0x20)
This register, when read, provides details of the status of reception. Once read, individual
bits may be cleared by writing 1 to them. It is not possible to set a bit to 1 by writing to the
register.
Table 223. Receive status register (0x20)
Bits
Function
R/W
Reset Value
RO
29’h0
[02]
Receive overrun - the DMA block was unable to store the receive
frame to memory. Either because the AHB bus was not granted in
time or because a not OK hresp was returned. The buffer will be
recovered if this happens. When using an external FIFO interface,
this bit is also set when the rx_w_overflow input is asserted during
frame transfer, except when an overflow occurs on an EOP write.
Cleared by writing a one to this bit.
R/W
1’h0
[01]
Frame received - one or more frames have been received and
placed in memory. Cleared by writing a one to this bit.
R/W
1’h0
[00]
Buffer not available - an attempt was made to get a new buffer and
the pointer indicated that it was owned by the processor. The DMA
will reread the pointer each time a new frame starts until a valid
R/W
pointer is found. This bit will be set at each attempt that fails even if
it has not had a successful pointer read since it has been cleared.
Cleared by writing a one to this bit.
1’h0
[31:03] Reserved - read as zero, ignored on write.
11.2.6
Interrupt status register (0x24)
The MACB generates a single interrupt. This register indicates the source of this interrupt.
For test purposes each bit can be set or reset by directly writing to the interrupt status
register regardless of the state of the mask register. Otherwise the corresponding bit in the
Doc ID 022642 Rev 3
213/584
Fast Ethernet ports (RMII0/RMII1/MII1)
RM0321
mask register must be cleared for a bit to be set. All bits are reset to zero on read. If any bit
is set in this register the ethernet_int signal will be asserted.
Table 224. Interrupt status register bit assignments (0x24)
Bits
Function
[31:14] Reserved - read as zero, ignored on write.
11.2.7
R/W
Reset Value
RO
18’h0
[13]
Pause time zero - set when the pause time register, 0x38
decrements to zero. Cleared on a read.
R/W
1’h0
[12]
Pause frame received - indicates a valid pause has been received.
R/W
Cleared on a read.
1’h0
[11]
hresp not OK - set when the DMA block sees hresp not OK in AHB
mode or in ASB mode sees berror or blast not zero. Cleared on
R/W
read.
1’h0
[10]
Receive overrun - set when the receive overrun status bit gets set.
R/W
Cleared on read.
1’h0
[09]
Link change - set when the external link signal changes. Cleared
on read.
R/W
1’h0
[08]
Reserved - read 0, ignored on write.
RO
1’h0
[07]
Transmit complete - set when a frame has been transmitted.
Cleared on read.
R/W
1’h0
[06]
Transmit buffers exhausted in mid-frame - transmit error. Cleared
on a read.
R/W
1’h0
[05]
Retry limit exceeded - transmit error. Cleared on read.
R/W
1’h0
[04]
Ethernet transmit buffer underrun - set when the transmit underrun
R/W
status bit is set. Cleared on read.
1’h0
[03]
TX used bit read - set when a transmit buffer descriptor is read with
R/W
its used bit set. Cleared on read.
1’h0
[02]
RX used bit read - set when a receive buffer descriptor is read with
R/W
its used bit set. Cleared on read.
1’h0
[01]
Receive complete - a frame has been stored in memory. Cleared
on read.
R/W
1’h0
[00]
Management frame sent - the PHY maintenance register has
completed its operation. Cleared on read.
R/W
1’h0
Interrupt enable register (0x28)
At reset all interrupts are disabled. Writing a one to the relevant bit location enables the
required interrupt. This register is write-only.
Table 225. Interrupt enable register bit assignments (0x28)
Bits
214/584
Function
R/W
Reset Value
[31:14] Reserved
RO
18’h0
[13]
Enable pause time zero interrupt.
WO
-
[12]
Enable pause frame received interrupt
WO
-
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
Table 225. Interrupt enable register bit assignments (0x28)
11.2.8
Bits
Function
R/W
Reset Value
[11]
Enable hresp not OK interrupt.
WO
-
[10]
Enable receive overrun interrupt.
WO
-
[09]
Enable link change interrupt.
WO
-
[08]
Not used.
WO
-
[07]
Enable transmit complete interrupt.
WO
-
[06]
Enable transmit buffers exhausted in mid-frame interrupt.
WO
-
[05]
Enable retry limit exceeded interrupt.
WO
-
[04]
Enable transmit buffer underrun interrupt.
WO
-
[03]
Enable transmit used bit read interrupt.
WO
-
[02]
Enable receive used bit read interrupt.
WO
-
[01]
Enable receive complete interrupt.
WO
-
[00]
Enable management done interrupt.
WO
-
Interrupt disable register (0x2C)
Writing a 1 to the relevant bit location disables that particular interrupt. This register is writeonly.
Table 226. Interrupt disable register bit assignments (0x2C)
Bits
Function
R/W
Reset Value
[31:14]
Reserved
RO
18’h0
[13]
Disable pause time zero interrupt.
WO
-
[12]
Disable pause frame received interrupt
WO
-
[11]
Disable hresp not OK interrupt.
WO
-
[10]
Disable receive overrun interrupt.
WO
-
[09]
Disable link change interrupt.
WO
-
[08]
Not used.
WO
-
[07]
Disable transmit complete interrupt.
WO
-
[06]
Disable transmit buffers exhausted in mid-frame interrupt.
WO
-
[05]
Disable retry limit exceeded interrupt.
WO
-
[04]
Disable transmit buffer underrun interrupt.
WO
-
[03]
Disable transmit used bit read interrupt.
WO
-
[02]
Disable receive used bit read interrupt.
WO
-
[01]
Disable receive complete interrupt.
WO
-
[00]
Disable management done interrupt.
WO
-
Doc ID 022642 Rev 3
215/584
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2.9
RM0321
Interrupt mask register (0x30)
The interrupt mask register is a read only register indicating which interrupts are masked. All
bits are set at reset and can be reset individually by writing to the interrupt enable register or
set individually by writing to the interrupt disable register. Having separate address locations
for enable and disable saves the need for performing a read modify write when updating the
interrupt mask register.
Table 227. Interrupt mask register bit assignments (0x30)
Bits
11.2.10
Function
R/W
Reset Value
[31:14] Reserved
RO
18’h0
[13]
Pause time zero interrupt masked.
RO
1’h1
[12]
Pause frame received interrupt masked.
RO
1’h1
[11]
hresp not OK interrupt masked.
RO
1’h1
[10]
Receive overrun interrupt masked.
RO
1’h1
[09]
Link change interrupt masked.
RO
1’h1
[08]
Not used.
RO
1’h1
[07]
Transmit complete interrupt masked.
RO
1’h1
[06]
Transmit buffers exhausted in mid-frame interrupt masked.
RO
1’h1
[05]
Retry limit exceeded interrupt masked.
RO
1’h1
[04]
Transmit buffer underrun interrupt masked.
RO
1’h1
[03]
Transmit used bit read interrupt masked.
RO
1’h1
[02]
Receive used bit read interrupt masked.
RO
1’h1
[01]
Receive complete interrupt masked.
RO
1’h1
[00]
Management done interrupt masked.
RO
1’h1
PHY maintenance register (0x34)
This register enables the MACB to communicate with a PHY by means of the MDIO
interface. It is used during auto-negotiation to ensure that the MACB and the PHY are
configured for the same speed and duplex configuration.
The PHY maintenance register is implemented as a shift register. Writing to the register
starts a shift operation which is signalled as complete when bit two is set in the network
status register (about 2000 pclk cycles later when bit ten is set to zero, and bit eleven is set
to one in the network configuration register). An interrupt (0) is generated as this bit is set.
During this time, the MSB of the register is output on the MDIO pin and the LSB updated
from the MDIO pin with each MDC cycle. This causes transmission of a PHY management
frame on MDIO. See Section 22.2.4.5 of the IEEE 802.3 standard.
Reading during the shift operation will return the current contents of the shift register. At the
end of management operation, the bits will have shifted back to their original locations. For a
read operation, the data bits will be updated with data read from the PHY. It is important to
write the correct values to the register to ensure a valid PHY management frame is
produced.
216/584
Doc ID 022642 Rev 3
RM0321
Fast Ethernet ports (RMII0/RMII1/MII1)
The MDIO interface can read IEEE 802.3 Clause 45 PHYs as well as Clause 22 PHYs. To
access Clause 45 PHYs, write bits[31:28] as indicated by Table 45-64 in IEEE 802.3 rather
than as indicated in the following table.
For a description of MDC generation, see the Network Configuration Register.
Table 228. PHY maintenance register bit assignments (0x34)
11.2.11
Bits
Function
R/W
Reset Value
[31:30]
Start of frame - must be written 01 for a valid Clause 22 frame. (00
R/W
for a Clause 45 frame.)
2’h0
[29:28]
Operation - 10 is read; 01 is write for a valid Clause 22 frame. (For
Clause 45 - 00 for an address frame, 11 is read and 10 for post
R/W
read address increment.)
2’h0
[27:23]
PHY address.
R/W
5’h0
[22:18]
Register address - specifies the register in the PHY to access.
R/W
5’h0
[17:16]
Must be written to 10. Will read as written.
R/W
2’h0
[15:00]
For a write operation this is written with the data to be written to
the PHY. After a read operation this contains the data read from
the PHY.
R/W
16’h0
Pause time register (0x38)
Table 229. Pause time register bit assignments (0x38)
11.2.12
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write
RO
16’h0
[15:00]
Pause time - stores the current value of the pause time register
which is decremented every 512 bit times.
RO
16’h0
Transmit pause quantum(0xBC)
Table 230. Transmit pause quantum bit assignments (0xBC)
11.2.13
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write
RO
16’h0
[15:00]
Transmit pause quantum - used in hardware generation of
transmitted pause frames as value for pause quantum.
R/W
16’hFFFF
Wake-on LAN register (0xC4)
Table 231. Wake-on LAN register bit assignments (0xC4)
Bits
Function
R/W
Reset Value
[31:20]
Reserved - read 0, ignored on write
RO
12’h0
[19]
Wake-on LAN multicast hash event enable - when set multicast hash
R/W
events will cause the wol output to be asserted.
Doc ID 022642 Rev 3
1’h0
217/584
Fast Ethernet ports (RMII0/RMII1/MII1)
RM0321
Table 231. Wake-on LAN register bit assignments (0xC4)
Bits
Function
R/W
Reset Value
[18]
Wake-on LAN specific address register 1 event enable - when set
specific address 1 events will cause the wol output to be asserted.
R/W
1’h0
[17]
Wake-on LAN ARP request event enable - when set ARP request
events will cause the wol output to be asserted.
R/W
1’h0
[16]
Wake-on LAN magic packet event enable - when set magic packet
events will cause the wol output to be asserted.
R/W
1’h0
[15:00]
Wake-on LAN ARP request IP address - written to define the least
significant 16 bits of the target IP address that is matched to generate
R/W
a wake-on LAN event. A value of zero will not generate an event, even
if this is matched by the received frame.
11.2.14
Address matching registers
11.2.15
Specific address 1 bottom (0x98)
16’h0
Table 232. Specific address 1 bottom bit assignments (0x98)
11.2.16
Bits
Function
R/W
Reset Value
[31:00]
Least significant bits of the destination address. Bit zero indicates
whether the address is multicast or unicast and corresponds to the
least significant bit of the first byte received.
R/W
32’h0
Specific address 1 top (0x9C)
Table 233. Specific address 1 top bit assignments (0x9C)
11.2.17
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
The most significant bits of the destination address, that is bits
47 to 32.
R/W
16’h0
Specific address 2 bottom (0xA0)
Table 234. Specific address 2 bottom bit assignments (0xA0)
218/584
Bits
Function
R/W
[31:00]
Least significant bits of the destination address. Bit zero indicates
whether the address is multicast or unicast and corresponds to the R/W
least significant bit of the first byte received.
Doc ID 022642 Rev 3
Reset Value
32’h0
RM0321
11.2.18
Fast Ethernet ports (RMII0/RMII1/MII1)
Specific address 2 top (0xA4)
Table 235. Specific address 2 top bit assignments (0xA4)
11.2.19
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
The most significant bits of the destination address, that is bits 47
R/W
to 32.
16’h0
Specific address 3 bottom(0xA8)
Table 236. Specific address 3 bottom bit assigments (0xA8)
11.2.20
Bits
Function
R/W
Reset Value
[31:00]
Least significant bits of the destination address. Bit zero indicates
whether the address is multicast or unicast and corresponds to the
least significant bit of the first byte received.
R/W
32’h0
R/W
Reset Value
RO
16’h0
Specific address 3 top (0xAC)
Table 237. Specific address 3 top bit assignments (0xAC)
Bits
Function
[31:16] Reserved - read 0, ignored on write.
[15:00]
11.2.21
The most significant bits of the destination address, that is bits 47 to
R/W
32.
16’h0
Specific address 4 bottom(0xB0)
Table 238. Specific address 4 bottom bit assignments (0xB0)
11.2.22
Bits
Function
R/W Reset Value
[31:00]
Least significant bits of the destination address. Bit zero indicates
whether the address is multicast or unicast and corresponds to the
least significant bit of the first byte received.
R/W 32’h0
Specific address 4 top (0xB4)
Table 239. Specific address 4 top bit assignments (0xB4)
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
The most significant bits of the destination address, that is bits 47
R/W
to 32.
Doc ID 022642 Rev 3
16’h0
219/584
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2.23
RM0321
Type ID checking (0xB8)
Table 240. Type ID checking bit assignments (0xB8)
11.2.24
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Type ID checking. For use in comparisons with received frames
TypeID/Length field.
R/W
16’h0
Hash register bottom [31:0] (0x90)
Table 241. Hash register bottom [31:0] bit assignments (0x90)
11.2.25
Bits
Function
R/W
Reset Value
[31:00]
Bits 31:0 of the hash address register. See Hash
Addressing
R/W
32’h0
Hash register bottom [63:32] (0x94)
Table 242. Hash register bottom [63:32} bit assignments (0x94)
11.2.26
Bits
Function
R/W
Reset Value
[31:00]
Bits 63:32 of the hash address register. See Hash Addressing
R/W
32’h0
Statistics registers
These registers reset to zero on a read and stick at all ones when they count to their
maximum value. They should be read frequently enough to prevent loss of data. The receive
statistics registers are only incremented when the receive enable bit is set in the network
control register. To write to these registers, bit 7 must be set in the network control register.
The statistics register block contains the following registers.
11.2.27
Pause frames received (0x3C)
Table 243. Pause frames received (0x3C) bit assignments
220/584
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Pause frames received OK - a 16 bit register counting the number
of good pause frames received. A good frame has a length of 64 to
1518 (1536 if bit 8 set in network configuration register; 10,240
R/W
bytes if bit 3 is set in the network configuration register) and has no
FCS, alignment or receive symbol errors.
Doc ID 022642 Rev 3
16’h0
RM0321
11.2.28
Fast Ethernet ports (RMII0/RMII1/MII1)
Frames transmitted OK (0x40)
Table 244. Frames transmitted OK (0x40) bit assignments
11.2.29
Bits
Function
R/W
Reset Value
[31:24]
Reserved - read 0, ignored on write.
RO
8’h0
[23:00]
Frames transmitted OK - a 24 bit register counting the number of
frames successfully transmitted, that is. no underrun and not too
many retries.
R/W
24’h0
Single collision frames (0x44)
Table 245. Single collisions frames (0x44) bit assignments
11.2.30
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Single collision frames - a 16 bit register counting the number of
frames experiencing a single collision before being successfully
transmitted, that is. no underrun.
R/W
16’h0
Multiple collision frames (0x48)
Table 246. Multiple collision frames (0x48) bit assignments
11.2.31
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Multiple collision frames - a 16 bit register counting the number of
frames experiencing between two and fifteen collisions prior to
being successfully transmitted, that is. no underrun and not too
many retries.
R/W
16’h0
Frames received OK (0x4C)
Table 247. Frames received OK (0x4C) bit assingments
Bits
Function
R/W
Reset Value
[31:24]
Reserved - read 0, ignored on write.
RO
8’h0
[23:00]
Frames received OK - a 24 bit register counting the number of good
frames received, that is address recognized and successfully
copied to memory. A good frame is of length 64 to 1518 bytes
R/W
(1536 if bit 8 set in network configuration register; 10,240 bytes if
bit 3 is set in the network configuration register) and has no FCS,
alignment or receive symbol errors.
Doc ID 022642 Rev 3
24’h0
221/584
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2.32
RM0321
Frames check sequence errors (0x50)
Table 248. Frames check sequence errors (0x50)
11.2.33
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Frame check sequence errors - an 8 bit register counting frames
that are an integral number of bytes, have bad CRC and are
between 64 and 1518 bytes in length (1536 if bit 8 set in network
configuration register; 10,240 bytes if bit 3 is set in the network
R/W
configuration register). This register is also incremented if a symbol
error is detected and the frame is of valid length and has an integral
number of bytes.
8’h0
Alignment errors (0x54)
Table 249. Alignment errors (0x54)
11.2.34
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Alignment errors - an 8 bit register counting frames that are not an
integral number of bytes long and have bad CRC when their length
is truncated to an integral number of bytes and are between 64 and
1518 bytes in length (1536 if bit 8 set in network configuration
R/W
register; 10,240 bytes if bit 3 is set in the network configuration
register). This register is also incremented if a symbol error is
detected and the frame is of valid length and does not have an
integral number of bytes.
8’h0
Deferred transmission frames (0x58)
Table 250. Deferred transmission frames (0x58)
222/584
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Deferred transmission frames - a 16 bit register counting the
number of frames experiencing deferral due to carrier sense being
active on their first attempt at transmission.
R/W
Frames involved in any collision are not counted nor are frames
that experienced a transmit underrun.
Doc ID 022642 Rev 3
16’h0
RM0321
11.2.35
Fast Ethernet ports (RMII0/RMII1/MII1)
Late collisions (0x5C)
Table 251. Late collisions (0x5C)
11.2.36
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Late collisions - an 8 bit register counting the number of frames
that experience a collision after the slot time (512 bits) has
R/W
expired. A late collision is counted twice that is. both as a collision
and a late collision.
8’h0
Excessive collisions (0x60)
Table 252. Excessive collisions (0x60)
11.2.37
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Excessive collisions - an 8 bit register counting the number of
frames that failed to be transmitted because they experienced 16
collisions.
R/W
8’h0
Transmit underrun errors (0x64)
Table 253. Transmit underrun errors (0x64)
11.2.38
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Transmit underruns - an 8 bit register counting the number of frames
not transmitted due to a transmit DMA underrun. If this register is
R/W
incremented then no other statistics register is incremented.
8’h0
Carrier sense errors (0x68)
Table 254. Carrier sense errors (0x68)
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Carrier sense errors - an 8 bit register counting the number of
frames transmitted where carrier sense was not seen during
transmission or where carrier sense was deasserted after being
asserted in a transmit frame without collision (no underrun). Only
R/W
incremented in half duplex mode. The only effect of a carrier sense
error is to increment this register. The behaviour of the other
statistics registers is unaffected by the detection of a carrier sense
error.
Doc ID 022642 Rev 3
8’h0
223/584
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2.39
RM0321
Receive resource errors (0x6C)
Table 255. Receive resource errors (0x6C)
11.2.40
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Receive resource errors - a 16 bit register counting the number of
frames that were address matched but could not be copied to
memory because no receive buffer was available.
R/W
16’h0
Receive overrun errors (0x70)
Table 256. Receive overrun errors (0x70)
11.2.41
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Receive overruns - an 8 bit register counting the number of frames
that are address recognized but were not copied to memory due to R/W
a receive DMA overrun.
8’h0
Receive symbol errors (0x74)
Table 257. Receive symbol errors (0x74)
11.2.42
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Receive symbol errors - an 8 bit register counting the number of
frames that had rx_er asserted during reception. Receive symbol
errors will also be counted as an FCS or alignment error if the
frame is between 64 and 1518 bytes in length (1536 if bit 8 is set R/W
in the network configuration register; 10,240 bytes if bit 3 is set in
the network configuration register). If the frame is larger it will be
recorded as a jabber error.
8’h0
Excessive length errors (0x78)
Table 258. Excessive length errors (0x78)
224/584
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Excessive length frames - an 8 bit register counting the number of
frames received exceeding 1518 bytes (1536 if bit 8 set in network
configuration register; 10,240 bytes if bit 3 is set in the network
configuration register) in length but do not have either a CRC error,
an alignment error nor a receive symbol error.
R/W
8’h0
Doc ID 022642 Rev 3
RM0321
11.2.43
Fast Ethernet ports (RMII0/RMII1/MII1)
Receive Jabbers (0x7C)
Table 259. Receive Jabbers (0x&7C)
11.2.44
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Receive jabbers - an 8 bit register counting the number of frames
received exceeding 1518 bytes (1536 if bit 8 set in network
configuration register; 10,240 bytes if bit 3 is set in the network
configuration register) in length and have either a CRC error, an
alignment error or a receive symbol error.
R/W
8’h0
Undersize frames (0x80)
Table 260. Undersize frames (0x80)
11.2.45
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Undersize frames - an 8 bit register counting the number of frames
received less than 64 bytes in length but do not have either a CRC
error, an alignment error or a receive symbol error.
R/W
8’h0
SQE test errors (0x84)
Table 261. SQE test errors (0x84)
11.2.46
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
SQE test errors - an 8 bit register counting the number of frames
where col was not asserted within 96 bit times (an interframe gap) of R/W
tx_en being deasserted in half duplex mode.
8’h0
Received length field mismatch (0x88)
Table 262. Received length field mismatch (0x88)
Bits
Function
R/W
Reset Value
[31:08]
Reserved - read 0, ignored on write.
RO
24’h0
[07:00]
Receive length field mismatch - an 8 bit register counting the
number of frames received that have a measured length shorter
than that extracted from its length field.
R/W
Checking is enabled through bit 16 of the network configuration
register. Frames containing a type ID in bytes 13 and 14 (that is.
length/type ID >= 0x0600) will not be counted as length field errors:
neither will excessive length frames.
Doc ID 022642 Rev 3
8’h0
225/584
Fast Ethernet ports (RMII0/RMII1/MII1)
11.2.47
RM0321
Transmitted pause frames (0x8C)
Table 263. Transmitted pause frames (0x8C)
11.2.48
Bits
Function
R/W
Reset Value
[31:16]
Reserved - read 0, ignored on write.
RO
16’h0
[15:00]
Transmitted pause frames - a 16 bit register counting the number of
R/W
pause frames transmitted.
16’h0
Common configuration register (0xB300_0010)
Apart from the internal registers of the MACB, there is a common register external to the
MACB which controls the Endianess of the DMA Interface (AHB Master) and availability of
the PHY Management Signals to the top-level.
For more details, refer to Control register description in Chapter 29: RAS configuration
(RASCFG).
226/584
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
12
MMC-SD card/SDIO controller
12.1
Register summary
The MMC-SD card/SDIO controller can be configured by programming the registers at base
address 0x7000.0000 through the AHB slave interface.
Table 264. MMC-SD card/SDIO controller register map
Name
Offset
Size in bit
Description
SDMASysAddr
0x000
32
SDMA system address register
BLKSize
0x004
16
Block size register
BLKCnt
0x006
16
Block count register
CMDARG
0x008
32
Command argument register
TRMode
0x00C
16
Transfer mode register
CMD
0x00E
16
Command register
RESP0
0x010
32
RESP1
0x014
32
RESP2
0x018
32
RESP3
0x01C
32
BufDataPort
0x020
32
Buffer data port register
PrState
0x024
32
Present state register
HOSTCTRL
0x028
8
Host control register
PWRCTRL
0x029
8
Power control register
BLKGAPCTRL
0x02A
8
Block gap control register
WKUPCTRL
0x02B
8
Wake up control register
CLKCTRL
0x02C
16
Clock control register
TMOUTCTRL
0x02E
8
Time out control register
SWRES
0x02F
8
Software reset register
NIRQSTAT
0x030
16
Normal Interrupt Status
ERRIRQSTAT
0x032
16
Error Interrupt Status
NIRQSTATEN
0x034
16
Normal interrupt Status Enable
ERRIRQSTATEN
0x036
16
Error Interrupt Status Enable
NIRQSIGEN
0x038
16
Normal Interrupt Signal Enable
ERRIRQSIGEN
0x03A
16
Error Interrupt Signal Enable
ACMD12ERSTS
0x03C
16
Auto Command 12 error status register
-
0x03E
-
Reserved
CAP1
0x040
32
Capabilities registers
CAP2
0x044
32
Reserved
Response register
Doc ID 022642 Rev 3
227/584
MMC-SD card/SDIO controller
RM0321
Table 264. MMC-SD card/SDIO controller register map (continued)
Name
Offset
Size in bit
Description
MAXCURR1
0x048
32
Maximum current capabilities register
MAXCURR2
0x04C
32
Reserved
ACMD12FEERSTS
0x050
16
Force event register for auto CMD12
error status
FEERRINTSTS
0x052
16
Force event register for error interrupt
status
ADMAERRSTS
0x054
8
ADMA error status register
-
0x055 to0x057
-
Reserved
ADMAAddr1
0x058
32
ADMA LSB system address register
ADMAAddr2
0x05C
32
ADMA MSB system address register
-
0x060 to 0x0EE
-
Reserved
SPIIRQSUPP
0x0F0
8
SPI Interrupt request support register
-
0x0F2 to 0x0FA
SLTIRQSTS
0x0FC
16
Slot Interrupts register
HCTRLVER
0x0FE
16
Host controller version register
Reserved
Table 265. Register field types
228/584
Attribute
Description
RO
Read Only Register: Register bits are read only and cannot be altered by software or
any reset operation. Write to these bits are ignored.
ROC
Read Only Status: These bits are initialized to zero at reset. Writes to these bits are
ignored.
RW
Read-Write Register: Register bits are read-write and may be either set or cleared by
software to the desired state.
RW1C
Read Only Status, Write logic ‘1’ to clear Status: Register bits indicate status when
read, a set bit indicating a status event may be cleared by writing a logic ‘1’. Writing a
logic ‘0’ to RW1C bits has no effect.
RWAC
Read-Write, automatic clear register: The Host driver requests a Host Controller
operation by setting the bit. The Host Controller shall clear the bit automatically when
the operation of complete. Writing a logic ‘0’ to RWAC bits has no effect.
Hwinit
Hardware Initialized: Register bits are freezed. Bits are read only after initialization,
and writes to these bits are ignored.
Rsvd
Reserved: These bits are initialized to zero, and writes to them are ignored.
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
12.2
Register description
12.2.1
SDMASysAddr register
This register contains the system memory address for a DMA transfer. When the Host
Controller (HC) stops a DMA transfer, this register shall point to the system address of the
next contiguous data position. It can be accessed only if no transaction is executing (that is
after a transaction has stopped). Read operations during transfer return an invalid value.
The Host Driver (HD) shall initialize this register before starting a DMA transaction.
After DMA has stopped, the next system address of the next contiguous data position can
be read from this register.
The DMA transfer waits at every boundary specified by the Host DMA Buffer Size in the
Block Size register. The Host Controller generates DMA Interrupt to request to update this
register. The HD sets the next system address of the next data position to this register.
When most upper byte of this register (0x003) is written, the HC restart the DMA transfer.
When restarting DMA by the resume command or by setting Continue Request in the Block
Gap Control register, the HC shall start at the next contiguous address stored here in the
System Address register.
Table 266. SDMASysAddr register bit assignments
12.2.2
Bit
Name
Reset
value
Type
Description
[31:00]
SDMASysAddr
32’h0
RW
This register contains the system memory address
for a DMA transfer.
BLKSize register
Table 267. BLKSize register bit assignments
Bit
Name
Reset
value
Type
Description
[15]
TBLKSize12
1’h0
Rsvd
Transfer Block Size 12th bit. This bit is added to
support 4Kb Data block transfer.
Doc ID 022642 Rev 3
229/584
MMC-SD card/SDIO controller
RM0321
Table 267. BLKSize register bit assignments (continued)
Bit
[14:12]
[11:00]
230/584
Name
Reset
value
HSDMABSize 3’h0
TBKSize
12’h000
Type
Description
RW
To perform long DMA transfer, System Address
register shall be updated at every system boundary
during DMA transfer. These bits specify the size of
contiguous buffer in the system memory. The DMA
transfer shall wait at the every boundary specified
by these fields and the HC generates the DMA
Interrupt to request the HD to update the System
Address register.
These bits shall support when the DMA Support in
the Capabilities register is set to logic ‘1’ and this
function is active when the DMA Enable in the
Transfer Mode register is set to 1.
3’b000 - 4KB(Detects A11 Carry out)
3’b001 - 8KB(Detects A12 Carry out)
3’b010 - 16KB(Detects A13 Carry out)
3’b011 - 32KB(Detects A14 Carry out)
3’b100 - 64KB(Detects A15 Carry out)
3’b101 -128KB(Detects A16 Carry out)
3’b110 - 256KB(Detects A17 Carry out)
3’b111 - 512KB(Detects A18 Carry out)
RW
This register specifies the block size for block data
transfers for CMD17, CMD18, CMD24, CMD25,
and CMD53. It can be accessed only if no
transaction is executing (that is after a transaction
has stopped). Read operations during transfer
return an invalid value and write operations shall be
ignored.
12’h0000 - No Data Transfer
12’h0001 - 1 Byte
12’h0002 - 2 Bytes
12’h0003 - 3 Bytes
12’h0004 - 4 Bytes
--- --12’h01FF - 511 Bytes
12’h0200 - 512 Bytes
--- --12’h0800 - 2048 Bytes
Doc ID 022642 Rev 3
RM0321
12.2.3
MMC-SD card/SDIO controller
BLKCount register
Table 268. BLKCount register bit assignments
Bit
[15:00]
12.2.4
Name
TBLKCount
Reset
value
16’h0000
Type
Description
RW
This register is enabled when Block Count Enable
in the Transfer Mode register is set to logic ‘1’ and is
valid only for multiple block transfers. The HC
decrements the block count after each block
transfer and stops when the count reaches zero. It
can be accessed only if no transaction is executing
(that is after a transaction has stopped). Read
operations during transfer return an invalid value
and write operations shall be ignored.
When saving transfer context as a result of
Suspend command, the number of blocks yet to be
transferred can be determined by reading this
register. When restoring transfer context prior to
issuing a Resume command, the HD shall restore
the previously save block count.
16’h0000 - Stop Count
16’h0001 - 1 block
16’h0002 - 2 blocks
--- --16’hFFFF - 65535 blocks
See also Table 271.
CMDARG register
Table 269. ARG register bit assignments
12.2.5
Bit
Name
Reset
value
Type
Description
[31:00]
CMDARG
32’h0
RW
The SD Command Argument is specified as bit39-8
of Command Format.
TRMode register
Table 270. TRMODE register bit assignments
Bit
Name
Reset
value
Type
Description
[15:08]
-
-
Rsvd
Reserved.
[07]
SPIMode
1’h0
RW
SPI mode enable bit.
1’b1 - SPI mode
1’b0 - SD mode
[06]
-
-
Rsvd
Reserved.
Doc ID 022642 Rev 3
231/584
MMC-SD card/SDIO controller
RM0321
Table 270. TRMODE register bit assignments (continued)
Bit
[05]
Name
MSBLKSel
Reset
value
1’h0
Type
Description
RW
This bit enables multiple block DAT line data
transfers.
1’b0 - Single Block
1’b1 - Multiple Block
See also Table 271.
[04]
DTDirSel
1’h0
RW
This bit defines the direction of DAT line data
transfers.
1’b0 - Write (Host to Card)
1’b1 - Read (Card to Host)
[03]
-
-
Rsvd
Reserved.
RW
Multiple block transfers for memory require CMD12
to stop the transaction. When this bit is set to logic
‘1’, the HC shall issue CMD12 automatically when
last block transfer is completed. The HD shall not set
this bit to issue commands that do not require
CMD12 to stop data transfer.
1’b0 - Disable
1’b1 - Enable
RW
This bit is used to enable the Block count register,
which is only relevant for multiple block transfers.
When this bit is logic ‘0’, the Block Count register is
disabled, which is useful in executing an infinite
transfer.
1’b0 - Disable
1’b1 - Enable
See also Table 271.
[02]
[01]
[00]
ACMD12En
BLKCntEn
DMAEn
1’h0
1’h0
DMA can be enabled only if DMA Support bit in the
Capabilities register is set. If this bit is set to logic ‘1’,
a DMA operation shall begin when the HD writes to
the upper byte of Command register (00Fh).
1’b0 - Disable
1’b1 - Enable
1’h0
Table 271. Determination of transfer type
232/584
MSBLKSel
BLKCntEn
BLKCount
Function
0
Don’t care
Don’t care
Single transfer
1
0
Don’t care
Infinite transfer
1
1
Not zero
Multiple transfer
1
1
Zero
Stop multiple transfer
Doc ID 022642 Rev 3
RM0321
12.2.6
MMC-SD card/SDIO controller
CMD register
.
Table 272. CMD register bit assignments
Bit
Name
Reset
value
Type
Description
[15:14]
-
-
Rsvd
Reserved
[13:08]
CMDIndex
6’h0
RW
This bit shall be set to the command number
(CMD0-63, ACMD0- 63).
RW
There are three types of special commands.
Suspend, Resume and Abort. These bits shall be
set to 2’b00 for all other commands.
Suspend Command
If the Suspend command succeeds, the HC shall
assume the SD Bus has been released and that it
is possible to issue the next command which uses
the DAT line. The HC shall de-assert Read Wait for
read transactions and stop checking busy for write
transactions. The Interrupt cycle shall start, in 4 bit
mode. If the Suspend command fails, the HC shall
maintain its current state. and the HD shall restart
the transfer by setting Continue Request in the
Block Gap Control Register.
Resume Command
The HD re-starts the data transfer by restoring the
registers in the range of 0x000-0x00D. The HC
shall check for busy before starting write transfers.
Abort Command
If this command is set when executing a read
transfer, the HC shall stop reads to the buffer. If this
command is set when executing a write transfer, the
HC shall stop driving the DAT line. After issuing the
Abort command, the HD should issue a software
reset
2’b00 - Normal
2’b01 - Suspend
2’b10 - Resume
2’b11 - Abort
RW
This bit is set to logic ‘1’ to indicate that data is
present and shall be transferred using the DAT line.
It is set to logic ‘0’ for the following:
Commands using only CMD line (ex. CMD52)
Commands with no data transfer but using busy
signal on DAT[0] line (R1b or R5b ex. CMD38)
Resume Command
1’b0 - No Data Present
1’b1 - Data Present
[07:06]
[05]
CMDType
DPSel
2’h0
1’h0
Doc ID 022642 Rev 3
233/584
MMC-SD card/SDIO controller
RM0321
Table 272. CMD register bit assignments (continued)
Bit
[04]
Reset
value
Name
IDXCkEn
1’h0
Type
Description
RW
If this bit is set to 1, the HC shall check the index
field in the response to see if it has the same value
as the command index. If it is not, it is reported as a
Command Index Error. If this bit is set to 0, the
Index field is not checked.
1’b0 - Disable
1’b1 - Enable
[03]
CRCCkEn
1’h0
RW
If this bit is set to 1, the HC shall check the CRC
field in the response. If an error is detected, it is
reported as a Command CRC Error. If this bit is set
to 0, the CRC field is not checked.
1’b0 - Disable
1’b1 - Enable
[02]
-
-
Rsvd
Reserved
RW
Response Type Select
2’b00 - No Response
2’b01 - Response length 136
2’b10 - Response length 48
2’b11 - Response length 48 check Busy after
response
[01:00]
RESTypeSel
2’h0
Table 273. Relation between parameters and the name of response type
12.2.7
RESTypeSel
IDXCkEn
CRCCkEn
Name of response type
00
0
0
No Response
01
0
1
R2
10
0
0
R3, R4
10
1
1
R1, R6, R5, R7
11
1
1
R1b, R5b
RESP(i) registers
.
Table 274. RESP register bit assignments
Bit
[127:00]
234/584
Name
RESP
Reset
value
128’h0
Type
Description
ROC
Table 275 describes the mapping of command
responses from the SD Bus to this register for each
response type. In the table, R[ ] refers to a bit range
within the response data as transmitted on the SD
Bus, RESP[ ] refers to a bit range within the
Response register.
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 275. Response bit definition for each response type
12.2.8
Kind of response
Meaning of response
Response field
Response register
R1, R1b (normal response)
Card Status
R[39:8]
RESP[31:0]
R1b (Auto CMD12 response)
Card Status for Auto
CMD12
R[39:8]
RESP[127:96]
R2 (CID, CSD Register)
CID or CSD reg. incl.
R[127:8]
RESP[119:0]
R3 (OCR Register)
OCR Register for memory
R[39:8]
RESP[31:0]
R4 (OCR Register)
OCR Register for I/O.
R[39:8]
RESP[31:0]
R5, R5b
SDIO Response
R[39:8]
RESP[31:0]
R6 (Published RCA
response)
New published RCA[31:16]. R[39:8]
RESP[31:0]
BufDataPort register
Table 276. BufDataPort register bit assignments
12.2.9
Bit
Name
Reset
value
Type
Description
[31:00]
BUFDATA
-
RW
The Host Controller Buffer can be accessed
through this 32 bit Data Port Register.
PRSTATE register
Table 277. PRSTATE register bit assignments
Bit
Name
Reset
value
Type
Description
[31:29]
-
-
Rsvd
Reserved
[28:25]
DAT[7:4]LSL
4’hF
RO
This status is used to check DAT line level to recover
from errors, and for debugging.
D28 - DAT[7]
D27 - DAT[6]
D26 - DAT[5]
D25 - DAT[4]
[24]
CMDLSL
1’h1
RO
This status is used to check CMD line level to recover
from errors, and for debugging.
RO
This status is used to check DAT line level to recover
from errors, and for debugging. This is especially
useful in detecting the busy signal level from DAT[0].
D23 - DAT[3]
D22 - DAT[2]
D21 - DAT[1]
D20 - DAT[0]
[23:20]
DAT[3:0]LSL
4’hF
Doc ID 022642 Rev 3
235/584
MMC-SD card/SDIO controller
RM0321
Table 277. PRSTATE register bit assignments (continued)
Bit
Reset
value
Type
Description
[19]
WPRSPL
1’h0
RO
The Write Protect Switch is supported for memory
and combo cards. This bit reflects the SDWP# pin.
1’b0 - Write protected (SDWP# = 1)
1’b1 - Write enabled (SDWP# = 0)
[18]
CDPL
1’h0
RO
This bit reflects the inverse value of the SDCD# pin.
1’b0 - No Card present (SDCD# = 1)
1’b1 - Card present (SDCD# = 0)
RO
This bit is used for testing. If it is logic ‘0’, the Card
Detect Pin Level is not stable. If this bit is set to logic
‘1’, it means the Card Detect Pin Level is stable. The
Software Reset For All in the Software Reset Register
shall not affect this bit.
1’b0 - Reset of Debouncing
1’b1 - No Card or Inserted
[17]
CSS
1’h0
[16]
CRDINS
1’h0
RO
This bit indicates whether a card has been inserted.
Changing from 0 to 1 generates a Card Insertion
interrupt in the Normal Interrupt Status register and
changing from 1 to 0 generates a Card Removal
Interrupt in the Normal Interrupt Status register. The
Software Reset For All in the Software Reset register
shall not affect this bit. If a Card is removed while its
power is on and its clock is oscillating, the HC shall
clear SD Bus Power in the Power Control register and
SD Clock Enable in the Clock control register. In
addition the HD should clear the HC by the Software
Reset For All in Software register. The card detect is
active regardless of the SD Bus Power.
1’b0 - Reset or Debouncing or No Card
1’b1 - Card Inserted
[15:12]
-
-
Rsvd
Reserved
ROC
This status is used for non-DMA read transfers. This
read only flag indicates that valid data exists in the
host side buffer status. If this bit is logic ‘1’, readable
data exists in the buffer. A change of this bit from 1 to
0 occurs when all the block data is read from the
buffer. A change of this bit from 0 to 1 occurs when all
the block data is ready in the buffer and generates the
Buffer Read Ready Interrupt.
1’b0 - Read Disable
1’b1 - Read Enable.
[11]
236/584
Name
BRE
1’h0
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 277. PRSTATE register bit assignments (continued)
Bit
[10]
[09]
Name
BWE
RTA
Reset
value
1’h0
1’h0
Type
Description
ROC
This status is used for non-DMA write transfers. This
read only flag indicates if space is available for write
data. If this bit is logic ‘1’, data can be written to the
buffer. A change of this bit from 1 to 0 occurs when all
the block data is written to the buffer. A change of this
bit from 0 to 1 occurs when top of block data can be
written to the buffer and generates the Buffer Write
Ready Interrupt.
1’b0 - Write Disable
1’b1 - Write Enable.
ROC
This status is used for detecting completion of a read
transfer. This bit is set to logic ‘1’ for either of the
following conditions:
After the end bit of the read command
When writing a logic ‘1’ to continue Request in the
Block Gap Control register to restart a read Transfer.
This bit is cleared to 0 for either of the following
conditions:
When the last data block as specified by block length
is transferred to the system.
When all valid data blocks have been transferred to
the system and no current block transfers are being
sent as a result of the Stop At Block Gap Request set
to logic ‘1’.
A transfer complete interrupt is generated when this
bit changes to 0.
1’b1 - Transferring data
1’b0 - No valid data
[08]
WTA
1’h0
ROC
This status indicates a write transfer is active. If this
bit is logic ‘0’, it means no valid write data exists in the
HC. This bit is set in either of the following cases:
After the end bit of the write command.
When writing a logic ‘1’ to Continue Request in the
Block Gap Control register to restart a write transfer.
This bit is cleared in either of the following cases:
After getting the CRC status of the last data block as
specified by the transfer count (Single or Multiple)
After getting a CRC status of any block where data
transmission is about to be stopped by a Stop At
Block Gap Request. During a write transaction, a
Block Gap Event interrupt is generated when this bit
is changed to logic ‘0’, as a result of the Stop At Block
Gap Request being set.
This status is useful for the HD in determining when
to issue commands during write busy.
1’b1 - transferring data
1’b0 - No valid data
Doc ID 022642 Rev 3
237/584
MMC-SD card/SDIO controller
RM0321
Table 277. PRSTATE register bit assignments (continued)
Bit
Name
Reset
value
Type
Description
[07:03]
-
-
Rsvd
Reserved
ROC
This bit indicates whether one of the DAT line on SD
bus is in use.
1’b1 - DAT line active
1’b0 - DAT line inactive
In the case of read transactions this status indicates if
a read transfer is executing on the SD bus. Changes
in this value from 1 to 0 between data blocks generate
a Block Gap Event interrupt in the Normal Interrupt
Status register. This bit shall be set in either of the
following cases:
1. After the end bit of the read command
2. When writing a logic ‘1’ to Continue Request in the
Block Gap Control register to restart a read transfer.
This bit shall be cleared in either of the following
cases:
1. When the end bit of the last data block is sent from
the SD bus to the HC.
2. When beginning a wait read transfer at a shop at
the block gap initiated by a Stop At Block Gap
Request.
ROC
This status bit is generated if either the DAT Line
Active or the Read transfer Active is set to 1. If this bit
is 0, it indicates the HC can issue the next SD
command. Commands with busy signal belong to
Command Inhibit (DAT) (ex. R1b, R5b type).
Changing from 1 to 0 generates a Transfer Complete
interrupt in the Normal interrupt status register.
Note: The SD Host Driver can save registers in the
range of 0x000-0x00Dh for a suspend transaction
after this bit has changed from 1 to 0.
1’b1 - cannot issue command which uses the DAT
line
1’b0 - Can issue command which uses the DAT line
ROC
If this bit is logic ‘0’, it indicates the CMD line is not in
use and the HC can issue a SD command using the
CMD line. This bit is set immediately after the
Command register (0x00F) is written. This bit is
cleared when the command response is received.
Even if the Command Inhibit (DAT) is set to logic ‘1’,
Commands using only the CMD line can be issued if
this bit is logic ‘0’. Changing from 1 to 0 generates a
Command complete interrupt in the Normal Interrupt
Status register. If the HC cannot issue the command
because of a command conflict error or because of
Command Not Issued By Auto CMD12 Error, this bit
shall remain 1 and the Command Complete is not set.
Status issuing Auto CMD12 is not read from this bit.
[02]
[01]
[00]
238/584
DATLA
CMDINBDAT
1’h0
1’h0
CMDINBCMD 1’h0
Doc ID 022642 Rev 3
RM0321
12.2.10
MMC-SD card/SDIO controller
HOSTCTRL register
Table 278. HOSTCTRL register bit assignments
Bit
Name
Reset
value
Type
Description
[07]
CDSD
1’h0
RW
This bit selects source for card detection.
1’b1- The card detect test level is selected
1’b0 -SDCD# is selected (for normal use)
RW
This bit is enabled while the Card Detect Signal
Selection is set to 1 and it indicates card inserted or
not.
1’b1 - Card Inserted
1’b0 - No Card
RW
This bit selects the data width of the HC. The HD
shall select it to match the data width of the SD card.
1’b1 - 8 bit mode is selected
1’b0 - 8 bit mode is not selected
RW
One of supported DMA modes can be selected. The
host driver shall check support of DMA modes by
referring the Capabilities register.
2’b00 - SDMA is selected
2’b01 - 32 bit Address ADMA1 is selected
2’b10 -32 bit Address ADMA2 is selected
2’b11 - 64 bit Address ADMA2 is selected
RW
This bit is optional. Before setting this bit, the HD
shall check the High Speed Support in the
capabilities register. If this bit is set to logic ‘0’
(default), the HC outputs CMD line and DAT lines at
the falling edge of the SD clock (up to 25 MHz). If this
bit is set to logic ‘1’, the HC outputs CMD line and
DAT lines at the rising edge of the SD clock (up to 50
MHz)
1’b1 - High Speed Mode
1’b0 - Normal Speed Mode
RW
This bit selects the data width of the HC. The HD
shall select it to match the data width of the SD card.
1’b1 - 4 bit mode
1’b0 - 1 bit mode
RW
This bit is used to caution the user not to remove the
card while the SD card is being accessed. It is not
necessary to change for each transaction.
1’b1 - LED on
1’b0 - LED off
[06]
[05]
[04:03]
[02]
[01]
[00]
CDTL
SD8MODE
DMASEL
HSEN
DTW
LEDCTRL
1’h0
1’h0
2’h0
1’h0
1’h0
1’b0
Doc ID 022642 Rev 3
239/584
MMC-SD card/SDIO controller
12.2.11
RM0321
PWRCTL register
Table 279. PWRCTRL register bit assignments
Bit
Name
Reset
value
Type
Description
[07:04]
-
-
Rsvd
Reserved
RW
By setting these bits, the HD selects the voltage level
for the SD card. Before setting this register, the HD
shall check the voltage support bits in the capabilities
register. If an unsupported voltage is selected, the Host
System shall not supply SD bus voltage
3’b111 - 3.3 Flattop.
3’b110 - 3.0 V(Typ.)
3’b101 - 1.8 V(Typ.)
3’b100 - 3’b000 - Reserved
RW
Before setting this bit, the SD host driver shall set SD
Bus Voltage Select. If the HC detects the No Card
State, this bit shall be cleared.
1’b1 - Power on
1’b0 - Power off
[03:01]
[00]
SDBVS
SDBPWR
3’h0
1’h0
Note:
Power for the SD card is provided on board; hence programming this register is not
essential.
12.2.12
BLKGAPCTRL register
Table 280. BLKGAPCTRL register bit assignments
Bit
Name
[07:04] -
[03]
240/584
IRQBK
Reset
value
Type
Description
-
Rsvd
Reserved
RW
This bit is valid only in 4 bit mode of the SDIO card and
selects a sample point in the interrupt cycle. Setting to
logic ‘1’ enables interrupt detection at the block gap for a
multiple block transfer. If the SD card cannot signal an
interrupt during a multiple block transfer, this bit should
be set to logic ‘0’. When the HD detects an SD card
insertion, it shall set this bit according to the CCCR of
the SDIO card.
1’h0
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 280. BLKGAPCTRL register bit assignments (continued)
Bit
[02]
[01]
Name
RDWCTRL
CNTREQ
Reset
value
1’h0
1’h0
Type
Description
RW
The read wait function is optional for SDIO cards. If the
card supports read wait, set this bit to enable use of the
read wait protocol to stop read data using DAT[2] line.
Otherwise the HC has to stop the SD clock to hold read
data, which restricts commands generation. When the
HD detects an SD card insertion, it shall set this bit
according to the CCCR of the SDIO card. If the card
does not support read wait, this bit shall never be set to
logic ‘1’ otherwise DAT line conflict may occur. If this bit
is set to logic ‘0’, Suspend / Resume cannot be
supported
1’b1 - Enable Read Wait Control
1’b0 - Disable Read Wait Control
RW
This bit is used to restart a transaction which was
stopped using the Stop At Block Gap Request. To cancel
stop at the block gap, set Stop At block Gap Request to
logic ‘0’ and set this bit to restart the transfer. The HC
automatically clears this bit in either of the following
cases:
In the case of a read transaction, the DAT Line Active
changes from 0 to 1 as a read transaction restarts.
In the case of a write transaction, the Write transfer
active changes from 0 to 1 as the write transaction
restarts.
Therefore it is not necessary for Host driver to set this bit
to logic ‘0’. If Stop At Block Gap Request is set to logic
‘1’, any write to this bit is ignored.
1’b1 - Restart
1’b0 - Ignored
Doc ID 022642 Rev 3
241/584
MMC-SD card/SDIO controller
RM0321
Table 280. BLKGAPCTRL register bit assignments (continued)
Bit
[00]
Name
STPBKGPR
EQ
Reset
value
1’h0
Type
Description
RW
This bit is used to stop executing a transaction at the
next block gap for non- DMA,SDMA and ADMA
transfers. Until the transfer complete is set to logic ‘1’,
indicating a transfer completion the HD shall leave this
bit set to logic ‘1’. Clearing both the Stop At Block Gap
Request and Continue Request shall not cause the
transaction to restart. Read Wait is used to stop the read
transaction at the block gap. The HC shall honour Stop
At Block Gap Request for write transfers, but for read
transfers it requires that the SD card support Read Wait.
Therefore the HD shall not set this bit during read
transfers unless the SD card supports Read Wait and
has set Read Wait Control to logic ‘1’. In case of write
transfers in which the HD writes data to the Buffer Data
Port register, the HD shall set this bit after all block data
is written. If this bit is set to logic ‘1’, the HD shall not
write data to Buffer data port register. This bit affects
Read Transfer Active, Write Transfer Active, DAT line
active and Command Inhibit (DAT) in the Present State
register.
1’b1 - Stop
1’b0 - Transfer
There are three cases to restart the transfer after stop at the block gap. Which case is
appropriate depends on whether the HC issues a Suspend command or the SD card
accepts the Suspend command.
1.
If the HD does not issue a Suspend command, the Continue Request shall be used to
restart the transfer.
2.
If the HD issues a Suspend command and the SD card accepts it, a Resume
Command shall be used to restart the transfer.
3.
If the HD issues a Suspend command and the SD card does not accept it, the Continue
Request shall be used to restart the transfer.
Any time Stop At Block Gap Request stops the data transfer, the HD shall wait for Transfer
Complete (in the Normal Interrupt Status register) before attempting to restart the transfer.
When restarting the data transfer by Continue Request, the HD shall clear Stop At Block
Gap Request before or simultaneously.
12.2.13
WKUPCTRL register
Table 281. WKUPCTRL register bit assignments
Bit
Name
[07:03] -
242/584
Reset
value
Type
Description
-
Rsvd
Reserved
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 281. WKUPCTRL register bit assignments (continued)
Bit
[02]
[01]
[00]
Name
WEECDR
WEECDI
WEEIRDQ
Reset
value
1’h0
1’h0
1’h0
Type
Description
RW
Wakeup Event Enable On SD Card Removal
This bit enables wakeup event via Card Removal
assertion in the Normal Interrupt Status register.
FN_WUS (Wake up Support) in CIS does not affect this
bit.
1’b1 - Enable
1’b0 - Disable
RW
Wakeup Event Enable On SD Card Insertion
This bit enables wakeup event via Card Insertion
assertion in the Normal Interrupt Status register.
FN_WUS (Wake up Support) in CIS does not affect this
bit.
1’b1 - Enable
1’b0 - Disable
RW
Wakeup Event Enable On Card Interrupt
This bit enables wakeup event via Card Interrupt
assertion in the Normal Interrupt Status register. This bit
can be set to logic ‘1’ if FN_WUS (Wake Up Support) in
CIS is set to logic ‘1’.
1’b1 - Enable
1’b0 - Disable
Doc ID 022642 Rev 3
243/584
MMC-SD card/SDIO controller
12.2.14
RM0321
CLKCTRL register
Table 282. CLKCTRL register bit assignments
Bit
Reset
value
Type
Description
[15:08]
SDCLKFSEL
8’h00
RW
This register is used to select the frequency of the
SDCLK pin. The frequency is not programmed
directly; rather this register holds the divisor of the
Base Clock Frequency For SD clock in the
capabilities register. Only the following settings are
allowed.
8’h80 - base clock divided by 256
8’h40 - base clock divided by 128
8’h20 - base clock divided by 64
8’h10 - base clock divided by 32
8’h08 - base clock divided by 16
8’h04 - base clock divided by 8
8’h02 - base clock divided by 4
8’h01 - base clock divided by 2
8’h00 - base clock (48 MHz)
Setting 0x00 specifies the highest frequency of the
SD Clock. When setting multiple bits, the most
significant bit is used as the divisor. But multiple bits
should not be set. According to the Physical Layer
Specification, the maximum SD Clock frequency is
25 MHz in normal speed mode and 50MHz in high
speed mode, and shall never exceed this limit. The
frequency of the SDCLK is set by the following
formula:
Clock Frequency = (Baseclock) / divisor.
Thus choose the smallest possible divisor which
results in a clock frequency that is less than or
equal to the target frequency.
Maximum Frequency = 48 MHz (base clock)
Minimum Frequency = 187.5 kHz
(48 MHz / 256)
[07:03]
-
-
Rsvd
Reserved
RW
The HC shall stop SDCLK when writing this bit to
logic ‘0’. SDCLK frequency Select can be changed
when this bit is logic ‘0’. Then, the HC shall
maintain the same clock frequency until SDCLK is
stopped (Stop at SDCLK = 1’b0). If the HC detects
the No Card state, this bit shall be cleared.
1’b1 - Enable
1’b0 - Disable
[02]
244/584
Name
SDCLKEN
1’h0
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 282. CLKCTRL register bit assignments (continued)
Bit
[01]
[00]
12.2.15
Reset
value
Name
INCLKST
1’h0
INCLKEN
1’h0
Type
Description
ROC
This bit is set to logic ‘1’ when SD clock is stable
after writing to Internal Clock Enable in this register
to logic ‘1’. The SD Host Driver shall wait to set SD
Clock Enable until this bit is set to 1.
Note: This is useful when using PLL for a clock
oscillator that requires setup time.
1’b1 - Ready
1’b0 - Not Ready
RW
This bit is set to logic ‘0’ when the HD is not using
the HC or the HC awaits a wakeup event.
The HC should stop its internal clock to go very low
power state. Still, registers shall be able to be read
and written. Clock starts to oscillate when this bit is
set to logic ‘1’. When clock
oscillation is stable, the HC shall set Internal Clock
Stable in this register to logic ‘1’. This bit shall not
affect card detection.
1’b1 - Oscillate
1’b0 - Stop
TMOUTCTRL register
Table 283. TMOUTCTRL register bit assignments
Bit
Name
[07:04] -
Reset
value
Type
Description
-
Rsvd
Reserved
This value determines the interval by which DAT line
time-outs are detected. Refer to the Data Time-out
Error in the Error Interrupt Status register for
information on factors that dictate time-out generation.
Time-out clock frequency will be generated by dividing
the base clock TMCLK by this value. When setting this
register, prevent inadvertent time-out events by
[03:00] DATATMCNT 4’h0
RW
clearing the Data Time-out Error Status Enable
(Table 12.2.20).
4’b1111 - Reserved
4’b1110 - TMCLK * 2^27
----------------------------------------------------------4’b0001 - TMCLK * 2^14
4’b0000 - TMCLK * 2^13
Note:
At the initialization of the HC, the HD shall set the Data Time-out Counter Value according to
the Capabilities register.
Doc ID 022642 Rev 3
245/584
MMC-SD card/SDIO controller
12.2.16
RM0321
SWRES register
Table 284. SWRES register bit assignments
Bit
Name
Reset
value
Type
Description
[07:03]
-
-
Rsvd
Reserved
-
Only part of data circuit is reset. The following
registers and bits are cleared by this bit:
Buffer Data Port Register
Buffer is cleared and Initialized.
Present State register
Buffer read Enable / Buffer write Enable
Read Transfer Active
Write Transfer Active
DAT Line Active
Command Inhibit (DAT)
RWAC
Block Gap Control register
Continue Request
Stop At Block Gap Request
Normal Interrupt Status register
Buffer Read Ready
Buffer Write Ready
Block Gap Event
Transfer Complete
1’b1 - Reset
1’b0 - Work
SWRESCMD -
Only part of command circuit is reset. The following
registers and bits are cleared by this bit:
Present State register
Command Inhibit (CMD)
RWAC
Normal Interrupt Status register
Command Complete
1’b1 - Reset
1’b0 - Work
SWRESALL
This reset affects the entire HC except for the card
detection circuit. Register bits of type ROC, RW,
RW1C, RWAC are cleared to logic ‘0’. During its
initialization, the HD shall set this bit to logic ‘1’ to
reset the HC. The HC shall reset this bit to logic ‘0’
when capabilities registers are valid and the HD can
RWAC read them. Additional use of Software Reset For All
may not affect the value of the Capabilities registers. If
this bit is set to 1, the SD card shall reset itself and
must be re initialized by the HD.
1’b1 - Reset
1’b0 - Work
[02]
[01]
[00]
246/584
SWRESDAT
-
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Note:
A reset pulse is generated when writing logic ‘1’ to each bit of this register. After completing
the reset, the HC shall clear each bit. Because it takes some time to complete software
reset, the SD Host Driver shall confirm that these bits are logic ‘0’.
12.2.17
NIRQSTAT register
The Normal Interrupt Status Enable affects read of this register, but Normal Interrupt Signal
does not affect these reads. An Interrupt is generated when the Normal Interrupt Signal
Enable is enabled and at least one of the status bits is set to logic ‘1’. For all bits except
Card Interrupt and Error Interrupt, writing logic ‘1’ to a bit clears it. The Card Interrupt is
cleared when the card stops asserting the interrupt: that is when the Card Driver services
the Interrupt condition.
Table 285. NIRQSTAT register bit assignments
Bit
Name
Reset
value
Type
Description
[15]
ERRINT
1’h0
ROC
If any of the bits in the Error Interrupt Status
Register are set, then this bit is set. Therefore the
HD can test for an error by checking this bit first.
1’b0 - No Error.
1’b1 - Error.
[14:09]
-
-
Rsvd
Reserved
ROC
Writing this bit to logic ‘1’ does not clear this bit. It is
cleared by resetting the SD card interrupt factor. In
1 bit mode, the HC shall detect the Card Interrupt
without SD Clock to support wakeup. In 4 bit mode,
the card interrupt signal is sampled during the
interrupt cycle, so there are some sample delays
between the interrupt signal from the card and the
interrupt to the Host system. When this status has
been set and the HD needs to start this interrupt
service, Card Interrupt Status Enable in the Normal
Interrupt Status register shall be set to logic ‘0’ in
order to clear the card interrupt statuses latched in
the HC and stop driving the Host System. After
completion of the card interrupt service (the reset
factor in the SD card and the interrupt signal may
not be asserted), set Card Interrupt Status Enable
to logic ‘1 ‘and start sampling the interrupt signal
again.
1’b0 - No Card Interrupt
1’b1 - Generate Card Interrupt
RW1C
This status is set if the Card Inserted in the Present
State register changes from 1 to 0. When the HD
writes this bit to logic ‘1’ to clear this status the
status of the Card Inserted in the Present State
register should be confirmed. Because the card
detect may possibly be changed when the HD clear
this bit an Interrupt event may not be generated.
1’b0 - Card State Stable or Debouncing
1’b1 - Card Removed
[08]
[07]
CDINT
CDRINT
1’h0
1’h0
Doc ID 022642 Rev 3
247/584
MMC-SD card/SDIO controller
RM0321
Table 285. NIRQSTAT register bit assignments (continued)
Bit
[06]
[05]
[04]
[03]
[02]
248/584
Name
CDIINT
BUFRDRDY
BUFWRRDY
DMAINT
BLKGAPE
Reset
value
1’h0
1’h0
1’h0
1’h0
1’h0
Type
Description
RW1C
This status is set if the Card Inserted in the Present
State register changes from 0 to 1. When the HD
writes this bit to logic ‘1’ to clear this
status the status of the Card Inserted in the Present
State register should be confirmed. Because the
card detect may possibly be changed when the HD
clear this bit an Interrupt event may not be
generated.
1’b0 - Card State Stable or Debouncing
1’b1 - Card Inserted
RW1C
This status is set if the Buffer Read Enable changes
from 0 to 1.
1’b0 - Not Ready to read Buffer.
1’b1 - Ready to read Buffer.
RW1C
This status is set if the Buffer Write Enable changes
from 0 to 1.
1’b0 - Not Ready to Write Buffer.
1’b1 - Ready to Write Buffer.
RW1C
This status is set if the HC detects the Host DMA
Buffer Boundary in the Block Size register.
1’b0 - No DMA Interrupt
1’b1 - DMA Interrupt is Generated
RW1C
If the Stop At Block Gap Request in the Block Gap
Control Register is set, this bit is set.
Read Transaction:
This bit is set at the falling edge of the DAT Line
Active Status (When the transaction is stopped at
SD Bus timing. The Read Wait must be supported
in order to use this function).
Write Transaction:
This bit is set at the falling edge of Write Transfer
Active Status (After getting CRC status at SD Bus
timing).
1’b0- No Block Gap Event
1’b1 - Transaction stopped at Block Gap
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 285. NIRQSTAT register bit assignments (continued)
Bit
[01]
[00]
Name
TRNCPL
CMDCPL
Reset
value
1’h0
1’h0
Type
Description
RW1C
This bit is set when a read / write transaction is
completed.
Read Transaction:
This bit is set at the falling edge of Read Transfer
Active Status. There are two cases in which the
Interrupt is generated. The first is when a data
transfer is completed as specified by data length
(After the last data has been read to the Host
System). The second is when data has stopped at
the block gap and completed the data transfer by
setting the Stop At Block Gap Request in the Block
Gap Control Register (After valid data has been
read to the Host System).
Write Transaction:
This bit is set at the falling edge of the DAT Line
Active Status. There are two cases in which the
Interrupt is generated. The first is when the last
data is written to the card as specified by data
length and Busy signal is released. The second is
when data transfers are stopped at the block gap by
setting Stop At Block Gap Request in the Block Gap
Control Register and data transfers completed.
(After valid data is written to the SD card and the
busy signal is released).
Transfer Complete has higher priority than Data
Time-out Error. If both bits are set to logic ‘1’, the
data transfer can be considered complete.
1’b0 - No Data Transfer Complete
1’b1 - Data Transfer Complete
RW1C
This bit is set when get the end bit of the command
response (Except Auto CMD12).
Command Time-out Error has higher priority than
Command Complete. If both are set to logic ‘1’, it
can be considered that the response was not
received correctly.
1’b0 - No Command Complete
1’b1 - Command Complete
Table 286. Relation between transfer complete and data time out error
Transfer complete
Command time out error
Meaning of the status
0
0
Interrupted by Another Factor.
0
1
Timeout occur during transfer.
1
Don’t care
Data Transfer Complete.
Doc ID 022642 Rev 3
249/584
MMC-SD card/SDIO controller
RM0321
Table 287. Relation between command complete and time out error
Command complete Command time out error Meaning of the status
12.2.18
0
0
Interrupted by Another Factor.
Don’t care
1
Response not received within 64 SDCLK cycles.
1
0
Response Received
ERRIRQSTAT register
Status defined in this register can be enabled by the Error Interrupt Status Enable Register,
but not by the Error Interrupt Signal Enable Register. The Interrupt is generated when the
Error Interrupt Signal Enable is enabled and a logic ‘t’ least one of the statuses is set to logic
‘1’. Writing to logic ‘1’ clears the bit and writing to 0 keeps the bit unchanged. More than one
status can be cleared at the one register write.
Table 288. ERRIRQSTAT register bit assignments
Name
[15:14]
VDSERRSTS 1’h0
[13]
CEATAERR
1’h0
Type
Description
RW1C
Vendor Specific Error Status
Additional status bits can be defined in this register
by the vendor.
RW1C
This occurs when ATA command termination has
occurred due to an error condition the device has
encountered.
1’b0 - no error
1’b1 - error
[12]
TGTRESERR 1’h0
RW1C
Target Response error
Occurs when detecting ERROR in m_hresp (dma
transaction)
1’b0 - no error
1’b1 - error
[11:10]
-
Rsvd
Reserved
RW1C
ADMA Error
This bit is set when the Host Controller detects
errors during ADMA based data transfer. The state
of the ADMA at an error occurrence is saved in the
ADMA Error Status Register.
1’b1- Error
1’b0 -No error
RW1C
Auto CMD12 Error
Occurs when detecting that one of the bits in
AutoCMD12 Error Status register has changed
from 0 to 1. This bit is set to logic ‘1’ also when Auto
CMD12 is not executed due to the previous
command error.
1’b0 - No Error
1’b1 - Error
[09]
[08]
250/584
Reset
value
Bit
ADMAERR
-
1’h0
ACMD12ERR 1’h0
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 288. ERRIRQSTAT register bit assignments (continued)
Bit
[07]
[06]
[05]
[04]
[03]
[02]
Name
CURLERR
DATAEBERR
Reset
value
1’h0
1’h0
DATACRCER
1’h0
R
DATATOERR
1’h0
CMDIDXERR 1’h0
CMDEBERR
1’h0
Type
Description
RW1C
Current Limit Error
By setting the SD Bus Power bit in the Power
Control Register, the HC is requested to supply
power for the SD Bus. If the HC supports the
Current Limit Function, it can be protected from an
Illegal card by stopping power supply to the card in
which case this bit indicates a failure status.
Reading logic ‘1’ means the HC is not supplying
power to SD card due to some failure. Reading
logic ‘0’ means that the HC is supplying power and
no error has occurred. This bit shall always set to
be logic ‘0’, if the HC does not support this function.
1’b0 - No Error
1’b1 - Power Fail
RW1C
Data End Bit Error
Occurs when detecting 0 at the end bit position of
read data which uses the DAT line or the end bit
position of the CRC status.
1’b0 - No Error
1’b1 - Error
RW1C
Data CRC Error
Occurs when detecting CRC error when
transferring read data which uses the DAT line or
when detecting the Write CRC Status having a
value of other than “010”.
1’b0 - No Error
1’b1 - Error
RW1C
Data Timeout Error
Occurs when detecting one of following timeout
conditions:
Busy Timeout for R1b, R5b type.
Busy Timeout after Write CRC status
Write CRC status Timeout
Read Data Timeout
1’b0 - No Error
1’b1 - Timeout
RW1C
Occurs if a Command Index error occurs in the
Command Response.
1’b0 - No Error
1’b1 - Error
RW1C
Occurs when detecting that the end bit of a
command response is 0.
1’b0 - No Error
1’b1 - End Bit Error Generated
Doc ID 022642 Rev 3
251/584
MMC-SD card/SDIO controller
RM0321
Table 288. ERRIRQSTAT register bit assignments (continued)
Bit
[01]
[00]
Name
CMDCRCER
R
CMDTOERR
Reset
value
1’h0
1’h0
Type
Description
RW1C
Command CRC Error is generated in two cases:
If a response is returned and the Command Timeout Error is set to logic ‘0’, this bit is set to logic ‘1’
when detecting a CRT error in the command
response.
The HC detects a CMD line conflict by monitoring
the CMD line when a command is issued. If the HC
drives the CMD line to logic ‘1’ level, but detects
logic ‘0’ level on the CMD line at the next SDCLK
edge, then the HC shall abort the command (Stop
driving CMD line) and set this bit to logic ‘1’. The
Command Timeout Error shall also be set to logic
‘1’ to distinguish CMD line conflict.
1’b0 - No Error
1’b1 - CRC Error Generated
RW1C
Occurs only if the no response is returned within 64
SDCLK cycles from the end bit of the command. If
the HC detects a CMD line conflict, in which case
Command CRC Error shall also be set. This bit
shall be set without waiting for 64 SDCLK cycles
because the command will be aborted by the HC.
1’b0 - No Error
1’b1 - Timeout
Table 289. Relation between command CRC error end time out error
12.2.19
CMDCRCERR
CMDTOERR
Kind of error
0
0
No Error
0
1
Response Timeout Error
1
0
Response CRC Error
1
1
CMD Line Conflict
NIRQSTATEN register
Table 290. NIRQSTATEN register bit assignments
252/584
Bit
Name
Reset
value
Type
Description
[15]
FIX0
1’h0
RO
The HC shall control error Interrupts using the Error
Interrupt Status Enable register.
[14:09]
-
-
Rsvd
Reserved
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 290. NIRQSTATEN register bit assignments (continued)
Bit
Name
Reset
value
Type
Description
If this bit is set to logic ‘0’, the HC shall clear
Interrupt request to the System. The Card Interrupt
detection is stopped when this bit is cleared and
restarted when this bit is set to logic ‘1’. The HD
should clear the Card Interrupt Status Enable
before servicing the Card Interrupt and should set
this bit again after all Interrupt requests from the
card are cleared to prevent inadvertent Interrupts.
1’b0 - Masked
1’b1 - Enabled
[08]
CDIRQSTSEN
1’h0
RW
[07]
CDRSTSEN
1’h0
RW
[06]
CDISTSEN
1’h0
RW
[05]
BUFRDRDYEN 1’h0
RW
[04]
BUFWRRDYE
N
1’h0
RW
[03]
DMAIRQSTSE
N
1’h0
RW
[02]
BLKGESTSEN
1’h0
RW
[01]
TRNFCSTSEN 1’h0
RW
[00]
CMDCSTSEN
RW
1’h0
1’b0 - Masked
1’b1 - Enabled
Note:
The host controller may sample the card Interrupt signal during interrupt period and may
hold its value in the flip-flop. If the Card Interrupt Status Enable is set to logic ‘0’, the HC
shall clear all internal signals regarding Card Interrupt.
12.2.20
ERRIRQSTATEN register
Table 291. ERRIRQSTATEN register bit assignments
Bit
Name
Reset value
Type
[15:14]
VDSERSTSEN
1’h0
RW1C
[13]
CEATAERSTSEN
1’h0
RW1C
[12]
TGTRESERSTSEN
1’h0
RW1C
[11:10]
-
-
Rsvd
Doc ID 022642 Rev 3
Description
1’b0 - Masked
1’b1 - Enabled
Reserved
253/584
MMC-SD card/SDIO controller
RM0321
Table 291. ERRIRQSTATEN register bit assignments (continued)
12.2.21
Bit
Name
Reset value
[09]
ADMAERSTSEN
[08]
ACMD12ERSTSEN
[07]
CURLERSTSEN
[06]
DATAEBSTSEN
[05]
DATACRCERSTSEN
[04]
DATATOERSTSEN
[03]
CMDIDXERSTSEN
[02]
CMDEBERSTSEN
[01]
CMDCRCERSTSEN
[00]
CMDTOERSTSEN
Type
Description
1’b0 - Masked
1’b1 - Enabled
NIRQSIGEN register
Table 292. NIRQSIGEN register bit assignments
12.2.22
Bit
Name
Reset value Type
Description
[15]
FIX0
1’h0
RO
The HD shall control error Interrupts using the
Error Interrupt Signal Enable register.
[14:09]
-
-
Rsvd
Reserved
[08]
CDSIGEN
1’h0
RW
[07]
CDRSIGEN
1’h0
RW
[06]
CDISIGEN
1’h0
RW
[05]
BFRDRDYSIGEN
1’h0
RW
[04]
BFWRRDYSIGEN
1’h0
RW
[03]
DMAIRQSIGEN
1’h0
RW
[02]
BLKGESIGEN
1’h0
RW
[01]
TRFCPLSIGEN
1’h0
RW
[00]
CMDCPLSIGEN
1’h0
RW
1’b0 - Masked
1’b1 - Enabled
ERRIRQSIGEN register
Table 293. ERRIRQSIGEN register bit assignments
254/584
Bit
Name
Reset value
Type
[15:14]
VDSERSIGEN
1’h0
RW1C
[13]
CEATAERSIGEN
1’h0
RW1C
[12]
TGTRESERSIGEN
1’h0
RW1C
[11:10]
-
-
Rsvd
Doc ID 022642 Rev 3
Description
1’b0 - Masked
1’b1 - Enabled
Reserved
RM0321
MMC-SD card/SDIO controller
Table 293. ERRIRQSIGEN register bit assignments (continued)
12.2.23
Bit
Name
Reset value
[09]
ADMAERSIGEN
[08]
ACMD12ERSIGEN
[07]
CURLERSIGEN
[06]
DATAEBSIGEN
[05]
DATACRCERSIGEN
[04]
DATATOERSIGEN
[03]
CMDIDXERSIGEN
[02]
CMDEBERSIGEN
[01]
CMDCRCERSIGEN
[00]
CMDTOERSIGEN
Type
Description
1’b0 - Masked
1’b1 - Enabled
ACMD12ERSTS register
When Auto CMD12 Error Status is set, the HD shall check this register to identify what kind
of error Auto CMD12 indicated. This register is valid only when the Auto CMD12 Error is set.
Table 294. ACMD12ERSTS register bit assignments
Bit
Name
Reset value Type
Description
[15:08]
-
-
Rsvd
Reserved
[07]
CMDNIER
1’h0
ROC
This bit is set when the CMD_wo_DAT is not
executed due to an Auto CMD12 error (bit 4:1)
in this register.
1’b0 - No Error
1’b1 - Not Issued
[06:05]
-
-
Rsvd
Reserved
ROC
Occurs if the Command Index error occurs in
response to a command.
1’b0 - No Error
1’b1 - Error
ROC
Occurs when detecting that the end bit of
command response is logic ‘0’.
1’b0 - No Error
1’b1 - End Bit Error Generated
ROC
Occurs when detecting a CRC error in the
command response.
1’b0 - No Error
1’b1 - CRC Error Generated
[04]
[03]
[02]
ACMD12IDXER
ACMD12EBER
ACMD12CRCER
1’h0
1’h0
1’h0
Doc ID 022642 Rev 3
255/584
MMC-SD card/SDIO controller
RM0321
Table 294. ACMD12ERSTS register bit assignments (continued)
Bit
Name
[01]
ACMD12TOER
[00]
ACMD12NEX
Reset value Type
Description
1’h0
ROC
Occurs if the no response is returned. within 64
SDCLK cycles from the end bit of the
command. If this bit is set to logic ‘1’, the other
error status bits (bit 4:2) are meaningless.
1’b0 - No Error
1’b1 - Timeout
ROC
If memory multiple block data transfer is not
started due to command error, this bit is not set
because it is not necessary to issue Auto
CMD12. Setting this bit to logic ‘1’ means the
HC cannot issue Auto CMD12 to stop memory
multiple block transfer due to some error. If this
bit is set to logic ‘1’, other error status bits (4:1)
are meaningless.
1’b0 - Executed
1’b1 - Not Executed
1’h0
Table 295. Relation between auto CMD12 CRC error and auto CMD12 timeout error
ACMD12CRCER
ACMD12TOER
Kind of error
0
0
No Error
0
1
Response Timeout Error
1
0
Response CRC Error
1
1
CMD Line Conflict
The timing of changing Auto CMD12 Error Status can be classified in three scenarios:
●
●
●
256/584
When the HC is going to issue Auto CMD12.
–
Set bit 0 to 1 if Auto CMD12 cannot be issued due to an error in the previous
command.
–
Set bit 0 to 0 if Auto CMD12 is issued.
At the end bit of Auto CMD12 response.
–
Check received responses by checking the error bits 1, 2, 3, 4.
–
Set to 1 if Error is detected.
–
Set to 0 if Error is Not Detected.
Before reading the Auto CMD12 Error Status bit 7
–
Set bit 7 to 1 if there is a command cannot be issued.
–
Set bit 7 to 0 if there is no command to issue.
–
Timing of generating the Auto CMD12 Error and writing to the Command register
are Asynchronous.
–
Then bit 7 shall be sampled when driver never writing to the Command register.
So just before reading the Auto CMD12 Error Status register is good timing to set
the bit 7 status bit.
Doc ID 022642 Rev 3
RM0321
12.2.24
MMC-SD card/SDIO controller
CAP1 register
Table 296. CAP1 register bit assignments
Bit
Name
Reset
value
Type
Description
[31]
-
-
Rsvd
Reserved
[30]
SPIBLKMODE 1’h1
Hwinit
SPI block mode
1’b0 - Not Supported
1’b1 - Supported
[29]
SPIMODE
1’h1
Hwinit
SPI mode
1’b0 - Not Supported
1’b1 - Supported
[28]
64BITSUPP
1’h0
Hwinit
1’b1 - supports 64 bit system address
1’b0 - Does not support 64 bit system address
[27]
IRQMODE
1’h1
Hwinit
Interrupt mode
1’b0 - Not Supported
1’b1 - Supported
[26]
V18SUPP
1’h0
Hwinit
1’b0 - 1.8 V Not Supported
1’b1 - 1.8 V Supported
[25]
V30SUPP
1’h0
Hwinit
1’b0 - 3.0 V Not Supported
1’b1 - 3.0 V Supported
[24]
V33SUPP
1’h1
Hwinit
1’b0 - 3.3 V Not Supported
1’b1 - 3.3 V Supported
Hwinit
This bit indicates whether the HC supports
Suspend / Resume functionality. If this bit is logic
‘0’, the Suspend and Resume mechanism are not
supported and the HD shall not issue either
Suspend / Resume commands.
1’b0 - Not Supported
1’b1 - Supported
Hwinit
This bit indicates whether the HC is capable of
using DMA to transfer data between system
memory and the HC directly.
1’b0 - SDMA Not Supported
1’b1 - SDMA Supported.
[23]
[22]
SUSRESSUP
P
SDMASUPP
1’h1
1’h1
[21]
HSSUPP
1’h1
Hwinit
This bit indicates whether the HC and the Host
System support High Speed mode and they can
supply SD Clock frequency from 25 MHz to 50
MHz.
1’b0 - High Speed Not Supported
1’b1 - High Speed Supported
[20]
-
-
Rsvd
Reserved
[19]
ADMA2SUPP
1’h1
Hwinit
1’b1 - ADMA2 support.
1’b0 - ADMA2 not support
Doc ID 022642 Rev 3
257/584
MMC-SD card/SDIO controller
RM0321
Table 296. CAP1 register bit assignments (continued)
Bit
Name
[18]
EXTMDBSUP
P
1’h1
Type
Description
Hwinit
This bit indicates whether the Host Controller is
capable bus.
1’b1 - Extended Media Bus Supported
1’b0 - Extended Media Bus not Supported
[17:16]
MAXBLKLEN
2’h3
Hwinit
This value indicates the maximum block size that
the HD can read and write to the buffer in the HC.
The buffer shall transfer this block size without wait
cycles. Three sizes can be defined as indicated
below.
2’b00 - 512 byte
2’b01 - 1024 byte
2’b10 - 2048 byte
2’b11 - 4096 byte
[15:14]
-
-
Rsvd
Reserved
Hwinit
This value indicates the base (maximum) clock
frequency for the SD clock. Unit values are 1 MHz.
If the real frequency is 16.5 MHz, the larger value
shall be set 0x11 (17 MHz) because the HD uses
this value to calculate the clock divider value and it
shall not exceed the upper limit of the SD clock
frequency. The supported range is 10 MHz to 63
MHz. If these bits are all 0, the Host System has to
get information via another method.
Not 0 - 1 MHz to 63 MHz
0x00 - Get information via another method.
[13:08]
BCLKFREQ
6’h30
[07]
TOCLKU
1’h1
Hwinit
This bit shows the unit of base clock frequency
used to detect Data Timeout Error.
1’b0 - kHz
1’b1 - MHz
[06]
-
-
Rsvd
Reserved
Hwinit
This bit shows the base clock frequency used to
detect Data Timeout Error.
Not 0 - 1 kHz to 63 kHz or
1 MHz to 63 MHz
0x00- Get Information via another method.
[05:00]
12.2.25
Reset
value
TOCLKFREQ
6’h30
CAP2 register
Table 297. CAP2 register bit assignments
258/584
Bit
Name
Reset
value
Type
Description
[31:00]
-
-
Rsvd
Reserved
Doc ID 022642 Rev 3
RM0321
12.2.26
MMC-SD card/SDIO controller
MAXCURR1 register
Table 298. MAXCURR1 register bit assignments
12.2.27
Bit
Name
Reset
value
Type
Description
[31:24]
-
-
Rsvd
Reserved
[23:16]
MAX18CURR 8’h00
Hwinit
Maximum current for 1.8V card. (See Table 300)
[15:08]
MAX30CURR 8’h00
Hwinit
Maximum current for 3.0V card. (See Table 300)
[07:00]
MAX33CURR 8’h01
Hwinit
Maximum current for 3.3V card. (See Table 300)
MAXCURR2 register
Table 299. MAXCURR2 register bit assignments
Bit
Name
Reset
value
Type
Description
[31:00]
-
-
Rsvd
Reserved
Table 300. Maximum current value definition
12.2.28
Register value (decimal)
Current value
0
Get information through another method
1
4 mA
2
8 mA
3
12 mA
---
---
---
---
255
1020 mA
ACMD12FEERSTS register
The Force Event Register is not a physically implemented register. Rather, it is an address
at which the Auto CMD12 Error Status Register can be written.
Writing logic ‘1’: set each bit of the Auto CMD12 Error Status Register
Writing logic ‘0’: no effect.
Table 301. ACMD12FEERSTS register bit assignments
Bit
Name
Reset
value
Type
Description
[15:08]
-
-
Rsvd
Reserved
Doc ID 022642 Rev 3
259/584
MMC-SD card/SDIO controller
RM0321
Table 301. ACMD12FEERSTS register bit assignments (continued)
Bit
12.2.29
Name
Reset
value
Type
Description
[07]
FECMDNI
1’h0
WO
Force Event for command not issued by Auto
CMD12 Error
1’b1 - Interrupt is generated
1’b0 - no interrupt
[06:05]
-
-
Rsvd
Reserved
[04]
FEACMDIDX
1’h0
WO
Force Event for Auto CMD12 Index Error
1’b1 - Interrupt is generated
1’b0 - no interrupt
[03]
FEACMDEB
1’h0
WO
Force Event for Auto CMD12 End bit Error.
1’b1 - Interrupt is generated
1’b0 - no interrupt
[02]
FEACMDCR
C
1’h0
WO
Force Event for Auto CMD12 CRC Error.
1’b1 - Interrupt is generated
1’b0 - no interrupt
[01]
FEACMDTO
1’h0
WO
Force Event for Auto CMD12 timeout Error.
1’b1 - Interrupt is generated
1’b0 - no interrupt
[00]
FEACMDNE
1’h0
WO
Force Event for Auto CMD12 NOT Executed.
1’b1 - Interrupt is generated
1’b0 - no interrupt
FEERRINTSTS register
The Force Event Register is not a physically implemented register. Rather, it is an address
at which the Error Interrupt Status register can be written. The effect of a write to this
address will be reflected in the Error Interrupt Status Register if the corresponding bit of the
Error Interrupt Status Enable Register is set.
Writing logic ‘1’: set each bit of the Error Interrupt Status Register
Writing logic ‘0’: no effect
Table 302. FEERRINTSTS register bit assignments
Bit
[15:14]
[13]
260/584
Name
FEVSERSTS
FECEATAER
Reset
value
2’h0
1’h0
Type
Description
WO
Force Event for Vendor Specific Error Status
Additional status bits can be defined in this
register by the vendor.
1’b1 - Interrupt is generated
1’b0 - No interrupt
WO
Force Event for Current Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
Doc ID 022642 Rev 3
RM0321
MMC-SD card/SDIO controller
Table 302. FEERRINTSTS register bit assignments (continued)
12.2.30
Bit
Name
Reset
value
Type
Description
[12]
FETRER
1’h0
WO
Force Event for Target Response Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[11:10]
-
-
Rsvd
Reserved
[09]
FEADMAER
1’h0
WO
Force Event for ADMA Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[08]
FEACMD12ER
1’h0
WO
Force Event for Auto CMD12 Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[07]
FECLER
1’h0
WO
Force Event for Current Limit Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[06]
FEDATAEBER
1’h0
WO
Force Event for Data End Bit Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[05]
FEDATACRCE
R
1’h0
WO
Force Event for Data CRC Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[04]
FEDATATOER
1’h0
WO
Force Event for Data Timeout Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[03]
FECMDIDXER
1’h0
WO
Force Event for Command Index Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[02]
FECMDEBER
1’h0
WO
Force Event for Command End Bit Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[01]
FECMDCRCE
R
1’h0
WO
Force Event for Command CRC Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
[00]
FECMDTOER
1’h0
WO
Force Event for Command Timeout Error
1’b1 - Interrupt is generated
1’b0 - No interrupt
ADMAERRSTS register
When ADMA Error Interrupt occurs, the ADMA Error States field in this register holds the
ADMA state and the ADMA System Address Register holds the address around the error
descriptor.
Doc ID 022642 Rev 3
261/584
MMC-SD card/SDIO controller
RM0321
Table 303. ADMAERRSTS register bit assignments
Bit
Name
Reset
value
Type
Description
[07:03]
-
-
Rsvd
Reserved
RW
ADMA Length Mismatch Error
This error occurs in the following 2 cases.
While Block Count Enable being set, the total data
length specified by the Descriptor table is different
from that specified by the Block Count and Block
Length.
Total data length can not be divided by the block
length.
1’b1 - Error
1’b0 - No error
RW
ADMA Error State
This field indicates the state of ADMA when error is
occurred during ADMA data transfer. This field
never indicates “10” because ADMA never stops in
this state.
Table 304 define these bits.
[02]
[01:00]
ADMALMER
ADMAERSTS
1’h0
2’h0
Table 304. ADMAERRSTS bits[1:0] definition
262/584
Bits[1:0]
ADMA Error State when error has
occurred
Contents of SYS_SDR register
00
ST_STOP (Stop DMA)
Points next of the error descriptor
01
ST_FDS (Fetch Descriptor)
Points the error descriptor
10
Never set this state
(Not used)
11
ST_TFR (Transfer Data)
Points the next of the error descriptor
Doc ID 022642 Rev 3
RM0321
12.2.31
MMC-SD card/SDIO controller
ADMAADDR1/ADMAADDR2 registers
Table 305. ADMAADDR register bit assignments
Bit
[63:00]
Name
ADMASYSADDR
Reset
value
64’h0
Type
Description
RW
This register holds byte address of executing
command of the Descriptor table. 32 bit Address
Descriptor uses lower 32 bit of this register. At the
start of ADMA, the Host Driver shall set start
address of the Descriptor table. The ADMA
increments this register address, which points to
next line, when every fetching a Descriptor line.
When the ADMA Error Interrupt is generated, this
register shall hold valid Descriptor address
depending on the ADMA state. The Host Driver
shall program Descriptor Table on 32 bit boundary
and set 32 bit boundary address to this register.
ADMA2 ignores lower 2 bit of this register and
assumes it to be 2’b00. See Table 306 and
Table 307 to have more details.
Table 306. 32-bit address ADMA
ADMAADDR register value
32-bit system address
0x0000_0000
0x0000_0000
0x0000_0004
0x0000_0004
0x0000_0008
0x0000_0008
0x0000_000C
0x0000_000C
……
……
0xFFFF_FFFC
0xFFFF_FFFC
Table 307. 64-bit address ADMA
ADMAADDR register value
64-bit system address
0x0000_0000_0000_0000
0x0000_0000_0000_0000
0x0000_0000_0000_0004
0x0000_0000_0000_0004
0x0000_0000_0000_0008
0x0000_0000_0000_0008
0x0000_0000_0000_000C
0x0000_0000_0000_000C
……
……
0xFFFF_FFFF_FFFF_FFFC
0xFFFF_FFFF_FFFF_FFFC
Doc ID 022642 Rev 3
263/584
MMC-SD card/SDIO controller
12.2.32
RM0321
SPIIRQSUPP register
Table 308. SPIIRQSUPP register bit assignments
Bit
[07:00]
12.2.33
Name
Reset
value
SPIIRQSUPP 8’h00
Type
Description
RW
This bit is set to indicate the assertion of interrupts
in the SPI mode at any time, irrespective of the
status of the card select (CS) line. If this bit is zero,
then SDIO card can only assert the interrupt line in
the SPI mode when the CS line is asserted.
SLTIRQSTS register
Table 309. SLTIRQSTS register bit assignments
Bit
Name
Reset
value
Type
Description
[15:08]
-
-
Rsvd
Reserved
ROC
These status bit indicate the logical OR of Interrupt
signal and Wakeup signal for each slot. A maximum
of 8 slots can be defined. If one interrupt signal is
associated with multiple slots. the HD can know
which interrupt is generated by reading these status
bits. By a power on reset or by Software Reset For
All, the Interrupt signal shall be de asserted and
this status shall read 00h.
Bit 00 - Slot 1
Bit 01 - Slot 2
Bit 02 - Slot 3
----- ----Bit 07 - Slot 8
[07:00]
12.2.34
SLTIRQSIG
8’h00
HCTRLVER register
Table 310. HCTRLVER register bit assignments
Bit
Name
Reset
value
Type
Description
[15:08]
VVN
8’h69
Hwinit
This status is reserved for the vendor version
number. The HD should not use this status. This
represents Host Controller IP release version.
Hwinit
This Status indicates the Host Controller Spec
Version. The Upper and Lower 4 bits indicate the
version.
00 - SD Host Specification version 1.0
01 - SD Host Specification version 2.00 including
only the feature of the Test Register.
02 - SD Host Specification version 2.00 including
the feature of the Test Register and ADMA
[07:00]
264/584
SVN
8’h02
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
13
Controller area network ports (CAN)
13.1
Register summary
The CAN module allocates an address space of 256 bytes. The registers are organised as
16-bits registers, with the high byte at the odd and the low byte at the even address.
The two sets of interface registers (IF1 and IF2) control the CPU access to the message
RAM. They buffer the data to be transferred to and from the RAM, avoiding conflicts
between CPU accesses and message reception/transmission.
Table 311. CAN register summary
Address
Name
Reset value
Note
CAN Base + 0x00
CAN Control Register
16’h0001
CAN Base + 0x04
Status Register
16’h0000
CAN Base + 0x08
Error Counter
16’h0000
Read only
CAN Base + 0x0C
Bit Timing Register
16’h2301
Write enabled by CCE
CAN Base + 0x10
Interrupt Register
16’h0000
Read only
CAN Base + 0x14
Test Register
8’h00 and
8’br0000000(1)
Write enabled by test
CAN Base + 0x18
BRP Extension Register
16’h0000
Write enabled by CCE
(2)
CAN Base + 0x1C
Reserved
-
CAN Base + 0x20
IF1 Command Request
16’h0001
CAN Base + 0x24
IF1 Command Mask
16’h0000
CAN Base + 0x28
IF1 Mask 1
16’hFFFF
CAN Base + 0x2C
IF1 Mask 2
16’hFFFF
CAN Base + 0x30
IF1 Arbitration 1
16’h0000
CAN Base + 0x34
IF1 Arbitration 2
16’h0000
CAN Base + 0x38
IF1 Message Control
16’h0000
CAN Base + 0x3C
IF1 Data A 1
16’h0000
CAN Base + 0x40
IF1 Data A 2
16’h0000
CAN Base + 0x44
IF1 Data B 1
16’h0000
CAN Base + 0x48
IF1 Data B 2
16’h0000
CAN Base + 0x4C - 0x7C
Reserved
- (2)
CAN Base + 0x80 - 0xA8
IF2 Registers
- (3)
CAN Base + 0xAC - 0xFC
Reserved
- (2)
CAN Base + 0x100
Transmission Request
16’h0000
read only
CAN Base + 0x104
Transmission Request 2
16’h0000
read only
(2)
CAN Base + 0x108 - 0x11C
Reserved
-
CAN Base + 0x120
New Data 1
16’h0000
Doc ID 022642 Rev 3
Same as IF1 Registers
Read only
265/584
Controller area network ports (CAN)
RM0321
Table 311. CAN register summary (continued)
Address
Name
Reset value
Note
CAN Base + 0x124
New Data 2
16’h0000
Read only
CAN Base + 0x128 - 0x13C
Reserved
- (2)
CAN Base + 0x140
Interrupt Pending 1
16’h0000
Read only
CAN Base + 0x144
Interrupt Pending 2
16’h0000
Read only
(2)
CAN Base + 0x148 - 0x15C
Reserved
-
CAN Base + 0x160
Message Valid 1
16’h0000
Read only
CAN Base + 0x164
Message Valid 2
16’h0000
Read only
CAN Base + 0x168 - 0x17C
Reserved
-
(2)
1. r signifies the actual value of the CAN_RX pin
2. Reserved bits are read as ‘0’ except for IFx Mask 2 Register where they as read as ‘1’
3. The two sets of Message Interface Registers - IF1 and IF2 - have Identical functions.
13.2
Register description
13.2.1
Hardware reset description
After hardware reset, the CAN registers hold the value given in Table 311: CAN register
summary.
Additionally, the busoff state is reset and the output CAN_TX is set to recessive (HIGH). The
value 0x0001 (Init = ‘1’) in the CAN Control Register enables the software initialisation. the
CAN does not influence the CAN bus until the CPU resets Init to ‘0’.
The data store in the message RAM is not affected by a hardware reset. After power-on, the
contents of the message RAM is undefined.
13.2.2
CAN protocol related register
These registers are related to the CAN protocol controller in the CAN Core. They control the
operating modes and the configuration of the CAN bit timing and provide status information.
CAN control register (0x00)
Table 312. CAN control register (0x00)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
res
res
res
res
res
res
res
res
Test
CCE
DAR
res
EIE
SIE
IE
Init
r
r
r
r
r
r
r
r
rw
rw
rw
r
rw
rw
rw
rw
Test Mode Enable
Test
266/584
1’b1
Test Mode.
1’b0
Normal Operation.
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Configuration Change Enable
CCE
1’b1
The CPU has write access to the Bit Timing Register (while Init = one)
1’b0
The CPU has no write access to the Bit Timing Register.
Disable Automatic Retransmission
DAR
1’b1
Automatic Retransmission disabled.
1’b0
Automatic Retransmission of disturbed messages enabled.
Error Interrupt Enable
EIE
1’b1
Enabled- A change in the bits BOFF or EWarn in the Status Register will
generate an interrupt
1’b0
Disable- No Status Change Interrupt will be generated.
Status Change Interrupt Enable
SIE
1’b1
Enabled- An interrupt will be generated when a message transfer is successfully
completed or a CAN bus error is detected.
1’b0
Disabled- No Status Change Interrupt will be generated.
Module Interrupt Enable
IE
1’b1
Enabled-Interrupt will set IRQ_B to LOW. IRQ_B remains LOW until all pending
interrupts are processed.
1’b0
Disabled- Module Interrupt IRQ_B is always HIGH.
Initialization
Init
Note:
1’b1
Initialization is started.
1’b0
Normal Operation.
The Busoff recovery sequence (see CAN Specification Rev. 2.0) cannot be shortened by
setting or resetting Init. If the device goes busoff, it will set Init of its own accord, stopping all
bus activities. Once Init has been cleared by the CPU, the device will then wait for 129
occurance of Bus idle (129 * 11 consecutive recessive bits) before resuming normal
operations. At the end of the busoff recovery sequence, the Error Management Counters
will be reset.
During the waiting time after the resetting of Init, each time a sequence of 11 recessive bits
has been monitored, a Bit0Error code is written to the Status Register, enabling the CPU to
readily check up whether the CAN bus is stuck at dominant or continuously disturbed and to
monitor the proceeding of the busoff recovery sequence.
Doc ID 022642 Rev 3
267/584
Controller area network ports (CAN)
RM0321
Status register (0x04)
Table 313. Status register (0x04)
15
14
13
12
11
10
9
8
7
6
5
4
3
2-0
res
res
res
res
res
res
res
res
BOFF
EWarn
EPass
RxOk
TxOk
LEC
r
r
r
r
r
r
r
r
r
r
r
rw
rw
rw
Busoff Status
BOff
1’b1
The CAN module is in busoff state.
1’b0
The CAN module is not busoff.
Warning Status
EWArn
1’b1
At least one of the error counters in the EML has reached the error warning
limit of 96.
1’b0
Both error counters are below the error warning limit of 96.
Error Passive
EPass
1’b1
The CAN Core is in the error passive state as defined in the CAN
specification.
1’b0
The CAN Core is error active.
Received a message successfully
RxOk
1’b1
Since this bit was last reset (to zero) by the CPU, a message has been
successfully received (independent of the result of acceptance filtering).
1’b0
Since this bit was last reset by the CPU, no message has been successfully
received. This bit is never reset by the CAN Core.
Transmitted a message successfully
TxOk
268/584
1’b1
Since this bit was last reset by the CPU, a message has been successfully
(error free and acknowledged by at least one other node) transmitted.
1’b0
Since this bit was reset by the CPU, no message has been successfully
transmitted. This bit is never reset by the CAN Core.
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Last Error Code
3’b000
No Error
3’b001
Stuff Error: More than 5 equal bits in a sequence have occured in a part of a
received message where this is not allowed.
3’b010
Form Error: A fixed format part of a received frame has the wrong format.
3’b011
AckError: The message this CAN Core transmitted was not acknowledged by
another node.
3’b100
Bit1Error: During the transmission of a message (with the exception of the
arbitration field), the device wanted to send a recessive level (bit of logical
value ‘1’), but the monitored bus value was dominant.
3’b101
Bit0Error: During the transmission of a message (or acknowledge bit,or active
error flag, or overload flag), the device wanted to send a dominant level (data
or identifier bit logical value ‘0’), but the monitored bus value was recessive.
During busoff recovery this status is set each time a sequence of 11
recessive bits has been monitored. This enables the CPU to monitor the
proceeding of the busoff recovery sequence (indicating the bus is not stuck at
dominant or continuously disturbed).
3’b110
CRCError: The CRC check sum was incorrect in the message received, the
CRC received for an incoming message does not match with the calculated
CRC for the received data.
3’b111
unused: When the LEC shows the value ‘7’, no CAN bus event was detected
since the CPU wrote this value to the LEC.
LEC
The LEC field holds a code which indicates the type of the last error to occur on the CAN
bus. This field will be cleared to ‘0’ when a message has been transferred (reception or
transmission) without error. The unused code ‘7’ may be written by the CPU to check for
updates.
Status interrupts
A Status Interrupt is generated by bits BOff and EWarn (Error Interrupt) or by RxOk, TxOk,
and LEC (Status Change Interrupt) assumed that the corresponding enable bits in the CAN
Control Register are set. A change of bit EPass or a write to RxOk, TxOk or LEC will never
generate a Status Interrupt.
Reading the Status Register will clear the Status Interrupt value (8000h) in the Interrupt
Register, if it is pending.
Error counter (0x08)
Table 314. Error counter (0x08)
15
14
13
RP
12
11
10
9
8
7
6
REC6-0
5
4
3
2
1
0
TEC7-0
Receive Error Passive
RP
1’b1
The Receive Error Counter has reached the error passive level as defined
in the CAN specification.
1’b0
The Receive Error Counter is below the error passive level.
Doc ID 022642 Rev 3
269/584
Controller area network ports (CAN)
RM0321
Receive Error Counter
REC6-0
Actual state of the Receive Error Counter. Values between 0 and 127.
Transmit Error Counter
TEC7-0
Actual State of the Transmit Error Counter. Values between 0 and 255.
Bit Timing Register (0x0C)
Table 315. Bit Timing Register (0x0C)
15
14
res
r
13
12
11
10
9
8
7
6
5
4
3
2
TSeg2
TSeg1
SJW
BRP
rw
rw
rw
rw
1
0
The time segment before the sample point
TSeg1
0x01-0x0F
Valid values for TSeg1 are [1...15]. The actual interpretation by the
hardware of this value is such that one more that the value programmed
here is used.
The time segment before the sample point
TSeg2
0x0-0x7
Valid values for TSeg2 are [0...7]. The actual interpretation by the
hardware of this value is such that one more that the value programmed
here is used.
(Re)Synchronisation Jump Width
SJW
0x0-0x3
Valid programmed values are [0...3]. The actual interpretation by the
hardware of this value is such that one more that the value programmed
here is used
Baud Rate Prescaler
BRP
0x01-0x3F
The value by which the oscillator frequency is divided for generating the
bit time quanta. The bit time is built up from a mutiple of this quanta. Valid
values for the Baud Rate Prescaler are [0.....63]. The actual interpretation
by the hardware of this value is such that one more than the value
programmed here is used.
Note: With a module clock CAN_CLK of 8MHz, the reset value of 0x2301 configures the CAN for a
bit of 500 kBits. The registers are only writable if bits CCE and Init in the CAN Control
Register are set.
270/584
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Test register (0x14)
Table 316. Test register (0x14)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
res
res
res
res
res
res
res
res
Rx
Tx1
Tx0
LBack
Silent
Basic
res
res
r
r
r
r
r
r
r
r
r
rw
rw
rw
rw
rw
r
r
Monitors the actual value of the CAN_RX Pin
Rx
1’b1
The CAN bus is recessive (CAN_RX = ‘1’).
1’b0
The CAN bus is dominant (CAN_RX = ‘0’)
Control of CAN_TX pin
Tx1-0
00
Reset value, CAN_TX is controlled by the CAN Core.
01
Sample Point can be monitored at CAN_TX pin.
10
CAN_TX pin drives a dominant (‘0’) value.
11
CAN_TX pin drives a recessive (‘1’) value.
Loop Back Mode
LBack
1’b1
Loop Back Mode is enabled.
1’b0
Loop Back Mode is disabled.
Silent Mode
Silent
1’b1
The module is in Silent Mode.
1’b0
Normal operation
Basic Mode
Basic
1’b1
IF1 Registers used as Tx Buffer, IF2 Registers used as Rx Buffer.
1’b0
Basic Mode disabled.
Write access to the Test Register is enabled by setting bit Test in the CAN Control Register.
The different test functions may be combined, but Tx1-0 =/= “00” disturbs message transfer.
BRP extension register (0x18)
Table 317. BRP extension register (0x18)
15
14
13
12
11
10
9
8
7
6
5
4
3-0
res
res
res
res
res
res
res
res
res
res
res
res
BRPE
r
r
r
r
r
r
r
r
r
r
r
r
rw
Baud Rate Prescaler Extension
BRPE
0x00-0x0F
By programming BRPE the Baud Rate Prescaler can be extended to
values up to 1023. The actual interpretation by the hardware is that one
more than the value programmed by BRPE (MSBs_ and BRP (LSBs) is
used.
Doc ID 022642 Rev 3
271/584
Controller area network ports (CAN)
13.2.3
RM0321
Message interface register sets (IF1/IF2)
There are two sets of interface registers which are used to control the CPU access to the
message RAM. The interface registers avoid conflicts between CPU access to the message
RAM and CAN message reception and transmission by buffering the data to be transferred.
A complete message object or parts of the message object may be transferred between the
message RAM and the IFx message buffer registers in one single transfer.
The function of the two interface register sets is identical (except for test mode Basic). They
can be used the way that one set of registers is used for data transfer to the message RAM
while the other set of registers is used for the data transfer from the message RAM, allowing
both processes to be interrupted by each other. Table 318 gives an overview of the two
interface register sets.
Each set of interface registers consists of message buffer registers controlled by their own
command registers. the command mask register specifies the direction of the data transfer
and which parts of a message object will be transferred. The command request register is
used to select a message object in the message RAM as target or source for the transfer
and to start the action specified in the command mask register.
Table 318. IF1 and IF2 message interface register sets
13.2.4
Address
IF1 Register Set
Address
IF2 Register Set
CAN Base + 0x20
IF1 Command Request
CAN Base + 0x80
IF2 Command Request
CAN Base + 0x24
IF1 Command Mask
CAN Base + 0x84
IF2 Command Mask
CAN Base + 0x28
IF1 Mask 1
CAN Base + 0x88
IF2 Mask 1
CAN Base + 0x2C
IF1 Mask 2
CAN Base + 0x8C
IF2 Mask 2
CAN Base + 0x30
IF1 Arbitration 1
CAN Base + 0x90
IF2 Arbitration 1
CAN Base + 0x34
IF1 Arbitration 2
CAN Base + 0x94
IF2 Arbitration 2
CAN Base + 0x38
IF1 Message Control
CAN Base + 0x98
IF2 Message Control
CAN Base + 0x3C
IF1 Data A1
CAN Base + 0x9C
IF2 Data A1
CAN Base + 0x40
IF1 Data A2
CAN Base + 0xA0
IF2 Data A2
CAN Base + 0x44
IF1 Data B1
CAN Base + 0xA4
IF2 Data B1
CAN Base + 0x48
IF1 Data B2
CAN Base + 0xA8
IF2 Data B2
IFx command request registers
A message transfer is started as soon as the CPU has written the message number to the
command request register. With this write operation, the busy bit is automatically set to ‘1’
and signal CAN_WAIT_B is pulled LOW to notify the CPU that a transfer is in progress. After
a wait time of 3 to 6 CAN_CLK periods, the transfer between the Interface Register and the
message RAM has completed. The busy bit is set back to zero and CAN_WAIT_B is set
back to HIGH.
Table 319. IFx command request registers
IF1 Command
Request Register
(0x20)
272/584
15
14
13
12
11
10
9
8
7
6
5
Busy
res
res
res
res
res
res
res
res
res
Message Number
Doc ID 022642 Rev 3
4
3
2
1
0
RM0321
Controller area network ports (CAN)
Table 319. IFx command request registers
IF2 Command
Request Register
(0x80)
Busy
res
res
res
res
res
res
res
res
res
Message Number
r
r
r
r
r
r
r
r
r
r
rw
Busy Flag
Busy
Message
Number
1’b1
set to one when writing to the IFx Command Request Register
1’b0
reset to zero when read/write action has finished
0x010x020
Valid Message Number, the message object in the message RAM is selected
for data transfer.
0x00
Not a valid Message Number, interpreted as 0x20.
0x210x3F
Not a valid Message Number, interpreted as 0x01-0x01F.
Note:
When a Message Number that is not valid is written into the command request register, the
message number will be transformed into a valid value and that message object will be
transferred.
13.2.5
IFx command mask register
The control bits of the IFx command mask register specify the transfer direction and select
which of the IFx Message Buffer Registers are source or target of the data transfer.
Table 320. IFx command mask register
IF2
Command
Mask
Register
(0x24)
IF2
Command
Mask
Register
(0x84)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
res
WR/R
Mask
D
Arb
Control
ClrInt
Pad
TxRqst/
Data A Data B
New Dat
res
WR/R
Mask
D
Arb
Control
ClrInt
Pad
TxRqst/
Data A Data B
New Dat
rw
rw
rw
rw
rw
r
r
r
r
r
r
r
r
rw
rw
rw
Write / Read
WR/RD
1’b1
Write: Transfer data from the selected Message Buffer Registers to the
message object addressed by the Command Request Register.
1’b0
Read: Transfer dtata from the message object addressed by the Command
Request Register into the selected Message Buffer Registers.
The other bits of IFx command mask register have different functions depending on the
transfer direction.
Doc ID 022642 Rev 3
273/584
Controller area network ports (CAN)
RM0321
Direction = Write
Access Mask Bits
Mask
1’b1
transfer Identifier Mask + MDir + MXtd to message object.
1’b0
Mask bits unchanged.
Access Arbitration Bits
Arb
1’b1
transfer Identifier + Dir + Xtd + MsgVal to message object.
1’b0
Arbitration bits unchanged.
Access Control Bits
Control
ClrIntPnd
1’b1
transfer Control Bits to message object.
1’b0
Control Bits unchanged
Clear Interrupt Pending Bit
Note: When writing to a message object, this bit is ignored.
Access Transmission Request Bit
TxRqst/
New Dat
1’b1
set TxRqst bit
1’b0
TxRqst bit unchanged
Note: If a transmission is requested by programming bit TxRqst/New Dat in the IFx Command Mask
Register, bit TxRqst in the IFx Message Control Register will be ignored.
Access Data Bytes 0-3
Data A
1’b1
transfer Data Bytes 0-3 to message object.
1’b0
Data Bytes 0-3 unchanged.
Access Data Bytes 4-7
Data B
1’b1
transfer Data Bytes 4-7 to message object.
1’b0
Data Bytes 4-7 unchanged.
Direction = Read
Access Mask Bits
Mask
1’b1
transfer Identifier Mask + MDir + MXtd to IFx Message Buffer Register.
1’b0
Mask bits unchanged.
Access Arbitration Bits
Arb
1’b1
transfer Identifier + Dir + Xtd + MsgVal to Message Buffer Register.
1’b0
Arbitration bits unchanged.
Access Control Bits
Control
274/584
1’b1
transfer Control Bits to IFx Message Buffer Register.
1’b0
Control Bits unchanged
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Clear Interrupt Pending Bit
ClrIntPnd
1’b1
clear IntPnd bit in the message object.
1’b0
IntPnd bit remains unchanged
Access New Data Bit
TxRqst/
New Dat
1’b1
clear NewDat bit in the message object.
1’b0
NewDat bit remains unchanged.
Note: A read access to a message object can be combined with the reset of the control bits IntPnd
and NewDat. The values of these bits transferred to the IFx message control register always
reflect the status before resetting these bits.
Access Data Bytes 0-3
Data A
1’b1
transfer Data Bytes 0-3 to IFx Message Buffer Register.
1’b0
Data Bytes 0-3 unchanged.
Access Data Bytes 4-7
Data B
13.2.6
1’b1
transfer Data Bytes 4-7 to IFx Message Buffer Register.
1’b0
Data Bytes 4-7 unchanged.
IFx message buffer registers
The bits of the message buffer registers mirror the message objects in the message RAM.
IFx mask registers
Table 321. IFx mask registers
14
IF1 Mask 1 Register 15
(0x28)
Msk15-0
13
12
MDir
res
Msk28-16
MXtd
MDir
res
Msk28-16
rw
rw
r
rw
IF1 Mask 2Register
(0x2C)
MXtd
IF2 Mask1Register
(0x8C)
Msk15-0
IF2 Mask 2Register
(0x90)
11
10
9
8
7
6
5
4
3
2
1
0
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
11
10
9
8
7
6
5
4
3
2
1
0
IFx arbitration registers
Table 322. IFx arbitration registers
IF1 Arbitration 1
Register
(0x30)
15
14
13
12
Xtd
Dir
ID28-16
ID5-0
IF1 Arbitration 2
Register
(0x34)
MsgVal
IF2 Arbitration 1
Register
(0x94)
ID15-0
Doc ID 022642 Rev 3
275/584
Controller area network ports (CAN)
RM0321
Table 322. IFx arbitration registers
IF2 Arbitration 2
Register
(0x98)
MsgVal
Xtd
Dir
ID28-16
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
IFx message control registers
Table 323. IFx message control registers
IF1
Message
Control
Register
(0x38)
15
14
13
12
11
10
9
8
7
6
5
4
3
NewDat
MsgLst
IntPud
UMask
TxIE
RxIE
RmtEn
TxRqst
EoB
res
res
res
DLC3-0
IF2
Message
Control
Register
(0x9C)
NewDat
MsgLst
IntPud
UMask
TxIE
RxIE
RmtEn
TxRqst
EoB
res
res
res
DLC3-0
rw
rw
rw
rw
rw
rw
rw
rw
rw
r
r
r
rw
2
1
0
IFx data A and data B registers
The data bytes of CAN messages are stored in the IFx message buffer registers in the
following order:
Table 324. IFx data A and data B registers
Name
15
14
13
12
11
10
9
8
7
6
5
4
3
IF1 Message Data A1
(addresses 0xCD & 0x3C)
Data(1)
Data(0)
IF1 Message Data A2
(addresses 0x41 & 0x40)
Data(3)
Data(2)
IF1 Message Data B1
(addresses 0x45 & 0x44)
Data(5)
Data(4)
IF1 Message Data B2
(addresses 0x49 & 0x48)
Data(7)
Data(6)
IF2 Message Data A1
(addresses 0x81 & 0x80)
Data(1)
Data(0)
IF2 Message Data A2
(addresses 0x85 & 0x84)
Data(3)
Data(2)
IF2 Message Data B1
(addresses 0x89 & 0x88)
Data(5)
Data(4)
IF2 Message Data B2
(addresses 0x8D & 0x8C)
Data(7)
Data(6)
rw
rw
2
1
In a CAN Data Frame, Data(0) is the first, Data(7) is the last byte to be transmitted or
received. In CAN’s serial bit stream, the MSB of each byte will be transmitted first.
13.2.7
Message objects in the message memory
There are 32 message objects in the message RAM. To avoid conflicts between CPU
access to the message RAM and CAN message reception and transmission, the CPU
cannot directly access the message objects, these accesses are handled via the IFx
interface registers.
276/584
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Table 325. Structure of a message object in the message memory
Message Object
UMask
Msk28-0
MXtd
MDir
EoB
MsgVal
ID28-0
Xtd
Dir
DLC3-0
NewDat
Data0
Data1
MsgLst
RxIE
TxIE
IntPnd
RmtEn
TxRqst
Data2
Data3
Data4
Data5
Data6
Data7
Message Valid
MsgVal
1’b1
The message object is configured and should be considered by the
message handler.
1’b0
The message object is ignored by the message handler.
Note: The CPU must reset the MsgVal bit of all unused message objects during the initialization
before it resets bit Init in the CAN Control Register. This bit must also be reset before the
identifier Id28-0, the control bits Xtd, Dir, or the Data Length Code DLC3-0 are modified, or if
the message object is no longer required.
Use Acceptance Mask
UMask
1’b1
Use Mask (Msk28-0, Mxtd and MDir) for acceptance filtering
1’b0
Mask ignored.
Note: If the UMask bit is set to one, the message object’s mask bits have to be programmed during
initialization of the message object before MsgVal is set to one.
Message Identifier
ID28-0
ID28 ID0
29-bit Identifier (“Extended Frame”)
ID28 ID18
11-bit Identifier (“Standard Frame”)
Identifier Mask
Msk28-0
1’b1
The corresponding identifier bit is used for acceptance filtering.
1’b0
The corresponding bit in the identifier of the message object cannot inhibit
the match in the acceptance filtering.
Extended Identifier
Xtd
1’b1
The 29-bit (“extended”) Identifier will be used for this message object.
1’b0
The 11-bit (“standard”) Identifier will be used for this message object.
Mask Extended Identifier
MXtd
1’b1
The extended identifier bit (IDE) is used for acceptance filtering.
1’b0
The extended identifier bit (IDE) has no effect on the acceptance filtering.
Note: When 11-bit (‘standard’) Identifiers are used for a message object, the identifiers of received
Data Frames are written into bits ID28 to ID18. For acceptance filtering, only these bits
together with mask bits Msk28 to Msk18 are considered.
Doc ID 022642 Rev 3
277/584
Controller area network ports (CAN)
RM0321
Message Direction
1’b1
Direction = transmit. On TxRqst, the respective message object is
transmitted as a Data Frame. On reception of a Remote Frame with
matching identifier, the TxRqst bit of this message object is set (if RmtEn =
one).
1’b0
Direction = receive: On TxRqst, a Remote Frame with the identifier of this
message object is transmitted. On reception of a Data Frame with matching
identifier, that message is stored in this message object.
Dir
Mask Message Direction
MDir
1’b1
The message direction bit (Dir) is used for acceptance filtering.
1’b0
The message direction bit (Dir) has no effect on the acceptance filtering.
The arbitration register ID28-0, Xtd, and Dir are used to define the identifier and type of
outgoing messages and are used (together with the mask registers Msk28-0, Mxtd and
MDir) for acceptance filtering of incoming messages. A received message is stored into the
valid message object with matching identifier and Direction=receive (Data Frame) or
Direction=transmit (Remote Frame). Extended frames can be stored only in message
objects with Xtd = one, standard frames in message objects with Xtd=zero. If a received
message (data frame or remote frame) matches with more than one valid message object, it
is stored into that with the lowest message number.
End of Buffer
EoB
1’b1
Single message object or last message object of a FIFO Buffer.
1’b0
Message object belongs to a FIFO Buffer and is not the last message object
of that FIFO Buffer.
Note: This bit is used to concatenate two or more message objects (up to 32) to build a FIFO Buffer.
For single message objects (not belonging to a FIFO Buffer) this bit must always be set to
one.
New Data
NewDat
1’b1
The message handler or the CPU has written new data into the data
proportion of this message object.
1’b0
No new data has been written into the data portion of this message object by
the message handler since last time this flag was cleared by the CPU.
Message Lost (only valid for message objects with direction = receive)
MsgLst
1’b1
The message handler stored a new message into this object when NewDat
was still set, the CPU has lost a message.
1’b0
No message lost since last time this bit was reset by the CPU.
Receive Interrupt Enable
RxIE
1’b1
IntPnd will be set after a successful reception of a frame.
1’b0
IntPnd will be left unchanged after a successful reception of a frame.
Transmit Interrupt Enable
TxIE
278/584
1’b1
IntPnd will be set after a successful tranmission of a frame.
1’b0
IntPnd will be left unchanged after a successful reception of a frame.
Doc ID 022642 Rev 3
RM0321
Controller area network ports (CAN)
Interrupt Pending
IntPnd
1’b1
The message object is the source of an interrupt. The interrupt Identifier in
the Interrupt Register will point to this message object if there is no other
interrupt source with higher priority.
1’b0
This message object is not the source of an interrupt.
Remote Enable
RmtEn
1’b1
At the reception of a Remote Frame, TxRqst is set.
1’b0
At the reception of a Remote Frame, TxRqst is left unchanged.
Transmit Request
TxRqst
1’b1
The transmission of this message object is requested and is not yet done.
1’b0
This message object is not waiting for transmission.
Data Length Code
DLC3-0
0-8
Data Frame has 0-8 data bytes.
9-15
Data Frame has 8 data bytes.
Note: The Data Length Code of a message object must be defined the same as in all the
corresponding objects with the same identifier at other nodes. When the message handler
stores a data frame, it will write the DLC to the value given by the received message.
Data 0
1st data byte of a CAN Data Frame
Data 1
2nd data byte of a CAN Data Frame
Data 2
3rd data byte of a CAN Data Frame
Data 3
4th data byte of a CAN Data Frame
Data 4
5th data byte of a CAN Data Frame
Data 5
6th data byte of a CAN Data Frame
Data 6
7th data byte of a CAN Data Frame
Data 7
8th data byte of a CAN Data Frame
Note: Byte Data 0 is the first data byte shifted into the shift register of the CAN Core during a
reception, byte Data 7 is the last. When the message handler stores a Data Frame, it will write
all the eight data bytes into a message object. If the Data Length Code is less than 8, the
remaining bytes of the message object will be overwritten by non specified values.
13.2.8
Message handler registers
All message handler registers are read-only. Their content (TxRqst, New Dat, IntPnd and
MsgVal bits of each message object and the interrupt identifier) is status information
provided by the message handler FSM.
Doc ID 022642 Rev 3
279/584
Controller area network ports (CAN)
13.2.9
RM0321
Interrupt registers
Table 326. Interrupt registers
15
14
13
12
11
10
9
8
7
6
5
4
IntId15-8
3
2
1
0
IntId7-0
Interrupt Identifier (the number here indicates the source of the interrupt)
0x0000
No interrupt is pending.
0x0001-0x00220
Number of message object which caused the interrupt.
0x0021-0x7FFF
unused
0x8000
Status Interrupt.
0x8001-0xFFFF
unused
IntID15-0
If several interrupts are pending, the CAN interrupt register will point to the pending interrupt
with the highest priority, disregarding their chronological order. An interrupt remains pending
until the CPU has cleared it. If Intld is different from 0x0000 and IE is set, the interrupt line to
the CPU, IRQ_B is active. The interrupt line remains active until INtld is back to value
0x0000 (the cause of the interrupt is reset) or until IE is reset.
The Status Interrupt has the highest priority. Among the message interrupts, the message
object’s interrupt priority decreases with increasing message number.
A message interrupt is cleared by clearing the message object’s IntPnd bit. The Status
Interrupt is cleared by reading the Status Register.
13.2.10
Transmission request registers
Table 327. Transmission request registers
Transmission Request 1
Register (0x100)
Transmission Request 2
Register (0x104)
15
14
13
12
11
10
9
8
7
6
5
TxRqst160-9
TxRqst8-1
TxRqst32-25
TxRqst24-17
r
r
4
3
2
1
0
Transmission Request Bits (of all message objects)
TxRqst32-1
1’b1
The transmission of this message object is requested and is not yet done.
1’b0
This message object is not waiting for transmission.
These registers hold the TxRqst bits of the 32 message objects. By reading out the TxRqst
bits, the CPU can check for which message object a transmission request is pending. The
TxRqst bit of a specific message object can be set/reset by the CPU via the IFx message
interface registers or by the message handler after reception of a remote frame or after a
successful transmission.
280/584
Doc ID 022642 Rev 3
RM0321
13.2.11
Controller area network ports (CAN)
New data registers
Table 328. New data registers
New Data 1 Register
(0xB8)
New Data 2Register
(0xBC)
15
14
13
12
11
10
9
8
7
6
5
NewDat16-9
NewDat8-1
NewDat32-25
NewDat24-17
r
r
4
3
2
1
0
New Data Bits (of all message objects)
NewDat32-1
1’b1
The message handler or the CPU has written new data into the data portion
of this message object.
1’b0
No new data has been written into the data portion of this message object by
the message handler since last time this flag was cleared by the CPU.
These registers hold the NewDat bits of the 32 message objects. By reading out the NewDat
bits, the CPU can check for which message object the data portion was updated. The
NewDat bit of a specific message object can be set/reset by the CPU via the IFx Message
Interface Registers or by the message handler after reception of a Data Frame or after a
successful transmission.
13.2.12
Interrupt pending registers
Table 329. Interrupt pending registers
15
Interrupt Pending1
Register (0x140)
Interrupt Pending 2
Register (0x144)
14
13
12
11
10
9
8
7
6
IntPnd16-9
IntPnd8-1
IntPnd32-25
IntPnd24-17
r
r
5
4
3
2
1
0
Interrupt Pending Bits (of all message objects)
IntPnd32-1
1’b1
This message object is the source of an interrupt.
1’b0
This message object is not the source of an interrupt.
These registers hold the IntPnd bits of the 32 message objects. By reading out the IntPnd
bits, the CPU can check for which message object an interrupt is pending. The IntPnd bit of
a specific message object can be set/reset by the CPU via the IFx Message Interface
Registers or by the message handler after reception or after a successful transmission of a
frame. This will also affect the value of IntId in the Interrupt Register.
Doc ID 022642 Rev 3
281/584
Controller area network ports (CAN)
13.2.13
RM0321
Message valid 1 register
Table 330. Message valid 1 register
Message Valid1 Register
(0x160)
Message Valid 2 Register
(0x164)
15
14
13
12
11
10
9
8
7
6
5
MsgVal16-9
MsgVal8-1
MsgVal32-25
MsgVal24-17
r
r
4
3
2
1
0
Message Valid Bits (of all message objects)
MsgVal32-1
1’b1
This message object is configured and should be considered by the
message handler.
1’b0
This message object is ignored by the message handler.
These registers hold the MsgVal bits of the 32 message objects. By reading out the MsgVal
bits, the CPU can check which message object is valid. The MsgVal bit of a specific
message object can be set/reset by the CPU via the IFx message interface registers.
282/584
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
14
Universal asynchronous receiver/transmitter (UART)
14.1
Register summary
The UART can be fully configured by programming its registers which can be accessed at
the base addresses shown in Table 331.
Table 331. UART base addresses
UART instance
Base address
UART0
0xD000.0000
UART1
0xA300.0000
UART2
0xA400.0000
UART3
0xA910.0000
UART4
0xA920.0000
UART5
0x6000.0000
UART6
0x6010.0000
UART registers can be logically arranged in five main groups:
Note:
●
Data register, listed in Table 332, contains data to be transmitted or received.
●
Error Status/Clear, listed in Table 333, contains UART receiver error status and
clearing UART receive error.
●
Control and status registers (CSRs), listed in Table 334, for UART configuration and
control.
●
Interrupts and DMA registers, listed in Table 335) for interrupts generation and DMA
control.
●
Identification registers, listed in Table 336, namely eight 8-bit RO registers reporting
UART-specific information.
In addition to reserved locations within the CSRs address space (Table 334), offset
addresses from 0x080 to 0xFDC are reserved for test purposes as well as for future
extensions. All these locations must not be used during normal operation.
UART must be disabled before any of the CSrs is programmed. When UART is disabled in
the middle of transmission or reception, it completes the current character before stopping.
Table 332. UART data registers summary
Name
Offset
Width(bit)
Type
Reset value
Description
UARTDR
0x000
16
RW
16‘h0
UART data
Table 333. UART error status/clear registers summary
Name
Offset
Width(bit)
Type
Reset value
Description
UARTRSR/
UARTECR
0x004
8
RW
8‘h0
Receive status/error clear
Doc ID 022642 Rev 3
283/584
Universal asynchronous receiver/transmitter (UART)
RM0321
Table 334. UART control and status register summary
Name
Offset
Width(bit)
Type Reset value
Description
-
0x008 to 0x014
-
-
-
Reserved
UARTFR
0x018
16
RO
16’h0090
UART flag
-
0x01C
-
-
-
Reserved
0x020
8
RW
8’h0
NA
0x024
16
RW
16‘h0
Integer baud rate
UARTFBRD
0x028
6
RW
6‘h0
Fractional baud rate
UARTLCR_H(1)
0x02C
16
RW
16‘h0
Line control
UARTCR
0x030
16
RW
16‘h0300
UART control
UARTILPR
(1)
UARTIBRD
(1)
1. UARTIBRD, UARTFBRD and UARTLCR_H form a single 30-bit wide register named UARTLCR, which is
updated on a single write strobe generated by a UARTLCR_H write. So, in order to internally update the
contents of the UARTIBRD or UARTFBRD registers, a write to UARTLCR_H must always be performed at
the end.
Note:
UART must be disabled (UARTEN bit in the UARTCR register must be reset) before
modifying any of the above control registers.
Table 335. UART interrupts and DMA registers summary
Name
Offset
Width (bit)
Type Reset Value Description
UARTIFLS
0x034
16
RW
16‘h0012
Interrupt FIFO level select
UARTIMSC
0x038
16
RW
16‘h0
Interrupt Mask Select/clear
UARTRIS
0x03C
16
RO
16‘h0
Raw Interrupt Status
UARTMIS
0x040
16
RO
16‘h0
Masked Interrupt Status
UARTICR
0x044
16
WO
-
Interrupt Clear
UARTDMACR
0x048
16
RW
16‘h0
DMA control
-
0x04C to 0x07C
-
-
-
Reserved
Table 336. UART identification register summary
Name
Offset
Width (bit) Type Reset value
UARTPeriphID0
0xFE0
8
RO
8’h11
UARTPeriphID1
0xFE4
8
RO
8’h10
UARTPeriphID2
0xFE8
8
RO
8’h24
UARTPeriphID3
0xFEC
8
RO
8’h00
UARTPCellID0
0xFF0
8
RO
8’h0D
UARTPCellID1
0xFF4
8
RO
8’hF0
UARTPCellID2
0xFF8
8
RO
8’h05
UARTPCellID3
0xFFC
8
RO
8’hB1
Description
Peripheral identification
Identification registers
284/584
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
14.2
Register description
14.2.1
UARTDR register
The UARTDR (UART Data) is a 16-bit RW register which contains data.
For words to be transmitted, if FIFOs are enabled, data written to this location is pushed to
the transmit FIFO. If FIFOs are not enabled, data is stored in the transmitter holding register
(bottom word of the transmit FIFO). The write operation initiates transmission from the
UART. The data is prefixed with a start bit, appended with the parity bit (if enabled) and a
stop bit. The resultant word is then transmitted.
For received words, if FIFOs are enabled, the data byte and the 4-bit status (break, frame,
parity and overrun) is pushed into the 12-bit receive FIFO. If FIFOs are not enabled, data
byte and status are stored in the receiving holding register (bottom word of the receive
FIFO).
Table 337. UART data register summary
14.2.2
Name
Offset
Width(bit) Type Reset value
Description
UARTDR
0x000
16
UART data
RW
16‘h0
UARTRSR/UARTECR register
The UARTRSR/UARTECR (receive status/error clear) is a unique 8-bit RW register which
allows to manage the function of both receive status and error clear register.
UARTRSR is intended for reading only to give the status information for break, framing and
priority corresponds to the data character read from the UARTDR register prior to reading
UARTRSR. The status information for overrun is set immediately when an overrun condition
occurs.
In contrast, a write to UARTECR clears the framing, parity, break and overrun errors. The
data value is not important.
Table 338. UARTRSR register bit assignments
Bit
Name
Reset value Description
[07:04]
Reserved
-
Read: undefined. Write: should be zero.
[03]
OE
1’h0
Overrun error
[02]
BE
1’h0
Break error
[01]
PE
1’h0
Parity error
[00]
FE
1’h0
Framing error
See UARTDR register.
Table 339. UARTECR register bit assignments
Note:
Bit
Name
Reset value Description
[07:00]
-
8’h0
Clear errors
The received data character must be read first from UARTDR before reading the error status
associated with the data character from UARTRSR. This read sequence cannot be reversed
Doc ID 022642 Rev 3
285/584
Universal asynchronous receiver/transmitter (UART)
RM0321
because UARTRSR is updated only when a read occurs from UARTDR. However, status
information can also be obtained by reading the UARTDR register.
14.2.3
UARTFR register
The UARTFR (flag) is a RO register which indicates the flag status.
Table 340. UARTFR register bit assignments
Bit
Name
Reset value Description
[15:09]
Reserved
-
Read: as zero.
1’h0
Ring indicator.
This bit is set when the modem status input is 1‘b0. Specifically,
it is the complement of the UART data carrier detect nUARTRI
modem status input.
Note: This bit is used only for UART0 and UART1
1’h1
Transmit FIFO empty.
This bit depends on the state of the FEN bit in the UARTLCR_H
register (Section 14.2.6). If FIFOs are disabled (FEN set to
1‘b0), the TXFE bit is set when the transmit holding register is
empty. if FIFOs are enabled (FEN set to 1‘b1), it is set when the
Transmit FIFO is empty. This bit does not indicate if there is
data in the transmit shift register.
1’h0
Receive FIFO full.
This bit depends on the state of the FEN bit in the UARTLCR_H
register. If FIFOs are disabled, RXFF is set when the receive
holding register is full, whereas (FIFOs enabled) it is set when
the receive FIFO is full.
1’h0
Transmit FIFO full.
This bit depends on the state of the FEN bit in the UARTLCR_H
register. If FIFOs are disabled, TXFF is set when the transmit
holding register is full, whereas (FIFOs enabled) it is set when
the transmit FIFO is full.
1’h1
Receive FIFO empty.
This bit depends on the state of the FEN bit in the UARTLCR_H
register. If FIFOs are disabled, RXFE is set when the receive
holding register is empty, whereas (FIFOs enabled) it is set
when the receive FIFO is empty.
1’h0
UART busy.
If this bit is set to 1‘b1, the UART is busy transmitting data. This
bit remains set until the complete byte, including all the stop
bits, has been sent from the shift register. This bit is set as soon
as the transmit FIFO becomes non-empty (regardless of
whether the UART is enabled or not).
1’h0
Data carrier detect.
This bit is set to 1‘b1 when the modem status input is 1‘b0.
Specifically, it is the complement of the UART data carrier
detect nUARTDCD modem status input.
Note: This bit is used only for UART0 and UART1
[08]
[07]
[06]
[05]
[04]
[03]
[02]
286/584
RI
TXFE
RXFF
TXFF
RXFE
BUSY
DCD
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
Table 340. UARTFR register bit assignments (continued)
Bit
[01]
[00]
14.2.4
Name
DSR
CTS
Reset value Description
1’h0
Data set ready.
This bit is set to 1‘b1 when the modem status input is 1‘b0.
Specifically, it is the complement of the UART data carrier
detect nUARTDSR modem status input.
Note: This bit is used only for UART0 and UART1
1’h0
Clear to send.
This bit is set to 1‘b1 when the modem status input is 1‘b0.
Specifically, it is the complement of the UART clear to send
nUARTCTS modem status input.
Note: This bit is used only for UART0 and UART1
UARTIBRD register
The UARTIBRD (integer baud rate) is a 16-bit RW register which indicates the integer part
of the baud rate divisor value.
Table 341. UARTIBRD register bit assignments
14.2.5
Bit
Name
Reset value Description
[15:00]
BAUD DIVINT
16’h0
Integer baud rate divisor
UARTFBRD register
The UARTFBRD (fractional baud rate) is a 6-bit RW register which indicates the fractional
part of the baud rate divisor value.
Table 342. UARTFBRD register bit assignments
Bit
Name
Reset value Description
[05:00]
BAUD DIVFRAC
6’h0
Fractional baud rate divisor
The baud rate divisor is calculated as follows:
BAUDDIV = fUARTCLK / (16 · baud rate)
where fUARTCLK is the UART reference clock frequency. The BAUDDIV is comprised of the
integer value BAUD DIVINT and the fractional value BAUD DIVFRAC.
Note:
1
The content of UARTIBRD and UARTFBRD registers is not updated until transmission or
reception of the current character is complete.
2
The minimum divide ratio is 1 and the maximum is 65535 (that is, 216-1). When UARTIBRD
= 65535 (16‘hFFFF), UARTFBRD must not be greater than zero.
Some typical bit rates and their corresponding integer divisors (BAUD DIVINT in
UARTIBRD) are given in Table 343.
Doc ID 022642 Rev 3
287/584
Universal asynchronous receiver/transmitter (UART)
RM0321
Table 343. Typical baud rate and divisors
Programmed integer divisor (UARTIBRD)
Bit rate [Bps]
Error
16‘h000D
230400
0.16%
16‘h001A
115200
0.16%
16‘h0027
76800
0.16%
16‘h0034
57600
0.16%
16‘h004E
38400
0.16%
16‘h009C
19200
0.16%
16‘h00D0
14400
0.16%
16‘h0138
9600
0.16%
16’h01A1
7200
-0.08%
16’h0271
4800
0%
16‘h04E2
2400
0%
16’h09C4
1200
0%
16’h1388
600
0%
16’h2710
300
0%
16’h3A98
200
0%
16‘h4E20
150
0%
16‘h6A88
110
0%
Note:
For UART1-6, due to the faster UARTCLK, other divider values must be used to generate
the selected baudrate.
14.2.6
UARTLCR_H register
The UARTLCR_H (line control) is a 16-bit RW register which accesses bits 29 to 22 of the
UART bit rate and line control register UARTLCR.
Table 344. UARTLCR_H register bit assignments
Bit
Name
Reset value Description
[15:08]
Reserved
-
Read: as zero. Write: should be zero.
1’h0
Stick parity select.
When bits 1 (PEN), 2 (EPS) and 7 (SPS, this one) of this
register are set, the parity bit is transmitted and checked as
1‘b0. When bits 1 and 7 of this register are set, and bit 2 is
cleared, the parity bit is transmitted and checked as 1‘b1.
When bit SPS is cleared, stick parity is disabled.
[07]
288/584
SPS
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
Table 344. UARTLCR_H register bit assignments (continued)
Bit
[06:05]
[04]
[03]
[02]
[01]
[00]
Note:
Name
WLEN
FEN
STP2
EPS
PEN
BRK
Reset value Description
2’h0
Word length.
This 2-bit field indicates the number of data bits transmitted or
received in a frame, according to encoding:
2‘b00 = 5
2‘b01 = 6
2‘b10 = 7
2‘b11 = 8
1’h0
Enable FIFOs.
Setting this bit, transmit and receive FIFO buffers are enabled.
In contrast (FEN cleared), the FIFOs are disabled becoming 1byte-deep holding registers.
1’h0
Two stop bit select.
Setting this bit, two stop bits are transmitted at the end of the
frame. The receive logic does not check for two stop bits being
received.
1’h0
Even parity select.
This bit allows to select either an even or an odd parity
generation and checking during transmission and reception,
which checks for an even or an odd number of 1s in data and
parity bits, according to encoding:
1‘b0 = Odd
1‘b1 = Even
Note: This bit has no effect when parity is disabled by clearing
Parity Enable bit (PEN in this register).
1’h0
Parity enable.
Setting this bit, parity checking and generation is enabled,
otherwise (PEN set to 1‘b0) parity is disabled and no parity bit
is added to the data frame.
1’h0
Send break.
Setting this bit, a low-level is continually output on the
UARTTXD output after completing transmission of the current
character. For proper execution of the break command, the
software must set this bit for at least two complete frames.
UARTLCR_H, UARTIBRD and UARTFBRD form a single 30-bit wide register named
UARTLCR, which is updated on a single write strobe generated by a UARTLCR_H write. So,
in order to internally update the contents of the UARTIBRD or UARTFBRD registers, a write
to UARTLCR_H must always be performed at the end.
Table 345. Truth table for SPS, EPS and PEN bits
Pen
Eps
Sps
Parity bit
1‘b0
X
X
Not transmitted or checked.
1‘b1
1‘b1
1‘b0
Even parity.
1‘b1
1‘b0
1‘b0
Odd parity.
Doc ID 022642 Rev 3
289/584
Universal asynchronous receiver/transmitter (UART)
RM0321
Table 345. Truth table for SPS, EPS and PEN bits (continued)
Pen
Eps
Sps
Parity bit
1‘b1
1‘b0
1‘b1
1
1‘b1
1‘b1
1‘b1
0
Baud rate and line control registers (UARTIBRD, UARTFBRD and UARTLCR_H) must not
be changed:
●
when UART is enabled,
●
when completing a transmission or a reception when it has programmed to become
disabled.
Moreover, the FIFOs integrity is not guaranteed under the following conditions:
14.2.7
●
after the BRK bit (in UARTLCR_H register) has been initiated,
●
if the software disables the UART in the middle of a transmission with data in the FIFO
and then re-enables it.
UARTCR register
The UARTCR (control) is a 16-bit RW register which allows to control the UART.
To enable transmission, both TXE (bit 8) and UARTEN (bit 0) must be set. Similarly, to
enable reception, both RXE (bit 9) and UARTEN must be set.
The UART CSRs should be programmed as follows:
1.
disable the UART (clearing the UARTEN bit in UARTCR register),
2.
wait for the end of transmission or reception of the current character,
3.
flush the Transmit FIFO by disabling the FEN bit in the UARTLCR_H register,
4.
program the UART CSRs (if required)
5.
enable the UART (setting the UARTEN bit in UARTCR register).
Table 346. UARTCR register bit assignments
Bit
[15]
[14]
[13]
290/584
Name
CTSEn
RTSEn
Out2
Reset value Description
1’h0
CTS hardware flow control enable.
Setting this bit, the CTS hardware flow control is enabled and data
is only transmitted when nUARTCTS signal is asserted.
Note: This bit is used only for UART0 and UART1
1’h0
RTS hardware flow control enable.
Setting this bit, the RTS hardware flow control is enabled and data
is only requested when there is space in the Receive FIFO.
Note: This bit is used only for UART0 and UART1
1’h0
Output.
This bit is the complement of UART Out2 (nUARTOut2) modem
status output. Setting this bit, this output is 1‘b0. For DTE this can
be used as Ring Indicator (RI).
Note: This bit is used only for UART0 and UART1.
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
Table 346. UARTCR register bit assignments (continued)
Bit
[12]
[11]
[10]
[09]
Name
Out1
RTS
DTR
RXE
Reset value Description
1’h0
Out1.
This bit is the complement of UART Out1 (nUARTOut1) modem
status output. Setting this bit, this output is 1‘b0. For DTE this can
be used as Data Carrier Detect (DCD).
Note: This bit is used only for UART0 and UART1.
1’h0
Request to send.
This bit is the complement of UART RTS (nUARTRTS) modem
status output. Setting this bit, this output is 1‘b0.
Note: This bit is used only for UART0 and UART1
1’h0
Data transmit ready.
This bit is the complement of UART DTR (nUARTDTR) modem
status output. Setting this bit, this output is 1‘b0.
Note: This bit is used only for UART0 and UART1
1’h1
Receive enable.
Setting this bit the receive section of UART is enabled. Data
reception occurs for UART signals. When the UART is disabled in
the middle of reception, it completes the current character before
stopping.
[08]
TXE
1’h1
Transmit enable.
Setting this bit the transmit section of UART is enabled. Data
transmission occurs for UART signals. When the UART is
disabled in the middle of transmission, it completes the current
character before stopping.
[07]
LBE
1’h0
Loop back enable.
Used together with test registers only.
[06:01] Reserved -
Read: as zero. Write: should be zero.
[00]
UART enable.
Setting this bit, the UART is enabled. Data transmission and
reception occurs for UART signals. When the UART is disabled in
the middle of transmission or reception, it completes the current
character before stopping.
UARTEN 1’h0
Doc ID 022642 Rev 3
291/584
Universal asynchronous receiver/transmitter (UART)
14.2.8
RM0321
UARTIFLS register
The UARTIFLS (Interrupt FIFO level select) is a 16-bit RW register which defines the FIFO
level at which the UARTTXINTR and UARTRXINTR interrupts are triggered.
The interrupts are generated based on a transition through a level rather than being based
on the level, that is, when the fill level progresses through the trigger level.
Table 347. UARTIFLS register bit assignments
Bit
Name
Reset value Description
[15:06]
Reserved
-
Read: as zero. Write: should be zero.
3’h12
Receive interrupt FIFO level select.
This 3-bit field allows to set the trigger points for the receive
interrupt, according to encoding:
3‘b000 = 1/8 full
3‘b001 = 1/4 full
3‘b010 = 1/2 full (default)
3‘b011 = 3/4 full
3‘b100 = 7/8 full
Any other value = Reserved
3’h12
Transmit interrupt FIFO level select.
This 3-bit field allows to set the trigger points for the transmit
interrupt, according to encoding:
3‘b000 = 1/8 full
3‘b001 = 1/4 full
3‘b010 = 1/2 full (default)
3‘b011 = 3/4 full
3‘b100 = 7/8 full
Any other value = Reserved
[05:03]
[02:00]
14.2.9
RXIFLSEL
TXIFLSEL
UARTIMSC register
The UARTIMSC (interrupt mask set/clear) is a 16-bit RW register which allows masking and
clearing of each UART interrupt source.
Reading from this register gives the current value of the mask on relevant interrupt. Writing a
1‘b1 to a particular bit sets the corresponding mask of that interrupt, whereas writing a 1‘b0
clears the corresponding mask.
Table 348. UARTIMSC register bit assignments
292/584
Bit
Name
Reset
value
Description
[15:11]
Reserved
-
Read: as zero. Write: should be zero.
[10]
OEIM
1’h0
Overrun error interrupt mask
[09]
BEIM
1’h0
Break error interrupt mask
[08]
PEIM
1’h0
Parity error interrupt mask
[07]
FEIM
1’h0
Framing error interrupt mask
[06]
RTIM
1’h0
Receive timeout interrupt mask
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
Table 348. UARTIMSC register bit assignments (continued)
14.2.10
Bit
Name
Reset
value
Description
[05]
TXIM
1’h0
Transmit interrupt mask
[04]
RXIM
1’h0
Receive interrupt mask
[03]
DSRMIM
1’h0
nUARTDSR modem interrupt mask
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes).
[02]
DCDMIM
1’h0
nUARTDCD modem interrupt mask
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes).
[01]
CTSMIM
1’h0
nUARTCTS modem interrupt mask
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes).
[00]
RIMIM
1’h0
nUARTRI modem interrupt mask
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes).
UARTRIS register
The UARTRIS (raw interrupt status) is a 16-bit RO register which gives the current raw
status value (prior to masking by UARTIMSC) of the corresponding interrupt. A write has no
effect.
Table 349. UARTRIS register bit assignments
Bit
Name
Reset
Description
value
[15:11]
Reserved
-
Read: as zero
[10]
OERIS
1’h0
Overrun error raw interrupt status
[09]
BERIS
1’h0
Break error raw interrupt status
[08]
PERIS
1’h0
Parity error raw interrupt status
[07]
FERIS
1’h0
Framing error raw interrupt status
1’h0
Receive timeout raw interrupt status
(1)
[06]
RTRIS
[05]
TXRIS
1’h0
Transmit raw interrupt status
[04]
RXRIS
1’h0
Receive raw interrupt status
[03]
DSRRMIS
1’h0
nUARTDSR modem raw interrupt status
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes)
[02]
DCDRMIS
1’h0
nUARTDCD modem raw interrupt status
Note: This bit is reserved for UART1(automation expansion,
small printer), UART2 (all four modes)
Doc ID 022642 Rev 3
293/584
Universal asynchronous receiver/transmitter (UART)
RM0321
Table 349. UARTRIS register bit assignments (continued)
Bit
Name
Reset
Description
value
[01]
CTSRMIS
1’h0
nUARTCTS modem raw interrupt status.
Note: This bit is used only for UART0 and UART1
[00]
RIRMIS
1’h0
nUARTRI modem raw interrupt status.
Note: This bit is used only for UART0 and UART1.
1. The raw interrupt cannot be set unless the mask is set, because the mask acts as an enable for power
saving.
Note:
All the bits, except for the modem interrupt status (bit [3:0]), are cleared when reset. The
modem interrupt status bits are undefined after reset.
14.2.11
UARTMIS Register
The UARTMIS (masked interrupt status) is a 16-bit RO register which gives the current
masked status value (after masking by UARTIMSC) of the corresponding interrupt. A write
has no effect.
Table 350. UARTMIS register bit assignments
Note:
294/584
Bit
Name
Reset value Description
[15:11]
Reserved
-
Read: as zero
[10]
OEMIS
1’h0
Overrun error masked interrupt status
[09]
BEMIS
1’h0
Break error masked interrupt status
[08]
PEMIS
1’h0
Parity error masked interrupt status
[07]
FEMIS
1’h0
Framing error masked interrupt status
[06]
RTMIS
1’h0
Receive timeout masked interrupt status
[05]
TXMIS
1’h0
Transmit masked interrupt status
[04]
RXMIS
1’h0
Receive masked interrupt status
[03]
DSRMMIS 1’h0
nUARTDSR modem masked interrupt status
Note: This bit is used only for UART0 and UART1.
[02]
DCDMMI
S
1’h0
nUARTDCD modem masked interrupt status
Note: This bit is used only for UART0 and UART1.
[01]
CTSMMIS 1’h0
nUARTCTS modem masked interrupt status.
Note: This bit is used only for UART0 and UART1
[00]
RIMMIS
nUARTRI modem masked interrupt status.
Note: This bit is used only for UART0 and UART1
1’h0
All the bits, except for the modem interrupt status (bit [3:0]), are cleared when reset. The
modem interrupt status bits are undefined after reset.
Doc ID 022642 Rev 3
RM0321
14.2.12
Universal asynchronous receiver/transmitter (UART)
UARTICR register
The UARTICR (interrupt clear) is a 16-bit WO register which is able to clear the
corresponding interrupt writing a 1‘b1 to the appropriate field. A write of 1‘b0 has no effect.
Table 351. UARTICR register bit assignments
Bit
14.2.13
Name
Reset value Description
[15:11] Reserved -
Write: should be zero
[10]
OEIC
-
Overrun error interrupt clear
[09]
BEIC
-
Break error interrupt clear
[08]
PEIC
-
Parity error interrupt clear
[07]
FEIC
-
Framing error interrupt clear
[06]
RTIC
-
Receive timeout interrupt clear
[05]
TXIC
-
Transmit interrupt clear
[04]
RXIC
-
Receive interrupt clear.
[03]
DSRMIC
-
nUARTDSR modem interrupt clear
Note: This bit is used only for UART0 and UART1.
[02]
DCDMIC
-
nUARTDCD modem interrupt clear
Note: This bit is used only for UART0 and UART1.
[01]
CTSMIC
-
nUARTCTS modem interrupt clear
Note: This bit is used only for UART0 and UART1.
[00]
RIMIC
-
nUARTRI modem interrupt clear
Note: This bit is used only for UART0 and UART1.
UARTDMACR register
The UARTDMACR (DMA control) is the 16-bit RW DMA control register.
Table 352. UARTDMACR register bit assignments
Bit
Name
Reset value Description
[15:03]
Reserved
-
Read: as zero. Write: should be zero.
[02]
DMAONERR 1’h0
DMA on error.
Setting this bit, the DMA receive request outputs
(UARTRXDMASREQ or UARTRXDMABREQ) are disabled
when UART error interrupt is asserted.
[01]
TXDMAE
1’h0
Transmit DMA enable.
Setting this bit, DMA for the transmit FIFO is enabled.
[00]
RXDMAE
1’h0
Receive DMA enable.
Setting this bit, DMA for the receive FIFO is enabled.
Doc ID 022642 Rev 3
295/584
Universal asynchronous receiver/transmitter (UART)
RM0321
Example for DMA from memory to UART
To transmit a block of data with UART2 using DMA, follow this procedure. The values used
in the description of the procedure are examples only, and should be adapted to the
application requirements.
1.
Enable the DMA peripheral clock:
MISC PERIPH1_CLKEN register (0x028) = 0x80000
2.
Remove the DMA peripheral reset:
MISC PERIPH1_CLKEN register (0x028) = 0xFFF7FFFF
3.
Select UART2 RX and UART2 TX as DMA request source channels:
MISC DMA_CHN_CFG register (0x0A0) = 0x5000 * / 2’b01 in bits 15:14 and
13:12) selects UART2_RX (DMA request channel 6) and UART2_TX (DMA
request channel 7) in DMA_Sch_1 domain
4.
Configure the DMA registers:
DMACConfiguration = 0x00000001 */ Select big Endian mode
DMACIntTCClear = 0x000000FF */ Clear interrupt flags
DMACIntErrClr = 0x000000FF */ Clear error status
5.
Configure the DMA channel registers:
DMACC0DestAddr = 0xA4000000 */ Address of UART2 UARTDR data register
DMAC0LLIReg = 0x0
DMACC0Control = 0x87002008 */ Terminal count interrupt enable,
*/ User mode, non-bufferable, non-cacheable
*/ Incrementation of source address enabled
*/ Select destination and source address AHB master 2
*/ 16-bit destination transfer width, 8-bit source transfer width
*/ Burst size = 1, Transfer size=520
DMACC0Config = 0x0000C9C1 */ Terminal count interrupt not masked,
*/ Error interrupt not masked, Memory-to-peripheral flow control and transfer type
*/ Destination peripheral = 7
296/584
*/ UART2_TX DMA request line
Doc ID 022642 Rev 3
RM0321
Universal asynchronous receiver/transmitter (UART)
6.
Configure UART registers:
UARTCR= 0x700 */ Data transmit ready, Receive enable, Transmit enable
UART2IBRD = 0x04 */ Configure baud rate
UART2FBRD = 0x00 */ Configure baud rate
UART2LCR_H = 0x70 */ Configure 8-bit word length, enable FIFOs
7.
Transfer data via DMA to UART2 and transmit it:
UART2 DMACR = 0x02
*/ Enable Transmit DMA
UART2CR = UART2CR | 0x1
*/ Set UARTEN bit to enable UART2
Doc ID 022642 Rev 3
297/584
I2C bus ports (I2C)
RM0321
15
I2C bus ports (I2C)
15.1
Register summary
The I2C controller can be fully configured by programming its 16-bit registers.
Table 353.
298/584
I2C registers
Name
Offset
Width
Type Reset value
(bit) (1)
Description
IC_CON
0x000
7
RW
7'h2F
I2C control
IC_TAR
0x004
13
RW
13'h0055
I2C target address
IC_SAR
0x008
10
RW
10'h0055
I2C slave address
IC_HS_MADDR
0x00C
3
RW
3'b001
I2C HS master mode core
address
IC_DATA_CMD
0x010
9
RW
9’h0
I2C RX/TX data buffer and
command
IC_SS_SCL_HCNT
0x014
16
RW
16'h029b
Standard-Speed I2C Clock
SCL High Count
IC_SS_SCL_LCNT
0x018
16
RW
16'h0310
Standard-Speed I2C Clock
SCL Low Count
IC_FS_SCL_HCNT
0x01C
16
RW
16'h0064
Fast-Speed I2C Clock SCL
High Count
IC_FS_SCL_LCNT
0x020
16
RW
16'h00d9
Fast-Speed I2C Clock SCL
Low Count
IC_HS_SCL_HCNT
0x024
16
RW
16'h000a
High-Speed I2C Clock SCL
High Count
IC_HS_SCL_LCNT
0x028
16
RW
16'h001b
High-Speed I2C Clock SCL
Low Count
IC_INTR_STAT
0x02C
12
RO
12’h0
I2C interrupt status
IC_INTR_MASK
0x030
12
RW
12’h8ff
I2C interrupt mask
IC_RAW_INTR_STAT
0x034
12
RO
12’h0
I2C raw interrupt status
IC_RX_TL
0x038
8
RW
8’h00
I2C receive FIFO threshold
IC_TX_TL
0x03C
8
RW
8’h00
I2C transmit FIFO threshold
IC_CLR_INTR
0x040
1
RO
1’b0
Clear combined and
Individual Interrupts
IC_CLR_RX_UNDER
0x044
1
RO
1’b0
Clear RX_UNDER interrupt
IC_CLR_RX_OVER
0x048
1
RO
1’b0
Clear RX_OVER interrupt
IC_CLR_TX_OVER
0x04C
1
RO
1’b0
Clear TX_OVER interrupt
IC_CLR_RD_REQ
0x050
1
RO
1’b0
Clear RD_REQ interrupt
IC_CLR_TX_ABRT
0x054
1
RO
1’b0
Clear TX_ABRT interrupt
IC_CLR_RX_DONE
0x058
1
RO
1’b0
Clear RX_DONE interrupt
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 353.
I2C registers (continued)
Name
Offset
Width
Type Reset value
(bit) (1)
Description
IC_CLR_ACTIVITY
0x05C
1
RO
1’b0
Clear ACTIVITY interrupt
IC_CLR_STOP_DET
0x060
1
RO
1’b0
Clear STOP_DET interrupt
IC_CLR_START_DET
0x064
1
RO
1’b0
Clear START_DET interrupt
IC_CLR_GEN_CALL
0x068
1
RO
1’b0
Clear GEN_CALL Interrupt
IC_ENABLE
0x06C
1
RW
1’b0
I2C Enable
IC_STATUS
0x070
7
RO
7'h06
I2C Status
IC_TXFLR
0x074
4
RO
4’h0
Transmit FIFO Level
IC_RXFLR
0x078
4
RO
4’h0
Receive FIFO Level
IC_SDA_HOLD
0x07C
16
RW
16'h1
SDA hold time length time
IC_TX_ABRT_SOURCE
0x080
16
RW
16’h0
I2C Transmit Abort Status
-
0x084
-
-
-
Reserved
IC_DMA_CR
0x088
2
RW
2’h0
DMA Control
IC_DMA_TDLR
0x08C
3
RW
3’b000
DMA Transmit Data Level
IC_DMA_RDLR
0x090
3
RW
3’b000
DMA Receive Data Level
-
0x094
to
0x0F0
-
-
-
Reserved
IC_COMP_PARAM_1
0x0F4
32
RO
32'h000707ED Component Parameter
IC_COMP_VERSION
0x0F8
32
RO
32'h3130352A
Component Version ID
IC_COMP_TYPE
0x0FC
32
RO
32'h44570140
DW Component Type
1.
1. This value represents the actual number of used bits, being reserved the others to 16.
Doc ID 022642 Rev 3
299/584
I2C bus ports (I2C)
RM0321
15.2
Register description
15.2.1
IC_CON register (0x000)
The IC_CON is a RW register which allows to control the I2C controller.
Note:
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE (Section 15.2.19) register being set to 1’b0. Write at other times has no
effect.
Table 354. IC_CON register bit assignments
Bit
Name
[15:07]
Reserved
[06]
[05]
[04]
300/584
Type
IC_SLAVE_DISABLE
IC_RESTART_EN
RW
RW
IC_10BITADDR_MASTE
RO
R
Reset
Description
value
-
Read: undefined. Write: should be zero.
1’h0
Slave disabled after reset.
This bit controls whether the I2C controller has
its slave disabled after reset, according to the
encoding:
1‘b0 = Enabled (default).
1‘b1 = Disabled.
1’h1
Enable restart conditions (when acting as
master).
This bit determines whether restart conditions
may be sent (if set to ‘b1) when acting as a
master or not (if set to ‘b0). Indeed, some older
slaves do not support handling restart
conditions.
Note: Disabling a restart does not allow the
master to perform the following function:
– send multiple bytes per transfer (split),
– change direction within a transfer (split),
– send a start byte,
– perform any high-speed mode operation,
– perform combined format transfers in 7- or
10 bit addressing mode (split for 7 bit),
– perform a read operation with a 10 bit
address.
– Split operations are broken down into
multiple I2C transfers with a stop and start
condition in between. The other operations
are not performed at all and result in setting
TX_ABRT.
1’h0
10 bit addressing mode (when acting as
master).
The function of this bit is handled by bit 12 of
IC_TAR. This bit is a read-only field called
IC_10BITADDR_MASTER_rd_only.
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 354. IC_CON register bit assignments (continued)
Bit
[03]
[02:01]
[00]
Note:
Name
Type
IC_10BITADDR_SLAVE
SPEED
MASTER_MODE
RW
RW
RW
Reset
Description
value
1’h1
Responds to 7- or 10 bit addresses (when
acting as slave).
This bit controls if I2C controller responds to
either 7- or 10 bit addresses when acting as a
slave, according to the encoding:
1‘b0 = 7. The I2C controller ignores
transactions which involve 10 bit addressing.
for 7 bit addressing, only the lower 7 bits of the
IC_SAR register (Section 15.2.3) are
compared.
1‘b1 = 10. The I2C controller responds to only
10 bit addressing transfers that match the full
10 bits of the IC_SAR register.
2’h11
Controls operation speed.
This 2 bit field controls at which speed the I2C
controller operates, according to the encoding:
‘b00, Illegal = ‘b01, Standard = 100 kbit/s
‘b10, Fast = 400 kbit/s
‘b11, High = 3.4 Mbit/s (default)
If the device is configured for fast or standard
mode and value 3 is written, then the
IC_MAX_SPEED_MODE is stored. If an APB
write is performed to these bits such that the
data is decimal 2 or 3, then these would
change the maximum speed mode. Hardware
prevents this fact and writes in the value of
IC_MAX_SPEED_MODE instead. The value of
IC_MAX_SPEED_MODE is configured to be
'b11.
1’h1
Enable master.
This bit controls if the I2C controller is enabled
to act as master, according to the encoding:
1‘b0 = Disabled.
1‘b1 = Enabled (default)
The I2C controller slave is always enabled.
Doc ID 022642 Rev 3
301/584
I2C bus ports (I2C)
15.2.2
RM0321
IC_TAR register (0x004)
The IC_TAR (I2C target address) is a RW register.
Bit 12 and bits 9 through 0 can be dynamically updated as long as the following are true:
●
MST_ACTIVITY must be IDLE. That is, IC_STATUS[5] = 1‘b0
●
Transmit FIFO completely empty must occur. That is, IC_STATUS = ‘b0.
Bits 10 and 11 are writable only when IC_ENABLE[0] = 1‘b0
Table 355. IC_TAR register bit assignments
Bit
Name
[15:13]
Reserved
[12]
[11]
[10]
[09:00]
302/584
Type
IC_10BITADDR_MAST
ER
SPECIAL
GC_OR_START
IC_TAR
Reset
Description
value
-
Read: undefined. Write: should be zero.
1’h0
10 bit addressing mode (when acting as
master).
this bit controls whether DW_apb_i2c starts its
transfer in 10 bit addressing mode when acting
as a master according to the encoding below:
1‘b0 = 7.
1‘b1 = 10.
1’h0
Perform a general call or start byte I2C
command.
This bit indicates whether software would like
to either perform a general call or start byte I2C
command, according to the encoding:
1‘b0 = Ignore bit[10], GC_OR_START, in this
register and use IC_TAR normally.
1‘b1 = Perform special I2C command as
specified in GC_OR_START bit.
RW
1’h0
Indicates when a general call or start byte I2C
command is to be performed.
If bit[11], SPECIAL, in this register is set to ‘b1,
the GC_OR_START bit indicates whether a
general call or start byte command is to be
performed by the I2C controller, according to
the encoding below:
1‘b0 = General Call Address: after issuing a
general call, only writes may be performed.
Attempting to issue a read command result in
setting TX_ABRT. The I2C controller remains in
general call mode until the SPECIAL bit value
is cleared.
1‘b1 = Start byte.
RW
10’h0
55
Target address.
This 10 bit field is the target address for any
master transactions. Its reset value indicates
loopback mode.
RW
RW
Doc ID 022642 Rev 3
RM0321
15.2.3
I2C bus ports (I2C)
IC_SAR register (0x008)
The IC_SAR is the 10-bit RW register which holds the slave address. The I2C controller
responds to this address when it is operating as a slave. In case of 7 bit addressing
(IC_10BITADDR_SLAVE bit set to ‘b0 in IC_CON register), only bits [6:0] are used.
Note:
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ’b0. Write at other times has no effect.
Table 356. IC_SAR register bit assignments
15.2.4
Bit
Name
[15:10]
Reserved
[09:00]
IC_SAR
Type
RW
Reset
value
Description
-
Read: undefined. Write: should be zero.
10’h55 Slave address.
IC_HS_MADDR register (0x00C)
The IC_HS_MADDR is the RW register which holds the 3 bit value of the I2C master code in
HS (high-speed) mode.
Note:
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ‘b0. Write at other times has no effect.
Table 357. IC_HS_MADDR register bit assignments
Bit
Name
[15:03]
Reserved
[02:00]
IC_HS_MAR
Type
RW
Reset value
Description
-
Read: undefined. Write: should
be zero.
3’b001
I2C HS mode master code.
Doc ID 022642 Rev 3
303/584
I2C bus ports (I2C)
15.2.5
RM0321
IC_DATA_CMD register (0x010)
The IC_DATA_CMD is a RW register which contains the I2C Rx/Tx data buffer and related
read/write command.
Table 358. IC_DATA_CMD register bit assignments
Bit
Name
[15:09]
Reserved
[08]
[07:00]
15.2.6
CMD
DAT
Type
RW
RW
Reset
value
Description
-
Read: undefined. Write: should be zero.
1‘h0
Control read or write.
This bit controls whether a read or write is performed,
according to the encoding:
1‘b0 = Write.
1‘b1 = Read.
Note: In case of reading, the lower bits from 7 to 0 (DAT
field) are ignored by the I2C controller. Reading this bit
returns 'b0.
Attempting to perform a read operation after a general call
command has been sent results in TX_ABRT unless the
SPECIAL bit in IC_TAR register (see Section 15.2.2) has
been cleared. If this bit is written to ‘b1 after receiving
RD_REQ, then a TX_ABRT occurs.
7‘h0
Contains data.
This 8 bit field contains the data to be transmitted or
received on the I2C bus. Read these bits means reading
out the data received on the I2C interface. Write this field
means sending data out on the I2C interface.
IC_SS_SCL_HCNT register (0x014)
The IC_SS_SCL_HCNT is a 16-bit RW register which allows setting the high period of the
SCL clock for standard-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE (Section 15.2.19) register being set to ‘b0. Write at other times has no
effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
Table 359. IC_SS_SCL_HCNT register bit assignments
Bit
[15:00]
304/584
Name
Type
IC_SS_SCL_HCNT RW
Reset
value
Description
SCL clock high period count for standard
speed.
This 16 bit field states the SCL clock high
16'h29B period count for standard speed. The minimum
valid value is 6, and hardware prevents that a
value less than this minimum will be written
(setting 6 if attempted)
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 360. IC_SS_SCL_HCNT sample calculations
15.2.7
SCL clock
I2C data rate - SS
frequency
(Kbps)
(MHz)
SCL high time
required min
(µs)
SCL high time
IC_SS_SCL_HCNT
actual
(hex/decimal)
(µs)
100
2
4
16‘h0008/’d8
4.00
100
6.6
4
16‘h001B/’d27
4.09
100
10
4
16‘h0028/’d40
4.00
100
75
4
16‘h012C/’d300
4.00
100
100
4
16‘h0190/’d400
4.00
100
125
4
16‘h01F4/’d500
4.00
100
1000
4
16’h0FA0/’d4000
4.00
IC_SS_SCL_LCNT register (0x018)
The IC_SS_SCL_LCNT is a 16 bit RW register which allows to set the low period of the SCL
clock for standard-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ‘b0. Write at other times has no effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
Table 361. IC_SS_SCL_LCNT register bit assignments
Bit
[15:00]
Name
IC_SS_SCL_LCNT
Type
Reset
value
RW
SCL clock low period count for standard
speed.
This 16 bit field states the SCL clock low
16'h310 period count for standard speed. The
minimum valid value is 8, and hardware
prevents that a value less than this minimum
will be written (setting 8 if attempted).
Description
:
Table 362. IC_SS_SCL_LCNT sample calculations
SCL clock
I2C data rate - SS
frequency
(Kbps)
(MHz)
SCL low time
required min
(µs)
SCL low
IC_SS_SCL_LCNT
timeactual
(hex/decimal)
(µs)
100
2
4.7
16‘h000A/’d10
5.00
100
6.6
4.7
16‘h0020/’d32
4.85
100
10
4.7
16‘h002F/’d47
4.70
100
75
4.7
16’h0161/’d353
4.71
100
100
4.7
16‘h01D6/’d470
4.70
Doc ID 022642 Rev 3
305/584
I2C bus ports (I2C)
RM0321
Table 362. IC_SS_SCL_LCNT sample calculations (continued)
15.2.8
SCL clock
I2C data rate - SS
frequency
(Kbps)
(MHz)
SCL low time
required min
(µs)
SCL low
IC_SS_SCL_LCNT
timeactual
(hex/decimal)
(µs)
100
125
4.7
16‘h024C/’d588
4.70
100
1000
4.7
16‘h125C/’d4700
4.70
IC_FS_SCL_HCNT register (0x01C)
The IC_FS_SCL_HCNT is a 16 bit RW register which allows to set the high period of the
SCL clock for fast-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ‘b0. Write at other times has no effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
Table 363. IC_FS_SCL_HCNT register bit assignments
Bit
[15:00]
Name
Type
IC_FS_SCL_HCNT
RW
Reset
value
Description
16'h64
SCL clock high period count for fast speed.
This 16 bit field states the SCL clock high period
count for fast speed. The minimum valid value is
6, and hardware prevents that a value less than
this minimum will be written (setting 6 if
attempted). It is used in high speed mode to
send the master code and START BYTE or
general CALL.
Table 364. IC_FS_SCL_HCNT sample calculations
306/584
SCL clock
I2C data rate - FS
frequency
(Kbps)
(MHz)
SCL high time
required min
(µs)
SCL high time
IC_FS_SCL_HCNT
actual
(hex/decimal)
(µs)
400
10
0.6
16‘h0006/’d6
0.60
400
25
0.6
16‘h000F/’d15
0.60
400
50
0.6
16‘h001E/’d30
0.60
400
75
0.6
16‘h002D/’d45
0.60
400
100
0.6
16‘h003C/’d60
0.60
400
125
0.6
16‘h004B/’d75
0.60
400
1000
0.6
16‘h0258/’d600
0.60
Doc ID 022642 Rev 3
RM0321
15.2.9
I2C bus ports (I2C)
IC_FS_SCL_LCNT register (0x020)
The IC_FS_SCL_LCNT is a 16 bit RW register which allows to set the low period of the SCL
clock for fast-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ‘b0. Write at other times has no effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
It is not necessary to configure this register if the I2C controller is enabled as slave
Table 365. IC_FS_SCL_LCNT register bit assignments
Bit
[15:00]
Name
Type
IC_FS_SCL_LCNT
RW
Reset
value
Description
16'h064
SCL clock low period count for fast speed.
This 16 bit field states the SCL clock low period
count for fast speed. The minimum valid value is
8, and hardware prevents that a value less than
this minimum will be written (setting 8 if
attempted). It is used in high speed mode to
send the master code and START BYTE or
general CALL.
Table 366. IC_FS_SCL_LCNT sample calculations
15.2.10
SCL clock
I2C data rate - FS
frequency
(Kbps)
(MHz)
SCL low time
required min
(µs)
SCL low time
IC_FS_SCL_LCNT
actual
(hex/decimal)
(µs)
400
10
1.3
16‘h000D/’d13
1.30
400
25
1.3
16‘h0021/’d33
1.32
400
50
1.3
16‘h0041/’d65
1.30
400
75
1.3
16‘h0062/’d98
1.31
400
100
1.3
16‘h0082/’d130
1.30
400
125
1.3
16‘h00A3/’d163
1.30
400
1000
1.3
16‘h0514/’d1300
1.30
IC_HS_SCL_HCNT register (0x024)
The IC_HS_SCL_HCNT is a 16 bit RW register which allows to set the high period of the
SCL clock for high-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE (Section 15.2.19) register being set to ‘b0. Write at other times has no
effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
It is not necessary to configure this register if the I2C controller is enabled as slave.
Doc ID 022642 Rev 3
307/584
I2C bus ports (I2C)
RM0321
Table 367. IC_HS_SCL_HCNT register bit assignments
Bit
[15:00]
Name
Type
IC_HS_SCL_HCNT
RW
Reset
Description
value
16'h0
00a
SCL clock high period count for high speed.
This 16 bit field states the SCL clock high
period count for high speed. The minimum
valid value is 6, and hardware prevents that a
value less than this minimum will be written
(setting 6 if attempted).
Table 368. IC_HS_SCL_HCNT sample calculations
15.2.11
SCL clock
I2C data rate frequency
HS (Kbps)
(MHz)
SCL high time I2C bus
required min loading
(pF)
(µs)
SCL high time
IC_HS_SCL_HCNT
actual
(hex/decimal)
(µs)
3400
100
60
100
16‘h0006/’d6
60
3400
125
60
100
16‘h0008/’d8
64
3400
1000
60
100
16‘h003C/’d60
60
3400
100
120
400
16‘h000C/’d12
120
3400
125
120
400
16‘h000F/’d15
120
3400
1000
120
400
16‘h0078/’d120
120
IC_HS_SCL_LCNT register (0x028)
The IC_HS_SCL_LCNT is a 16 bit RW register which allows to set the low period of the SCL
clock for high-speed mode.
Note:
1
This register can be written only when the I2C controller is disabled, which corresponds to
the IC_ENABLE register being set to ‘b0. Write at other times has no effect.
2
This register must be set before any I2C bus transaction can take place in order to ensure
proper I/O timing.
Table 369. IC_HS_SCL_LCNT register bit assignments
Bit
[15:00]
308/584
Name
Reset
value
IC_HS_SCL_LCNT
SCL clock low period count for high speed.
This 16 bit field states the SCL clock low period count
16'h001b for high speed. The minimum valid value is 8, and
hardware prevents that a value less than this
minimum will be written (setting 8 if attempted).
Description
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 370. IC_HS_SCL_LCNT sample calculations
15.2.12
SCL clock
I2C data rate frequency
HS (Kbps)
(MHz)
SCL low time I2C bus
required min loading
(pF)
(µs)
IC_HS_SCL_LCNT
(hex/decimal)
SCL low time
actual
(µs)
3400
100
160
100
16‘h0010/’d16
160
3400
125
160
100
16‘h0014/’d20
160
3400
1000
160
100
16‘h00A0/’d160
160
3400
100
320
400
16‘h0020/’d32
320
3400
125
320
400
16‘h0028/’d40
320
3400
1000
320
400
16‘h0140/’d320
320
IC_INTR_STAT register (0x02C)
The IC_INTR_STAT is a RO register which indicates the interrupt status of the I2C controller.
As bit assignments show in Table 371, each bit in this register is associated to an interrupt
source, and if a bit is set it indicates that relevant interrupt has been issued. These bits are
then cleared by reading the corresponding interrupt clear 1 bit register (Section 15.2.18).
Each bit has a corresponding mask bit in the IC_INTR_MASK register. The raw version of
these bits (prior to masking) is available in the IC_RAW_INTR_STAT register.
Table 371. IC_INTR_STAT register bit assignments
15.2.13
Type
Reset
Description
value
Bit
Name
[15:12]
Reserved
[11]
R_GEN_CALL
RO
1’h0
[10]
R_START_DET
RO
1’h0
[09]
R_STOP_DET
RO
1’h0
[08]
R_ACTIVITY
RO
1’h0
[07]
R_RX_DONE
RO
1’h0
[06]
R_TX_ABRT
RO
1’h0
[05]
R_RD_REQ
RO
1’h0
[04]
R_TX_EMPTY
RO
1’h0
[03]
R_TX_OVER
RO
1’h0
[02]
R_RX_FULL
RO
1’h0
[01]
R_RX_OVER
RO
1’h0
[00]
R_RX_UNDER
RO
1’h0
-
Read: undefined.
Refer to RM0319 SPEAr320S architecture and
functionality for a detailed description of these
interrupt sources.
IC_INTR_MASK register (0x030)
The IC_INTR_MASK is a RW register which allows to set the interrupt mask. As bit
assignments show in Table 372, each bit in this register is associated to an interrupt source,
Doc ID 022642 Rev 3
309/584
I2C bus ports (I2C)
RM0321
and if a bit is set it masks the relevant bit in the IC_INTR_STAT register. They are active
high, a value of ‘b0 prevents a bit from generating an interrupt.
Table 372. IC_INTR_MASK register bit assignments
Type
Reset
Description
value
Bit
Name
[15:12]
Reserved
[11]
M_GEN_CALL
RW
1’h1
[10]
M_START_DET
RW
1’h0
[09]
M_STOP_DET
RW
1’h0
[08]
M_ACTIVITY
RW
1’h0
[07]
M_RX_DONE
RW
1’h1
[06]
M_TX_ABRT
RW
1’h1
[05]
M_RD_REQ
RW
1’h1
[04]
M_TX_EMPTY
RW
1’h1
[03]
M_TX_OVER
RW
1’h1
[02]
M_RX_FULL
RW
1’h1
[01]
M_RX_OVER
RW
1’h1
[00]
M_RX_UNDER
RW
1’h1
-
Read: undefined. Write: should be zero.
Mask the corresponding bit in the
IC_INTR_STAT register.
Note:
M_GEN_CALL bit should be set to 1 when IC_ACK_GENERAL_CALL register is set to 0.
15.2.14
IC_RAW_INTR_STAT register (0x034)
The IC_RAW_INTR_STAT is a RO register which indicates the raw interrupt status (prior to
masking by IC_INTR_MASK register) of the I2C controller. As bit assignments show in
Table 373, each bit in this register is associated to an interrupt source, and if a bit is set it
indicates that relevant interrupt has been issued – regardless of masking.
Note:
Bit 9 and 10 are used only in debug mode.
There is no status bit for a RESTART condition because it is detected as a normal start
condition. The I2C protocol does not care whether it is a START or RESTART because both
conditions start from the IDLE state and send the message to all the slaves on the bus.
Table 373. IC_RAW_INTR_STAT register bit assignments
310/584
Bit
Name
[15:12]
Reserved
Type
Reset
Description
value
-
Read: undefined.
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 373. IC_RAW_INTR_STAT register bit assignments (continued)
15.2.15
Bit
Name
Type
Reset
Description
value
[11]
GEN_CALL
RO
1’h0
[10]
START_DET
RO
1’h0
[09]
STOP_DET
RO
1’h0
[08]
ACTIVITY
RO
1’h0
[07]
RX_DONE
RO
1’h0
[06]
TX_ABRT
RO
1’h0
[05]
RD_REQ
RO
1’h0
[04]
TX_EMPTY
RO
1’h0
[03]
TX_OVER
RO
1’h0
[02]
RX_FULL
RO
1’h0
[01]
RX_OVER
RO
1’h0
[00]
RX_UNDER
RO
1’h0
Refer to RM0319 SPEAr320S architecture and
functionality for a detailed description of these
interrupt sources.
IC_RX_TL register (0x038)
The IC_RX_TL is a 8-bit RW register which controls the level of entries (or above) in the
receive FIFO that triggers the RX_FULL interrupt.
Note:
This register is automatically cleared by hardware when buffer level goes below the
threshold.
Table 374. IC_RX_TL register bit assignments
Bit
Name
[15:08]
Reserved
[07:00]
RX_TL
Type
RW
Reset
Description
value
-
Read: undefined. Write: should be zero.
8’h00
RX_FULL interrupt threshold.
This 8 bit field value is the number of entries in the receive
FIFO of the I2C controller which defines the RX_FULL
interrupt threshold, as (RX_TL + 1). The RX_TL valid range
is 0 (8’h00) to 255 (8’hFF), resulting in threshold ranging
from 1 to 256.
Apart from numerical valid range, an additional restriction is
that hardware does not allow the RX_TL value to be set to a
value larger than the depth of the buffer. If an attempt is
made to do that, the actual value set will be the maximum
depth of the buffer.
Doc ID 022642 Rev 3
311/584
I2C bus ports (I2C)
15.2.16
RM0321
IC_TX_TL register (0x03C)
The IC_TX_TL is a 8 bit RW register which controls the level of entries (or below) in the
transmit FIFO that triggers the TX_EMPTY interrupt.
Note:
This register is automatically cleared by hardware when buffer level goes above the
threshold.
Table 375. IC_TX_TL register bit assignments
Bit
Name
Reset
value
Description
[15:08]
Reserved
-
Read: undefined. Write: should be zero.
8’h0
TX_EMPTY interrupt threshold.
This 8 bit field value is the number of entries in the
transmit FIFO of the I2C controller which directly
defines the TX_EMPTY interrupt threshold. The
TX_TL valid range is 0 (8’h00) to 255 (8’hFF),
resulting in threshold ranging from 0 to 255,),
Apart from numerical valid range, an additional
restriction is that hardware does not allow the
TX_TL value to be set to a value larger than the
depth of the buffer. If an attempt is made to do that,
the actual value set will be the maximum depth of
the buffer.
[07:00]
15.2.17
TX_TL
IC_CLR_INTR register (0x040)
The IC_CLR_INTR is a RO register which allows to clear the combined interrupt, all
individual interrupts and the IC_TX_ABRT_SOURCE register. To clear a specific interrupt,
relevant clearing register has to be used (Section 15.2.18).
Table 376. IC_CLR_INTR register bit assignments
15.2.18
Bit
Name
[15:01]
Reserved
[00]
CLR_INTR
Type
RO
Reset
Description
value
-
Read: undefined.
1’h0
Reading this register causes interrupt to be
cleared.
Individual interrupt clearing registers(0x044 - 0x068)
With the aim to clear an individual interrupt (among those supported by the I2C controller, a
specific RO register must be read, according to below:
Table 377. Individual interrupt clearing registers must be read
312/584
Register to be read
Relevant interrupt to be cleared
IC_CLR_RX_UNDER
RX_UNDER
IC_CLR_RX_OVER
RX_OVER
IC_CLR_TX_OVER
TX_OVER
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 377. Individual interrupt clearing registers must be read (continued)
Register to be read
Relevant interrupt to be cleared
IC_CLR_RD_REQ
RD_REQ
IC_CLR_TX_ABRT
TX_ABRT
IC_CLR_RX_DONE
RX_DONE
IC_CLR_ACTIVITY
ACTIVITY
IC_CLR_STOP_DET
STOP_DET
IC_CLR_START_DET
START_DET
IC_CLR_GEN_CALL
GEN_CALL
Note:
RX_FULL and TX_EMPTY interrupts have no a specific clearing register, because they are
automatically cleared by hardware when buffer level goes below/above the threshold,
respectively.
15.2.19
IC_ENABLE register (0x06C)
The IC_ENABLE is a RW register which allow enabling/disabling the I2C controller.
Table 378. IC_ENABLE register bit assignments
Bit
Name
[15:01]
Reserved
[00]
15.2.20
ENABLE
Type
RW
Reset
Description
value
-
Read: undefined. Write: should be zero.
1’h0
I2C controller enable.
Setting this bit, the I2C controller is enabled,
otherwise (bit cleared) it is disabled.
Software should not disable the I2C controller
while it is active. With this aim, the ACTIVITY
bit in IC_STATUS register can be polled by
software. When disabled, if the module was
transmitting, the I2C controller stops as well as
deletes the contents of the transmit buffer after
the current transfer is complete. If the module
was receiving, the I2C controller stops the
current transfer at the end of the current byte
and does not acknowledge the transfer.
IC_STATUS register (0x070)
The IC_STATUS is a RO register which is used to indicate the current transfer status and the
FIFO status. The status register may be read at any time. None of the bits in this register
request an interrupt.
Doc ID 022642 Rev 3
313/584
I2C bus ports (I2C)
RM0321
Table 379. IC_STATUS register bit assignments
Bit
Name
Reset
value
Description
[15:07]
Reserved
-
Read: undefined.
1’h0
Slave FSM activity status.
This bit reports the slave Finite State Machine
(FSM) status, according to the encoding:
‘b0, In IDLE state. = Not active.
‘b1, Not in IDLE state. = Active.
1’h0
Master FSM activity status.
This bit reports the master FSM status, according
to the encoding:
‘b0, In IDLE state. = Not active.
‘b1,Not in IDLE state. = Active.
Note: ACTIVITY field (bit[0]) in this register is the
OR of SLV_ACTIVITY and MST_ACTIVITY
bits.
1’h0
Receive FIFO completely full.
If set, this bit indicates that the receive FIFO is
completely full. This bit is cleared when the receive
FIFO contains one or more empty locations.
1’h0
Receive FIFO not empty.
If set, this bit indicates that the receive FIFO
contains one or more entries. This bit is cleared
when the receive FIFO is empty. This bit can be
polled by software to completely empty the receive
FIFO.
1’h1
Transmit FIFO completely empty.
If set, this bit indicates that the transmit FIFO is
completely empty. This bit is cleared when the
FIFO contains one or more valid entries. This bit
does not request an interrupt.
[06]
[05]
[04]
[03]
[02]
15.2.21
SLV_ACTIVITY
MST_ACTIVITY
RFF
RFNE
TFE
[01]
TFNF
1’h1
Transmit FIFO not full.
If set, this bit indicates that the transmit FIFO
contains one or more empty location (that is, it is
not full). This bit is cleared when it is full.
[00]
ACTIVITY
1’h0
I2C activity status.
IC_TXFLR and IC_RXFLR registers (0x074 - 0x078)
The IC_TXFLR (transmit FIFO level) and the IC_RXFLR (receive FIFO level) are RO
registers which contain the number of valid entries in the transmit and in the receive FIFO
buffer, respectively.
These registers increment whenever data is placed into the transmit or receive FIFO, and
decrement when data is taken from the transmit or receive FIFO. They are cleared when
either the I2C controller is disabled or whenever there is a transmission abort. Besides, the
IC_TXFLR register is cleared also if the slave bulk transfer mode is aborted.
314/584
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 380. IC_TXFLR and IC_RXFLR register bit assignments
15.2.22
Bit
Name
[31:04]
Reserved
[03:00]
TXFLR/ RXFLR
Type
RO
Reset
Description
value
-
Read: undefined. Write: should be zero.
4’h0
Transmit (or receive) FIFO level.
IC_SDA_HOLD (0x07C)
The IC_SDA_HOLD register controls the amount of hold time on the SDA signal after a
negative edge of SCL in both master and slave modes, in units of ic_clk period. The value
programmed must be less than the minimum hold time in each mode for the value to be
implemented: one cycle in master mode, seven cycles in slave mode.
The programmed SDA hold time cannot exceed at any time the duration of the low part of
SCL. Therefore, the programmed value cannot be higher than N_SCL_LOW-2, where
N_SCL_LOW is the duration of the low part of the SCL period measured in ic_clk cycles
Writes to this register succeed only when IC_ENABLE=0.
Table 381. IC_SDA_HOLD register bit assignments
15.2.23
Bit
Name
Type
Reset value
Description
[31:16]
Reserved
-
-
Reserved
[15:0]
IC_SDA_HO
RW
LD
16'h1
Sets the required SDA hold time in
units of ic_clk period.
IC_TX_ABRT_SOURCE register (0x080)
The IC_TX_ABRT_SOURCE (transmit abort source) is a RW register which indicates the
source of the transmission abort signal. This register is cleared whenever the processor
reads it or when the processor issues a clear signal to all interrupts.
Table 382. IC_TX_ABRT_SOURCE register bit assignments
Bit
Name
Type
Reset
Description
value
[31:16]
Reserved
RW
-
Read: undefined. Write: should be zero.
1’h0
Slave requesting data to transmit.
If set, this bit indicates that the slave is
requesting data to transmit and the user wrote
a read command into the transmit FIFO.
1’h0
Slave lost the bus.
If set, this bit indicates that the slave lost the
bus while it was transmitting data to a remote
master. ARB_LOST bit in this register will be
set at the same time.
[15]
[14]
ABRT_SLVRD_INTX
RW
ABRT_SLV_ARBLOST
RW
Doc ID 022642 Rev 3
315/584
I2C bus ports (I2C)
RM0321
Table 382. IC_TX_ABRT_SOURCE register bit assignments (continued)
Bit
[13]
Type
ABRT_SLVFLUSH_TXFI
FO
RW
Reset
Description
value
1’h0
Slave receive a read command.
If set, this bit indicates that the slave has
received a read command and some data
exists in the transmit FIFO, so the slave issues
a TX_ABRT to flush old data in transmit FIFO.
[12]
ARB_LOST
RW
1’h0
Master lost arbitration.
If set,this bit indicates that either master has
lost arbitration or, if ABRT_SLV_ARBLOST bit
in this register is also set, the slave transmitter
has lost arbitration.
[11]
ARB_MASTER_DIS
RW
1’h0
Attempt to use disabled master.
If set, this bit indicates that user attempt to use
disabled master.
1’h0
Disable restart and master send a read
command. If set, this bit indicates that the
restart is disabled (IC_RESTART_EN bit
cleared in IC_CON register) and the master
sends a read command in 10 bit addressing
mode.
1’h0
Disable restart and user send a start byte.
If set, this bit indicates that the restart is
disabled (IC_RESTART_EN bit cleared in
IC_CON register) and the user is trying to
send a start byte.
1’h0
Disable restart and user try to use master to
send data.
If set, this bit indicates that the restart is
disabled (IC_RESTART_EN bit cleared in
IC_CON register) and the user is trying to use
the master to send data in high-speed mode.
1’h0
Master sent an acknowledge start byte.
If set, this bit indicates that the master has sent
a start byte which was acknowledged (wrong
behavior).
1’h0
Master in high speed mode.
If set, this bit indicates that the master is in
high-speed mode and the high-speed master
code was acknowledge (wrong behavior).
1’h0
Master sent a general call.
If set, this bit indicates that the master sent a
general call (GCALL), but the user
programmed the byte following the GCALL to
be a read from the bus.
[10]
[09]
[08]
[07]
[06]
[05]
316/584
Name
ABRT_10B_RD_NORST
RT
ABRT_SBYTE_
NORSTRT
RW
RW
ABRT_HS_ NORSTRT
ABRT_SBYTE_ACKDET
ABRT_HS_ACKDET
RW
RW
RW
ABRT_GCALL_READ
RW
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 382. IC_TX_ABRT_SOURCE register bit assignments (continued)
Bit
[04]
[03]
[02]
15.2.24
Name
Type
ABRT_GCALL_NOACK
ABRT_TXDATA_ NOACK
ABRT_10ADDR2_
NOACK
[01]
ABRT_10ADDR1_
NOACK
[00]
ABRT_7B_ADDR_
NOACK
RW
RW
RW
RW
RW
Reset
Description
value
1’h0
Master sent a general call not acknowledge.
If set, this bit indicates that the master sent a
general call (GCALL) and no slave on the bus
responded with an acknowledgement.
1’h0
Master receive acknowledge.
If set, this bit indicates that the master has
received an acknowledgement for the address
but, when it sent data byte following the
address, it did not receive an acknowledge
from the remote slave.
1’h0
Master in 10 bit addressing mode and 2nd
address byte.
If set, this bit indicates that the master is in 10
bit address mode and the 2nd address byte of
the 10 bit address was not acknowledged by
any slave.
1’h0
Master in 10 bit addressing mode and 1st
address byte.
If set, this bit indicates that the master is in 10
bit address mode and the 1st address byte of
the 10 bit address was not acknowledged by
any slave.
1’h0
Master in 7 bit addressing mode.
If set, this bit indicates that the master is in 7
bit address mode and the address sent was
not acknowledged by any slave.
IC_DMA_CR register (0x088)
The IC_DMA_CR is a RW register which is used to enable the DMA controller interface
operation.There is a separate bit for transmit and receive operation.
Note:
This register can be programmed regardless of the state of IC_ENABLE register.
Table 383. IC_DMA_CR register bit assignments
Bit
Name
Reset value Description
[15:02]
Reserved
[01]
TDMAE
1’h0
Transmit DMA enable.
Setting this bit, it enables the transmit FIFO DMA
channel. Otherwise (bit cleared) it is disabled.
[00]
RDMAE
1’h0
Receive DMA enable.
Setting this bit, it enables the receive FIFO DMA
channel. Otherwise (bit cleared) it is disabled.
Read. undefined write: should be zero.
Doc ID 022642 Rev 3
317/584
I2C bus ports (I2C)
15.2.25
RM0321
IC_DMA_TDLR register (0x08C)
The IC_DMA_TDLR (DMA transmit data level) is a RW register which allows controlling the
DMA request as a function of transmit FIFO level.
Table 384. IC_DMA_TDLR register bit assignments
Bit
Name
[15:03]
Reserved
Read: undefined. Write: should be zero.
DMATDL
Transmit data level.
This filed controls the level at which a DMA request is
made by the transmit logic. It means that a DMA request
is generated when both the number of valid data entries
in the transmit FIFO is equal to or below this field value,
and the transmit FIFO channel is enabled (TDMAE is ‘b1
in the IC_DMA_CR register)
[02:00
15.2.26
Reset value
3’h0
Description
IC_DMA_RDLR register (0x090)
The IC_DMA_RDLR (DMA receive data level) is a RW register which allows controlling the
DMA request as a function of receive FIFO level.
Table 385. IC_DMA_RDLR register bit assignments
Bit
Name
[15:03]
Reserved
Read: undefined. Write: should be zero.
DMARDL
Receive data level.
This bit field controls the level at which a DMA request is
made by the receive logic. It means that a DMA request is
generated when both the number of valid data entries in
the receive FIFO is equal to or more than this field
value+1, and the receive FIFO channel is enabled
(RDMAE is ‘b1 in the IC_DMA_CR register).
[02:00]
15.2.27
Reset value Description
3’h0
IC_COMP_PARAM1 register (0x0F4)
The IC_COMP_PARAM1 (component parameter register 1) is a RO register which contains
encoded information about the component’s parameter setting.
318/584
Doc ID 022642 Rev 3
RM0321
I2C bus ports (I2C)
Table 386. IC_COMP_PARAM register bit assignments
Bit
Name
[31:24]
Reserved
[23:16]
Type
TX_BUFFER_DEPTH
RO
[15:08]
RX_BUFFER_DEPTH
[07]
ADD_ENCODED_PARAMS RO
[06]
[05]
[04]
HAS_DMA
RO
RO
INTR_IO
RO
HC_COUNT_VALUES
RO
Reset
Description
value
-
Read: undefined.
8’h07
Transmission buffer depth.
This 8 bit field reports the transmission buffer
depth, according to the encoding:
– 8‘h00 = Reserved.
– 8‘h01 = 2
– 8‘h02 = 3
… =...
– 8‘hFF = 256
8’h07
Receive buffer depth.
This 8 bit field reports the receive buffer
depth, according to the encoding:
– 8‘h00 = Reserved.
– 8‘h01 = 2
– 8‘h02 = 3
… =...
– 8‘hFF = 256
1’h1
Add encoded parameters.
If set, this bit indicates that the encoded
parameters can be read via software.
1’h1
DMA interface.
If set, this bit indicates that the I2C controller
provides for a set of DMA controller interface
signals.
1’h1
Interrupt output port.
This bit indicates whether all the interrupt
sources are combined into a single output
(INTR_IO set to 1‘b1) or each interrupt
source has its own output (INTR_IO set to
1‘b0).
1’h0
Hard code count values.
Controls the readability of the CNT register. If
set, the CNT register is RO else the CNT
register is RW.
Doc ID 022642 Rev 3
319/584
I2C bus ports (I2C)
RM0321
Table 386. IC_COMP_PARAM register bit assignments (continued)
Bit
[03:02]
[01:00]
320/584
Name
MAX_SPEED_MODE
APB_DATA_WIDTH
Type
RO
RO
Reset
Description
value
2’h3
Maximum speed mode.
This 2 bit field indicates the maximum
supported operation mode for the I2C
controller, according to the encoding:
– 2‘b00 = Reserved.
– 2‘b01 = Standard.
– 2‘b10 = Fast.
– 2‘b11 = High.
2’h1
Data width.
This 2 bit field indicates the APB data bus
width, according to the encoding:
– 2‘b00 = 8 bits
– 2‘b01 = 16 bits
– 2‘b10 = 32 bits
– 2‘b11 = Reserved
Doc ID 022642 Rev 3
RM0321
Synchronous serial ports (SSP)
16
Synchronous serial ports (SSP)
16.1
Register summary
The SSP can be fully configured by programming its registers which can be accessed
through the APB slave interface at the following base address:
Table 387. SSP base address
SSP instance
Base address
SSP0
0XD010.0000
SSP1
0XA500.0000
SSP2
0XA600.0000
Table 388. SSP registers summary
Name
Offset Type
Width Reset
(bit)
value
Description
SSPCR0
0x000
R/W
16
16’h0
Control register 0
SSPCR1
0x004
R/W
4
4’h0
Control register 1
SSPDR
0x008
R/W
16
-
Receive FIFO (read) and transmit FIFO (write)
data register
SSPSR
0x00C RO
5
5’h3
Status register
SSPCPSR
0x010
R/W
8
8’h0
Clock prescale register
SSPIMSC
0x014
R/W
4
4’h0
Interrupt mask set and clear register
SSPRIS
0x018
RO
4
4’h8
Raw interrupt status register
SSPMIS
0x01C RO
4
4’h0
Masked interrupt status register
SSPICR
0x020
WO
4
4’h0
Interrupt clear register
SSPDMACR
0x024
R/W
2
2’h0
DMA control register
Reserved
0x028
to
0xFDC
-
-
Reserved
SSPPeriphID0
0xFE0 RO
8
8’h22
Peripheral identification register bits 7:0
SSPPeriphID1
0xFE4 RO
8
8’h10
Peripheral identification register bits 15:8
SSPPheriphID2 0xFE8 RO
8
8’h4
Peripheral identification register bits 23:16
SSPPheriphID3 0xFEC RO
8
8’h0
Peripheral identification register bits 31:24
SSPCellID0
0xFF0 RO
8
8’hD
Identification register bits 7:0
SSPCellID1
0xFF4 RO
8
8’hF0
Identification register bits 15:8
SSPCellID2
0xFF8 RO
8
8’h5
Identification register bits 23:16
SSPCellID3
0xFFC RO
8
8’hB1
Identification register bits 31:24
Doc ID 022642 Rev 3
321/584
Synchronous serial ports (SSP)
RM0321
16.2
Register description
16.2.1
SSPCR0 register
SSPCR0 is control register 0 and contains five bit fields that control various functions within
the SSP.
Table 389. SSPCR0 register bit assignments
Bit
Type
Description
[15:08]
SCR
R/W
Serial clock rate. The value SCR is used to generate the transmit and
receive bit rate of the SSP.
The bit rate is:
PCLK/CPSDVSR * (1 + SCR)
Where CPSDVSR is an even value from 2 to 254, programmed through
the SSPCPSR register and SCR is a value from 0 to 255.
[07]
SPH
R/W
SSPx_CLK phase (applicable to Motorola SPI frame format only).
[06]
SPO
R/W
SSPx_CLK polarity (applicable to Motorola SPI frame format only).
R/W
Frame format:
2’b00 = Motorola SPI frame format
2’b01 = TI synchronous serial frame format
2’b10 = National Microwire frame format
2’b11 = Reserved, undefined operation
R/W
Data size select:
4’b0000 = Reserved, undefined operation
4’b0001 = Reserved, undefined operation
4’b0010 = Reserved, undefined operation
4’b0011 = 4 bit data
4’b0100 = 5 bit data
…….
4’b1110 = 15 bit data
4’b1111 = 16 bit data
[05:04]
[03:00]
16.2.2
Name
FRF
DSS
SSPCR1 register
SSPCR1 is the control register 1 and contains four different bit fields, which control various
functions within the SSP.
322/584
Doc ID 022642 Rev 3
RM0321
Synchronous serial ports (SSP)
Table 390. SSPCR1 register bit assignments
Bit
Name Type
[15:04] -
[03]
[02]
[01]
[00]
16.2.3
SOD
MS
SSE
LBM
Description
-
Reserved. Read unpredictable, should be written as 0
R/W
Slave-mode output disable. This bit is relevant only in the slave mode
(MS=1). In multiple-slave systems, it is possible for an SSP master to
broadcast a message to all slaves in the system while ensuring that only
one slave drives data onto its serial output line. In such systems the receive
lines from multiple slaves could be tied together.
To operate in such systems, the SOD bit can be set if the SSP slave is not
supposed to drive the transmit line.
1’b0 = SSP can drive the transmit output in slave mode.
1’b1 = SSP must not drive the transmit output in slave mode.
R/W
Master or slave mode select. This bit can be modified only when the SSP is
disabled (SSE=0):
1’b0 = device configured as master (default)
1’b1 = device configured as slave.
R/W
Synchronous serial port enable:
1’b0 = SSP operation disabled
1’b1 = SSP operation enabled.
R/W
Loop back mode:
1’b0 = Normal serial port operation enabled
1’b1 = Output of transmit serial shifter is connected to input of receive serial
shifter internally.
SSPDR register
SSPDR is the data register and is 16 bits wide. When SSPDR is read, the entry in the
receive FIFO (pointed to by the current FIFO read pointer) is accessed. As data values are
removed by the SSP receive logic from the incoming data frame, they are placed into the
entry in the receive FIFO (pointed to by the current FIFO write pointer).
When SSPDR is written to, the entry in the transmit FIFO (pointed to by the write pointer), is
written to. Data values are removed from the transmit FIFO one value at a time by the
transmit logic. It is loaded into the transmit serial shifter, then serially shifted out onto the
transmit pin at the programmed bit rate.
When a data size of less than 16 bits is selected, the user must right-justify data written to
the transmit FIFO. The transmit logic ignores the unused bits. Received data less than 16
bits is automatically right-justified in the receive buffer.
When the SSP is programmed for National Microwire frame format, the default size for
transmit data is eight bits (the most significant byte is ignored). The receive data size is
controlled by the programmer. The transmit FIFO and the receive FIFO are not cleared even
when SSE is set to zero. This allows the software to fill the transmit FIFO before enabling
the SSP. Table 391 shows the bit assignments for SSPDR.
Doc ID 022642 Rev 3
323/584
Synchronous serial ports (SSP)
RM0321
Table 391. SSPDR register bit assignments
Bit
Name
[15:00] DATA
16.2.4
Type
Description
R/W
Transmit/receive FIFO:
Read = Receive FIFO
Write = Transmit FIFO
You must right justify data when the SSP is programmed for a data size
that is less then 16 bits. Unused bits are ignored by transmit logic. The
receive logic automatically right justifies.
SSPSR register
SSPSR is a read only register that contains bits that indicates the FIFO fill status and the
SSP busy status.
Table 392. SSPSR register bit assignments
16.2.5
Bit
Name
Type
Description
[15:05]
-
-
Reserved, read unpredictable, should be written as 0
[04]
BSY
RO
SSP busy flag:
1’b0 = SSP is idle
1’b1 = SSP is currently transmitting or receiving a frame
[03]
RFF
RO
Receive FIFO Full:
1’b0 = receive FIFO is not full
1’b1 = Receive FIFO is full
[02]
RNE
RO
Receive FIFO not empty:
1’b0 = Receive FIFO is empty
1’b1 = receive FIFO is not empty
[01]
TNF
RO
Transmit FIFO not full:
1’b0 = Transmit FIFO is full
1’b1 = transmit FIFO is not full
[00]
TFE
RO
Transmit FIFO empty:
1’b0 = Transmit FIFO is not empty
1’b1 = transmit FIFO is empty
SSPCPSR register
SSPCPSR is the clock prescale register and specifies the division factor by which the PCLK
must be internally divided before further use.
The value programmed into this register must be an even number between 2 to 254. The
least significant bit of the programmed number is hard-coded to zero. If an odd number is
written to this register, data read back from this register has the least significant bit as zero.
324/584
Doc ID 022642 Rev 3
RM0321
Synchronous serial ports (SSP)
Table 393. SSPCPSR register bit assignments
Bit
Name
[15:08] -
Type
Description
-
Reserved, read unpredictable, must be written as 0.
[07:00] CPSDVSR R/W
16.2.6
Clock prescale divisor. Must be an even number from 2 to 254,
depending on the frequency of PCLK. The least significant bit always
returns zero on reads.
SSPIMSC register
The SSPIMSC register is the interrupt mask set or clear register. It is a read/write register.
On a read this register gives the current value of the mask on the relevant interrupt. A write
of 1 to the particular bit sets the mask, enabling the interrupt to be read. A write of 0 clears
the corresponding mask. All the bits are cleared to 0 when reset.
Table 394. SSPIMSC register bit assignments
16.2.7
Bit
Name
Type
Description
[15:04]
-
-
Reserved, read as 0, do not modify.
[03]
TXIM
R/W
Transmit FIFO interrupt mask:
1’b0 = Tx FIFO half empty or less condition interrupt is masked.
1’b1 = Tx FIFO half empty or less condition interrupt is not masked
[02]
RXIM
R/W
Receive FIFO interrupt mask:
1’b0 = Rx FIFO half full or less condition interrupt is masked
1’b1 = Rx FIFO half full or less condition interrupt is not masked.
[01]
RTIM
R/W
Receive timeout interrupt mask:
1’b0 = Rx FIFO not empty and no read prior to timeout period interrupt is
masked
1’b1= Rx FIFO not empty and no read prior to timeout period interrupt is
not masked.
[00]
RORI
M
R/W
Receive overrun interrupt mask:
1’b0 = Rx FIFO written to while full condition interrupt is masked
1’b1= Rx FIFO written to while full condition interrupt is not masked.
SSPRIS register
The SSPRIS register is the raw interrupt status register. It is a read-only register. On a read
this register gives the current raw status value of the corresponding interrupt prior to
masking. A write has no effect.
Table 395. SSPRIS register bit assignments
Bit
Name
Type
Description
[15:04] -
-
Reserved, read as 0, do not modify.
[03]
TXRIS
RO
Gives the raw interrupt state (prior to masking) of the transmit interrupt
[02]
RXRIS
RO
Gives the raw interrupt state (prior to masking) of the receive interrupt
Doc ID 022642 Rev 3
325/584
Synchronous serial ports (SSP)
RM0321
Table 395. SSPRIS register bit assignments
16.2.8
Bit
Name
Type
Description
[01]
RTRIS
RO
Gives the raw interrupt state (prior to masking) of the receive time-out
interrupt
[00]
RORRIS RO
Gives the raw interrupt state (prior to masking) of the receive over-run
interrupt
SSPMIS Register
The SSPMIS register is the masked interrupt status register. It is a read-only register. On a
read this register gives the current masked status value of the corresponding interrupt. A
write has no effect.
Table 396. SSPMIS register bit assignments
Bit
Name
[15:04] -
16.2.9
Type
Description
-
Reserved, read as 0, do not modify
[03]
TXMIS RO
Gives the transmit FIFO masked interrupt state (after masking) of the
transmit interrupt.
[02]
RXMIS RO
Gives the transmit FIFO masked interrupt state (after masking) of the
receive interrupt.
[01]
RTMIS RO
Gives the transmit FIFO masked interrupt state (after masking) of the
receive time-out interrupt.
[00]
RORM
RO
IS
Gives the transmit FIFO masked interrupt state (after masking) of the
receive over-run interrupt.
SSPICR register
The SSPICR register is the interrupt clear register and is write-only. On a write of 1, the
corresponding interrupt is cleared. A write of 0 has no effect.
Table 397. SSPICR register bit assignments
Bit
16.2.10
Name
Type
Description
[15:02] -
-
Reserved, read as 0, do not modify.
[01]
RTIC
WO
Clear the receive time-out interrupt.
[00]
RORIC
WO
Clear the receive over-run interrupt.
SSPDMACR register
The SSPDMACR register is the DMA control register. It is a read/write register. All the bits
are cleared to 0 on reset.
326/584
Doc ID 022642 Rev 3
RM0321
Synchronous serial ports (SSP)
Table 398. SSPDMACR register bit assignments
16.2.11
Bit
Name
Type
Description
[15:02]
-
-
Reserved, read as 0, do not modify.
[01]
TXDMAEn
R/W
If this bit is set to 1, DMA for the transmit FIFO is enabled.
[00]
RXDMAEn
R/W
If this bit is set to 1, DMA for the receive FIFO is enabled.
PHERIPHID0 register
Table 399. PHERIPHID0 register bit assignments
16.2.12
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PartNumber0 RO
These bits read back as 0x22
PHERIPHID1 register
Table 400. PHERIPHID1 register bit assignment
16.2.13
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:04]
Designer0
RO
These bits read back as 0x1
[03:00]
PartNumber1 RO
These bits read back as 0x0
PHERIPHID2 register
Table 401. PHERIPHID2 register bit assignments
16.2.14
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:04]
Revision
RO
These bits read back as 0x0
[03:00]
Designer1
RO
These bits read back as 0x4
PHERIPHID3 register
Table 402. PHERIPHID3 register bit assignments
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
Configuration
RO
These bits read back as 0x00
Doc ID 022642 Rev 3
327/584
Synchronous serial ports (SSP)
16.2.15
RM0321
PCELLID0 register
Table 403. PCELLID0 register bit assignments
16.2.16
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLID0
RO
These bits read back as 0x0D
PCELLID1 register
Table 404. PCELLID1 register bit assignment
16.2.17
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLID1
RO
These bits read back as 0xF0
PCELLID2 register
Table 405. PCELLID2 register bit assignment
16.2.18
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLID2
RO
These bits read back as 0x05
PCELLID3 register
Table 406. PCELLID3 register bit assignment
328/584
Bit
Name
Type
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLID3
RO
These bits read back as 0xB1
Doc ID 022642 Rev 3
RM0321
Fast infrared port (IRDA)
17
Fast infrared port (IRDA)
17.1
Register summary
The FIrDA controller can be fully configured by programming its 32-bit wide registers which
can be accessed at the base address 0xD100.0000.
FIrDA controller registers can be logically arranged in three main groups:
●
Control and status registers (listed in Table 407), for IrDA configuration
●
Data registers (listed in Table 408), containing the data bytes
●
Interrupt and DMA registers (listed in Table 409), for managing interrupts and DMA
requests
Table 407. FIrDA controller control and status registers summary
Name
Offset
Type Reset value
Description
IrDA_CON
0x10
RW
32’h0
IrDA control.
IrDA_CONF 0x14
RW
32’h00020EA6 IrDA configuration.
IrDA_PARA 0x18
RW
32’h00460000 IrDA parameter.
IrDA_DV
0x1C
RW
32’h0
IrDA divider.
IrDA_STAT
0x20
RO
32’h0
IrDA status.
IrDA_TFS
0x24
WO
32’h0
Transmission frame size.
IrDA_RFS
0x28
RO
32’h0
Reception frame size.
Table 408. FIrDA controller data registers summary
Name
Offset
Type Reset value
Description
IrDA_TXB
0x2C
WO
32’h0
Transmission buffer.
IrDA_RXB
0x30
RO
32’h0
Reception buffer.
Table 409. FIrDA controller interrupt and DMA registers summary
Name
Offset
Type Reset value
Description
IrDA_IMSC
0xE8
RW
32’h0
Interrupt mask control.
IrDA_RIS
0xEC
RO
32’h0
Raw interrupt status.
IrDA_MIS
0xF0
RO
32’h0
Masked interrupt status.
IrDA_ICR
0xF4
WO
32’h0
Interrupt clear.
IrDA_ISR
0xF8
WO
32’h0
Interrupt set.
IrDA_DMA
0xFC
RW
32’h0
DMA control.
Doc ID 022642 Rev 3
329/584
Fast infrared port (IRDA)
RM0321
17.2
Register description
17.2.1
IrDA_CON register
The IrDA_CON (control) is a RW register which allows to control the FIrDA controller.
Table 410. IrDA_CON register bit assignments
Bit
Name
[31:01] Reserved
[00]
17.2.2
RUN
Reset value Description
-
Read: undefined. Write: should be zero.
1’h0
Enable FIrDA controller.
Enable the FIrDA controller according to the encoding:
1‘b0 = FIrDA controller switches to the inactive state.
1‘b1 = FIrDA controller switches to the listening state.
IrDA_CONF register
The IrDA_CONF (configuration) is a RW register which is able to configure the FIrDA
controller. This register should only be modified when the FIrDA controller is disabled by
clearing the bit RUN of the IrDA_CON register.
Table 411. IrDA_CONF register bit assignments
Bit
Name
Reset value Description
[31:21]
Reserved
-
Read: undefined. Write: should be zero.
1’h0
Polarity of TX pulses.
This bit indicates the polarity of the TX pulses generated
by the modulation unit, according to the encoding:
– 1‘b0 = Active high (default).
– 1‘b1 = Active low.
1’h0
Polarity of RX pulses.
This bit indicates the polarity of the RX pulses generated
by the demodulation unit, according to the encoding:
– 1‘b0 = Active low (default).
– 1‘b1 = Active high.
3’h2
Burst size.
This 3 bit field indicates the value of the burst size,
according to the encoding:
– 3‘b000 = 1 word
– 3‘b001 = 2 words
– 3‘b010 = 4 words (default)
Any other value = Reserved
Note: DMA controller does not support a burst size of 2
words.
[20]
[19]
[18:16]
330/584
POLTX
POLRX
BS
Doc ID 022642 Rev 3
RM0321
Fast infrared port (IRDA)
Table 411. IrDA_CONF register bit assignments (continued)
Bit
Name
Reset value Description
[15:13]
Reserved
-
Read: undefined. Write: should be zero.
13’h0EA6
Reception abort timer value.
This 13 bit field indicates the reception abort timer value,
according to the encoding:
Value firda_clk [MHz] Time gap
13‘b0110000110101 4010 ms
13‘b0111010100110 48 (default)10 ms
13‘b1000100010111 5610 ms
13‘b1111110111101 10410 ms
Note: A frame with a single pair of characters with a
time gap greater than 10 ms is considered as an
invalid frame. The reception abort timer Tabort of
the synchronization unit has to be programmed
with RATV accordingly to the following equation:
RATV = (Tabort · firda_clk) / 128.
[12:00]
17.2.3
RATV
IrDA_PARA register
The IrDA_PARA (parameter) is a RW register which states the transmission parameters.
This register should only be modified when the FIrDA controller is disabled by clearing the
bit RUN of the IrDA_CON register.
Table 412. IrDA_PARA register bit assignments
Bit
Name
Reset value Description
[31:28]
Reserved
-
Read: undefined. Write: should be zero.
[27:16]
MNRB
12’h046
Maximum number of received bytes.
This 12 bit field indicates the maximum number of
received bytes, according to the encoding:
– 12‘b000001000110 = 70 bytes (default)
– 12‘b000010000110 = 134 bytes
– 12‘b000100000110 = 262 bytes
– 12‘b001000000110 = 518 bytes
– 12‘b010000000110 = 1030 bytes
– 12‘b100000000110 = 2054 bytes
Note: In FIR mode, the effective maximum number
of received bytes is data size + 6 bytes,
including the information byte, the address
and control byte, and the 4 CRC bytes.
Note: This field should be programmed according to
the negotiated data size (see IrLAP
specification).
[15:08]
Reserved
-
Read: undefined. Write: should be zero.
Doc ID 022642 Rev 3
331/584
Fast infrared port (IRDA)
RM0321
Table 412. IrDA_PARA register bit assignments (continued)
Bit
[07:02]
[01:00]
17.2.4
Name
ABF
MODE
Reset value Description
6’h0
Number of additional beginning flags.
This 6 bit field indicates the number of additional
beginning flags, according to the encoding:
– 6‘b000000 = No additional beginning flags.
– 6‘b000001 = 1.
…=…
– 6‘b110000 = 48.
Any other value = Reserved.
2’h0
Infrared mode.
This 2 bit field allows to select the used infrared
mode, according to the encoding:
– 2‘b00 = SIR
– 2‘b01 = MIR
– 2‘b10 = FIR
– 2’b11 = Reserved
IrDA_DV register
The IrDA_DV (divider) is a RW register which allows to set the clock divider within the baud
generation unit to get the en_symb and en_pulse signals. This register should only be
modified when the FIrDA controller is disabled by clearing the bit RUN of the IrDA_CON
register.
Table 413. IrDA_DV register bit assignments
Bit
Name
Reset value Description
[31:27]
Reserved
-
Read: undefined. Write: should be zero.
11’h0
Decrement value of fractional divider.
This 11 bit field represents the decrement value of the
fractional divider, following the formula DEC = L – K,
where L and K values are listed in RM0319
SPEAr320S architecture and functionality.
8’h0
Increment value of fractional divider.
This 8 bit field indicates the increment value of the
fractional divider, following the formula INC = K,
where K values are listed in RM0319 SPEAr320S
architecture and functionality.
Note: It always has to be K < L. K = L is not allowed,
apart from K = L = 0, resulting in en_pulse
equal to irda_clk.
8’h0
Denominator of the integer divider.
This 8 bit field allows to set the denominator of the
integer divider, which is (N+1). The N value can range
from 0 (8’h00) to 255 (8’hFF).
[26:16]
[15:08]
[07:00]
332/584
DEC
INC
N
Doc ID 022642 Rev 3
RM0321
17.2.5
Fast infrared port (IRDA)
IrDA_STAT register
The IrDA_STAT (status) is a RO register which reflects the status of the FIrDA controller.
Table 414. IrDA_STAT register bit assignments
17.2.6
Bit
Name
Reset value Description
[31:02]
Reserved
-
Read: undefined.
[01]
TXS
1’h0
If set, the FIrDA controller is in the transmission state.
[00]
RXS
1’h0
If set, the FIrDA controller is in the reception state.
IrDA_TFS register
The IrDA_TFS (transmission frame size) is a WO register which indicates the size of the
frame to be transmitted by the FIrDA controller.
Table 415. IrDA_TFS register bit assignments
Bit
Name
Reset value Description
[31:12]
Reserved
-
Write: should be zero.
12’h0
Transmission frame size.
This 12 bit field indicates the size of the transmitted
frame, according to the encoding:
– 12‘b000000000000 = Reset value.
– 12‘b000000000001 = 2 data bytes.
– 12‘b000000000010 = 3 data bytes.
…=…
– 12‘b100000000001 = 2050 data bytes.
Any other value = Reserved.
Note: The number of transmitted bytes is data size +
the information byte + the address and control
byte.
[11:00]
TFS
Doc ID 022642 Rev 3
333/584
Fast infrared port (IRDA)
17.2.7
RM0321
IrDA_RFS register
The IrDA_RFS (reception frame size) is a RO register which states the size of the received
frame.
Table 416. IrDA_RFS register bit assignments
Bit
Name
Reset value Description
[31:12]
Reserved
-
Read: undefined.
12’h0
Reception frame size.
This 12 bit field indicates the size of the received
frame, according to the encoding:
– 12‘b000000000000 = Reset value.
– 12‘b000000000100 = 4 data bytes.
…=…
– 12‘b100000000110 = 2054 data bytes.
Any other value = Reserved
Note: In SIR and MIR modes, the number of
received bytes is data size + 4 bytes, including
the information byte, the address and control
byte, and the 2 CRC bytes.
Note: In FIR mode, the number of received bytes is
data size + 6 bytes, including the information
byte, the address and control byte, and the 4
CRC bytes.
[11:00]
17.2.8
RFS
IrDA_TXB register
The IrDA_TXB (transmission buffer) is a WO register which contains the transmit data bytes
in transmission mode.
Table 417. IrDA_TXB register bit assignments
Bit
Name
Reset value Description
[31:00]
TXD
32’h0
Transmission data
Note:
Between two write accesses there must be a pause of one clock cycle.
17.2.9
IrDA_RXB register
The IrDA_RXB (reception buffer) is a RO register which contains the receive data bytes in
reception mode.
Table 418. IrDA_RXB register bit assignments
334/584
Bit
Name
Reset value Description
[31:00]
RXD
32’h0
Reception data
Doc ID 022642 Rev 3
RM0321
17.2.10
Fast infrared port (IRDA)
IrDA_IMSC register
The IrDA_IMSC (interrupt mask control) is a RW register which allows to enable the FIrDA
controller interrupts.
Reading this register gives the current value of the interrupts mask (1‘b0 means interrupt
disabled, 1’b1 interrupt enabled).
Writing a 1‘b1 to a particular bit ([0:7]) sets the corresponding mask of that interrupt,
whereas writing a 1‘b0 clears the relevant interrupt.
Table 419. IrDA_IMSC register bit assignments
17.2.11
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined. Write: should be zero.
[07]
FD
1’h0
Frame detected interrupt mask
[06]
FI
1’h0
Frame invalid interrupt mask
[05]
SD
1’h0
Signal detected interrupt mask
[04]
FT
1’h0
Frame transmitted interrupt mask
[03]
BREQ
1’h0
BREQ interrupt mask
[02]
LBREQ
1’h0
LBREQ interrupt mask
[01]
SREQ
1’h0
SREQ interrupt mask
[00]
LSREQ
1’h0
LSREQ interrupt mask
IrDA_RIS register
The IrDA_RIS (raw interrupt status) is a RO register which reflects the current raw status
value of the corresponding interrupt (before masking by IrDA_IMSC).
Table 420. IrDA_RIS register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[07]
FD
1’h0
Frame detected raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[06]
FI
1’h0
Frame invalid raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[05]
SD
1’h0
Signal detected raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[04]
FT
1’h0
Frame transmitted raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
Doc ID 022642 Rev 3
335/584
Fast infrared port (IRDA)
RM0321
Table 420. IrDA_RIS register bit assignments (continued)
Bit
17.2.12
Name
Reset value Description
[03]
BREQ
1’h0
BREQ raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[02]
LBREQ
1’h0
LBREQ raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[01]
SREQ
1’h0
SREQ raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[00]
LSREQ
1’h0
LSREQ raw interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
IrDA_MIS register
The IrDA_MIS (masked interrupt status) is a RO register which gives the current masked
status value of the corresponding interrupt (after masking by IrDA_IMSC).
Table 421. IrDA_MIS register bit assignments
336/584
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined. Write: should be zero.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[07]
FD
1’h0
Frame detected masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[06]
FI
1’h0
Frame invalid masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[05]
SD
1’h0
Signal detected masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[04]
FT
1’h0
Frame transmitted masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[03]
BREQ
1’h0
BREQ masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[02]
LBREQ
1’h0
LBREQ masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
Doc ID 022642 Rev 3
RM0321
Fast infrared port (IRDA)
Table 421. IrDA_MIS register bit assignments (continued)
Bit
17.2.13
Name
Reset value Description
[01]
SREQ
1’h0
SREQ masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
[00]
LSREQ
1’h0
LSREQ masked interrupt status.
1‘b0 = No interrupt.
1‘b1 = Interrupt pending.
IrDA_ICR register
The IrDA_ICR (interrupt clear) is a WO register which allows to clear interrupts. Writing a
1‘b1 to a bit clears the corresponding interrupt. Writing 1‘b0 has no effect.
Table 422. IrDA_ICR register bit assignments
17.2.14
Bit
Name
Reset value Description
[31:08]
Reserved
-
Write: should be zero.
[07]
FD
1’h0
Frame detected interrupt clear
[06]
FI
1’h0
Frame invalid interrupt clear
[05]
SD
1’h0
Signal detected interrupt clear
[04]
FT
1’h0
Frame transmitted interrupt clear
[03]
BREQ
1’h0
BREQ interrupt clear
[02]
LBREQ
1’h0
LBREQ interrupt clear
[01]
SREQ
1’h0
SREQ interrupt clear
[00]
LSREQ
1’h0
LSREQ interrupt clear
IrDA_ISR register
The IrDA_ISR (interrupt set) is a WO register which allows to set interrupt. The OR of the
eight less significant bits is the interrupt line (IRQ 17) that goes to the VIC module.
Writing a 1‘b1 to a bit sets the corresponding interrupt. Writing 1‘b0 has no effect.
Table 423. IrDA_ISR register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined. Write: should be zero.
[07]
FD
1’h0
Frame detected interrupt set
[06]
FI
1’h0
Frame invalid interrupt set
[05]
SD
1’h0
Signal detected interrupt set
[04]
FT
1’h0
Frame transmitted interrupt set
[03]
BREQ
1’h0
BREQ interrupt set
[02]
LBREQ
1’h0
LBREQ interrupt set
Doc ID 022642 Rev 3
337/584
Fast infrared port (IRDA)
RM0321
Table 423. IrDA_ISR register bit assignments (continued)
17.2.15
Bit
Name
Reset value Description
[01]
SREQ
1’h0
SREQ interrupt set
[00]
LSREQ
1’h0
LSREQ interrupt set
IrDA_DMA register
The IrDA_DMA is a RW register which manages the DMA requests. Reading this register
gives the current status of the mask on the relevant DMA request. Writing a 1‘b1 to a
particular bit ([0:3]) enables the corresponding DMA request, whereas writing a 1‘b0 clears
a pending request and disables further requests.
Table 424. IrDA_DMA register bit assignments
338/584
Bit
Name
Reset value Description
[31:04]
Reserved
-
Read: undefined. Write: should be zero.
[03]
BREQEN
1’h0
Burst request DMA enable
[02]
LBREQEN
1’h0
Last burst request DMA enable
[01]
SREQEN
1’h0
Single request DMA enable
[00]
LSREQEN
1’h0
Last single request DMA enable
Doc ID 022642 Rev 3
RM0321
Legacy IEEE 1284 parallel port (SPP)
18
Legacy IEEE 1284 parallel port (SPP)
18.1
Register summary
Table 425. Register summary
Address Offset
Name
Type
Width
Reset
Value
Description
0x00
SPPDATA
R
16
16’h0
Data
0x04
SPPSTAT
R
8
8’h0
Status
0x08
SPPCTRL
R/W
8
8’h0
Control
0x0C
SPPIS
R
8
8’h0
Interrupt Status
0x10
SPPIE
R/W
8
8’h0
Interrupt Enable
0x14
SPPIC
W
8
8’h0
Interrupt Clear
18.2
Register description
18.2.1
Data register, SPPDATA (offset 0x00)
Each time a new data is sent over the parallel port by the host, it is latched in this register for
the processor to retrieve. The Auto LineFeed signal, if required, can be used as the 9th
data/parity bit along with the 8-bit data lines.
Table 426. SPPDATA (Offset 0x00)
18.2.2
Bit
Description
[15:09]
Reserved
[08]
Auto LineFeed used as 9th data bit
[07:00]
8-bit parallel data received from the host
Status register, SPPSTAT (offset 0x04)
This register gives the status of the SPP interface.
Table 427. SPPSTAT (Offset 0x04)
Bit
Description
[07]
Data Available Status – set when new data is available in SPPDATA register.
[06]
SELINn Status bit - indicates the level on the SELINn line.
Since SELINn is active low signal, a 0 on this bit indicates that the device is selected.
[05]
INITn Status bit – indicates the level on the INITn line.
Since INITn is active low signal, a 0 on this bit indicates that the device is being
initialized.
[04]
Auto Line Feed Status bit – indicates the level on the AUTOFDn line.
Doc ID 022642 Rev 3
339/584
Legacy IEEE 1284 parallel port (SPP)
RM0321
Table 427. SPPSTAT (Offset 0x04) (continued)
18.2.3
Bit
Description
[03]
Error Status – Set to 1 whenever PError is high or nFault is low.
Indicates that the SPP interface is in Error state. This bit is cleared only on Device
initialization by host or through Software Error Clear.
[02]
Idle Status – indicates that the interface is in idle condition and ready to receive data
from a host.
[01]
Force Busy status – set to 1 when the interface is forced to be in Busy state by the
processor. It is cleared whenever the interface moves out of this state.
[00]
Interface Offline/Online status
1’b0: Interface is Offline, Select pin is 0
1’b1: Interface is Online, Select pin is 1
Control register, SPPCTRL (offset 0x08)
This register is used to configure the SPP interface.
Table 428. SPPCTRL (Offset 0x08)
340/584
Bit
Description
[07]
Data Received – Write 1 to this bit to indicate that the processor has received the
current data from SPPDATA register. If ‘Data Available’ interrupt is enabled, writing 1
to this bit automatically clears the interrupt. The busy pin goes low and the interface is
ready to receive the next data from the external host.
[06]
Fault – Write 1 to this bit to indicate that a fault condition has occurred. The Fault pin
goes low. The interface stays in error state until it is initialized by host or software error
clear is asserted.
[05]
PError – Write 1 to this bit to indicate that error is due to paper jam/finish etc. The
PError pin goes high. This bit is valid only if a 1 is written on Bit 6 of this register
simultaneously. The interface stays in error state until it is initialized by host or
software error clear is asserted.
[04]
Software Error Clear – Write 1 to this bit to clear the error signal internally through
software device initialization by external host.
[03:02]
Reserved
[01]
Force Busy – To put the interface in busy state forcefully. The Busy pin stays high as
long as this bit is 1. Writing a 0 to this bit makes the Busy pin go low and the interface
goes to idle state, ready to receive next data.
1’b0: Interface not forced to be in busy state
1’b1: Interface forced to be in busy state
[00]
Select – write to this bit to set the level of the output pin Select and put the device in
offline/online state. This indicates to the external host if the device has selected it.
1’b0: Host is not selected, Select pin is at level 0
1’b1: Host is selected, Select pin is at level 1
Doc ID 022642 Rev 3
RM0321
18.2.4
Legacy IEEE 1284 parallel port (SPP)
Interrupt status register, SPPIS (offset 0x0C)
This register gives the raw as well as masked interrupt status.
Table 429. SPPIS (Offset 0x 0C)
18.2.5
Bit
Description
[07]
Raw SelIn Interrupt Status – Set when SELINn input transitions from 1 to 0.
[06]
Raw Init Interrupt Status – Set when INITn input transitions from 1 to 0.
[05]
Raw AutoFd Interrupt Status – Set when AUTOFDn input transitions from 1 to 0.
[04]
Raw Data Available Interrupt Status – Set when new data is available in SPPDATA
register. This bit is identical to bit 7 of SPPSTAT register.
[03]
Masked SelIn Interrupt Status – Set when SELINn input transitions from 1 to 0 and
this interrupt is enabled.
[02]
Masked Init Interrupt Status – Set when INITn input transitions from 1 to 0 and this
interrupt is enabled.
[01]
Masked AutoFd Interrupt Status – Set when AUTOFDn input transitions from 1 to 0
and this interrupt is enabled.
[00]
Masked Data Available Interrupt Status – Set when new data is available in
SPPDATA register and this interrupt is enabled.
Interrupt enable register, SPPIE (Offset 0x10)
This register is used to enable the interrupts. When enabled (bit is set), their status is
available in raw as well as mask status of SPPIS register. When disabled (bit is not set), the
status of the interrupt is still available in raw status bits of the SPPIS register.
Table 430. SPPIE (offset 0x10)
18.2.6
Bit
Description
[07:04]
Reserved
[03]
SelIn Interrupt Enable
[02]
Init Interrupt Enable
[01]
AutoFd Interrupt Enable
[00]
Data Available Interrupt Enable
Interrupt clear register, SPPIC (offset 0x14)
This register is used to clear the interrupt. Write 1 to the bit to clear the corresponding
interrupt.
Table 431. SPPIC (offset 0x14)
Bit
Description
[07:04]
Reserved
[03]
SelIn Interrupt Clear
Doc ID 022642 Rev 3
341/584
Legacy IEEE 1284 parallel port (SPP)
RM0321
Table 431. SPPIC (offset 0x14) (continued)
Note:
342/584
Bit
Description
[02]
Init Interrupt Clear
[01]
AutoFd Interrupt Clear
[00]
Reserved
Data Available interrupt is cleared only by writing to bit 7 of SPPCTRL register.
Doc ID 022642 Rev 3
RM0321
Analog-to-digital converter (ADC)
19
Analog-to-digital converter (ADC)
19.1
Register summary
The ADC can be fully configured by programming a set of registers which can be accessed
at the base address 0xD008.0000.
Table 432. ADC registers summary
SIZE
[bit]
Reset
value
Type Description
ADC_CTRL_STATUS
0x0000
_REG
16
16’h0
R/W
Control/Status Register
AVERAGE_REG
0x0004
17
16’h0
RO
Conversion data
SCAN_RATE
0x0008
32
32’h0
R/W
Scan rate for enhanced mode
ADC_CLK_REG
0x000C
16
16’h0
R/W
ADC Clock frequency selection.
CH0_CTRL
0x0010
4
4’h0
R/W
Channel 0 control register
(enhanced mode)
CH1_CTRL
0x0014
4
4’h0
R/W
Channel 1 control register
(enhanced mode)
CH2_CTRL
0x0018
4
4’h0
R/W
Channel 2 control register
(enhanced mode)
CH3_CTRL
0x001C
4
4’h0
R/W
Channel 3 control register
(enhanced mode)
CH4_CTRL
0x0020
4
4’h0
R/W
Channel 4 control register
(enhanced mode)
CH5_CTRL
0x0024
4
4’h0
R/W
Channel 5 control register
(enhanced mode)
CH6_CTRL
0x0028
4
4’h0
R/W
Channel 6 control register
(enhanced mode)
CH7_CTRL
0x002C
4
4’h0
R/W
Channel 7 control register
(enhanced mode)
CH0_DATA
0x0030
11
11’h0
RO
Channel 0 Data register
(Enhanced mode)
CH1_DATA
0x0034
11
11’h0
RO
Channel 1 Data register
(Enhanced mode)
CH2_DATA
0x0038
11
11’h0
RO
Channel 2 Data register
(Enhanced mode)
CH3_DATA
0x003C
11
11’h0
RO
Channel 3 Data register
(Enhanced mode)
CH4_DATA
0x0040
11
11’h0
RO
Channel 4 Data register
(Enhanced mode)
CH5_DATA
0x0044
11
11’h0
RO
Channel 5 Data register
(Enhanced mode)
Register name
Offset
Doc ID 022642 Rev 3
343/584
Analog-to-digital converter (ADC)
RM0321
Table 432. ADC registers summary (continued)
Register name
Offset
SIZE
[bit]
Reset
value
Type Description
CH6_DATA
0x0048
11
11’h0
RO
Channel 6 Data register
(Enhanced mode)
CH7_DATA
0x004C
11
11’h0
RO
Channel 7 Data register
(Enhanced mode)
19.2
Register description
19.2.1
ADC_CTRL_STATUS_REG register
The ADC_CTRL_STATUS_REG is a RW register for configuing the ADC and reporting the
status. This register can be written to only if both bit[8], CONVERSION READY, and bit[0],
ENABLE, of the same register are set to ‘b0.
Table 433. ADC_CTRL_STATUS_REG register
Bit
Reset
value
Name
Type
Description
(1)
[15:14]
-
-
-
reserved
[13]
HIGH RESOLUTION
1‘h0
RW
Enable HIGH Resolution output
1’b0 - Normal output (10 bit)
1’b1 - High Res. output (17 bit)
RW
DMA Request Enable (For Channel 0 only)
– 1’b0 - No DMA request
– 1’b1 - DMA Request generated when the
channel 0 conversion is done.
See also: AVERAGE_REG register
RW
Scan Rate type in enhanced mode.
– 1’b0 - Scan rate is generated internally
inside the ADC
– 1’b1 - External Scan rate is generated
outside (not implemented)
See also: AVERAGE_REG register
RW
Operating mode:
– 1’b0 - Normal mode
– 1’b1 - Enhanced mode
See also: AVERAGE_REG register
RW
Reference voltage source select:
– 1’b0 - external (Pins ADC_VREFN and
ADC_VREFP)
– 1’b1 - Internal (range 0 - 2.5V)
Note: N - Negative Reference Voltage
P - Positive Reference Voltage
[12]
[11]
[10]
[09]
344/584
DMA ENABLE
1’h0
EXT_SCAN_RATE
1’h0
ENHANCED MODE
1’h0
VOLTAGE REFERENCE
SELECT
1’h0
Doc ID 022642 Rev 3
RM0321
Analog-to-digital converter (ADC)
Table 433. ADC_CTRL_STATUS_REG register (continued)
Bit
Reset
value
Name
Type
Description
RO
Conversion status.
If set, this bit indicates that the requested
conversion is completed and results are
available. In contrast (bit cleared), the
conversion is ongoing.
(1)
[08]
CONVERSION READY
1’h0
[07:5]
NSAMPLES
3’h0
RW
Number of samples to be averaged.
This 3 bit field defines the number of
samples to be collect for average
computation, according to encoding:
– 3‘b000 = Single data conversion.
– 3‘b001 = 2 samples
– 3‘b010 = 4 samples
– 3‘b011 = 8 samples
– 3‘b100 = 16 samples
– 3‘b101 = 32 samples
– 3‘b110 = 64 samples
– 3‘b111 = 128 samples
[04]
POWER DOWN
1’h0
RW
ADC enable.
Setting this bit, the ADC is enabled,
otherwise (bit cleared) the ADC is disabled.
[03:01]
CHANNEL SELECT
3’h0
RW
Channel selection.
This 3 bit field allows to select one of the 8
analog input (AIN) channels, according to
encoding:
– 3‘b000 = AIN[0]
– 3‘b001 = AIN[1]
– 3‘b010 = AIN[2]
– 3‘b011 = AIN[3]
– 3‘b100 = AIN[4]
– 3‘b101 = AIN[5]
– 3‘b110 = AIN[6]
– 3‘b111 = AIN[7]
[00]
ENABLE
1’h0
RW
Conversion enable.
Setting this bit, the conversion is enabled.
1. This bit can be set only when the ENABLE bit is reset.
Doc ID 022642 Rev 3
345/584
Analog-to-digital converter (ADC)
19.2.2
RM0321
AVERAGE_REG register
The AVERAGE_REG is a RO register which reports the resulting data of the requested ADC
conversion, named as conversion data. It can return 10 or 17 bits according to the setting of
the HIGH RESOLUTION bit inside the ADC_CTRL_STATUS_REG register.
If HIGH RESOLUTION = 0 (Normal mode), the result of ADC conversion is contained in 10
bits.
Note:
This register can be read only if both bit[8], CONVERSION READY, and bit[0], ENABLE, of
the ADC_STATUS_REG register are set to 1‘b1.
Table 434. Conversion data bits position in AVERAGE_REG (High Resolution = 0)
Bit
Name
[09:00] CONVERSION DATA
Reset
value
Type
Description
10‘h0
RO
Contains the result of the ADC conversion
If HIGHRESOLUTION = 1, the sum of the ADC conversions is contained in 17 bits.
Table 435. Conversion data bits position in AVERAGE_REG (High Resolution = 1)
Bit
Name
[16:00] CONVERSION DATA
19.2.3
Reset
value
Type
Description
10‘h0
RO
Contains the sum of a number of ADC
conversions (the number of samples is
defined by NSAMPLES).
SCAN RATE register
The SCAN RATE register is used only if the ADC is working in Enhanced mode. In this case
it defines the number of APB Clock cycles that will be inserted in between the beginning of
the current conversion and the start of the next one. Taking into account the number of
channels that are enabled and the value of this register it is possible to calculate the real
scan rate. To be noted that, if the value of the register does not cover one conversion time,
the next conversion will start immediately when the previous one is ended.
Table 436. SCAN RATE register bit assignments
Bit
Name
[31:00] SCAN_RATE
19.2.4
Reset value
Type
Description
32’h0000_0000
RW
Number of APB Clock cycles inserted in
between two conversion start in enhanced
mode.
ADC_CLK_REG register
The ADC_CLK_REG is a RW register which is used to program the frequency of ADC clock.
346/584
Doc ID 022642 Rev 3
RM0321
Note:
Analog-to-digital converter (ADC)
This register can be written to only if both bit[8], CONVERSION READY, and bit[0],
ENABLE, of the same register are set to 1‘b0.
Table 437. ADC_CLK_REG register bit assignments
Bit
Name
Reset
value
Type
Description
[15:08]
-
2’h0
-
reserved
[07:04]
ADC_CLK_H
4’h0
RW
High state (as number of APB clock periods).
[03:00]
ADC_CLK_L
4’h0
RW
Low state (as number of APB clock periods).
The duty cycle of ADC clock results then from the ratio of the two values, while the
frequency of ADC clock is the APB clock frequency divided by the sum of the same two
values.
Because the frequency of ADC clock ranges from 3 MHz to 14 MHz, it follows that:
APB CLK Freq
CLK Freq-⎞
⎛ APB
-----------------------------------------≤ ( ADC CLK H + ADC CLK L ) ≤ ⎛ -------------------------------------------⎞
⎝
⎠
⎝
⎠
3
14
19.2.5
CHx CTRL register
The eight read/write Control registers are used only when enhanced mode is selected. They
activate the particular channel during the scan and select the number of samples for the
average.
Note:
This register can be written to only if the ENABLE bit is reset.
Table 438. CHx CTRL register bit assignments
Bit
Name
[15:04] -
Reset
value
Type
Description
-
-
reserved
[03:01] AVERAGE
3’h0
RW
Number of samples to be averaged.
This 3 bit field states the number of samples
to be collect for average computation,
according to encoding:
– 3‘b000 = No average, single data
conversion.
– 3‘b001 = Average of 2 samples.
– 3‘b010 = Average of 4 samples.
– 3‘b011 = Average of 8 samples.
– 3‘b100 = Average of 16 samples.
– 3‘b101 = Average of 32 samples.
– 3‘b110 = Average of 64 samples.
– 3‘b111 = Average of 128 samples.
[00]
1‘h0
RW
Enable the autoscan in enhanced mode:
1’b0 - No autoscan
1’b1 - autoscan
CHANNEL ENABLE
Doc ID 022642 Rev 3
347/584
Analog-to-digital converter (ADC)
19.2.6
RM0321
CHx DATA register
The eight read-only Data registers are used only when enhanced mode is selected. They
contain the result of last conversion on relative channel. They have different bit assignments
according to the setting of the bit 13 (HIGH RESOLUTION) on the register
ADC_STATUS_REG (Section 19.2.1).
The register bit assignments when the bit is reset are given in the Table 439
The register bit assignments when the bit is set are given in the Table 440
Table 439. CHx DATA register (normal mode) bit assignments
Bit
Name
Reset
value
Type
Description
[17]
VALID DATA-
1‘h0
RO
VALID DATA bit:
1’b0 - CONVERSION DATA field not valid
1’b1 - CONVERSION DATA field valid
[16:10] RESERVED
[09:00] CONVERSION DATA
reserved
10‘h0
RO
Contain the result of the last conversion
Table 440. CHx DATA register (HIGH RESOLUTION mode bit assignments
348/584
Bit
Name
Reset
value
Type
Description
[17]
VALID DATA
1‘h0
RO
VALID DATA bit:
1’b0 - CONVERSION DATA field not valid
1’b1 - CONVERSION DATA field valid
[16:00] CONVERSION DATA
16‘h0
RO
Contain the result of the last conversion
Doc ID 022642 Rev 3
RM0321
General purpose I/Os (basGPIO)
20
General purpose I/Os (basGPIO)
20.1
Register summary
The 6 basGPIO pins can be fully configured by programming registers which can be
accessed the base address 0xFC98.0000.
GPIO registers:
Note:
●
Data direction register (listed in Table 441), for pins configuration as input or output
●
Data register (listed in Table 442), used to read value on those GPIO lines configured
as inputs, or to write a value on those GPIO lines configured as outputs.
The same data register appears at 64 locations in the memory map (with offset ranging from
0x00 to 0xFC), allowing to use the address bus [9:2] as an additional bit masking feature.
●
Interrupt control registers (listed in Table 443), for interrupt generation configuration.
●
Identification registers (listed in Table 444.), containing peripheral and BIOS
information
Table 441. GPIO data direction register
Name
Offset
Type
Width(bit)
Reset Value
Description
GPIODIR
0x400
RW
6
6’h0
Data Direction
Table 442. GPIO data register
Name
Offset
Type
Width(bit)
Reset Value
Description
GPIODATA
0x000(1)
RW
8
8’h0
Data
1. For the first data register, but up to 0xFC for the 64th (See Note Note: above).
Table 443. GPIO interrupt control registers summary
Name
Offset
Type
Width(bit)
Reset Value
Description
GPIOIS
0x404
RW
6
6’h0
Interrupt Sense.
GPIOIBE
0x408
RW
6
6’h0
Interrupt Both Edges
GPIOIEV
0x40C
RW
6
6’h0
Interrupt Event.
GPIOIE
0x410
RW
6
6’h0
Interrupt Mask.
GPIORIS
0x414
RO
6
6’h0
Raw/Interrupt Status
GPIOMIS
0x418
RO
6
6’h0
Masked Interrupt Status
GPIOIC
0x41C
WO
6
6’h0
Interrupt Clear.
Doc ID 022642 Rev 3
349/584
General purpose I/Os (basGPIO)
RM0321
Table 444. GPIO identification registers summary
Name
Offset
Type
Width
(bit)
Reset
value
Description
GPIOPeriphID0
0xFE0
RO
8
8’h61
Peripheral identification register (bits 7:0)
GPIOPeriphID1
0xFE4
RO
8
8’h10
Peripheral identification register (bits 15:8)
GPIOPeriphID2
0xFE8
RO
8
8’h04
Peripheral identification register
(bits 23:16)
GPIOPeriphID3
0xFEC
RO
8
8’h00
Peripheral identification register
(bits 31:24)
GPIOCellID0
0xFF0
RO
8
8’h0D
ID Register bits (7:0)
GPIOCellID1
0xFF4
RO
8
8’hF0
ID Register bits (15:8)
GPIOCellID2
0xFF8
RO
8
8’h05
ID Register bits (23:16)
GPIOCellID3
0xFFC
RO
8
8’hB1
ID Register bits (31:24)
20.2
Register description
20.2.1
GPIODIR register
The GPIODIR is the data direction RW register which allows to configure each pin as either
an input or an output.
Table 445. GPIODIR register bit assignments
Bit
[05:00]
Name
GPIODIR
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, the relevant pin is configured to be an
output.
Clearing a bit configures the relevant pin to be input
(default).
Note:
GPIO 6 & GPIO 7 are dedicated for SPI chip select and can be configured in output mode
only.
20.2.2
GPIODATA register
The GPIODATA is the data RW register which allows to read from and write to GPIO pins
configured as input or output, respectively, when GPIO is in software mode.
In software mode, the GPIODATA content is transferred to the pins which have been
configured as output through the GPIODIR register.
Table 446. GPIODATA register bit assignments
350/584
Bit
Name
Reset
value
Description
[07:00]
GPIODATA
8’h0
Input/output data
Doc ID 022642 Rev 3
RM0321
20.2.3
General purpose I/Os (basGPIO)
GPIOIS register
The GPIOIS (interrupt sense) is a RW register which allows configuring each pin to detect
either a level or an edge for interrupt triggering.
Table 447. GPIOIS register bit assignments
Bit
[05:00]
20.2.4
Name
GPIOIS
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, level on the relevant pin is detected.
Clearing a bit, edge on the relevant pin is detected
(default).
GPIOIBE register
The GPIOIBE (interrupt both edges) is a RW register which allows to configure each pin to
detect both rising and falling edges for interrupt triggering, in case edge detection for that pin
is enabled (clearing relevant bit in GPIOIS register).
Table 448. GPIOIBE register bit assignments
Bit
[05:00]
20.2.5
Name
GPIOIBE
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, both edges on the relevant pin trigger an
interrupt, regardless of GPIOIEV setting
(Section 20.2.5).
Clearing a bit, interrupt generation event is controlled
by the GPIOIEV register (default). Single edge is
determined by the corresponding bit in that register.
GPIOIEV register
The GPIOIEV (Interrupt Event) is a RW register which allows to select for each pin the
interrupt triggering event (rising/falling edge, high/low level), depending on GPIOIS register
setting.
Table 449. GPIOIEV register bit assignments
Bit
[05:00]
Name
GPIOIEV
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, rising edge or high level on the relevant
pin triggers the interrupt.
Clearing a bit, falling edge or low level on that pin
triggers the interrupt (default).
Doc ID 022642 Rev 3
351/584
General purpose I/Os (basGPIO)
20.2.6
RM0321
GPIOIE register
The GPIOIE (interrupt mask) is a RW register which allows to enable/disable interrupt
triggering for each pin.
Table 450. GPIOIE register bit assignments
Bit
[05:00]
20.2.7
Name
GPIOIE
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, the relevant pin is allowed to trigger
their interrupts (pin not masked).
Clearing a bit, the relevant pin is masked and
interrupt triggering is disabled for that pin (default).
GPIORIS register
The GPIORIS (raw interrupt status) is a RO register which reflects the raw status (prior to
masking through GPIOIE register) of interrupts trigger conditions on each pin.
Table 451. GPIORIS register bit assignments
Bit
[05:00]
20.2.8
Name
GPIORIS
Reset
value
Description
6’h0
Each bit is associated to a pin.
If a bit is set, it indicates that all requirements for
interrupt triggering have been met on the relevant
pin.
If a bit is cleared, it means that requirements have
not been met on the relevant pin and an interrupt
has not been initiated (default).
GPIOMIS register
The GPIOMIS (masked interrupt status) is a RO register which reflects the status of
interrupts trigger conditions on each pin after masking (through GPIOIE register).
The content of this register is available externally through the GPIOMIS[7:0] signals.
Table 452. GPIOMIS register bit assignments
Bit
[05:00]
352/584
Name
GPIOMIS
Reset
value
Description
6’h
Each bit is associated to a pin.
If a bit is set, it indicates that the relevant pin is
triggering an interrupt.
If a bit is cleared, it means that on that pin either no
interrupt has been generated or the interrupt is
masked by GPIOIE (default).
Doc ID 022642 Rev 3
RM0321
20.2.9
General purpose I/Os (basGPIO)
GPIOIC register
The GPIOIC (interrupt clear) is a WO register which allows to clear the interrupt edge
detection.
Table 453. GPIOIC register bit assignments
Bit
[05:00]
Name
GPIOIC
Reset
value
Description
6’h0
Each bit is associated to a pin.
Setting a bit, the corresponding interrupt request is
cleared.
Clearing a bit has no effect (default).
Doc ID 022642 Rev 3
353/584
Extended general purpose I/O (PL_GPIO)
21
RM0321
Extended general purpose I/O (PL_GPIO)
Refer to Chapter 29: RAS configuration (RASCFG) for the registers related to PL_GPIO
configuration.
354/584
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
22
LCD display controller (CLCD)
22.1
Register summary
The CLCD can be fully configured by programming its 32-bit wide registers, which can be
accessed through the AHB slave interface at the base address 0x9000.0000.
CLCD registers can be logically arranged in three main groups:
●
Configuration registers (listed in Table 454)
●
Color palette register (listed in Table 455)
●
Identification registers (listed in Table 456)
Table 454. CLCD configuration registers
Type
Width
Reset value
(bit)
Description
LCDTiming0 0x00
RW
32
32’h0
Horizontal axis panel control register
LCDTiming1 0x04
RW
32
32’h0
Vertical axis panel control register
LCDTiming2 0x08
RW
32
32’h0
Clock and signal polarity control register
LCDTiming3 0x0C
RW
17
17’h0
Line end control register
LCDUPBase 0x10
RW
32
32’h0
Upper panel frame base address register
LCDLPBase 0x14
RW
32
32’h0
Lower panel frame base address register
LCDMSC
0x18
RW
5
5’h0
Interrupt mask, set and clear register
LCDControl
0x1c
RW
16
16’h0
Control register
LCDRIS
0x20
RO
5
5’h0
Raw interrupt status register
LCDMIS
0x24
RO
5
5’h0
Mask interrupt status register
LCDICR
0x28
WO
5
5’h0
Interrupt clear register
LCDUPCUR 0x2C
RO
32
undefined
Upper panel current address value register
LCDLPCUR 0x30
RO
32
undefined
Lower panel current address value register
Name
Offset
Table 455. Color palette register
Name
Offset
Type
Width Reset
(bit)
value
Description
LCDPalette
0x200 to
0x3FC
RW
32
LCD color palette registers.
undefined
Table 456. Identification register
Type
Width Reset
(bit)
value
Description
PERIPHID0 0xFE0
RO
8
8’h10
Peripheral identification register 0
PERIPHID1 0xFE4
RO
8
8’h11
Peripheral identification register 1
Name
Offset
Doc ID 022642 Rev 3
355/584
LCD display controller (CLCD)
RM0321
Table 456. Identification register (continued)
Type
Width Reset
(bit)
value
Description
PERIPHID2 0xFE8
RO
4
4’h24
Peripheral identification register 2
PERIPHID3 0xFEC
RO
8
8’h00
Peripheral identification register 3
PCELLID0
0xFF0
RO
8
8’h0D
Identification register 0
PCELLID1
0xFF4
RO
8
8’hF0
Identification register 1
PCELLID2
0xFF8
RO
8
8h05
Identification register 2
PCELLID3
0xFFC
RO
8
8’hB1
Identification register 3
Name
Offset
22.2
Register description
22.2.1
LCD timing 0 register
LCDTiming0 is a read/write (RW) register that controls the:
●
Horizontal synchronization pulse width (HSW)
●
Horizontal front porch (HFP) period
●
Horizontal back porch (HBP) period
●
Pixels-per-line (PPL)
Table 457. LCDTiming0 register bit assignments
Bit
[31:24]
[23:16]
356/584
Name
HBP
HFP
Reset
value
Description
8’h0
Horizontal back porch is the number of CLCP
periods between the falling edge of CLLP and the
start of active data. Program with value minus 1.
The 8 bit HBP field specifies the number of pixel
clock periods inserted at the beginning of each line
or row of pixels. After the line clock for the previous
line has been deasserted, the value in HBP counts
the number of pixel clocks to wait before starting
the next display line. HBP can generate a delay of
1-256 pixel clock cycles.
8’h0
Horizontal front porch is the number of CLCP
periods between the end of active data and the
rising edge of CLLP. Program with value minus 1.
The 8 bit HFP field sets the number of pixel clock
intervals at the end of each line or row of pixels,
before the LCD line clock is pulsed. When a
complete line of pixels is transmitted to the LCD
driver, the value in HFP counts the number of pixel
clocks to wait before asserting the line clock. HFP
can generate a period of 1-256 pixel clock cycles.
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 457. LCDTiming0 register bit assignments (continued)
Bit
Name
[15:08]
HSW
Reset
value
Description
8’h0
Horizontal synchronization pulse width is the width
of the CLLP signal in CLCP periods. Program with
value minus 1. The 8 bit HSW field specifies the
pulse width of the line clock in passive mode, or
the horizontal synchronization pulse in active
mode.
[07:02]
PPL
6’h0
Pixels-per-line. Actual pixels-per-line = 16 * (PPL +
1). The PPL bit field specifies the number of pixels
in each line or row of the screen. PPL is a 6 bit
value that represents between 16 and 1 024 PPL.
PPL controls how much data is read from the DMA
input buffers through to the gray scaler.
[01:00]
-
-
Reserved, do not modify, read as zero, write as
zero.
Horizontal timing restrictions
DMA requests new data at the start of a horizontal display line. Some time must be allowed
for the DMA transfer and for the data to propagate down the FIFO path in the LCD interface.
The data path latency forces some restrictions on the usable minimum values for horizontal
porch width in STN mode.
The minimum values are HSW = 2 and HBP = 2.
Single panel mode:
●
HSW = 3
●
HBP = 5
●
HFP = 5
●
Panel clock divisor (PCD) = 1 (CLCDCLK/3)
Dual panel mode:
●
HSW = 3
●
HBP = 5
●
HFP = 5
●
PCD = 5 (CLCDCLK/7)
If sufficient time is given at the start of the line (for example, setting HSW = 6, HBP = 10),
data is not corrupted for PCD = 4 (minimum value).
22.2.2
LCD timing 1 register
LCDTiming1 is a read/write (RW) register that controls the:
●
Number of lines per panel (LPP)
●
Vertical synchronization pulse width (VSW)
●
Vertical front porch (VFP) period
●
Vertical back porch (VBP) period
Doc ID 022642 Rev 3
357/584
LCD display controller (CLCD)
RM0321
Table 458. LCDTiming1 register bit assignments
Bit
[31:24]
[23:16]
[15:10]
[09:00]
22.2.3
Name
VBP
VFP
VSW
LPP
Reset
value
Description
8’h0
Vertical back porch is the number of inactive lines
at the start of a frame, after vertical
synchronization period. Program to 0 on passive
displays or reduced contrast results. The 8 bit VBP
field specifies the number of line clocks inserted at
the beginning of each frame. The VBP count starts
just after the vertical synchronization signal for the
previous frame has been negated for active mode,
or the extra line clocks have been inserted as
specified by the VSW bit field in passive mode.
After this has occurred, the count value in VBP
sets the number of line clock periods inserted
before the next frame. VBP generates from 0-255
extra line clock cycles.
8’h0
Vertical front porch is the number of inactive lines
at the end of frame, before vertical synchronization
period. Program to 0 on passive displays or
reduced contrast results. The 8 bit VFP field
specifies the number of line clocks to insert at the
end of each frame. When a complete frame of
pixels is transmitted to the LCD display, the value
in VFP is used to count the number of line clock
periods to wait. After the count has elapsed the
vertical synchronization signal, CLFP, is asserted
in active mode, or extra line clocks are inserted as
specified by the VSW bit-field in passive mode.
VFP generates from 0–255 line clock cycles.
6’h0
Vertical synchronization pulse width is the number
of horizontal synchronization lines. Must be small
(for example, program to zero) for passive STN
LCDs. Program to the number of lines required
minus one. The higher the value the worse the
contrast on STN LCDs. The 6 bit VSW field
specifies the pulse width of the vertical
synchronization pulse. The register is programmed
with the number of line clocks in VSync minus one.
10’h0
Lines per panel is the number of active lines per
screen. Program to number of lines required minus
1. The LPP field specifies the total number of lines
or rows on the LCD panel being controlled. LPP is
a 10 bit value that allows 1-1 024 lines. The
register is programmed with the number of lines
per LCD panel minus 1. For dual panel displays
this register is programmed with the number of
lines on each of the upper and lower panels.
LCD timing 2 register
LCDTiming2 is a read/write (RW) register that controls the CLCD timing. Table 459 shows
the bit assignments for the LCDTiming2 register.
358/584
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 459. LCDTiming2 register bit assignments
Bit
Name
Reset
value
Description
[31:27]
PCD_HI
5’h0
Upper five bits of panel clock divisor.a The ten bit PCD field,
comprising PCD_HI and PCD_LO (bits [4:0]), is used to derive
the LCD panel clock frequency CLCP from the CLCDCLK
frequency:
CLCP = CLCDCLK/(PCD+2).
For mono STN displays with a four or eight bit interface, the
panel clock is a factor of four and eight down on the actual
individual pixel clock rate. For color STN displays, 2 2/3 pixels
are output per CLCP cycle, therefore the panel clock is 0.375
times.
For TFT displays the pixel clock divider can be bypassed by
setting the LCDTiming2[26] BCD bit.
[26]
BCD
1’h0
Bypass pixel clock divider. Setting this to 1 bypasses the pixel
clock divider logic. This is mainly used for TFT displays.
[25:16]
CPL
10’h0
Clocks per line. This field specifies the number of actual CLCP
clocks to the LCD panel on each line. This is the number of PPL
divided by 1 for TFT, 4 or 8 for mono passive, or 2 2/3 for color
passive, minus one. This must be correctly programmed in
addition to PPL for the LCD controller to work correctly.
[15]
-
-
Reserved, do not modify, read as zero, write as zero.
1’h0
Invert output enable:
1’b0 = CLAC output pin is active HIGH in TFT mode
1’b1 = CLAC output pin is active LOW in TFT mode.
The invert output enable (IOE) bit is used to select the active
polarity of the output enable signal in TFT mode. In this mode,
the CLAC pin is used as an enable that indicates to the LCD
panel when valid display data is available. In active display
mode, data is driven onto the LCD data lines at the programmed
edge of CLCP when CLAC is in its active state.
1’h0
Invert panel clock:
1’b0 = Data is driven on the LCDs data lines on the rising-edge
of CLCP
1’b1 = Data is driven on the LCDs data lines on the falling-edge
of CLCP.
The IPC bit is used to select the edge of the panel clock on
which pixel data is driven out onto the LCD data lines.
1’h0
Invert horizontal synchronization:
1’b0 = CLLP pin is active HIGH and inactive LOW
1’b1 = CLLP pin is active LOW and inactive HIGH.
The invert HSync (IHS) bit is used to invert the polarity of the
CLLP signal.
1’h0
Invert vertical synchronization:
1’b0 = CLFP pin is active HIGH and inactive LOW
1’b1 = CLFP pin is active LOW and inactive HIGH.
The invert VSync (IVS) bit is used to invert the polarity of the
CLFP signal.
[14]
[13]
[12]
[11]
IEO
IPC
IHS
IVS
Doc ID 022642 Rev 3
359/584
LCD display controller (CLCD)
RM0321
Table 459. LCDTiming2 register bit assignments (continued)
Bit
[10:06]
[05]
[04:00]
Name
ACB
CLKSEL
PCD_LO
Reset
value
Description
5’h0
AC bias pin frequency. The AC bias pin frequency is only
applicable to STN displays, which require the pixel voltage
polarity to be periodically reversed to prevent damage due to DC
charge accumulation. Program this field with the required value
minus 1 to apply the number of line clocks between each toggle
of the AC bias pin, CLAC. This field has no effect if the CLCD is
operating in TFT mode when the CLAC pin is used as a data
enable signal.
1’h0
This bit drives the CLCDCLKSEL signal that is used as the
select signal for the external CLCDCLK clock multiplexer.
1’b0 - HCLK
1’b1 - 48 MHz clock
5’h0
Lower five bits of panel clock divisor.(1) The ten bit PCD field,
comprising PCD_HI (bits [31:27]) and PCD_LO, is used to
derive the LCD panel clock frequency CLCP from the CLCDCLK
frequency,
CLCP = CLCDCLK/(PCD+2).
For mono STN displays with a four or eight bit interface, the
panel clock is a factor of four and eight down on the actual
individual pixel clock rate.
For color STN displays, 2 2/3 pixels are output per CLCP cycle, so
the panel clock is 0.375 times. You can bypass the pixel clock
divider for TFT displays by setting the LCDTiming2[26] BCD bit.
1. The data path latency forces some restrictions on the usable minimum values for the panel clock divider in
STN modes:
Single-panel color mode: PCD = 1 (CLCP = CLCDCLK/3)
Dual-panel color mode: PCD = 4 (CLCP = CLCDCLK/6)
Single-panel mono 4 bit interface mode: PCD = 2 (CLCP = CLCDCLK/4)
Dual-panel mono 4 bit interface mode: PCD = 6 (CLCP = CLCDCLK/8)
Single- panel mono 8 bit interface mode: PCD = 6 (CLCP = CLCDCLK/8)
Dual-panel mono 8 bit interface mode: PCD = 14 (CLCP = CLCDCLK/16)
22.2.4
LCD timing 3 register
LCDTiming3 is a read/write (RW) register that controls the enabling of line-end signal CLLE.
When enabled, a positive pulse, four CLCDCLK periods wide, is output on CLLE after a
programmed delay set by the LED bits. If the line-end signal is disabled then it is held
permanently LOW.
360/584
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 460. LCDTiming3 register bit assignments
22.2.5
Bit
Name
Reset
value
Description
[31:17]
-
-
Reserved, do not modify, read as zero, write as
zero.
[16]
LEE
1’h0
LCD Line end enable:
1’b0 = CLLE disabled (held LOW)
1’b1 = CLLE signal active.
[15:07]
-
-
Reserved, do not modify, read as zero, write as
zero
[06:00]
LED
7’h0
Line-end signal delay from the rising-edge of the
last panel clock, CLCP. Program with number of
CLCDCLK clock periods minus 1.
LCDUPBASE and LCPLPBASE registers
LCDUPBASE and LCDLPBASE are the color LCD DMA frame address registers. They are
read/write registers used to program the base address of the frame buffer.
LCDUPBASE is used for:
●
TFT displays
●
Single panel STN displays
●
The upper panel of dual panel STN displays.
LCDLPBASE is used for the lower panel of dual panel STN displays.
You must initialize LCDUPBASE (and LCDLPBASE for dual panels) before enabling the
CLCD. You can change the value mid-frame to enable double-buffered video displays to be
created. These registers are copied to the corresponding current registers at each LCD
vertical synchronization. This event causes the LNBU bit and an optional interrupt to be
generated. You can use the interrupt to reprogram the base address when generating
double-buffered video.
Table 461. LCDUPBASE register bit assignments
Bit
Name
Reset value
Description
[31:02] LCDUPBASE
29’h0
LCD upper panel. This is the start address of the
upper panel frame data in memory and is word
aligned.
[01:00] -
-
Reserved, do not modify, read as zero, write as
zero.
Doc ID 022642 Rev 3
361/584
LCD display controller (CLCD)
RM0321
Table 462. LCDLPBASE register bit assignments
Bit
22.2.6
Name
Reset value
Description
[31:02] LCDLPBASE
29’h0
LCD lower panel. This is the start address of the
lower panel frame data in memory and is word
aligned.
[01:00] -
-
Reserved, do not modify, read as zero, write as
zero.
LCDIMSC register
LCDIMSC is the interrupt mask set/clear register. Setting bits in this register enables the
corresponding raw interrupt LCDRIS bit values to be passed to the LCDMIS,
Table 463. LCDIMSC register bit assignments
Name
Reset
value
Description
[04]
MBERRINTRENB
1’h0
AHB master error interrupt enable
[03]
VCOMPINTRENB
1’h0
Vertical compare interrupt enable
[02]
LNBUINTRENB
1’h0
Next base update interrupt enable
[01]
FUFINTRENB
1’h0
FIFO underflow interrupt enable
[00]
-
-
Reserved, do not modify, read as zero, write as
zero
Bit
[31:05]
22.2.7
LCD control register
LCDControl is the control register. It is a read/write (RW) register that controls the mode in
which the CLCD operates.
Table 464. LCDControl register bit assignments
Bit
Name
Reset
value
Description
[31:17]
-
-
Reserved, do not modify, read as zero, write as zero
[16]
WATERMARK
1’h0
LCD DMA FIFO Watermark level:
1’b0 = HBUSREQM is raised when either of the two DMA
FIFOs have four or more empty locations
1’b1 = HBUSREQM is raised when either of the DMA FIFOs
have eight or more empty locations.
[15:14]
-
-
Reserved, do not modify, read as zero, write as zero
2’h0
Generate interrupt at:
– 2’b00 = Start of vertical synchronization
– 2’b01 = Start of back porch
– 2’b10 = Start of active video
– 2’b11 = Start of front porch
[13:12]
362/584
LCDVCOMP
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 464. LCDControl register bit assignments (continued)
Bit
[11]
Name
LCDPWR
Reset
value
Description
1’h0
LCD Power enable:
1’b0 = Power not gated through to LCD panel and
CLD[23:0] signals disabled. (Held low)
1’b1 = Power gated through to LCD panel and CLD[23:0]
signals enabled. (Active)
[10]
BEPO
1’h0
Big-endian pixel order within a byte:
1’b0 = little-endian pixel ordering within a byte
1’b1 = big-endian pixel order within a byte
The BEPO bit selects between little and big-endian pixel
packing for 1, 2 and 4 bpp display mode. It has no effect on
8 and 16 bpp pixel format. See pixel serializer table for
more information on the data format.
[09]
BEBO
1’h0
Big-endian byte order:
1’b0 = little-endian byte order
1’b1 = big-endian byte order
[08]
BGR
1’h0
RGB of BGR format selection:
1’b0 = RGB normal output
1’b1 = BGR red and blue swapped.
[07]
LCDDUAL
1’h0
LCD interface is dual panel STN:
1’b0 = single panel LCD is in use
1’b1 = dual panel LCD is in use
[06]
LCDMONO8
1’h0
Monochrome LCD has an 8 bits interface. This bit controls
whether monochrome STN LCD uses a 4 or 8 bits parallel
interface:
1’b0 = mono LCD uses 4 bits interface
1’b1 = mono LCD uses 8 bits interface
LcdMono8 has no meaning in other modes and must be
programmed to 0.
[05]
LCDTFT
1’h0
LCD is TFT:
1’b0 = LCD is an STN display, use gray scaler
1’b1 = LCD is TFT, do not use gray scaler
1’h0
STN LCD is monochrome (black and white):
1’b0 = STN LCD is color
1’b1 = STN LCD is monochrome
This bit has no meaning in TFT mode.
[04]
LCDBW
Doc ID 022642 Rev 3
363/584
LCD display controller (CLCD)
RM0321
Table 464. LCDControl register bit assignments (continued)
Bit
[03:01]
[00]
22.2.8
Name
LCDBPP
LCDEN
Reset
value
Description
3’h0
LCD bits per pixel:
– 3’b000 = 1 bpp
– 3’b001 = 2 bpp
– 3’b010 = 4 bpp
– 3’b011 = 8 bpp
– 3’b100 = 16 bpp
– 3’b101 = 24 bpp
– 3’b110 = reserved
– 3’b111 = reserved
1’h0
LCD controller enable bit:
1’b0 = CLLP, CLCP, CLFP, CLAC, and CLLE disabled (held
LOW)
1’b1 = CLLP, CLCP, CLFP, CLAC, and CLLE enabled
(active).
LCDRIS register
LCDRIS is a read-only (RO) register. On a read it returns five bits that can generate
interrupts when set.
Table 465. LCDRIS register bit assignments
22.2.9
Bit
Name
Reset
value
Description
[13:05]
-
-
-
[04]
MBERROR
1’h0
AHB bus master error status. Set when the AHB master
encounters a bus error response from a slave.
[03]
VCOMP
1’h0
Vertical compare. Set when one of the four vertical regions,
selected through the LCD control register, is reached.
[02]
LNBU
1’h0
LCD next address base update, mode dependent, set when the
current base address registers have been successfully updated
by the next address registers. Signifies that a new next address
can be loaded if double buffering is in use.
[01]
FUF
1’h0
FIFO underflow, set when either the upper or lower DMA FIFOs
have been read accessed hen empty causing an underflow
condition to occur.
[00]
-
-
Reserved, read as zero
LCDMIS register
LCDMIS is a read-only (RO) register. It is a bit-by-bit logical AND of the LCDRIS register
and the LCDIMSC register. Interrupt lines correspond to each interrupt. A logical OR of all
interrupts is provided to the system interrupt controller.
364/584
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 466. LCDMIS register bit assignments
22.2.10
Bit
Name
Reset
value
Description
[31:05]
-
-
Reserved, read as zero
[04]
MBERRORINTR
1’h0
AHB Master errors interrupt status bit.
[03]
VCOMPINTR
1’h0
Vertical compare interrupt status bit.
[02]
LNBUINTR
1’h0
LCD next base address update interrupt status bit.
[01]
FUFINTR
1’h0
FIFO underflows interrupt status bit.
[00]
-
-
Reserved, read as zero.
LCDICR register
The LCDICR is a write-only (WO) register. Writing a logic 1 to the relevant bit clears the
corresponding interrupt.
Table 467. LCDICR register bit assignments
22.2.11
Bit
Name
Reset
value
Description
[31:05]
-
-
Reserved, do not modify, write as zero
[04]
MBERROR
1’h0
Clear AHB Master errors interrupt.
[03]
VCOMP
1’h0
Clear vertical compare interrupt.
[02]
LNBU
1’h0
Clear LCD next base address update interrupt.
[01]
FUF
1’h0
Clear FIFO underflows interrupt.
[00]
-
-
Reserved, do not modify, write as zero
LCDUPCURR and LCDLPCURR registers
LCDUPCURR and LCDLPCURR are read-only (RO) registers that contain an approximate
value of the upper and lower panel data DMA addresses when read. The registers can
change at any time and therefore can only be used as a mechanism for coarse delay.
Table 468. LCDUPCURR register bit assignments
Bit
Name
Reset value
Description
[31:00]
LCDUPCURR
32’h0
Contains the approximate current upper panel
data DMA address.
Table 469. LCDLPCURR register bit assignments
Bit
Name
Reset value
Description
[31:00]
LCDLPCURR
32’h0
Contains the approximate current lower panel data
DMA address.
Doc ID 022642 Rev 3
365/584
LCD display controller (CLCD)
22.2.12
RM0321
LCDPalette register
The LCDPalette register contains 256 palette entries organized as 128 locations of two
entries per word. Only TFT displays use all of the palette entry bits.
Each word location contains two palette entries. This means that 128 word locations are
used for the palette. When configured for little-endian byte ordering, bits [15:00] are the
lower numbered palette entry and bits [31:16] are the higher numbered palette entry.
When configured for big-endian byte ordering this is reversed, because bits [31:16] are the
low numbered palette entry and bits [15:00] are the high numbered entry.
Table 470. LCDPalette register bit assignments
Bit
Name
Reset
value
Description
[31]
I
-
Intensity or unused.
[30:26]
B[4:0]
-
Blue palette data.
[25:21]
G[4:0]
-
Green palette data.
[20:16]
R[4:0]
-
Red palette data.
[15]
I
-
Intensity bit. Can be used as the LSB of the R, G,
and B inputs to a 6:6:6 TFT display, doubling the
number of colors to 64K, where each color has two
different intensities.
[14:10]
B[4:0]
-
Blue palette data.
[09:05]
G[4:0]
-
Green palette data.
-
Red palette data.
For STN displays, only the four MSBs (bits [4:1])
are used. For monochrome displays only the red
palette data is used. All of the palette registers
have the same bit fields.
[04:00]
22.2.13
R[4:0]
PHERIPHID0-3 registers
The CLCDPERIPHID0-3 registers are four 8-bit registers, that span address locations
0xFE0 to 0xFEC. The registers can conceptually be treated as a single 32-bit register. The
read-only (RO) registers provide the following options of the peripheral:
●
PartNumber[11:0] This is used to identify the peripheral. The product code 0x10 is
used for the CLCD.
●
DesignerID[19:12] This is the identification of the designer. ARM limited is 0x41 (ASCII
A).
●
Revision[23:20] This is the revision number of the peripheral. The revision number
starts from 0 and is revision dependent.
●
Configuration[31:24] This is the configuration option of the peripheral. The
configuration value is 0.
The PHERIPHID0-3 registers are hard-coded and the fields in the register determine the
reset value.
366/584
Doc ID 022642 Rev 3
RM0321
LCD display controller (CLCD)
Table 471. PHERIPHID0 register bit assignments
Bit
Name
Reset
value
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PartNumber0
8’h10
These bits read back as 0x10
Table 472. PHERIPHID1 register bit assignments
Bit
Name
Reset
value
Description
[31:08]
-
-
Reserved, read as zero
[07:04]
Designer0
4’h1
These bits read back as 0x1
[03:00]
PartNumber1
4’h1
These bits read back as 0x1
Table 473. PHERIPHID2 register bit assignments
Bit
Name
Reset
value
Description
[31:08]
-
-
Reserved, read as zero
[07:04]
Revision
4’h0
These bits read back as 0x0
[03:00]
Designer1
4’h4
These bits read back as 0x4
Table 474. PHERIPHID3 register bit assignments
22.2.14
Bit
Name
Reset
value
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
Configuration
8’h0
These bits read back as 0x00
PCELLIDID0-3 registers
The PCELLIDID0-3 Registers are four 8 bit registers, that span address locations 0xFF00xFFC. The registers can conceptually be treated as a 32 bit register. The register is used
as a standard cross-peripheral identification system.
The PCELLIDID0 Registers are hard-coded and the fields in the register determine the reset
value.
Table 475. PCCELLIDIDO register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLIDID0
8’h0D
These bits read back as 0x0D
Doc ID 022642 Rev 3
367/584
LCD display controller (CLCD)
RM0321
Table 476: PCELLIDID1 register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved, read as zero
8’hF0
These bits read as 0xF0
PCELLIDID1
[07:00]
Table 477. PCELLIDID2 register bit assignments
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLIDID2
8’h05
These bits read back as 0x05
Table 478: PCELLIDID3 register bit assignments
368/584
Bit
Name
Reset Value
Description
[31:08]
-
-
Reserved, read as zero
[07:00]
PCELLIDID3
8’hB1
These bits read back as 0xB1
Doc ID 022642 Rev 3
RM0321
23
Touchscreen interface (OUT_X)
Touchscreen interface (OUT_X)
Refer to Chapter 29: RAS configuration (RASCFG) for these registers related to
touchscreen configuration:
●
Touchscreen duration register
●
Control register
Doc ID 022642 Rev 3
369/584
JPEG codec accelerator (JPGC)
RM0321
24
JPEG codec accelerator (JPGC)
24.1
Register summary
The JPGC can be fully configured by programming its 32-bit wide registers, which can be
accessed through the AHB slave interface at the base address 0xD080.0000.
JPGC registers can be logically arranged in five groups, each one referring to the
corresponding main block of the JPGC:
●
Codec core registers (listed in Table 480)
●
Codec controller registers (listed in Table 481)
●
DMAC registers
●
FIFO registers (listed in Table 482)
●
Internal memories (listed in Table 483)
Table 479. JPGC memory map
Name
Base address
Codec Core
0x0000
Codec Controller
0x0200
FIFO In
0x0400
FIFO Out
0x0600
Quantization Memory
0x0800
HuffMin Memory
0x0C00
HuffBase Memory
0x1000
HuffSymb Memory
0x1400
DHTMem Memory
0x1800
HuffEnc Memory
0x1C00
Table 480. JPGC core registers
370/584
Name
Offset
Type
Reset value Description
JPGCReg0
0x00
WO
32’h0
Codec Core Register 0
JPGCReg1
0x04
RW
32’h0
Codec Core Register 1
JPGCReg2
0x08
RW
32’h0
Codec Core Register 2.
JPGCReg3
0x0C
RW
32’h0
Codec Core Register 3.
JPGCReg4
0x10
RW
32’h0
Codec Core Register 4.
JPGCReg5
0x14
RW
32’h0
Codec Core Register 5.
JPGCReg6
0x18
RW
32’h0
Codec Core Register 6.
JPGCReg7
0x1C
RW
32’h0
Codec Core Register 7.
Doc ID 022642 Rev 3
RM0321
JPEG codec accelerator (JPGC)
Table 481. JPGC codec controller registers
Name
Offset Type
Reset
Description
value
JPGC Control Status
0x00
RW
32’h0
Codec controller status.
JPGC Bytes From Fifo to
Core
0x04
RO
32’h0
Number of bytes from FIFO in to Codec Core.
JPGC Bytes From Core to
Fifo
0x08
RO
32’h0
JPGC Burst Count Before
Init
0x0C
RW
32’h0
Number of bytes from Codec Core to FIFO out.
Number of burst transfer send by TX FIFO
before Interrupt.
Table 482. JPGC FIFO registers
Name
Offset
Type
Reset
Description
value
JPGC FifoIn
0x0400
RW
32’h0
FIFO in register.
JPGC FifoOut
0x0600
RW
32’h0
FIFO out register.
Table 483. JPGC internal memories
Name
Offset
Type
Reset
Description
value
JPGCQMem
0x0800
RW
-
Quantization Table Memory.
JPGCHuffMin
0x0C00
RW
-
Huffmin Table Memory.
JPGCHuffBase
0x1000
RW
-
Huffbase Table Memory.
JPGCHuffSymb
0x1400
RW
-
Huffsymb Table Memory.
JPGCDHTMem
0x1800
RW
-
Dht Marker Segment Memory.
JPGCHuffEnc
0x1C00
RW
-
Huffenc Table Memory.
Doc ID 022642 Rev 3
371/584
JPEG codec accelerator (JPGC)
RM0321
24.2
Register description
24.2.1
JPGCreg0 register
This register is used to start and stop the coding process. It is intended to be a write-only
register. reading it always return 0. All other registers must be programmed before the JPGC
is started using this register.
Table 484. JPGCreg0 register bit assignments
Bit
Name
Reset
value
Description
[31:01]
Reserved
-
Read as zero.
[00]
StartStop
1’h0
Write: coding process start/stop. Read as zero.
StartStop
When this bit is set, the coding process starts. Clearing this bit during the coding process
has the effect of stopping the process itself.
24.2.2
JPGCReg1 register
This register defines several parameters for the image format and the coding process.
Table 485. JPGCreg1 register bit assignments
372/584
Bit
Name
Reset
Value
Description
[31:16]
Ysiz
-
Number of lines.
[15:09]
Reserved
-
[08]
Hdr
-
Header processing enable.
[07:06]
Ns
-
Number of components for scan header marker segment minus
1.
[05:04]
colspctype
-
Number of quantization tables in the output stream.
[03]
De
-
Decoding/encoding.
[02]
Re
-
Restart marker processing enable.
[01:00]
Nf
-
Number of color components minus 1.
Doc ID 022642 Rev 3
RM0321
JPEG codec accelerator (JPGC)
●
Ysiz
Number of lines in source image; values can range from 0 to 65,535.
●
Hdr
When set, this bit enables the JPEG headers processing (generation or parsing,
depending if the encoding or decoding behavior is selected).
●
Ns
Number of components for scan header market segment minus 1; there can be from 1
to 4 components.
●
colspctype
The number of quantization tables to insert in the output stream minus one. 0 =
Grayscale, 1 = YUV, 2 = RGB, 3= CMYK.
●
De
Selects encoding or decoding behavior. When the bit is set, the CODEC acts as a
decoder, otherwise, it works as an encoder.
●
Re
When set, this bit enables restart marker processing. The ECS encoder inserts restart
markers every (NRST + 1) minimum coded units.
●
Nf
Number of color components in the source image minus 1; there can be from 1 to 4
components. For example, in a grayscale image Nf = 0; for a RGB or YUV image Nf =
2.
24.2.3
JPGCreg2 register
This register defines the number of minimum coded units which are to be encoded by the
codec core.
Table 486. JPGCreg2 register bit assignments
Bit
Name
Reset
Value
[31:26]
Reserved
-
[25:00]
NMCU
-
●
Description
Number of MCUs minus 1.
NMCU
This value defines the number of minimum coded units to be coded, minus 1; there can
be from 0 to 67,108,863 MCUs.
24.2.4
JPGCreg3 register
This register defines a couple of parameters for the image format and the coding process.
Doc ID 022642 Rev 3
373/584
JPEG codec accelerator (JPGC)
RM0321
Table 487. JPGCReg3 register bit assignments
Bit
Name
Reset
Value
Description
[31:16]
Xsiz
-
Number of pixels per line.
[15:00]
NRST
-
Number of MCUs between two restart markers minus 1.
●
Xsiz
Number of pixels per line of the image; a single line’s length can range from 0 to 65,535
pixels.
●
NRST
Number of minimum coded units between two consecutive restart markers, minus 1.
This value is ignored if the Re bit in JPGC Reg1 is not set.
24.2.5
JPGCreg4-7 register
These registers describe the composition of a Minimum Coded Unit (MCU).
As specified in the ISO document for the baseline algorithm (see ISO/IEC 10918-1), up to
four color components can be encoded in a single ECS. Accordingly, these registers contain
four sections, one for each color component I = 0, 1, 2, 3
.
Table 488. JPGCreg4-7 register bit assignments
Bit
Name
Reset
Value
[31:16]
Reserved
-
[15:12]
Vi
-
Vertical sampling factor for component i.
[11:08]
Hi
-
Horizontal sampling factor for component i.
[07:04]
Nblocki
-
Number of data units of the component I contained in a MCU,
minus 1.
[03:02]
QTi
-
Quantization table used for component i.
[01]
HAi
-
AC Huffman table used for component i.
[00]
HDi
-
DC Huffman table used for component i.
●
Description
Vi
This value defines the vertical sampling factor for the color component I; value can
range from 1 to 4.
●
Hi
This value defines the horizontal sampling factor for the color component I; value can
range from 1 to 4.
●
Nblocki
Number of data units (i.e. 8 x 8 blocks of data) of the color component I contained in a
MCU, minus 1. The range of possible values for Nblocki is 0-15, because 4 bits are set
374/584
Doc ID 022642 Rev 3
RM0321
JPEG codec accelerator (JPGC)
aside for this field. However, it is important to note that according to the ISO
specification, in the case of the baseline algorithm, the following relation must hold:
Nf
●
Σi =
0
( Nblocki + 1 )
≤ 10
QTi
This value defines the quantization table to be used for the color component i. Since
four quantization tables are possible, 2 bits are sufficient for this field.
●
HAi
This value defines the Huffman table to be used for the encoding of the AC coefficients
in the data units belonging to the color component i. Since only two AC tables are
allowed in the baseline algorithm, 1 bit is sufficient for this field.
●
HDi
This value defines the Huffman table to be used for the encoding of the DC coefficients
in the data units belonging to the color component i. Since only two DC tables are
allowed in the baseline algorithm, 1 bit is sufficient for this field.
24.2.6
JPGC control status register
This register contains the status of the codec controller. The bit 0 (interrupt bit) is
automatically set when a coding process has finished.
Table 489. JPGC control status register bit assignments
Bit
Name
Reset
value
Description
[31]
EOC
-
End of Conversion (Active High)
[30]
SCR
-
Synchronous Core Reset (Active High). Write only field. Writing 1
on this bit will reset & disable both CODEC and controller. Clear this
bit to enable CODEC.
[29:18]
Reserved -
[17:03]
LLI
-
Number of LLI (DMA parameter). This field is only writable and not
readable
[02:01]
BNV
-
Number of bytes not valid in last word.
[00]
INT
-
Interrupt bit. It is possible to write only 0 in this bit to clear the
interrupt bit. It is wrong to write 1 in this field.
Doc ID 022642 Rev 3
375/584
JPEG codec accelerator (JPGC)
●
RM0321
EOC
End of Conversion (Active High)
●
SCR
Synchronous Core Reset (Active High.
●
LLI
Number of LLI (DMA parameter).for input data has to be programmed with.
●
BNV
Number of bytes not valid in last word: if the total byte number is not an exact multiple
of 4, it will happen that 1, 2 or 3 bytes in the last 4-byte word will be meaningless.
●
INT
Interrupt bit. Only a 0 can be written to this bit, having the effect of clearing the interrupt
bit. Trying to write a 1 to this bit will result in an unpredictable behavior.
24.2.7
JPGC bytes from fifo to core register
This register contains the number of bytes that have been sent, at a given time, from the
FIFO In buffer to the codec core. The content of this register is cleared automatically when a
new coding process starts.
Table 490. JPGC bytes from fifo to core register bit assignments
Bit
Name
Reset
value
Description
[31:00]
NRX
-
Number of bytes from FIFO in to Codec Core.
●
NRX
Number of bytes sent from FIFO In to the Codec Core. This register is cleared when a
new encoding process starts.
24.2.8
JPGC bytes from core to fifo register
This register contains the number of bytes that have been sent, at a given time, from the
codec core to the FIFO Out buffer. The content of this register is cleared automatically when
a new coding process starts.
Table 491. JPGC bytes from core to fifo register bit assignments
Bit
Name
Reset
Value
Description
[31:00]
NTX
-
Number of bytes from codec core to FIFO out.
●
NTX
Number of bytes sent from the Codec Core to FIFO Out. This register is cleared when
a new encoding process starts.
376/584
Doc ID 022642 Rev 3
RM0321
24.2.9
JPEG codec accelerator (JPGC)
JPGC bust count beforeInit
This register contains the number of burst transfer sent by TX FIFO before controller will set
interrupt. It's ignored if burst count ENABLE bit is 0.
Table 492. JPGCbust Count before Init register bit assignments
Bit
Name
Reset
Value
Description
[31]
EN
-
Burst Count ENABLE, active high
[30:00]
BTF
-
Number of burst transfer send by TX FIFO before interrupt.
●
EN
Burst Count Enable, Active High.
●
BTF
Number of burst transfer sent by TX FIFO before controller will set interrupt.
24.2.10
DMAC registers
See Chapter 33: DMA controller (DMAC).
24.2.11
JPGCFifoIn register
This register is used to read data from, or write data to, the FIFO In, which is used to
bufferize the transfers from the external RAM to the codec core, under the control of the
codec controller.
Table 493. JPGC fifo in register bit assignments
Bit
Name
Reset
Value
Description
[31:00]
DATA
-
FIFO data.
●
DATA
Data read from, or written to, the FIFO In buffer.
24.2.12
JPGCFifoOut register
This register is used to read data from, or write data to, the FIFO out, which is used to
bufferize the transfers from the codec core to the external RAM, under the control of the
codec controller.
Table 494. JPGC fifo out register bit assignments
Bit
Name
Reset
value
Description
[31:00]
DATA
-
FIFO data.
●
DATA
Data read from, or written to, the FIFO In buffer.
Doc ID 022642 Rev 3
377/584
JPEG codec accelerator (JPGC)
24.2.13
RM0321
JPGCqmem memory
This memory is used to store the quantization tables used by the codec core.
As specified in the ISO documentation, in the case of the baseline algorithm, up to four
tables can be used. Each table requires 64 x 8 bit words. The tables occupy contiguous
memory locations.
Table 495. JPGCqmem memory map
First Address
Last Address
Table
0
63
Table 0
64
127
Table 1
128
191
Table 2
192
255
Table 3
For decoding with header parsing, no quantization table programming is required, because
the codec core extracts the dequantization coefficients from the JPEG encoded data, and
write them to the JPGCQMem memory.
For encoding and decoding ECS data, quantization value can be simply loaded into the
tables.
Note:
The quantization coefficients must be specified in the table in zigzag order.
24.2.14
JPGChuffmin memory
Together with the HuffBase table and the HuffSymb table, this is one of the three Huffman
tables required by the Codec Core when it acts as a decoder.
The HuffMin table can be up to 4 x 100 bit words.
Table 496. JPGCHuffMin memory map
Address
Value
0
MIN AC 0 value
1
MIN DC 0 value
2
MIN AC 1 value
3
MIN DC 1 value
When decoding with header processing, this table is automatically programmed by the
codec core, while in the case of ECS only decoding, the HuffMin table must be programmed
before starting the codec core.
24.2.15
JPGC huffbase memory
Together with the HuffMin table and the HuffSymb table, this is one of the three Huffman
tables required by the Codec Core when it acts as a decoder.
The HuffBase table can be up to 64 x 9 bit words.
378/584
Doc ID 022642 Rev 3
RM0321
JPEG codec accelerator (JPGC)
Table 497. JPGC huffbase memory map
First address
Last address
Table
0
15
BASE AC 0 value
16
31
BASE DC 0 value
32
47
BASE AC 1 value
48
63
BASE DC 1 value
When decoding with header processing, this table is automatically programmed by the
codec core, while in the case of ECS only decoding, the HuffBase table must be
programmed before starting the codec core.
24.2.16
JPGChuffsymb memory
Together with the HuffMin table and the HuffBase table, this is one of the three Huffman
tables required by the codec core when it acts as a decoder.
The HuffSymb table can be up to 336 x 8 bit words.
Table 498. JPGC huffsymb memory map
First address
Last address
Table
0
161
SYMB AC 0 value
162
173
SYMB DC 0 and 1values
174
335
SYMB AC 1 value
When decoding with header processing, this table is automatically programmed by the
codec core, while in the case of ECS only decoding, the HuffSymb table must be
programmed before starting the codec core.
24.2.17
JPGCDHTmem memory
Together with the HuffEnc table, this is one of the two Huffman tables required by the codec
core when it acts as an encoder.
As specified in the ISO documentation, in the case of the baseline algorithm, up to two
tables for encoding DC coefficients and two tables for encoding AC coefficients can be used.
Table 499. JPGCDHTmem memory map
First address
Last address
Table
0
27
DC Huffman table 0
28
205
AC Huffman table 0
206
233
DC Huffman table 1
234
411
AC huffman table 1
The standard specifies that the Huffman table values be 8 bit words and in the following
format:
Doc ID 022642 Rev 3
379/584
JPEG codec accelerator (JPGC)
RM0321
DC tables and AC tables:
Li: number of huffman codes of length i: this specifies the number of huffman codes for each
of the 16 possible lengths that the specification allows. This represents the first 16 bytes of
each DC table and AC table address block in the JPGCDHTMem memory.
Vi: value associated with each Huffman code: this specifies the value associated with each
Huffman code of length i. This mt = L1 + L2 + … + L16 bytes following the 16 length values.
24.2.18
JPGChuffenc memory
Together with the HuffDHTMem table, this is one of the two Huffman tables required by the
codec core when it acts as an encoder.
As specified in the ISO documentation, in the case of the baseline algorithm, up to two
tables for encoding DC coefficients and two tables for encoding AC coefficients can be used.
the memory map is shown in Table 500.
Table 500. JPGCHuffEnc memory map
First address
Last address
Table
0
175
AC Huffman table 0
176
351
AC Huffman table 1
352
367
DC Huffman table 0
368
383
DC Huffman table 1
Each AC table requires 176 x 12 bit words. Each DC table requires 16 x 12 bit words. All the
AC and DC tables occupy contiguous locations in the JPGCHuffEnc memory.
Each Huffman code is stored as record containing the actual code HCODE (bits [7:0] of
each 12 bit word) and its length HLEN (bits [11:8] of each 12 bit word).
HLEN are the 4 most significant bits of the huffman code. It is the number of bits in the
Huffman code minus 1.
HCODE are the 8 least significant bits of the huffman code. If the huffman code is less than
8 bits long, the bits that are not used must be 0.
Although Huffman codes used in the JPEG algorithm can be up to 16 bits long, when the
code is more than 8 bits long, the most significant bits are always 1. Therefore, it is
unnecessary to specify more than 8 bits for any code, as the most significant bits are
generated internally.
162 Huffman codes are required for the encoding the AC run-length codes and 12 for the
DC coefficients.
The location of the Huffman codes for the 162 run-length codes in an AC table is shown in
Table 501.
Table 501. Location of AC huffman codes in JPGCHuffEnc memory
380/584
Address
Value
0-9
Huffman code of run lengths 0/1 to 0/A
10-19
Huffman code of run lengths 1/1 to 1/A
Doc ID 022642 Rev 3
RM0321
JPEG codec accelerator (JPGC)
Table 501. Location of AC huffman codes in JPGCHuffEnc memory (continued)
Address
Value
20-29
Huffman code of run lengths 2/1 to 2/A
30-39
Huffman code of run lengths 3/1 to 3/A
40-49
Huffman code of run lengths 4/1 to 4/A
50-59
Huffman code of run lengths 5/1 to 5/A
60-69
Huffman code of run lengths 6/1 to 6/A
70-79
Huffman code of run lengths 7/1 to 7/A
80-89
Huffman code of run lengths 8/1 to 8/A
90-99
Huffman code of run lengths 9/1 to 9/A
100-109
Huffman code of run lengths A/1 to A/A
110-119
Huffman code of run lengths B/1 to B/A
120-129
Huffman code of run lengths C/1 to C/A
130-139
Huffman code of run lengths D/1 to D/A
140-149
Huffman code of run lengths E/1 to E/A
150-159
Huffman code of run lengths F/1 to F/A
160
Huffman code of EOB
161
Huffman code of ZRL
162-167
$FFF
168-175
$FD0-$FD7
Locations 162-175 of each AC table contain information used internally by the Codec Core.
The location of the huffman codes for the 12 codes in an DC table is shown inTable 502.
Table 502. Location of DC huffman codes in JPGCHuffEnc memory
Address
Value
0-11
Huffman code of DC codes 0 to A
12-15
Not used
Doc ID 022642 Rev 3
381/584
JPEG codec accelerator (JPGC)
382/584
RM0321
Doc ID 022642 Rev 3
RM0321
25
Digital audio port (I2S)
Digital audio port (I2S)
The I2S base address is 0xA940.0000.
25.1
Register summary
Table 503. I2S register list
Offset
Register name
Description
Page
0x0
IER
I2S Enable Register
on page
385
0x4
IRER
I2S Receiver Block Enable Register
on page
385
0x8
ITER
I2S Transmitter Block Enable Register
on page
386
0xc
CER
Clock Enable Register
on page
386
0x10
CCR
Clock Configuration Register
25.2.5 on
page 387
0x14
RXFFR
Receiver Block FIFO Reset Register
on page
387
0x18
TXFFR
Transmitter Block FIFO Reset Register
on page
388
0x20
LRBR0_LTHR0
Left Receive Buffer 0/Left Transmit Holding 0
on page
388
0x24
RRBR0_RTHR0
Right Receive Buffer 0/Right Transmit Holding 0
25.2.9 on
page 389
0x28
RER0
Receive Enable Register 0
on page
390
0x2c
TER0
Transmit Enable Register 0
25.2.11
on page
391
0x30
RCR0
Receive Configuration Register 0
on page
391
0x34
TCR0
Transmit Configuration Register 0
on page
392
0x38
ISR0
Interrupt Status Register 0
25.2.14
on page
392
0x3c
IMR0
Interrupt Mask Register 0
on page
393
0x40
ROR0
Receive Overrun Register 0
on page
394
Doc ID 022642 Rev 3
383/584
Digital audio port (I2S)
RM0321
Table 503. I2S register list
Offset
Register name
Description
Page
0x44
TOR0
Transmit Overrun Register 0
on page
394
0x48
RFCR0
Receive FIFO Configuration Register 0
on page
395
0x4c
TFCR0
Transmit FIFO Configuration Register 0
on page
395
0x50
RFF0
Receive FIFO Flush Register 0
on page
396
0x54
TFF0
Transmit FIFO Flush Register 0
on page
396
0x1c0
RXDMA
Receiver Block DMA Register
25.2.22
on page
396
0x1c8
TXDMA
Transmitter Block DMA Register
on page
397
384/584
Doc ID 022642 Rev 3
RM0321
Digital audio port (I2S)
25.2
Register descriptions
25.2.1
I2S controller enable register
IER
I2S Controller Enable Register
8
7
6
5
4
3
2
1
0
IEN
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
Address:
I2S_BaseAddress + 0x0
Type:
R/W
Reset:
0x0
Description:
This register acts as a global enable/disable for the I2S controller.
[0] IEN: I2S enable.
A disable on this bit overrides any other
block or channel enables and flushes all FIFOs.
1: enable I2S
0: disable I2S
Reset: 0
25.2.2
I2S RX block enable register
IRER
I2S Receiver Block Enable Register
8
7
6
5
4
3
2
1
0
RXEN
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
Address:
I2S_BaseAddress + 0x4
Type:
R/W
Reset:
0x0
Description:
This register acts as an enable/disable for the Receiver block.
[0] RXEN: Receiver block enable.
A disable on this bit overrides any individual receive channel enables.
1: enable receiver
0: disable receiver
Reset: 0
Doc ID 022642 Rev 3
385/584
Digital audio port (I2S)
25.2.3
RM0321
I2S TX block enable register
ITER
I2S Transmitter Block Enable Register
Address:
I2S_BaseAddress + 0x8
Type:
R/W
Reset:
0x0
Description:
8
7
6
5
4
3
2
1
0
TXEN
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
This register acts as an enable/disable for the I2S Transmitter block.
[0] TXEN: Transmitter block enable.
A disable on this bit overrides any individual transmit channel enables.
1: enable transmitter
0: disable transmitter
Reset: 0
25.2.4
I2S clock enable register
CER
Clock Enable Register
Address:
I2S_BaseAddress + 0xc
Type:
R/W
Reset:
0x0
Description:
7
6
5
4
3
2
1
0
CLKEN
8
R
R/
W
This register acts as an enable/disable for the I2S Clock Generation block.
[0] CLKEN: Clock generation enable/disable.
This bit enables/disables the clock generation signals.
1: enable
0: disable
Reset: 0
386/584
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
Doc ID 022642 Rev 3
RM0321
25.2.5
Digital audio port (I2S)
I2S clock configuration register
CCR
Clock Configuration Register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
RESERVED
WSS
SCLKG
R
R/W
R/W
Address:
I2S_BaseAddress + 0x10
Type:
R/W
Reset:
0x10
Description:
This register configures the I2S_LR signal and the gating of the I2S_CLK signal.
[4:3] WSS: These bits are used to program the number
of I2S_CLK cycles for which the word select
line (I2S_LR) stays in the left or right sample mode:
0: 16 clock cycles
1: 24 clock cycles
2: 32 clock cycles
The I2S Clock Generation block must be disabled (CER[0] = 0) prior to any changes in this
value.
[2:0] SCLKG: These bits are used to program the gating of I2S_CLK:
0: No clock gating
1: Gate after 12 clock cycles
2: Gate after 16 clock cycles
3: Gate after 20 clock cycles
4: Gate after 24 clock cycles
The programmed gating value should be less than or equal to the largest
configured/programmed audio resolution to prevent the truncating of RX/TX data.
The I2S Clock Generation block must be disabled (CER[0] = 0) prior to any changes in this
value.
25.2.6
I2S RX FIFO reset register
RXFFR
Receiver Block FIFO Reset Register
8
7
6
5
4
3
2
1
0
RXFFR
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
W
Address:
I2S_BaseAddress + 0x14
Type:
W
Reset:
0x0
Description:
Receiver Block FIFO Reset Register
[0] RXFFR: Receiver FIFO Reset.
Writing a 1 to this register flushes all the RX FIFOs (this is a self clearing bit). Receiver Block
must be disabled prior to writing this bit.
Reset: 0
Doc ID 022642 Rev 3
387/584
Digital audio port (I2S)
25.2.7
RM0321
I2S TX FIFO reset register
TXFFR
Transmitter Block FIFO Reset Register
Address:
I2S_BaseAddress + 0x18
Type:
W
Reset:
0x0
Description:
8
7
6
5
4
3
2
1
0
TXFFR
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
W
Transmitter Block FIFO Reset Register
[0] TXFFR: Transmitter FIFO Reset.
Writing a 1 to this register flushes all the TX FIFOs (this is a self clearing bit). The Transmitter
Block must be disabled prior to writing this bit.
Reset: 0
25.2.8
I2S left RX buffer/left TX holding register
LRBR0_LTHR0
Left Receive Buffer 0/Left Transmit Holding 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
LRBR0_LTHR0
R/W
Address:
I2S_BaseAddress + 0x20
Type:
R/W
Reset:
0x0
Description:
When Reading:
Name: Left Receive Buffer Register 0
Size: 32
Read/Write Access: Read
When Writing:
Name: Left Transmit Holding Register 0
Size: 32
388/584
Doc ID 022642 Rev 3
9
8
7
6
5
4
3
2
1
0
RM0321
Digital audio port (I2S)
[31:0] LRBR0_LTHR0: When reading:
The left stereo data received serially from the receive channel input (I2S_RX) is read through
this
register. If the RX FIFO is full and the two-stage read operation (for instance, a read from
LRBR0 followed by a read from RRBR0) is not performed before the start of the next stereo
pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is
preserved.)
Note: Before reading this register again, the right stereo data MUST be read from RRBR0, or
the status/interrupts will not be valid.
Reset: 0x0
When Writing:
The left stereo data to be transmitted serially through the transmit channel output (I2S_TX) is
written through this register. Writing is a two-stage process:
(1) A write to this register passes the left stereo sample to the transmitter.
(2) This MUST be followed by writing the right stereo sample to the RTHR0 register.
Data should only be written to the FIFO when it is not full. Any attempt to write to a full FIFO
results in that data being lost and an overrun interrupt being generated.
Reset: 0x0
25.2.9
I2S right RX buffer/right TX holding register
RRBR0_RTHR0
Right Receive Buffer 0/Right Transmit Holding 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
RBR0_RTHR0
R/W
Address:
I2S_BaseAddress + 0x24
Type:
R/W
Reset:
0x0
Description:
When Reading:
Name: Right Receive Buffer Register 0
Size: 32
When Writing:
Doc ID 022642 Rev 3
389/584
Digital audio port (I2S)
RM0321
Name: Right Transmit Holding Register 0
Size: 32
[31:0] RBR0_RTHR0: When Reading:
The right stereo data received serially from the receive channel input (I2S_RX) is read through
this register. If the RX FIFO is full and the two-stage read operation (for instance, read from
LRBR0 followed by a read from RRBR0) is not performed before the start of the next stereo
pair, then the new data is lost and an overrun interrupt occurs. (Data already in the RX FIFO is
preserved.)
Note: Prior to reading this register, the left stereo data MUST be read from LRBR0, or the
status/interrupts will not be valid.
Reset: 0x0
When Writing:
The right stereo data to be transmitted serially through the
transmit channel output (I2S_TX) is written through this
register. Writing is a two-stage process:
(1) A left stereo sample MUST first be written to the
LTHR0 register.
(2) A write to this register passes the right stereo sample to
the transmitter.
Data should only be written to the FIFO when it is not full.
Any attempt to write to a full FIFO results in that data
being lost and an overrun interrupt being generated.
Reset: 0x0
25.2.10
I2S RX enable register
RER0
Receive Enable Register 0
Address:
I2S_BaseAddress + 0x28
Type:
R/W
Reset:
0x1
Description:
8
7
6
5
4
3
2
1
0
RXCHEN0
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
Receive Enable Register 0
[0] RXCHEN0: Receive channel enable.
This bit enables/disables a receive channel, independently of all other channels.
On enable, the channel begins receiving on the next left stereo cycle. A global disable of I2S
(IER[0] = 0) or the Receiver block (IRER[0] = 0) overrides this value.
1: Enable
0: Disable
Reset: 1
390/584
Doc ID 022642 Rev 3
RM0321
25.2.11
Digital audio port (I2S)
I2S TX enable register
TER0
Transmit Enable Register 0
Address:
I2S_BaseAddress + 0x2c
Type:
R/W
Reset:
0x1
Description:
8
7
6
5
4
3
2
1
0
TXCHEN0
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
Transmit Enable Register 0
[0] TXCHEN0: Transmit channel enable.
This bit enables/disables a transmit channel, independently of all other channels. On enable,
the channel begins transmitting on the next left stereo cycle. A global disable of I2S (IER[0] = 0)
or Transmitter block (ITER[0] = 0) overrides this value.
0: Disable
1: Enable
Reset: 1
25.2.12
I2S RX configuration register
RCR0
Receive Configuration Register 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
8
7
6
5
4
3
2
1
WLEN
R
R/W
Address:
I2S_BaseAddress + 0x30
Type:
R/W
Reset:
0x5
Description:
9
RESERVED
0
Receive Configuration Register 0
[2:0] WLEN: These bits are used to program the desired data resolution of the receiver and enables
the LSB of the incoming left (or right) word to be placed in the LSB of the LRBR0 (or RRBR0)
register.
000 = Ignore word length
001 = 12 bit resolution
010 = 16 bit resolution
011 = 20 bit resolution
100 = 24 bit resolution
101 = 32 bit resolution
Programmed data resolution must be less than or equal to 32. If the selected resolution is
greater than 32, the receive channel defaults back to 0x5. The channel must be disabled prior
to any changes in this value (RER0[0] = 0).
Reset: 0x5
Doc ID 022642 Rev 3
391/584
Digital audio port (I2S)
25.2.13
RM0321
I2S TX configuration register
TCR0
Transmit Configuration Register 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
WLEN
R
R/W
Address:
I2S_BaseAddress + 0x34
Type:
R/W
Reset:
0x5
Description:
Transmit Configuration Register 0
0
[2:0] WLEN: These bits are used to program the data //resolution of the transmitter and
ensures the MSB of the data is transmitted first.
000 = Ignore word length
001 = 12 bit resolution
010 = 16 bit resolution
011 = 20 bit resolution
100 = 24 bit resolution
101 = 32 bit resolution
Programmed resolution must be less than or equal to 32. If the selected resolution is greater
than 32, the transmit channel defaults back to 0x5. The channel must be disabled prior to any
changes in this value (TER0[0] = 0).
Reset: 0x5
I2S interrupt status register
R
R
R
Address:
I2S_BaseAddress + 0x38
Type:
R
Reset:
0x10
392/584
Doc ID 022642 Rev 3
9
8
7
6
1
0
RXDA
4
TXFE
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
RXFO
5
TXFO
Interrupt Status Register 0
RESERVED
ISR0
RESERVED
25.2.14
3
2
R
R
R
RM0321
Digital audio port (I2S)
Description:
Interrupt Status Register 0
[5] TXFO: Status of Data Overrun interrupt for the TX channel.
Attempt to write to full TX FIFO.
0: TX FIFO write valid
1: TX FIFO write overrun
Reset: 0
[4] TXFE: Status of Transmit Empty Trigger interrupt.
TX FIFO is empty.
1: trigger level reached
0: trigger level not reached
Reset: 1
[1] RXFO: Status of Data Overrun interrupt for the RX channel.
//Incoming data lost due to a full RX FIFO.
0: RX FIFO write valid
1: RX FIFO write overrun
Reset: 0
[0] RXDA: Status of Receive Data Available interrupt.
RX FIFO data available.
1: trigger level reached
0: trigger level not reached
Reset: 0
25.2.15
I2S interrupt mask register
IMR0
Interrupt Mask Register 0
4
3
2
1
0
RXDAM
5
RXFOM
6
RESERVED
7
TXFEM
8
TXFOM
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
R/
W
R
R/
W
R/
W
Address:
I2S_BaseAddress + 0x3c
Type:
R/W
Reset:
0x33
Description:
Interrupt Mask Register 0
[5] TXFOM: Masks TX FIFO Overrun interrupt.
1: masks interrupt
0: unmasks interrupt
Reset: 0
Doc ID 022642 Rev 3
393/584
Digital audio port (I2S)
RM0321
[4] TXFEM: Masks TX FIFO Empty interrupt.
1: masks interrupt
0: unmasks interrupt
Reset: 1
[1] RXFOM: Masks RX FIFO Overrun interrupt.
1: masks interrupt
0: unmasks interrupt
Reset: 0
[0] RXDAM: Masks RX FIFO Data Available interrupt.
1: masks interrupt
0: unmasks interrupt
Reset: 0
25.2.16
I2S RX overrun register
ROR0
Receive Overrun Register 0
Address:
I2S_BaseAddress + 0x40
Type:
R
Reset:
0x0
Description:
8
7
6
5
4
3
2
1
0
RXCHO
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R
Receive Overrun Register 0
[0] RXCHO: Read this bit to clear the RX FIFO Data Overrun interrupt.
0: RX FIFO write valid
1: RX FIFO write overrun
Reset: 0
25.2.17
I2S TX overrun register
TOR0
Transmit Overrun Register 0
Address:
I2S_BaseAddress + 0x44
Type:
R
Reset:
0x0
394/584
8
7
6
5
4
3
2
1
0
TXCHO
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R
Doc ID 022642 Rev 3
RM0321
Digital audio port (I2S)
Description:
Transmit Overrun Register 0
[0] TXCHO: Read this bit to clear the TX FIFO Data Overrun interrupt.
0: TX FIFO write valid
1: TX FIFO write overrun
Reset: 0
25.2.18
I2S RX FIFO configuration register
RFCR0
Receive FIFO Configuration Register 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
RXCHDT
R
R/W
Address:
I2S_BaseAddress + 0x48
Type:
R/W
Reset:
0x7
Description:
Receive FIFO Configuration Register 0
0
[3:0] RXCHDT: These bits program the trigger level in the RX FIFO at which the Received Data
Available interrupt is generated.
Trigger Level = Programmed Value + 1
(for example, 1 to 16)
Valid RXCHDT values: 0 to (16 - 1)
If an illegal value is programmed, these bits saturate to (16 - 1).
The channel must be disabled prior to any changes in this value (that is, RER0[0] = 0).
Reset: 0x7
25.2.19
I2S TX FIFO configuration register
TFCR0
Transmit FIFO Configuration Register 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
TXCHET
R
R/W
Address:
I2S_BaseAddress + 0x4c
Type:
R/W
Reset:
0x7
Description:
Transmit FIFO Configuration Register 0
0
[3:0] TXCHET: Transmit Channel Empty Trigger.
These bits program the trigger level in the TX FIFO at which the Empty Threshold Reached
Interrupt is generated.
Trigger Level = TXCHET
TXCHET values: 0 to (16 - 1)
If an illegal value is programmed, these bits saturate to (16 - 1).
The channel must be disabled prior to any changes in this value (that is, TER0[0] = 0).
Reset: 0x7
Doc ID 022642 Rev 3
395/584
Digital audio port (I2S)
25.2.20
RM0321
I2S RX FIFO flush register
RFF0
Receive FIFO Flush Register 0
Address:
I2S_BaseAddress + 0x50
Type:
W
Reset:
0x0
Description:
8
7
6
5
4
3
2
1
0
RXCHFR
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
W
Receive FIFO Flush Register 0
[0] RXCHFR: Receive Channel FIFO Reset.
Writing a 1 to this register flushes an individual RX FIFO. (This is a self clearing bit.)
RX channel or block must be disabled prior to writing to this bit.
Reset: 0
25.2.21
I2S TX FIFO flush register
TFF0
Transmit FIFO Flush Register 0
8
7
6
5
4
3
2
1
0
TXCHFR
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
W
Address:
I2S_BaseAddress + 0x54
Type:
W
Reset:
0x0
Description:
Transmit FIFO Flush Register 0
[0] TXCHFR: Transmit Channel FIFO Reset.
Writing a 1 to this register flushes channel‘s TX FIFO. (This is a self clearing bit.)
TX channel or block must be disabled prior to writing to this bit.
Reset: 0
25.2.22
I2S RX DMA register
RXDMA
Receiver Block DMA Register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
RXDMA
R
Address:
396/584
I2S_BaseAddress + 0x1c0
Doc ID 022642 Rev 3
9
8
7
6
5
4
3
2
1
0
RM0321
Digital audio port (I2S)
Type:
R
Reset:
0x0
Description:
Receiver Block DMA Register
Size: 32
The RXDMA register allows access to the enabled Receive channel via a single point
rather than through the LRBRx and RRBRx registers. The Receive channel takes two
reads (left and right stereo data). The following example describes the behavior of
this register with Receive channel 0 enabled:
Order of returned read data:
1. Left Data
2. Right Data
3. Left Data
4. Right Data, and so on
Note: There is no read coherency logic, hence the APB_DATA_WIDTH must be greater
than or equal to the largest Receive channel word size to ensure all half data pairs
can be accessed using a single read.
The channel can be enabled or disabled during the read cycles, however, the I2S
controller does not support disabling a channel in the middle of a stereo pair.
[31:0] RXDMA: Receiver Block DMA Register.
Used to cycle repeatedly through the enabled receive channels (from lowest numbered to
highest), reading stereo data pairs.
Reset: 0x00
25.2.23
I2S TX DMA register
TXDMA
Transmitter Block DMA Register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
TXDMA
W
Address:
I2S_BaseAddress + 0x1c8
Type:
W
Reset:
0x0
Description:
Transmitter Block DMA Register
Size: 32
The TXDMA register functions similar to the RXDMA register
and allows write accesses to all of the enabled Transmit
channels via a single point rather than through the LTHRx
and RTHRx registers.
Note: There is no write coherency logic, hence the APB_DATA_WIDTH
must be greater than or equal to the largest Transmit channel
word size to ensure all half data pairs can be written using
a single write.
Doc ID 022642 Rev 3
397/584
Digital audio port (I2S)
RM0321
Channels can be enabled or disabled during the write cycles,
however, the I2S controller does not support disabling a channel in
the middle of a stereo pair.
[31:0] TXDMA: Transmitter Block DMA Register.
//This register can be used to cycle repeatedly through the enabled Transmit channels (from
lowest numbered to highest) to allow writing of stereo data pairs.
Reset: 0x00
398/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
26
Cryptographic co-processor (C3)
26.1
Register summary
Most components of C3 have registers mapped in AHB address space starting at the base
address 0xD900.0000. Registers are accessed using the C3 AHB Slave Interface (SIF). An
address space of 1 KB is allocated for each of these components. The total AHB address
window of C3 is 32 KB permitting the mapping of up to 32 components. All registers are 32bit wide and access to them must be done using aligned 32-bit words read and writes. The
current mapping is listed in the Table 504.
Table 504. C3 register summary
Symbol
Name
Offset
Reset Value
C3_SYS
System Registers
0x0000
32’h400
C3_HIF
Master Interfaced Registers
0x0400
32’h400
–
Unused
0x0800
32’h400
–
Unused
0x0C00
32’h400
C3_ID0
Instruction Dispatcher #0 Registers
0x1000
32’h400
C3_ID1
Unused
0x1400
32’h400
C3_ID2
Unused
0x1800
32’h400
C3_ID3
Unused
0x1C00
32’h400
C3_CH0
Unused
0x2000
32’h400
C3_CH1
Channel #1 Registers
0x2400
32’h400
C3_CH2
Channel #2 Registers
0x2800
32’h400
C3_CH3
Channel #3 Registers
0x2C00
32’h400
–
Unused
0x3000
32’h400
–
Unused
0x3400
32’h400
–
Unused
0x3800
32’h400
–
Unused
0x3C00
32’h400
–
Unused
0x4000
32’h400
–
Unused
0x4400
32’h400
–
Unused
0x4800
32’h400
–
Unused
0x4C00
32’h400
–
Unused
0x5000
32’h400
–
Unused
0x5400
32’h400
–
Unused
0x5800
32’h400
–
Unused
0x5C00
32’h400
–
Unused
0x6000
32’h400
–
Unused
0x6400
32’h400
Doc ID 022642 Rev 3
399/584
Cryptographic co-processor (C3)
RM0321
Table 504. C3 register summary (continued)
Symbol
Name
Offset
Reset Value
–
Unused
0x6800
32’h400
–
Unused
0x6C00
32’h400
–
Unused
0x7000
32’h400
–
Unused
0x7400
32’h400
–
Unused
0x7800
32’h400
–
Unused
0x7C00
32’h400
26.2
Register description
26.2.1
System registers (C3_SYS)
System registers are registers whose scope is the whole C3. Table 505 summarizes the
AHB mapped registers for the system (SYS).
Table 505. C3 system components register map
Symbol
Name
Type
Reset value
Offset
SYS_SCR
Status and control register
RW
-
0x000
SYS_STR
Channel status register
RO
-
0x040
SYS_VER
Hardware version and revision
RO
VER
0x3F0
SYS_HWID
Hardware ID
RO
HWID
0x3FC
Zero is read from undefined locations, writing has no effect.
Channel status and control register (SYS_SCR)
400/584
Bit
31
30
29
28
27
26
25
24
Symbol
IDS3H
IDS3L
IDS2H
IDS2L
IDS1H
IDS1L
IDS0H
IDS0L
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
ISD3
ISD2
ISD1
ISD0
ISA
CISR
BEND
ARST
Initial Value
0
0
0
0
0
0
0
0
Type
R(W)
R(W)
R(W)
R(W)
R(W)
R(W)
R(W)
R(W)
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit
15
14
13
12
11
10
9
8
Symbol
C7SH
C7SL
C6SH
C6SL
C5SH
C5SL
C4SH
C4SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
C3SH
C3SL
C2SH
C2SL
C1SH
C1SL
C0SH
C0SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit 31 to 24 - Instruction dispatcher n status (IDnS)
The status of each Instruction Dispatcher is mirrored in these bits. Bits 31-30 are the state of
ID3, bits 29-28 of ID2, bits 27-26 of ID1 and bits 25-24 of ID0. These bits are the same as
the ones in the Instruction Dispatcher Status and Control Register (ID_SCR) of each ID.
These bits allow knowing the status of all Instruction Dispatcher with a single AHB slave
read. See the Instruction Dispatcher document section for more details
Bit 23 to 20 - Instruction dispatcher n interrupt status (ISDn)
Interrupt States (IS) of every Instruction Dispatcher are made available in these bits. These
bits are the same than the ones in the Instruction Dispatcher Status and Control Register
(ID_SCR) of each ID. Interrupts can be acknowledged using the Status and Control Register
of the Instruction Dispatcher (ID_SCR) or using these bits. See the Instruction Dispatcher
document section for more details.
Bit 23-20 ISDn
Description
1’b1
The Instruction Dispatcher n is requesting an Interrupt.
1’b0
(Clearing conditions) The Interrupt Status (IS) of Instruction
Dispatcher n can be cleared writing one to this flag. Writing zero
has no effect.
Bit 19 - Interrupt status of all instruction dispatchers (ISA)
The Interrupt Status of All Instruction Dispatchers (ISA) is the logical OR of bits ISD3-ISDO.
This bit represents the state of the Interrupt pin of the C3 document. Writing one to this flag
has the same effect as writing one in all ISD3-ISDO.
Bit 19 ISA
Description
1’b1
At least one Instruction Dispatcher is requesting an Interrupt.
1’b0
(Clearing conditions) The Interrupt Status (IS) of Instruction
Dispatcher can be cleared writing one to this flag. Writing zero
has no effect.
Doc ID 022642 Rev 3
401/584
Cryptographic co-processor (C3)
RM0321
Bit 18 - Clear interrupt status on read (CISR)
If the Clear Interrupt Status on Read bit (CISR) is set, clearing of Interrupt States is
performed by reading the Status and Control Register of the System (SYS_SCR). The
Status and Control Register of Instruction Dispatchers (ID_SCR) is not affected by this bit.
Bit 18 CISR
Description
1’b1
Reading SYS_SCR clears Interrupt States of all Instruction
Dispatchers.
1’b0
Do not clear Interrupt States on SYS_SCR read.
Bit 17 - Big endian (BEND)
Not implemented. This bit should be set to zero.
Bit 16 - Asynchronous master reset (ARST)
The whole C3 can be reset using this bit. The reset is done asynchronously in Hardware
thus guaranteeing a well known state after its execution. A special Hardware block takes
care of correct timings for the reset sequence. It takes about 6 clock cycles for the Hardware
reset. The Internal Memory may not be cleared.
Bit 16 ARST
Description
1’b1
Reset the whole C3.
1’b0
(Clearing conditions) This bit is cleared as a consequence of
the reset, so it is always read zero. Writing zero has no effect.
Bit 15 to 0 - Channel n status (CnS)
The status of each Channel is mirrored in these bits. These bits are the same ones as found
in the Instruction Dispatcher Status and Control Register (ID_SCR). See the Instruction
Dispatcher document section for more details.
Channel status register (SYS_STR)
402/584
Bit
15
14
13
12
11
10
9
8
Symbol
C7SH
C7SL
C6SH
C6SL
C5SH
C5SL
C4SH
C4SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
C3SH
C3SL
C2SH
C2SL
C1SH
C1SL
C0SH
C0SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 15 to 0 - Channel n status (CnS)
The status of each Channel is mirrored in these bits. These bits are the same ones as found
in the Instruction Dispatcher Status and Control Register (ID_SCR) and in the System
Status and Control Register (SYS_SCR). See the Instruction Dispatcher registers
description (section 3) for more details.
Hi Bit CnSH
LoBit CnSL
Description
0
0
Not Present: This Channel does not exist in Hardware.
1
0
Idle: The Channel is idle and instructions can be dispatched to it.
1
1
Busy: The Channel is executing instructions dispatched by an
Instruction Dispatcher.
0
1
Error: The Channel is in error state, use Channel registers to know
the cause.
Hardware Version and Revision Registers (SYS_VER)
The Hardware Version and Revision Register (SYS_VER) contain the RTL source version
from which the Hardware was generated.
Bit
31
30
29
28
27
26
25
24
Symbol
V7
V6
V5
V4
V3
V2
V1
V0
Initial Value
0
0
0
0
0
0
1
1
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
R7
R6
R5
R4
R3
R2
R1
R0
Initial Value
R7
R7
R7
R7
R7
R7
R7
R7
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
15
14
13
12
11
10
9
8
Symbol
S15
S14
S13
S12
S11
S10
S9
S8
Initial Value
S15
S14
S13
S12
S11
S10
S9
S8
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
S7
S6
S5
S4
S3
S2
S1
S0
Initial Value
S7
S6
S5
S4
S3
S2
S1
S0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Doc ID 022642 Rev 3
403/584
Cryptographic co-processor (C3)
RM0321
Bit 31 to 24 - Hardware Version
Bits V7-V0 represents the Version. This is always 3 (the v3 part in C3v3).
Bit 23 to 16 - Hardware Revision
Bits R7-R0 represents the RTL Revision.
Bit 15 to 0 - Hardware Sub-revision
Bits S15-S0 represents the RTL Sub-revision. For example the version of a C3v3 RTL
source tree 3.1.5 is identified by Vn set to 3, Rn set to 1 and Sn set to 5.
Hardware ID Register (SYS_HWID)
The Hardware ID register contains the Identifier of the Hardware. The Hardware ID has no
bit-field structure: the value is a mere index in a database table. There is currently no
maintained Hardware IDs Table. There are however a bunch of reserved Hardware IDs:
26.2.2
HWID
Usage
32’h0000_0000
Illegal Value
32’h1234_5678
Endianess Test
32’hFFFF_xxxx
Prototype on Programamble Logic
Master interface register (C3_HIF)
The master interface (HIF) interfaces channels and instruction dispatchers (ID) to the
initiator bus and to an internal memory (IM). The purpose of the HIF is to allow read and
write accesses generated by channels and instruction dispatchers to be transferred to an
initiator bus or to the internal memory. An arbiter in the HIF prevents data access collisions
from occurring. ID0 has the highest priority to perform accesses on this block followed in
order by ID1 to ID3 and channels #0 to #15 (lowest priority). Read Transfers have higher
priority than Write Transfers.
The HIF is able to route requests to an internal memory instead of the bus if this memory is
enabled (using a configuration bit in HIF_MCR). The maximum size of the internal memory
is 64 KB and is always 32 bit wide.
HIF is also able to route requests to a byte bucket if this is enabled (using a configuration bit
in HIF_NCR).
Transactions can simultaneously occur on the bus, on the internal memory and on the byte
bucket. A base address for transactions that must target the internal memory or the byte
bucket instead of the bus must be programmed in the HIF prior to utilizing the internal
memory.
Write transaction requests coming from IDs or channels that are within an address window
of 64 KB starting from the programmed byte bucket base address (HIF_NBAR) will be
routed to the byte bucket. That is, every thing written to this address window is thrown away.
Read transactions from this address window are not affected by the byte bucket: they are
normally routed either to the internal memory or to the bus.
Transaction requests coming from IDs or channels that are within an address window of 64
KB starting from the programmed memory base address (HIF_MBAR) will be routed to the
404/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
internal memory. Higher addresses of the internal memory window are aliased if the internal
memory is smaller than 64 KB.
The byte bucket has priority if both the byte bucket base address and the memory base
address are programmed with the same addresses.
A burst transaction always completes on the initial target even if addresses span two
different targets.
The move channel (move_cnl) can be used to transfer data to/from the internal memory
from/to the bus and vice versa. Internal memory content is undefined at startup or after an
asynchronous master reset.
The other way to access the internal memory contents is making transfers to the C3 AHB
slave interface. There are two different methods to achieve this: mapping a 512 bytes page
of the internal memory into AHB address space (HIF_MP) and/or using a pair of address
and data registers (HIF_MAAR and HIF_MADR) to access single locations.
The internal memory can be accessed by an ID or channel and simultaneously from the
AHB slave Interface.
Table 506 contains the AHB mapped registers for the master interface (HIF).
Table 506. AHB mapped registers for master interface (HIF)
Symbol
Name
Type
Initial Value
Address
HIF_MP
Memory Page
RW
-
0x000 to 0x1FF
HIF_MSIZE
Memory Size in Bytes
RO
MSIZE
0x300
HIF_MBAR
Memory Base Address
Register
R/W
32’h0
0x304
HIF_MCR
Memory Control Register
R/W
32’h0
0x308
HIF_MPBAR
Memory Page Base Address
R/W
Register
32’h0
0x30C
HIF_MAAR
Memory Access Address
Register
R/W
32’h0
0x310
HIF_MADR
Memory Access Data
Register
R/W
-
0x314
HIF_NBAR
Byte Bucket Base Address
Register
R/W
32’h0
0x344
HIF_NCR
Byte Bucket Control Register R/W
32’h0
0x348
Zero is read from undefined locations, writing has no effect.
Memory page (HIF_MP)
A 512 Bytes page of the internal memory is mapped in the memory page address range
(HIF_MP, 0x000 to 0x1FF). The page number to be mapped is programmed using the
memory page base address register (HIF_MPBAR). AHB reads and writes to the C3 slave
interface in this address space leads to internal memory access.
Doc ID 022642 Rev 3
405/584
Cryptographic co-processor (C3)
RM0321
Memory size register (HIF_MSIZE)
The content of this register represents the size of the internal memory in bytes. If an internal
memory does not exist in hardware, this register will be zero. This is a way for the software
to know if an internal memory is there and what its size is. The maximum memory size is
64 KB so the maximum value of MSIZE is 0x10000. The lower 2 bits of MSIZE are always
zero (only 32 bit wide memories are supported).
Bit
31
30
29
28
27
26
25
24
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
-
-
-
-
-
-
-
S16
Initial Value
0
0
0
0
0
0
0
S16
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
15
14
13
12
11
10
9
8
Symbol
S15
S14
S13
S12
S11
S10
S9
S8
Initial Value
S15
S14
S13
S12
S11
S10
S9
S8
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
S7
S6
S5
S4
S3
S2
-
-
Initial Value
S7
S6
S5
S4
S3
S2
-
-
Type
RO
RO
RO
RO
RO
RO
RO
RO
Memory base address register (HIF_MBAR)
The base address of the internal memory can be programmed to any multiple of 64 KB. Bits
31-16 of MBAR are used for this. Channel and instruction dispatcher transactions that fall
within a window of 64 KB starting from MBAR are then routed to the internal memory (if
enabled). The internal memory base address can be changed at any time but behavior of
the active transactions done in this range is undefined. The byte bucket has priority if its
base address (NBAR) is programmed with the same value as MBAR.
406/584
Bit
31
30
29
28
27
26
25
24
Symbol
B31
B30
B29
B28
B27
B26
B25
B24
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit
31
30
29
28
27
26
25
24
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
23
22
21
20
19
18
17
16
Symbol
B23
B22
B21
B20
B19
B18
B17
B16
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
15
14
13
12
11
10
9
8
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Memory control register (HIF_MCAR)
The internal memory must be enabled to allow channels and instruction dispatchers to
access it. This is done using the enable memory mapping bit (EMM). The correct procedure
for the software to enable the internal memory is to first program its base address using
HIF_MBAR and then enable it by setting the EMM bit of HIF_MCR. The internal memory
can be enabled or disabled at any time but the behaviour of the active transactions done in
this range is undefined.
Normally, when using the address and data registers pair (HIF_MAAR and HIF_MDAR) to
access internal memory locations from AHB, the address register is auto incremented. To
disable this feature disable auto increment on read and disable auto increment write bits
(DAIR and DAIW) are offered.
Bit
31
30
29
28
27
26
25
24
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Doc ID 022642 Rev 3
407/584
Cryptographic co-processor (C3)
RM0321
Bit
23
22
21
20
19
18
17
16
Symbol
res
res
res
res
res
res
DAIR
DAIW
Initial Value
-
-
-
-
-
-
0
0
Type
-
-
-
-
-
-
R/W
R/W
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
res
res
BMM
Initial Value
-
-
-
-
-
-
-
0
Type
-
-
-
-
-
-
-
R/W
●
Bit 31 to 18, 15 to 1 - Reserved
These bits are reserved and should be set to zero.
Bit 17 - Disable Auto Increment on Read (DAIR)
Bit 17
DAIR
Description
1’b0
Memory Access Address Register (HIF_MAAR) is auto
incremented when an Internal Memory location is read from
AHB using the Memory Access Data Register (HIF_MADR).
1’b1
Memory Access Address Register (HIF_MAAR) auto increment
is disabled on HIF_MADR reads.
Bit 16 - Disable Auto Increment on Write (DAIW)
Bit 16
DAIR
408/584
Description
1’b0
Memory Access Address Register (HIF_MAAR) is auto
incremented when an Internal Memory location is read from
AHB using the Memory Access Data Register (HIF_MADR).
1’b1
Memory Access Address Register (HIF_MAAR) auto increment
is disabled on HIF_MADR writes.
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 0 - Enable Memory Mapping (EMM)
Bit 0
Description
EMM
1’b0
Disable the Internal Memory. Transactions from Channels and
Instruction Dispatchers go either to the Bus or the Byte Bucket
(if enabled). AHB slave accesses to the Internal Memory are
not affected by this bit they are always enabled.
1’b1
Enable the Internal Memory.
Memory page base address register (HIF_MPBAR)
Bit
31
30
29
28
27
26
25
24
Symbol
B31
B30
B29
B28
B27
B26
B25
B24
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
B23
B22
B21
B20
B19
B18
B17
B16
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
15
14
13
12
11
10
9
8
Symbol
P15
P14
P13
P12
P11
P10
P9
-
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
7
6
5
4
3
2
1
0
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
A 512 Bytes page of the internal memory is mapped on the AHB address space HIF_MP
(0x000 to 0x01FF). The page is selected using bits P15-P9 of this registers. Bits B31-B16
(read-only) are those programmed in the internal memory base address register
(HIF_MBAR).
Doc ID 022642 Rev 3
409/584
Cryptographic co-processor (C3)
RM0321
Memory access address register (HIF_MAAR)
Bit
31
30
29
28
27
26
25
24
Symbol
B31
B30
B29
B28
B27
B26
B25
B24
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
B23
B22
B21
B20
B19
B18
B17
B16
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
15
14
13
12
11
10
9
8
Symbol
A15
A14
A13
A12
A11
A10
A9
A8
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
7
6
5
4
3
2
1
0
Symbol
A7
A6
A5
A4
A3
A2
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
RO
RO
AHB slave accesses to the memory access data register (HIF_MADR) targets the internal
memory location programmed in the memory access address register (HIF_MAAR). Bits
A15-A2 are used for this. Bits B31-B16 (read only) are those programmed in the internal
memory base address register (HIF_MBAR). Bits 1-0 are always zero since only aligned 32
bit transactions are supported.
Memory access data register (HIF_MADR)
The internal memory location which address is programmed in the memory access address
register (HIF_MAAR) can be accessed reading and writing the memory access data register
(HIF_MADR). By default, when reading or writing the memory access data register, the
memory access address register is auto incremented. This feature can be disabled setting
bits disable auto increment on read (DAIR) and/or disable auto increment on write (DAIW) in
the memory control register (HIF_MCR).
Byte bucket base address register (HIF_NBAR)
The base address of the byte bucket can be programmed to any multiple of 64 KB. Bits 3116 of NBAR are used for this. Channel and instruction dispatcher write transactions that fall
within a window of 64 KB starting from NBAR are then discarded by the byte bucket (if
enabled). The byte bucket base address can be changed at any time but the behaviour of
410/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
the active transactions done in this range is undefined. The byte bucket has priority if its
base address (NBAR) is programmed with the same value as the memory base address
(MBAR). Read transactions are ignored by the byte bucket and are always routed either to
the bus or the memory.
Bit
31
30
29
28
27
26
25
24
Symbol
B31
B30
B29
B28
B27
B26
B25
B24
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
23
22
21
20
19
18
17
16
Symbol
B23
B22
B21
B20
B19
B18
B17
B16
Initial Value
0
0
0
0
0
0
0
0
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
15
14
13
12
11
10
9
8
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
-
-
-
-
-
-
-
-
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Byte bucket control register (HIF_NCR)
The byte bucket must be enabled to allow channels and instruction dispatchers to discard
data using it. This is done using the enable byte bucket mapping bit (ENM). The correct
procedure for the software to enable the byte bucket is to first program its base address
using HIF_NBAR and then enable it by setting the ENM bit of HIF_NCR. The byte bucket
can be enabled or disabled at any time but the behaviour of the active transactions done in
this range is undefined.
Bit
31
30
29
28
27
26
25
24
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Doc ID 022642 Rev 3
411/584
Cryptographic co-processor (C3)
RM0321
Bit
23
22
21
20
19
18
17
16
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
res
res
ENM
Initial Value
-
-
-
-
-
-
-
0
Type
-
-
-
-
-
-
-
R/W
●
Bit 31 to 1 - Reserved
These bits are reserved and should be set to zero.
●
Bit 0 - Enable Byte Bucket Mapping (ENM)
Bit 17
Description
DAIR
26.2.3
1’b0
Disable the Byte Bucket. Transactions from Channels and
Instruction Dispatchers go either to the Bus or the Memory (if
enabled).
1’b1
Enable the Byte Bucket.
Instruction dispatcher registers (C3_IDn)
Up to four instruction dispatchers can exist in hardware. Each instruction dispatcher (ID) has
its own set of registers.
Table 507 summarizes AHB mapped registers for an instruction dispatcher.
Table 507. AHB mapped registers for an Instruction Dispatcher (ID)
412/584
Symbol
Name
Type
Initial Value
Address
ID_SCR
Status and Control Register
R/W
-
0x000
ID_IP
Instruction Pointer
R/W
32’h0
0x010
ID_IR0
Instruction Word 0 Register
RO
32’h0
0x020
ID_IR1
Instruction Word 1 Register
RO
32’h0
0x024
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Table 507. AHB mapped registers for an Instruction Dispatcher (ID) (continued)
Symbol
Name
Type
Initial Value
Address
ID_IR2
Instruction Word 2 Register
RO
32’h0
0x028
ID_IR3
Instruction Word 3 Register
RO
32’h0
0x02C
Status and Control Register (ID_SCR)
Bit
31
30
29
28
27
26
25
24
Symbol
IDSH
IDSL
BERR
res
res
CERR
CBSY
CDNX
Initial Value
0 or 1
0
0
-
-
0
0
0
Type
RO
RO
RO
-
-
RO
RO
RO
Bit
23
22
21
20
19
18
17
16
Symbol
IS
IES
IER
SSC
SSE
res
IGR
RST
Initial Value
0
0
0
0
0
-
0
0
Type
R/(W)
R/W
R/W
R/W
R/W
-
R/W
R/(W)
Bit
15
14
13
12
11
10
9
8
Symbol
C7SH
C7SL
C6SH
C6SL
C5SH
C5SL
C4SH
C4SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit
7
6
5
4
3
2
1
0
Symbol
C3SH
C3SL
C2SH
C2SL
C1SH
C1SL
C0SH
C0SL
Initial Value
0 or 1
0
0 or 1
0
0 or 1
0
0 or 1
0
Type
RO
RO
RO
RO
RO
RO
RO
RO
Bit 31 to 30 - Instruction Dispatcher Status (IDS)
The instruction dispatcher status bits (IDSn) indicates the state in which the addressed
instruction dispatcher is. The software can use these bits at system startup to know if an ID
is present. In normal operation mode the software uses these bits to know the reason of an
Interrupt or to know when a program execution has finished if in polling mode.
Doc ID 022642 Rev 3
413/584
Cryptographic co-processor (C3)
RM0321
Bit 31
Bit 31
IDSH
IDSH
0
0
Not Present: This Instruction Dispatcher does not exist in Hardware.
1
0
Idle: The Instruction Dispatcher has successfully terminated the execution
of a program and is ready to accept a new Instruction Pointer.
1
1
Run: The Instruction Dispatcher is executing program.
0
1
Error: The Instruction Dispatcher has stopped the execution of a program
because of an error. Error cause can be analyzed using bits 29-24 of
ID_SCR.
Description
The instruction dispatcher exits the error state in three ways: resetting the instruction
dispatcher (the ID goes to Idle state), launching a new program (the ID goes to run state) or
requesting an asynchronous master reset.
Bit 29 - Bus Error (BERR)
Every module attached to the HIF receives its own bus error signal. This signal is set by the
HIF if a bus error condition is detected for a bus transaction initiated by the corresponding
module.
Bit 29 DERR
Description
1’b0
The HIF reported a bus error condition for a transaction initiated
by this Instruction Dispatcher.
1’b1
(Cleaning Conditions) This flag is cleared in three ways:
resetting the Instruction Dispatcher, launching a new program
or requesting an asynchronous master reset.
Bit 28 to 27 - Reserved
These bits are reserved and should be set to zero.
Bit 26 - Channel Error (CERR)
Channels report their states to each instruction dispatcher. When the ID dispatches an
instruction to a channel that is in error state or if the channel goes to error state when it
executes the received instruction, the instruction dispatcher goes in turn in error state and
this bit is set.
Bit 26 DERR
Description
1’b1
The Channel to which the current instruction was addressed is
in error state or went to error state executing the instruction.
1’b0
(Cleaning Conditions) This flag is cleared in three ways:
resetting the Instruction Dispatcher, launching a new program
or requesting an asynchronous master reset.
Bit 25 - Channel Busy (CBSY)
414/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 25 CBSY
Description
1’b1
The Channel to which the current instruction was addressed is
busy. It is already running under control of another Instruction
Dispatcher.
1’b0
(Cleaning Conditions) This flag is cleared in three ways:
resetting the Instruction Dispatcher, launching a new program
or requesting an asynchronous master reset.
Bit 24 - Channel Does Not Exist (CDNX)
Bit 24 CDNX
Description
1’b1
The Channel to which the current instruction was addressed
does not exist in Hardware.
1’b0
(Cleaning Conditions) This flag is cleared in three ways:
resetting the Instruction Dispatcher, launching a new program
or requesting an asynchronous master reset.
Bit 23 - Interrupt Status (IS)
The interrupt status (IS) bit reflects the status of the interrupt port of the instruction
dispatcher. Interrupt ports of every instruction dispatcher are “ORed” together to generate
the final interrupt signal which drives the interrupt pin of the C3 component.
Bit 23 IS
Description
1’b1
The Instruction Dispatcher is requesting an Interrupt because
IES and / or IER are set and one of their corresponding event
occured.
1’b0
(Cleaning Conditions) This flag is cleared writing one to it,
resetting the Instruction Dispatcher or requesting an
asynchronous master reset. Launching a new program will not
clear this flag. Writing zero has no effect.
Doc ID 022642 Rev 3
415/584
Cryptographic co-processor (C3)
RM0321
Bit 22 - Interrupt Enable on Stop (IES)
Bit 22 IES
Description
1’b1
The Instruction Dispatcher generates an Interrupt on normal
termination of a program execution (when the stop instruction
executes).
1’b0
Do not generate Interrupt. Cleaning this bit does not clear
pending interrupts.
Bit 21 - Interrupt Enable on Error (IER)
Bit 21 IER
Description
1’b1
The Instruction Dispatcher generates an Interrupt when a
program encounters an error. The error cause can be analyzed
through bits 29-24 of ID_SCR.
1’b0
Do not generate Interrupt. Cleaning this bit does not clear
pending Interrupts.
Bit 20 - Single Step Command (SSC)
If the instruction dispatcher is put in single step mode using bit SSE of ID_SCR it will await
for SSC to be set before executing/dispatching the next instruction. In this context, a single
step is defined as the execution/dispatching of the instruction and its argument. The first
instruction is not executed/dispatched launching a new program when SSE is set.
Bit 20 SSC
Description
1’b1
Writing one to this flag in Single Step Mode (SSE is set)
executes / dispatches the next instruction.
1’b0
(Cleaning Conditions) This bit is cleared when the execution of
the current single instruction terminates. Writing zero has no
effect.
Bit 19 - Single Step Enable (SSE)
Bit 19 SSE
Description
1’b1
Enable Single Step Mode. This bit can be changed anytime.
1’b0
Disable Single Step Mode. Exiting Single Step Mode clears also
SSC.
Bit 18 - Reserved
This bit is reserved and should be set to zero.
Bit 17 - Ignore Errors (IGR)
Not implemented. This bit should be set to zero.
416/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 16 - Reset Command (RST)
Each instruction dispatcher can be reset independently from each other using this bit. In
Hardware the reset is done synchronously and not all registers are affected by it. The
following are the effects of a synchronous reset:
●
bits 29-16 of SCR are all cleared,
●
the Instruction Dispatcher goes in Idle state eventually aborting program execution and
bits 31-30 (IDS) of SCR are set to Idle.
Bit 16 RST
Description
1’b1
Reset this Instruction Dispatcher.
1’b0
(Cleaning Conditions) This bit is cleared as a consequence of
the reset,. so it is always read zero. Writing zero has no effect.
Bit 15 to 0 - Channel n Status (CnS)
All sixteen Channels report their state to each instruction dispatcher. The status of the first
eight channels (Channel 0 to 7) is mirrored into these bits. A channel status is encoded into
two bits of the SCR: status for channel #0 is in bits 1-0, for channel #1 in bits 3-2 and so on
till channel #16 in bits 31-30. You must use the system channel status register (SYS_STR)
to know the status of all 16 channels.
Hi Bit
Lo Bit
CnSH
CnSL
0
0
Not Present: This Channel does not exist in Hardware.
1
0
Idle: The Channel is Idle and instructions can be dispatched to it.
1
1
Busy: The Channel is executing instructions dispatched by an
Instruction Dispatcher.
0
1
Error: The Channel is in error state, use Channel registers to know the
cause.
Description
Instruction Pointer Register (ID_IP)
The instruction pointer register is used to store the pointer of the first instruction to be
fetched and to launch program execution. It can be read back at any time (particularly in
single step mode) to know the address of the next instruction that will be executed. Effects of
changing instruction pointer while a program is running are unspecified. The instruction
pointer must be 32-bit aligned (the lower two bits are ignored and are always read zero).
When an instruction pointer is written the instruction dispatcher goes in run state, begins
filling its instruction queue and as soon as the first instruction is available it
executes/dispatches it.
Instruction Word 0-3 Register (ID_IRn)
Instruction word registers are used to read back the OP code of the current executing
instruction. The instruction can be 1 to 4 words long. IR1-3 contents are undefined for 1
word instructions, IR2-3 contents are undefined for 2 word instructions and, similarly, IR3 is
undefined for 3 word instructions. These registers are used mainly in single step mode to
read back the last executed instruction.
Doc ID 022642 Rev 3
417/584
Cryptographic co-processor (C3)
26.2.4
RM0321
Channel registers (C3_CHn)
Each channel has its own specific set of registers. There is one register that is mandatory to
each channel: the channel identity register (CH_ID). This read-only register is mapped in a
fixed location and it is typically used by the SW (at system startup) to know which channels
are available in the C3.
Table 508 summarizes AHB mapped registers for a channel (CH).
Table 508. AHB mapped registers for Channel (CH)
Symbol
CH_ID
Name
Type
Initial Value
Address
Channel Specific
Registers
-
-
0x000-0x3FB
Channel ID
RO
CH_ID
0x3FC
Channel ID register (CH_ID)
The channel ID register contains the identifier of the channel. The software knows that a
channel is not present reading zero from this register (or using the ID_SCR or the
SYS_SCR). The channel ID has no bit-field structure: the value is a mere index in a
database table.
The database containing all the assigned IDs is provided in a separate document
[CH_ID_TABLE].
There is a unique 32-bit channel ID associated to a channel/version pair. In order to avoid
using an already allocated channel ID new channel developers should contact the C3
project team to obtain unique numbers for their channels. Such centralized allocation enable
maintaining interoperability between all channel libraries and the baseline C3 platform.
Before designing a new channel, you must previously check if a channel that performs a
similar function does not already exist.
26.2.5
DES channel registers
Table 509. DES registers map
418/584
Symbol
Name
DES_DATA_INOUT_HI
Initial value
Address
Data input/output register #0 R/W
32’h0
0x000
DES_DATA_INOUT_LO
Data input/output register #1 R/W
32’h0
0x004
DES_FEEDBACK_HI
Feedback register #0
R/W
32’h0
0x008
DES_FEEDBACK_LO
Feedback register #1
R/W
32’h0
0x00C
DES_CONTROL_STATUS
Control and status register
R/(W) 32’h0
0x010
DES_KEY1_HI
Key register #0
R/W
32’h0
0x020
DES_KEY1_LO
Key register #1
R/W
32’h0
0x024
DES_KEY2_HI
Key register #2
R/W
32’h0
0x028
DES_KEY2_LO
Key register #3
R/W
32’h0
0x02C
DES_KEY3_HI
Key register #4
R/W
32’h0
0x030
Doc ID 022642 Rev 3
Type
RM0321
Cryptographic co-processor (C3)
Table 509. DES registers map (continued)
Note:
Symbol
Name
Type
Initial value
Address
DES_KEY3_LO
Key register #5
R/W
32’h0
0x034
DES_IR
Channel ID register
RO
32’h0
0x3FC
Changing the register values while the DES channel is executing an instruction may
produce wrong results and unexpected behaviors.
Data input/output registers (DES_DATAINOUT)
The same address refers to 2 different blocks of registers, depending on the operation (read
or write). The data input registers contain the current data input to the DES Channel
(accessed using the write operation). The data output registers contain the current data
output of the DES channel (accessed using the read operation).
Note:
A read operation on these registers just after a write operation will not return the same value
previously written.
Feedback registers (DES_FEEDBACK)
The feedback registers contain the value that is added to the DES input for implementing the
selected mode of operation (it depends on the selected mode).
Control and status register (DES_CONTROL_STATUS)
Bit
31
30
29
28
27
26
25
24
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
23
22
21
20
19
18
17
16
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Doc ID 022642 Rev 3
419/584
Cryptographic co-processor (C3)
RM0321
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
ED
MODE
ALGO
Initial Value
-
-
-
-
-
0
0
0
Type
-
-
-
-
-
R/W
R/W
R/W
●
Bits 31 to 3 - Reserved
These bits are reserved and should be written zero.
●
Bit 2 - Encryption/Decryption (ED)
This bit indicates the operation to perform (Encryption or Decryption).
Bit 2
Description
1’b0
Encryption
1’b1
Decryption
●
Bit 1 - Mode of operation (MODE)
This bit indicates the mode of operation (ECB or CBC).
Bit 1
Description
1’b0
ECB
1’b1
CBC
Bit 0 - Algorithm (ALGO)
This bit indicates the algorithm to use (DES or 3DES).
Bit 1
Description
1’b0
DES
1’b1
3DES
TKey registers (DES_KEY)
The Key Registers contain the key.
420/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Channel ID (DES_ID)
The channel ID register contains the identifier of this version of the DES channel. The
channel ID for this version of the DES channel is 0x0000_2000.
26.2.6
AES channel registers
The following table summarizes AHB mapped registers of the AES channel connected to
channel 2 of C3.
.
Table 510. AES registers map
Note:
Symbol
Name
AES_DATA_INOUT0
Type
Initial value
Address
Data Input/output register #0 R/W
32’h0
0x000
AES_DATA_INOUT1
Data Input/output register #1 R/W
32’h0
0x004
AES_DATA_INOUT2
Data Input/output register #2 R/W
32’h0
0x008
AES_DATA_INOUT3
Data Input/output register #3 R/W
32’h0
0x00C
AES_FEEDBACK0
Feedback register #0
R/W
32’h0
0x010
AES_FEEDBACK1
Feedback register #1
R/W
32’h0
0x014
AES_FEEDBACK2
Feedback register #2
R/W
32’h0
0x018
AES_FEEDBACK3
Feedback register #3
R/W
32’h0
0x01C
AES_COUNTER0
Counter register #0
R/W
32’h0
0x020
AES_COUNTER1
Counter register #1
R/W
32’h0
0x024
AES_COUNTER2
Counter register #2
R/W
32’h0
0x028
AES_COUNTER3
Counter register #3
R/W
32’h0
0x02C
AES_CONTROL_STATUS
Control and status register
R/(W) 32’h0
0x040
AES_KEY0
Key register #0
R/W
32’h0
0x050
AES_KEY1
Key register #1
R/W
32’h0
0x054
AES_KEY2
Key register #2
R/W
32’h0
0x058
AES_KEY3
Key register #3
R/W
32’h0
0x05C
AES_KEY4
Key register #4
R/W
32’h0
0x060
AES_KEY5
Key register #5
R/W
32’h0
0x064
AES_KEY6
Key register #6
R/W
32’h0
0x068
AES_KEY7
Key register #7
R/W
32’h0
0x06C
AES_IR
Channel ID register
RO
32’h0
0x3FC
Changing the register values while the AES Channel is executing an instruction may
produce wrong results and unexpected behaviors.
Data input/output registers (AES_DATAIN_OUT)
The same address refers to two different blocks of registers, depending on the operation
(read or write).
Doc ID 022642 Rev 3
421/584
Cryptographic co-processor (C3)
RM0321
The data input registers contain the current data input to the AES channel (accessed using
the write operation).
The data output registers contain the current data output of the AES channel (accessed
using the read operation).
Note:
A read operation on these registers just after a write operation will not return the same value
previously written.
Feedback registers (AES_FEEDBACK)
The feedback registers contain the value that is added to the AES input for implementing the
selected mode of operation (it depends on the selected mode).
Counter registers (AES_COUNTER)
The counter registers contain the counter used in CTR mode (that will be automatically
incremented).
Control and status register (AES_CONTROL_STATUS)
422/584
Bit
31
30
29
Symbol
ED
KEYSZ1
Initial Value
0
Type
R/W
Bit
23
28
26
25
24
KEYSZ0 MODE2 MODE1
MODE0
KEYRDY
CTXSR1
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
22
21
20
19
18
17
16
Symbol
CTXSR0 res
res
res
res
res
res
res
Initial Value
0
-
-
-
-
-
-
-
Type
R/W
-
-
-
-
-
-
-
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Doc ID 022642 Rev 3
27
RM0321
Cryptographic co-processor (C3)
Bit 31 - Encryption/Decryption (ED)
This bit indicates the operation to perform (encryption or decryption). For writing this field
the bit #4 of the input word has to be set to 1.
Bit 31
Description
1’b1
Encryption
1’b0
Decryption
Bits 30 to 29 - Key Size (KEYSZ)
These two bits represent the key length, as in the following internal representation. For
writing this field the bit #3 of the input word has to be set to 1.
Bit 30 to 29
Description
2’b00
128 bits
2’b01
192 bits
2’b10
256 bits
2’b11
Not Used
Bits 28 to 26 - Mode of operation (MODE)
These three bits represent the mode of operation, as in the following internal representation.
For writing this field the bit #2 of the input word has to be set to 1.
Bit 28 to 26
Description
3’b000
ECB
3’b001
CBR
3’b010
CTR
3’b011
Not Used
3’b100
Not Used
3’b101
Not Used
3’b110
Not Used
3’b111
Not Used
Bit 25 - Key ready (KEYRDY)
This bit indicates if the key value is valid or not. For writing this field, the bit #1 of the input
word has to be set to 1.
Bit 25
Description
1’b1
The Key value is NOT ready
1’b0
The Key value is ready
Doc ID 022642 Rev 3
423/584
Cryptographic co-processor (C3)
RM0321
Bits 24 to 23 - Context Save/Restore (CTX_SR)
These two bits represent the operation to do with the context, as in the following internal
representation. For writing this field the bit #0 of the input word has to be set to 1.
Bit 30 to 29
Description
2’b00
None
2’b01
Context restore
2’b10
Context Save
2’b11
Not Used
Bits 22 to 0 - Reserved
These bits are reserved and should be written zero.
Key registers (AES_KEY)
The key registers contain the key.
Channel ID (AES_ID)
The channel ID register contains the identifier of this version of the AES channel. The
channel ID for this version of the AES channel is 0x0000_3000.
26.2.7
Unified hash with HMAC channel registers
The following table summarizes AHB mapped registers of the UHH channel connected on
channel 3 of C3.
Table 511. UHH channel registers map
Symbol
Name
Type
Initial value
Address
UHH_SR(1)
Core Status Register
R/(W)
32’h0
0x020
UHH_HX0(1)
Hash Status Register #0
R/W
32’h0
0x024
(1)
UHH_HX1
Hash Status Register #1
R/W
32’h0
0x028
UHH_HX2(1)
Hash Status Register #2
R/W
32’h0
0x02C
UHH_HX3(1)
Hash Status Register #3
R/W
32’h0
0x030
(1)
Hash Status Register #4
R/W
32’h0
0x034
(1)
UHH_HX5
Hash Status Register #5
R/W
32’h0
0x038
UHH_HX6(1)
Hash Status Register #6
R/W
32’h0
0x03C
(1)
UHH_HX4
Hash Status Register #7
R/W
32’h0
0x040
(1)
Hash Working Register #0
R/W
32’h0
0x044
UHH_X1(1)
Hash Working Register #1
R/W
32’h0
0x048
UHH_X2(1)
Hash Working Register #2
R/W
32’h0
0x04C
(1)
Hash Working Register #3
R/W
32’h0
0x050
UHH_X4(1)
Hash Working Register #4
R/W
32’h0
0x054
UHH_HX7
UHH_X0
UHH_X3
424/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Table 511. UHH channel registers map (continued)
Symbol
Name
Type
Initial value
Address
(1)
Hash Working Register #5
R/W
32’h0
0x058
UHH_X6(1)
Hash Working Register #6
R/W
32’h0
0x05C
(1)
UHH_X5
Hash Working Register #7
R/W
32’h0
0x060
(1)
Message Scheduler #0
R/W
32’h0
0x064
UHH_WX1(1)
Message Scheduler #1
R/W
32’h0
0x068
UHH_WX2(1)
Message Scheduler #2
R/W
32’h0
0x06C
(1)
Message Scheduler #3
R/W
32’h0
0x070
UHH_WX4(1)
Message Scheduler #4
R/W
32’h0
0x074
(1)
Message Scheduler #5
R/W
32’h0
0x078
UHH_WX6(1)
Message Scheduler #6
R/W
32’h0
0x07C
UHH_WX7(1)
Message Scheduler #7
R/W
32’h0
0x080
(1)
Message Scheduler #8
R/W
32’h0
0x084
UHH_WX9(1)
Message Scheduler #9
R/W
32’h0
0x088
UHH_WX10(1)
Message Scheduler #10
R/W
32’h0
0x08C
(1)
Message Scheduler #11
R/W
32’h0
0x090
UHH_WX12(1)
Message Scheduler #12
R/W
32’h0
0x094
(1)
Message Scheduler #13
R/W
32’h0
0x098
UHH_WX14(1)
Message Scheduler #14
R/W
32’h0
0x09C
UHH_WX15(1)
Message Scheduler #15
R/W
32’h0
0x0A0
Current Hash Constant
R/W
32’h0
0x0A4
Bit Count Register (LSW)
R/W
32’h0
0x0A8
UHH_BCHI(1)
Bit Count Register (MSW)
R/W
32’h0
0x0AC
UHH_RK0
Digest of the HMAC key #0
R/W
32’h0
0x0B0
UHH_RK1
Digest of the HMAC key #1
R/W
32’h0
0x0B4
UHH_RK2
Digest of the HMAC key #2
R/W
32’h0
0x0B8
UHH_RK3
Digest of the HMAC key #3
R/W
32’h0
0x0BC
UHH_RK4
Digest of the HMAC key #4
R/W
32’h0
0x0C0
UHH_RK5
Digest of the HMAC key #5
R/W
32’h0
0x0C4
UHH_RK6
Digest of the HMAC key #6
R/W
32’h0
0x0C8
UHH_RK7
Digest of the HMAC key #7
R/W
32’h0
0x0CC
UHH_RH0
HMAC working Register #0
R/W
32’h0
0x0D0
UHH_RH1
HMAC working Register #1
R/W
32’h0
0x0D4
UHH_RH2
HMAC working Register #2
R/W
32’h0
0x0D8
UHH_RH3
HMAC working Register #3
R/W
32’h0
0x0DC
UHH_RH4
HMAC working Register #4
R/W
32’h0
0x0E0
UHH_X7
UHH_WX0
UHH_WX3
UHH_WX5
UHH_WX8
UHH_WX11
UHH_WX13
(1)
UHH_UHR
UHH_BCLO
(1)
Doc ID 022642 Rev 3
425/584
Cryptographic co-processor (C3)
RM0321
Table 511. UHH channel registers map (continued)
Symbol
Name
Type
Initial value
Address
UHH_RH5
HMAC working Register #5
R/W
32’h0
0x0E4
UHH_RH6
HMAC working Register #6
R/W
32’h0
0x0E8
HMAC working Register #7
R/W
32’h0
0x0EC
CB Status &Control Register
R/W
32’h0
0x0EC
UHH_CB_CONTROL_
STATUS(1)
CB Status &Control Register
R/(W)
32’h0
0x200
UHH_CU_CONTROL_
STATUS(1)
CU Status and Control Register
R/(W)
32'h8000_000
0x200
0
CTAG_IR
Channel ID
RO
32'h0000_400
0x3FC
1
UHH_RH7
UHH_DATA_IN
(1)
1. Marked registers compose the Context (for saving and restoring), in the same order as they are listed in
table. The context is composed by 38 words.
Note:
Changing the register values while the UHH channel is executing an instruction may
produce wrong results and unexpected behaviour.
Control and Status Register (UHH_CU_CONTROL_STATUS)
426/584
Bit
31
30
29
28
27
26
25
24
Symbol
CSH
CSL
BERR
DERR
PERR
IERR
AERR
res
Initial Value
0
0
0
0
0
0
0
-
Type
RO
RO
RO
RO
RO
RO
RO
-
Bit
23
22
21
20
19
18
17
16
Symbol
res
res
res
res
res
res
res
RST
Initial Value
-
-
-
-
-
-
-
0
Type
-
-
-
-
-
-
-
R/(W)
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
res
res
res
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit
7
6
5
4
3
2
1
0
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit 31 to 30 - Channel Status (CS)
These two bits represent the status of the channel. The status is reported to the instruction
dispatcher (which also duplicates this information in its bits SCR_CnS).
Bit 31 CSH
Bit 30 CSL
Description
0
0
Not Present: This Channel does not exist in Hardware.
1
0
Idle: The Channel is idle and instructions can be dispatched to it.
1
1
Busy: The Channel is executing instructions dispatched by an
Instruction Dispatcher.
0
1
Error: The Channel is in error state, use Channel registers to know
the cause.
When the UHH channel goes in error state, bits 29 to 24 indicates the cause. The only way
to get out from error state is to reset the channel using bit 16 (SCR_RST) or requesting an
asynchronous reset of the whole C3.
Bit 29 - Bus Error (BERR)
Every module attached to the HIF receives its own bus error signal. This signal is set by the
HIF if a bus error condition is detected for a bus transaction initiated by the corresponding
module. If the UHH channel detects a bus error condition it goes in error state and this bit is
set.
Bit 29 BERR
Description
1’b1
The HIF reported a bus error condition for a transaction initiated
by the UHH Channel.
Bit 28 - Dispatching Protocol Error (DERR)
If the instruction dispatcher goes in error state or if it is reset while it is dispatching
instruction to the UHH Channel, a dispatching protocol violation could happen. If this is the
case the UHH channel goes in error state and this bit is set. Example: the ID has dispatched
the first word of the Hash Append instruction. The UHH channel is still waiting for the
second word. If the ID goes now in error state (that is, because of a bus error), the UHH
channel will never receive that second word. This condition is detected and reported using
this bit.
Bit 28 DERR
Description
1’b1
The UHH Channel detected a dispatching protocol violation.
1’b0
(Clearing conditions) This flag is cleared in two ways: resetting
the UHH Channel or requesting an asynchronous master reset.
Doc ID 022642 Rev 3
427/584
Cryptographic co-processor (C3)
RM0321
Bit 27 - Couple/Chaining Error (PERR)
The UHH channel is NOT able to become a master for chaining operations. It is NOT able to
become simultaneously a master and a slave for coupling operations.
Bit 27 BERR
Description
1’b1
The Channel was requested to become a Chaining-master, or
simultaneously both a Couple-Master and a Slave for cascade
CCM operations.
1’b0
(Clearing conditions) This flag is cleared in two ways: resetting
the UHH Channel or requesting an asynchronous master reset.
Bit 26 - Instruction Decode Error (IERR)
The UHH channel goes in error state and this bit is set if an invalid instruction is received
from the instruction dispatcher.
Bit 26 BERR
Description
1’b1
The UHH Channel received an invalid instruction from the
Instruction Dispatcher.
1’b0
(Clearing conditions) This flag is cleared in two ways: resetting
the UHH Channel or requesting an asynchronous master reset.
Bit 25 - Alignment Error (AERR)
The source address and the destination address must be 32-bit aligned. Count must be a
multiple of 4 bytes. The UHH channel goes in error state and this bit is set if any of these
condition is not respected.
Bit 25 BERR
Description
1’b1
The UHH Channel received an invalid address or count part.
1’b0
(Clearing conditions) This flag is cleared in two ways: resetting
the UHH Channel or requesting an asynchronous master reset.
Bits 23 to 17 - Reserved
These bits are reserved and should be written zero.
Bit 16 - Reset Command (RST)
In Hardware the reset is done synchronously and not all registers are affected by it. The
following are the effects of a synchronous reset: bits 29-24, 16, 7-0 of SCR are all cleared,
FIFOs are flushed, the UHH channel goes in Idle state eventually aborting instruction
execution and bits 31-30 (CS) of UHH_CU_CONTROL_STATUS are set to Idle.
428/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 26 RST
Description
1’b1
Reset the UHH Channel
1’b0
(Clearing conditions) This bit is cleared as a consequence of
the reset, so it is always read zero. Writing zero has no effect.
Bit 15 to 0 - Reserved
These bits are reserved and should be written zero.
Data input register (UHH_DATA_IN)
The data input register contains the current data input word to the UHH channel.
Control and status register (UHH_CB_CONTROL_STATUS)
Bit
31
30
29
28
27
26
25
24
Symbol
res
NBLW4
NBLW3
NBLW2
NBLW1
NBLW0
STAT3
STAT2
Initial Value
-
0
0
0
0
0
0
0
Type
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit
23
22
21
20
19
18
17
16
Symbol
STAT1
STAT0
INVAL
SHORT
res
res
ALG1
ALG0
Initial Value
0
0
0
0
-
-
0
0
Type
R/W
R/W
R/W
R/W
-
-
R/W
R/W
Bit
15
14
13
12
11
10
9
8
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Bit
7
6
5
4
3
2
1
0
Symbol
res
res
res
res
res
res
res
res
Initial Value
-
-
-
-
-
-
-
-
Type
-
-
-
-
-
-
-
-
Doc ID 022642 Rev 3
429/584
Cryptographic co-processor (C3)
RM0321
Bit 31 - Reserved
This bit is reserved and should be written zero.
Bits 30 to 26 - Number of Bits for the Last Word (N BLW)
These 5 bits represent the length in bits of the last word of the message.
Bits 25 to 22 - Cryptoblock Internal Status (STAT)
These 4 bits represent the status of the cryptoblock, as in the following internal
representation:
Bit 25 to 22
Status
Description
4’b0000
BLOCK_IDLE
Idle State
4’b0001
HASH_DO_RESET
Init for hash
4’b0010
HASH_REQUEST_DATA
Get data input for hash
4’b0011
HASH_PROCESS_DATA
Process the message
4’b0100
HMAC_DO_RESET_SHORT_KEY
Init for HMAC with short key
4’b0101
HMAC_DO_RESET_LONG_KEY
Init for HMAC with long key
4’b0110
HMAC_REQUEST_IKEY_SHORT
Get the short inner key for HMAC
4’b0111
HMAC_REQUEST_IKEY_LONG
Get the long inner key for HMAC
4’b1000
HMAC_REQUEST_DATA
Get data input for HMAC
4’b1001
HMAC_PROCESS_DATA_SHORT_KEY
Process the message (short key)
4’b1010
HMAC_PROCESS_DATA_LONG_KEY
Process the message (long key)
4’b1011
HMAC_REQUEST_OKEY_SHORT
Get the short outer key for HMAC
4’b1100
HMAC_REQUEST_OKEY_LONG
Get the long outer key for HMAC
4’b1101
CONTEXT_SAVE
Save the context
4’b1110
CONTEXT_RESTORE
Restore the context
4’b1111
Not Used
Bit 21 - Data Input Valid (INVALID)
This bit indicates if the value in the data input register is valid or not.
Bit 21 INVALID
Description
1’b1
The Data Input Register value is NOT valid
1’b0
The Data Input Register value is valid.
Bit 20 - Short Output (SHORT)
This bit indicates if the output result has to be truncated to 96 bits.
430/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 21 INVALID
Description
1’b1
The result is produced in full length.
1’b0
The result is trancated to 96 bits.
Bits 19 to 18 - Reserved
These bits are reserved and should be written zero.
Bits 17 to 16 - Current Algorithm (ALG)
These 2 bits represent the current algorithm, as in the following representation:
Bit 17 to 16
Algorithm
2’b00
MD5
2’b01
SHA-1
2’b10
Not Used
2’b11
Not Used
Bits 15 to 0 - Reserved
These bits are reserved and should be written zero.
Core Status Register (UHH_SR)
Bit
31
30
29
28
27
26
25
24
Symbol
ALG1
ALG0
res
res
Res
CPHA1
CPHA0
PST2
Initial Value
0
0
-
-
-
0
0
0
Type
R/W
R/W
-
-
-
R/W
R/W
R/W
Bit
23
22
21
20
19
18
17
16
Symbol
PST1
PST0
WCNT3
WCNT2 WCNT1
WCNT0
ST3
ST2
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
R/W
R/W
R/W
R/W
RO
RO
Bit
15
14
13
12
11
10
9
8
Symbol
ST1
ST0
LKEY
PHA1
PHA0
CST
CST
SCNT6
Initial Value
0
0
0
0
0
0
0
0
Type
RO
RO
R/W
R/W
R/W
R/W
R/W
R/W
Doc ID 022642 Rev 3
431/584
Cryptographic co-processor (C3)
Bit
7
Symbol
RM0321
6
5
4
3
2
1
0
SCNT5 SCNT4
SCNT3
SCNT2
SCNT1
SCNT0
LAST
res
Initial Value
0
0
0
0
0
0
0
-
Type
R/W
R/W
R/W
R/W
R/W
R/W
R/W
-
Bits 31 to 30 - Current Algorithm (ALG)
These 2 bits represent the current algorithm, as in the following representation:
Bit 31 to 30
Algorithm
2’b00
MD5
2’b01
SHA-1
2’b10
Not Used
2’b11
Not Used
Bits 29 to 27 - Reserved
These bits are reserved and should be written zero.
Bits 26 to 25 - Current Phase (CPHA)
These bits represent the current phase of the hash algorithm.
Bits 24 to 22 - Padder State (PST)
These bits represent the action in progress in the input padding.
Bit 24 to 22
Algorithm
3’b000
Idle state, no padding
3’b001
Insert the first 1 after the end of the message
3’b010
Insert extra zeros
3’b011
Insert the length of the message
3’b100
Insert extra key
3’b101
Pause the padding
3’b110
Not used
3’b111
Not used
Bits 21 to 18 - Number of Words (WCNT)
These 4 bits represent the number of input words already passed to the hash core.
Bits 17 to 14 - HMAC State (ST)
These bits represent the action in progress in the HMAC procedure.
432/584
Doc ID 022642 Rev 3
RM0321
Cryptographic co-processor (C3)
Bit 17 to 14 ST
Description
4’b0000
Idle state, no work in progress
4’b0001
Get short inner key
4’b0010
Pad short inner key
4’b0011
Get message
4’b0100
Wait for the message digest
4’b0101
Get short outer key
4’b0110
Pad short outer key
4’b0111
Wait for the HMAC
4’b1000
HMAC value is ready
4’b1001
Get long inner key
4’b1010
Get long outer key
4’b1011
Wait for long inner key preparation
4’b1100
Wait for long outer key preparation
4’b1101
Not used
4’b1110
Not used
4’b1111
Not used
Bit 13 - Long Key (LKEY)
This bit indicates if the HMAC uses a short key or a long one.
Bit 13 LKEY
Description
1’b1
Short HMAC key
1’b0
Long HMAC key
Bits 12 to 11 - Phase (PHA)
These bits represent the phase of the hash algorithm for the next step.
Bits 10 to 9 - Hash Core State (CST)
These bits represent the current phase.
Bit 10 to 9 CST
Description
2’b00
Idle state, no work in progress
2’b01
Compute the digest
2’b10
Update the result
2’b11
Computation ended
Doc ID 022642 Rev 3
433/584
Cryptographic co-processor (C3)
RM0321
Bits 8 to 2 - Step Count (SCNT)
These 7 bits represent the hash round in progress.
Bit 1 - Last Word Asserted (LAST)
This bit indicates if the whole message has been passed to the core.
Bit 0 - Reserved
This bit is reserved and should be written zero.
Hash Status Registers (UHH_HX0 - UHH_HX7)
The Hash Status Registers contain the current partial value of the digest.
Hash Working Registers (UHH_X0 - UHH_X7)
The Hash Working Registers contain a temporary value used for the computation of the
digest.
Message Scheduler Registers (UHH_WX0 - UHH_WX15)
The Message Scheduler Registers contain the unrolled message.
Current Hash Constant Register (UHH_UHR)
The Current Hash Register contains the current result of the internal Hash function.
Bit Count Registers (UHH_BCLO - UHH_BCHI)
The Bit Count Registers contain the cumulated length of the processed message.
HMAC Key Digest Registers (UHH_RK0 - UHH_RK7)
The HMAC Key Digest Registers contain the computed digest of the HMAC key.
HMAC Working Registers (UHH_RH0 - UHH_RH7)
The HMAC Working Registers contain a temporary value used for the computation of the
HMAC.
Channel ID (UHH_CH_ID)
The Channel ID register contains the Identifier of this version of the UHH Channel. The
Channel ID for this version of the UHH channel is 0x0000_4002.
434/584
Doc ID 022642 Rev 3
RM0321
System controller (SYSCTR)
27
System controller (SYSCTR)
27.1
Register summary
The system controller can be fully configured by programming its registers accessed at the
base address 0xFCA0.0000
System controller registers can be logically arranged in two main groups:
Note:
●
Control and status registers, CSRs (listed in Table 512), for system controller
configuration.
●
Identification registers (listed in Table 513), namely twelve 8-bit RO registers (which
can be treated as three 32-bit registers) reporting system information and system
controller-specific information. Refer to ARM technical documentation for further
details.
In addition to reserved locations within the CSRs address space (Table 512), offset
addresses from 0xF00 to 0xFDC are reserved for test purposes. All these locations must not
be used during normal operation.
Table 512. System controller control and status registers summary
Name
Offset
Width
[bit](1)
Type
Reset
value
SCCTRL
0x000
24
RW
24’h000009 System control
SCSYSSTAT
0x004
32
RW
-
System status
SCIMCTRL
0x008
8
RW
8’h00
Interrupt mode control
SCIMSTAT
0x00C
1
RW
1’h0
Interrupt mode status
SCXTALCTRL
0x010
19
RW
19’h0
Crystal control
SCPLLCTRL
0x014
28
RW
28’h0
PLL control
-
0x018 to 0xEDC
-
-
-
Reserved
Description
1. This value represents the actual number of used bits, being reserved the others to 32.
Table 513. System controller identification registers summary
Name
Offset
Width[bit]
Type
Reset Value
SCSYSID0
0xEE0
8
RO
8’h00
SCSYSID1
0xEE4
8
RO
8’h00
SCSYSID2
0xEE8
8
RO
-
SCSYSID3
0xEEC
8
RO
-
-
0xEF0 to
0xEFC
-
-
-
Description
System identification
Doc ID 022642 Rev 3
Reserved
435/584
System controller (SYSCTR)
RM0321
Table 513. System controller identification registers summary (continued)
Name
Offset
Width[bit]
Type
Reset Value
SCPeriphID0
0xFE0
8
RO
8’h10
SCPeriphID1
0xFE4
8
RO
8’h18
SCPeriphID2
0xFE8
8
RO
8’h04
SCPeriphID3
0xFEC
8
RO
8’h00
SCPCellID0
0xFF0
8
RO
8’h0D
SCPCellID1
0xFF4
8
RO
8’hF0
SCPCellID2
0xFF8
8
RO
8’h05
SCPCellID3
0xFFC
8
RO
8’hB1
Description
Peripheral identification
Identification Register
27.2
Register description
27.2.1
SCCTRL register
The SCCTRL (control) is a RW register which is used to define the required operation of the
system controller.
Table 514. SCCTRL register bit assignments
436/584
Bit
Name
Reset
value
Description
[31:24]
Reserved
-
Read: undefined. Write: should be zero
[23]
WDogEnOv
1’h0
Watchdog enable override
This bit allows to control the watchdog enable output
signal, according to the encoding:
1‘b0 = Derived from REFCLK (24 MHz crystal) clock
source,
1‘b1 = Forced high
[22:21]
Reserved
-
Read: undefined. Write: should be zero
[20]
TimerEn2Ov
1’h0
GPT2 Timer enable, override
[19]
TimerEn2Sel
1’h0
GPT2 Timer enable, timing reference select
[18]
TimerEn1Ov
1’h0
GPT1 Timer enable , override
If set, this bit forces high the timer enable output
signal. Otherwise the bit is cleared.
[17]
TimerEn1Sel
1’h0
GPT1 Timer enable, timing reference select
This bit allows to select the reference clock for the
timer enable signals, according to the encoding:
1‘b0 = REFCLK (24 MHz crystal)
1‘b1 = TIMCLK
[16]
TimerEn0Ov
1’h0
GPT0 Timer enable, override
[15]
TimerEn0Sel
1’h0
GPT0 Timer enable, timing reference select
[14:12]
HCLKDivSel
3’h0
Control the HCLKDIVSEL output
Doc ID 022642 Rev 3
RM0321
System controller (SYSCTR)
Table 514. SCCTRL register bit assignments (continued)
Bit
Name
Reset
value
Description
[11:10]
Reserved
-
Read: undefined. Write: should be zero
[09]
RemapStat
1’h0
Remap status
This bit is used to return the value of the
REMAPSTAT input.
[08]
RemapClear
1’h0
Remap clear request
This bit is used to control the REMAPCLEAR output.
Setting this bit indicates that the memory remap will
be cleared.
[07]
Reserved
-
Read: undefined. Write: should be zero
4’h01
Mode status bits
This 4-bit field returns the current operation mode as
defined by the system controller state machine,
according to the encoding:
4‘b0000 = SLEEP
4‘b0001 = DOZE (reset value)
4‘b0010 = SLOW
4‘b0011 = XTAL CTL
4‘b0100 = NORMAL
4‘b0101 = Not used
4‘b0110 = PLL CTL
4‘b0111 = Not used
4‘b1000 = Not used
4‘b1001 = SW from XTAL
4‘b1010 = SW from PLL
4‘b1011 = SW to XTAL
4‘b1100 = Not used
4‘b1101 = Not used
4‘b1110 = SW to PLL
4‘b1111 = Not used
3’h01
Mode control bits
This 3-bit field defines the required operation mode,
according to the encoding (x is don’t care):
3‘b000 = SLEEP
3‘b001 = DOZE (reset value)
3‘b01x = SLOW
3‘b1xx = NORMAL
[06:03]
[02:00]
27.2.2
ModeStatus
ModeCtrl
SCSYSSTAT register
Writing any value to the SCSYSSTAT (system status) 32-bit RW register causes the
SOFTRESREQ output (soft reset request) to pulse high for a single clock cycle.
Doc ID 022642 Rev 3
437/584
System controller (SYSCTR)
27.2.3
RM0321
SCIMCTRL register
The SCIMCTRL (interrupt mode control) is a RW register which is used to enable and
control the operation of the system controller when an interrupt has been generated.
Table 515. SCIMCTRL register bit assignments
Bit
Name
Reset
value
Description
[31:08]
Reserved
-
Read: undefined. Write: should be zero
[07]
InMdType
1’h0
Interrupt mode type
This bit is used to define which type of interrupt can
cause the system to enter interrupt mode, according
to the encoding:
1‘b0 = FIQ
1‘b1 = FIQ and IRQ
[06:04]
Reserved
-
Read: undefined. Write should be zero.
[03:01]
ItMdCtrl
3’h0
Interrupt mode control bits
This 3 bit field defines the slowest operating mode
that must be requested when in interrupt mode.
1’h0
Interrupt mode enable
This bit is used to enable the interrupt mode,
according to the encoding:
1‘b0 = Disabled
1‘b1 = Entered when an interrupt becomes active
[00]
27.2.4
ItMdEn
SCIMSTAT register
The SCIMSTAT (interrupt mode status) is a RW register which is used to monitor and control
the system controller interrupt mode.
Table 516. SCIMSTAT register bit assignments
Bit
Name
Reset
value
Description
[31:01]
Reserved
-
Read: undefined. Write: should be zero
1’h0
Interrupt mode status
This bit is used to enable the interrupt mode,
according to the encoding:
1‘b0 = Not active.
1‘b1 = Active.
This bit can be directly written to enable software
control of the interrupt mode logic.
[00]
Note:
438/584
ItMdStat
The interrupt mode must be cleared manually when the interrupt service routine has
completed executing.
Doc ID 022642 Rev 3
RM0321
27.2.5
System controller (SYSCTR)
SCXTALCTRL register
The SCXTALCTRL (crystal control) is a RW register which is used to directly control the
crystal oscillator used to generate the system clock SYS_CLK in both SLOW and NORMAL
mode.
Table 517. SCXTALCTRL register bit assignments
Bit
Name
Type
Reset
value
Description
[31:19]
Reserved
-
-
Read: undefined. Write: should be zero
[18:03]
XtalTime
RW
16’h0
Crystal timeout count
This value is used to define the number of
slow speed oscillator cycles permitted for the
crystal oscillator output to settle after being
enabled. The timeout is given by: 65536 –
XtalTime.
[02]
XtalStat
RO
1’h0
Crystal status bit
This RO bit returns the value on the XTALON
input signal.
1’h0
Crystal enable bit
This bit is used to directly control the
XTALEN output when the crystal control
override is enabled (XtalOver bit set to ‘b1 in
this register).
1’h0
Crystal control override
If set, this bit enables the crystal control
signals (from system controller) to be placed
under direct software control, rather than
being controlled by the system mode control
state machine.
[01]
[00]
27.2.6
XtalEn
XtalOver
RW
RW
SCPLLCTRL register
The SCPLLCTRL (PLL Control) is a RW register which allows the system controller to
directly control the PLL.
Table 518. SCPLLCTRL register bit assignments
Bit
Name
Type
Reset
value
Description
[31:28]
Reserved
-
-
Read: undefined. Write: should be zero
[27:03]
PllTime
RW
25’h0
Doc ID 022642 Rev 3
PLL timeout count
This value is used to define the number of
crystal oscillator cycles permitted for the PLL
output to settle after being enabled.The
timeout value is given by: 33554432 –
PllTime.
439/584
System controller (SYSCTR)
RM0321
Table 518. SCPLLCTRL register bit assignments (continued)
Bit
Name
Type
Reset
value
Description
[02]
PllStat
RO
1’h0
PLL status bit
This RO bit returns the value on the PLLON
input signal.
1’h0
PLL enable bit
This bit is used to directly control the PLLEN
output when the PLL control override is
enabled (PllOver bit set to ‘b1 in this
register).
1’h0
PLL control override
If set, this bit enables the PLL control signals
(from the system controller) to be placed
under direct software control, rather than
being controlled by the system mode control
state machine.
[01]
[00]
440/584
PllEn
PllOver
RW
RW
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
28
System configuration registers (MISC)
28.1
Register summary
The miscellaneous registers block is organized in two distinct register regions: a local and a
global one.
●
●
Local register region: this is a private register region assigned in order to ensure the
right operability of the platform avoiding the register over assignment. The below region
controls:
–
SoC application schemes definition
–
Platform configuration parameters
Global register region: this is a general register area used to share common
functionalities among embedded processor inside the chip. The region controls:
–
Programmable logic (RAS) configuration
–
Global command and status events
–
Optional processor mail box data
Two different register address maps are provided for local and global register spaces which
are split into two 32-Kbyte sub-region associated with the processor. The local sub-regions
are singularly assigned at different physical register regions, while all the global sub-regions
are alias of a unique physical region as detailed in the next table.
Table 519. Miscellaneous register main memory map
Miscellaneous register main memory map
Local Space
Processor
Number
Proc-1
Global Space
Region 1-2
Offset address
range
Region-1
0x0.0000 – 0x0.7FFF Alias-1
Doc ID 022642 Rev 3
Region-1
Offset address
range
0x0.8000 – 0x0.FFFF
441/584
System configuration registers (MISC)
28.2
RM0321
Miscellaneous local register description
The local register space controls the following functionalities:●
●
SoC main configuration
–
Functional mode (up to 7 configuration are allowed):
–
Normal operating mode.
–
Debug mode: enable and control the processors embedded trace module and
Embedded ICE diagnostic functionalities.
–
Test manufacture mode.
Clock definition and control:
–
Source clock definition.
–
Setting operating frequency.
–
Clock gating control.
–
Auxiliary clock configuration.
●
Soft reset control.
●
Platform basic configuration parameters:
●
–
Switch matrix arbitration protocol and priority definition.
–
DMA channel assignment scheme.
–
USB2 Pays setting parameter.
Special configuration parameters:
–
Compensation pad parameters.
–
Fast IO pad configuration parameters.
–
SSTL pad basic functionality
–
Wake up configuration type.
●
Functional memory BIST execution control.
●
Diagnostic error detection.
Next table shows the miscellaneous register map.
Table 520. Miscellaneous local space registers overview
MISC Local Space Register Map
Register Name
442/584
Base address: 0xFCA8.0000
Region-1 Offset
Region-2 Offset
0x0.0000
0x1.0000
Type
SOC_CFG_CTR
0x000
RO
DIAG_CFG_CTR
0x004
R/W
PLL1_CTR
0x008
R/W
PLL1_FRQ
0x00C
R/W
PLL1_MOD
0x010
R/W
PLL2_CTR
0x014
R/W
PLL2_FRQ
0x018
R/W
PLL2_MOD
0x01C
R/W
PLL_CLK_CFG
0x020
R/W
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 520. Miscellaneous local space registers overview (continued)
MISC Local Space Register Map
Register Name
Base address: 0xFCA8.0000
Region-1 Offset
Region-2 Offset
0x0.0000
0x1.0000
Type
CORE_CLK_CFG
0x024
R/W
PRPH_CLK_CFG
0x028
R/W
PERIP1_CLK_ENB
0x02C
R/W
Reserved
0x030
-
RAS_CLK_ENB
0x034
R/W
PERIP1_SOF_RST
0x038
R/W
Reserved
0x03C
-
RAS_SOF_RST
0x040
R/W
PRSC1_CLK_CFG
0x044
R/W
PRSC2_CLK_CFG
0x048
R/W
PRSC3_CLK_CFG
0x04C
R/W
AMEM_CFG_CTRL
0x050
R/W
Reserved
0x054
Reserved
0x058
Reserved
0x05C
IRDA_CLK_SYNT_CFG
0x060
R/W
UART0_CLK_SYNT_CFG
0x064
R/W
MAC_CLK_SYNT_CFG
0x068
R/W
RAS_CLK_SYNT1_CFG
0x06C
R/W
RAS_CLK_SYNT2_CFG
0x070
R/W
RAS_CLK_SYNT3_CFG
0x074
R/W
RAS_CLK_SYNT4_CFG
0x078
R/W
ICM1_ARB_CFG
0x07C
R/W
ICM2_ARB_CFG
0x080
R/W
ICM3_ARB_CFG
0x084
R/W
ICM4_ARB_CFG
0x088
R/W
ICM5_ARB_CFG
0x08C
R/W
ICM6_ARB_CFG
0x090
R/W
ICM7_ARB_CFG
0x094
R/W
ICM8_ARB_CFG
0x098
R/W
ICM9_ARB_CFG
0x09C
R/W
DMA_CHN_CFG
0x0A0
R/W
USB2_PHY_CFG
0x0A4
R/W
Doc ID 022642 Rev 3
443/584
System configuration registers (MISC)
RM0321
Table 520. Miscellaneous local space registers overview (continued)
MISC Local Space Register Map
Register Name
444/584
Base address: 0xFCA8.0000
Region-1 Offset
Region-2 Offset
0x0.0000
0x1.0000
Type
MAC_CFG_CTR
0x0A8
Reserved
0x0AC
Reserved
0x0B0
Reserved
0x0B4
Reserved
0x0B8
Reserved
0x0BC
Reserved
0x0C0
Reserved
0x0C4
Reserved
0x0C8
Reserved
0x0CC
Reserved
0x0D0
Reserved
0x0D4
Reserved
0x0D8
Reserved
0x0DC
POWERDOWN_CFG_CTR
0x0E0
R/W
COMPSSTL_1V8_CFG
0x0E4
R/W
Reserved
0x0E8
COMPCOR_3V3_CG
0x0EC
R/W
DDR_PAD
0x0F0
R/W
BIST1_CFG_CTR
0x0F4
R/W
BIST2_CFG_CTR
0x0F8
R/W
BIST3_CFG_CTR
0x0FC
R/W
BIST4_CFG_CTR
0x100
R/W
Reserved
0x104
R/W
BIST1_STS_RES
0x108
R/W
BIST2_STS_RES
0x10C
R/W
BIST3_STS_RES
0x110
R/W
BIST4_STS_RES
0x114
R/W
Reserved
0x118
SYSERR_CFG_CTR
0x11C
R/W
USB0_TUN_PRM
0x120
R/W
USB_TUN_PRM
0x124
R/W
USB2_TUN_PRM
0x128
R/W
Doc ID 022642 Rev 3
R/W
R/W
0xC0
R/W
R/W
0x0D0
R/W
RM0321
System configuration registers (MISC)
Table 520. Miscellaneous local space registers overview (continued)
MISC Local Space Register Map
Register Name
28.2.1
Base address: 0xFCA8.0000
Region-1 Offset
Region-2 Offset
0x0.0000
0x1.0000
Type
Reserved[1]
0x12C
R/W
PLGPIO0_PAD_PRG
0x130
R/W
PLGPIO1_PAD_PRG
0x134
R/W
PLGPIO2_PAD_PRG
0x138
R/W
PLGPIO3_PAD_PRG
0x13C
R/W
PLGPIO4_PAD_PRG
0x140
R/W
Reserved[32448]
0x144
0x7FFC
SoC_CFG_CTR register
The SOC_CFG_CTR is a RO register which handles both functional and test manufacture
SoC basic configuration type.
Table 521. SoC_CFG_CTR register bit assignments
SoC Functional Configuration Type
0x000
Bit
Name
Reset
Value
Description
[31:20]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[19]
boot_sel
-
Reserved for future use (Write don’t care - Read return
zeros).
[18:06]
Fixed Value
13’h880
Fixed Value
Doc ID 022642 Rev 3
445/584
System configuration registers (MISC)
RM0321
Table 521. SoC_CFG_CTR register bit assignments (continued)
SoC Functional Configuration Type
Bit
Name
Reset
Value
0x000
Description
SoC operating mode; this field reflects the Test(4:0) signal
values which configure the ASIC main operating modes:
Functional (ref. SoC Functional configuration type Table)
Test manufacture (ref. SoC Test configuration Table)
SoC Functional Configuration Type
Soc-cfg
[05:00]
446/584
SoC_cfg
-
Name
Description
X00000
Dyn_cfg0_0
Default configuration, I/O
standard features (ARM
internal debug resources
disabled)
X000001
Dyn_cfg0_1
Same as Dyn_cfg0_0 but
ARM JTAG connected with
main JTAG interface
X00010
Dyn_cfg0_2
Same as Dyn_cfg0_1 but
ETM Interface (Single and
double
packet
mode)
multiplexed
with
programmable PL_GPIOs
[73:97]
X00100
Dyn_cfg1_0
UART and TIMER ports
available
on
PLGPIO
[37:50]
X00101
Dyn_cfg1_1
Same as Dyn_cfg1_0 but
ARM JTAG connected with
main JTAG interface
X00110
Dyn_cfg1_2
Same as Dyn_cfg1_1 but
ETM Interface (Single and
double
packet
mode)
multiplexed
with
programmable PL_GPIOs
[73:97]
X01000
Dyn_cfg2_0
Ethernet ports disabled
from PLGPIO [27:10]
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 521. SoC_CFG_CTR register bit assignments (continued)
SoC Functional Configuration Type
Bit
Name
Reset
Value
0x000
Description
Dyn_cfg2_1
Same as Dyn_cfg2_0 but
ARM JTAG connected with
main JTAG interface
X01010
Dyn_cfg2_2
Same as Dyn_cfg2_1 but
ETM Interface (Single &
double
packet
mode)
multiplexed
with
programmable PL_GPIOs
[73:97]
X01100
Dyn_cfg3_0
UART,
TIMER,
ETHERNET, I2C and FIrDA
ports shared with [50:0]
X01101
Dyn_cfg3_1
Same as Dyn_cfg3_0 but
ARM JTAG connected with
main JTAG interface
Dyn_cfg3_2
Same as Dyn_cfg3_1 but
ETM Interface (Single and
double
packet
mode)
multiplexed
with
programmable PL_GPIOs
[73:97]
X01001
X01110
[05:00]
SoC_cfg
SoC Test Configuration Type
SoC Cfg
Name
X10000
BSD
Boundary Scan
X10001
TOP_ATPG
Scan ATPG activities on
SoC
X10010
RAS_ATPG
Scan ATPG activities on
programmable logic
X10011
BIST_MEM
BIST
mode
involving
internal RAMs/ROM
X10100
Analog Test:
PLLs
USBBIST_PLL
OSCIs
_O SCI_ADC
ADC
USB2PHY
X10101
BIST_DLL
DLL BIST mode
X10110
USB_phy
USB Phy tests
Doc ID 022642 Rev 3
Description
447/584
System configuration registers (MISC)
28.2.2
RM0321
DIAG_CFG_CTR Register
The DIAG_CFG_CTR is an R/W register which configures the embedded processors ETM9
(Embedded Trace Module) and Embedded ICE-RT (TAP base debug support) diagnostic
functionalities.
Table 522. DIAG_CFG_CTR register bit assignments
DIAG_CFG_CTR Register
448/584
0x004
Bit
Name
Reset
Value
Description
[31:16]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[15]
debug_freez 1’h0
Enable freeze condition when processor enters in debug
mode.
[14:12]
RFU
-
Reserved for future use (Write don’t care - Read return zeros)
[11]
sys_error
-
SoC internal error (RO); reflects SYSERR_CFG_CTR bit(2)
value; it’s active when an internal error is detected (further
details can be found into the SYSERR_CFG_CTR register
description
1’b0: No error pending.
1’b1: Active SoC internal error event.
[10:06]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 522. DIAG_CFG_CTR register bit assignments (continued)
DIAG_CFG_CTR Register
Bit
Name
0x004
Reset
Value
Description
SPEAr320S debug configuration (RO); this field is directly
reflects the Test (1:0) signals value and it’s used to configure
the internal processor Embedded ICE-RT (JTAG port) and
ETM debugging features as detailed in the next table.
SoC Processor debug cfg6 Configuration Table
[05:04]
SOC_dbg6
SoC-Cfg
Name
Description
2’b00
Dyn_cfg0/1/2/
3_0
Normal mode (ARM
internal debug resources
disable)
2’b10
Dyn_cfg0/1/2/
3_1
JTAG1 (ARM JTAG port):
connected with main JTAG
Interface
2’b01
Dyn_cfg0/1/2/
3_2
ETM1 (ARM ETM):
interface (single & double
packets mode) multiplexed
with programmable
PL_GPIO (38:14) signals
(ref. ETM Dbg6 signal.
assessment tab)
JTAG1: connected with
main JTAG Interface.
2’b11
RFU
Reserved for future use.
-
ETM Dbg6 Signal Assignment Table
Standard IOs
Alternative IOs
PL_GPIO(97)
ARM1_TRCCLK
PL_GPIO(96)
ARM1_TRCPKTA(0)
PL_GPIO(95)
ARM1_TRCPKTA(1)
PL_GPIO(94)
ARM1_TRCPKTA(2)
PL_GPIO(93)
ARM1_TRCPKTA(3)
PL_GPIO(92)
ARM1_TRCPKTB(0)
PL_GPIO(91)
ARM1_TRCPKTB(1)
PL_GPIO(90)
ARM1_TRCPKTB(2)
PL_GPIO(89)
ARM1_TRCPKTB(3)
PL_GPIO(88)
ARM1_TRCSYNCA
Doc ID 022642 Rev 3
449/584
System configuration registers (MISC)
RM0321
Table 522. DIAG_CFG_CTR register bit assignments (continued)
DIAG_CFG_CTR Register
Bit
[05:04]
[03:00]
28.2.3
Name
SOC_dbg6
RFU
0x004
Reset
Value
-
-
Description
PL_GPIO(87)
ARM1_TRCSYNCB
PL_GPIO(86)
ARM1_PIPSTATA(0)
PL_GPIO(85)
ARM1_PIPSTATA(1)
PL_GPIO(84)
ARM1_PIPSTATA(2)
PL_GPIO(83)
ARM1_PIPSTATB(0)
PL_GPIO(82)
ARM1_PIPSTATB(1)
PL_GPIO(81)
ARM1_PIPSTATB(2)
PL_GPIO(80)
ARM1_TRCPKTA(4)
PL_GPIO(79)
ARM1_TRCPKTA(5)
PL_GPIO(78)
ARM1_TRCPKTA(6)
PL_GPIO(77)
ARM1_TRCPKTA(7)
PL_GPIO(76)
ARM1_TRCPKTB(4)
PL_GPIO(75)
ARM1_TRCPKTB(5)
PL_GPIO(74)
ARM1_TRCPKTB(6)
PL_GPIO(73)
ARM1_TRCPKTB(7)
PL_GPIO(86)
ARM1_PIPSTATA(0)
PL_GPIO(85)
ARM1_PIPSTATA(1)
PL_GPIO(84)
ARM1_PIPSTATA(2)
PL_GPIO(83)
ARM1_PIPSTATB(0)
PL_GPIO(82)
ARM1_PIPSTATB(1)
PL_GPIO(81)
ARM1_PIPSTATB(2)
PL_GPIO(80)
ARM1_TRCPKTA(4)
PL_GPIO(79)
ARM1_TRCPKTA(5)
PL_GPIO(78)
ARM1_TRCPKTA(6)
PL_GPIO(77)
ARM1_TRCPKTA(7)
PL_GPIO(76)
ARM1_TRCPKTB(4)
PL_GPIO(75)
ARM1_TRCPKTB(5)
PL_GPIO(74)
ARM1_TRCPKTB(6)
PL_GPIO(73)
ARM1_TRCPKTB(7)
Reserved for future use (Write don’t care - Read return
zeros).
PLL 1/2_CTR register
The PLL1/2_CTR are R/W registers which configure the main PLLs operating mode.
450/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
PLL programming sequence
After reset both PLLs must be firstly configured in normal mode waiting for the PLL lock valid
status, than these can be optionally reconfigured in dithered mode through an additional
specific programming sequence.
Two different output frequency equations are provided for the above PLL operating mode:
●
PLL Normal Mode:
●
PLL Dithered or fractional-N mode
2 × M [ 158 ] F in
F out = -------------------------- × ------P
N
2
2 × M F in
F out = ------------------- × ------256XN 2 P
.
Table 523. PLL 1/2_CTR register bit assignments
PLL_CTR Register
0x008
PLL2_CTR
0x014
Bit
Name
Reset
Value
Description
[31:09]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
PLL Main Configuration Table
[08:03]
[02]
pll_control1
pll_enable
6’h0
1’h0
Control Bit
Description
Pll_control1(8)
1’b0
1’b1
External feedback enable:
Internal feedback
External feedback (dithered mode)
Pll_control(7:6)
2’b00
2’b01
1X
Sigma Delta Order:
1st Order
2nd Order
N.A. (not applicable for current silicon
version)
Pll_control1(5:4)
2’b00
2’b01
2’b10
2’b11
Dither mode:
Normal mode (non dithered)
Fractional-N
Dithering (double side modulation)
Dithering (single side modulation)
Pll_control1(3)
1’b0
1’b1
PLL sample program parameters:
No action.
Sample program parameters (.)
Enable PLL:
1’b0: Disable PLL (power-down mode).
1’b1: Enable PLL
Doc ID 022642 Rev 3
451/584
System configuration registers (MISC)
RM0321
Table 523. PLL 1/2_CTR register bit assignments (continued)
PLL_CTR Register
0x008
PLL2_CTR
0x014
Bit
Name
Reset
Value
Description
[01]
pll_resetn
1’h0
PLL soft reset command:
1’b0: PLL active reset command.
1’b1: PLL reset enable.
1’h0
PLL Lock Status (RO); field meaningful when PLL is configured
in normal mode:
1’b0: PLL unlock status.
1’b1: PLL lock active status.
[00]
28.2.4
pll_lock
PLL1/2_FRQ registers
The PLL1/2_FRQ are R/W registers used to configure the PLL VCO frequency operating
mode.
Table 524. PLL1/2_FRQ register bit assignments
PLL1_FRQ Register
0x00C
PLL2_FRQ
0x018
Bit
Name
Reset
Value
Description
M[15:0]: PLL feedback divisor values; when PLL is
configured in normal mode only M[15:8] upper byte is
considered.
Two different equations are provided for the VCO frequency
definition which must be programmed within range from 200
MHz min. to 800 MHz max as detailed below:
PLL Normal mode configuration
[31:16]
pll_fbkdiv_M
16’h
A600
(.)
f VCD = 2 • f ref • M [ 15 ;8 ]
M[15:8] can assume the following range of values:
4 < M < 17
with 200 < fVCD < 800 MHz; fref24 MHz.
PLL dithered or fractional-N mode configurations:
2 • f ref
f VCD = ----------------- • M
256
[15:0] can assume the following range of values:
1066 < M < 4266
with 200 < fVCD < 800 MHz; fref24 MHz.
[15:11]
452/584
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 524. PLL1/2_FRQ register bit assignments (continued)
PLL1_FRQ Register
0x00C
PLL2_FRQ
0x018
Bit
Name
Reset
Value
Description
Post divider (P) table
P(2:0): PLL post-divisor values in 1:32 in 2’powers (ref. Post
Divider table)
[10:08]
pll_postdiv_P 3’h1
Pdiv2
Pdiv1
Pdiv0
Division factor
0
0
0
1
0
0
1
2
0
1
0
4
0
1
1
8
1
0
0
16
1
0
1
32
1
1
0
32
1
1
1
32
N(7:0): PLL pre-divisor programmable value from 1 to 255
(ref. Pre-divisor table)
The reference clock fref should be within the range below:
1MHz < = fre ( f < =
40Mhz )
The reference clock value is given from the following
formula:
f osci
f ref = ---------N
[07:00]
pll_prediv_N
8’h0C
Pre-divider (N) table
div
7
div
6
div
5
div
4
div
3
div 2
div 1
div 0
Div fact.
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
2
~
~
~
~
~
~
~
~
~
1
1
1
1
1
1
1
0
254
1
1
1
1
1
1
1
1
255
Doc ID 022642 Rev 3
453/584
System configuration registers (MISC)
28.2.5
RM0321
PLL1/2_MOD registers
The PLL1/2_MOD is R/W registers which configure the dithering modulation parameters.
Table 525. PLL1/2_MOD register bit assignments
PLL1_MOD Register
0x010
PLL2_MOD
0x01C
Bit
Name
Reset
Value
Description
[31:29]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
MP(12:0) PLL modulation wave parameters:
Modulation rate fmod depends from reference clock fref;
and modulation period mp as detailed in the next formula
:
f ref ( KHz )
f mod ( KHz ) = -------------------4 • mp
[28:16]
pll_modperiod
13’h0
Example: If fref = 24000 kHz and fmod = 100 kHz the
modulation period register will be mp=60.
Any changes in the reference clock results in changes in
the modulation frequency.
The maximum modulation frequency that can pass
through the filter is 100 kHz.
SR(15:0) PLL slope modulation wave parameters:
The slope modulation rate reflects the modulation-depth
(md) in respect to the nominal frequency of the undithered clock as shown in the next formula:
17
2 sr = ------• md • f VCD • f mod
2
f ref
[15:00]
pll_slope
16’h0
Where sr in the actual value of the slope register.
Example: If md=2.5% and fVCD = 576 MHz and fmod = 100
kHz with fref = 24 MHz, (using the simplified formula) it
results:
8
2
sr = -------- • md • M
mp
256 • 0 • 025 • 3072
sr = ------------------------------------------------------ = 327 = 0 × 0147
60
454/584
Doc ID 022642 Rev 3
RM0321
28.2.6
System configuration registers (MISC)
PLL_CLK_CFG register
The PLL_CLK_CFG is an R/W register used to configure the input source clock for all the
internal PLLs.
Table 526. PLL_CLK_CFG register bit assignments
PLL_CLK_CFG Register
0x020
Bit
Name
Reset
Value
Description
[31]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
MPMC memory controller DDR_CLK configuration.
[30:28]
[27]
mctr_clk_sel
RFU
3’b000
Synch mode: core clock provided from PLL1:
1:1
for DDRCORE_CLK the reference frequency
is HCLK. DDR_CLK = HCLK.
3’b001
Synch mode: core clock provided from PLL1:
2:1
for DDRCORE_CLK the reference frequency
is 2x HCLK. DDR_CLK = 2 x HCLK.
Note: Ratio 2:1 must also be set in the
ahbX_fifo_type_reg parameter (see
Table 81 on page 76)
3’b010
Reserved for future use.
3’b011
Asynch mode: core clock provided from
PLL2
>1:1 (clock up to 333 MHz).
<1:1 (clock range 100 - 166 MHz).
3’b1XX
Reserved for future use.
3’h0
Reserved for future use (Write don’t care - Read return
zeros).
-
Auxiliary PLL2 source clock configuration
[26-24]
[23]
pll2_clk_sel
RFU
3’h0
-
Control
Bit
Description
3’b000
24 MHz Oscillator (default mode)
3’b001
Programmable PL_CLK (3) signal.
3’b010
Reserved for future use
3’b011
Reserved for future use.
3’b1XX
Reserved for future use.
Reserved for future use (Write don’t care - Read return
zeros.)
Doc ID 022642 Rev 3
455/584
System configuration registers (MISC)
RM0321
Table 526. PLL_CLK_CFG register bit assignments (continued)
PLL_CLK_CFG Register
Bit
Name
0x020
Reset
Value
Description
Main PLL1 source clock configuration table
[22:20]
[19]
[18]
[17]
mem_dll_lock
usb_pll_lock
sys_pll2_lock
3’h0
Description
3’b000
24 MHz Oscillator (default mode)
3’b001
Programmable PL_CLK (4) signal.
3’b01X
Reserved for future use.
3’b1XX
Reserved for future use.
-
Memory DLL lock; this field reflects the current value of
memory controller DLL lock signal (RO):
1’b0: DLL unlock status (for interrupt capability ref.
SYSERR_CFG_CTR register description).
1’b1: DLL active lock.
-
USB PLL3 lock; this field reflects the current value of
USB PLL3 lock signal (RO):
1’b0: USB PLL3 unlock status (for interrupt capability ref.
SYSERR_CFG_CTR register description).
1’b1: PLL3 active lock.
-
Auxillary System PLL2 lock; this field reflects the current
value of System PLL2 lock signal (RO):
1’b0: PLL2 unlock status (for interrupt capability ref.
SYSERR_CFG_CTR register description).
1’b1: Pll2 active lock.
This field should be ignored when PLL2 is programmed
in dithering mode.
[16]
sys_pll1_lock
-
Main System PLL1 lock; this field reflects the current
value of the System PLL1 lock signal (RO):
1’b0: PLL1 unlock status (for interrupt capability ref.
SYSERR_CFG_CTR register description).
1’b1: Pll1 active lock.
This field should be ignored when PLL1is programmed in
dithering mode.
[15:03]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
1’h0
Enable USB PLL3 clock output probing; this functionality
is used to check the internal PLL3 clock integrity:
1’b0: Disable clock probing (normal mode).
1’b1: PLL3 clock out (48 MHz) multiplexed on
basGPIO(2) signal.
[02]
456/584
pll1_clk_sel
Control
Bit
pll3_enb_clkout
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 526. PLL_CLK_CFG register bit assignments (continued)
PLL_CLK_CFG Register
Bit
[01]
[00]
28.2.7
Name
pll2_enb_clkout
pll1_enb_clkout
0x020
Reset
Value
Description
1’h0
Enable PLL2 clock output probing; this functionality is
used to check the internal PLL2 clock integrity:
1’b0: Disable clock probing (normal mode).
1’b1: PLL2 clock out (clk1 x 1/8) multiplexed on
basGPIO(1) signal.
1’h0
Enable PLL1 clock output probing; this functionality is
used to check the internal PLL1 clock integrity:
1’b0: Disable clock probing (normal mode).
1’b1: PLL1 clock out (clk1 x 1/8) multiplexed on
basGPIO(0) signal
CORE_CLK_CFG register
The CORE_CLK_CFG is an R/W register used to configure the internal platform clock
domains.
Table 527. CORE_CLK_CFG register bit assignments
CORE_CLK_CFG Register
0x024
Bit
Name
Reset
Value
Description
[31:22]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
OSCI24 divider config. table
[21:20]
[19]
Osci24_div-ratio
Osci24_div_en
Control bit Ratio
Description
2’b00
1:2
24 MHz to divider out ratio.
2’b01
1:4
24 MHz to divider out ratio.
2’b10
1:16
24 MHz to divider out ratio.
2’b11
1:32
24 MHz to divider out ratio.
2’h0
1’h0
When set the 24 MHz Oscillator clock, used in SLOW
and DOZE mode for the AMBA subsystem, is divided by
a prescaler. The prescaler division factor can be set
through osci24_div_ratio field.
[18]
ras_synt34_clks
el
1’h0
Current field selects the RAS clock synthesizer Synt-3
and Synt-4 input source clock (ref. Auxiliary clock
synthesizer register description):
1’b0: Clock synthesizer input freq. Fin = PLL1 output
clock (333 MHz).
1’b1: Clock synthesizer input freq. Fin = PLL2 output
clock (programmable value)
[17:12]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
Doc ID 022642 Rev 3
457/584
System configuration registers (MISC)
RM0321
Table 527. CORE_CLK_CFG register bit assignments (continued)
CORE_CLK_CFG Register
Bit
Name
0x024
Reset
Value
Description
PLL1_clkout to HCLK clock ratio definition (ref. next
table)
PLL1_clkout to HCLK configuration table
[11:10]
hclk_divsel
2’h0
Control bit Ratio
Description
2’b00
1:1
Pll1_clkout to HCLK ratio
2’b01
1:2
Pll1_clkout to HCLK ratio
2’b10
1:3
Pll1_clkout to HCLK ratio
2’b11
1:4
Pll1_clkout to HCLK ratio
Low speed subsystem PCLK clock ratio divider (ref. next
table)
HCLK to PCLK clock ratio configuration table
[09:08]
28.2.8
pclk_ratio_lwsp
2’h0
Control bit Ratio
Description
2’b00
1:1
Hclk to Pclk clock ratio.
2’b01
1:2
Hclk to Pclk clock ratio.
2’b10
1:3
Hclk to Pclk clock ratio.
2’b11
1:4
Hclk to Pclk clock ratio.
[07:06]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[05:04]
pclk_ratio_basc
2’h0
Basic subsystem PCLK clock ratio divider (ref. HCLK to
PCLK clock ratio configuration table)
[03:02]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[01:00]
pclk_ratio_arm1
2’h0
ARM subsystem PCLK clock ratio divider (ref. HCLK to
PCLK clock ratio configuration table).
PRPH_CLK_CFG register
The PRPH_CLK_CFG is an R/W register used to configure the peripheral source clock
definition.
458/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 528. PRPH_CLK_CFG register bit assignments
PRPH_CLK_CFG Register
0x028
Bit
Name
Reset
Value
Description
[31:18]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros)
[17]
gptmr2_freez
1’h0
GPT2 General purpose timer 2 clock enable
1’b0: enable clock
1’b1: disable clock
[16]
gptmr1_freez
1’h0
GPT1 General purpose timer 1 clock enable
1’b0: enable clock
1’b1: disable clock
[15:14]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[13]
gptmr0_freez
1’h0
GPT0 General purpose timer 0 clock enable
1’b0: enable clock
1’b1: disable clock
[12]
gptrmr2_clksel
1’h0
GPT2 General purpose timer 2 source clock selection
1’b0: 48 MHz (default clock)
1’b1: Clock prescaler (PRSC3_CLK_CFG)
[11]
gptmr1_clksel
1’h0
GPT1 General purpose timer 1 source clock selection
1’b0: 48 MHz (default clock)
1’b1: Clock prescaler (PRSC2_CLK_CFG)
[10:09]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[08]
gptmr0_clksel
1’h0
GPT0 General purpose timer 0 source clock selection
1’b0: 48 MHz (default clock)
1’b1: Clock prescaler (PRSC1_CLK_CFG).
1’h1
Real Time Clock enable.
1’b0: RTC clock enable (to be enabled to set 32 kHz as
the input clock source in DOZE mode).
1’b1: Disable RTC clock (disable 32 kHz as the input
clock source in DOZE mode)
2’h0
IrDA source clock selection
2’b00: CLK48MHz (default clock)
2’b01: IrDA clock synthesizer Section 28.2.13: Auxiliary
clock synthesizer registers
2’b10: External PL_CLK (3) signal.
2’b11: Reserved.
1’h0
UART0 source clock selection
1’b0: CLK48MHz (default clock)
1’b1:UART0 Clock Synthesizer Section 28.2.13: Auxiliary
clock synthesizer registers
[07]
[06:05]
[04]
rtc_disable
irda_clksel
uart_clksel
Doc ID 022642 Rev 3
459/584
System configuration registers (MISC)
RM0321
Table 528. PRPH_CLK_CFG register bit assignments (continued)
PRPH_CLK_CFG Register
Bit
Name
Reset
Value
Description
[03:02]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
1’h1
Enable PLL1 timer: this functionality replace PLL lock
signals and it's used to control the switch transition from
slow to normal operating mode when System controller
PLL1 timeout event expires:
1’b0: Disable PLL1 timer functionality.
1’b1: Enable PLL1 timer switching transition; set from
Processor to switch into the normal operating frequency
either after the initialization sequence complete or to
restore the normal operating condition from a dynamic
power down sequence (power save).
1’h0
Enable Xtal timer: this functionality enables an auxiliary
timer to control the switch transition from doze to slow
operating mode when system controller Xtal timeout
event expires:
1’b0: Disable Xtal timer functionality: the switch transition
is controlled from macro-oscillator clock enable signal.
1’b1: Enable Xtal timer; set from Processor to ensure the
oscillator output clock stable before to enter in slow
operating mode.
[01]
[00]
28.2.9
0x028
plltimeen
xtaltimeen
PERIP1_CLK_ENB register
The PERIP1_CLK_ENB is an R/W register which controls the peripheral clock enable
functionality.
Table 529. PERIP1_CLK_ENB register bit assignments
PERIP1_CLK_ENB Register
460/584
0x02C
Bit
Name
Reset
Value
Description
[31]
C3_clock_enb
1’h1
1’b0: Disable C3 clock
1’b1: Enable C3 clock
[30]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[29]
ddr_core_enb
1’h1
DDR memory controller core clock enable; functionality asserted
setting ‘0’ the PERIPH1_CLK_ENB[27] after a previous write
with PERIPH1_CLK_ENB[29,27]=01:
1’b0: Disable DDR core clock gating functionality.
1’b1: Enable DDR core clock gating functionality.
[28]
RFU
-
Reserved for future use (Write don’t care - Read return zeros)
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 529. PERIP1_CLK_ENB register bit assignments (continued)
PERIP1_CLK_ENB Register
Bit
Name
0x02C
Reset
Value
Description
[27]
ddr_clkenb
1’h1
1’b0: Disable DDR memory controller core clock.
1’b1: Enable DDR memory controller core clock.
Note: Command allowed when ddr_core_enb bit is active high.
[26]
usbh_clock
1’h1
1'b0: Used to disable USB ehci host reset.
1'b1: Used to enable USB ehci host reset.
[25]
usbh1_clkenb
1’h0
1’b0: Disable USB host clock.
1’b1: Enable USB host clock.
[24]
usbdev_clkenb 1’h0
1’b0: Disable USB device clock.
1’b1: Enable USB device clock.
[23]
MAC_clkenb
1’h0
1’b0: Disable MAC Ethernet clock.
1’b1: Enable MAC Ethernet clock.
[22]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[21]
smi_clkenb
1’h1
1’b0: Disable serial Flash controller clock.
1’b1: Enable serial Flash controller clock.
[20]
rom_clkenb
1’h1
1’b0: Disable ROM controller clock.
1’b1: Enable ROM controller clock.
[19]
DMA_clkenb
1’h0
1’b0: Disable DMA controller clock.
1’b1: Enable DMA controller clock.
[18]
GPIO_clkenb
1’h0
1’b0: Disable GPIO clock.
1’b1: Enable GPIO clock.
[17]
rtc_clkenb
1’h0
1’b0: Disable real time controller clock.
1’b1: Enable real time controller clock.
[16]
RFU
-
-
[15]
adc_clkenb
1’h0
1’b0: Disable ADC controller clock.
1’b1: Enable ADC controller clock.
[14:13] RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[12]
GPT3 clkenb
1’h0
1’b0: Disable GPT 3 of basic subsystem clock.
1’b1: Enable GPT 3 of basic subsystem clock.
[11]
GPT2 clkenb
1’h0
1’b0: Disable GPT 2 of basic subsystem clock.
1’b1: Enable GPT 2 of basic subsystem clock.
[10]
firda_clkenb
1’h0
1’b0: Disable IrDA clock.
1’b1: Enable IrDA clock.
[09]
RFU
[08]
jpeg_clkenb
1’h0
1’b0: Disable JPEG codec clock.
1’b1: Enable JPEG codec clock.
Doc ID 022642 Rev 3
461/584
System configuration registers (MISC)
RM0321
Table 529. PERIP1_CLK_ENB register bit assignments (continued)
PERIP1_CLK_ENB Register
Bit
Name
Reset
Value
Description
[07]
i2c_clkenb
1’h0
1’b0: Disable I2C clock.
1’b1: Enable I2C clock.
[06]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[05]
ssp_clkenb
1’h0
1’b0: Disable SPI clock.
1’b1: Enable SPI clock.
[04]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[03]
uart_clkenb
1’h1
1’b0: Disable UART0 clock.
1’b1: Enable UART0 clock.
[02]
RFU
[01]
arm_clkenb
[00]
28.2.10
0x02C
arm_enb
Reserved for future use
1’h1
1’b0: Disable ARM subsystem clock.
1’b1: Enable ARM subsystem clock.
Note: Command allowed when arm_enb bit is active high.
1’h0
ARM clock enable; functionality asserted setting ‘0’ the
PERIPH1_CLK_ENB[1] after a previous write with
PERIPH1_CLK_ENB[1,0]=01:
1’b0: Disable ARM clock gating functionality.
1’b1: Enable ARM clock gating functionality.
RAS_CLK_ENB register
The RAS_CLK_ENB is an R/W register which controls the internal programmable logic
clock enable functionality.
Table 530. RAS_CLK_ENB register bit assignments
RAS_CLK_ENB Register
462/584
0x034
Bit
Name
Reset
Value
Description
[31:16]
reserved
-
Reserved for future use (Write don’t care - Read return
zeros).
[15]
pl_gpck4_clkenb
1’h0
1’b0: Disable PL_CLK(4) external clock signal.
1’b1: Enable PL_CLK(4) external clock signal.
[14]
pl_gpck3_clkenb
1’h0
1’b0: Disable PL_CLK(3) external clock signal.
1’b1: Enable PL_CLK(3) external clock signal.
[13]
pl_gpck2_clkenb
1’h0
1’b0: Disable PL_CLK(2) external clock signal.
1’b1: Enable PL_CLK(2) external clock signal.
[12]
pl_gpck1_clkenb
1’h0
1’b0: Disable PL_CLK(1) external clock signal.
1’b1: Enable PL_CLK(1) external clock signal.
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 530. RAS_CLK_ENB register bit assignments (continued)
RAS_CLK_ENB Register
28.2.11
0x034
Bit
Name
Reset
Value
Description
[11]
ras_synt4_clkenb
1’h0
1’b0: Disable RAS_CLK_SYNT4 clock.
1’b1: Enable RAS_CLK_SYNT4 clock.
[10]
ras_synt3_clkenb
1’h0
1’b0: Disable RAS_CLK_SYNT3 clock.
1’b1: Enable RAS_CLK_SYNT3 clock.
[09]
ras_synt2_clkenb
1’h0
1’b0: Disable RAS_CLK_SYNT2 clock.
1’b1: Enable RAS_CLK_SYNT2 clock.
[08]
ras_synt1_clkenb
1’h0
1’b0: Disable RAS_CLK_SYNT1 clock.
1’b1: Enable RAS_CLK_SYNT1 clock.
[07]
pll2_clkenb
1’h0
1’b0: Disable PLL2_CLKOUT clock.
1’b1: Enable PLL2_CLKOUT clock.
[06]
RFU
[05]
clk48M_clkenb
1’h0
1’b0: Disable CLK48MHz clock.
1’b1: Enable CLK48MHz clock.
[04]
Clk24M_clkenb
1’h0
1’b0: Disable CLK24MHz clock signal.
1’b1: Enable CLK24MHz clock signal.
[03]
clk32K_clkenb
1’h0
1’b0: Disable CLK32kHz clock signal.
1’b1: Enable CLK32kHz clock signal.
[02]
pclkappl_clkenb
1’h0
1’b0: Disable internal PCLK (APB application Subsystem)
source clock.
1’b1: Enable internal PCLK (APB application Subsystem)
source clock.
[01]
pll1_clkenb
1’h0
1’b0: Disable PLL1_CLKOUT clock.
1’b1: Enable PLL1_CLKOUT clock.
[00]
hclk_clkenb
1’h0
1’b0: Disable internal AHB HCLK source clock.
1’b1: Enable internal AHB HCLK source clock.
PRSC1/2/3_CLK_CFG register
The PRSC1/2/3_CLK_CFG are three RW registers used to configure the timer pre scalar
frequencies. The output frequency is given from the following expressions:
F in
F out = ------------------------------------------(N + 1)
2
× (M + 1)
with M < 4096, N < 16; Fin = (PLL1 out frequency) 333 MHz. Fout Max 83 MHz.
The register bit assignments is detailed in the next table.
Doc ID 022642 Rev 3
463/584
System configuration registers (MISC)
RM0321
Table 531. PRSC1/2/3_CLK_CFG register bit assignments
28.2.12
PRSC1_CLK_CFG Register
0x044
PRSC2_CLK_CFG
0x048
PRSC3_CLK_CFG
0x04C
Bit
Name
Reset
Value
Description
[31:16]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[15:12]
presc_n
4’h0
N (3:0) constant factor division value: N < 16.
[11:00]
presc_m
12’h0
M (11:0) constant division value: M < 4096.
AMEM_CFG_CTRL register
The AMEM_CFG_CTRL is an R/W register which configures and controls the
asynchronous/synchronous memory port-1 source clock definition.
The output frequency originated from the x/y clock synthesizer is given from the next
equation:
X
F out = ⎛ Fin × ----⎞ ⁄ 2
⎝
Y⎠
with Y < 256; X < Y/2; Fin = (ref. amem_synt_enb source clock definition).
The register bit assignments is detailed in the next table.
Table 532. AMEM_CFG_CTRL register bit assignments
AMEM_CFG_CTRL Register
Bit
Name
Reset
Value
Description
[31:24]
amem_xdiv
8’h0
X(7:0) clock synthesizer constant division: X < Y/2.
[23:16]
amem_ydiv
8’h0
Y(7:0) clock synthesizer constant division: Y<256.
[15]
amem_rst
1’h0
Memory port-1 soft reset command:
1’b0: Disable soft reset.
1’b1: Active soft reset command.
[14:05]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
1’h0
Enable memory port-1 clock synthesizer:
1’b0: Disable memory clock synthesizer; memory clock is
provided in agree with the amem_clksel source clock
definitions.
1’b1: Enable memory clock synthesizer; memory clock is
provided from clock synthesizer logic (ref. amen Fout
equation)
[04]
464/584
0x050
amem_synt_enb
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 532. AMEM_CFG_CTRL register bit assignments (continued)
AMEM_CFG_CTRL Register
Bit
0x050
Reset
Value
Name
Description
Memory port-1 source clock definition (ref. next table)
Memory port2 source clock configuration table
[03:01]
[00]
28.2.13
amem_clk_sel
amem_clk_enb
3’h0
1’h0
Control Bit
Description
3’b000
HCLK (synchronous operating mode) (.)
3’b001
PLL1(clock synthesizer should be enable).
3’b010
PLL2 (clock synthesizer should be enable).
3’b011
Ras_clk (programmable logic output
clock).
Note: This clock bypass the memory
clock synthesizer logic.
3’b100-111
Reserved (RFU)
Memory port-1 clock gating functionality:
1’b0: Disable memory clock.
1’b1: Enable memory clock.
Auxiliary clock synthesizer registers
The Auxiliary clock synthesizers are a group of R/W registers which provide an auxiliary
source clock for some internal target devices: IrDA, UART, MII, and the RAS IPs.
If y is integer multiple of x, the clock generated will have less jitter.
The output frequency originated from every clock synthesizer is given from the following
equations:
X
F out 1 = ⎛⎝ Fin × ----⎞⎠ ⁄ 2
Y
X
F out 2 = ⎛⎝ Fin × ----⎞⎠
Y
with Y < 4096; X < Y/2; Fin = (ref. Clock synthesizer input frequency table)
For further details, please refer to Chapter 12: Reset and clock generator (RCG).
The clock synthesizer input frequency is detailed in the next table:
Table 533. Clock Synthesizer input frequency
Clock synthesizer input frequency
Clock synthesizer
Clock source
Clock source
PLL1_CLKOUT PLL2_CLKOUT
Description
IRDA
x
Clock provided from Pll1_clkout
UART0
x
Clock provided from Pll1_clkout
Doc ID 022642 Rev 3
465/584
System configuration registers (MISC)
RM0321
Table 533. Clock Synthesizer input frequency (continued)
Clock synthesizer input frequency
Clock synthesizer
Clock source
Clock source
PLL1_CLKOUT PLL2_CLKOUT
MAC
Description
Programmable source clock (Ref.
MAC_CFG_REG register description).
x
RAS_CLK_SYNT1
x
Clock provided from Pll1_clkout
RAS_CLK_SYNT2
x
Clock provided from Pll1_clkout
RAS_CLK_SYNT3
x
x
Source clock selected from
‘ras_synt34_clksel’ register field
RAS_CLK_SYNT4
x
x
Source clock selected from
‘ras_synt34_clksel’ register field
Table 534. Auxiliary clock synthesizer register bit assignments
Reserved
0x054 to 0x05C
IRDA_CLK_SYNT_CFG
0x060
UART0_CLK_SYNT_CFG
0x064
MAC_CLK_SYNT_CFG
0x068
RAS_CLK_SYNT1_CFG
0x06C
RAS_CLK_SYNT2_CFG
0x070
RAS_CLK_SYNT3_CFG
0x074
0x078
RAS_CLK_SYNT4_CFG
466/584
Bit
Name
Reset
value
Description
[31]
synt_clk_enb
1’h0
Enable clock synthesizer functionality (.)
1’b0: Disable clock synthesizer.
1’b1: Enable clock synthesizer.
[30]
synt_clkout_sel 1’h0
Output Clock Synthesizer selection:
1’b0: Output frequency derived from Fout 1 equation.
1’b1: Output frequency derived from Fout2 equation.
[29:28]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[27:16]
synt_xdiv
12’h0
X_(11:0) clock synthesizer constant division: X<Y/2
[15:12]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[11:00]
synt_ydiv
12’h0
Y_(11:0) clock synthesizer constant division: Y < 4096
Doc ID 022642 Rev 3
RM0321
28.2.14
System configuration registers (MISC)
Soft reset control registers
PERIP1_SOF_RST register
The PERIP1_SOF_RST is an R/W register used to control the peripheral soft reset
functionality.
Table 535. PERIP1_SOF_RST register bit assignments
PERIP1_SOF_RST Register
0x038
Bit
Name
Reset
Value
Description
[31]
C3_reset
1’h1
1’b0: Disable C3 reset.
1’b1: Active C3 reset.
[30]
RFU
-
-
[29]
ddr_core_enbr 1’h0
DDR memory controller reset enable; functionality asserted setting
‘0’ the PERIPH1_LOC_RST [27] after a previous write with
PERIPH1_LOC_RST [29,27]=11:
1’b0: Disable DDR core soft reset command.
1’b1: Enable DDR core soft reset command.
[28]
ram_swrst
1’h1
1’b0: Disable Basic subsystem RAM reset.
1’b1: Active Basic subsystem RAM reset command.
[27]
ddr_swrst
1’h0
1’b0: Disable DDR core controller reset.
1’b1: Active DDR core controller reset.
Note: Command allowed when ddr_core_enbr bit is active high.
[26]
usbh1_ehci_s
wrst
1’h1
1’b0: Disable USB ehci host reset.
1’b1: Active USB ehci host reset.
[25]
usbh1_ohci_s
wrst
1’h1
1’b0: Disable USB ohci host reset.
1’b1: Active USB ohci host reset.
[24]
usbdev_swrst
1’h1
1’b0: Disable USB device reset.
1’b1: Active USB device reset.
[23]
MAC_swrst
1’h1
1’b0: Disable MAC Ethernet reset.
1’b1: Active MAC Ethernet reset.
[22]
RFU
1’h1
Reserved for future use (Write don’t care - Read return zeros).
[21]
smi_swrst
1’h0
1’b0: Disable serial Flash controller reset.
1’b1: Active serial Flash controller reset.
[20]
rom_swrst
1’h0
1’b0: Disable ROM controller reset.
1’b1: Active ROM controller reset.
[19]
DMA_swrst
1’h1
1’b0: Disable DMA controller reset.
1’b1: Active DMA controller reset.
[18]
gpio_swrst
1’h1
1’b0: Disable GPIO reset.
1’b1: Active GPIO reset.
[17]
rtc_swrst
1’h1
1’b0: Disable real time controller reset.
1’b1: Active real time controller reset.
Doc ID 022642 Rev 3
467/584
System configuration registers (MISC)
RM0321
Table 535. PERIP1_SOF_RST register bit assignments (continued)
PERIP1_SOF_RST Register
Reset
Value
0x038
Bit
Name
[16]
RFU
[15]
adc_swrst
1’h1
1’b0: Disable ADC controller reset.
1’b1: Active ADC controller reset.
[14]
RFU
1’h1
Reserved for future use (Write don’t care - Read return zeros).
[13]
RFU
[12]
gptm3_swrst
1’h1
1’b0: Disable general purpose timer-3 reset.
1’b1: Active general purpose timer-3 reset.
[11]
gptm2_swrst
1’h1
1’b0: Disable general purpose timer-2 reset.
1’b1: Active general purpose timer-2 reset.
[10]
firda_swrst
1’h1
1’b0: Disable irda reset.
1’b1: Active irda reset.
[09]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[08]
jpeg_swrst
1’h1
1’b0: Disable JPEG codec reset.
1’b1: Active JPEG codec reset.
[07]
i2c_swrst
1’h1
1’b0: Disable I2C reset.
1’b1: Active I2C reset.
[06]
RFU
[05]
ssp_swrst
1’h1
1’b0: Disable SPI reset.
1’b1: Active SPI reset.
[04]
RFU
1’h1
Reserved for future use (Write don’t care - Read return zeros).
[03]
uart_swrst
1’h0
1’b0: Disable UART reset.
1’b1: Active UART reset.
[02]
RFU
1’h1
Reserved for future use (Write don’t care - Read return zeros).
[01]
arm1_swrst
1’h0
1’b0: Disable ARM subsystem reset.
1’b1: Active ARM subsystem reset
Note: Command allowed when arm1_enbr bit is active high.
1’h0
Arm1 reset enable; functionality asserted setting ‘0’ the
PERIPH1_LOC_RST[1] after a previous write with
PERIPH1_LOC_RST [1,0]=11:
1’b0: Disable ARM soft reset command.
1’b1: Enable ARM soft reset command.
[00]
arm1_enbr
Description
Reserved for future use.
Reserved for future use.
Reserved for future use.
RAS_SOF_RST register
The RAS_SOF_RST is an R/W register which controls the internal programmable logic soft
reset functionality.
468/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 536. RAS_SOF_RST register bit assignments
RAS_SOF_RST Register
Bit
Name
[31:16
RFU
]
0x040
Reset
Value
Description
-
Reserved for future use (Write don’t care - Read return zeros).
[15]
pl_gpck4_swrst 1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[14]
pl_gpck3_swrst 1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[13]
pl_gpck2_swrst 1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[12]
pl_gpck1_swrst 1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[11]
ras_synt4_swr
st
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[10]
ras_synt3_swr
st
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[09]
ras_synt2_swr
st
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[08]
ras_synt1_swr
st
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[07]
pll2_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[06]
clk125M_swrst 1’h1
This bit is always 1 since GBIT Ethernet is not supported
[05]
clk48M_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[04]
Clk24M_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[03]
Clk32K_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[02]
pclkappl_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[01]
pll1_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
[00]
hclk_swrst
1’h1
1’b0: Disable reset command.
1’b1: Active reset command.
Doc ID 022642 Rev 3
469/584
System configuration registers (MISC)
28.2.15
RM0321
SoC configuration basic parameters
ICM1-8_ARB_CFG register
The ICM1-8_ARB_CFG is a group of R/W registers which configure the embedded
interconnection matrix arbitration protocol and the priority level of each master; the next
table shows the relationship of the ICMs to their corresponding logic domains.
Table 537. Interconnection matrix
Interconnection Matrix
ICM properties
Logic domain
ICM number
ICM Master number
ICM-1
3
Low speed subsystem
ICM-2
3
Application subsystem
ICM-3
2
Basic subsystem
ICM-4
2
High speed subsystem
ICM-5
2
Memory controller port-2
ICM-6
2
RAS_F port
ICM-7
4
Memory controller port-3
ICM-8
2
Memory controller port-4
Table 538. ICM 1-9_ARB_CFG register bit assignments
ICM1_ARB_CFG Register
0x07C
ICM2_ARB_CFG
0x080
ICM3_ARB_CFG
0x084
ICM4_ARB_CFG
0x088
ICM5_ARB_CFG
0x08C
ICM6_ARB_CFG
0x090
ICM7_ARB_CFG
0x094
ICM8_ARB_CFG
0x098
Bit
[31]
470/584
Name
mtx_arb_type
Reset Value
Description
1’h0
Interconnect matrix arbitration Protocol definition:
1’b0: Fixed priority arbitration type; the arbitration
policy is done in accordance with the priority level
definition of each master (level 0 is the highest
priority).
1’b1: Round robin arbitration type.
[30:28]
mxt_rndrb_pry_lyr
3’h0
This field specifies the priority starting level (from 0
to 7) used for round robin arbitration protocol.
This field is not relevant in case of fixed arbitration
scheme.
[27:24]
RFU
-
Reserved for future use (Write don’t care - Read
return zeros)
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 538. ICM 1-9_ARB_CFG register bit assignments (continued)
ICM1_ARB_CFG Register
0x07C
ICM2_ARB_CFG
0x080
ICM3_ARB_CFG
0x084
ICM4_ARB_CFG
0x088
ICM5_ARB_CFG
0x08C
ICM6_ARB_CFG
0x090
ICM7_ARB_CFG
0x094
ICM8_ARB_CFG
0x098
Bit
Name
Reset Value
Description
[23:21]
mtx_fix_pry_lyr7
3’h0
Reserved field not applicable for current silicon
version.
[20:18]
mtx_fix_pry_lyr6
3’h0
Reserved field not applicable for current silicon
version.
[17:15]
mtx_fix_pry_lyr5
3’h0
Reserved field not applicable for current silicon
version.
[14:12]
mtx_fix_pry_lyr4
3’h0
Reserved field not applicable for current silicon
version.
[11:09]
mtx_fix_pry_lyr3
3’h0
Master layer-3 fixed priority number level (from 0 to
7). This field is relevant only for ICM7_ARB_CFG
registers. (ref. Fixed priority number level definition
table).
[08:06]
mtx_fix_pry_lyr2
3’h0
Master layer-2 fixed priority number level (from 0 to
7) (ref. Fixed priority number level definition table).
[05:03]
mtx_fix_pry_lyr1
3’h0
Master layer-1 fixed priority number level (from 0 to
7) (ref. Fixed priority number level definition table).
Master layer-0 fixed priority number level (from 0 to
7); (ref. next table).
Fixed priority level definition table
[02:00]
mtx_fix_pry_lyr0
3’h0
Control Bit
Description
3’b000
Priority level 0
(highest)
3’b001
Priority level 1
3’b010
Priority level 2
3’b011
Priority level 3
3’b100
Priority level 4
3’b101
Priority level 5
3’b110
Priority level 6
3’b111
Priority level 7
(lowest)
Doc ID 022642 Rev 3
471/584
System configuration registers (MISC)
Note:
RM0321
1
Field ignored in case of round-robin arbitration type.
2
In case several masters share the same priority level the lowest master number is granted.
DMA_CHN_CFG register
The DMA_CHN_CFG is an R/W register which configures the DMA channel assignment
scheme among different requester agents. Two basic assignment schemes are supported in
the current silicon version:
●
DMA_Sch_0: Core logic domain
●
DMA_Sch_1: RAS domain
Table 539. DMA_CHN_CFG register bit assignment
DMA_CHN_CFG Register
Bit
Name
0x0A0
Reset
Value
Description
DMA channel configuration scheme: this field
configures each DMA channel assignment (the
configuration value ‘10’ and ‘11’ are reserved and not
applicable for current silicon version).
Please refer to Table 540: RAS DMA configuration
for the Sch_1 channel assignments.
(Sch_0)00
(Sch_1)01
[31:30]
dma_cfg_chan 15
2’h0
15
FROM_JPEG
RAS_7 Tx
[29:28]
dma_cfg_chan 14
2’h0
14
TO_JPEG
RAS_7 Rx
[27:26]
dma_cfg_chan 13
2’h0
13
ADC
RAS_6 Tx
[25:24]
dma_cfg_chan 12
2’h0
12
IrDA Rx/Tx
RAS_6 Rx
[23:22]
472/584
CHAN
dma_cfg_chan 11
2’h0
11
I
2C
Tx
RAS_5 Tx
2C
[21:20]
dma_cfg_chan 10
2’h0
10
I
Rx
RAS_5 Rx
[19:18]
dma_cfg_chan 09
2’h0
09
SSP0_Tx
RAS_4 Tx
[17:16]
dma_cfg_chan 08
2’h0
08
SSP0_Rx
RAS_4 Rx
[15:14]
dma_cfg_chan 07
2’h0
07
Reserved
RAS_3 Tx
[13:12]
dma_cfg_chan 06
2’h0
06
Reserved
RAS_3 Rx
[11:10]
dma_cfg_chan 05
2’h0
05
Reserved
RAS_2 Tx
[09:08]
dma_cfg_chan 04
2’h0
04
Reserved
RAS_2 Rx
[07:06]
dma_cfg_chan 03
2’h0
03
UART0 Tx
RAS_1 Tx
[05:04]
dma_cfg_chan 02
2’h0
02
UART0 Rx
RAS_1 Rx
[03:02]
dma_cfg_chan 01
2’h0
01
Reserved
RAS_0 Tx
[01:00]
dma_cfg_chan 00
2’h0
00
Reserved
RAS_0 Rx
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 540. RAS DMA configuration
DMA line
RAS IP request
RAS_DMA_REQ[0]
SSP1_RX
RAS_DMA_REQ[1]
SSP1_TX
RAS_DMA_REQ[2]
SSP2_RX
RAS_DMA_REQ[3]
SSP2_TX
RAS_DMA_REQ[4]
UART1_RX
RAS_DMA_REQ[5]
UART1_TX
RAS_DMA_REQ[6]
UART2_RX
RAS_DMA_REQ[7]
UART2_TX
RAS_DMA_REQ[8]
I2C1_RX
RAS_DMA_REQ[9]
I2C1_TX
RAS_DMA_REQ[10]
I2C2_RX
RAS_DMA_REQ[11]
I2C2_TX
RAS_DMA_REQ[12]
I2S_RX
RAS_DMA_REQ[13]
I2S_TX
RAS_DMA_REQ[14]
RS485_RX
RAS_DMA_REQ[15]
RS485_TX
USB2_PHY_CFG register
The USB2_PHY_CFG is a R/W register which configures the USB2 triple Phy Basic
parameters.
Table 541. USB2_PHY_CFG register bit assignments
USB2_PHY_CFG Register
0x0A4
Bit
Name
Reset Value
Description
[31:04]
RFU
-
Reserved for future use.
[03]
usbh_overcur
1’h0
USB host over-current: enable USB controller to enter
in power down state when an electrical overcurrent
condition is detected on the corresponding USB bus:
To check
1’b0: Disable functionality
1’b1: Enable over-current detection functionality.
[02:01]
RFU
-
Reserved for future use.
1’h0
This bit controls the state of PLL blocks when in
Suspend mode
1’b0: PLL blocks powered up during Suspend mode
1’b1: PLL blocks powered down during Suspend mode.
[00]
PLL_pwdn
Doc ID 022642 Rev 3
473/584
System configuration registers (MISC)
RM0321
MAC_CFG_CTR register
The MAC_CFG_CTR is an R/W register which configures the MAC Ethernet internal source
clock.
Table 542. MAC_CFG_CTR register bit assignments
MAC_CFG_CTR Register
0x0A8
Bit
Name
Reset Value
Description
[31:05]
RFU
-
Reserved for future use (Write don’t care - Read
return zeros).
1’h0
MAC GMII/MII clock synthesizer enable:
1’b0: Disable MAC clock synthesizer: GMII/MII
clock is provided in agree with the MAC_clk_sel
source clock definitions.
1’b1: Enable MAC clock synthesizer: GMII/MII
clock is provided from clock synthesizer logic
(ref. MAC_CLK_SYNT register description).(1)
[04]
MAC_synt_enb
MAC internal source clock definition(1)
MII source clock definition table
[03:02]
[01]
[00]
MAC_clk_sel
RFU
mili_reverse
2’h0
Control
Bit
Source
clock
Description
2’b00
External
MII_txclk25’ signal
2’b01
Internal
PLL2 output clock
2’b10
External
24 MHz oscillator
2’b11
-
Reserved
-
Reserved for future use (Write don’t care - Read
return zeros)
1’h0
MII normal/reverse mode configuration type:
1’b0: MII normal mode (external Eth. PHY
connection): both Txclk and Rxclk bidirectional
signals are configured with input direction and
the MII clocks are provided from the external
Phy.
1’b1: MII reverse mode (MII to MII direct
connection): both Txclk and RXclk bidirectional
signals are configured with output direction and
the MII clock are provided from the internal
logic.
1. MII frequency definition should be compliant with IEEE-803.3 std: MII Txclk/Rxclk 25/2.5 MHz.
28.2.16
Special configuration parameters
Powerdown_CFG_CTR register
The POWERDOWN_CFG_CTR is an R/W register which configures the interrupt wakeup
type used in conjunction with the dynamic power down functionality.
474/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 543. Powerdown_CFG_CTR register bit assignments
Powerdown_CFG_CTR Register
Bit
Name
Reset
Value
[31:01]
RFU
-
[00]
wakeup_fiq_enb
1’h0
0x0E0
Description
Reserved for future use (Write don’t care - Read return zeros)
Wakeup interrupt type (Firq/Irq) definition; this field selects the
interrupt type detected from processor-1 to restore the normal
operating frequency from the power down state (switch from
sleep to doze/low speed operating mode):
1’b0: Irq interrupt type: the peripheral interrupt requests lines
are also used as a wakeup source event increasing the overall
interrupt latency time.
1’b1: Firq interrupt type: single global interrupt request line
which ensure both fast recovery time from power down state
and the best peripheral interrupt response time since the
wakeup SW interrupt service routine is centralized.
The wakeup interrupt vector is defined in the processor-1
interrupt table line-15.(1)
1. IRQ interrupt type should be masked before to enter in sleep mode,
COMPSSTL_1V8_CFG/DDR_2V5_COMPENSATION register
The COMPSSTL_1V8_CFG/DDR_2V5_COMPENSATION is R/W registers which configure
the internal SSTL compensation cells parameters.
Table 544. COMPSSTL_1V8_CFG/DDR_2V5_COMPENSATION register bit
assignments
COMPSSTL_1V8_CFG Register
0x0E4
Bit
Name
Reset Value Description
[31]
TQ
1’h0
It enables IDDq mode.
[30:24]
rasrc
7'h78
Writing code compensation parameter: field sampled from
the compensation macro-cell during Read operating mode
command (ref. Compensation cell operating mode table).
[23]
RFU
-
Reserved for future use (Write don’t care - Read return zeros)
[22:16]
nasrc
-
Read code compensation parameter (RO); this field is
qualified from ‘sts_ok’ active high.
[15:05]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[04]
COMPOK
1’h0
Valid code compensation (RO); field actives high in normal
mode when the measured code is available on the
compensation bus nasrc.
1’h1
Compensation cell internal/external reference resistance
definition:
1’b0: Internal reference resistor
1’b1: External reference resistor: used to improve the
accuracy of compensation code value.
[03]
accurate
Doc ID 022642 Rev 3
475/584
System configuration registers (MISC)
RM0321
Table 544. COMPSSTL_1V8_CFG/DDR_2V5_COMPENSATION register bit
assignments
COMPSSTL_1V8_CFG Register
0x0E4
Bit
Name
Reset Value Description
[02]
freeze
1’h0
Freeze command: when high freezes the current calculated
value of compensation bus.
[01]
comptq
1’h0
Compensation cell internal command parameter (ref.
Compensation cell operating mode table)
[00]
compen
1’h0
Compensation cell internal command parameter (ref.
Compensation cell operating mode table).
COMPCOR_3V3_CFG register
The COMPCOR_3V3_CFG is a R/W register which configures the internal CORE
compensation cell parameters.
Table 545. COMPCOR_3V3_CFG register bit assignments
COMPCOR_3V3_CFG Register
476/584
0x0EC
Bit
Name
Reset Value
Description
[31]
TQ
1’h0
It enables IDDq mode.
[30:24]
RASRC
7'h78
Writing code compensation parameter sample from the
compensation macro-cell during Read operating mode
(ref. Compensation cell operating mode table).
[23]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[16:22]
NASRC
7'h0
Copy of the code on compensation bus (Note that bit 30
of RASRC is mapped on bit 16 and so on)
[15:05]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[04]
COMPOK
1’h0
Valid code compensation (RO); field actives high in
normal mode when the measured code is available on
the compensation bus nasrc.
[03]
ACCURATE
1’h0
Compensation cell internal/external reference
resistance definition:
1’b0: Internal reference resistor
1’b1: External reference resistor: used to improve the
accuracy of compensation code value.
[02]
FREEZE
1’h0
Freeze command: when high freezes the current
calculated value of compensation bus.
[01]
COMPTQ
1’h1
Compensation cell internal command parameter (ref.
Compensation cell operating mode table)
[00]
COM PEN
1’h0
It selects macro_cell operating modes.
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
DDR_PAD register
The DDR_PAD is a R/W register which configures the SSTL pad internal parameters.
Table 546. DDR_PAD register bit assignments
DDR_PAD Register
0x0F0
Bit
Name
Reset
Value
Description
[31:19]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[18:15]
DDR_SW-mode[3:0]
4’h0
When ‘0110’ the selection of DDR2/DDR (Low power)
is decided by SW. In all other cases, the selection is
decided by the value of DDR2_EN pad.
-
It contains the value decided in the external pad
DDR2_EN to select DDR (Low Power) or DDR2 (RO)
1’b0: DDR2
1’b1: DDR Low Power
[14]
DDR_EN_PAD
[13]
REFSSTL
1’h1
Internal/External SSTL common reference voltage
definition:
1’b0: Internal reference voltage
1’b1: External reference voltage to be applied on
DDR_MEM_REF signal
[12]
GATE_OPEN_mode
1’h1
It selects the internal (1) or external (0) gate open
mode. It is connected to stp_asic IP.
[11]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[10]
ENZI
1’h0
Input buffer enable. Active low, connected to ENZI of
all the pads.
[09]
DQS_PDN_sel
1’h1
DQS Pull down. It is connected to PDCLK of SSTL
differential pads.
[08]
DQS_PU_sel
1’h0
DQS pull up, it is connected to PUCLK of SSTL
different pads.
[07]
CLK_PDN_sel
1’h1
Programmable CLK Pull down functionality connected
with both PDCLK and PCLKB signals of SSTL
different pads (ref. Pull-up/down configuration table)
[06]
CLK_PU_sel
1’h0
Programmable CLK Pull up functionality connected
with both PUCLK and PUCLKB signal of SSTL
different pads (ref. Pull-up/down configuration table)
Doc ID 022642 Rev 3
477/584
System configuration registers (MISC)
RM0321
Table 546. DDR_PAD register bit assignments (continued)
DDR_PAD Register
Bit
0x0F0
Reset
Value
Name
Description
Enable active Pull Down for SE SSTL pads (ref. next
table)
Pull/up down configuration table
[05]
[04]
28.2.17
PDN_sel
1’h1
PU-sel
Pull-up
Pull-Down
Description
0
1
Pull-up/down not
actives
1
1
Active pull-up
0
0
Active pull-down
1
0
Forbidden
1’h0
Pull up activation for SE SSTL pads (ref. Pull-up/down
configuration table)
SSTL pad drive strength mode: the overall drive
strength picture is detailed here below.
1’b0: Strong drive strength.
1’b1: Weak drive strength.
This bit changes the output impedance of the pad.
[03]
S_W_mode
1’h1
[02]
PROG_a
1’h0
[01]
PROG_b
1’h1
[00]
DDR_LOW_POWER_
1’h0
DDR2_mode
Combination of these bits selects the speed of
operation of PAD, 00->200 MHz, 01->266 MHz, 10>333 MHz, 11->Prohibited.
It selects DDR2(0) or DDR low power (1) mode.
Memory BIST execution control registers
BIST1_CFG_CTR register
The BIST1_CFG_CTR is an R/W register which configures and controls the internal core
memory BIST execution at the functional speed.
Table 547. BIST1_CFG_CTR register bit assignments
BIST1_CFG_CTR Register
478/584
0x0F4
Bit
Name
Reset
Value
Description
[31]
bist1_res_rst
1’h0
Reset status register result (BIST1_STS_RES):
1’b0: Disable reset status.
1’b1: Active reset status.
[30:29}
RFU
-
Reserved for future use (Write don’t care - Read return zeros)
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 547. BIST1_CFG_CTR register bit assignments (continued)
BIST1_CFG_CTR Register
Bit
[28]
Name
bist1_rst
0x0F4
Reset
Value
Description
1’h0
Reset BIST engine collar:
1’b0: Disable reset.
1’b1: Active reset.
Memory BIST interface command: command code and BIST
engine actions are detailed in the next table
Memory Bist Command Table
[23:15]
RFU
-
Debug
Iddq
1’h0
1’h0
1’h0
1’h0
Ret
bist1-tm
bist1_debug
bist1_ret
bist1_iddq
Tm
[27]
[26]
[25]
[24]
Peripherals
Rbacktx
Bist command
0
0
1
0
0
Run BIST
0
0
0
0
1
Scan collar
0
1
0
0
0
Read 0 retention test
0
1
0
0
1
Read 1 retention test
0
0
0
1
0
Iddq fill 0
0
0
0
1
1
Iddq fill 0
0
0
1
1
0
Stable mode
0
0
0
0
0
Transparent mode
Rbact reserved command.
Doc ID 022642 Rev 3
479/584
System configuration registers (MISC)
RM0321
Table 547. BIST1_CFG_CTR register bit assignments (continued)
BIST1_CFG_CTR Register
Bit
Name
0x0F4
Reset
Value
Description
15’h0
Run BIST execution command (ref. Memory BIST command):
1’b0: Disable BIST command
1’b1: Run BIST command: memory BIST execution can be done
either in single or group mode (ref. next table)
Run BIST command table
[14:00]
rbact1
(14:00)
Rbact
Memory cut
Peripherals
[14]
ST_DPHS_2048X32m8_Lb
Low speed shrd men
[13]
ST_DPHD_96X128m4_b
(HWACC)
Application subssystem (HWACC)
[12]
ST_SPREG_384X12m4_L
JPEG HUFFENC
[11]
ST_SPREG_416X8m4_L
JPEG DHTMEM
[10]
ST_SPREG_256X8m4_L
JPEG QMEM
[09]
ST_SPREG_96X11m4_L
JPEG ZIGRAM_2
[08]
ST_SPREG_96X11m4_L
JPEG ZIGRAM_1
[07]
ST_DPHD_96X11m4_L
JPEG DCTRAM
[06]
ST_DPREG16X32m2_b
JPEG CTRL TX Fifo
[05]
ST_DPREG_16X32m2
JPEG CTRL RX Fifo
[04]
ST_DPREG_1024X35m4
Mac_rxfifo
[03]
ST_DPREG_512X35m4
Mac_txfifo
[02]
ST_DPHS_1024X36m8_L
Usb_device
[01]
RFU (not used)
[00]
ST_DPHD_256X32m4_L
Usb_host
BIST2_CFG_CTR register
The BIST2_CFG_CTR is an R/W register which configures and controls the RAS sub-group
memory BIST execution at the functional speed.
Table 548. BIST2_CFG_CTR register bit assignments
BIST2_CFG_CTR Register
480/584
0x0F8
Bit
Name
Reset
Value
Description
[31]
bist2_res_rst
1’h0
Reset status register result (BIST2_STS_RES)
1’b0: Disable reset
1’b1: Active reset
[30:29]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 548. BIST2_CFG_CTR register bit assignments
BIST2_CFG_CTR Register
Bit
Name
0x0F8
Reset
Value
Description
[28]
bist2_rst
1’h0
Reset BIST engine collar:
1’b0: Disable reset.
1’b1: Active reset
[27]
[26]
[25]
[24]
bist2_tm
bist2_debug
bist2_ret
bist2_iddq
1’h0
1’h0
1’h0
1’h0
Memory BIST interface command: command code and
BIST engine actions are detailed in the Memory BIST
Command Table
[23:04]
RFU
Run BIST execution command (ref. Memory BIST
command):
1’b0: Disable BIST command.
1’b1: Run BIST command: memory BIST execution can be
done either in single or group mode (ref. next table)
Run BIST command table
[03:00]
rbact2(03:00)
4’h0
Rbact
Memory Cut
Peripherals
[03]
ST_SPREG_2048 RAS Local Data
X32m8_Lb
Buffer-0
[02]
ST_DPHS_1024X RAS Local Data
32m8_Lb
Buffer - 1
[01]
ST_DPHD_128X8 RAS HWACC
m4_L
Data Buffer
[00]
ST_DPHD_96X12 RAS HWACC
8m4_b (RAS)
Data Descriptor
BIST3_CFG_CTR register
The BIST3_CFG_CTR is an R/W register which configures and controls the RAS-2 subgroup memory BIST execution at the functional speed.
Table 549. BIST3_CFG_CTR register bit assignments
BIST3_CFG_CTR Register
Bit
Name
0x0FC
Reset Value
Description
[31]
bist3_res_rst
1’h0
Reset status register result (BIST3_STS_RES)
1’b0: Disable reset
1’b1: Active reset.
[30:29]
RFU
-
Reserved for future use (Write don’t care - Read
return zeros).
Doc ID 022642 Rev 3
481/584
System configuration registers (MISC)
RM0321
Table 549. BIST3_CFG_CTR register bit assignments
BIST3_CFG_CTR Register
0x0FC
Bit
Name
Reset Value
Description
[28]
bist3_rst
1’h0
Reset BIST engine collar:
1’b0: Disable reset.
1’b1: Active reset.
[27]
[26]
[25]
[24]
bist3_tm
bist3_debug
bist3_ret
bist3_iddq
1’h0
1’h0
1’h0
1’h0
Memory BIST interface command:command
code and BIST engine actions are detailed in the
Memory Bist Command Table
[23:03]
RFU
Run BIST execution command (ref. Memory BIST
command):
1’b0: Disable BIST command.
1’b1: Run BIST command: memory BIST
execution can be done either in single or group
mode (ref. next table)
Run BIST command table
[02:00]
rbact3(02:00)
3’h0
Rbact
Memory Cut
Peripherals
[02]
ST_SPHDL_2
048X8m16
RAS Local
Data Buffer - 2
[01]
RAS Local
ST_SPREG_1
Data Buffer 024X32m4_Lb
3_0
[00]
ST_SPREG_5
12X32m4_Lb
RAS Local
Data Buffer 3_1
BIST4_CFG_CTR register
The BIST4_CFG_CTR is an R/W register which configures and controls the ARM internal
memory BIST execution at the functional speed.
Table 550. BIST4_CFG_CTR register bit assignments
BIST4_CFG_CTR Register
482/584
0x100
Bit
Name
Reset Value
Description
[31]
bist4_res_rst
1’h0
Reset status register result (BIST4_STS_RES):
1’b0: Disable reset
1’b1: Active reset
[30:29]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[28]
bist4_rst
1’h0
Reset BIST engine collar.
1’b0: Disable reset.
1’b1: Active reset.
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 550. BIST4_CFG_CTR register bit assignments (continued)
BIST4_CFG_CTR Register
0x100
Bit
Name
Reset Value
Description
[27]
[26]
[25]
[24]
bist4_tm
bist4_debug
bist4_ret
bist4_iddq
1’h0
1’h0
1’h0
1’h0
Memory BIST interface command:command code and
BIST engine actions are detailed in the Memory BIST
Command Table
[23:08]
RFU
Run BIST execution command (ref. Memory BIST
command):
1’b0: Disable BIST command.
1’b1: Run BIST command execution.
[07:00]
rbact4
8’h0
RBACT
Memory Cut
[00]
A926CM_rbact_dcache
[01]
A926CM_rbact_dcache
[02]
A926CM_rbact_dtag
[03]
A926CM_rbact_dvalid
[04]
A926CM_rbact_icache
[05]
A926CM_rbact_itag
[06]
A926CM_rbact_ivalid
[07]
A926CM_rbact_mmu
BIST1_STS_RES register
The BIST1_STS_RES is an RO register which returns the functional BIST execution results
for the internal core memory group.
Table 551. BIST1_STS_RES register bit assignments
BIST1_STS_RES Register
0x108
Bit
Name
Reset
Value
Description
[31]
bist1_end
-
End memory BIST 1 execution:
1’b0: BIST execution pending.
1’b1: End memory BIST execution.
[30:24]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[23:15]
RFU
-
Reserved for BIST bad extension field.
Doc ID 022642 Rev 3
483/584
System configuration registers (MISC)
RM0321
Table 551. BIST1_STS_RES register bit assignments
BIST1_STS_RES Register
Bit
Name
0x108
Reset
Value
Description
BIST execution result (BIST bad signal status):
1’b0: BIST execution ok.
1’b1: BIST execution fails (ref. next table)
Run BIST status table
[14:00]
bbad1(14:00)
Rbact
Memory cut
[14]
ST_DPHS_2048X3
Low speed shrd mem
2m8_Lb
[13]
ST_DPHD_96X128 Application subsystem
m4_b (HWACC)
(HWACC)
[12]
ST_SPREG_384X1
JPEG HUFFENC
2m4_L
[11]
ST_SPREG_416X8
JPEG DHTMEM
m4_L
[10]
ST_SPREG_256X8
JPEG QMEM
m4_L
[09]
ST_SPREG_96X11
JPEG ZIGRAM_2
m4_L
[08]
ST_SPREG_96X11
JPEG ZIGRAM_1
m4_L
[07]
ST_DPHD_64X15
m4_L
JPEG DCTRAM
[06]
ST_DPREG_16X3
2m2_b
JPEG CTRL TX Fifo
[05]
ST_DPREG_16X3
2m2
JPEG CTRL RX Fifo
[04]
ST_DPREG_1024
X35m4
Mac_rxfifo
[03]
ST_DPREG_512X
35m4
Mac_txfifo
[02]
ST_DPHS_1024X3
Usb_device
6m8_L
[01]
RFU (not used)
[00]
ST_DPHD_256X32
Usb_host
m4_L
-
Peripherals
BIST2_STS_RES register
The BIST2_STS_RES in an RO register which returns the functional BIST execution results
for the RAS-1 memory sub-group.
484/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 552. BIST2_STS_RES register bit assignments
BIST2_STS_RES Register
0x10C
Bit
Name
Reset
Value
Description
[31]
bist2_end
-
End memory BIST2 execution:
1’b0: BIST execution pending
1’b1: End memory BIST execution.
[30:24]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[23:15]
RFU
-
Reserved for BIST bad extension field.
Doc ID 022642 Rev 3
485/584
System configuration registers (MISC)
RM0321
Table 552. BIST2_STS_RES register bit assignments (continued)
BIST2_STS_RES Register
Bit
Name
0x10C
Reset
Value
Description
BIST execution result (BIST bad signal status):
1’b0: BIST execution ok.
1’b1: BIST execution fails (ref. next table)
Bist failure table
[14:00]
bbad2(14:00)
Bbad
Memory Cut
[14]
ST_SPREG_2048
Ras buf. Sp4Kx8_2
x32m8_Lb
[13]
ST_SPREG_2048
Ras buf. Sp8Kx8_1
x32m8_Lb
[12]
ST_DPHS_1024x
32m8_Lb
Ras buf. Sp4Kx8_4
[11]
ST_DPHS_1024x
32m8_Lb
Ras buf. Sp4Kx8_3
[10]
ST_DPHS_1024x
32m8_Lb
Ras buf. Dp4Kx8_2
[09]
ST_DPHS_1024x
32m8_Lb
Ras buf. Dp4Kx8_1
[08]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_8
m4_L
[07]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_7
m4_L
[06]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_6
m4_L
[05]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_5
m4_L
[04]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_4
m4_L
[03]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_3
m4_L
[02]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_2
m4_L
[01]
ST_DPHD_128x8
Ras hwacc.SpDp128x8_1
m4_L
[00]
ST_DPHD_96x12
Ras hwdescr.Dp96x128
8m4_b
-
Peripherals
BIST3_STS_RES register
The BIST3_STS_RES is an RO register which returns the functional BIST execution results
for the RAS-2 memory sub-group.
486/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 553. BIST3_STS_RES register bit assignments
BIST3_STS_RES Register
0x110
Bit
Name
Reset
Value
Description
[31]
bist3_end
-
End memory BIST3 execution:
1’b0: BIST execution pending
1’b1: End memory BIST execution.
[30:14]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
BIST execution result (BIST bad signal status):
1’b0: Bist execution ok.
1’b1: Bist execution fails (ref. next table)
Bist failure table
[13:00]
bbad3(13:00)
-
Bbad
Memory Cut
[13]
ST_SPHDL_2048
Ras buf. Sp2Kx8_8
x8m16
[12]
ST_SPHDL_2048
Ras buf. Sp2Kx8_7
x8m16
[11]
ST_SPHDL_2048
Ras buf. Sp2Kx8_6
x8m16
[10]
ST_SPHDL_2048
Ras buf. Sp2Kx8_5
x8m16
[09]
ST_SPHDL_2048
Ras buf. Sp2Kx8_4
x8m16
[08]
ST_SPHDL_2048
Ras buf. Sp2Kx8_3
x8m16
[07]
ST_SPHDL_2048
Ras buf. Sp2Kx8_2
x8m16
[06]
ST_SPHDL_2048
Ras buf. Sp2Kx8_1
x8m16
[05]
ST_SPREG_1024
Ras buf. Sp4Kx8_2
x32m4_Lb
[04]
ST_SPREG_1024
Ras buf. Sp4Kx8_1
x32m4_Lb
[03]
ST_SPREG_512x
Ras buf. Sp2Kx8_4
32m4_Lb
[02]
ST_SPREG_512x
Ras buf. Sp2Kx8_3
32m4_Lb
[01]
ST_SPREG_512x
Ras buf. Sp2Kx8_2
32m4_Lb
[00]
ST_SPREG_512x
Ras buf. Sp2Kx8_1
32m4_Lb
Doc ID 022642 Rev 3
Peripherals
487/584
System configuration registers (MISC)
RM0321
BIST4_STS_RES register
The BIST4_STS_RES is an RO register which returns the functional BIST execution results
for the ARM internal memory pool.
Table 554. BIST4_STS_RES register bit assignments
BIST4_STS_RES Register
Bit
488/584
Name
0x114
Reset
Value
Description
[31]
bist4_end
-
End memory BIST4 execution:
1’b0: BIST execution pending
1’b1: End memory BIST execution.
[30:24]
RFU
-
Reserved for future use (Write don’t care - Read return zeros).
[23:14]
RFU
-
Reserved for BIST bad extension field
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 554. BIST4_STS_RES register bit assignments (continued)
BIST4_STS_RES Register
Bit
Name
0x114
Reset
Value
Description
BIST execution result (BIST bad signal status):
1’b0: BIST execution ok
1’b1: BIST execution fails (ref. next table)
Bist failure table
[13:00]
bbad4(13:00)
-
Bbad
Memory Cut
Peripherals
[13]
ARM_SPREG_1024x3
2m8_
Arm ddata Sp1Kx32_4
[12]
ARM_SPREG_1024x3
2m8_b
Arm ddata Sp1Kx32_3
[11]
ARM_SPREG_1024x3
2m8_b
Arm ddata Sp1Kx32_2
[10]
ARM_SPREG_1024x3
2m8_b
Arm ddata Sp1Kx32_1
[09]
ARM_SPREG_256x88
m2_b
Arm dtag Sp256Kx22
[08]
ARM_SPREG_32x24m
Arm dcvalid Sp32x24
2_L
[07]
ARM_SPREG_128x8m
Arm dcdirty Sp128x8
4_bL
[06]
ARM_SPREG_1024x3
2m8
Arm iicdata Sp1kx32_4
[05]
ARM_SPREG_1024x3
2m8
Arm iicdata Sp1kx32_3
[04]
ARM_SPREG_1024x3
2m8
Arm iicdata Sp1kx32_2
[03]
ARM_SPREG_1024x3
2m8
Arm icdata Sp1Kx32_1
[02]
ARM_SPREG_128x88
m2_b
Arm itag Sp128x88
[01]
ARM_SPREG_32x24m
Arm ivalid Sp32x24
2_L
[00]
ARM_SPREG_32x112
m2_b
Arm mmu Sp32x112
BIST5_RSLT_REG register (Reserved)
The BIST5_RSLT_REG is an RO register which returns the functional BIST execution
results for the ARM internal memory pool.
Doc ID 022642 Rev 3
489/584
System configuration registers (MISC)
RM0321
Table 555. BIST5_RSLT_REG register bit assignments
BIST5_RSLT_REG Register
0x118
Bit
Name
Reset
Value
Description
[31]
bist5_end
-
end memory BIST5 execution:
1’b0: BIST execution pending
1’b1: end memory BIST execution.
[30:24]
RFU
-
reserved for future use (write don’t care - read return zeros).
[23:20]
RFU
-
reserved for BIST bad extension field
BIST execution result (BIST bad signal status):
1’b0: BIST execution ok
1’b1: BIST execution fails (ref. next table)
Bist failure table
[19:00]
490/584
bbad4(19:00)
-
Bbad
Memory Cut
Peripherals
[19]
SPUHD1024x32m8_b
Arm ddata Sp1Kx32_3
[18]
SPUHD1024x32m8_b
Arm ddata Sp1Kx32_2
[17]
SPUHD1024x32m8_b
Arm ddata Sp1Kx32_1
[16]
SPUHD1024x32m8_b
Arm ddata Sp1Kx32_0
[15]
SP_64KUHD_256x22m4
Arm dtag Sp256Kx22_3
[14]
SP_64KUHD_256x22m4
Arm dtag Sp256Kx22_2
[13]
SP_64KUHD_256x22m4
Arm dtag Sp256Kx22_1
[12]
SP_64KUHD_256x22m4
Arm dtag Sp256Kx22_0
[11]
SPUHD1024x32m8
Arm idata Sp1Kx32_3
[10]
SPUHD1024x32m8
Arm idata Sp1Kx32_2
[09]
SPUHD1024x32m8
Arm idata Sp1Kx32_1
[08]
SPUHD1024x32m8
Arm idata Sp1Kx32_0
[07]
SP_64KUHD_128x22m4
Arm itag Sp128Kx22_3
[06]
SP_64KUHD_128x22m4
Arm itag Sp128Kx22_3
[05]
SP_64KUHD_128x22m4
Arm itag Sp128Kx22_3
[04]
SP_64KUHD_128x22m4
Arm itag Sp128Kx22_3
[03]
SP_64KUHD_32x24m2
Arm dvalid Sp32Kx24
[02]
SP_64KUHD_128x8m2_b Arm ddirty Sp128Kx8
[01]
SP_64KUHD_32x24m2
[00]
SP_64KUHD_32x112m2_
ARM MMU Sp32x112
b
Doc ID 022642 Rev 3
Arm ivalid Sp32Kx24
RM0321
28.2.18
System configuration registers (MISC)
Diagnostic functionality registers
SYSERR_CFG_CTR register
The SYSERR_CFG_CTR is an R/W register which configures the SoC internal error
detections. The register bit assignments is detailed in the next table.
Table 556. SYSERR_CFG_CTR register bit assignments
SYSERR_CFG_CTR Register
0x11C
Bit
Name
Reset
Value
Description
[31:29]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
1’h0
DMA transfer error (RO); detection enable through
‘DMA_err_enb’ register field set high:
1’b0: No error pending.
1’b1: Active DMA transfer error; asserted when DMA master
transaction receives an error response type (for further detail
ref. DMA Chapter)
1’h0
Memory transaction error (RO); detection enable through
'mem_err_enb' register field set high:
1’b0: No error pending.
1’b1: Memory transfer error; asserted from memory
controller when one of the following error event is active:
A single access outside the defined PHYSICAL memory
space.
Multiple accesses outside the defined PHYSI-CAL memory
space.
DRAM initialization completes (no error event).
Address cross page boundary.
DLL unlock event.
[28]
[27]
DMA_err
Mem_err
[26]
[25]
[24]
usbh2_err
usbh1_err
usbdv_err
1’h0
1’h0
1’h0
USB2 PHY receiver error (RO); detection enable through
'usb_err_enb' register field set high:
1’b0: No error pending.
1’b1: USB2 PHY 'rxerror'; asserted when one of the
following error events is active:
Bit stuff errors during FS receive operation.
Elasticity buffer overrun/under run.
Alignment error; EOP not on a byte boundary.
[23]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
1’h0
Processors watch dog timeout error (RO); detection enable
through 'wdg_err_enb' bit set high:
1’b0: No error pending.
1’b1: Active watches dog timeout error; asserted when the
arms watch dog timer expires (the ARM watch dog
functionality is supplied from Basic subsystem Timer1).
[22]
arm1_wdg_err
Doc ID 022642 Rev 3
491/584
System configuration registers (MISC)
RM0321
Table 556. SYSERR_CFG_CTR register bit assignments (continued)
SYSERR_CFG_CTR Register
Bit
Name
Reset
Value
Description
[21:16]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[15]
[14]
[13]
[12]
mem_dll_err
usb_pll_err
sys_pll2_err
sys_pll1_er
1’h0
1’h0
1’h0
1’h0
PLL/DLL unlock error (RO); detection enable through
'pll_err_enb' register field set high:
1’b0: No error pending.
1’b1: Pll/Dll unlock error.
[11]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros)
[10]
DMA_err_enb
1’h0
Enable DMA transfer error interrupt detection:
1’b0: Disable error detection.
1’b1: Enable error detection.
[09]
mem_err_enb
1’h0
Enable Memory transfer error interrupt detection:
1’b0: Disable error detection.
1’b1: Enable error detection.
[08]
usb_err_enb
1’h0
Enable USB2 PHY receive error interrupt detection:
1’b0: Disable error detection.
1’b1: Enable error detection.
[07]
RFU
-
[06]
wdg_err_enb
1’h0
Enable Watch dog timeout error interrupt detection:
1’b0: Disable error detection.
1’b1: Enable error detection.
[05]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[04]
pll_err_enb
1’h0
Enable PLL/DLL unlock error interrupt detection:
1’b0: Disable error detection.
1’b1: Enable error detection.
[03]
RFU
-
Reserved for future use (Write don’t care - Read return
zeros).
[02]
int_error
1’h0
SYS_ERROR interrupt request (RO): enabled when
'int_error_enb' is high:
1’b0: No error interrupts pending.
1’b1: Active error interrupt: this bit is the logic or of all
enabled error interrupt events.
[01]
int_error_rst
1’h0
Reset error interrupt request:
1’b0: No action.
1’b1: Reset all active error interrupt requests.
1’h0
Enable SYS_ERROR interrupt event:
1’b0: Disable error interrupt assertion.
1’b1: Enable error interrupt assertion.
[00]
492/584
0x11C
int_error_enb
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
USB_TUN_PRM register
To enable adjusting various USB 2.0 specification-related characteristics, the USB 2.0
nanoPHY provides top level parameter override bits. The USB 2.0 nanoPHY is designed to
a default setting of these bits, and you are not expected to have to change these bits from
their default setting.
These override bits are not intended for per-part centering or dynamic centering. However,
there might be circumstances that require bit settings that are different than the default. If a
change is required, statically set these bits to the same value for all product parts. Statistical
analysis of the USB 2.0 nanoPHY's silicon characterization will determine whether any of
these bits require a different setting other than the default.
Table 557. USB_TUN_PRM register bit assignments
USB0/1/2_TUN_PRM
0x120/4/8
Bit
Name
Reset
Value
Description
[31:18]
RFU
-
Reserved for future use (Write don’t care - Read
return zeros)
[17:15]
COMPDISTUNE[02:00]
3’h4
COMPDISTUNE
[14:12]
SQRXTUNE[2:0]
3'h3
SQRXTUNE
[11:08]
TXFSLSTUNE[3:0]
4'h3
TXFSLSTUNE
[07:04]
TXVREFTUNE[3:0]
4'h8
TXVREFTUNE
[03]
TXPREEMPHASISTUNE
1’h0
TXPREEMPHASISTUNE
[02:01]
TXHSXVTUNE[1:0]
2'h3
TXHSXVTUNE
[00]
TXRISETUNE
1’h0
TXRISETUNE
PLGPIO0/4_PAD_PRG Registers
These five registers are used to program FAST IO pad's Drive strength, Pull up, pull down
status and Slew parameters. Depending upon the value of the above parameters following
tables govern their behaviour.
Table 558. Drive Selection
DRV[0]
DRV[1]
OUTPUT DRIVE
0
0
4mA
0
1
6mA
1
0
8mA
1
1
12mA
Table 559. Pull Up and Pull Down Selection
PUP
PDN
Comment
0
0
Not Allowed
0
1
Pull-Up Activated
Doc ID 022642 Rev 3
493/584
System configuration registers (MISC)
RM0321
Table 559. Pull Up and Pull Down Selection (continued)
PUP
PDN
Comment
1
0
Pull-Down Activated
1
1
Pull-Up/Pull-Down deactivated
Table 560. Slew selection
SL
Slew level
0
Nominal
1
Fast
In general for programming purposes the slew and drive strength of Four pads are shared
by a bit as specified in table below with some exception as specified in the table. For Pull Up
and Pull down same rule follows but with some exception as specified below in the tables.
Table 561. PLGPIO0_PAD_PRG register bit assignments
PLGPIO0_PAD_PRG
494/584
0x130
Bit
Name
Reset Value
Description
[31]
PDN_UART
1’h0
Pull down control for UART (Pads 2,3)
[30]
PUP_UART
1’h1
Pull up control for UART (Pads 2,3)
[29]
PDN_5
1’h1
Pull down control for pads 20,21,22,23
[28]
PUP_5
1’h0
Pull up control for pads 20,21,22,23
[27:26]
DRV_5[1:0]
2’h0
Drive strength control for pads 20,21,22,23
[25]
SLEW_5
1'h0
Slew control for pads 20,21,22,23
[24]
PDN_4
1’h1
Pull down control for pads 16,17,18,19
[23]
PUP_4
1’h0
Pull up control for pads 16,17,18,19
[22:21]
DRV[1:0]
2’h0
Drive strength control for pads 16,17,18,19
[20]
SLEW_4
1’h0
Slew control for pads 16,17,18,19
[19]
PDN_3
1’h1
Pull down control for pads 12,13,14,15
[18]
PUP_3
1’h0
Pull up control for pads 12,13,14,15
[17:16]
DRV_3[1:0]
2’h0
Drive strength control for pads 12,13,14,15
[15]
SLEW_3
1’h0
Slew control for pads 12,13,14,15
[14]
PDN_2
1’h1
Pull down control for pads 8,9
[13]
PUP_2
1’h0
Pull Up control for pads 8,9
[12:11]
DRV_2[1:0]
2’h0
Drive Strength control for pads 8,9,10,11
[10]
SLEW_2
1’h0
Slew control for pads 8,9,10,11
[09]
PDN_1
1’h1
Pull Down control for pads 6,7
[08]
PUP_1
1’h0
Pull up control for pads 6,7
[07:06]
DRV_1[1:0]
2’h0
Drive strength control for pads 4,5,6,7
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 561. PLGPIO0_PAD_PRG register bit assignments (continued)
PLGPIO0_PAD_PRG
0x130
Bit
Name
Reset Value
Description
[05]
SLEW_1
1’h0
Slew control for pads 4,5,6,7
[04]
PDN_0
1’h1
Pull Down Control for pads 0,1
[03]
PUP_0
1’h0
Pull Up control for pads 0,1
[02:01]
DRV_0[1:0]
2’h0
Drive strength control for pads 0,1,2,3
[00]
SLEW_0
1’h0
Slew control for pads 0,1,2,3
Table 562. PLGPIO1_PAD_PRG register bit assignments
PLGPIO1_PAD_PRG
0x134
Bit
Name
Reset Value
Description
[31]
PDN_I2C
1’h1
Pull down control for I2C (Pads 4,5)
[30]
PUP_12C
1’h0
Pull up control for I2C (Pads 4,5)
[29]
PDN_11
1’h1
Pull down control for pads 45, 46, 47
[28]
PUP_11
1’h0
Pull up control for pads 45,46,47
[27:26]
DRV_11[1:0]
2’h0
Drive strength control for pads 44,45,46,47
[25]
SLEW_11
1’h0
Slew control for pads 44,45,46,47
[24]
PDN_10
1’h0
Pull down control for pads 40,41,42,43,44
[23]
PUP_10
1’h1
Pull up control for pads 40,41,42,43,44
[22:21]
DRV_10[1:0]
2’h0
Drive strength control for pads 40,41,42,43
[20]
SLEW_10
1’h0
Slew control for pads 40,41,42,43
[19]
PDN_9
1’h0
Pull down control for pads 37,38,39
[18]
PUP_9
1’h1
Pull up control for pads 37,38,39
[17:16]
DRV_9[1:0]
2’h0
Drive strength control for pads 36,37,38,39
[15]
SLEW_9
1’h0
Slew control for pads 36,37,38,39
[14]
PDN_8
1’h1
Pull down control for pads 32,33,34,35,36
[13]
PUP_8
1’h0
Pull up control for pads 32,33,34,35,36
[12:11]
DRV_8[1:0]
2’h0
Drive strength control for pads 32,33,34,35
[10]
SLEW_8
1’h0
Slew control for pads 32,33,34,35
[09]
PDN_7
1’h1
Pull down control for pads 28,29,30,31
[08]
PUP_7
1’h0
Pull up control for pads 28,29,30,31
[07:06]
DRV_7[1:0]
2’h0
Drive strength control for pads 28,29,30,31
[05]
SLEW_7
1’h0
Slew control for pads 28,29,30,31
[04]
PDN_6
1’h1
Pull down control for pads 24,25,26,27
[03]
PUP_6
1’h0
Pull Up control for pads 24,25,26,27
Doc ID 022642 Rev 3
495/584
System configuration registers (MISC)
RM0321
Table 562. PLGPIO1_PAD_PRG register bit assignments (continued)
PLGPIO1_PAD_PRG
0x134
Bit
Name
Reset Value
Description
[02:01]
DRV_6[1:0]
2’h0
Drive Strength control for pads 24,25,26,27
[00]
SLEW_6
1’h0
Slew control for pads 24, 25,26,27
Table 563. PLGPIO2_PAD_PRG register bit assignments
PLGPIO2_PAD_PRG
496/584
0x138
Bit
Name
Reset
Value
Description
[31]
PDN_ETHERNET
1’h0
Pull down control for Ethernet (Pads 10,11)
[30]
PUP_ETHERNET
1’h1
Pull up control for Ethernet (Pads 10,11)
[29]
PDN_17
1’h1
Pull down control for pads 68,69,70,71
[28]
PUP_17
1’h0
Pull up control for pads 68,69,70,71
[27:26]
DRV_17[1:0]
2’h0
Drive strength control for pads 68,69,70,71
[25]
SLEW_17
1’h0
Slew control for pads 68,69,70,71
[24]
PDN_16
1’h1
Pull down control for pads 64,65,66,67
[23]
PUP_16
1’h0
Pull up control for pads 64,65,66,67
[22:21]
DRV_16[:0]
2’h0
Drive strength control for pads 64,65,66,67
[20]
SLEW_16
1’h0
Slew control for pads 64,65,66,67
[19]
PDN_15
1’h1
Pull down control for pads 60,61,62,63
[18]
PUP_15
1’h0
Pull up control for pads 60,61,62,63
[17:16]
DRV_15[1:0]
2’h0
Drive strength control for pads 60,61,62,63
[15]
SLEW_15
1’h0
Slew control for pads 60,61,62,63
[14]
PDN_14
1’h1
Pull down control for pads 56,57,58,59
[13]
PUP_14
1’h0
Pull up control for pads 56,57,58,59
[12:11]
DRV_14[1:0]
2’h0
Drive strength control for pads 56,57,58,59
[10]
SLEW_14
1’h0
Slew control for pads 56,57,58,59
[09]
PDN_13
1’h1
Pull down control for pads 52,53,54,55
[08]
PUP_13
1’h0
Pull up control for pads 52,53,54,55
[07:06]
DRV_13[1:0]
2’h0
Drive strength control for pads 52,53,54,55
[05]
SLEW_13
1’h0
Slew control for pads 52,53,54,55
[04]
PDN_12
1’h1
Pull Down control for pads 48,49,50,51
[03]
PUP_12
1’h0
Pull Up control for pads 48,49,50,51
[02:01]
DRV_12[1:0]
2’h0
Drive Strength control for pads48,49,50,51
[00]
SLEW_12
1’h0
Slew control for pads 48,49,50,51
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 564. PLGPIO3_PAD_PRG register bit assignments
PLGPIO3_PAD_PRG
0x13C
Bit
Name
Reset
Value
Description
[31:30]
RFU
-
Reserved for future use (Read return zeros)
[29]
PDN_23
1’h1
Pull down control for pads 92,93,94,95
[28]
PUP_23
1’h0
Pull up control for pads 92,93,94,95
[27:26]
DRV_23[1:0]
2’h0
Drive strength control for pads 92,93,94,95
[25]
SLEW_23
1’h0
Slew control for pads 92,93,94,95
[24]
PDN_22
1’h1
Pull down control for pads 88,89,90,91
[23]
PUP_22
1’h0
Pull up control for pads 88,89,90,91
[22:21]
DRV_22[1:0]
2’h0
Drive strength control for pads 88,89,90,91
[20]
SLEW_22
1’h0
Slew control for pads 88,89,90,91
[19]
PDN_21
1’h1
Pull down control for pads 84,85,86,87
[18]
PUP_21
1’h0
Pull up control for pads 84,85,86,87
[17:16]
DRV_21[1:0]
2’h0
Drive strength control for pads 84,85,86,87
[15]
SLEW_21
1’h0
Slew control for pads 84,85,86,87
[14]
PDN_20
1’h1
Pull down control for pads 80,81,82,83
[13]
PUP_20
1’h0
Pull up control for pads 80,81,82,83
[12:11]
DRV_20[1:0]
2’h0
Drive strength control for pads 80,81,82,83
[10]
SLEW_20
1’h0
Slew control for pads 80,81,82,83
[09]
PDN_19
1’h1
Pull down control for pads 76,77,78,79
[08]
PUP_19
1’h0
Pull up control for pads 76,77,78,79
[07:06]
DRV_19[1:0]
2’h0
Drive strength control for pads 76,77,78,79
[05]
SLEW_19
1’h0
Slew control for pads 76,77,78,79
[04]
PDN_18
1’h1
Pull Down control for pads 72,73,74,75
[03]
PUP_18
1’h0
Pull Up control for pads 72,73,74,75
[02:01]
DRV_18[1:0]
2’h0
Drive Strength control for pads 72,73,74,75
[00]
SLEW_18
1’h0
Slew control for pads 72,73,74,75
Table 565. PLGPIO4_PAD_PRG register bit assignments
PLGPIO4_PAD_PRG
0x140
Bit
Name
Reset
Value
Description
[31:25]
RFU
-
Reserved for future use (Read return zeros)
[24]
PDN_CLK4
1’h1
Pull down control for pads CLK4
[23]
PUP_CLK4
1’h0
Pull up control for pads CLK4
Doc ID 022642 Rev 3
497/584
System configuration registers (MISC)
RM0321
Table 565. PLGPIO4_PAD_PRG register bit assignments (continued)
PLGPIO4_PAD_PRG
28.3
0x140
Bit
Name
Reset
Value
Description
[22:21]
DRV_CLK4[1:0]
2’h0
Drive strength control for pads CLK4
[20]
SLEW_CLK4
1’h0
Slew control for pads CLK4
[19]
PDN_CLK3
1’h1
Pull down control for pads CLK3
[18]
PUP_CLK3
1’h0
Pull up control for pads CLK3
[17:16]
DRV_CLK3[1:0]
2’h0
Drive strength control for pads CLK3
[15]
SLEW_CLK3
1’h0
Slew control for pads CLK3
[14]
PDN_CLK2
1’h1
Pull down control for pads CLK2
[13]
PUP_CLK2
1’h0
Pull up control for pads CLK2
[12:11]
DRV_CLK2[1:0]
2’h0
Drive strength control for pads CLK2
[10]
SLEW_CLK2
1’h0
Slew control for pads CLK2
[09]
PDN_CLK1
1’h1
Pull down control for pads CLK1
[08]
PUP_CLK1
1’h0
Pull up control for pads CLK1
[07:06]
DRV_CLK1[1:0]
2’h0
Drive strength control for pads CLK1
[05]
SLEW_CLK1
1’h0
Slew control for pads CLK1 & pads 96,97
[04]
PDN_24
1’h1
Pull Down control for pads 96,97
[03]
PUP_24
1’h0
Pull up control for pads 96,97
[02:01]
DRV_24[1:0]
2’h0
Drive Strength control for pads 96,97
[00]
RFU
Reserved for future purpose
Miscellaneous global register description
The global space controls the following functionalities:
●
●
General purpose input signals:
–
General status/command interface received from programmable logic.
–
Registered input mail box data.
General purpose output signals:
–
General output command interface.
–
Programmable logic configuration extension.
–
Registered output mail box data.
Next table shows the miscellaneous global register map.
498/584
Doc ID 022642 Rev 3
RM0321
System configuration registers (MISC)
Table 566. Miscellaneous global space registers overview
Miscellaneous Global Space Register Map
Base address: 0xFCA8.0000
Alias-1 Offset
0x0.8000
Register Name
Alias-2 Offset
0x1.8000
Type
Register Displacement (single region)
28.3.1
RAS_GPP1_IN
0x00
R/W
RAS_GPP2_IN
0x04
R/W
RAS_GPP1_OUT
0x08
R/W
RAS_GPP2_OUT
0x0C
R/W
RAS_GPP_EXT_IN
0x10
R/W
RAS_GPP_EXT_OUT
0x14
R/W
Reserved
0x18
R/W
Reserved
0x1C
R/W
RAS1/2_GPP_INP register
The RAS1/2_GPP_INP is a group of RO general purpose input registers used to pass
different kind of information from the reconfigurable logic array toward the internal core logic.
The register bit assignments is detailed in the next two tables.
Table 567. RAS_GPP1_IN register bit assignments
RAS_GPP1_IN Register
0x000
Bit
Name
Reset
Value
Description
[31:00]
gpp1_in[31:00]
-
General purpose input register (RO) which return the
current value of the programmable logic GPP_INP
(31:00) signals.
Table 568. RAS_GPP2_IN register bit assignments
RAS_GPP2_IN Register
0x004
Bit
Name
Reset
Value
Description
[31:00]
gpp2_in[31:00]
-
General purpose input register (RO) which return the
current value of the programmable logic GPP_INP
(63:32) signals.
Doc ID 022642 Rev 3
499/584
System configuration registers (MISC)
RM0321
Table 569. RAS_GPP_EXT_IN register bit assignments
RAS_GPP_EXT_IN Register
28.3.2
0x010
Bit
Name
Reset
Value
Description
[07:00]
Gpp_ext_in[07:00]
-
General purpose input register (RO) which return
the current value of the programmable logic signals.
RAS1/2_GPP_OUT register
The RAS1/2_GPP_OUT are a group of R/W general purpose output registers used to pass
different kind of data/command from the internal core logic to reconfigurable logic array.
Table 570. RAS_GPP1_OUT register bit assignments
RAS_GPP1_OUT Register
Bit
[31:00]
Name
gpp1_out[31:00]
0x008
Reset
Value
Description
32’h0
General purpose output register direct controls the
programmable logic GPP_OUT(31:00) signals
1’b0: Force the corresponding bit signal low.
1’b1: Force the corresponding bit signal high.
General purpose output command field.
Table 571. RAS_GPP2_OUT register bit assignments
RAS_GPP2_OUT Register
Bit
[31:00]
Name
gpp2_out[31:00]
0x00C
Reset
Value
Description
32’h0
General purpose output register direct controls the
programmable logic GPP_OUT(63:32) signals
1’b0: Force the corresponding bit signal low.
1’b1: Force the corresponding bit signal high.
General purpose output command field.
Table 572. RAS_GPP_EXT_OUT register bit assignments
RAS_GPP_EXT_OUT Register
Bit
[07:00]
500/584
Name
0x014
Reset
Value
Gpp_ext_out[07:00] 7’h0
Description
General purpose output register direct controls the
programmable logic GPP_EXT_OUT(07:00) signals
1’b0: Force the corresponding bit signal low.
1’b1: Force the corresponding bit signal high.
General purpose output command field.
Doc ID 022642 Rev 3
RM0321
29
RAS configuration (RASCFG)
RAS configuration (RASCFG)
This chapter contains a list of the configuration registers related to the RAS present in
SPEAr320S.
The RASCFG base address is: 0xB300.0000.
29.1
Register summary
Table 573. RASCFG register list
Offset
Register name
Description
Page
0x00
Boot_Strap_Reg
Boot Strap Register
on page
504
0x04
IrqStatus_Reg
Interrupt Status Register
on page
504
0x08
IrqMask_Reg
Interrupt Mask Register
on page
505
0x0C
RAS_Select_Reg
RAS Select register (to select between I/O alternate
functions and RAS)
on page
506
0x10
Control_Reg
Control Register
on page
507
0x14
Touchscreen_Dur
Touchscreen Duration
on page
508
0x18
ExtControl_Reg
Extended Control Register
29.2.7 on
page 509
0x24
GPIO_SELECT0
Function enable for GPIO_0 to GPIO_31
on page
510
0x28
GPIO_SELECT1
Function enable for GPIO_32 to GPIO_63
on page
510
0x2C
GPIO_SELECT2
Function enable for GPIO_64 to GPIO_95
on page
511
0x30
GPIO_SELECT3
Function enable for GPIO_96 to GPIO_101
on page
511
0x34
GPIO_OUT0
Output to GPIO_0 to GPIO_31
on page
511
0x38
GPIO_OUT1
Output to GPIO_32 to GPIO_63
on page
512
0x3C
GPIO_OUT2
Output to GPIO_64 to GPIO_95
29.2.14
on page
512
0x40
GPIO_OUT3
Output to GPIO_96 to GPIO_101 (GPIO_96, GPIO_97
and PL_CLK1 to PL_CLK4)
on page
512
Doc ID 022642 Rev 3
501/584
RAS configuration (RASCFG)
RM0321
Table 573. RASCFG register list
Offset
Register name
Description
Page
0x44
GPIO_EN0
Pad enable for GPIO_0 to GPIO_31
29.2.16
on page
513
0x48
GPIO_EN1
Pad enable for GPIO_32 to GPIO_63
on page
513
0x4C
GPIO_EN2
Pad enable for GPIO_64 to GPIO_95
on page
513
0x50
GPIO_EN3
Pad enable for GPIO_96 to GPIO_127
on page
514
0x54
GPIO_IN0
Input from GPIO_0 to GPIO_31
29.2.20
on page
514
0x58
GPIO_IN1
Input from GPIO_32 to GPIO_63
29.2.21
on page
514
0x5C
GPIO_IN2
Input from GPIO_64 to GPIO_95
on page
515
0x60
GPIO_IN3
Input from GPIO_96 to GPIO_101
on page
515
0x64
GPIO_IRQ_MASK0
Interrupt mask for GPIO_0 to GPIO_31
on page
515
0x68
GPIO_IRQ_MASK1
Interrupt mask for GPIO_32 to GPIO_63
on page
516
0x6C
GPIO_IRQ_MASK2
Interrupt mask for GPIO_64 to GPIO_95
on page
516
0x70
GPIO_IRQ_MASK3
Interrupt mask for GPIO_96 to GPIO_101
on page
516
0x74
GPIO_MASKED_INT0
Legacy GPIO interrupt status for GPIO_0 to GPIO_31
on page
517
0x78
GPIO_MASKED_INT1
Legacy GPIO interrupt status for GPIO_32 to GPIO_63
on page
517
0x7C
GPIO_MASKED_INT2
Legacy GPIO interrupt status for GPIO_64 to GPIO_95
29.2.30
on page
518
0x80
GPIO_MASKED_INT3
Legacy GPIO interrupt status for GPIO_96 to GPIO_101
on page
518
0x84
GPIO_IRQ0
Interrupt status for GPIO_0 to GPIO_31
on page
518
0x88
GPIO_IRQ1
Interrupt status for GPIO_32 to GPIO_63
on page
519
0x8C
GPIO_IRQ2
Interrupt status for GPIO_64 to GPIO_95
on page
519
502/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
Table 573. RASCFG register list
Offset
Register name
Description
Page
0x90
GPIO_IRQ3
Interrupt status for GPIO_96 to GPIO_101
on page
519
0x94
GPIO_IRQ_EDGE0
Interrupt edge programmability for GPIO_0 to GPIO_31
on page
520
0x98
GPIO_IRQ_EDGE1
Interrupt edge programmability for GPIO_32 to GPIO_63
29.2.37
on page
520
0x9C
GPIO_IRQ_EDGE2
Interrupt edge programmability for GPIO_64 to GPIO_95
on page
521
0xA0
GPIO_IRQ_EDGE3
Interrupt edge programmability for GPIO_96 to GPIO_101
on page
521
0xA4
RAS_iosel_reg0
IP Port select for GPIO_0 to GPIO_9 in Extended Mode
on page
521
0xA8
RAS_iosel_reg1
IP Port select for GPIO_10 to GPIO_19 in Extended Mode
on page
523
0xAC
RAS_iosel_reg2
29.2.42
IP Port select for GPIO_20 to GPIO_29 in Extended Mode on page
525
0xB0
RAS_iosel_reg3
29.2.43
IP Port select for GPIO_30 to GPIO_39 in Extended Mode on page
527
0xB4
RAS_iosel_reg4
IP Port select for GPIO_40 to GPIO_49 in Extended Mode
0xB8
RAS_iosel_reg5
29.2.45
IP Port select for GPIO_50 to GPIO_59 in Extended Mode on page
531
0xBC
RAS_iosel_reg6
IP Port select for GPIO_60 to GPIO_69 in Extended Mode
on page
533
0xC0
RAS_iosel_reg7
IP Port select for GPIO_70 to GPIO_79 in Extended Mode
on page
535
0xC4
RAS_iosel_reg8
IP Port select for GPIO_80 to GPIO_89 in Extended Mode
on page
537
0xC8
RAS_iosel_reg9
29.2.49
IP Port select for GPIO_90 to GPIO_99 in Extended Mode on page
539
0xCC
RAS_iosel_reg10
IP Port select for PL_CLK3 and PL_CLK4 and directing IP on page
Ports on multiple GPIOs in Extended Mode
541
Doc ID 022642 Rev 3
on page
529
503/584
RAS configuration (RASCFG)
RM0321
29.2
Register descriptions
29.2.1
RASCFG boot strap register
Boot_Strap_Reg
Boot Strap Register
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
8
7
6
5
4
3
2
1
H[7:0]
B[3:0]
R
R
R
Address:
SP320S_RAS_REGsBaseAddress + 0x00
Type:
R
Reset:
0x0
Description:
9
RESERVED
0
Boot Strap Register
[11:4] H[7:0]: Values latched from PL_GPIO_62 down to PL_GPIO_55 on coming out of system reset
[3:0] B[3:0]: Values latched from PL_GPIO_54 down to PL_GPIO_51 on coming out of system reset
RASCFG interrupt status register
R
R
R
R
Address:
SP320S_RAS_REGsBaseAddress + 0x04
Type:
R/W
Reset:
0x0
Description:
Interrupt Status Register
3
2
1
GPIO_INTR
R
4
RESERVED
R
5
RX_DA_INTR
R
6
RX_OR_INTR
R
7
TX_EMP_INTR
R
8
NGPIO_INTR
U_CCAN_INTR
SDIO_INT_TO_ARM
R
9
TX_OR_INTR
L_CCAN_INTR
R
UART1_INTR
R
UART2_INTR
R
SSP1_INTR
I2C2_INTR
R
SSP2_INTR
UART3_INTR
R
MACB1_ETHERNET_INT
UART4_INTR
R
MACB1_WOL
UART5_INTR
R
MACB2_ETHERNET_INT
UART6_INTR
R
I2C1_INTR
RS485_INTR
R
MACB2_WOL
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
EMI_INT
Interrupt Status Register
SPP_INTR
IrqStatus_Reg
CLCD_INTR
29.2.2
R
R
R
R
R
R
R
R
R
R/
W
[27] RS485_INTR: RS485 interrupt status
[26] UART6_INTR: UART6 interrupt status
[25] UART5_INTR: UART5 interrupt status
[24] UART4_INTR: UART4 interrupt status
[23] UART3_INTR: UART3 interrupt status
[22] I2C2_INTR: I2C2 interrupt status
[21] I2C1_INTR: I2C1 interrupt status
[20] MACB2_WOL: MACB2 Wake on LAN detected interrupt status
504/584
Doc ID 022642 Rev 3
0
RM0321
RAS configuration (RASCFG)
[19] MACB1_WOL: MACB1 Wake on LAN detected interrupt status
[18] MACB2_ETHERNET_INT: MACB2 interrupt status
[17] MACB1_ETHERNET_INT: RMACB1 interrupt status
[16] SSP2_INTR: SSP2 interrupt status
[15] SSP1_INTR: SSP1 interrupt status
[14] UART2_INTR: UART2 interrupt status
[13] UART1_INTR: UART1 interrupt status
[12] L_CCAN_INTR: CAN1 interrupt status
[11] U_CCAN_INTR: CAN0 interrupt status
[10] SDIO_INT_TO_ARM: SDIO interrupt status
[9] SPP_INTR: SPP interrupt status
[8] CLCD_INTR: CLCD interrupt status
[7] EMI_INT: EMI interrupt status
[6] NGPIO_INTR: Combined status of edge programmable interrupts from GPIO ports (see
GPIO_IRQ0 to GPIO_IRQ3 for individual interrupt status)
[5] TX_OR_INTR: I2S interrupt on Transmit FIFO overrun
[4] TX_EMP_INTR: I2S interrupt on Transmit FIFO empty (when data goes below lower threshold
level)
[3] RX_OR_INTR: I2S interrupt on Receive FIFO overrun
[2] RX_DA_INTR: I2S interrupt on data available in Receive FIFO
[0] GPIO_INTR: Legacy interrupt from GPIO ports (see GPIO_MASKED_INT0 to
GPIO_MASKED_INT3 for individual interrupt status)
29.2.3
RASCFG interrupt mask register
IrqMask_Reg
Interrupt Mask Register
8
7
6
5
4
3
2
1
0
GPIO_INTR_MASK
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
Address:
SP320S_RAS_REGsBaseAddress + 0x08
Type:
R/W
Reset:
0xFFFF FFFF
Doc ID 022642 Rev 3
505/584
RAS configuration (RASCFG)
Description:
RM0321
Interrupt Mask Register
[0] GPIO_INTR_MASK: GPIO_INTR mask
0: Interrupt enabled
1: Interrupt masked
RASCFG select register
RAS Select register
Address:
SP320S_RAS_REGsBaseAddress + 0x0C
Type:
R/W
Reset:
0xFFFF FFFF
Description:
R/
W
R/
W
R/
W
R/
W
[13] I2C:
0: RAS selected
1: I2C0
[12] SPI_enhanced:
0: RAS selected
1: SSP0 SPI enhanced (CS(2-3-4))
[11] SPI_Basic:
0: RAS selected
1: SSP0 SPI Basic (no CS(2-3-4))
[10] MAC_Ethernet:
0: RAS selected
1: MII0 MAC Ethernet
[9] GPIO_0:
0: RAS selected
1: basGPIO(0)
[8] GPIO_1:
0: RAS selected
1: basGPIO(1)
[7] GPIO_2:
0: RAS selected
1: basGPIO(2)
[6] GPIO_3:
0: RAS selected
1: basGPIO(3)
Doc ID 022642 Rev 3
1
0
GPT1_Timer
R/
W
2
GPT2_Timer
GPIO_4
R/
W
3
UART_basic
GPIO_3
R/
W
4
R/
W
R/
W
R/
W
R/
W
R/
W
RAS Select register (to select between I/O alternate functions and RAS)
[14] FIRDA:
0: RAS selected
1: IrDA
506/584
5
GPIO_2
R/
W
6
GPIO_1
SPI_enhanced
R/
W
7
GPIO_0
I2C
R/
W
8
SPI_Basic
FIRDA
R
9
MAC_Ethernet
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
GPIO_5
RAS_Select_Reg
UART_enhanced
29.2.4
RM0321
RAS configuration (RASCFG)
[5] GPIO_4:
0: RAS selected
1: basGPIO(4)
[4] GPIO_5:
0: RAS selected
1: basGPIO(5)
[3] UART_enhanced:
0: RAS selected
1: UART0 enhanced (using UART signals, such as DCD...)
[2] UART_basic:
0: RAS selected
1: UART0 basic (only RX and TX signals)
[1] GPT2_timer:
0: RAS selected
1: GPT2 timer
[0] GPT1_timer:
0: RAS selected
1: GPT1 timer
RASCFG control register
Control Register
RESERVED
clcd_CLFP_sel
AudioClk_sel
Touchscreen_en
R/
W
R/
W
R/
W
R/
W
R
R/
W
R/
W
R/
W
Address:
SP320S_RAS_REGsBaseAddress + 0x10
Type:
R/W
Reset:
0x0
Description:
Control Register
4
3
2
1
Mode_sel
l_CAN_MEM_CLK_S
R/
W
5
RMII1_endian
u_CAN_MEM_CLK_S
R
6
RMII2_endian
sdio_clk_sel
7
LED_PWM2_sel
8
EMI_FSMC_sel
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
UARTCLK_sel
Control_Reg
RMII_MDIO_sel
29.2.5
R/
W
R/
W
R/
W
R/
W
R/W
0
[17] EMI_FSMC_sel: EMI/ FSMC select (Mode 010)
0: EMI
1: FSMC3
[16] LED_PWM2_sel: LED/ PWM2_out select
0: SD_LED
1: PWM2_out
[15] SDIO_CLK_SEL: SDIO clock select
0: CLK48MHZ
1: RAS_CLK_SYNT4
Doc ID 022642 Rev 3
507/584
RAS configuration (RASCFG)
RM0321
[14] u_CAN_MEM_CLK_S: CAN0 Memory clock select
0: Inverted PCLK is directed to memory
1: PCLK is directed to memory
[13] l_CAN_MEM_CLK_S: CAN1 Memory clock select
0: Inverted PCLK is directed to memory
1: PCLK is directed to memory
[9] clcd_CLFP_sel: CLFP_selection
0: CLFP output as frame pulse only
1: CLFP output as ANDed version of frame pulse and line synchronization pulse
[8] AudioClk_sel: audio_over_samp_clk select
0: PLL2_CLKOUT
1: RAS_CLK_SYNT3
[7] Touchscreen_en: Touchscreen Enable
0: Disabled
1: Enabled
[6] UARTCLK_sel: UARTCLK select
0: RAS_CLK_SYNT2
1: PCLK
[5] RMII_MDIO_sel: RMII_MDIO select
0: MDIO signals are routed from RMII1
1: MDIO signals are routed from RMII2
[4] RMII2_endian: RMII2 DMA endianness
0: Little endian
1: Big endian
[3] RMII1_endian: RMII1 DMA endianness
0: Little endian
1: Big endian
[2:0] Mode_sel: Selects different modes as follows:
000: HMI Automation mode
001: MII automation networking mode
010: Expanded automation mode
011: Printer mode
Rest: Reserved
29.2.6
RASCFG touchscreen duration register
Touchscreen_Dur
Touchscreen Duration
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
Touchscreen_dur
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x14
Type:
R/W
Reset:
0x0
Description:
Touchscreen Duration
[31:0] Touchscreen_dur: Touchscreen Duration (number of HCLK cycles) for sampling inputs
508/584
Doc ID 022642 Rev 3
1
0
RM0321
29.2.7
RAS configuration (RASCFG)
RASCFG extended control register
ExtControl_Reg
Extended Control Register
RESERVED
Ext_Mode
0
MDIO_IO_sel
1
DYN_sel
2
RESERVED
3
UART2CLK_sel
4
UART3CLK_sel
5
UART4CLK_sel
R
6
UART5CLK_sel
RESERVED
R/W
7
UART6CLK_sel
MAC1_mode_sel
R/W
8
RS485_OE
MAC2_mode_sel
R
9
RS485CLK_sel
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R/
W
R/
W
R/
W
R/
W
R/
W
R/
W
R/
W
R
R/
W
R/
W
R
R/
W
Address:
SP320S_RAS_REGsBaseAddress + 0x18
Type:
R/W
Reset:
0x0
Description:
Extended Control Register
[19:18] MAC2_mode_sel: MAC2 mode select in extended mode (Ext_mode bit enabled)
00: MII
01: RMII
10: Reserved
11: Reserved
[17:16] MAC1_mode_sel: MAC1 mode select in extended mode (Ext_mode bit enabled)
00: MII
01: RMII
10: Reserved
11: Reserved
[14] RS485_OE: RS485 OE signal to GPIO
[13] RS485CLK_sel: RS485CLK select
0: RAS_CLK_SYNT2
1: PCLK
[12] UART6CLK_sel: UART6CLK select
0: RAS_CLK_SYNT2
1: PCLK
[11] UART5CLK_sel: UART5CLK select
0: RAS_CLK_SYNT2
1: PCLK
[10] UART4CLK_sel: UART4CLK select
0: RAS_CLK_SYNT2
1: PCLK
[9] UART3CLK_sel: UART3CLK select
0: RAS_CLK_SYNT2
1: PCLK
[8] UART2CLK_sel: UART2CLK select in extended mode (Ext_mode bit enabled)
0: RAS_CLK_SYNT2
1: PCLK
Doc ID 022642 Rev 3
509/584
RAS configuration (RASCFG)
RM0321
[5] DYN_sel: For selecting dynamic multiplexing of EMI and FSMC ports
0: Dynamic multiplexing is disabled (the multiplexing is done on the basis of EMI_FSMC_sel bit
of control_reg)
1: Dynamic multiplexing enabled (the signals are multiplexed based on which IP - EMI or
FSMC, is accessed by ARM)
[4] MDIO_IO_sel: MDIO port select in extended mode (Ext_mode bit enabled)
0: MDIO_in is connected to GPIO_10 when RAS_sel_10 is configured as “100“ else MDIO_in is
connected to GPIO_11
1: MDIO_in is connected to GPIO_81
[0] Ext_Mode: Extended mode select
0: Legacy modes
1: Extended mode enabled
29.2.8
RASCFG GPIO select register 0
GPIO_SELECT0
Function enable for GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_SELECT0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x24
Type:
R/W
Reset:
0x0
Description:
Function enable for GPIO_0 to GPIO_31
[31:0] GPIO_SELECT0: Function enable for GPIO Ports 31 down to 0
0: Port available as RAS IP
1: Port available GPIO
29.2.9
RASCFG GPIO select register 1
GPIO_SELECT1
Function enable for GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
GPIO_SELECT1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x28
Type:
R/W
Reset:
0x0
Description:
Function enable for GPIO_32 to GPIO_63
[31:0] GPIO_SELECT1: Function enable for GPIO Ports 63 down to 32
0: Port available as RAS IP
1: Port available GPIO
510/584
Doc ID 022642 Rev 3
7
6
5
4
3
2
1
0
RM0321
29.2.10
RAS configuration (RASCFG)
RASCFG GPIO select register 2
GPIO_SELECT2
Function enable for GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_SELECT2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x2C
Type:
R/W
Reset:
0x0
Description:
Function enable for GPIO_64 to GPIO_95
[31:0] GPIO_SELECT2: Function enable for GPIO Ports 95 down to 64
0: Port available as RAS IP
1: Port available GPIO
29.2.11
RASCFG GPIO select register 3
GPIO_SELECT3
Function enable for GPIO_96 to GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
GPIO_SELECT3
R
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x30
Type:
R/W
Reset:
0x0
Description:
Function enable for GPIO_96 to GPIO_101
0
[5:0] GPIO_SELECT3: Function enable for GPIO Ports 101 down to 96
0: Port available as RAS IP
1: Port available GPIO
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.12
RASCFG GPIO output register 0
GPIO_OUT0
Output to GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_OUT0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x34
Type:
R/W
Reset:
0x0
Description:
Output to GPIO_0 to GPIO_31
[31:0] GPIO_OUT0: Output to GPIO ports 31 down to 0
Doc ID 022642 Rev 3
511/584
RAS configuration (RASCFG)
29.2.13
RM0321
RASCFG GPIO output register 1
GPIO_OUT1
Output to GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_OUT1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x38
Type:
R/W
Reset:
0x0
Description:
Output to GPIO_32 to GPIO_63
[31:0] GPIO_OUT1: Output to GPIO ports 63 down to 32
29.2.14
RASCFG GPIO output register 2
GPIO_OUT2
Output to GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_OUT2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x3C
Type:
R/W
Reset:
0x0
Description:
Output to GPIO_64 to GPIO_95
[31:0] GPIO_OUT2: Output to GPIO ports 95 down to 64
29.2.15
RASCFG GPIO output register 3
GPIO_OUT3
Output to GPIO_96 to GPIO_101 (GPIO_96,
GPIO_97 and PL_CLK1 to PL_CLK4)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
7
6
5
4
3
2
1
R
R/W
SP320S_RAS_REGsBaseAddress + 0x40
Type:
R/W
Reset:
0x0
0
Output to GPIO_96 to GPIO_101 (GPIO_96, GPIO_97 and PL_CLK1 to PL_CLK4)
[5:0] GPIO_OUT3: Output to GPIO ports 101 down to 96
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
512/584
8
GPIO_OUT3
Address:
Description:
9
RESERVED
Doc ID 022642 Rev 3
RM0321
29.2.16
RAS configuration (RASCFG)
RASCFG GPIO enable register 0
GPIO_EN0
Pad enable for GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_EN0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x44
Type:
R/W
Reset:
0xFFFF FFFF
Description:
Pad enable for GPIO_0 to GPIO_31
[31:0] GPIO_EN0: Enables to GPIO Ports 31 down to 0
0: GPIO enabled as output
1: GPIO enabled as input
29.2.17
RASCFG GPIO enable register 1
GPIO_EN1
Pad enable for GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_EN1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x48
Type:
R/W
Reset:
0xFFFF FFFF
Description:
Pad enable for GPIO_32 to GPIO_63
[31:0] GPIO_EN1: Enables to GPIO Ports 63 down to 32
0: GPIO enabled as output
1: GPIO enabled as input
29.2.18
RASCFG GPIO enable register 2
GPIO_EN2
Pad enable for GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_EN2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x4C
Type:
R/W
Reset:
0xFFFF FFFF
Doc ID 022642 Rev 3
513/584
RAS configuration (RASCFG)
Description:
RM0321
Pad enable for GPIO_64 to GPIO_95
[31:0] GPIO_EN2: Enables to GPIO Ports 95 down to 64
0: GPIO enabled as output
1: GPIO enabled as input
29.2.19
RASCFG GPIO enable register 3
GPIO_EN3
Pad enable for GPIO_96 to GPIO_127
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
RESERVED
GPIO_EN3
R
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x50
Type:
R/W
Reset:
0xFFFF FFFF
Description:
Pad enable for GPIO_96 to GPIO_127
1
0
[5:0] GPIO_EN3: Enables to GPIO Ports 101 down to 96
0: GPIO enabled as output
1: GPIO enabled as input
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.20
RASCFG GPIO input register 0
GPIO_IN0
Input from GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IN0
R
Address:
SP320S_RAS_REGsBaseAddress + 0x54
Type:
R
Reset:
0x0
Description:
Input from GPIO_0 to GPIO_31
[31:0] GPIO_IN0: Input from GPIO Ports 31 down to 0
29.2.21
RASCFG GPIO input register 1
GPIO_IN1
Input from GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
GPIO_IN1
R
Address:
SP320S_RAS_REGsBaseAddress + 0x58
Type:
R
514/584
Doc ID 022642 Rev 3
9
8
7
6
5
4
3
2
1
0
RM0321
RAS configuration (RASCFG)
Reset:
0x0
Description:
Input from GPIO_32 to GPIO_63
[31:0] GPIO_IN1: Input from GPIO Ports 63 down to 32
29.2.22
RASCFG GPIO input register 2
GPIO_IN2
Input from GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IN2
R
Address:
SP320S_RAS_REGsBaseAddress + 0x5C
Type:
R
Reset:
0x0
Description:
Input from GPIO_64 to GPIO_95
[31:0] GPIO_IN2: Input from GPIO Ports 95 down to 64
29.2.23
RASCFG GPIO input register 3
GPIO_IN3
Input from GPIO_96 to GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
GPIO_IN3
R
R
Address:
SP320S_RAS_REGsBaseAddress + 0x60
Type:
R
Reset:
0x0
Description:
Input from GPIO_96 to GPIO_101
0
[5:0] GPIO_IN3: Input from GPIO Ports 101 down to 96
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.24
RASCFG GPIO interrupt mask register 0
GPIO_IRQ_MASK0
Interrupt mask for GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IRQ_MASK0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x64
Type:
R/W
Reset:
0xFFFF FFFF
Doc ID 022642 Rev 3
515/584
RAS configuration (RASCFG)
Description:
RM0321
Interrupt mask for GPIO_0 to GPIO_31
[31:0] GPIO_IRQ_MASK0: Mask for interrupts from GPIO Ports 31 down to 0
0: Interrupt is enabled
1: Interrupt is masked
29.2.25
RASCFG GPIO interrupt mask register 1
GPIO_IRQ_MASK1
Interrupt mask for GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IRQ_MASK1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x68
Type:
R/W
Reset:
0xFFFF FFFF
Description:
Interrupt mask for GPIO_32 to GPIO_63
[31:0] GPIO_IRQ_MASK1: Mask for interrupts from GPIO Ports 63 down to 32
0: Interrupt is enabled
1: Interrupt is masked
29.2.26
RASCFG GPIO interrupt mask register 2
GPIO_IRQ_MASK2
Interrupt mask for GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IRQ_MASK2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x6C
Type:
R/W
Reset:
0xFFFF FFFF
Description:
Interrupt mask for GPIO_64 to GPIO_95
[31:0] GPIO_IRQ_MASK2: Mask for interrupts from GPIO Ports 95 down to 64
0: Interrupt is enabled
1: Interrupt is masked
29.2.27
RASCFG GPIO interrupt mask register 3
GPIO_IRQ_MASK3
Interrupt mask for GPIO_96 to GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
8
7
6
5
4
3
2
1
GPIO_IRQ_MASK3
R
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x70
Type:
R/W
516/584
9
RESERVED
Doc ID 022642 Rev 3
0
RM0321
RAS configuration (RASCFG)
Reset:
0xFFFF FFFF
Description:
Interrupt mask for GPIO_96 to GPIO_101
[5:0] GPIO_IRQ_MASK3: Mask for interrupts from GPIO Ports 101 down to 96
0: Interrupt is enabled
1: Interrupt is masked
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.28
RASCFG GPIO legacy interrupt status register 0
GPIO_MASKED_INT0
Legacy GPIO interrupt status for GPIO_0 to
GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_MASKED_INT0
R
Address:
SP320S_RAS_REGsBaseAddress + 0x74
Type:
R
Reset:
0x0
Description:
Legacy GPIO interrupt status for GPIO_0 to GPIO_31
[31:0] GPIO_MASKED_INT0: Legacy interrupts status from GPIO_31 down to GPIO_0
0: No interrupt
1: Interrupt received
29.2.29
RASCFG GPIO legacy interrupt status register 1
GPIO_MASKED_INT1
Legacy GPIO interrupt status for GPIO_32 to
GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_MASKED_INT1
R
Address:
SP320S_RAS_REGsBaseAddress + 0x78
Type:
R
Reset:
0x0
Description:
Legacy GPIO interrupt status for GPIO_32 to GPIO_63
[31:0] GPIO_MASKED_INT1: Legacy interrupts status from GPIO_63 down to GPIO_32
0: No interrupt
1: Interrupt received
Doc ID 022642 Rev 3
517/584
RAS configuration (RASCFG)
29.2.30
RM0321
RASCFG GPIO legacy interrupt status register 2
GPIO_MASKED_INT2
Legacy GPIO interrupt status for GPIO_64 to
GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_MASKED_INT2
R
Address:
SP320S_RAS_REGsBaseAddress + 0x7C
Type:
R
Reset:
0x0
Description:
Legacy GPIO interrupt status for GPIO_64 to GPIO_95
[31:0] GPIO_MASKED_INT2: Legacy interrupts status from GPIO_95 down to GPIO_64
0: No interrupt
1: Interrupt received
29.2.31
RASCFG GPIO legacy interrupt status register 3
GPIO_MASKED_INT3
Legacy GPIO interrupt status for GPIO_96 to
GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
RESERVED
GPIO_MASKED_INT3
R
R
Address:
SP320S_RAS_REGsBaseAddress + 0x80
Type:
R
Reset:
0x0
Description:
Legacy GPIO interrupt status for GPIO_96 to GPIO_101
[5:0] GPIO_MASKED_INT3: Legacy interrupts status from GPIO_101 down to GPIO_96
0: No interrupt
1: Interrupt received
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.32
RASCFG GPIO interrupt status register 0
GPIO_IRQ0
Interrupt status for GPIO_0 to GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
GPIO_IRQ0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x84
Type:
R/W
Reset:
0x0
518/584
Doc ID 022642 Rev 3
9
8
7
6
5
4
3
2
1
0
RM0321
RAS configuration (RASCFG)
Description:
Interrupt status for GPIO_0 to GPIO_31
[31:0] GPIO_IRQ0: Status of interrupts from GPIO Ports 31 down to 0
0: Interrupt is not received or cleared
1: Interrupt is received
29.2.33
RASCFG GPIO interrupt status register 1
GPIO_IRQ1
Interrupt status for GPIO_32 to GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IRQ1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x88
Type:
R/W
Reset:
0x0
Description:
Interrupt status for GPIO_32 to GPIO_63
[31:0] GPIO_IRQ1: Status of interrupts from GPIO Ports 63 down to 32
0: Interrupt is not received or cleared
1: Interrupt is received
29.2.34
RASCFG GPIO interrupt status register 2
GPIO_IRQ2
Interrupt status for GPIO_64 to GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
GPIO_IRQ2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x8C
Type:
R/W
Reset:
0x0
Description:
Interrupt status for GPIO_64 to GPIO_95
[31:0] GPIO_IRQ2: Status of interrupts from GPIO Ports 95 down to 64
0: Interrupt is not received or cleared
1: Interrupt is received
29.2.35
RASCFG GPIO interrupt status register 3
GPIO_IRQ3
Interrupt status for GPIO_96 to GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
GPIO_IRQ3
R
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x90
Type:
R/W
Doc ID 022642 Rev 3
0
519/584
RAS configuration (RASCFG)
RM0321
Reset:
0x0
Description:
Interrupt status for GPIO_96 to GPIO_101
[5:0] GPIO_IRQ3: Status of interrupts from GPIO Ports 101 down to 96
0: Interrupt is not received or cleared
1: Interrupt is received
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.36
RASCFG GPIO edge polarity register 0
GPIO_IRQ_EDGE0
Interrupt edge programmability for GPIO_0 to
GPIO_31
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
IRQ_EDGE0
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x94
Type:
R/W
Reset:
0x0
Description:
Interrupt edge programmability for GPIO_0 to GPIO_31
[31:0] IRQ_EDGE0: Edge programmability for interrupts from GPIO Ports 31 down to 0
0: Falling edge is detected as interrupt
1: Rising edge is detected as interrupt
29.2.37
RASCFG GPIO edge polarity register 1
GPIO_IRQ_EDGE1
Interrupt edge programmability for GPIO_32 to
GPIO_63
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
IRQ_EDGE1
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x98
Type:
R/W
Reset:
0x0
Description:
Interrupt edge programmability for GPIO_32 to GPIO_63
[31:0] IRQ_EDGE1: Edge programmability for interrupts from GPIO Ports 63 down to 32
0: Falling edge is detected as interrupt
1: Rising edge is detected as interrupt
520/584
Doc ID 022642 Rev 3
2
1
0
RM0321
RAS configuration (RASCFG)
29.2.38
RASCFG GPIO edge polarity register 2
GPIO_IRQ_EDGE2
Interrupt edge programmability for GPIO_64 to
GPIO_95
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
IRQ_EDGE2
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0x9C
Type:
R/W
Reset:
0x0
Description:
Interrupt edge programmability for GPIO_64 to GPIO_95
[31:0] IRQ_EDGE2: Edge programmability for interrupts from GPIO Ports 95 down to 64
0: Falling edge is detected as interrupt
1: Rising edge is detected as interrupt
29.2.39
RASCFG GPIO edge polarity register 3
GPIO_IRQ_EDGE3
Interrupt edge programmability for GPIO_96 to
GPIO_101
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
RESERVED
IRQ_EDGE3
R
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xA0
Type:
R/W
Reset:
0x0
Description:
Interrupt edge programmability for GPIO_96 to GPIO_101
0
[5:0] IRQ_EDGE3: Edge programmability for interrupts from GPIO Ports 101 down to 96
0: Falling edge is detected as interrupt
1: Rising edge is detected as interrupt
Note: GPIO_98 to GPIO_101 are PL_CLK1 to PL_CLK4
29.2.40
RASCFG extended mode IO select register 0
RAS_iosel_reg0
IP Port select for GPIO_0 to GPIO_9 in Extended
Mode
RAS_sel_1
RAS_sel_0
1
RAS_sel_2
2
RAS_sel_3
3
RAS_sel_4
4
RAS_sel_5
5
RAS_sel_6
6
RAS_sel_7
7
RAS_sel_8
8
RAS_sel_9
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
0
SP320S_RAS_REGsBaseAddress + 0xA4
Doc ID 022642 Rev 3
521/584
RAS configuration (RASCFG)
RM0321
Type:
R/W
Reset:
0x0
Description:
IP Port select for GPIO_0 to GPIO_9 in Extended Mode
[29:27] RAS_sel_9: IP Port select for GPIO_9
000: GPIO
001: UART3_TX
010: PWM0
011: GPIO
100: I2C1_SDA
Rest: Reserved
[26:24] RAS_sel_8: IP Port select for GPIO_8
000: GPIO
001: UART3_RX
010: PWM1
011: GPIO
100: I2C1_SCL
Rest: Reserved
[23:21] RAS_sel_7: IP Port select for GPIO_7
000: GPIO
001: UART4_TX
010: PWM2
011: GPIO
100: UART1_CTS
Rest: Reserved
[20:18] RAS_sel_6: IP Port select for GPIO_6
000: GPIO
001: UART4_RX
010: PWM3
011: GPIO
100: UART1_DTR
Rest: Reserved
[17:15] RAS_sel_5: IP Port select for GPIO_5
000: touchscreen_Y
001: UART5_TX
010: GPIO
011: GPIO
100: UART1_RI
Rest: Reserved
[14:12] RAS_sel_4: IP Port select for GPIO_4
000: GPIO
001: UART5_RX
010: GPIO
011: GPIO
100: UART1_DCD
Rest: Reserved
[11:9] RAS_sel_3: IP Port select for GPIO_3
000: I2C2_SDA
001: UART6_TX
010: GPIO
011: GPIO
100: UART1_DSR
Rest: Reserved
522/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_2: IP Port select for GPIO_2
000: I2C2_SCL
001: UART6_RX
010: GPIO
011: GPIO
100: UART1_RTS
Rest: Reserved
[5:3] RAS_sel_1: IP Port select for GPIO_1
000: UART2_TX
001: UART2_TX
010: UART2_TX
011: UART2_TX
100: I2C2_SDA
Rest: Reserved
[2:0] RAS_sel_0: IP Port select for GPIO_0
000: UART2_RX
001: UART2_RX
010: UART2_RX
011: UART2_RX
100: I2C2_SCL
Rest: Reserved
29.2.41
RASCFG extended mode IO select register 1
RAS_iosel_reg1
IP Port select for GPIO_10 to GPIO_19 in Extended
Mode
RAS_sel_11
RAS_sel_10
1
RAS_sel_12
2
RAS_sel_13
3
RAS_sel_14
4
RAS_sel_15
5
RAS_sel_16
6
RAS_sel_17
7
RAS_sel_18
8
RAS_sel_19
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xA8
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
523/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_10 to GPIO_19 in Extended Mode
[29:27] RAS_sel_19: IP Port select for GPIO_19
000: SSP1_CLK
001: I2C2_SCL
010: GPIO
011: SSP1_CLK
100: RMII1_CRS_DV
Rest: Reserved
[26:24] RAS_sel_18: IP Port select for GPIO_18
000: SSP1_SS0
001: GPIO
010: GPIO
011: SSP1_SS0
100: RMII1_RX_ER
Rest: Reserved
[23:21] RAS_sel_17: IP Port select for GPIO_17
000: SSP1_MISO
001: GPIO
010: GPIO
011: SSP1_MISO
100: RMII0_TXD1
Rest: Reserved
[20:18] RAS_sel_16: IP Port select for GPIO_16
000: SSP2_MOSI
001: UART3_TX
010: GPIO
011: GPIO
100: RMII0_TX_EN
Rest: Reserved
[17:15] RAS_sel_15: IP Port select for GPIO_15
000: SSP2_CLK
001: UART3_RX
010: PWM0
011: PWM0
100: RMII0_RXD1
Rest: Reserved
[14:12] RAS_sel_14: IP Port select for GPIO_14
000: SSP2_SS0
001: UART4_TX
010: PWM1
011: PWM1
100: RMII0_CRS_DV
Rest: Reserved
[11:9] RAS_sel_13: IP Port select for GPIO_13
000: SSP2_MISO
001: UART4_RX
010: PWM2
011: PWM2
100: RMII0_RX_ER
Rest: Reserved
524/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_12: IP Port select for GPIO_12
000: PWM3
001: GPIO
010: PWM3
011: PWM3
100: SD_CD
Rest: Reserved
[5:3] RAS_sel_11: IP Port select for GPIO_11
000: MDIO
001: GPIO
010: MDIO
011: MDIO
100: RMII_MDC
Rest: Reserved
[2:0] RAS_sel_10: IP Port select for GPIO_10
000: MDC
001: GPIO
010: MDC
011: MDC
100: RMII_MDIO
Rest: Reserved
29.2.42
RASCFG extended mode IO select register 2
RAS_iosel_reg2
IP Port select for GPIO_20 to GPIO_29 in Extended
Mode
RAS_sel_21
RAS_sel_20
1
RAS_sel_22
2
RAS_sel_23
3
RAS_sel_24
4
RAS_sel_25
5
RAS_sel_26
6
RAS_sel_27
7
RAS_sel_28
8
RAS_sel_29
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xAC
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
525/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_20 to GPIO_29 in Extended Mode
[29:27] RAS_sel_29: IP Port select for GPIO_29
000: UART1_TX
001: UART1_TX
010: UART1_TX
011: UART1_TX
100: PWM2
Rest: Reserved
[26:24] RAS_sel_28: IP Port select for GPIO_28
000: UART1_RX
001: UART1_RX
010: UART1_RX
011: UART1_RX
100: PWM3
Rest: Reserved
[23:21] RAS_sel_27: IP Port select for GPIO_27
000: Reserved
001: GPIO
010: Reserved
011: Reserved
100: RMII0_TXD0
Rest: Reserved
[20:18] RAS_sel_26: IP Port select for GPIO_26
000: Reserved
001: GPIO
010: Reserved
011: Reserved
100: RMII0_RXD0
Rest: Reserved
[17:15] RAS_sel_25: IP Port select for GPIO_25
000: Reserved
001: GPIO
010: GPIO
011: Reserved
100: RMII1_TXD0
Rest: Reserved
[14:12] RAS_sel_24: IP Port select for GPIO_24
000: Reserved
001: GPIO
010: GPIO
011: Reserved
100: RMII1_RXD0
Rest: Reserved
[11:9] RAS_sel_23: IP Port select for GPIO_23
000: Reserved
001: GPIO
010: Reserved
011: Reserved
100: RMII1_TX_EN
Rest: Reserved
526/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_22: IP Port select for GPIO_22
000: Reserved
001: GPIO
010: Reserved
011: Reserved
100: RMII_REF_CLK
Rest: Reserved
[5:3] RAS_sel_21: IP Port select for GPIO_21
000: Reserved
001: GPIO
010: Reserved
011: Reserved
100: RMII1_TXD1
Rest: Reserved
[2:0] RAS_sel_20: IP Port select for GPIO_20
000: SSP1_MOSI
001: I2C2_SDA
010: GPIO
011: SSP1_MOSI
100: RMII1_RXD1
Rest: Reserved
29.2.43
RASCFG extended mode IO select register 3
RAS_iosel_reg3
IP Port select for GPIO_30 to GPIO_39 in Extended
Mode
RAS_sel_31
RAS_sel_30
1
RAS_sel_32
2
RAS_sel_33
3
RAS_sel_34
4
RAS_sel_35
5
RAS_sel_36
6
RAS_sel_37
7
RAS_sel_38
8
RAS_sel_39
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xB0
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
527/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_30 to GPIO_39 in Extended Mode
[29:27] RAS_sel_39: IP Port select for GPIO_39
000: I2S_CLK
001: I2S_CLK
010: UART4_RX
011: GPIO
100: SSP1_MOSI
Rest: Reserved
[26:24] RAS_sel_38: IP Port select for GPIO_38
000: PWM0
001: PWM0
010: UART5_TX
011: GPIO
100: SSP1_CLK
Rest: Reserved
[23:21] RAS_sel_37: IP Port select for GPIO_37
000: PWM1
001: PWM1
010: UART5_RX
011: GPIO
100: SSP1_SS0
Rest: Reserved
[20:18] RAS_sel_36: IP Port select for GPIO_36
000: Touchscreen_X
001: GPIO
010: UART1_CTS
011: UART1_CTS
100: SSP1_MISO
Rest: Reserved
[17:15] RAS_sel_35: IP Port select for GPIO_35
000: audio_over_samp_clk
001: audio_over_samp_clk
010: UART1_DTR
011: UART1_DTR
100: SSP2_MOSI
Rest: Reserved
[14:12] RAS_sel_34: IP Port select for GPIO_34
000: SD_LED/PWM2
001: SD_LED/PWM2
010: UART1_RI
011: UART1_RI
100: SSP2_CLK
Rest: Reserved
[11:9] RAS_sel_33: IP Port select for GPIO_33
000: CAN0_TX
001: CAN0_TX
010: CAN0_TX
011: UART1_DCD
100: SSP2_SS0
Rest: Reserved
528/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_32: IP Port select for GPIO_32
000: CAN0_RX
001: CAN0_RX
010: CAN0_RX
011: UART1_DSR
100: SSP2_MISO
Rest: Reserved
[5:3] RAS_sel_31: IP Port select for GPIO_31
000: CAN1_TX
001: CAN1_TX
010: CAN1_TX
011: UART1_RTS
100: PWM0
Rest: Reserved
[2:0] RAS_sel_30: IP Port select for GPIO_30
000: CAN1_RX
001: CAN1_RX
010: CAN1_RX
011: GPIO
100: PWM1
Rest: Reserved
29.2.44
RASCFG extended mode IO select register 4
RAS_iosel_reg4
IP Port select for GPIO_40 to GPIO_49 in Extended
Mode
RAS_sel_41
RAS_sel_40
1
RAS_sel_42
2
RAS_sel_43
3
RAS_sel_44
4
RAS_sel_45
5
RAS_sel_46
6
RAS_sel_47
7
RAS_sel_48
8
RAS_sel_49
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xB4
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
529/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_40 to GPIO_49 in Extended Mode
[29:27] RAS_sel_49: IP Port select for GPIO_49
000: SD_DAT6
001: SD_DAT6
010: EMI_D12/FSMC_D12
011: SD_DAT6
100: SSP1_SS0
Rest: Reserved
[26:24] RAS_sel_48: IP Port select for GPIO_48
000: SD_DAT5
001: SD_DAT5
010: EMI_D13/FSMC_D13
011: SD_DAT5
100: SSP1_MISO
Rest: Reserved
[23:21] RAS_sel_47: IP Port select for GPIO_47
000: SD_DAT4
001: SD_DAT4
010: EMI_D14/FSMC_D14
011: SD_DAT4
100: SSP2_MOSI
Rest: Reserved
[20:18] RAS_sel_46: IP Port select for GPIO_46
000: SD_DAT3
001: SD_DAT3
010: EMI_D15/FSMC_D15
011: SD_DAT3
100: SSP2_CLK
Rest: Reserved
[17:15] RAS_sel_45: IP Port select for GPIO_45
000: SD_DAT2
001: SD_DAT2
010: UART1_DCD
011: SD_DAT2
100: SSP2_SS0
Rest: Reserved
[14:12] RAS_sel_44: IP Port select for GPIO_44
000: SD_DAT1
001: SD_DAT1
010: UART1_DSR
011: SD_DAT1
100: SSP2_MISO
Rest: Reserved
[11:9] RAS_sel_43: IP Port select for GPIO_43
000: SD_DAT0
001: SD_DAT0
010: UART1_RTS
011: SD_DAT0
100: PWM0
Rest: Reserved
530/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_42: IP Port select for GPIO_42
000: I2S_RX
001: I2S_RX
010: UART3_TX
011: GPIO
100: PWM1
Rest: Reserved
[5:3] RAS_sel_41: IP Port select for GPIO_41
000: I2S_TX
001: I2S_TX
010: UART3_RX
011: GPIO
100: PWM2
Rest: Reserved
[2:0] RAS_sel_40: IP Port select for GPIO_40
000: I2S_LR
001: I2S_LR
010: UART4_TX
011: GPIO
100: PWM3
Rest: Reserved
29.2.45
RASCFG extended mode IO select register 5
RAS_iosel_reg5
IP Port select for GPIO_50 to GPIO_59 in Extended
Mode
RAS_sel_51
RAS_sel_50
1
RAS_sel_52
2
RAS_sel_53
3
RAS_sel_54
4
RAS_sel_55
5
RAS_sel_56
6
RAS_sel_57
7
RAS_sel_58
8
RAS_sel_59
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xB8
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
531/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_50 to GPIO_59 in Extended Mode
[29:27] RAS_sel_59: IP Port select for GPIO_59
000: FSMC_WE
001: FSMC_WE
010: EMI_WE
011: FSMC_WE
100: PWM1
Rest: Reserved
[26:24] RAS_sel_58: IP Port select for GPIO_58
000: FSMC_RE
001: FSMC_RE
010: EMI_OE
011: FSMC_RE
100: PWM2
Rest: Reserved
[23:21] RAS_sel_57: IP Port select for GPIO_57
000: FSMC_CMD_LE
001: FSMC_CMD_LE
010: FSMC_CMD_LE
011: FSMC_CMD_LE
100: PWM3
Rest: Reserved
[20:18] RAS_sel_56: IP Port select for GPIO_56
000: FSMC_RDY/BSY
001: FSMC_RDY/BSY
010: FSMC_RDY/BSY
011: FSMC_RDY/BSY
100: GPIO
Rest: Reserved
[17:15] RAS_sel_55: IP Port select for GPIO_55
000: FSMC_CS0
001: FSMC_CS0
010: EMI_CE_0
011: FSMC_CS0
100: GPIO
Rest: Reserved
[14:12] RAS_sel_54: IP Port select for GPIO_54
000: FSMC_CS1
001: FSMC_CS1
010: EMI_CE_1
011: FSMC_CS1
100: GPIO
Rest: Reserved
[11:9] RAS_sel_53: IP Port select for GPIO_53
000: FSMC_CS2
001: FSMC_CS2
010: EMI_CE_2
011: FSMC_CS2
100: UART3_TX
Rest: Reserved
532/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_52: IP Port select for GPIO_52
000: FSMC_CS3
001: FSMC_CS3
010: EMI_CE_3
011: FSMC_CS3
100: UART3_RX
Rest: Reserved
[5:3] RAS_sel_51: IP Port select for GPIO_51
000: SD_CD
001: SD_CD
010: EMI_BYTEN_0
011: SD_CD
100: SSP1_MOSI
Rest: Reserved
[2:0] RAS_sel_50: IP Port select for GPIO_50
000: SD_DAT7
001: SD_DAT7
010: EMI_BYTEN_1
011: SD_DAT7
100: SSP1_CLK
Rest: Reserved
29.2.46
RASCFG extended mode IO select register 6
RAS_iosel_reg6
IP Port select for GPIO_60 to GPIO_69 in Extended
Mode
RAS_sel_61
RAS_sel_60
1
RAS_sel_62
2
RAS_sel_63
3
RAS_sel_64
4
RAS_sel_65
5
RAS_sel_66
6
RAS_sel_67
7
RAS_sel_68
8
RAS_sel_69
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xBC
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
533/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_60 to GPIO_69 in Extended Mode
[29:27] RAS_sel_69: IP Port select for GPIO_69
000: CLCD_CLPOWER
001: GPIO
010: EMI_WAIT
011: SPP_SELINn
100: UART5_RX
Rest: Reserved
[26:24] RAS_sel_68: IP Port select for GPIO_68
000: FSMC_D00
001: FSMC_D00
010: EMI_D0
011: FSMC_D00
100: SSP1_MOSI
Rest: Reserved
[23:21] RAS_sel_67: IP Port select for GPIO_67
000: FSMC_D01
001: FSMC_D01
010: EMI_D1
011: FSMC_D01
100: SSP1_CLK
Rest: Reserved
[20:18] RAS_sel_66: IP Port select for GPIO_66
000: FSMC_D2
001: FSMC_D2
010: EMI_D2
011: FSMC_D2
100: SSP1_SS0
Rest: Reserved
[17:15] RAS_sel_65: IP Port select for GPIO_65
000: FSMC_D3
001: FSMC_D3
010: EMI_D3
011: FSMC_D3
100: SSP1_MISO
Rest: Reserved
[14:12] RAS_sel_64: IP Port select for GPIO_64
000: FSMC_D4
001: FSMC_D4
010: EMI_D4
011: FSMC_D4
100: SSP2_MOSI
Rest: Reserved
[11:9] RAS_sel_63: IP Port select for GPIO_63
000: FSMC_D5
001: FSMC_D5
010: EMI_D5
011: FSMC_D5
100: SSP2_CLK
Rest: Reserved
534/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_62: IP Port select for GPIO_62
000: FSMC_D6
001: FSMC_D6
010: EMI_D6
011: FSMC_D6
100: SSP2_SS0
Rest: Reserved
[5:3] RAS_sel_61: IP Port select for GPIO_61
000: FSMC_D7
001: FSMC_D7
010: EMI_D7
011: FSMC_D7
100: SSP2_MISO
Rest: Reserved
[2:0] RAS_sel_60: IP Port select for GPIO_60
000: FSMC_ADDR_LE
001: FSMC_ADDR_LE
010: FSMC_ADDR_LE
011: FSMC_ADDR_LE
100: PWM0
Rest: Reserved
29.2.47
RASCFG extended mode IO select register 7
RAS_iosel_reg7
IP Port select for GPIO_70 to GPIO_79 in Extended
Mode
RAS_sel_71
RAS_sel_70
1
RAS_sel_72
2
RAS_sel_73
3
RAS_sel_74
4
RAS_sel_75
5
RAS_sel_76
6
RAS_sel_77
7
RAS_sel_78
8
RAS_sel_79
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xC0
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
535/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_70 to GPIO_79 in Extended Mode
[29:27] RAS_sel_79: IP Port select for GPIO_79
000: CLCD_CLD18
001: GPIO
010: EMI_A18
011: SPP_DATA6
100: UART_RS485_TX
Rest: Reserved
[26:24] RAS_sel_78: IP Port select for GPIO_78
000: CLCD_CLD19
001: GPIO
010: EMI_A19
011: SPP_DATA7
100: UART_RS485_RX
Rest: Reserved
[23:21] RAS_sel_77: IP Port select for GPIO_77
000: CLCD_CLD20
001: GPIO
010: EMI_A20
011: SPP_STRBn
100: UART_RS485_OE
Rest: Reserved
[20:18] RAS_sel_76: IP Port select for GPIO_76
000: CLCD_CLD21
001: GPIO
010: EMI_A21
011: SPP_ACKn
100: I2C2_SDA
Rest: Reserved
[17:15] RAS_sel_75: IP Port select for GPIO_75
000: CLCD_CLD22
001: GPIO
010: EMI_A22
011: SPP_BUSY
100: I2C2_SCL
Rest: Reserved
[14:12] RAS_sel_74: IP Port select for GPIO_74
000: CLCD_CLD23
001: GPIO
010: EMI_A23
011: SPP_PERROR
100: UART3_TX
Rest: Reserved
[11:9] RAS_sel_73: IP Port select for GPIO_73
000: CLCD_CLAC
001: GPIO
010: EMI_D8
011: SPP_SELECT
100: UART3_RX
Rest: Reserved
536/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_72: IP Port select for GPIO_72
000: CLCD_CLFP
001: GPIO
010: EMI_D9
011: SPP_AUTOFDn
100: UART4_TX
Rest: Reserved
[5:3] RAS_sel_71: IP Port select for GPIO_71
000: CLCD_CLLP
001: GPIO
010: EMI_D10
011: SPP_FAULTn
100: UART4_RX
Rest: Reserved
[2:0] RAS_sel_70: IP Port select for GPIO_70
000: CLCD_CLLE
001: GPIO
010: EMI_D11
011: SPP_INITn
100: UART5_TX
Rest: Reserved
29.2.48
RASCFG extended mode IO select register 8
RAS_iosel_reg8
IP Port select for GPIO_80 to GPIO_89 in Extended
Mode
RAS_sel_81
RAS_sel_80
1
RAS_sel_82
2
RAS_sel_83
3
RAS_sel_84
4
RAS_sel_85
5
RAS_sel_86
6
RAS_sel_87
7
RAS_sel_88
8
RAS_sel_89
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xC4
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
537/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_80 to GPIO_89 in Extended Mode
[29:27] RAS_sel_89: IP Port select for GPIO_89
000: CLCD_CLD8
001: MII1_RXDV
010: EMI_A8
011: UART6_TX
100: PWM0
Rest: Reserved
[26:24] RAS_sel_88: IP Port select for GPIO_88
000: CLCD_CLD9
001: MII1_RXER
010: EMI_A9
011: UART6_RX
100: PWM1
Rest: Reserved
[23:21] RAS_sel_87: IP Port select for GPIO_87
000: CLCD_CLD10
001: MII1_RXD0
010: EMI_A_10
011: GPIO
100: PWM2
Rest: Reserved
[20:18] RAS_sel_86: IP Port select for GPIO_86
000: CLCD_CLD11
001: MII1_RXD1
010: EMI_A11
011: GPIO
100: PWM3
Rest: Reserved
[17:15] RAS_sel_85: IP Port select for GPIO_85
000: CLCD_CLD12
001: MII1_RXD2
010: EMI_A12
011: SPP_DATA0
100: UART1_CTS
Rest: Reserved
[14:12] RAS_sel_84: IP Port select for GPIO_84
000: CLCD_CLD13
001: MII1_RXD3
010: EMI_A13
011: SPP_DATA1
100: UART1_DTR
Rest: Reserved
[11:9] RAS_sel_83: IP Port select for GPIO_83
000: CLCD_CLD14
001: MII1_COL
010: EMI_A14
011: SPP_DATA2
100: UART1_RI
Rest: Reserved
538/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_82: IP Port select for GPIO_82
000: CLCD_CLD15
001: MII1_CRS
010: EMI_A15
011: SPP_DATA3
100: UART1_DCD
Rest: Reserved
[5:3] RAS_sel_81: IP Port select for GPIO_81
000: CLCD_CLD16
001: MII1_MDIO
010: EMI_A16
011: SPP_DATA4
100: UART1_DSR
Rest: Reserved
[2:0] RAS_sel_80: IP Port select for GPIO_80
000: CLCD_CLD17
001: MII1_MDC
010: EMI_A17
011: SPP_DATA5
100: UART1_RTS
Rest: Reserved
29.2.49
RASCFG extended mode IO select register 9
RAS_iosel_reg9
IP Port select for GPIO_90 to GPIO_99 in Extended
Mode
RAS_sel_91
RAS_sel_90
1
RAS_sel_92
2
RAS_sel_93
3
RAS_sel_94
4
RAS_sel_95
5
RAS_sel_96
6
RAS_sel_97
7
RAS_sel_98
8
RAS_sel_99
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xC8
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
539/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for GPIO_90 to GPIO_99 in Extended Mode
[29:27] RAS_sel_99: IP Port select for PL_CLK2
000: SD_CLK
001: SD_CLK
010: I2C1_SCL
011: SD_CLK
100: UART3_RX
Rest: Reserved
[26:24] RAS_sel_98: IP Port select for PL_CLK1
000: CLCD_CLCP
001: GPIO
010: I2C1_SDA
011: SD_LED
100: UART3_TX
Rest: Reserved
[23:21] RAS_sel_97: IP Port select for GPIO_97
000: CLCD_CLD0
001: MII1_TXCLK
010: EMI_A0
011: I2C2_SDA
100: SSP1_MOSI
Rest: Reserved
[20:18] RAS_sel_96: IP Port select for GPIO_96
000: CLCD_CLD1
001: MII1_TXD0
010: EMI_A1
011: I2C2_SCL
100: SSP1_CLK
Rest: Reserved
[17:15] RAS_sel_95: IP Port select for GPIO_95
000: CLCD_CLD2
001: MII1_TXD1
010: EMI_A2
011: UART3_TX
100: SSP1_SS0
Rest: Reserved
[14:12] RAS_sel_94: IP Port select for GPIO_94
000: CLCD_CLD3
001: MII1_TXD2
010: EMI_A3
011: UART3_RX
100: SSP1_MISO
Rest: Reserved
[11:9] RAS_sel_93: IP Port select for GPIO_93
000: CLCD_CLD4
001: MII_TXD3
010: EMI_A4
011: UART4_TX
100: SSP2_MOSI
Rest: Reserved
540/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[8:6] RAS_sel_92: IP Port select for GPIO_92
000: CLCD_CLD5
001: MII_TXEN
010: EMI_A5
011: UART4_RX
100: SSP2_CLK
Rest: Reserved
[5:3] RAS_sel_91: IP Port select for GPIO_91
000: CLCD_CLD6
001: MII1_TXER
010: EMI_A6
011: UART5_TX
100: SSP2_SS0
Rest: Reserved
[2:0] RAS_sel_90: IP Port select for GPIO_90
000: CLCD_CLD7
001: MII1_RXCLK
010: EMI_A7
011: UART5_RX
100: SSP2_MISO
Rest: Reserved
29.2.50
RASCFG extended mode IO select register 10
RAS_iosel_reg10
IP Port select for PL_CLK3 and PL_CLK4 and
directing IP Ports on multiple GPIOs in Extended
Mode
SSP2_IO_sel
SSP1_IO_sel
RESERVED
RAS_sel_101
RAS_sel_100
1
UART1_IO_sel
2
UART3_IO_sel
3
UART4_IO_sel
4
UART5_IO_sel
5
UART6_IO_sel
6
I2C1_IO_sel
7
I2C2_IO_sel
8
SD_CD_IO_sel
9
RESERVED
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
R
R/
W
R/W
R/
W
R/
W
R/W
R/W
R/W
R/W
R/W
R/W
R
R/W
R/W
Address:
SP320S_RAS_REGsBaseAddress + 0xCC
Type:
R/W
Reset:
0x0
Doc ID 022642 Rev 3
0
541/584
RAS configuration (RASCFG)
Description:
RM0321
IP Port select for PL_CLK3 and PL_CLK4 and remapping IP Ports on multiple GPIOs
in Extended Mode
[29] SD_CD_IO_sel: For remapping SDIO Card Detect signal on different pins
0: SD_CD available on GPIO_12
1: SD_CD available on GPIO_51
[28:26] I2C2_IO_sel: For remapping I2C2 SDA and SCL signals on different pins
000: I2C2_SDA and I2C2_SCL mapped on GPIO_97 and GPIO_96
001: I2C2_SDA and I2C2_SCL mapped on GPIO_76 and GPIO_75
010: I2C2_SDA and I2C2_SCL mapped on GPIO_20 and GPIO_19
011: I2C2_SDA and I2C2_SCL mapped on GPIO_3 and GPIO_2
100: I2C2_SDA and I2C2_SCL mapped on GPIO_1 and GPIO_0
Other values: Reserved
[25] I2C1_IO_sel: For remapping I2C1 SDA and SCL signals on different pins
0: I2C1_SDA and I2C1_SCL mapped on GPIO_9 and GPIO_8
1: I2C1_SDA and I2C1_SCL mapped on GPIO_98 and GPIO_99
[24] UART6_IO_sel: For remapping UART6_RX signal on different pins
0: UART6 RX mapped on GPIO_88
1: UART6 RX mapped on GPIO_2
[23:22] UART5_IO_sel: For remapping UART5_RX signal on different pins
00: UART5 RX mapped on GPIO_90
01: UART5 RX mapped on GPIO_69
10: UART5 RX mapped on GPIO_37
11: UART5 RX mapped on GPIO_4
[21:19] UART4_IO_sel: For remapping UART4_RX signal on different pins
A. Extended Mode
000: UART4_RX mapped on GPIO_92
001: UART4_RX mapped on GPIO_71
010: UART4_RX mapped on GPIO_39
011: UART4_RX mapped on GPIO_13
100: UART4_RX mapped on GPIO_6
101: UART4_RX mapped on PL_CLK4
Rest: Reserved
B. MII Automation networking mode
xx0: UART4_RX mapped on GPIO_13
xx1: UART4_RX mapped on GPIO_6
[18:16] UART3_IO_sel: For remapping UART3_RX signal on different pins
A. Extended Mode
000: UART3_RX mapped on GPIO 94
001: UART3_RX mapped on GPIO 73
010: UART3_RX mapped on GPIO 52
011: UART3_RX mapped on GPIO 41
100: UART3_RX mapped on GPIO 15
101: UART3_RX mapped on GPIO 8
110: UART3_RX mapped on GPIO 99
Rest: Reserved
B. MII Automation networking mode
xx0: UART3_RX mapped on GPIO 15
xx1: UART3_RX mapped on GPIO 8
542/584
Doc ID 022642 Rev 3
RM0321
RAS configuration (RASCFG)
[15:14] UART1_IO_sel: For remapping UART1_DSR, DCD, RI and CTS signals on different pins
00: UART1_DSR, DCD, RI and CTS mapped on GPIO_81, 82, 83 and 85
01: UART1_DSR, DCD, RI and CTS mapped on GPIO_44, 45, 34 and 36
10: UART1_DSR, DCD, RI and CTS mapped on GPIO_32, 33, 34 and 36
11: UART1_DSR, DCD, RI and CTS mapped on GPIO_3, 4, 5 and 7
[13:11] SSP2_IO_sel: For remapping SSP2_MISO, SS0, CLK and MOSI signals on different pins
000: SSP2_MISO, SS0, CLK and MOSI mapped on GPIO_90, 91, 92 and 93
001: SSP2_MISO, SS0, CLK and MOSI mapped on GPIO_61, 62, 63 and 64
010: SSP2_MISO, SS0, CLK and MOSI mapped on GPIO_44, 45, 46 and 47
011: SSP2_MISO, SS0, CLK and MOSI mapped on GPIO_32, 33, 34 and 35
100: SSP2_MISO, SS0, CLK and MOSI mapped on GPIO_13, 14, 15 and 16
Rest: Reserved
[10:8] SSP1_IO_sel: For remapping SSP1_MISO, SS0, CLK and MOSI signals on different pins
000: SSP1_MISO, SS0, CLK and MOSI mapped on GPIO_94, 95, 96 and 97
001: SSP1_MISO, SS0, CLK and MOSI mapped on GPIO_65, 66, 67 and 68
010: SSP1_MISO, SS0, CLK and MOSI mapped onn GPIO_48, 49, 50 and 51
011: SSP1_MISO, SS0, CLK and MOSI mapped on GPIO_36, 37, 38 and 39
100: SSP1_MISO, SS0, CLK and MOSI mapped on GPIO_17, 18, 19 and 20
Rest: Reserved
[5:3] RAS_sel_101: IP Port select for PL_CLK4
000: SD_CMD
001: SD_CMD
010: GPIO
011: SD_CMD
100: UART4_RX
Rest: Reserved
[2:0] RAS_sel_100: IP Port select for PL_CLK3
000: SD_WP
001: SD_WP
010: GPIO
011: SD_WP
100: UART4_TX
Rest: Reserved
Doc ID 022642 Rev 3
543/584
Vectored interrupt controller (VIC)
RM0321
30
Vectored interrupt controller (VIC)
30.1
Register summary
The VIC can be fully configured by programming its 32-bit wide registers which can be
accessed at the base address 0xF110.0000.
VIC registers can be logically divided in four main groups:
Note:
●
Interrupt control and status registers (listed in Table 574), for interrupt configuration.
●
Vector address registers (listed in Table 575), which contain the address of the ISRs.
●
Vector control registers (listed in Table 576), used to select the interrupt source for the
vectored interrupt.
●
Identification registers (listed in Table 577), namely eight 8-bit RO registers reporting
VIC-specific information (part number, revision number). Refer to ARM technical
documentation for further details.
Offset addresses from 0x300 to 0x310 are reserved for test purposes.
Table 574. VIC interrupt control registers summary
Name
Offset
Type
Reset value
Description
VICIRQSTATUS
0x000
RO
32’h0
IRQ status
VICFIQSTATUS
0x004
RO
32’h0
FIQ status
VICRAWINTR
0x008
RO
-
Raw interrupt status
VICINTSELECT
0x00C
RW
32’h0
Interrupt select
VICINTENABLE
0x010
RW
32’h0
Interrupt enable
VICINTENCLEAR
0x014
WO
-
Interrupt enable clear
VICSOFTINT
0x018
RW
32’h0
Software interrupt
VICSOFTINTCLEAR 0x01C
WO
-
Software interrupt clear
VICPROTECTION
RW
32’h0
Protection enable
0x020
Table 575. VIC vector address registers summary
544/584
Name
Offset
Type
Reset value
Description
VICVECTADDR
0x030
RW
32’h0
Vector address
VICDEFVECTADDR
0x034
RW
32’h0
Default vector address
Doc ID 022642 Rev 3
RM0321
Vectored interrupt controller (VIC)
Table 575. VIC vector address registers summary (continued)
Name
Offset
Type
Reset value
VICVECTADDR0
0x100
RW
32’h0
VICVECTADDR1
0x104
RW
32’h0
VICVECTADDR2
0x108
RW
32’h0
VICVECTADDR3
0x10C
RW
32’h0
VICVECTADDR4
0x110
RW
32’h0
VICVECTADDR5
0x114
RW
32’h0
VICVECTADDR6
0x118
RW
32’h0
VICVECTADDR7
0x11C
RW
32’h0
VICVECTADDR8
0x120
RW
32’h0
VICVECTADDR9
0x124
RW
32’h0
VICVECTADDR10
0x128
RW
32’h0
VICVECTADDR11
0x12C
RW
32’h0
VICVECTADDR12
0x130
RW
32’h0
VICVECTADDR13
0x134
RW
32’h0
VICVECTADDR14
0x138
RW
32’h0
VICVECTADDR15
0x13C
RW
32’h0
Description
Vector address registers
Table 576. VIC interrupt vector control registers summary
Name
Offset
Type
Reset value
VICVECTCNTL0
0x200
RW
32’h0
VICVECTCNTL1
0x204
RW
32’h0
VICVECTCNTL2
0x208
RW
32’h0
VICVECTCNTL3
0x20C
RW
32’h0
VICVECTCNTL4
0x210
RW
32’h0
VICVECTCNTL5
0x214
RW
32’h0
VICVECTCNTL6
0x218
RW
32’h0
VICVECTCNTL7
0x21C
RW
32’h0
VICVECTCNTL8
0x220
RW
32’h0
VICVECTCNTL9
0x224
RW
32’h0
VICVECTCNTL10
0x228
RW
32’h0
VICVECTCNTL11
0x22C
RW
32’h0
VICVECTCNTL12
0x230
RW
32’h0
VICVECTCNTL13
0x234
RW
32’h0
VICVECTCNTL14
0x238
RW
32’h0
VICVECTCNTL15
0x23C
RW
32’h0
Description
Vector Control.
Doc ID 022642 Rev 3
545/584
Vectored interrupt controller (VIC)
RM0321
Table 577. VIC identification registers summary
Name
Offset
Type
Reset value
VICPERIPHID0
0xFE0
RO
8’h90
VICPERIPHID1
0xFE4
RO
8’h11
VICPERIPHID2
0xFE8
RO
8’h04
VICPERIPHID3
0xFEC
RO
8’h00
VICPCELLID0
0xFF0
RO
8’h0D
VICPCELLID1
0xFF4
RO
8’hF0
VICPCELLID2
0xFF8
RO
8’h05
VICPCELLID3
0xFFC
RO
8’hB1
Description
Peripheral Identification.
Identification Registers
30.2
Register descriptions
30.2.1
VICIRQSTATUS register
The VICIRQSTATUS is the RO register which provides the status of interrupts after IRQ
masking (through VICINTENABLE register and VICINTSELECT register), at the output of
the interrupt request logic block.
Table 578. VICIRQSTATUS register bit assignments
30.2.2
Bit
Name
Reset
value
Description
[31:00]
IRQStatus
32’h0
Each bit is associated to an interrupt.
If a bit is set, it indicates that the relevant interrupt is
active, and generates an interrupt to the processor.
VICFIQSTATUS register
The VICFIQSTATUS is the RO register which provides the status of the interrupts after FIQ
masking (through VICINTENABLE register and VICINTSELECT register) at the output of
the interrupt request logic block.
Table 579. VICFIQSTATUS register bit assignments
30.2.3
Bit
Name
Reset
value
Description
[31:00]
FIQStatus
32’h0
Each bit is associated to an interrupt.
If a bit is set, it indicates that the relevant interrupt is
active, and generates an interrupt to the processor.
VICRAWINTR register
The VICRAWINTR is a RO register, which provides the raw status of both interrupt sources
and software interrupts (before masking through enable registers, VICINTENABLE and
VICINTSELECT).
546/584
Doc ID 022642 Rev 3
RM0321
Vectored interrupt controller (VIC)
Table 580. VICRAWINTR register bit assignments
30.2.4
Bit
Name
Reset
value
Description
[31:00]
Raw Interrupt
-
Each bit is associated to an interrupt.
If a bit is set, it indicates that the relevant interrupt
request is active before masking.
VICINTSELECT register
The VICINTSELECT is a RW register which allows to select whether the corresponding
interrupt generates an FIQ or an IRQ interrupt.
Table 581. VICINTSELECT register bit assignments
Bit
[31:00]
30.2.5
Name
IntSelect
Reset
value
Description
32’h0
Each bit is associated to an interrupt line.
Each bit allows to select the type of interrupt for
relevant interrupt requests, according to encoding:
1‘b0 = IRQ interrupt
1‘b1 = FIQ interrupt
VICINTENABLE register
The VICINTENABLE is a RW register which allows to enable the interrupt request lines by
masking the interrupt sources for the IRQ interrupt.
Table 582. VICINTENABLE register bit assignments
Bit
[31:00]
Name
IntEnable
Reset
value
Description
32’h0
Each bit is associated to an interrupt line.
If a bit is set, the relevant interrupt request to the
processor is enabled.
A HIGH bit sets the corresponding bit in the
VICINTENABLE Register. A LOW bit has no effect.
Doc ID 022642 Rev 3
547/584
Vectored interrupt controller (VIC)
30.2.6
RM0321
VICINTENCLEAR register
The VICINTENCLEAR is a WO register which allows to clear bits in the VICINTENABLE
register.
Table 583. VICINTENCLEAR register bit assignments
Bit
[31:00]
30.2.7
Name
IntEnableClear
Reset
value
Description
-
Each bit is associated to an interrupt line.
Writing a 1‘b1 in a bit, the corresponding bit in the
VICINTENABLE register is cleared.
Writing a 1‘b0 has no effect.
VICSOFTINT register
The VICSOFTINT (software interrupt) is a RW register which generates software interrupts.
Table 584. VICSOFTINT register bit assignments
30.2.8
Bit
Name
Reset
value
Description
[31:00]
SoftInt
32’h0
Each bit is associated to a source interrupt.
Setting a bit, a software interrupt for the specific source
interrupt is generated before interrupt masking.
VICSOFTINTCLEAR register
The VICSOFTINTCLEAR is a WO register which allows to clear bits in the VICSOFTINT
register.
Table 585. VICSOFTINTCLEAR register bit assignments
Bit
[31:00]
548/584
Name
SoftIntClear
Reset
value
Description
-
Each bit is associated to an interrupt line.
Writing a 1‘b1 in a bit, the corresponding bit in the
VICSOFTINT register is cleared.
Writing a 1‘b0 has no effect.
Doc ID 022642 Rev 3
RM0321
30.2.9
Vectored interrupt controller (VIC)
VICPROTECTION register
The VICPROTECTION is a RW register which allows to enable or disable protected register
access.
Table 586. VICPROTECTION register bit assignments
Bit
Name
Reset
value
Description
[31:01]
Reserved
-
Read: undefined. Write: should be zero.
1’h0
Enable/disable protected register access.
Setting this bit, protected register access is enabled ensuring
that only privileged mode accesses, reads and writes, can
access the interrupt controller registers.
Clearing this bit, protected register access is disabled allowing
both user mode and privileged mode to access the registers.
[00]
Protection
Note:
This register is cleared on reset, and it can only be accessed in privileged mode. If the AHB
master cannot generate accurate protection information, this register shall be left in its reset
state (protection disabled) in order to enable User mode access.
30.2.10
VICVECTADDR register
The VICVECTADDR (vector address) is a RW register which contains the ISR address of
the currently active interrupt.
Table 587. VICVECTADDR register bit assignments
Bit
[31:00]
Name
Vector Addr
Reset
value
Description
32’h0
Reading from this register provides the address of the
currently active ISR, indicating that the interrupt is
being serviced.
Writing to this register indicates that the interrupt has
been serviced and the interrupt is cleared.
Note:
The ISR reads the VICVECTADDR register when an IRQ interrupt is generated. At the end
of the ISR, the VICVECTADDR register is written to, to update the priority hardware.
Reading or writing to this register at other times can cause incorrect operation.
30.2.11
VICDEFVECTADDR register
The VICDEFVECTADDR (default vector address) is a RW register which contains the
default ISR address.
30.2.12
VICVECTADDR register
Each VICVECTADDRi (with i = 0...15) is a RW register which contains the ISR address for
the relevant vectored interrupt.
Doc ID 022642 Rev 3
549/584
Vectored interrupt controller (VIC)
30.2.13
RM0321
VICVECTCNTL register
Each VICVECTCNTLi (with i = 0...15) is a RW registers which allows to select the interrupt
source for the i-th vectored interrupt.
Table 588. VICVECTCNTL registers bit assignments
Bit
Name
Reset
value
Description
[31:06]
Reserved
-
Read: undefined. Write: should be zero.
[05]
E
1’h0
If set, it enables vector interrupt.
[04:00]
IntSource
5’h0
It allows to select any of the 32 interrupt sources (IRQ
only).
Note:
Vectored interrupts are only generated if the interrupt is enabled. The specific interrupt is
enabled in the VICINTENABLE register, and the interrupt is set to generate an IRQ interrupt
in the VICINTSELECT register. This prevents multiple interrupts to be generated from a
single request if the controller is incorrectly programmed.
30.2.14
Peripheral identification registers
The read-only VICPeriphID0-3 registers are four 8-bit registers, that span address locations
0xFE0-0xFEC. You can treat the registers conceptually as a single 32 bit register. The readonly registers provide the following options for the peripheral.
Table 589. Peripheral identification registers bit assignments
Bit
Name
Description
[31:24]
Configuration
This is the configuration option of the peripheral. the
configuration value is 0.
[23:20]
Revision number
This is the revision number of the peripheral. The revision
number starts from 0.
[19:12]
Designer
This is the identification of the designer
12 -15 Designer 0;
16 -19 Designer 1
Part number
This identifies the peripheral. The VIC uses the three-digit
product code 0x90.
0 - 7 Part number 0;
8-11 Part number 1
[11:00]
550/584
Doc ID 022642 Rev 3
RM0321
30.2.15
Vectored interrupt controller (VIC)
VICPERIPHID0 register
The read-only VICPERIPHID0 register, with address offset of 0xFE0, is hard-coded, and the
fields within the register determine the reset value.
Table 590. VICPERIPHID0 register bit assignments
Bit
Name
[31:08]
[07:00]
30.2.16
Description
Read undefined
Partnumber0
These bits read back as 0x90
VICPERIPHID1 register
The read-only VICPERIPHID1 register, with address offset of 0xFE4, is hard-coded, and the
fields within the register determine the reset value.
Table 591. VICPERIPHID1 register bit assignments
Bit
Name
[31:08]
30.2.17
Description
Read undefined
[07:04]
Designer0
These bits read back as 0x1
[03:00]
Partnumber1
These bits read back as 0x1
VICPERIPHID2 register
The read-only VICPERIPHID2 register, with address offset of 0xFE8, is hard-coded, and the
fields within the register determine the reset value.
Table 592. VICPERIPHID2 register bit assignments
Bit
Name
[31:08]
30.2.18
Description
Read undefined
[07:04]
Revision
These bits read back as 0x1
[03:00]
Designer1
These bits read back as 0x0
VICPERIPHID3 register
The read-only VICPERIPHID3 register, with address offset of 0xFEC, is hard-coded, and
the fields within the register determine the reset value.
Table 593. VICPERIPHID3 register bit assignments
Bit
Name
[31:08]
[07:00]
Description
Read undefined
Configuration
These bits read back as 0x0
Doc ID 022642 Rev 3
551/584
Vectored interrupt controller (VIC)
30.2.19
RM0321
Identification registers
The read-only VICPCELLID0-3 registers are four 8 bit registers, that span address locations
0xFF0-0xFFC. You can treat the registers conceptually as a single 32 bit register. Use the
register as a standard cross-peripheral identification system.
30.2.20
VICPCELLID0 register
The read-only VICPCELLID0 register, with address offset 0xFF0, is hard-coded and the
fields within the register determine the reset value.
Table 594. VICPCELLID0 register bit assignments
Bit
Name
[31:08]
[07:00]
30.2.21
Description
Read undefined
VICPCellID0
These bits read back as 0x0D
VICPCELLID1 register
The read-only VICPCELLID1 register, with address offset 0xFF4, is hard-coded and the
fields within the register determine the reset value.
Table 595. VICPCELLID1 register bit assignments
Bit
Name
[31:08]
[07:00]
30.2.22
Description
Read undefined
VICPCellID1
These bits read back as 0xF0
VICPCELLID2 register
The read-only VICPCELLID2 register, with address offset 0xFF8, is hard-coded and the
fields within the register determine the reset value.
Table 596. VICPCELLID2 register bit assignments
Bit
Name
[31:08]
[07:00]
30.2.23
Description
Read undefined
VICPCellID2
These bits read back as 0x05
VICPCELLID3 register
The read-only VICPCELLID3 register, with address offset 0xFFC, is hard-coded and the
fields within the register determine the reset value.
Table 597. VICPCELLID3 register bit assignments
Bit
Name
[31:08]
[07:00]
552/584
Description
Read undefined
VICPCellID3
These bits read back as 0xB1
Doc ID 022642 Rev 3
RM0321
Watchdog timer (WDT)
31
Watchdog timer (WDT)
31.1
Register summary
The watchdog module can be fully configured by programming its 32-bit wide registers
which can be accessed at the base address 0xFC88.0000. Watchdog registers can be
logically arranged in two main groups:
●
Control and status registers (listed in Table 598), which allow to control the Watchdog
module configuration and to get its status.
●
Identification registers (listed in Table 599), namely eight 8-bit RO registers reporting
watchdog module-specific information (part number, revision number). Refer to ARM
technical documentation for further details.
Table 598. Watchdog control and status registers summary
Name
Offset
Type
Reset value
Description
WdogLoad
0x00
RW
32’hFFFFFFFF Load register
WdogValue
0x04
RO
32’hFFFFFFFF Value register
WdogControl
0x08
RW
32’h0
Control register
WdogIntClr
0x0C
WO
-
Interrupt clear register
WdogRIS
0x10
RO
32’h0
Raw interrupt status register
WdogMIS
0x14
RO
32’h0
Masked interrupt status register
-
0x0018 to 0xBFC -
-
Reserved
WdogLock
0xC00
RW
32’h0
Lock register
-
0xC04 to 0xEFC
-
-
Reserved
-
0xF00
-
-
Reserved (for test purpose only)
-
0xF04
-
-
Reserved (for test purpose only)
-
0xF08-0xFDC
-
-
Reserved
Table 599. Watchdog identification registers summary
Name
Offset
Width Type
Reset value
WdogPeriphID0 0xFE0
8
RO
8’h05
WdogPeriphID1 0xFE4
8
RO
8’h18
WdogPeriphID2 0xFE8
8
RO
8’h14
WdogPeriphID3 0xFEC
8
RO
8’h00
WdogPCellID0
0xFF0
8
RO
8’h0D
WdogPCellID1
0xFF4
8
RO
8’hF0
WdogPCellID2
0xFF8
8
RO
8’h05
WdogPCellID3
0xFFC
8
RO
8’hB1
Description
Peripheral identification registers
Identification registers
Doc ID 022642 Rev 3
553/584
Watchdog timer (WDT)
RM0321
31.2
Register description
31.2.1
WdogLoad register
The WdogLoad is a RW register that contains the value from which the counter is to
decrement. When this register is written to, the counter is immediately restarted from the
new value. The minimum valid value for WdogLoad is 32’h1.
Note:
31.2.2
1
If WdogLoad is set to 32’h0 then an interrupt is generated immediately.
2
The WdogLoad register must be programmed with the desired time-out interval before the
watchdog module is enabled (by setting the INTEN bit of the WdogControl register,
Section 31.2.3).
WdogValue register
The WdogValue is a RO register that gives the current value of the decrementing counter.
31.2.3
WdogControl register
The WdogControl is a RW register which allows the software to control the watchdog
module.
Table 600. WdogControl register bit assignments
Bit
Name
Reset value
Description
[31:02]
Reserved
-
Read: undefined. Write: should be zero.
1’h0
Enable watchdog module reset output.
This bit acts as a mask for the reset output of the watchdog
module: it is set to enable the reset, and it is cleared to
disable the reset.
Note: If enabled (RESEN set to 1‘b1), the reset output is
asserted if the interrupt (raised when the counter reaches
zero) is not cleared by software (writing any value to
WdogIntClr register, Section 31.2.4) before the counter next
reaches zero. After reset, the counter stops.
1’h0
Enable the interrupt event.
Setting this bit, the counter and the interrupt are enabled. In
this case, the counter is re-loaded with the WdogLoad
register value and it starts to decrement. When the counter
reaches zero an interrupt is generated.
Clearing this bit, the counter and the interrupt are disabled.
[01]
[00]
31.2.4
RESEN
INTEN
WdogIntClr register
A write of any value to the WO WdogIntClr (interrupt clear) register clears the watchdog
module interrupt. Then the counter is re-loaded with the value in the WdogLoad register and
another count down sequence starts.
554/584
Doc ID 022642 Rev 3
RM0321
31.2.5
Watchdog timer (WDT)
WdogRIS register
The WdogRIS (raw interrupt status) is a RO register which indicates the raw interrupt status
from the counter (before masking by WdogControl register).
Table 601. WdogRIS register bit assignments
31.2.6
Bit
Name
Reset value
Description
[31:01]
Reserved
-
Read: undefined.
[00]
WDOGRIS 1’h0
If set, it indicates that an interrupt has been raised by the
Watchdog counter reaching zero.
WdogMIS register
The WdogMIS (masked interrupt status) is a RO register which indicates the masked
interrupt status from the counter (after masking by the Wdogcontrol register).
Table 602. WdogMIS register bit assignments
Bit
Name
Reset value
Description
[31:01]
Reserved
-
Read: undefined.
1’h0
Masked interrupt status.
The value of this bit is the logical AND of the raw interrupt
status (WDOGRIS bit of the WdogRIS register) with the
INTEN bit of the WdogControl register.,It is the same value
that is passed to the interrupt output of the Watchdog
module.
[00]
31.2.7
WDOGMIS
WdogLock register
The WdogLock is a RW register allows to enable/disable write-access to all other registers.
This is to prevent software from disabling the Watchdog module operation.
Table 603. WdogLock register bit assignments
Bit
Name
Reset value
Description
[31:01]
WDOGLOCK 32’h0
Write access enable.
Writing 32‘h1ACCE551 to this register enables write
access to all other registers. Writing any other value
disables write access to all other registers.
A read from this register returns the lock status rather than
the actual value:
32‘h00000000 = Write access to all others registers is
enabled (not locked).
32‘h00000001 = Write access to all others registers is
disabled (locked).
[00]
Reserved
Read: undefined.
-
Doc ID 022642 Rev 3
555/584
Real-time clock (RTC)
RM0321
32
Real-time clock (RTC)
32.1
Register summary
The RTC can be fully configured by programming its 32-bit wide registers which can be
accessed at the base address 0xFC90.0000.
Table 604. RTC functional registers summary
Name
Offset
Type Reset value
Description
TIME
0x000
RW
Undefined
Time register
DATE
0x004
RW
Undefined
Date register
ALARM TIME
0x008
RW
Undefined
Alarm time register
ALARM DATE
0x00C
RW
Undefined
Alarm date register
CONTROL
0x010
RW
Undefined
Control register
STATUS
0x014
RW
Undefined
Status register
REG1MC
0x018
RW
Undefined
General purpose register
REG2MC
0x01C
RW
Undefined
General purpose register
32.2
Register description
32.2.1
CONTROL register
The CONTROL is a RW register which allows the software to control the RTC.
Table 605. CONTROL register bit assignments
Bit
556/584
Name
Reset
value
Description
Interrupt event enable.
Setting this bit, interrupt event is enabled, and interrupts
generated by alarm logic are sent out (see ALARM TIME and
ALARM DATE registers).
[31]
IE
[30:10]
Reserved
[09]
TB
Time bypass (for testing purpose only).
[08]
PB
Prescaler bypass (for testing purpose only).
-
Read: undefined. Write: should be zero.
Doc ID 022642 Rev 3
RM0321
Real-time clock (RTC)
Table 605. CONTROL register bit assignments (continued)
Bit
Name
Reset
value
Description
[07:06]
Reserved
-
Read: undefined. Write: should be zero.
[05:00]
32.2.2
Force time-calendar comparisons.
Each bit of this 6 bit field allows to mask one time-calendar
element (seconds, minutes, hours, days, months, years),
according to encoding. The aim is to generate an interrupt for
any masked element, apart from actual matching of
programmed alarms.
[00] = Seconds.
[01] = Minutes.
[02] = Hours.
[03] = Days.
[04] = Months.
[05] = Years.
MASK
STATUS register
The STATUS is a RW register (with some RO fields) which indicates the status of the RTC
and allows to clear any pending interrupt.
Table 606. STATUS register bit assignments
Bit
Name
[31]
I
[30:06]
Reserved
[05]
[04]
[03]
LD
LT
PD
Reset
value
-
Type
Description
RW
Interrupt status.
Reading from this 1 bit field, the interrupt status returns.
Writing 1‘b1 to this bit clears any pending interrupts,
whereas there is no effect writing 1‘b0.
-
Read: undefined. Write: should be zero.
RO
Write to DATE register lost.
If a second write to DATE register is requested before
the first is completed, this second request is aborted and
the LD bit is set. This bit is cleared when a write to DATE
register is performed successfully.
RO
Write to TIME register lost.
If a second write to TIME register is requested before the
first is completed, this second request is aborted and the
LT bit is set. This bit is cleared when a write to TIME
register is performed successfully.
RO
Pending write to DATE register.
If set, this bit indicates that a write to DATE register
request is asserted from 48 MHz part to 32 kHz part. It is
independent from PT. A new write can be successfully
requested only when this bit is cleared.
Doc ID 022642 Rev 3
557/584
Real-time clock (RTC)
RM0321
Table 606. STATUS register bit assignments (continued)
Bit
[02]
PT
[01]
Reserved
[00]
32.2.3
Name
Reset
value
-
RC
Type
Description
RO
Pending write to TIME register.
If set, this bit indicates that a write to TIME register
request is asserted from 48 MHz part to 32 kHz part. A
new write can be successfully requested only when this
bit is cleared.
-
Read: undefined. Write: should be zero.
RO
Isolation of timer
If cleared (1‘b0), the RTC is self-isolated from the rest of
the chip. Reading and writing to TIME and DATE
registers can be safely done when this bit is set only.
TIME register
The TIME is a RW register which defines the time (hour, minutes, seconds) when the RTC
can start to count the time.
Note:
All values in this TIME register are in binary-coded decimal (BCD) format.
Table 607. TIME register bit assignments
32.2.4
Bit
Name
Reset
value
Description
[31:22]
Reserved
-
Read: undefined. Write: should be zero.
[21:20]
HT
Current hours tens.
[19:16]
HU
Current hours units.
[15]
Reserved
[14:12]
MT
Current minutes tens.
[11:08]
MU
Current minutes units.
[07]
Reserved
[06:04]
ST
Current seconds tens.
[03:00]
SU
Current seconds units.
-
-
Read: undefined. Write: should be zero.
Read: undefined. Write: should be zero.
DATE register
The DATE is a RW register which defines the date (year, month, day) when the RTC can
start to count the time.
Note:
558/584
All values in this DATE register are in binary-coded decimal (BCD) format.
Doc ID 022642 Rev 3
RM0321
Real-time clock (RTC)
Table 608. DATE register bit assignments
32.2.5
Reset
value
Bit
Name
[31:28]
YM
Current year millenniums.
[27:24]
YH
Current year hundreds.
[23:20]
YT
Current year tens.
[19:16]
YU
Current year units.
[15]
Reserved
[14:12]
MT
Current month tens.
[11:08]
MU
Current month units.
[07:06]
Reserved
[05:04]
DT
Current day tens.
[03:00]
DU
Current day units.
-
-
Description
Read: undefined. Write: should be zero.
Read: undefined. Write: should be zero.
ALARM TIME registers
The ALARM TIME is a RW register which defines a successive time, so that when the value
of TIME register is equal to the value set in this ALARM TIME register, an interrupt is
generated (if enabled, that is if IE bit in CONTROL register is set).
Note:
All values in this ALARM TIME register are in binary-coded decimal (BCD) format.
Table 609. ALARM TIME register bit assignments
Bit
Name
Reset
value
Description
[31:22]
Reserved
-
Read: undefined. Write: should be zero.
[21:20]
HT
Target hour tens.
[19:16]
HU
Target hour units.
[15]
Reserved
[14:12]
MT
Target minute tens.
[11:08]
MU
Target minute units.
[07]
Reserved
[06:04]
ST
Target second tens.
[03:00]
SU
Target second units.
-
-
Read: undefined. Write: should be zero.
Read: undefined. Write: should be zero.
Doc ID 022642 Rev 3
559/584
Real-time clock (RTC)
32.2.6
RM0321
ALARM DATE registers
The ALARM DATE is a RW register which defines a successive date, so that when the value
of DATE register is equal to the value set in this ALARM DATE register, an interrupt is
generated (if enabled, that is if IE bit in CONTROL register is set).
Note:
All values in this ALARM DATE register are in binary-coded decimal (BCD) format.
Table 610. ALARM DATE register bit assignments
32.2.7
Reset
value
Bit
Name
[31:28]
YM
Target year millenniums.
[27:24]
YH
Target year hundreds.
[23:20]
YT
Target year tens.
[19:16]
YU
Target year units.
[15]
Reserved
[14:12]
MT
Target month tens.
[11:08]
MU
Target month units.
[07:06]
Reserved
[05:04]
DT
Target day tens.
[03:00]
DU
Target day units.
-
-
Description
Read: undefined. Write: should be zero.
Read: undefined. Write: should be zero.
REGxMC register
These general purpose registers, battery powered, can be used to store information when
the system goes in a deep power saving state like “suspend to RAM”. During this state only
the DDR memory is powered and all the other parts of the system (SoC included) are
completely off.
Table 611. REG1MC registers bit assignments
Bit
Name
[31:00]
REG1MC
Reset value Description
General purpose bits
Table 612. REG2MC register bit assignments
560/584
Bit
Name
[31:00]
REG2MC
Reset value Description
General purpose bits
Doc ID 022642 Rev 3
RM0321
DMA controller (DMAC)
33
DMA controller (DMAC)
33.1
Register summary
The DMAC can be fully configured by programming its 32-bit wide registers which can be
accessed through the AHB slave interface at the base address 0xFC40.0000.
DMAC registers can be logically arranged in four main groups:
●
Global registers, listed in Table 613, for DMAC-level configuration.
●
Channel registers for programming a single DMA channel. Each DMA channel is
associated to these five registers, listed in Table 614 where n ranges from 0 to 7 being
8 the number of DMA channels supported by the DMAC.
●
Peripheral identification registers, listed in Table 615.
●
Cell identification registers, listed in Table 616.
Table 613. DMAC global registers summary
Name
Offset
Type
Reset
Value
Description
DMACIntStatus
0x000
RO
32’h0
Interrupt status
DMACIntTCStatus
0x004
RO
32’h0
Interrupt terminal count status
DMACIntTCClear
0x008
WO
32’h0
Interrupt terminal count clear
DMACIntErrorStatus
0x00C
RO
32’h0
Interrupt error status
DMACIntErrClr
0x010
WO
32’h0
Interrupt error clear
DMACRawIntTCStatus
0x014
RO
32’h0
Raw interrupt terminal count status
DMACRawIntErrorStatus
0x018
RO
32’h0
Raw interrupt error status
DMACEnbldChns
0x01C
RO
32’h0
Enabled channel
DMACSoftBReq
0x020
RW
32’h0
Software burst request
DMACSoftSReq
0x024
RW
32’h0
Software single request
DMACSoftLBReq
0x028
RW
32’h0
Software last burst request
DMACSoftLSReq
0x02C
RW
32’h0
Software last single request
DMACConfiguration
0x030
RW
32’h0
DMAC configuration
DMACSync
0x034
RW
32’h0
Synchronization
Table 614. DMAC channel registers summary
Name
Offset
Type
Reset
Value
Description
DMACCnSrcAddr
0x100 + (n · 0x020)
RW
32’h0
Channel source address
DMACCnDestAddr
0x104 + (n · 0x020)
RW
32’h0
Channel destination address
DMACCnLLI
0x108 + (n · 0x020)
RW
32’h0
Channel linked list item
DMACCnControl
0x10C + (n · 0x020)
RW
32’h0
Channel control
DMACCnConfiguration
0x110 + (n · 0x020)
RW
32’h0
Channel configuration
Doc ID 022642 Rev 3
561/584
DMA controller (DMAC)
RM0321
Table 615. DMAC peripheral registers summary
Name
Offset
Type
DMACPeriphID0
0xFE0
RO
DMACPeriphID1
0xFE4
RO
DMACPeriphID2
0xFE8
RO
DMACPeriphID3
0xFEC
RO
Description
See Section 33.2.20.
Table 616. DMAC cell identification registers summary
Name
Offset
Type
DMACPCellID0
0xFF0
RO
DMACPCellID1
0xFF4
RO
DMACPCellID2
0xFF8
RO
DMACPCellID3
0xFFC
RO
Description
See Section 33.2.21.
33.2
Register description
33.2.1
DMACIntStatus register
The DMACIntStatus (interrupt status) is a RO register which shows the status of the
interrupts after masking.
Table 617. DMACIntStatus register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined.
8’h00
Status of DMA interrupts after masking.
Each bit is associated to a DMA channel. If a bit is set, it
means that an interrupt request is active for the relevant
DMA channel.
[07:00]
33.2.2
IntStatus
DMACIntTCStatus register
The DMACIntTCStatus (interrupt terminal count status) is a RO register which shows the
status of the terminal count after masking.
Note:
562/584
This register must be used in conjunction with the DMACIntStatus register if the combined
interrupt request, DMACINTR, is used. If the DMACINTTC interrupt request is used, reading
this register only is enough to determine source of the interrupt request.
Doc ID 022642 Rev 3
RM0321
DMA controller (DMAC)
Table 618. DMACIntTCStatus register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined.
8’h00
Interrupt terminal count request status.
Each bit is associated to a DMA channel. If a bit is set, it
means that an interrupt terminal count request is active for
the relevant DMA channel.
[07:00]
33.2.3
IntTCStatus
DMACIntTCClear register
The DMACIntTCClear (interrupt terminal count clear) is a WO register which allows to clear
a terminal count interrupt request.
Table 619. DMACIntTCClear register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
[07:00]
33.2.4
Write as zero.
Terminal count request clear.
Each bit is associated to a DMA channel. When writing to
this register, each bit that is set causes the corresponding bit
in the DMACIntTCStatus register to be cleared. In contrast,
bits that are not set have no effect on the corresponding bit
in the DMACIntTCStatus register.
IntTCClear 8’h00
DMACIntErrorStatus register
The DMACIntErrorStatus (interrupt error status) is a RO register which shows the status of
the error request after masking.
Note:
This register must be used in conjunction with the DMACIntStatus register if the combined
interrupt request, DMACINTR, is used. If the DMACINTERR interrupt request is used,
reading this register only is enough to determines the source of the interrupt request.
Table 620. DMA ClntErrorStatus register bit assignments
Bit
Name
Reset
Value
Description
[31:08]
Reserved
-
Read: undefined.
8’h00
Interrupt error status.
Each bit is associated to a DMA channel. If a bit is set, it
means that an interrupt error request is active for the
relevant DMA channel.
[07:00]
33.2.5
IntErrorStatus
DMACIntErrClr register
The DMACIntErrClr (interrupt error clear) is a WO register which allows to clear an error
interrupt request.
Doc ID 022642 Rev 3
563/584
DMA controller (DMAC)
RM0321
Table 621. DMACIntErrClr register bit assignments
Bit
Name
Reset value
Description
[31:08]
Reserved
-
Write as zero.
8’h00
Interrupt error request clear.
Each bit is associated to a DMA channel. When writing to
this register, each bit that is set causes the corresponding bit
in the DMACIntErrorStatus register to be cleared. In
contrast, bits that are not set have no effect on the
corresponding bit in the DMACIntErrorStatus register.
[07:00]
33.2.6
IntErrClr
DMACRawIntTCStatus register
The DMACRawIntTCStatus (raw interrupt terminal count status) is a RO register which
indicates the DMA channels that are requesting a transfer complete, terminal count
interrupt, prior to masking.
Table 622. DMACRawIntTCStatus register bit assignments
Bit
Name
Reset value Description
[31:08]
Reserved
-
Read: undefined.
8’h00
Status of the terminal count interrupt prior to masking.
Each bit is associated to a DMA channel. If a bit is set,
it means that a terminal count interrupt request is
active prior to masking for the relevant DMA channel.
[07:00]
33.2.7
RawIntTCStatus
DMACRawIntErrorStatus register
The DMACRawIntErrorStatus (raw interrupt error status) is a RO register which indicates
the DMA channels that are requesting an errror interrupt prior to masking.
Table 623. DMACRawIntErrorStatus register bit assignments
Bit
Name
Reset value
Description
[31:08]
Reserved
-
Read: undefined.
[07:00]
33.2.8
RawIntErrorStatus 8’h00
Status of the error interrupt prior to masking.
Each bit is associated to a DMA channel. If a bit is
set, it means that an error interrupt request is active
prior to masking for the relevant DMA channel.
DMACEnbldChns register
The DMACEnbldChns (enabled channel) is a RO register which indicates the DMA
channels that are enabled, as indicated by the Enable bit (E) in the DMAC configuration
register.
564/584
Doc ID 022642 Rev 3
RM0321
DMA controller (DMAC)
Table 624. DMACEnbldChns register bit assignments
Bit
Name
Reset value
Description
[31:08]
Reserved
-
Read: undefined.
[07:00]
33.2.9
EnabledChannels 8’h00
Channel enable status.
Each bit is associated to a DMA channel. If a bit is
set, it means that corresponding DMA channel is
enabled. A bit is cleared on completion of the DMA
transfer.
DMACSoftBReq register
The DMACSoftBReq (software burst request) is a RW register which enables DMA burst
requests to be generated by software.
Table 625. DMACSoftBReq register bit assignments
Bit
Name
Reset value
Description
[31:16]
Reserved
-
Read: undefined. Write as zero.
16’h0000
Software last burst request.
Each bit is associated to one out of 16 peripheral DMA
request lines. Setting a bit, a DMA last burst request for the
corresponding peripheral is generated, and the bit is cleared
when the transaction has completed. Reading this field of
the register indicates the sources that are requesting DMA
last burst transfers.
[15:00]
SoftBReq
Note:
A DMA burst request can be generated form either a peripheral or the software request
register. However, it is recommended not to use software and hardware peripheral requests
at the same time.
33.2.10
DMACSoftSReq register
The DMACSoftSReq (software single request) is a RW register which enables DMA single
requests to be generated by software.
Table 626. DMACSoftSReq register bit assignments
Bit
Name
Reset value Description
[31:16]
Reserved
-
Read: undefined. Write as zero.
16’h0000
Software single request.
Each bit is associated to one out of 16 peripheral DMA
request lines. Setting a bit, a DMA single request for the
corresponding peripheral is generated, and the bit is cleared
when the transaction has completed. Reading this field of the
register indicates the sources that are requesting DMA single
transfers.
[15:00]
SoftSReq
Doc ID 022642 Rev 3
565/584
DMA controller (DMAC)
RM0321
Note:
A DMA single request can be generated form either a peripheral or the software request
register. However, it is recommended not to use software and hardware peripheral requests
at the same time.
33.2.11
DMACSoftLBReq register
The DMACSoftLBReq (software last burst request) is a RW register which enables DMA last
burst requests to be generated by software.
Table 627. DMACSoftLBReq register bit assignments
Bit
Name
Reset value Description
[31:16]
Reserved
-
Read: undefined. Write as zero.
16’h0000
Software last burst request.
Each bit is associated to one out of 16 peripheral DMA
request lines. Setting a bit, a DMA last burst request for the
corresponding peripheral is generated, and the bit is cleared
when the transaction has completed. Reading this field of
the register indicates the sources that are requesting DMA
last burst transfers.
[15:00]
SoftLBReq
Note:
A DMA last burst request can be generated form either a peripheral or the software request
register.
33.2.12
DMACSoftLSReq register
The DMACSoftLSReq (software last single request) is a RW register which enables DMA
last single requests to be generated by software.
Table 628. DMACSoftLSReq register bit assignments
Bit
Name
Reset value
Description
[31:16]
Reserved
-
Read: undefined. Write as zero.
16’h0000
Software last single request.
Each bit is associated to one out of 16 peripheral DMA
request lines. Setting a bit, a DMA last single request for
the corresponding peripheral is generated, and the bit is
cleared when the transaction has completed. Reading this
field of the register indicates the sources that are
requesting DMA last single transfers.
[15:00]
Note:
566/584
SoftLSReq
A DMA last single request can be generated form either a peripheral or the software request
register.
Doc ID 022642 Rev 3
RM0321
33.2.13
DMA controller (DMAC)
DMAC configuration register
The DMACConfiguration is a RW register which allows to configure the operation of the
DMAC.
Table 629. DMACConfiguration register bit assignments
Bit
Name
Reset value Description
[31:03]
Reserved
-
Read: undefined. Write as zero.
1’h0
AHB master 2 endianness configuration.
This bit enables to alter the endianness of the AHB master
interface 2, according to encoding:
1‘b0 = Little-endian mode.
1‘b1 = Big-endian mode.
[02]
33.2.14
M2
[01]
M1
1’h0
AHB master 1 endianness configuration.
This bit enables to alter the endianness of the AHB master
interface 1, according to the same encoding as M2 (see
above).
[00]
E
1’h0
DMAC enable.
Setting this bit, the DMAC is enabled. Clearing this bit, the
DMAC is disabled reducing power consumption.
DMACSync register
The DMACSync (synchronization) is a RW register which allows to enable/disable the
synchronization logic for DMA request signals, namely DMACBREQ[15:0],
DMACSREQ[15:0], DMACLBREQ[15:0] and DMACLSREQ[15:0].
Note:
Synchronization logic must be used when the peripheral generating the DMA request runs
on a different clock than the DMAC. For peripherals running on the same clock as DMA,
disabling the synchronization logic improves the DMA request response time.
Table 630. DMACSync register bit assignments
Bit
Name
Reset
value
Description
[31:16]
Reserved
-
Read: undefined. Write as zero.
16’h0000
DMA synchronization logic enable.
Each bit is associated to one out of 16 peripheral
DMA request lines. A cleared bit (as for default)
indicates that the synchronization logic for the
request signals is enabled. In contrast, setting the
bit the synchronization logic is disabled.
[15:00]
DMACSync
Doc ID 022642 Rev 3
567/584
DMA controller (DMAC)
33.2.15
RM0321
DMACCnSrcAddr register
The DMACCnSrcAddr (channel n source address) is a RW register which contains the
current source address (byte-aligned) of the data to be transferred over the n-th DMA
channel.
Note:
Source and destination addresses must be aligned to the source and destination widths.
Software programs the DMACCnSrcAddr register directly before the appropriate DMA
channel is enabled. Once the corresponding DMA channel is enabled, this register is
updated:
●
as the source address is incremented
●
by following the linked list when a complete packet of data has been transferred.
Reading the register when the DMA channel is active does not provide useful information.
This is because by the time the software has processed the value read, the channel might
have progressed. It is intended to be read-only when the channel has stopped, and in such
case, it shows the source address of the last item read.
Table 631. DMACCnSrcAddr register bit assignments
33.2.16
Bit
Name
Reset value
Description
[31:00]
SrcAddr
32’h0
DMA source address.
DMACCnDestAddr register
The DMACCnDestAddr (channel n destination address) is a RW register which contains the
current destination address (byte-aligned) of the data to be transferred over the n-th DMA
channel.
Note:
Source and destination addresses must be aligned to the source and desti