Rockchip PX30 TRM V1.1 Part1-20180917 PDF
Rockchip PX30 TRM V1.1 Part1-20180917 PDF
Rockchip PX30 TRM V1.1 Part1-20180917 PDF
Rockchip
PX30
Technical Reference Manual
Part1
Revision 1.1
Sep. 2018
Revision History
Date Revision Description
2018-9-17 1.1 Cancel the superfluous description
2018-8-13 1.0 Initial Release
Table of Content
Table of Content ....................................................................................................... 3
Figure Index ............................................................................................................ 7
Table Index ............................................................................................................. 9
Warranty Disclaimer ................................................................................................ 10
Chapter 1 System Overview ...................................................................................... 11
1.1 Address Mapping........................................................................................ 11
1.2 System Boot.............................................................................................. 13
1.3 System Interrupt connection ....................................................................... 14
1.4 System DMA hardware request connection .................................................... 16
Chapter 2 Clock & Reset Unit (CRU) ........................................................................... 17
2.1 Overview .................................................................................................. 17
2.2 Block Diagram ........................................................................................... 17
2.3 System Reset Solution ................................................................................ 17
2.4 Function Description ................................................................................... 18
2.5 PLL Introduction ........................................................................................ 18
2.6 Register Description ................................................................................... 20
2.7 Timing Diagram ........................................................................................101
2.8 Application Notes ......................................................................................101
Chapter 3 General Register Files (GRF) ..................................................................... 104
3.1 Overview .................................................................................................104
3.2 Function Description ..................................................................................104
3.3 GRF Register Description ............................................................................104
3.4 PMUGRF Register Description ......................................................................188
3.5 COREGRF Register Description ....................................................................210
3.6 GPUGRF Register Description ......................................................................217
3.7 USB PHY GRF Register Description ..............................................................222
3.8 DDRGRF Register Description .....................................................................235
Chapter 4 Graphics Process Unit (GPU) ..................................................................... 244
4.1 Overview .................................................................................................244
4.2 Block Diagram ..........................................................................................244
4.3 Register Description ..................................................................................244
Chapter 5 Cortex-A35 ............................................................................................ 245
5.1 Overview .................................................................................................245
5.2 Block Diagram ..........................................................................................245
5.3 Function Description ..................................................................................245
Chapter 6 Embedded SRAM .................................................................................... 246
6.1 Overview .................................................................................................246
6.2 Block Diagram ..........................................................................................246
6.3 Function Description ..................................................................................246
Chapter 7 Nand Flash Controller (NandC).................................................................. 247
7.1 Overview .................................................................................................247
7.2 Block Diagram ..........................................................................................247
7.3 Function Description ..................................................................................248
7.4 Register Description ..................................................................................249
7.5 Interface Description .................................................................................298
7.6 Application Notes ......................................................................................299
Chapter 8 Power Management Unit (PMU) ................................................................. 305
8.1 Overview .................................................................................................305
Figure Index
Fig. 1-1 PX30 Address Mapping .............................................................................. 12
Fig. 1-2 PX30 remap function ................................................................................. 13
Fig. 1-3 PX30 boot procedure flow .......................................................................... 14
Fig. 1-4 CRU Block Diagram ................................................................................... 17
Fig. 1-5 Reset Architecture Diagram ........................................................................ 18
Fig. 1-6PLLBlockDiagram ....................................................................................... 19
Fig. 1-7 Chip Power On Reset Timing Diagram ........................................................ 101
Fig. 4-1 GPU block diagram.................................................................................. 244
Fig. 5-1 Block Diagram ........................................................................................ 245
Fig. 6-1 Embedded SRAM block diagram ................................................................ 246
Fig. 7-1 NandC Block Diagram .............................................................................. 248
Fig. 7-2 NandC Address Assignment ...................................................................... 300
Fig. 7-3 NandC Data Format ................................................................................ 300
Fig. 7-4 NandC LLP Data Format ........................................................................... 303
Fig. 8-1 PX30 Power Domain Partition ................................................................... 305
Fig. 8-2 PMU Bock Diagram ................................................................................. 306
Fig. 8-3 Each Domain Power Switch Timing ............................................................ 324
Fig. 9-1 PWM Block Diagram ................................................................................ 326
Fig. 9-2 PWM Capture Mode ................................................................................. 327
Fig. 9-3 PWM Continuous Left-aligned Output Mode ................................................. 327
Fig. 9-4 PWM Continuous Center-aligned Output Mode ............................................. 328
Fig. 9-5 PWM One-shot Center-aligned Output Mode ............................................... 328
Fig. 10-1 Block Diagram ...................................................................................... 352
Fig. 11-1 Block diagram of DMAC.......................................................................... 354
Fig. 11-2 DMAC operation states .......................................................................... 355
Fig. 11-3 DMAC request and acknowledge timing .................................................... 393
Fig. 12-1 Wake-Up Frame Filter Register ................................................................ 471
Fig. 13-1 Timer Block Diagram ............................................................................. 473
Fig. 13-2 Timer Usage Flow ................................................................................. 474
Fig. 13-3 Timing between timer_en and timer_clk ................................................... 476
Fig. 14-1 Debug system structure ......................................................................... 477
Fig. 14-2 DAP SWJ interface .............................................................. 错误!未定义书签。
Fig. 14-3SW-DP acknowledgement timing .............................................................. 478
Fig. 15-1 WDT block diagram ............................................................................... 479
Fig. 15-2 WDT Operation Flow .............................................................................. 483
Fig. 16-1 SFC architecture ................................................................................... 484
Fig. 16-2 idle cycles ............................................................................................ 485
Fig. 16-3 SPI mode............................................................................................. 485
Fig. 16-4 slave mode write .................................................................................. 494
Fig. 16-5 slave mode read ................................................................................... 495
Fig. 16-6 master mode flow ................................................................................. 496
Fig. 17-1 SPI Controller Block diagram .................................................................. 498
Fig. 17-2 SPI Master and Slave Interconnection ...................................................... 498
Fig. 17-3 SPI Format (SCPH=0 SCPOL=0).............................................................. 499
Fig. 17-4 SPI Format (SCPH=0 SCPOL=1).............................................................. 499
Fig. 17-5 SPI Format (SCPH=1 SCPOL=0).............................................................. 500
Fig. 17-6 SPI Format (SCPH=1 SCPOL=1).............................................................. 500
Fig. 17-7 SPI Master transfer flow diagram ............................................................ 511
Fig. 17-8 SPI Slave transfer flow diagram .............................................................. 512
Fig. 17-9 UART Architecture ................................................................................. 513
Fig. 17-10 UART Serial protocol ............................................................................ 514
Fig. 17-11 IrDA 1.0 ............................................................................................ 514
Fig. 17-12 UART baud rate................................................................................... 515
Fig. 17-13 UART Auto flow control block diagram .................................................... 516
Fig. 17-14 UART AUTO RTS TIMING ...................................................................... 516
Fig. 17-15 UART AUTO CTS TIMING ...................................................................... 516
Table Index
Table 1-1 PX30 Interrupt connection list .................................................................. 14
Table 1-2 PX30 DMAC Hardware request connection list ............................................. 16
Table 1-3 Source Clock Limitation of Fractional Divider............................................. 103
Table 3-1 GRF Adress Mapping Table ..................................................................... 104
Table 5-1 CPU Configuration................................................................................. 245
Table 7-1 NandC Interface Description ................................................................... 298
Table 7-2 NandC Interface Connection ................................................................... 299
Table 7-3 NandC Page/Spare size for flash ............................................................. 301
Table 8-1 PX30 Power Domain and Voltage Domain Summary ................................... 305
Table 8-2 Low Power State................................................................................... 324
Table 9-1 PWM Interface Description ..................................................................... 349
Table 10-1 CPU interface connectivity .................................................................... 352
Table 11-1 DMAC Request Mapping Table ............................................................... 353
Table 11-2 DMAC boot interface............................................................................ 393
Table 11-3 Source size in CCRn ............................................................................ 398
Table 11-4 DMAC Instruction sets ......................................................................... 398
Table 11-5 DMAC instruction encoding ................................................................... 399
Table 12-1 RMII Interface Description ................................................................... 460
Table 14-1 SW-DP Interface Description ................................................................ 478
Table 16-11SPI interface description ..................................................................... 493
Table 17-1 1SPI interface description .................................................................... 509
Table 17-2 UART Interface Description ................................................................... 533
Table 17-3 UART baud rate configuration ............................................................... 537
Table 17-4 UART cts_n and rts_n polarity configuration ............................................ 538
Table 20-1 GPIO interface description .................................................................... 559
Table 22-1 I2S Interface Description ..................................................................... 572
Table 23-1 I2S Interface Description ..................................................................... 596
Table 24-1 I2C Interface Description ..................................................................... 611
Table 25-1 Relation between ASP_CLK and sample rate ........................................... 617
Table 25-2 ASPC Interface Description ................................................................... 625
Warranty Disclaimer
Rockchip Electronics Co.,Ltd makes no warranty, representation or guarantee (expressed, implied, statutory, or otherwise) by
or with respect to anything in this document, and shall not be liable for any implied warranties of non-infringement,
merchantability or fitness for a particular purpose or for any indirect, special or consequential damages.
Information furnished is believed to be accurate and reliable. However, Rockchip Electronics Co.,Ltd assumes no responsibility
for the consequences of use of such information or for any infringement of patents or other rights of third parties that may
result from its use.
Rockchip Electronics Co.,Ltd’s products are not designed, intended, or authorized for using as components in systems intended
for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which
the failure of the Rockchip Electronics Co.,Ltd’s product could create a situation where personal injury or death may occur,
should buyer purchase or use Rockchip Electronics Co.,Ltd’s products for any such unintended or unauthorized application,
buyers shall indemnify and hold Rockchip Electronics Co.,Ltd and its officers, employees, subsidiaries, affiliates, and
distributors harmless against all claims, costs, damages, expenses, and reasonable attorney fees arising out of, either directly
or indirectly, any claim of personal injury or death that may be associated with such unintended or unauthorized use, even if
such claim alleges that Rockchip Electronics Co.,Ltd was negligent regarding the design or manufacture of the part.
Rockchip Electronics Co.,Ltd does not convey any license under its copyright and patent rights
nor the rights of others.
All copyright and patent rights referenced in this document belong to their respective owners
and shall be subject to corresponding copyright and patent licensing requirements.
Trademarks
Rockchip and RockchipTM logo and the name of Rockchip Electronics Co.,Ltd’s products are trademarks of Rockchip Electronics
Co.,Ltd. and are exclusively owned by Rockchip Electronics Co.,Ltd. References to other companies and their products use
trademarks owned by the respective companies and are for reference purpose only.
Confidentiality
The information contained herein (including any attachments) is confidential. The recipient hereby acknowledges the
confidentiality of this document, and except for the specific purpose, this document shall not be disclosed to any third party.
ROCKCHIP ELECTRONICS CO.,LTD. RESERVES THE RIGHT TO MAKE CHANGES IN ITS PRODUCTS OR PRODUCT
SPECIFICATIONS WITH THE INTENT TO IMPROVE FUNCTION OR DESIGN AT ANY TIME AND WITHOUT NOTICE
AND IS NOT REQUIRED TO UNDATE THIS DOCUMENTATION TO REFLECT SUCH CHANGES.
After Remap
PMU_MEM Boot_ROM
FFFF0000/ (8KB) Not (32KB)
FF020000 Accessable
Yes
ID BLOCK correct?
No
Yes
ID BLOCK correct?
No
No
No
IRQ
IRQ ID Source(spi) Polarity
Type
72 upctl_awpoison_int High level
73 upctl_alert_err_int High level
74 ddrmon_int High level
75 gmac_intr_gmac2io High level
76 pmt_intr_gmac2io High level
77 irq_gpu High level
78 irq_mmu_gpu High level
79 irq_job_gpu High level
80 irq_event_gpu High level
81 irq_dec_mmu High level
82 irq_hevc_mmu High level
83 Reserved High level
84 Reserved High level
85 sdmmc_int_emmc High level
86 sdmmc_int_sdmmc High level
87 sdmmc_int_sdio High level
88 sfc_int_sfc High level
89 nandc_int_flash High level
90 pmu_int High level
91 host_arb_int_usb2host High level
92 host_ehci_int_usb2host High level
93 host_ohci_int_usb2host High level
94 otg_int_usb2otg High level
95 usbphy_otg_disconnect_irq High level
96 usbphy_otg_linestate_irq High level
97 usbphy_otg_id_irq High level
98 usbphy_otg_bvalid_irq High level
99 usbphy_host_disconnect_irq High level
100 usbphy_host_linestate_irq High level
101 cif_int_out_cif High level
102 isp_irq_isp High level
103 jpeg_err_irq_isp High level
104 jpeg_stat_irq_isp High level
105 mi_irq_isp High level
106 mipi_irq_isp High level
107 mipi_dsi_host_irq_dsihost High level
108 rga_irq High level
109 vop_intr_vopm High level
110 vop_intr_vops High level
111 vpu_dec_irq High level
112 vpu_enc_irq High level
113 vpu_mmu_irq High level
114 crypto_irq High level
115 otp_mask_int_otpphy High level
116 saradc_irq High level
117 hwffc_int High level
118 irq_isp_mmu_0 High level
119 irq_isp_mmu_1 High level
120 irq_isp_mmu_2 High level
121 pwm_int_pwr_pwm0 High level
IRQ
IRQ ID Source(spi) Polarity
Type
122 pwm_int_pwr_pwm1 High level
123 sdmmc_detectn_irq_grf High level
124 key_reader_irq High level
125 vop_intr_post_lb_vopm High level
126 Reserved High level
127 Reserved High level
128 Reserved High level
129 Reserved High level
130 Reserved High level
131 Reserved High level
132 npmuirq[0] High level
133 npmuirq[1] High level
134 npmuirq[2] High level
135 npmuirq[3] High level
136 Reserved High level
137 Reserved High level
138 Reserved High level
139 Reserved High level
2.1 Overview
The CRU is an APB slave module that is designed for generating all of the internal and
system clocks, resets of chip. CRU generates system clocks from PLL output clock or
external clock source, and generates system reset from external power-on-reset, watchdog
timer reset or software reset or temperature sensor.
CRU supports the following features:
Compliance to the AMBA APB interface
Embedded 5 PLLs
Flexible selection of clock source
Supports the respective divided clocks
Supports the respective gating of all clocks
Supports the respective software reset of all modules
Clock &
PLL rst_gen(RGU) Reset
soc_wdt_rstn
sync
soc_tsadc_rstn logic
rstn_pre
~xxx_softrstn_req
resetn_xxx
|| sync
glb_srstn_1
logic
glb_srstn_2
2.5.1 Overview
The chip uses up to 3.2GHz PLL for all the PLLs. The 3.2GHz PLL is a general purpose, high-
performance PLL-based clock generator. The PLL is a multi-function, general purpose
frequency synthesizer. Ultra-wide input and output ranges along with best-in-class jitter
performance allow the PLL to be used for almost any clocking application. With excellent
supply noise immunity, the PLL is ideal for use in noisy mixed signal SoC environments. By
combining ultra-low jitter output clocks into a low power, low area, widely programmable
design, we can greatly simplify a SoC by enabling a single macro to be used for all clocking
applications in the system.
2.5.2 Blockdiagram
Reset
Name Offset Size Description
Value
CRU_CLKSEL_CON5 0x0114 W 0x00000007 Clock select and divide register5
CRU_CLKSEL_CON6 0x0118 W 0x0bb8ea60 Clock select and divide register6
CRU_CLKSEL_CON7 0x011c W 0x0000000b Clock select and divide register7
CRU_CLKSEL_CON8 0x0120 W 0x00000007 Clock select and divide register8
CRU_CLKSEL_CON9 0x0124 W 0x0bb8ea60 Clock select and divide register9
CRU_CLKSEL_CON10 0x0128 W 0x00000103 Clock select and divide register10
CRU_CLKSEL_CON11 0x012c W 0x00000103 Clock select and divide register11
CRU_CLKSEL_CON12 0x0130 W 0x00001702 Clock select and divide register12
CRU_CLKSEL_CON13 0x0134 W 0x00000600 Clock select and divide register13
CRU_CLKSEL_CON14 0x0138 W 0x00000705 Clock select and divide register14
CRU_CLKSEL_CON15 0x013c W 0x00000707 Clock select and divide register15
CRU_CLKSEL_CON16 0x0140 W 0x00000003 Clock select and divide register16
CRU_CLKSEL_CON17 0x0144 W 0x00000003 Clock select and divide register17
CRU_CLKSEL_CON18 0x0148 W 0x00000002 Clock select and divide register18
CRU_CLKSEL_CON19 0x014c W 0x00000002 Clock select and divide register19
CRU_CLKSEL_CON20 0x0150 W 0x00000002 Clock select and divide register20
CRU_CLKSEL_CON21 0x0154 W 0x00000002 Clock select and divide register21
CRU_CLKSEL_CON22 0x0158 W 0x0000170b Clock select and divide register22
CRU_CLKSEL_CON23 0x015c W 0x00000581 Clock select and divide register23
CRU_CLKSEL_CON24 0x0160 W 0x00000107 Clock select and divide register24
CRU_CLKSEL_CON25 0x0164 W 0x00000305 Clock select and divide register25
CRU_CLKSEL_CON26 0x0168 W 0x0000000b Clock select and divide register26
CRU_CLKSEL_CON27 0x016c W 0x0bb8ea60 Clock select and divide register27
CRU_CLKSEL_CON28 0x0170 W 0x0000000b Clock select and divide register28
CRU_CLKSEL_CON29 0x0174 W 0x0bb8ea60 Clock select and divide register29
CRU_CLKSEL_CON30 0x0178 W 0x0000000b Clock select and divide register30
CRU_CLKSEL_CON31 0x017c W 0x0bb8ea60 Clock select and divide register31
CRU_CLKSEL_CON32 0x0180 W 0x0000000b Clock select and divide register32
CRU_CLKSEL_CON33 0x0184 W 0x0bb8ea60 Clock select and divide register33
CRU_CLKSEL_CON34 0x0188 W 0x0000000b Clock select and divide register34
CRU_CLKSEL_CON35 0x018c W 0x0000000b Clock select and divide register35
CRU_CLKSEL_CON36 0x0190 W 0x0bb8ea60 Clock select and divide register36
CRU_CLKSEL_CON37 0x0194 W 0x0000000b Clock select and divide register37
CRU_CLKSEL_CON38 0x0198 W 0x0000000b Clock select and divide register38
CRU_CLKSEL_CON39 0x019c W 0x0bb8ea60 Clock select and divide register39
CRU_CLKSEL_CON40 0x01a0 W 0x0000000b Clock select and divide register40
CRU_CLKSEL_CON41 0x01a4 W 0x0000000b Clock select and divide register41
CRU_CLKSEL_CON42 0x01a8 W 0x0bb8ea60 Clock select and divide register42
CRU_CLKSEL_CON43 0x01ac W 0x0000000b Clock select and divide register43
CRU_CLKSEL_CON44 0x01b0 W 0x0000000b Clock select and divide register44
CRU_CLKSEL_CON45 0x01b4 W 0x0bb8ea60 Clock select and divide register45
CRU_CLKSEL_CON46 0x01b8 W 0x0000000b Clock select and divide register34
Reset
Name Offset Size Description
Value
CRU_CLKSEL_CON47 0x01bc W 0x0000000b Clock select and divide register47
CRU_CLKSEL_CON48 0x01c0 W 0x0bb8ea60 Clock select and divide register48
CRU_CLKSEL_CON49 0x01c4 W 0x00000b0b Clock select and divide register49
CRU_CLKSEL_CON50 0x01c8 W 0x00000b0b Clock select and divide register50
CRU_CLKSEL_CON52 0x01d0 W 0x00000b0b Clock select and divide register52
CRU_CLKSEL_CON53 0x01d4 W 0x00000b0b Clock select and divide register49
CRU_CLKSEL_CON54 0x01d8 W 0x00000001 Clock select and divide register43
CRU_CLKSEL_CON55 0x01dc W 0x00000017 Clock select and divide register44
CRU_CLKSEL_CON56 0x01e0 W 0x00000010 Clock select and divide register45
CRU_CLKSEL_CON57 0x01e4 W 0x00001f00 Clock select and divide register57
CRU_CLKSEL_CON58 0x01e8 W 0x0000000b Clock select and divide register58
CRU_CLKSEL_CON59 0x01ec W 0x0bb8ea60 Clock select and divide register59
CRU_CLKGATE_CON0 0x0200 W 0x00000000 Clock gating register0
CRU_CLKGATE_CON1 0x0204 W 0x00000000 Clock gating register1
CRU_CLKGATE_CON2 0x0208 W 0x00000000 Clock gating register2
CRU_CLKGATE_CON3 0x020c W 0x00000000 Clock gating register3
CRU_CLKGATE_CON4 0x0210 W 0x00000000 Clock gating register4
CRU_CLKGATE_CON5 0x0214 W 0x00000000 Clock gating register5
CRU_CLKGATE_CON6 0x0218 W 0x00000000 Clock gating register6
CRU_CLKGATE_CON7 0x021c W 0x00000000 Clock gating register7
CRU_CLKGATE_CON8 0x0220 W 0x00000000 Clock gating register8
CRU_CLKGATE_CON9 0x0224 W 0x00000000 Clock gating register9
CRU_CLKGATE_CON10 0x0228 W 0x00000000 Clock gating register10
CRU_CLKGATE_CON11 0x022c W 0x00000000 Clock gating register11
CRU_CLKGATE_CON12 0x0230 W 0x00000000 Clock gating register12
CRU_CLKGATE_CON13 0x0234 W 0x00000000 Clock gating register13
CRU_CLKGATE_CON14 0x0238 W 0x00000000 Clock gating register14
CRU_CLKGATE_CON15 0x023c W 0x00000000 Clock gating register15
CRU_CLKGATE_CON16 0x0240 W 0x00000000 Clock gating register16
CRU_CLKGATE_CON17 0x0244 W 0x00000000 Clock gating register17
CRU_SSGTBL0_3 0x0280 W 0x00000000 External wave table register0
CRU_SSGTBL4_7 0x0284 W 0x00000000 External wave table register1
CRU_SSGTBL8_11 0x0288 W 0x00000000 External wave table register2
CRU_SSGTBL12_15 0x028c W 0x00000000 External wave table register3
CRU_SSGTBL16_19 0x0290 W 0x00000000 External wave table register4
CRU_SSGTBL20_23 0x0294 W 0x00000000 External wave table register5
CRU_SSGTBL24_27 0x0298 W 0x00000000 External wave table register6
CRU_SSGTBL28_31 0x029c W 0x00000000 External wave table register7
CRU_SSGTBL32_35 0x02a0 W 0x00000000 External wave table register8
CRU_SSGTBL36_39 0x02a4 W 0x00000000 External wave table register9
CRU_SSGTBL40_43 0x02a8 W 0x00000000 External wave table register10
CRU_SSGTBL44_47 0x02ac W 0x00000000 External wave table register11
Reset
Name Offset Size Description
Value
CRU_SSGTBL48_51 0x02b0 W 0x00000000 External wave table register12
CRU_SSGTBL52_55 0x02b4 W 0x00000000 External wave table register13
CRU_SSGTBL56_59 0x02b8 W 0x00000000 External wave table register14
CRU_SSGTBL60_63 0x02bc W 0x00000000 External wave table register15
CRU_SSGTBL64_67 0x02c0 W 0x00000000 External wave table register16
CRU_SSGTBL68_71 0x02c4 W 0x00000000 External wave table register17
CRU_SSGTBL72_75 0x02c8 W 0x00000000 External wave table register18
CRU_SSGTBL76_79 0x02cc W 0x00000000 External wave table register19
CRU_SSGTBL80_83 0x02d0 W 0x00000000 External wave table register20
CRU_SSGTBL84_87 0x02d4 W 0x00000000 External wave table register21
CRU_SSGTBL88_91 0x02d8 W 0x00000000 External wave table register22
CRU_SSGTBL92_95 0x02dc W 0x00000000 External wave table register23
CRU_SSGTBL96_99 0x02e0 W 0x00000000 External wave table register24
CRU_SSGTBL100_103 0x02e4 W 0x00000000 External wave table register25
CRU_SSGTBL104_107 0x02e8 W 0x00000000 External wave table register26
CRU_SSGTBL108_111 0x02ec W 0x00000000 External wave table register27
CRU_SSGTBL112_115 0x02f0 W 0x00000000 External wave table register28
CRU_SSGTBL116_119 0x02f4 W 0x00000000 External wave table register29
CRU_SSGTBL120_123 0x02f8 W 0x00000000 External wave table register30
CRU_SSGTBL124_127 0x02fc W 0x00000000 External wave table register31
CRU_SOFTRST_CON0 0x0300 W 0x00000000 Software reset control register0
CRU_SOFTRST_CON1 0x0304 W 0x00000000 Software reset control register1
CRU_SOFTRST_CON2 0x0308 W 0x00000000 Software reset control register2
CRU_SOFTRST_CON3 0x030c W 0x00000000 Software reset control register3
CRU_SOFTRST_CON4 0x0310 W 0x00000000 Software reset control register4
CRU_SOFTRST_CON5 0x0314 W 0x00000000 Software reset control register5
CRU_SOFTRST_CON6 0x0318 W 0x00000000 Software reset control register6
CRU_SOFTRST_CON7 0x031c W 0x00000000 Software reset control register7
CRU_SOFTRST_CON8 0x0320 W 0x00000000 Software reset control register8
CRU_SOFTRST_CON9 0x0324 W 0x00000000 Software reset control register9
CRU_SOFTRST_CON10 0x0328 W 0x00000000 Software reset control register10
CRU_SOFTRST_CON11 0x032c W 0x00000000 Software reset control register11
CRU_SDMMC_CON0 0x0380 W 0x00000004 SDMMC control0
CRU_SDMMC_CON1 0x0384 W 0x00000000 SDMMC control1
CRU_SDIO_CON0 0x0388 W 0x00000004 SDIO control0
CRU_SDIO_CON1 0x038c W 0x00000000 SDIO control1
CRU_EMMC_CON0 0x0390 W 0x00000004 EMMC control0
CRU_EMMC_CON1 0x0394 W 0x00000000 EMMC control1
CRU_GPLL_CON0 0xc000 W 0x00001032 GPLL configuration register0
CRU_GPLL_CON1 0xc004 W 0x00001041 GPLL configuration register1
CRU_GPLL_CON2 0xc008 W 0x00000001 GPLL configuration register2
CRU_GPLL_CON3 0xc00c W 0x00000007 GPLL configuration register3
Reset
Name Offset Size Description
Value
CRU_GPLL_CON4 0xc010 W 0x00007f00 GPLL configuration register4
CRU_PMU_MODE 0xc020 W 0x00000000 PMU_MODE
PMU Clock select and divide
CRU_PMU_CLKSEL_CON0 0xc040 W 0x0000000b
register0
PMU Clock select and divide
CRU_PMU_CLKSEL_CON1 0xc044 W 0x0bb8ea60
register0
PMU Clock select and divide
CRU_PMU_CLKSEL_CON2 0xc048 W 0x00003131
register2
PMU Clock select and divide
CRU_PMU_CLKSEL_CON3 0xc04c W 0x0000000b
register3
PMU Clock select and divide
CRU_PMU_CLKSEL_CON4 0xc050 W 0x0000000b
register4
PMU Clock select and divide
CRU_PMU_CLKSEL_CON5 0xc054 W 0x0bb8ea60
register5
CRU_PMU_CLKGATE_CON
0xc080 W 0x00000000 PMU Clock gating register0
0
CRU_PMU_CLKGATE_CON
0xc084 W 0x00000000 PMU Clock gating register1
1
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
CRU_APLL_CON1
Address: Operational Base + offset (0x0004)
CRU_APLL_CON2
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
fout4phasepd
Power down 4-phase clocks and 2X, 3X, 4X clocks
27 RW 0x0
1'b0: no power down
1'b1: power down
foutvcopd
Power down buffered VCO clock
26 RW 0x0
1'b0: no power down
1'b1: power down
CRU_APLL_CON3
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
ssmod_spread
12:8 WO 0x00 spread amplitude
% = 0.1 * SPREAD[4:0]
ssmod_divval
7:4 WO 0x0
Divider required to set the modulation frequency
ssmod_downspread
Selects center spread or downs pread
3 WO 0x0
1'b0: down spread
1'b1: center spread
ssmod_reset
Reset modulator state
2 WO 0x1
1'b0: no reset
1'b1: reset
ssmod_disable_sscg
Bypass SSMOD by module
1 WO 0x1
1'b0: no bypass
1'b1: bypass
ssmod_bp
Bypass SSMOD by integration
0 WO 0x1
1'b0: no bypass
1'b1: bypass
CRU_APLL_CON4
Address: Operational Base + offset (0x0010)
CRU_DPLL_CON0
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
bypass
PLL Bypass. FREF bypasses PLL to FOUTPOSTDIV
15 RW 0x0
1'b0: no bypass
1'b1: bypass
postdiv1
14:12 RW 0x1
First Post Divide Value, (1-7)
fbdiv
Feedback Divide Value, valid divider settings are:
11:0 RW 0x0c8 [16, 3200] in integer mode
[20, 320] in fractional mode
Tips: no plus one operation
CRU_DPLL_CON1
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pllpdsel
PLL global power down source selection
15 RW 0x0 If pllpdsel == 1, PLL can be power down only by pllpd1,
otherwise pll is power down when any one of refdiv/fbdiv/fracdiv
is changed or pllpd0 is asserted
CRU_DPLL_CON2
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
fout4phasepd
Power down 4-phase clocks and 2X, 3X, 4X clocks
27 RW 0x0
1'b0: no power down
1'b1: power down
foutvcopd
Power down buffered VCO clock
26 RW 0x0
1'b0: no power down
1'b1: power down
foutpostdivpd
Power down all outputs except for buffered VCO clock
25 RW 0x0
1'b0: no power down
1'b1: power down
dacpd
Power down quantization noise cancellation DAC
24 RW 0x0
1'b0: no power down
1'b1: power down
CRU_DPLL_CON3
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
ssmod_spread
12:8 WO 0x00 spread amplitude
% = 0.1 * SPREAD[4:0]
ssmod_divval
7:4 WO 0x0
Divider required to set the modulation frequency
ssmod_downspread
Selects center spread or downs pread
3 WO 0x0
1'b0: down spread
1'b1: center spread
ssmod_reset
Reset modulator state
2 WO 0x1
1'b0: no reset
1'b1: reset
ssmod_disable_sscg
Bypass SSMOD by module
1 WO 0x1
1'b0: no bypass
1'b1: bypass
ssmod_bp
Bypass SSMOD by integration
0 WO 0x1
1'b0: no bypass
1'b1: bypass
CRU_DPLL_CON4
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
ssmod_ext_maxaddr
15:8 WO 0x7f
External wave table data inputs, (0-255)
7:1 RO 0x0 reserved
CRU_CPLL_CON0
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
bypass
PLL Bypass. FREF bypasses PLL to FOUTPOSTDIV
15 RW 0x0
1'b0: no bypass
1'b1: bypass
postdiv1
14:12 RW 0x2
First Post Divide Value, (1-7)
fbdiv
Feedback Divide Value, valid divider settings are:
11:0 RW 0x063 [16, 3200] in integer mode
[20, 320] in fractional mode
Tips: no plus one operation
CRU_CPLL_CON1
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pllpdsel
PLL global power down source selection
15 RW 0x0 If pllpdsel == 1, PLL can be power down only by pllpd1,
otherwise pll is power down when any one of refdiv/fbdiv/fracdiv
is changed or pllpd0 is asserted
pllpd1
PLL global power down request
14 RW 0x0
1'b0: no power down
1'b1: power down
pllpd0
PLL global power down request
13 RW 0x0
1'b0: no power down
1'b1: power down
CRU_CPLL_CON2
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
fout4phasepd
Power down 4-phase clocks and 2X, 3X, 4X clocks
27 RW 0x0
1'b0: no power down
1'b1: power down
foutvcopd
Power down buffered VCO clock
26 RW 0x0
1'b0: no power down
1'b1: power down
foutpostdivpd
Power down all outputs except for buffered VCO clock
25 RW 0x0
1'b0: no power down
1'b1: power down
dacpd
Power down quantization noise cancellation DAC
24 RW 0x0
1'b0: no power down
1'b1: power down
fracdiv
23:0 RW 0x000001 Fractional part of feedback divide
(fraction = FRAC/2^24)
CRU_CPLL_CON3
Address: Operational Base + offset (0x004c)
CRU_CPLL_CON4
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
ssmod_ext_maxaddr
15:8 WO 0x7f External wave table data inputs
(0-255)
7:1 RO 0x0 reserved
ssmod_sel_ext_wave
select external wave
0 WO 0x0
1'b0: no select ext_wave
1'b1: select ext_wave
CRU_NPLL_CON0
Address: Operational Base + offset (0x0060)
CRU_NPLL_CON1
Address: Operational Base + offset (0x0064)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pllpdsel
PLL global power down source selection
15 RW 0x0 If pllpdsel == 1, PLL can be power down only by pllpd1,
otherwise pll is power down when any one of refdiv/fbdiv/fracdiv
is changed or pllpd0 is asserted
pllpd1
PLL global power down request
14 RW 0x0
1'b0: no power down
1'b1: power down
pllpd0
PLL global power down request
13 RW 0x0
1'b0: no power down
1'b1: power down
dsmpd
12 RW 0x1 PLL delta sigma modulator enable
1'b0: modulator is enable, 1'b1: modulator is disabled
11 RO 0x0 reserved
pll_lock
PLL lock status
10 RO 0x0
1'b0: unlock
1'b1: lock
9 RO 0x0 reserved
CRU_NPLL_CON2
Address: Operational Base + offset (0x0068)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
fout4phasepd
Power down 4-phase clocks and 2X, 3X, 4X clocks
27 RW 0x0
1'b0: no power down
1'b1: power down
foutvcopd
Power down buffered VCO clock
26 RW 0x0
1'b0: no power down
1'b1: power down
foutpostdivpd
Power down all outputs except for buffered VCO clock
25 RW 0x0
1'b0: no power down
1'b1: power down
dacpd
Power down quantization noise cancellation DAC
24 RW 0x0
1'b0: no power down
1'b1: power down
fracdiv
23:0 RW 0x000001 Fractional part of feedback divide
(fraction = FRAC/2^24)
CRU_NPLL_CON3
Address: Operational Base + offset (0x006c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
ssmod_spread
12:8 RW 0x00 spread amplitude
% = 0.1 * SPREAD[4:0]
ssmod_divval
7:4 RW 0x0
Divider required to set the modulation frequency
CRU_NPLL_CON4
Address: Operational Base + offset (0x0070)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
ssmod_ext_maxaddr
15:8 RW 0x7f External wave table data inputs
(0-255)
7:1 RO 0x0 reserved
ssmod_sel_ext_wave
select external wave
0 RW 0x0
1'b0: no select ext_wave
1'b1: select ext_wave
CRU_MODE
Address: Operational Base + offset (0x00a0)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:10 RO 0x0 reserved
usbphy480m_work_mode
2'h0:clock from xin_osc0_func_div
9:8 RW 0x0
2'h1:clock from pll
2'h2:clock from clk_rtc_32k
CRU_MISC
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
core_high_freq_rst_en
1'b1:enable high frequency rst gate function
15:12 RW 0x0
1'b0:disable high frequency rst gate function.
Each bit for each core, eg. bit0 for core0
11:5 RO 0x0 reserved
corepo_wrst_wfien
4 RW 0x0 1'b1: enable core0/1/2/3 warm reset for cpu power on reset.
1'b0: disable core0/1/2/3 warm reset for cpu power on reset
corepo_srst_wfien
3 RW 0x0 1'b1: enable core0/1/2/3 wfi reset for cpu power on reset
1'b0: disable core0/1/2/3 wif reset for cpu power on reset
core_wrst_wfien
2 RW 0x0 1'b1: enable core0/1/2/3 warm reset for cpu reset.
1'b0: disable core0/1/2/3 warm reset for cpu reset
core_srst_wfien
1 RW 0x0 1'b1: enable core0/1/2/3 wfi reset for cpu reset
1'b0: disable core0/1/2/3 wif reset for cpu reset
warmrst_en
0 RW 0x0 1'b1: enable cpu warm reset.
1'b0: disable cpu warm reset
CRU_GLB_CNT_TH
Address: Operational Base + offset (0x00b0)
Bit Attr Reset Value Description
pll_lockperiod
31:16 RW 0x3a98
PLL lock filtered period time, measured in OSC clock cycles
global_reset_counter_threshold
15:0 RW 0x0064 Global soft reset, wdt reset or tsadc_shut reset asserted time
counter threshold. Measured in OSC clock cycles
CRU_GLB_RST_ST
Address: Operational Base + offset (0x00b4)
Reset
Bit Attr Description
Value
31:24 RO 0x0 reserved
resetn_corepo_src_st
23:20 RO 0x0
corepo resetn source status of core0~3. Each bit for each core
resetn_core_src_st
19:16 RO 0x0
core resetn source status of core0~3. Each bit for each core
15:6 RO 0x0 reserved
snd_glb_tsadc_rst_st
sencond global TSADC triggered reset flag
5 W1C 0x0
1'b0: last hot reset is not sencond global TSADC triggered reset
1'b1: last hot reset is sencond global TSADC triggered reset
fst_glb_tsadc_rst_st
first global TSADC triggered reset flag
4 W1C 0x0
1'b0: last hot reset is not first global TSADC triggered reset
1'b1: last hot reset is first global TSADC triggered reset
snd_glb_wdt_rst_st
sencond global WDT triggered reset flag
3 W1C 0x0
1'b0: last hot reset is not sencond global WDT triggered reset
1'b1: last hot reset is sencond global WDT triggered reset
fst_glb_wdt_rst_st
first global WDT triggered reset flag
2 W1C 0x0
1'b0: last hot reset is not first global WDT triggered reset
1'b1: last hot reset is first global WDT triggered reset
snd_glb_rst_st
second global rst flag
1 W1C 0x0
1'b0: last hot reset is not sencond global reset
1'b1: last hot reset is sencond global reset
fst_glb_rst_st
first global rst flag
0 W1C 0x0
1'b0: last hot reset is not first global reset
1'b1: last hot reset is first global reset
CRU_GLB_SRST_FST
Address: Operational Base + offset (0x00b8)
CRU_GLB_SRST_SND
Address: Operational Base + offset (0x00bc)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
GLB_SRST_SND
15:0 RW 0x0000
The second global software reset config value
CRU_GLB_RST_CON
Address: Operational Base + offset (0x00c0)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
wdt_reset_ext_en
1'b1: enable wdt reset extend, reset extend time depend on
7 RW 0x0
bit15~0 of GLB_CNT_TH
1'b0: disable wdt reset extend
tsadc_shut_reset_ext_en
1'b1: enable tsadc_shut reset extend, reset extend time depend
6 RW 0x0
on bit15~0 of GLB_CNT_TH
1'b0: disable tsadc_shut reset extend
5 RO 0x0 reserved
pmu_srst_wdt_en
4 RW 0x0 1'b0: enable wdt reset as pmu reset source
1'b1: disable wdt reset as pmu reset source
pmu_srst_glb_rst_en
3 RW 0x0 1'b0: enable first or second global reset as pmu reset source
1'b1: disable first or second global reset as pmu reset source
pmu_srst_ctrl
2 RW 0x0 1'b1: second global reset trigger pmu reset
1'b0: first global reset trigger pmu reset
wdt_glb_srst_ctrl
1 RW 0x0 1'b0: wdt trigger second global reset
1'b1: wdt trigger first global reset
tsadc_glb_srst_ctrl
0 RW 0x0 1'b0: tsadc trigger second global reset
1'b1: tsadc trigger first global reset
CRU_CLKSEL_CON0
CRU_CLKSEL_CON1
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_gpu_sel
15 RW 0x0 1'b0: select clk_gpu_div
1'b1: select clk_gpu_np5
aclk_gpu_div_con
14:13 RW 0x0
aclk_gpu=clk_gpu/(div_con+1)
12 RO 0x0 reserved
clk_gpu_divnp5_con
11:8 RW 0x2
clk_gpu_np5=2*clk_gpu_div/(2*div_con+3)
clk_gpu_pll_sel
2'h0:GPLL
7:6 RW 0x0 2'h1:CPLL
2'h2:usbphy480M
2'h3:NPLL
5:4 RO 0x0 reserved
clk_gpu_div_con
3:0 RW 0x2
clk_gpu_div=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON2
Address: Operational Base + offset (0x0108)
CRU_CLKSEL_CON3
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pclk_vo_div_con
15:12 RW 0x2
pclk_vo=aclk_vo/(div_con+1)
hclk_vo_div_con
11:8 RW 0x1
hclk_vo=aclk_vo/(div_con+1)
aclk_vo_pll_sel
2'b0:GPLL
7:6 RW 0x0
2'b1:CPLL
2'b2:NPLL
5 RO 0x0 reserved
aclk_vo_div_con
4:0 RW 0x03
aclk_vo=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON4
Address: Operational Base + offset (0x0110)
CRU_CLKSEL_CON5
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
dclk_vopb_sel
2'b0: select dclk_vopb
15:14 RW 0x0
2'b1: select dclk_vopb_frac_out
2'b2: select xin_osc0
13:12 RO 0x0 reserved
dclk_vopb_pll_sel
11 RW 0x0 1'b0:CPLL
1'b1:NPLL
10:8 RO 0x0 reserved
dclk_vopb_div_con
7:0 RW 0x07
dclk_vopb=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON6
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
dclk_vopb_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is dclk_vopb
CRU_CLKSEL_CON7
Address: Operational Base + offset (0x011c)
CRU_CLKSEL_CON8
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
dclk_vopl_sel
2'b0: select dclk_vopl
15:14 RW 0x0
2'b1: select dclk_vopl_frac_out
2'b2: select xin_osc0
13:12 RO 0x0 reserved
dclk_vopl_pll_sel
11 RW 0x0 1'b0:NPLL
1'b1:CPLL
10:8 RO 0x0 reserved
dclk_vopl_div_con
7:0 RW 0x07
dclk_vopl=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON9
Address: Operational Base + offset (0x0124)
Bit Attr Reset Value Description
dclk_vopl_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is dclk_vopl
CRU_CLKSEL_CON10
Address: Operational Base + offset (0x0128)
CRU_CLKSEL_CON11
Address: Operational Base + offset (0x012c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:12 RO 0x0 reserved
hclk_vi_div_con
11:8 RW 0x1
hclk_vi=aclk_vi/(div_con+1)
aclk_vi_pll_sel
2'b0:GPLL
7:6 RW 0x0
2'b1:CPLL
2'b2:NPLL
5 RO 0x0 reserved
aclk_vi_div_con
4:0 RW 0x03
aclk_vi=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON12
Address: Operational Base + offset (0x0130)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_gmac_out_pll_sel
2'b0:GPLL
15:14 RW 0x0
2'b1:CPLL
2'b2:NPLL
13 RO 0x0 reserved
clk_gmac_out_div_con
12:8 RW 0x17
clk_gmac_out=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON13
Address: Operational Base + offset (0x0134)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_vpu_core_pll_clk_sel
2'b0:GPLL
15:14 RW 0x0
2'b1:CPLL
2'b2:NPLL
13 RO 0x0 reserved
clk_vpu_core_div_con
12:8 RW 0x06
clk_vpu_core=pll_clk_src/(div_con+1)
clk_cif_out_pll_sel
2'b0:xin_osc0
7:6 RW 0x0 2'b1:CPLL
2'b2:NPLL
2'b3:usbphy480M
clk_cif_out_div_con
5:0 RW 0x00
clk_cif_out=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON14
Address: Operational Base + offset (0x0138)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
aclk_hclk_peri_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:CPLL
14:13 RO 0x0 reserved
hclk_peri_div_con
12:8 RW 0x07
hclk_peri=pll_clk_src/(div_con+1)
7:5 RO 0x0 reserved
aclk_peri_div_con
4:0 RW 0x05
aclk_peri=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON15
Address: Operational Base + offset (0x013c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_nandc_sel
15 RW 0x0 1'b0: select clk_nandc
1'b1: select clk_nandc_div50
14:13 RO 0x0 reserved
clk_nandc_div50_div_con
12:8 RW 0x07 clk_nandc_div50=clk_nandc/(div_con+1), duty cycle is 50% for
any value
clk_nandc_pll
2'b0:GPLL
7:6 RW 0x0
2'b1:CPLL
2'b2:NPLL
5 RO 0x0 reserved
clk_nandc_div_con
4:0 RW 0x07
clk_nandc=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON16
Address: Operational Base + offset (0x0140)
CRU_CLKSEL_CON17
Address: Operational Base + offset (0x0144)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_CLKSEL_CON18
Address: Operational Base + offset (0x0148)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_sdio_pll_sel
2'b0:GPLL
15:14 RW 0x0 2'b1:CPLL
2'b2:NPLL
2'b3:xin_osc0
13:8 RO 0x0 reserved
clk_sdio_div_con
7:0 RW 0x02
clk_sdio=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON19
Address: Operational Base + offset (0x014c)
CRU_CLKSEL_CON20
Address: Operational Base + offset (0x0150)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_CLKSEL_CON21
Address: Operational Base + offset (0x0154)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_emmc_sel
15 RW 0x0 1'b0:select clk_emmc
1'b1:select clk_emmc_div50
14:8 RO 0x0 reserved
clk_emmc_div50_div_con
7:0 RW 0x02 clk_emmc_div50=clk_emmc/(div_con+1), duty cycle is 50% for
any value
CRU_CLKSEL_CON22
Address: Operational Base + offset (0x0158)
CRU_CLKSEL_CON23
Address: Operational Base + offset (0x015c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
aclk_hclk_pclk_bus_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:CPLL
14:13 RO 0x0 reserved
aclk_bus_div_con
12:8 RW 0x05
aclk_bus=pll_clk_src/(div_con+1)
rmii_clk_sel
7 RW 0x1 1'b0:10M
1'b1:100M
rmii_extclksrc_sel
6 RW 0x0 1'b0:select clk_gmac as clk_gmac
1'b1:select external phy clock as clk_gmac
5:4 RO 0x0 reserved
pclk_gmac_div_con
3:0 RW 0x1
pclk_gmac=aclk_peri/(div_con+1)
CRU_CLKSEL_CON24
Address: Operational Base + offset (0x0160)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:10 RO 0x0 reserved
pclk_bus_div_con
9:8 RW 0x1
pclk_bus=aclk_bus/(div_con+1)
7:5 RO 0x0 reserved
hclk_bus_div_con
4:0 RW 0x07
hclk_bus=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON25
Address: Operational Base + offset (0x0164)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_crypto_apk_sel
2'h0:GPLL
15:14 RW 0x0
2'h1:CPLL
2'h2:NPLL
CRU_CLKSEL_CON26
Address: Operational Base + offset (0x0168)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_pdm_sel
15 RW 0x0 1'b0:select clk_pdm
1'b1:select clk_pdm_frac_out
14:10 RO 0x0 reserved
clk_pdm_pll_sel
2'h0:GPLL
9:8 RW 0x0
2'h1:xin_osc0
2'h2:NPLL
7 RO 0x0 reserved
clk_pdm_div_con
6:0 RW 0x0b
clk_pdm=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON27
Address: Operational Base + offset (0x016c)
Bit Attr Reset Value Description
clk_pdm_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_pdm
CRU_CLKSEL_CON28
Address: Operational Base + offset (0x0170)
CRU_CLKSEL_CON29
Address: Operational Base + offset (0x0174)
Bit Attr Reset Value Description
clk_i2s0_tx_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_i2s0_tx
CRU_CLKSEL_CON30
Address: Operational Base + offset (0x0178)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2s1_out_mclk_sel
15 RW 0x0 1'b0:select selected clock by clk_i2s1_sel
1'b1:select xin_osc0_half
14:12 RO 0x0 reserved
CRU_CLKSEL_CON31
Address: Operational Base + offset (0x017c)
Bit Attr Reset Value Description
clk_i2s1_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_i2s1
CRU_CLKSEL_CON32
Address: Operational Base + offset (0x0180)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2s2_out_mclk_sel
15 RW 0x0 1'b0:select selected clock by clk_i2s2_sel
1'b1:select xin_osc0_half
14:12 RO 0x0 reserved
clk_i2s2_sel
2'h0:select clk_i2s2
11:10 RW 0x0 2'h1:select clk_i2s2_frac_out
2'h2:select mclk_i2s2_in
2'h3:select xin_osc0_half
9 RO 0x0 reserved
clk_i2s2_pll_sel
8 RW 0x0 1'b0:GPLL
1'b1:NPLL
7 RO 0x0 reserved
clk_i2s2_div_con
6:0 RW 0x0b
clk_i2s2=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON33
CRU_CLKSEL_CON34
Address: Operational Base + offset (0x0188)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart1_pll_sel
2'b0:GPLL
15:14 RW 0x0 2'b1:xin_osc0
2'b2:usbphy480M
2'b3:NPLL
13:5 RO 0x0 reserved
clk_uart1_div_con
4:0 RW 0x0b
clk_uart1=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON35
Address: Operational Base + offset (0x018c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart1_sel
2'b0:select clk_uart1
15:14 RW 0x0
2'b1:select clk_uart1_np5
2'b2:select clk_uart1_frac_out
13:5 RO 0x0 reserved
clk_uart1_divnp5_div_con
4:0 RW 0x0b
clk_uart1_np5=2*clk_uart1/(2*div_con+3)
CRU_CLKSEL_CON36
Address: Operational Base + offset (0x0190)
Bit Attr Reset Value Description
clk_uart1_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart1
CRU_CLKSEL_CON37
Address: Operational Base + offset (0x0194)
CRU_CLKSEL_CON38
Address: Operational Base + offset (0x0198)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart2_sel
2'b0:select clk_uart2
15:14 RW 0x0
2'b1:select clk_uart2_np5
2'b2:select clk_uart2_frac_out
13:5 RO 0x0 reserved
clk_uart2_divnp5_div_con
4:0 RW 0x0b
clk_uart2_np5=2*clk_uart2/(2*div_con+3)
CRU_CLKSEL_CON39
Address: Operational Base + offset (0x019c)
Bit Attr Reset Value Description
clk_uart2_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart2
CRU_CLKSEL_CON40
Address: Operational Base + offset (0x01a0)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart3_pll_sel
2'b0:GPLL
15:14 RW 0x0 2'b1:xin_osc0
2'b2:usbphy480M
2'b3:NPLL
13:5 RO 0x0 reserved
CRU_CLKSEL_CON41
Address: Operational Base + offset (0x01a4)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart3_sel
2'b0:select clk_uart3
15:14 RW 0x0
2'b1:select clk_uart3_np5
2'b2:select clk_uart3_frac_out
13:5 RO 0x0 reserved
clk_uart3_divnp5_div_con
4:0 RW 0x0b
clk_uart3_np5=2*clk_uart3/(2*div_con+3)
CRU_CLKSEL_CON42
Address: Operational Base + offset (0x01a8)
Bit Attr Reset Value Description
clk_uart3_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart3
CRU_CLKSEL_CON43
Address: Operational Base + offset (0x01ac)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart4_pll_sel
2'b0:GPLL
15:14 RW 0x0 2'b1:xin_osc0
2'b2:usbphy480M
2'b3:NPLL
13:5 RO 0x0 reserved
clk_uart4_div_con
4:0 RW 0x0b
clk_uart4=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON44
Address: Operational Base + offset (0x01b0)
CRU_CLKSEL_CON45
Address: Operational Base + offset (0x01b4)
Bit Attr Reset Value Description
clk_uart4_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart4
CRU_CLKSEL_CON46
Address: Operational Base + offset (0x01b8)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart5_pll_sel
2'b0:GPLL
15:14 RW 0x0 2'b1:xin_osc0
2'b2:usbphy480M
2'b3:NPLL
13:5 RO 0x0 reserved
clk_uart5_div_con
4:0 RW 0x0b
clk_uart5=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON47
Address: Operational Base + offset (0x01bc)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart5_sel
2'b0:select clk_uart5
15:14 RW 0x0
2'b1:select clk_uart5_np5
2'b2:select clk_uart5_frac_out
13:5 RO 0x0 reserved
CRU_CLKSEL_CON48
Address: Operational Base + offset (0x01c0)
Bit Attr Reset Value Description
clk_uart5_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart5
CRU_CLKSEL_CON49
Address: Operational Base + offset (0x01c4)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2c1_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_i2c1_div_con
14:8 RW 0x0b
clk_i2c1=pll_clk_src/(div_con+1)
clk_i2c0_pll_sel
7 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_i2c0_div_con
6:0 RW 0x0b
clk_i2c0=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON50
Address: Operational Base + offset (0x01c8)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2c3_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_i2c3_div_con
14:8 RW 0x0b
clk_i2c3=pll_clk_src/(div_con+1)
clk_i2c2_pll_sel
7 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_i2c2_div_con
6:0 RW 0x0b
clk_i2c2=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON52
Address: Operational Base + offset (0x01d0)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_pwm1_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_pwm1_div_con
14:8 RW 0x0b
clk_pwm1=pll_clk_src/(div_con+1)
clk_pwm0_pll_sel
7 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_pwm0_div_con
6:0 RW 0x0b
clk_pwm0=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON53
Address: Operational Base + offset (0x01d4)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_spi1_pll_sel
15 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_spi1_div_con
14:8 RW 0x0b
clk_spi1=pll_clk_src/(div_con+1)
clk_spi0_pll_sel
7 RW 0x0 1'b0:GPLL
1'b1:xin_osc0
clk_spi0_div_con
6:0 RW 0x0b
clk_spi0=pll_clk_src/(div_con+1)
CRU_CLKSEL_CON54
Address: Operational Base + offset (0x01d8)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:11 RO 0x0 reserved
clk_tsadc_div_con
10:0 RW 0x001
clk_tsadc=xin_osc0/(div_con+1)
CRU_CLKSEL_CON55
Address: Operational Base + offset (0x01dc)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:11 RO 0x0 reserved
clk_saradc_div_con
10:0 RW 0x017
clk_saradc=xin_osc0/(div_con+1)
CRU_CLKSEL_CON56
Address: Operational Base + offset (0x01e0)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:6 RO 0x0 reserved
clk_otp_usr_div_con
5:4 RW 0x1
clk_otp_usr=clk_otp/(div_con+1)
3 RO 0x0 reserved
clk_otp_div_con
2:0 RW 0x0
clk_otp=xin_osc0/(div_con+1)
CRU_CLKSEL_CON57
Address: Operational Base + offset (0x01e4)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
test_div_con
12:8 RW 0x1f
clk_test_out=test_clk_src/(div_con+1)
7:5 RO 0x0 reserved
CRU_CLKSEL_CON58
Address: Operational Base + offset (0x01e8)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2s0_rx_out_mclk_sel
2'b0:select selected clock by clk_i2s0_rx_tx_clk_sel
15:14 RW 0x0
2'b1:select xin_osc0_half
2'b2:select clk_i2s0_tx
13 RO 0x0 reserved
CRU_CLKSEL_CON59
Address: Operational Base + offset (0x01ec)
Bit Attr Reset Value Description
clk_i2s0_rx_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_i2s0_rx
CRU_CLKGATE_CON0
Address: Operational Base + offset (0x0200)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_ddrmon24m_clk_en
15 RW 0x0
When HIGH, disable clock
clk_ddrphy4x_clk_en
14 RW 0x0
When HIGH, disable clock
ddrphy_gpll_clk_en
13 RW 0x0
When HIGH, disable clock
gpu_clk_div_clk_en
12 RW 0x0
When HIGH, disable clock
aclk_gpu_niu_clk_en
11 RW 0x0
When HIGH, disable clock
clk_gpu_clk_en
10 RW 0x0
When HIGH, disable clock
gpu_clk_np5_src_clk_en
9 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON1
Address: Operational Base + offset (0x0204)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
aclk_axi_split_clk_en
15 RW 0x0
When HIGH, disable clock
pclk_ddr_grf_clk_en
14 RW 0x0
When HIGH, disable clock
clk_ddrstanby_clk_en
13 RW 0x0
When HIGH, disable clock
pclk_ddrstdby_clk_en
12 RW 0x0
When HIGH, disable clock
clk_ddrmon_clk_en
11 RW 0x0
When HIGH, disable clock
pclk_ddrmon_clk_en
10 RW 0x0
When HIGH, disable clock
pclk_msch_clk_en
9 RW 0x0
When HIGH, disable clock
clk_msch_clk_en
8 RW 0x0
When HIGH, disable clock
pclk_upctl2_clk_en
7 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON2
Address: Operational Base + offset (0x0208)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:14 RO 0x0 reserved
pclk_vo_src_clk_en
13 RW 0x0
When HIGH, disable clock
hclk_vo_src_clk_en
12 RW 0x0
When HIGH, disable clock
11:9 RO 0x0 reserved
dclk_vopl_clk_en
8 RW 0x0
When HIGH, disable clock
dclk_vopl_frac_src_clk_en
7 RW 0x0
When HIGH, disable clock
dclk_vopl_pll_clk_en
6 RW 0x0
When HIGH, disable clock
clk_pwm_vopb_pll_clk_en
5 RW 0x0
When HIGH, disable clock
dclk_vopb_clk_en
4 RW 0x0
When HIGH, disable clock
dclk_vopb_frac_src_clk_en
3 RW 0x0
When HIGH, disable clock
dclk_vopb_pll_clk_en
2 RW 0x0
When HIGH, disable clock
clk_rga_core_pll_clk_en
1 RW 0x0
When HIGH, disable clock
aclk_vo_pll_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON3
Address: Operational Base + offset (0x020c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:10 RO 0x0 reserved
pclk_mipi_dsi_host_clk_en
9 RW 0x0
When HIGH, disable clock
hclk_rga_clk_en
8 RW 0x0
When HIGH, disable clock
aclk_rga_clk_en
7 RW 0x0
When HIGH, disable clock
hclk_vopl_clk_en
6 RW 0x0
When HIGH, disable clock
aclk_vopl_clk_en
5 RW 0x0
When HIGH, disable clock
hclk_vopb_clk_en
4 RW 0x0
When HIGH, disable clock
aclk_vopb_clk_en
3 RW 0x0
When HIGH, disable clock
pclk_vo_niu_clk_en
2 RW 0x0
When HIGH, disable clock
hclk_vo_niu_clk_en
1 RW 0x0
When HIGH, disable clock
aclk_vo_niu_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON4
Address: Operational Base + offset (0x0210)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
aclk_vi_niu_clk_en
15 RW 0x0
When HIGH, disable clock
pclkin_cif_clk_en
14 RW 0x0
When HIGH, disable clock
pclkin_isp_clk_en
13 RW 0x0
When HIGH, disable clock
hclk_vi_src_clk_en
12 RW 0x0
When HIGH, disable clock
clk_cif_out_pll_clk_en
11 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON5
Address: Operational Base + offset (0x0214)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
hclk_nandc_clk_en
15 RW 0x0
When HIGH, disable clock
14 RO 0x0 reserved
clk_nandc_clk_en
13 RW 0x0
When HIGH, disable clock
clk_nandc_div50_clk_en
12 RW 0x0
When HIGH, disable clock
clk_nandc_pll_clk_en
11 RW 0x0
When HIGH, disable clock
10 RO 0x0 reserved
aclk_peri_niu_clk_en
9 RW 0x0
When HIGH, disable clock
aclk_peri_clk_en
8 RW 0x0
When HIGH, disable clock
aclk_hclk_pclk_peri_pll_clk_en
7 RW 0x0
When HIGH, disable clock
6:5 RO 0x0 reserved
CRU_CLKGATE_CON6
Address: Operational Base + offset (0x0218)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_sdmmc_clk_en
15 RW 0x0
When HIGH, disable clock
clk_sdmmc_div50_clk_en
14 RW 0x0
When HIGH, disable clock
clk_sdmmc_pll_clk_en
13 RW 0x0
When HIGH, disable clock
hclk_pdsdcard_clk_en
12 RW 0x0
When HIGH, disable clock
hclk_sfc_clk_en
11 RW 0x0
When HIGH, disable clock
hclk_emmc_clk_en
10 RW 0x0
When HIGH, disable clock
hclk_sdio_clk_en
9 RW 0x0
When HIGH, disable clock
hclk_pdmmc_nand_niu_clk_en
8 RW 0x0
When HIGH, disable clock
clk_sfc_pll_clk_en
7 RW 0x0
When HIGH, disable clock
clk_emmc_clk_en
6 RW 0x0
When HIGH, disable clock
clk_emmc_div50_clk_en
5 RW 0x0
When HIGH, disable clock
clk_emmc_pll_clk_en
4 RW 0x0
When HIGH, disable clock
clk_sdio_clk_en
3 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON7
Address: Operational Base + offset (0x021c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_gmac_ref_clk_en
15 RW 0x0
When HIGH, disable clock
14 RO 0x0 reserved
clk_gmac_tx_rx_clk_en
13 RW 0x0
When HIGH, disable clock
pclk_gmac_src_clk_en
12 RW 0x0
When HIGH, disable clock
clk_gmac_pll_clk_en
11 RW 0x0
When HIGH, disable clock
aclk_pdgmac_clk_en
10 RW 0x0
When HIGH, disable clock
9 RO 0x0 reserved
hclk_usb2host_arb_clk_en
8 RW 0x0
When HIGH, disable clock
7 RO 0x0 reserved
hclk_usb2host_clk_en
6 RW 0x0
When HIGH, disable clock
hclk_usb2otg_clk_en
5 RW 0x0
When HIGH, disable clock
hclk_pdusb_niu_clk_en
4 RW 0x0
When HIGH, disable clock
clk_otg_adp_clk_en
3 RW 0x0
When HIGH, disable clock
hclk_pdusb_clk_en
2 RW 0x0
When HIGH, disable clock
hclk_sdmmc_clk_en
1 RW 0x0
When HIGH, disable clock
hclk_pdsdcard_niu_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON8
Address: Operational Base + offset (0x0220)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_crypto_apk_pll_clk_en
15 RW 0x0
When HIGH, disable clock
clk_crypto_pll_clk_en
14 RW 0x0
When HIGH, disable clock
hclk_pdcrypto_clk_en
13 RW 0x0
When HIGH, disable clock
aclk_pdcrypto_clk_en
12 RW 0x0
When HIGH, disable clock
11 RO 0x0 reserved
pclk_top_clk_en
10 RW 0x0
When HIGH, disable clock
pclk_bus_clk_en
9 RW 0x0
When HIGH, disable clock
hclk_bus_clk_en
8 RW 0x0
When HIGH, disable clock
aclk_bus_clk_en
7 RW 0x0
When HIGH, disable clock
pd_bus_pll_clk_en
6 RW 0x0
When HIGH, disable clock
clk_gmac_out_pll_clk_en
5 RW 0x0
When HIGH, disable clock
4 RO 0x0 reserved
pclk_gmac_clk_en
3 RW 0x0
When HIGH, disable clock
aclk_gmac_clk_en
2 RW 0x0
When HIGH, disable clock
pclk_gmac_niu_clk_en
1 RW 0x0
When HIGH, disable clock
aclk_gmac_niu_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON9
Address: Operational Base + offset (0x0224)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_i2s0_tx_out_mclk_en
15 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON10
Address: Operational Base + offset (0x0228)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart1_clk_en
15 RW 0x0
When HIGH, disable clock
clk_uart1_frac_src_clk_en
14 RW 0x0
When HIGH, disable clock
clk_uart1_divnp5_clk_en
13 RW 0x0
When HIGH, disable clock
clk_uart1_pll_clk_en
12 RW 0x0
When HIGH, disable clock
clk_i2s0_rx_out_mclk_oe
11 RW 0x0 0:disable clk_i2s0_rx_out_mclk pad
1:enable clk_i2s0_rx_out_mclk pad
clk_i2s2_out_mclk_oe
10 RW 0x0 0:disable clk_i2s2_out_mclk pad
1:enable clk_i2s2_out_mclk pad
CRU_CLKGATE_CON11
Address: Operational Base + offset (0x022c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart5_clk_en
15 RW 0x0
When HIGH, disable clock
clk_uart5_frac_src_clk_en
14 RW 0x0
When HIGH, disable clock
clk_uart5_divnp5_clk_en
13 RW 0x0
When HIGH, disable clock
clk_uart5_pll_clk_en
12 RW 0x0
When HIGH, disable clock
clk_uart4_clk_en
11 RW 0x0
When HIGH, disable clock
clk_uart4_frac_src_clk_en
10 RW 0x0
When HIGH, disable clock
clk_uart4_divnp5_clk_en
9 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON12
Address: Operational Base + offset (0x0230)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
clk_cpu_boost_clk_en
12 RW 0x0
When HIGH, disable clock
clk_otp_pll_clk_en
11 RW 0x0
When HIGH, disable clock
clk_saradc_pll_clk_en
10 RW 0x0
When HIGH, disable clock
clk_tsadc_pll_clk_en
9 RW 0x0
When HIGH, disable clock
clk_spi1_pll_clk_en
8 RW 0x0
When HIGH, disable clock
clk_spi0_pll_clk_en
7 RW 0x0
When HIGH, disable clock
clk_pwm1_pll_clk_en
6 RW 0x0
When HIGH, disable clock
clk_pwm0_pll_clk_en
5 RW 0x0
When HIGH, disable clock
4 RO 0x0 reserved
CRU_CLKGATE_CON13
Address: Operational Base + offset (0x0234)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
aclk_dfc_clk_en
15 RW 0x0
When HIGH, disable clock
hclk_rom_clk_en
14 RW 0x0
When HIGH, disable clock
13 RO 0x0 reserved
aclk_gic_clk_en
12 RW 0x0
When HIGH, disable clock
aclk_intmem_clk_en
11 RW 0x0
When HIGH, disable clock
pclk_bus_niu_clk_en
10 RW 0x0
When HIGH, disable clock
hclk_bus_niu_clk_en
9 RW 0x0
When HIGH, disable clock
aclk_bus_niu_clk_en
8 RW 0x0
When HIGH, disable clock
7 RO 0x0 reserved
clk_otp_usr_clk_en
6 RW 0x0
When HIGH, disable clock
clk_timer5_clk_en
5 RW 0x0
When HIGH, disable clock
clk_timer4_clk_en
4 RW 0x0
When HIGH, disable clock
clk_timer3_clk_en
3 RW 0x0
When HIGH, disable clock
clk_timer2_clk_en
2 RW 0x0
When HIGH, disable clock
clk_timer1_clk_en
1 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON14
Address: Operational Base + offset (0x0238)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pclk_pwm0_clk_en
15 RW 0x0
When HIGH, disable clock
14 RO 0x0 reserved
pclk_i2c3_clk_en
13 RW 0x0
When HIGH, disable clock
pclk_i2c2_clk_en
12 RW 0x0
When HIGH, disable clock
pclk_i2c1_clk_en
11 RW 0x0
When HIGH, disable clock
pclk_i2c0_clk_en
10 RW 0x0
When HIGH, disable clock
pclk_uart5_clk_en
9 RW 0x0
When HIGH, disable clock
pclk_uart4_clk_en
8 RW 0x0
When HIGH, disable clock
pclk_uart3_clk_en
7 RW 0x0
When HIGH, disable clock
pclk_uart2_clk_en
6 RW 0x0
When HIGH, disable clock
pclk_uart1_clk_en
5 RW 0x0
When HIGH, disable clock
hclk_i2s2_clk_en
4 RW 0x0
When HIGH, disable clock
hclk_i2s1_clk_en
3 RW 0x0
When HIGH, disable clock
hclk_i2s0_clk_en
2 RW 0x0
When HIGH, disable clock
hclk_pdm_clk_en
1 RW 0x0
When HIGH, disable clock
pclk_dcf_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON15
Address: Operational Base + offset (0x023c)
CRU_CLKGATE_CON16
Address: Operational Base + offset (0x0240)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
testclk_clk_en
15 RW 0x0
When HIGH, disable clock
14:8 RO 0x0 reserved
pclk_cpu_boost_clk_en
7 RW 0x0
When HIGH, disable clock
pclk_usb_grf_en
6 RW 0x0
When HIGH, disable clock
CRU_CLKGATE_CON17
Address: Operational Base + offset (0x0244)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:11 RO 0x0 reserved
aclk_gpu_div_clk_en
10 RW 0x0
When HIGH, disable clock
pclk_gpu_grf_clk_en
9 RW 0x0
When HIGH, disable clock
aclk_gpu_perf_clk_en
8 RW 0x0
When HIGH, disable clock
7 RO 0x0 reserved
pclk_core_grf_clk_en
6 RW 0x0
When HIGH, disable clock
aclk_core_perf_clk_en
5 RW 0x0
When HIGH, disable clock
clk_core_pvtm_clk_en
4 RW 0x0
When HIGH, disable clock
clk_i2s0_rx_out_mclk_en
3 RW 0x0
When HIGH, disable clock
clk_i2s0_rx_clk_en
2 RW 0x0
When HIGH, disable clock
clk_i2s0_rx_divfrac_clk_en
1 RW 0x0
When HIGH, disable clock
clk_i2s0_rx_pll_clk_en
0 RW 0x0
When HIGH, disable clock
CRU_SSGTBL0_3
Address: Operational Base + offset (0x0280)
CRU_SSGTBL8_11
Address: Operational Base + offset (0x0288)
Bit Attr Reset Value Description
ssgtbl8_11
Extern wave table 8-11
7-0: table8
31:0 WO 0x00000000
15-8: table9
23-16: table10
31-24: table11
CRU_SSGTBL12_15
Address: Operational Base + offset (0x028c)
Bit Attr Reset Value Description
ssgtbl12_15
Extern wave table 12-15
7-0: table12
31:0 WO 0x00000000
15-8: table13
23-16: table14
31-24: table15
CRU_SSGTBL16_19
Address: Operational Base + offset (0x0290)
CRU_SSGTBL20_23
Address: Operational Base + offset (0x0294)
Bit Attr Reset Value Description
ssgtbl20_23
Extern wave table 20-23
7-0: table20
31:0 WO 0x00000000
15-8: table21
23-16: table22
31-24: table23
CRU_SSGTBL24_27
Address: Operational Base + offset (0x0298)
Bit Attr Reset Value Description
ssgtbl24_27
Extern wave table 24-27
7-0: table24
31:0 WO 0x00000000
15-8: table25
23-16: table26
31-24: table27
CRU_SSGTBL28_31
Address: Operational Base + offset (0x029c)
Bit Attr Reset Value Description
ssgtbl28_31
Extern wave table 28-31
7-0: table28
31:0 WO 0x00000000
15-8: table29
23-16: table30
31-24: table31
CRU_SSGTBL32_35
Address: Operational Base + offset (0x02a0)
CRU_SSGTBL36_39
Address: Operational Base + offset (0x02a4)
Bit Attr Reset Value Description
ssgtbl36_39
Extern wave table 36-39
7-0: table36
31:0 WO 0x00000000
15-8: table37
23-16: table38
31-24: table39
CRU_SSGTBL40_43
Address: Operational Base + offset (0x02a8)
Bit Attr Reset Value Description
ssgtbl40_43
Extern wave table 40-43
7-0: table40
31:0 WO 0x00000000
15-8: table41
23-16: table42
31-24: table43
CRU_SSGTBL44_47
Address: Operational Base + offset (0x02ac)
Bit Attr Reset Value Description
ssgtbl44_47
Extern wave table 44-47
7-0: table44
31:0 WO 0x00000000
15-8: table45
23-16: table46
31-24: table47
CRU_SSGTBL48_51
Address: Operational Base + offset (0x02b0)
Bit Attr Reset Value Description
ssgtbl48_51
Extern wave table 48-51
7-0: table48
31:0 WO 0x00000000
15-8: table49
23-16: table50
31-24: table51
CRU_SSGTBL52_55
CRU_SSGTBL56_59
Address: Operational Base + offset (0x02b8)
Bit Attr Reset Value Description
ssgtbl56_59
Extern wave table 56-59
7-0: table56
31:0 WO 0x00000000
15-8: table57
23-16: table58
31-24: table59
CRU_SSGTBL60_63
Address: Operational Base + offset (0x02bc)
Bit Attr Reset Value Description
ssgtbl60_63
Extern wave table 60-63
7-0: table60
31:0 WO 0x00000000
15-8: table61
23-16: table62
31-24: table63
CRU_SSGTBL64_67
Address: Operational Base + offset (0x02c0)
Bit Attr Reset Value Description
ssgtbl64_67
Extern wave table 64-67
7-0: table64
31:0 WO 0x00000000
15-8: table65
23-16: table66
31-24: table67
CRU_SSGTBL68_71
Address: Operational Base + offset (0x02c4)
Bit Attr Reset Value Description
ssgtbl68_71
Extern wave table 68-71
7-0: table68
31:0 WO 0x00000000
15-8: table69
23-16: table70
31-24: table71
CRU_SSGTBL72_75
Address: Operational Base + offset (0x02c8)
Bit Attr Reset Value Description
ssgtbl72_75
Extern wave table 72-75
7-0: table72
31:0 WO 0x00000000
15-8: table73
23-16: table74
31-24: table75
CRU_SSGTBL76_79
Address: Operational Base + offset (0x02cc)
Bit Attr Reset Value Description
ssgtbl76_79
Extern wave table 76-79
7-0: table76
31:0 WO 0x00000000
15-8: table77
23-16: table78
31-24: table79
CRU_SSGTBL80_83
Address: Operational Base + offset (0x02d0)
Bit Attr Reset Value Description
ssgtbl80_83
Extern wave table 76-79
7-0: table80
31:0 WO 0x00000000
15-8: table81
23-16: table82
31-24: table83
CRU_SSGTBL84_87
Address: Operational Base + offset (0x02d4)
Bit Attr Reset Value Description
ssgtbl84_87
Extern wave table 84-87
7-0: table84
31:0 WO 0x00000000
15-8: table85
23-16: table86
31-24: table87
CRU_SSGTBL88_91
Address: Operational Base + offset (0x02d8)
Bit Attr Reset Value Description
ssgtbl88_91
Extern wave table 88-91
7-0: table88
31:0 WO 0x00000000
15-8: table89
23-16: table90
31-24: table91
CRU_SSGTBL92_95
Address: Operational Base + offset (0x02dc)
Bit Attr Reset Value Description
ssgtbl92_95
Extern wave table 92-95
7-0: table92
31:0 WO 0x00000000
15-8: table93
23-16: table94
31-24: table95
CRU_SSGTBL96_99
Address: Operational Base + offset (0x02e0)
Bit Attr Reset Value Description
ssgtbl96_99
Extern wave table 96-99
7-0: table96
31:0 WO 0x00000000
15-8: table97
23-16: table98
31-24: table99
CRU_SSGTBL100_103
Address: Operational Base + offset (0x02e4)
Bit Attr Reset Value Description
ssgtbl100_103
Extern wave table 100-103
7-0: table100
31:0 WO 0x00000000
15-8: table101
23-16: table102
31-24: table103
CRU_SSGTBL104_107
Address: Operational Base + offset (0x02e8)
Bit Attr Reset Value Description
ssgtbl104_107
Extern wave table 104-107
7-0: table104
31:0 WO 0x00000000
15-8: table105
23-16: table106
31-24: table107
CRU_SSGTBL108_111
Address: Operational Base + offset (0x02ec)
CRU_SSGTBL112_115
Address: Operational Base + offset (0x02f0)
Bit Attr Reset Value Description
ssgtbl112_115
Extern wave table 112-115
7-0: table112
31:0 WO 0x00000000
15-8: table113
23-16: table114
31-24: table115
CRU_SSGTBL116_119
Address: Operational Base + offset (0x02f4)
Bit Attr Reset Value Description
ssgtbl116_119
Extern wave table 116-119
7-0: table116
31:0 WO 0x00000000
15-8: table117
23-16: table118
31-24: table119
CRU_SSGTBL120_123
Address: Operational Base + offset (0x02f8)
Bit Attr Reset Value Description
ssgtbl120_123
Extern wave table 120-123
7-0: table120
31:0 WO 0x00000000
15-8: table121
23-16: table122
31-24: table123
CRU_SSGTBL124_127
Address: Operational Base + offset (0x02fc)
Bit Attr Reset Value Description
ssgtbl124_127
Extern wave table 124-127
7-0: table124
31:0 WO 0x00000000
15-8: table125
23-16: table126
31-24: table127
CRU_SOFTRST_CON0
Address: Operational Base + offset (0x0300)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
R/W l2_srstn_req
15 0x0
SC When HIGH, reset relative logic
R/W strc_sys_asrstn_req
14 0x0
SC When HIGH, reset relative logic
R/W core_noc_srstn_req
13 0x0
SC When HIGH, reset relative logic
topdbg_srstn_req
12 RW 0x0
When HIGH, reset relative logic
core3_dbg_srstn_req
11 RW 0x0
When HIGH, reset relative logic
core2_dbg_srstn_req
10 RW 0x0
When HIGH, reset relative logic
core1_dbg_srstn_req
9 RW 0x0
When HIGH, reset relative logic
core0_dbg_srstn_req
8 RW 0x0
When HIGH, reset relative logic
core3_srstn_req
7 RW 0x0
When HIGH, reset relative logic
core2_srstn_req
6 RW 0x0
When HIGH, reset relative logic
core1_srstn_req
5 RW 0x0
When HIGH, reset relative logic
R/W core0_srstn_req
4 0x0
SC When HIGH, reset relative logic
corepo3_srstn_req
3 RW 0x0
When HIGH, reset relative logic
corepo2_srstn_req
2 RW 0x0
When HIGH, reset relative logic
corepo1_srstn_req
1 RW 0x0
When HIGH, reset relative logic
R/W corepo0_srstn_req
0 0x0
SC When HIGH, reset relative logic
CRU_SOFTRST_CON1
Address: Operational Base + offset (0x0304)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_SOFTRST_CON2
Address: Operational Base + offset (0x0308)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
mipicsiphy_psrstn_req
15 RW 0x0
When HIGH, reset relative logic
cif_pclkin_srstn_req
14 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON3
Address: Operational Base + offset (0x030c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
vpu_core_srstn_req
15 RW 0x0
When HIGH, reset relative logic
mipidsiphy_psrstn_req
14 RW 0x0
When HIGH, reset relative logic
mipidsi_host_psrstn_req
13 RW 0x0
When HIGH, reset relative logic
rga_srstn_req
12 RW 0x0
When HIGH, reset relative logic
rga_hsrstn_req
11 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON4
Address: Operational Base + offset (0x0310)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
cpu_boost_srstn_req
15 RW 0x0
When HIGH, reset relative logic
cpu_boost_psrstn_req
14 RW 0x0
When HIGH, reset relative logic
usbphy_grf_psrstn_req
13 RW 0x0
When HIGH, reset relative logic
usbphy_host_port_srstn_req
12 RW 0x0
When HIGH, reset relative logic
usbphy_otg_port_srstn_req
11 RW 0x0
When HIGH, reset relative logic
usbphypor_srstn_req
10 RW 0x0
When HIGH, reset relative logic
usb2host_srstn_req
9 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON5
Address: Operational Base + offset (0x0314)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15 RO 0x0 reserved
gmac_asrstn_req
14 RW 0x0
When HIGH, reset relative logic
gmac_niu_psrstn_req
13 RW 0x0
When HIGH, reset relative logic
gmac_niu_asrstn_req
12 RW 0x0
When HIGH, reset relative logic
11 RO 0x0 reserved
nandc_srstn_req
10 RW 0x0
When HIGH, reset relative logic
nandc_hrstn_req
9 RW 0x0
When HIGH, reset relative logic
8:7 RO 0x0 reserved
sdmmc_hsrstn_req
6 RW 0x0
When HIGH, reset relative logic
pdsdcard_niu_hsrstn_req
5 RW 0x0
When HIGH, reset relative logic
sfc_srstn_req
4 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON6
Address: Operational Base + offset (0x0318)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
gpu_grf_psrstn_req
15 RW 0x0
When HIGH, reset relative logic
gpu_perf_asrstn_req
14 RW 0x0
When HIGH, reset relative logic
core_grf_psrstn_req
13 RW 0x0
When HIGH, reset relative logic
core_perf_asrstn_req
12 RW 0x0
When HIGH, reset relative logic
pmu_ddr_fail_save_srstn_req
11 RW 0x0
When HIGH, reset relative logic
pmu_niu_hrstn_req
10 RW 0x0
When HIGH, reset relative logic
pmu_uart_srstn_req
9 RW 0x0
When HIGH, reset relative logic
pmu_pvtm_srstn_req
8 RW 0x0
When HIGH, reset relative logic
pmu_cru_psrstn_req
7 RW 0x0
When HIGH, reset relative logic
pmu_uart0_psrstn_req
6 RW 0x0
When HIGH, reset relative logic
pmu_gpio0_psrstn_req
5 RW 0x0
When HIGH, reset relative logic
pmu_mem_psrstn_req
4 RW 0x0
When HIGH, reset relative logic
pmu_pmu_srstn_req
3 RW 0x0
When HIGH, reset relative logic
pmu_grf_psrstn_req
2 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON7
Address: Operational Base + offset (0x031c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
dcf_asrstn_req
15 RW 0x0
When HIGH, reset relative logic
rom_hsrstn_req
14 RW 0x0
When HIGH, reset relative logic
13 RO 0x0 reserved
gic_asrst_req
12 RW 0x0
When HIGH, reset relative logic
intmem_asrst_req
11 RW 0x0
When HIGH, reset relative logic
bus_top_niu_psrst_req
10 RW 0x0
When HIGH, reset relative logic
bus_niu_psrst_req
9 RW 0x0
When HIGH, reset relative logic
bus_niu_hsrstn_req
8 RW 0x0
When HIGH, reset relative logic
7:6 RO 0x0 reserved
crypto_apk_srstn_req
5 RW 0x0
When HIGH, reset relative logic
crypto_srstn_req
4 RW 0x0
When HIGH, reset relative logic
crypto_hsrstn_req
3 RW 0x0
When HIGH, reset relative logic
crypto_asrstn_req
2 RW 0x0
When HIGH, reset relative logic
crypto_niu_hsrstn_req
1 RW 0x0
When HIGH, reset relative logic
crypto_niu_asrstn_req
0 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON8
Address: Operational Base + offset (0x0320)
CRU_SOFTRST_CON9
Address: Operational Base + offset (0x0324)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
pwm1_psrstn_req
15 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON10
Address: Operational Base + offset (0x0328)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
timer5_srstn_req
15 RW 0x0
When HIGH, reset relative logic
timer4_srstn_req
14 RW 0x0
When HIGH, reset relative logic
timer3_srstn_req
13 RW 0x0
When HIGH, reset relative logic
timer2_srstn_req
12 RW 0x0
When HIGH, reset relative logic
timer1_srstn_req
11 RW 0x0
When HIGH, reset relative logic
CRU_SOFTRST_CON11
Address: Operational Base + offset (0x032c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
i2s0_rx_srstn_req
15 RW 0x0
When HIGH, reset relative logic
14:11 RO 0x0 reserved
grf_psrstn_req
10 RW 0x0
When HIGH, reset relative logic
sgrf_psrstn_req
9 RW 0x0
When HIGH, reset relative logic
gpio3_psrstn_req
8 RW 0x0
When HIGH, reset relative logic
gpio2_psrstn_req
7 RW 0x0
When HIGH, reset relative logic
gpio1_psrstn_req
6 RW 0x0
When HIGH, reset relative logic
wdt_ns_psrstn_req
5 RW 0x0
When HIGH, reset relative logic
CRU_SDMMC_CON0
Address: Operational Base + offset (0x0380)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:12 RO 0x0 reserved
drv_sel
11 RW 0x0
drv_sel
drv_delaynum
10:3 RW 0x00
drv_delaynum
drv_degree
2:1 RW 0x2
drv_degree
init_state
0 RW 0x0
init_state
CRU_SDMMC_CON1
Address: Operational Base + offset (0x0384)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:12 RO 0x0 reserved
sample_sel
11 RW 0x0
sample_sel
sample_delaynum
10:3 RW 0x00
sample_delaynum
sample_degree
2:1 RW 0x0
sample_degree
0 RO 0x0 reserved
CRU_SDIO_CON0
Address: Operational Base + offset (0x0388)
CRU_SDIO_CON1
Address: Operational Base + offset (0x038c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:12 RO 0x0 reserved
sample_sel
11 RW 0x0
sample_sel
sample_delaynum
10:3 RW 0x00
sample_delaynum
sample_degree
2:1 RW 0x0
sample_degree
0 RO 0x0 reserved
CRU_EMMC_CON0
Address: Operational Base + offset (0x0390)
CRU_EMMC_CON1
Address: Operational Base + offset (0x0394)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:12 RO 0x0 reserved
sample_sel
11 RW 0x0
sample_sel
sample_delaynum
10:3 RW 0x00
sample_delaynum
sample_degree
2:1 RW 0x0
sample_degree
0 RO 0x0 reserved
CRU_GPLL_CON0
Address: Operational Base + offset (0xc000)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
bypass
PLL Bypass. FREF bypasses PLL to FOUTPOSTDIV
15 RW 0x0
1'b0: no bypass
1'b1: bypass
postdiv1
14:12 RW 0x1
First Post Divide Value, (1-7)
fbdiv
Feedback Divide Value, valid divider settings are:
11:0 RW 0x032 [16, 3200] in integer mode
[20, 320] in fractional mode
Tips: no plus one operation
CRU_GPLL_CON1
Address: Operational Base + offset (0xc004)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_GPLL_CON2
Address: Operational Base + offset (0xc008)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
fout4phasepd
Power down 4-phase clocks and 2X, 3X, 4X clocks
27 RW 0x0
1'b0: no power down
1'b1: power down
foutvcopd
Power down buffered VCO clock
26 RW 0x0
1'b0: no power down
1'b1: power down
foutpostdivpd
Power down all outputs except for buffered VCO clock
25 RW 0x0
1'b0: no power down
1'b1: power down
CRU_GPLL_CON3
Address: Operational Base + offset (0xc00c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:13 RO 0x0 reserved
ssmod_spread
12:8 WO 0x00 spread amplitude
% = 0.1 * SPREAD[4:0]
ssmod_divval
7:4 WO 0x0
Divider required to set the modulation frequency
ssmod_downspread
Selects center spread or downs pread
3 WO 0x0
1'b0: down spread
1'b1: center spread
ssmod_reset
Reset modulator state
2 WO 0x1
1'b0: no reset
1'b1: reset
ssmod_disable_sscg
Bypass SSMOD by module
1 WO 0x1
1'b0: no bypass
1'b1: bypass
ssmod_bp
Bypass SSMOD by integration
0 WO 0x1
1'b0: no bypass
1'b1: bypass
CRU_GPLL_CON4
Address: Operational Base + offset (0xc010)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_PMU_MODE
Address: Operational Base + offset (0xc020)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:2 RO 0x0 reserved
gpll_work_mode
2'h0:clock from xin_osc0_func_div
1:0 RW 0x0
2'h1:clock from pll
2'h2:clock from clk_rtc_32k
CRU_PMU_CLKSEL_CON0
Address: Operational Base + offset (0xc040)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_rtc32k_clk_sel
2'h0:select clk_32k_from_io as clk_rtc_32k
15:14 RW 0x0
2'h1:select clk_32k_from_pvtm as clk_rtc_32k
2'h2:select clk_div32p768khz as clk_rtc_32k
13 RO 0x0 reserved
xin_osc0_func_div_con
12:8 RW 0x00
xin_osc0_func_div=xin_osc0/(div_con+1)
7:5 RO 0x0 reserved
pclk_pdpmu_div_con
4:0 RW 0x0b
pclk_pdpmu=gpll_clk_src/(div_con+1)
CRU_PMU_CLKSEL_CON1
Address: Operational Base + offset (0xc044)
Bit Attr Reset Value Description
clk_div32p768khz_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is xin_osc0
CRU_PMU_CLKSEL_CON2
Address: Operational Base + offset (0xc048)
CRU_PMU_CLKSEL_CON3
Address: Operational Base + offset (0xc04c)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
clk_uart0_pll_sel
2'h0:GPLL
15:14 RW 0x0 2'h1:xin_osc0
2'h2:usbphy480M
2'h3:NPLL
13:5 RO 0x0 reserved
clk_uart0_div_con
4:0 RW 0x0b
clk_uart0=pll_clk_src/(div_con+1)
CRU_PMU_CLKSEL_CON4
Address: Operational Base + offset (0xc050)
Bit Attr Reset Value Description
write_mask
31:16 WO 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
CRU_PMU_CLKSEL_CON5
Address: Operational Base + offset (0xc054)
Bit Attr Reset Value Description
clk_uart0_frac_div_con
31:0 RW 0x0bb8ea60 High 16-bit for numerator, Low 16-bit for denominator, clock
source is clk_uart0
CRU_PMU_CLKGATE_CON0
Address: Operational Base + offset (0xc080)
CRU_PMU_CLKGATE_CON1
Address: Operational Base + offset (0xc084)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000 When every bit HIGH, enable the writing corresponding bit; when
every bit LOW, don't care the writing corresponding bit
15:11 RO 0x0 reserved
mipidsiphy_ref_cclk_en
10 RW 0x0
When HIGH, disable clock
usbphy_ref_clk_en
9 RW 0x0
When HIGH, disable clock
clk_ref24m_pll_clk_en
8 RW 0x0
When HIGH, disable clock
npor
sysrstn
pllrstn
1.3us
chiprstn
138us
rstn_pre 32us
(IP reset)
REFDIV = 6
FBDIV = 175
POSTDIV1=1
POSTDIV2=1
And then
FOUTVCO = (FREF / REFDIV) * FBDIV = 24/6*175=700
FOUTPOSTDIV = FOUTVCO / (POSTDIV1*POSTDIV2)=700/1/1=700
If DSMPD = 0 (DSM is enabled, "fractional mode")
FOUTVCO = (FREF / REFDIV) * (FBDIV + FRAC / (2^24))
FOUTPOSTDIV = FOUTVCO / (POSTDIV1*POSTDIV2)
When FREF is 24MHz, and if 491.52MHz FOUTPOSTDIV is needed. The configuration can be:
DSMPD = 0
REFDIV = 1
FBDIV = 40
FRAC = 24’hf5c28f
POSTDIV1=2
POSTDIV2=1
And then
FOUTVCO = (FREF / REFDIV) * (FBDIV + FRAC / (2^24)) = 983.04
FOUTPOSTDIV = FOUTVCO / (POSTDIV1*POSTDIV2)=983.04/(2*1)=491.52
B. PLL setting consideration
If the POSTDIV value is changed during operation a short pulse (glitch) may occur on
FOUTPOSTDIV. The minimum width of the short pulse will be equal to twice the period of
the VCO. Therefore, if the circuitry clocked by the PLL is sensitive to short pulses, the
new divide value should be re-timed so that it is synchronous with the rising edge of the
output clock (FOUTPOSTDIV). Glitches cannot occur on any of the other outputs.
For lowest power operation, the minimum VCO and FREF frequencies should be used.
For minimum jitter operation, the highest VCO and FREF frequencies should be used.
The normal operating range for the VCO is described above in.
The supply rejection will be worse at the low end of the VCO range so care should be
taken to keep the supply clean for low power applications.
The feedback divider is not capable of dividing by all possible settings due to the use of
a power-saving architecture. The following settings are valid for FBDIV:
DSMPD=1 (Integer Mode)
DSMPD=0 (Fractional Mode)
The PD input places the PLL into the lowest power mode. In this case, all analog circuits
are turned off and FREF will be "ignored". The FOUTPOSTDIV and FOUTVCO pins are
forced to logic low (0V).
The BYPASS pin controls a mux which selects FREF to be passed to the FOUTPOSTDIV
when active high. However, the PLL continues to run as it normally would if bypass were
low. This is a useful feature for PLL testing since the clock path can be verified without
the PLL being required to work. Also, the effect that the PLL induced supply noise has on
the output buffering can be evaluated. It is not recommended to switch between BYPASS
mode and normal mode for regular chip operation since this may result in a glitch. Also,
FOUTPOSTDIVPD should be set low if the PLL is to be used in BYPASS mode.
The PLL programming supports changed on-the-fly and the PLL will simply slew to the new
frequency.
PLL lock state can be checked in CRU_APLL_CON1[10], CRU_DPLL_CON1[10],
CRU_CPLL_CON1[10], CRU_GPLL_CON1[10] register. The lock state is high when both
original hardware PLL lock and PLL counter lock are high. The PLL counter lock initial value is
CRU_GLB_CNT_TH[31:16].
The max delay time is 500 REF_CLK.
PLL locking consists of three phases.
Phase 1 is control voltage slewing. During this phase one of the clocks (reference or
divide) is much faster than the other, and the PLL frequency adjusts almost
continuously. When locking from power down, the divide clock is initially very slow and
steadily increases frequency. It will take slightly longer for faster VCO settings when
locking from power down, since the PLL must slew further.
Phase 2 is small signal phase acquisition. During this phase, the internal up/down
signals alternate semi-chaotically as the phase slowly adjusts until the two signals are
aligned. The duration of this phase depends on the loop bandwidth and is faster with
higher bandwidth. Bandwidth can be estimated as FREF / REFDIV / 20 for integer mode
and FREF /REFDIV / 40 for fractional mode. The duration of small signal locking is about
1/Bandwidth.
Phase 3 is the digital cycle count. After the last cycle slip is detected, an internal counter
waits 256 FREF / REFDIV cycles before the lock signal goes high. This is frequently the
dominant factor in lock time – especially for slower reference clock signals or large
reference divide settings. This time can be calculated as 256*REFDIV/FREF.
To get specific frequency, clocks of I2S, PDM, UART can be generated by fractional divider.
Generally you must set that denominator is 20 times larger than numerator to generate
precise clock frequency. So the fractional divider applies only to generate low frequency
clock like I2S, UART and PDM. For implementation issue, the input source clocks of fractional
divider also have the following limitation.
Table 2-1 Source Clock Limitation of Fractional Divider
Some IPs, such as NAND, EMMC, SDIO and SDMMC need clock of 50% duty cycle, divfree50
can generate clock of 50% duty cycle even in odd value divisor.
Some IPs, such as GPU and UART need some special frequency can use this divider.
Frequency of this divider=clk_src/((2*n+1)/2). Eg, UART with baud rate of 4Mbps need use
this divider to generate 64MHz clock from 480MHz of usbphypll.
Two global software resets are designed in the chip, you can program
CRU_GLB_SRST_FST_VALUE[15:0] as 0xfdb9 to assert the first global software reset
glb_srstn_1 and program CRU_GLB_SRST_SND_VALUE[15:0] as 0xeca8 to assert the
second global software reset glb_srstn_2. These two software resets are self-de-asserted by
hardware. Resetting hold timing of global software reset (glb_srstn_1, glb_srstn_2,
soc_wdt_rstn, soc_tsadc_rstn) can be programmable up to 1ms.
Glb_srstn_1 resets almost all logic.
Glb_srstn_2 resets almost all logic except GRF and GPIOs.
3.1 Overview
The general register file will be used to do static set by software, which is composed of many
registers for system control. The GRF is located at several addresses.
GRF, used for general non-secure system,
PMUGRF, used for always on system,
CORE_GRF, used for core pvtm and performance monitor
GPU_GRF, used for gpu configuration and performance monitor
USBPHY_GRF, used for usbphy configuration
DDR_GRF, used for controlling ip in PD_DDR
Reset
Name Offset Size Description
Value
GRF_GPIO2B_IOMUX_L 0x0028 W 0x00000000 GPIO2B iomux control low bits
GRF_GPIO2B_IOMUX_H 0x002c W 0x00000000 GPIO2B iomux control high bits
GRF_GPIO2C_IOMUX_L 0x0030 W 0x00000000 GPIO2C iomux control low bits
GRF_GPIO2C_IOMUX_H 0x0034 W 0x00000000 GPIO2C iomux control high bits
GRF_GPIO3A_IOMUX_L 0x0040 W 0x00000000 GPIO3A iomux control low bits
GRF_GPIO3A_IOMUX_H 0x0044 W 0x00000000 GPIO3A iomux control high bits
GRF_GPIO3B_IOMUX_L 0x0048 W 0x00000000 GPIO3B iomux control low bits
GRF_GPIO3B_IOMUX_H 0x004c W 0x00000000 GPIO3B iomux control high bits
GRF_GPIO3C_IOMUX_L 0x0050 W 0x00000000 GPIO3C iomux control low bits
GRF_GPIO3C_IOMUX_H 0x0054 W 0x00000000 GPIO3C iomux control high bits
GRF_GPIO3D_IOMUX_L 0x0058 W 0x00000000 GPIO3D iomux control low bits
GRF_GPIO3D_IOMUX_H 0x005c W 0x00000000 GPIO3D iomux control high bits
GRF_GPIO1A_P 0x0060 W 0x00005555 GPIO1A PU/PD control
GRF_GPIO1B_P 0x0064 W 0x00005695 GPIO1B PU/PD control
GRF_GPIO1C_P 0x0068 W 0x00005955 GPIO1C PU/PD control
GRF_GPIO1D_P 0x006c W 0x00006555 GPIO1D PU/PD control
GRF_GPIO2A_P 0x0070 W 0x0000aaaa GPIO2A PU/PD control
GRF_GPIO2B_P 0x0074 W 0x00006aaa GPIO2B PU/PD control
GRF_GPIO2C_P 0x0078 W 0x00002aa9 GPIO2C PU/PD control
GRF_GPIO3A_P 0x0080 W 0x0000aaaa GPIO3A PU/PD control
GRF_GPIO3B_P 0x0084 W 0x0000aaaa GPIO3B PU/PD control
GRF_GPIO3C_P 0x0088 W 0x0000aaaa GPIO3C PU/PD control
GRF_GPIO3D_P 0x008c W 0x000000aa GPIO3D PU/PD control
GRF_GPIO1A_SR 0x0090 W 0x00000000 GPIO1A slow rate control
GRF_GPIO1B_SR 0x0094 W 0x00000000 GPIO1B slow rate control
GRF_GPIO1C_SR 0x0098 W 0x00000000 GPIO1C slow rate control
GRF_GPIO1D_SR 0x009c W 0x00000000 GPIO1D slow rate control
GRF_GPIO2A_SR 0x00a0 W 0x00000000 GPIO2A slow rate control
GRF_GPIO2B_SR 0x00a4 W 0x00000000 GPIO2B slow rate control
GRF_GPIO2C_SR 0x00a8 W 0x00000000 GPIO2C slow rate control
GRF_GPIO3A_SR 0x00b0 W 0x00000000 GPIO3A slow rate control
GRF_GPIO3B_SR 0x00b4 W 0x00000000 GPIO3B slow rate control
GRF_GPIO3C_SR 0x00b8 W 0x00000000 GPIO3C slow rate control
GRF_GPIO3D_SR 0x00bc W 0x00000000 GPIO3D slow rate control
GRF_GPIO1A_SMT 0x00c0 W 0x00000000 GPIO1A smitter control
GRF_GPIO1B_SMT 0x00c4 W 0x00000000 GPIO1B smitter control
GRF_GPIO1C_SMT 0x00c8 W 0x00000000 GPIO1C smitter control
GRF_GPIO1D_SMT 0x00cc W 0x00000000 GPIO1D smitter control
GRF_GPIO2A_SMT 0x00d0 W 0x00000000 GPIO2A smitter control
GRF_GPIO2B_SMT 0x00d4 W 0x00000000 GPIO2B smitter control
GRF_GPIO2C_SMT 0x00d8 W 0x00000000 GPIO2C smitter control
GRF_GPIO3A_SMT 0x00e0 W 0x00000000 GPIO3A smitter control
Reset
Name Offset Size Description
Value
GRF_GPIO3B_SMT 0x00e4 W 0x00000000 GPIO3B smitter control
GRF_GPIO3C_SMT 0x00e8 W 0x00000000 GPIO3C smitter control
GRF_GPIO3D_SMT 0x00ec W 0x00000000 GPIO3D smitter control
GRF_GPIO1A_E 0x00f0 W 0x0000aaaa GPIO1A driver strengh control
GRF_GPIO1B_E 0x00f4 W 0x0000aaaa GPIO1B driver strengh control
GRF_GPIO1C_E 0x00f8 W 0x0000aa55 GPIO1C driver strengh control
GRF_GPIO1D_E 0x00fc W 0x0000aaaa GPIO1D driver strengh control
GRF_GPIO2A_E 0x0100 W 0x00005555 GPIO2A driver strengh control
GRF_GPIO2B_E 0x0104 W 0x00000000 GPIO2B driver strengh control
GRF_GPIO2C_E 0x0108 W 0x00001554 GPIO2C driver strengh control
GRF_GPIO3A_E 0x0110 W 0x00005555 GPIO3A driver strengh control
GRF_GPIO3B_E 0x0114 W 0x00005555 GPIO3B driver strengh control
GRF_GPIO3C_E 0x0118 W 0x00005555 GPIO3C driver strengh control
GRF_GPIO3D_E 0x011c W 0x00000055 GPIO3D driver strengh control
GRF_IO_VSEL 0x0180 W 0x00000000 IO Voltage Seletion register
GRF_IOFUNC_CON0 0x0184 W 0x00000000 io function control register0
GRF_SOC_CON0 0x0400 W 0x00000000 SOC control register0
GRF_SOC_CON1 0x0404 W 0x00000000 SOC control register1
GRF_SOC_CON2 0x0408 W 0x00001000 SOC control register2
GRF_SOC_CON3 0x040c W 0x00000000 SOC control register3
GRF_SOC_CON4 0x0410 W 0x00000000 SOC control register4
GRF_SOC_CON5 0x0414 W 0x00000000 SOC control register5
GRF_PD_VI_CON 0x0430 W 0x00000000 PD_VI control register
GRF_PD_VO_CON0 0x0434 W 0x00000000 PD_VO control register0
GRF_PD_VO_CON1 0x0438 W 0x00000000 PD_VO control register1
GRF_SOC_STATUS0 0x0480 W 0x00000000 SOC status register0
GRF_CPU_CON0 0x0500 W 0x00000060 CPU control register0
GRF_CPU_CON1 0x0504 W 0x0000008c CPU control register1
GRF_CPU_CON2 0x0508 W 0x00000021 CPU control register2
GRF_CPU_STATUS0 0x0520 W 0x00000000 CPU status register0
GRF_CPU_STATUS1 0x0524 W 0x00000000 CPU status register1
GRF_SOC_NOC_CON0 0x0530 W 0x00000000 NOC control register0
GRF_SOC_NOC_CON1 0x0534 W 0x00000000 NOC control register1
GRF_DDR_BANKHASH_CT
0x0550 W 0x00000000 DDR BANK HASH control register0
RL
The MSB mask for the first bank
GRF_DDR_BANK_MASK0 0x0554 W 0x00000000
bit
The MSB mask for the second
GRF_DDR_BANK_MASK1 0x0558 W 0x00000000
bank bit
The MSB mask for the third bank
GRF_DDR_BANK_MASK2 0x055c W 0x00000000
bit
GRF_HOST0_CON0 0x0700 W 0x00000820 USB host control register0
GRF_HOST0_CON1 0x0704 W 0x000004bc USB host control register1
Reset
Name Offset Size Description
Value
GRF_OTG_CON3 0x0880 W 0x00000000 OTG control register
GRF_HOST0_STATUS4 0x0890 W 0x00000000 USB host status register
GRF_MAC_CON1 0x0904 W 0x00000000 MAC control register1
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
GRF_GPIO1A_IOMUX_H
Address: Operational Base + offset (0x0004)
GRF_GPIO1B_IOMUX_L
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1b3_sel
4'h0: gpio
15:12 RW 0x0
4'h1: flash_ale
4'h2: emmc_rstn
gpio1b2_sel
4'h0: gpio
11:8 RW 0x0
4'h1: flash_dqs
4'h2: emmc_cmd
GRF_GPIO1B_IOMUX_H
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1b7_sel
4'h0: gpio
15:12 RW 0x0 4'h1: flash_rdn
4'h2: uart3_rxm1
4'h3: spi0_clk
gpio1b6_sel
4'h0: gpio
11:8 RW 0x0 4'h1: flash_cs1
4'h2: uart3_txm1
4'h3: spi0_csn
gpio1b5_sel
4'h0: gpio
4'h1: flash_wrn
7:4 RW 0x0
4'h2: uart3_rtsm1
4'h3: spi0_miso
4'h4: i2c3_scl
gpio1b4_sel
4'h0: gpio
4'h1: flash_cle
3:0 RW 0x0
4'h2: uart3_ctsm1
4'h3: spi0_mosi
4'h4: i2c3_sda
GRF_GPIO1C_IOMUX_L
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1c3_sel
15:12 RW 0x0 4'h0: gpio
4'h1: uart1_rts
gpio1c2_sel
11:8 RW 0x0 4'h0: gpio
4'h1: uart1_cts
gpio1c1_sel
7:4 RW 0x0 4'h0: gpio
4'h1: uart1_tx
gpio1c0_sel
3:0 RW 0x0 4'h0: gpio
4'h1: uart1_rx
GRF_GPIO1C_IOMUX_H
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1c7_sel
15:12 RW 0x0 4'h0: gpio
4'h1: sdio_d1
gpio1c6_sel
11:8 RW 0x0 4'h0: gpio
4'h1: sdio_d0
gpio1c5_sel
7:4 RW 0x0 4'h0: gpio
4'h1: sdio_clk
GRF_GPIO1D_IOMUX_L
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1d3_sel
4'h0: gpio
15:12 RW 0x2
4'h1: sdmmc_d1
4'h2: uart2dbg_rxm0
gpio1d2_sel
4'h0: gpio
11:8 RW 0x2
4'h1: sdmmc_d0
4'h2: uart2dbg_txm0
gpio1d1_sel
7:4 RW 0x0 4'h0: gpio
4'h1: sdio_d3
gpio1d0_sel
3:0 RW 0x0 4'h0: gpio
4'h1: sdio_d2
GRF_GPIO1D_IOMUX_H
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO2A_IOMUX_L
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2a3_sel
4'h0: gpio
15:12 RW 0x0
4'h1: cif_d5m0
4'h2: rmii_rxd0
gpio2a2_sel
4'h0: gpio
11:8 RW 0x0
4'h1: cif_d4m0
4'h2: rmii_txd0
gpio2a1_sel
4'h0: gpio
7:4 RW 0x0
4'h1: cif_d3m0
4'h2: rmii_txd1
GRF_GPIO2A_IOMUX_H
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2a7_sel
4'h0: gpio
15:12 RW 0x0
4'h1: cif_d9m0
4'h2: rmii_mdio
gpio2a6_sel
4'h0: gpio
11:8 RW 0x0
4'h1: cif_d8m0
4'h2: rmii_rxdv
gpio2a5_sel
4'h0: gpio
7:4 RW 0x0
4'h1: cif_d7m0
4'h2: rmii_rxer
gpio2a4_sel
4'h0: gpio
3:0 RW 0x0
4'h1: cif_d6m0
4'h2: rmii_rxd1
GRF_GPIO2B_IOMUX_L
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO2B_IOMUX_H
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2b7_sel
4'h0: gpio
15:12 RW 0x0
4'h1: cif_d10m0
4'h2: i2c2_scl
gpio2b6_sel
4'h0: gpio
11:8 RW 0x0
4'h1: cif_d1m0
4'h2: uart2_rxm1
gpio2b5_sel
7:4 RW 0x0 4'h0: gpio
4'h1: pwm2
gpio2b4_sel
4'h0: gpio
3:0 RW 0x0
4'h1: cif_d0m0
4'h2: uart2_txm1
GRF_GPIO2C_IOMUX_L
GRF_GPIO2C_IOMUX_H
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2c7_sel
15:12 RW 0x0
4'h0: gpio
gpio2c6_sel
11:8 RW 0x0 4'h0: gpio
4'h1: pdm_clk0m1
gpio2c5_sel
4'h0: gpio
7:4 RW 0x0
4'h1: i2s1_2ch_sdi
4'h2: pdm_sdi0m1
GRF_GPIO3A_IOMUX_L
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3a3_sel
4'h0: gpio
4'h1: lcdc_denm0
15:12 RW 0x0
4'h2: i2s2_2ch_lrck
4'h3: cif_d2m1
4'h4: uart5_cts
gpio3a2_sel
4'h0: gpio
4'h1: lcdc_vsyncm0
11:8 RW 0x0
4'h2: i2s2_2ch_sclk
4'h3: cif_d1m1
4'h4: uart5_tx
gpio3a1_sel
4'h0: gpio
4'h1: lcdc_hsyncm0
7:4 RW 0x0
4'h2: i2s2_2ch_mclk
4'h3: cif_d0m1
4'h4: uart5_rx
gpio3a0_sel
3:0 RW 0x0 4'h0: gpio
4'h1: lcdc_clk
GRF_GPIO3A_IOMUX_H
Address: Operational Base + offset (0x0044)
GRF_GPIO3B_IOMUX_L
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3b3_sel
4'h0: gpio
15:12 RW 0x0
4'h1: lcdc_d7
4'h2: i2s0_8ch_sdi1
gpio3b2_sel
4'h0: gpio
11:8 RW 0x0
4'h1: lcdc_d6
4'h2: spi1_cs1
GRF_GPIO3B_IOMUX_H
Address: Operational Base + offset (0x004c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3b7_sel
4'h0: gpio
4'h1: lcdc_d11m0
15:12 RW 0x0
4'h2: i2s0_8ch_sdo2
4'h3: cif_d9m1
4'h4: spi1_clk
gpio3b6_sel
4'h0: gpio
4'h1: lcdc_d10m0
11:8 RW 0x0
4'h2: i2s0_8ch_sdo3
4'h3: cif_d8m1
4'h4: spi1_miso
gpio3b5_sel
4'h0: gpio
7:4 RW 0x0
4'h1: lcdc_d9m0
4'h2: i2s0_8ch_lrckrx
gpio3b4_sel
4'h0: gpio
4'h1: lcdc_d8m0
3:0 RW 0x0
4'h2: i2s0_8ch_sclkrx
4'h3: cif_d7m1
4'h4: spi1_mosi
GRF_GPIO3C_IOMUX_L
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3c3_sel
4'h0: gpio
15:12 RW 0x0 4'h1: lcdc_d15
4'h2: i2s0_8ch_sclktx
4'h3: pwm_5
gpio3c2_sel
4'h0: gpio
11:8 RW 0x0 4'h1: lcdc_d14
4'h2: i2s0_8ch_lrcktx
4'h3: pwm_4
gpio3c1_sel
4'h0: gpio
7:4 RW 0x0
4'h1: lcdc_d13
4'h2: i2s0_8ch_mclk
gpio3c0_sel
4'h0: gpio
3:0 RW 0x0
4'h1: lcdc_d12
4'h2: i2s0_8ch_sdo1
GRF_GPIO3C_IOMUX_H
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO3D_IOMUX_L
Address: Operational Base + offset (0x0058)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3d3_sel
4'h0: gpio
4'h1: lcdc_d23
15:12 RW 0x0
4'h2: pdm_sdi0m0
4'h3: cif_clkinm1
4'h4: isp_fl_trig
gpio3d2_sel
4'h0: gpio
4'h1: lcdc_d22
11:8 RW 0x0
4'h2: pdm_sdi3
4'h3: cif_hrefm1
4'h4: isp_flash_trig
GRF_GPIO3D_IOMUX_H
Address: Operational Base + offset (0x005c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3d7_sel
15:12 RW 0x0
4'h0: gpio
gpio3d6_sel
11:8 RW 0x0
4'h0: gpio
gpio3d5_sel
7:4 RW 0x0
4'h0: gpio
gpio3d4_sel
3:0 RW 0x0 4'h0: gpio
4'h0: osc_gpi
GRF_GPIO1A_P
Address: Operational Base + offset (0x0060)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO1B_P
Address: Operational Base + offset (0x0064)
GRF_GPIO1C_P
Address: Operational Base + offset (0x0068)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1c7_p
2'b00: Z(Normal operation);
15:14 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1c6_p
2'b00: Z(Normal operation);
13:12 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1c5_p
2'b00: Z(Normal operation);
11:10 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1c4_p
2'b00: Z(Normal operation);
9:8 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1c3_p
2'b00: Z(Normal operation);
7:6 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO1D_P
Address: Operational Base + offset (0x006c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1d7_p
2'b00: Z(Normal operation);
15:14 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1d6_p
2'b00: Z(Normal operation);
13:12 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio1d5_p
2'b00: Z(Normal operation);
11:10 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO2A_P
Address: Operational Base + offset (0x0070)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2a7_p
2'b00: Z(Normal operation);
15:14 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO2B_P
Address: Operational Base + offset (0x0074)
GRF_GPIO2C_P
Address: Operational Base + offset (0x0078)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2c7_p
2'b00: Z(Normal operation);
15:14 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio2c6_p
2'b00: Z(Normal operation);
13:12 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio2c5_p
2'b00: Z(Normal operation);
11:10 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio2c4_p
2'b00: Z(Normal operation);
9:8 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio2c3_p
2'b00: Z(Normal operation);
7:6 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO3A_P
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3a7_p
2'b00: Z(Normal operation);
15:14 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3a6_p
2'b00: Z(Normal operation);
13:12 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3a5_p
2'b00: Z(Normal operation);
11:10 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO3B_P
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3b7_p
2'b00: Z(Normal operation);
15:14 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO3C_P
Address: Operational Base + offset (0x0088)
GRF_GPIO3D_P
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3d7_p
2'b00: Z(Normal operation);
15:14 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3d6_p
2'b00: Z(Normal operation);
13:12 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3d5_p
2'b00: Z(Normal operation);
11:10 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3d4_p
2'b00: Z(Normal operation);
9:8 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio3d3_p
2'b00: Z(Normal operation);
7:6 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
GRF_GPIO1A_SR
Address: Operational Base + offset (0x0090)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio1a7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1a6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1a5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1a4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1a3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO1B_SR
Address: Operational Base + offset (0x0094)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio1b7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1b6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1b5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1b4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1b3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1b2_sr
2 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO1C_SR
Address: Operational Base + offset (0x0098)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio1c7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c2_sr
2 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c1_sr
1 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio1c0_sr
0 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO1D_SR
GRF_GPIO2A_SR
Address: Operational Base + offset (0x00a0)
GRF_GPIO2B_SR
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO2C_SR
Address: Operational Base + offset (0x00a8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio2c7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio2c6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO3A_SR
Address: Operational Base + offset (0x00b0)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3a7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3a6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3a5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3a4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO3B_SR
Address: Operational Base + offset (0x00b4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3b7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3b6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3b5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3b4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3b3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3b2_sr
2 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO3C_SR
Address: Operational Base + offset (0x00b8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3c7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c2_sr
2 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c1_sr
1 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3c0_sr
0 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO3D_SR
Address: Operational Base + offset (0x00bc)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3d7_sr
7 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d6_sr
6 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d5_sr
5 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d4_sr
4 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d3_sr
3 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d2_sr
2 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d1_sr
1 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio3d0_sr
0 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
GRF_GPIO1A_SMT
Address: Operational Base + offset (0x00c0)
GRF_GPIO1B_SMT
Address: Operational Base + offset (0x00c4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO1C_SMT
Address: Operational Base + offset (0x00c8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio1c7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio1c6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO1D_SMT
Address: Operational Base + offset (0x00cc)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio1d7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio1d6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio1d5_smt
5 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio1d4_smt
4 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO2A_SMT
Address: Operational Base + offset (0x00d0)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio2a7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2a6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2a5_smt
5 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2a4_smt
4 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2a3_smt
3 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2a2_smt
2 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO2B_SMT
Address: Operational Base + offset (0x00d4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio2b7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b5_smt
5 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b4_smt
4 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b3_smt
3 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b2_smt
2 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b1_smt
1 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2b0_smt
0 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO2C_SMT
Address: Operational Base + offset (0x00d8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio2c7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c5_smt
5 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c4_smt
4 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c3_smt
3 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c2_smt
2 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c1_smt
1 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio2c0_smt
0 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO3A_SMT
Address: Operational Base + offset (0x00e0)
GRF_GPIO3B_SMT
Address: Operational Base + offset (0x00e4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO3C_SMT
Address: Operational Base + offset (0x00e8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3c7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio3c6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO3D_SMT
Address: Operational Base + offset (0x00ec)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
gpio3d7_smt
7 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio3d6_smt
6 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio3d5_smt
5 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio3d4_smt
4 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
GRF_GPIO1A_E
Address: Operational Base + offset (0x00f0)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1a7_e
2'b00: 2mA
15:14 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio1a6_e
2'b00: 2mA
13:12 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio1a5_e
2'b00: 2mA
11:10 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio1a4_e
2'b00: 2mA
9:8 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio1a0_e
2'b00: 2mA
1:0 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO1B_E
Address: Operational Base + offset (0x00f4)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio1b7_e
2'b00: 2mA
15:14 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio1b6_e
2'b00: 2mA
13:12 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO1C_E
Address: Operational Base + offset (0x00f8)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_GPIO1D_E
Address: Operational Base + offset (0x00fc)
gpio1d0_e
2'b00: 2mA
1:0 RW 0x2 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO2A_E
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2a7_e
2'b00: 2mA
15:14 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2a6_e
2'b00: 2mA
13:12 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2a5_e
2'b00: 2mA
11:10 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2a4_e
2'b00: 2mA
9:8 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2a3_e
2'b00: 2mA
7:6 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO2B_E
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2b7_e
2'b00: 2mA
15:14 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2b6_e
2'b00: 2mA
13:12 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio2b5_e
2'b00: 2mA
11:10 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO2C_E
Address: Operational Base + offset (0x0108)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio2c7_e
2'b00: 2mA
15:14 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO3A_E
Address: Operational Base + offset (0x0110)
GRF_GPIO3B_E
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3b7_e
2'b00: 2mA
15:14 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3b6_e
2'b00: 2mA
13:12 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3b5_e
2'b00: 2mA
11:10 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3b4_e
2'b00: 2mA
9:8 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3b3_e
2'b00: 2mA
7:6 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO3C_E
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3c7_e
2'b00: 2mA
15:14 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3c6_e
2'b00: 2mA
13:12 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio3c5_e
2'b00: 2mA
11:10 RW 0x1 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_GPIO3D_E
Address: Operational Base + offset (0x011c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio3d7_e
2'b00: 2mA
15:14 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
GRF_IO_VSEL
Address: Operational Base + offset (0x0180)
GRF_IOFUNC_CON0
Address: Operational Base + offset (0x0184)
GRF_SOC_CON0
Address: Operational Base + offset (0x0400)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_SOC_CON1
Address: Operational Base + offset (0x0404)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
grf_tsadc_testbit_l
15:0 RW 0x0000
tsadc_testbit_l bit register
GRF_SOC_CON2
Address: Operational Base + offset (0x0408)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:13 RO 0x0 reserved
grf_con_wdtns_glb_reset_en
WDT NS global reset enable.
12 RW 0x1
1'b0: WDTNS cann't trigger reset.
1'b1: WDTNS can trigger reset
grf_con_uart5_rts_inv
11 RW 0x0
uart5_rts_inv_selection
grf_con_uart5_cts_inv
10 RW 0x0
uart5_cts_inv_selection
grf_con_uart4_rts_inv
9 RW 0x0
uart4_rts_inv_selection
grf_con_uart4_cts_inv
8 RW 0x0
uart4_cts_inv_selection
grf_con_uart3_rts_inv
7 RW 0x0
uart3_rts_inv_selection
GRF_SOC_CON3
Address: Operational Base + offset (0x040c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
grf_con_id_cif_aw
15 RW 0x0 1'b1, axi access to ddr stored into buffer.
1'b0, axi access to ddr bypass ddrbuffer module
grf_con_id_cif_ar
14 RW 0x0 1'b1, axi access to ddr stored into buffer.
1'b0, axi access to ddr bypass ddrbuffer module
grf_con_id_gpu_aw1
13 RW 0x0 1'b1, axi access to ddr stored into buffer.
1'b0, axi access to ddr bypass ddrbuffer module
grf_con_id_gpu_ar1
12 RW 0x0 1'b1, axi access to ddr stored into buffer.
1'b0, axi access to ddr bypass ddrbuffer module
grf_con_id_gpu_aw0
11 RW 0x0 1'b1, axi access to ddr stored into buffer.
1'b0, axi access to ddr bypass ddrbuffer module
GRF_SOC_CON4
Address: Operational Base + offset (0x0410)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
GRF_SOC_CON5
Address: Operational Base + offset (0x0414)
Bit Attr Reset Value Description
grf_con_sdcard_dectn_dly
31:0 RW 0x00000000
Delay counter setting after sdcard plug out. Count by 24M clock
GRF_PD_VI_CON
Address: Operational Base + offset (0x0430)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15 RO 0x0 reserved
grf_con_isp_cif_if_datawidth
2'b00: 8bit;
14:13 RW 0x0
2'b01: 10bit;
others: 12bit;
grf_con_cif_clk_inv_sel
12 RW 0x0 1'b1: clock inverted;
1'b0: clock is not inverted
11:10 RO 0x0 reserved
grf_con_csiphy_clkinv_selection
9 RW 0x0 1'b1: enable csiphy clock lane;
1'b0: disable csiphy clock lane
grf_con_csiphy_clklane_en
8 RW 0x0 1'b1: enable csiphy lane0;
1'b0: disable csiphy_lane4
grf_con_csiphy_datalane_en_3
7 RW 0x0 1'b1: enable csiphy lane0;
1'b0: disable csiphy_lane3
GRF_PD_VO_CON0
Address: Operational Base + offset (0x0434)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
grf_con_vops_press
15:14 RW 0x0
control bit for NIU in PD_VO
grf_con_vopm_press
13:12 RW 0x0
control bit for NIU in PD_VO
grf_con_dcf_vop_standby_sel
2'b00: ((aclk_vopm_en | dsp_hold_vopm) & (aclk_vops_en |
11:10 RW 0x0 dsp_hold_vops))
2'b01: aclk_vopm_en | dsp_hold_vopm
Others: aclk_vops_en | dsp_hold_vops ;
GRF_PD_VO_CON1
Address: Operational Base + offset (0x0438)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15 RO 0x0 reserved
grf_con_lvdsformat_lvds_select
2'b00: VESA 24bit
14:13 RW 0x0 2'b01: JEIDA 24bit
2'b10: JEIDA 18bit
2'b11: VESA 18bit
GRF_SOC_STATUS0
Address: Operational Base + offset (0x0480)
Bit Attr Reset Value Description
31:21 RO 0x0 reserved
pmu_pwr_idle_ack
20 RO 0x0
Niu idle acknowledge status
pmu_pwr_idle
19 RO 0x0
Niu idle status
vopl_dma_finish
18 RO 0x0
vopl_dma_finish_status
GRF_CPU_CON0
Address: Operational Base + offset (0x0500)
GRF_CPU_CON1
Address: Operational Base + offset (0x0504)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
grf_force_jtag
7 RW 0x1
force jtag bit control
grf_con_cpu_ema_detect_en
1'b1: When
grf_ema_l2d/grf_emaw_l2d/grf_ema_ra/grf_emaw_ra/grf_emas_
6 RW 0x0
ra changed, hardware automaticly stops cpu and make it valiable
to cpu;
1'b0: Disable
grf_con_evento_clear
5 RW 0x0
pd_core evento_ack control bit
GRF_CPU_CON2
Address: Operational Base + offset (0x0508)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:11 RO 0x0 reserved
grf_emas_ra
10 WO 0x0
cpu sram emas
grf_emaw_ra
9:8 RW 0x0
cpu sram emaw
grf_ema_ra
7:5 RW 0x1
cpu sram ema
grf_emaw_l2d
4:3 RW 0x0
cpu l2 data sram emaw
grf_ema_l2d
2:0 RW 0x1
cpu l2 data sram ema
GRF_CPU_STATUS0
Address: Operational Base + offset (0x0520)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
grf_st_cpu_boost_fsm
21:15 RO 0x00
cpu boost module status
grf_st_l2flushdone
14 RO 0x0
l2flushdone status
grf_st_clrexmonack
13 RO 0x0
clrexmonack status
GRF_CPU_STATUS1
Address: Operational Base + offset (0x0524)
Bit Attr Reset Value Description
31:13 RO 0x0 reserved
grf_st_standbywfil2
12 RO 0x0
standby wfi l2 status
11:8 RO 0x0 reserved
grf_st_standbywfi
7:4 RO 0x0
standby wfi status
grf_st_standbywfe
3:0 RO 0x0
standby wfe status
GRF_SOC_NOC_CON0
Address: Operational Base + offset (0x0530)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15 RO 0x0 reserved
dtp_vpu_req_msch_pwrDiscTarg_Switch1PwrStall
14 RW 0x0
dtp_vpu_req_msch_pwrDiscTarg_Switch1PwrStall
dtp_vo_req_msch_pwrDiscTarg_Switch1PwrStall
13 RW 0x0
dtp_vo_req_msch_pwrDiscTarg_Switch1PwrStall
dtp_vo_fwd_vi_pwrDiscTarg_Switch47PwrStall
12 RW 0x0
dtp_vo_fwd_vi_pwrDiscTarg_Switch47PwrStall
dtp_vi_req_msch_pwrDiscTarg_Switch1PwrStall
11 RW 0x0
dtp_vi_req_msch_pwrDiscTarg_Switch1PwrStall
dtp_peri_req_msch_pwrDiscTarg_Switch8PwrStall
10 RW 0x0
dtp_peri_req_msch_pwrDiscTarg_Switch8PwrStall
GRF_SOC_NOC_CON1
Address: Operational Base + offset (0x0534)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
msch_split_size
This register will decide the splitting size of the interconnect for a
transaction from a master and must be set to a proper value
according to 'ddrConf' in memory scheduler reginster.
2'b00: Splitting size is 64 bytes. Must be set to this value when
'ddrConf' is 0~6 or 12~13.
15:14 RW 0x0
2'b01: Splitting size is 32 bytes. Must be set to this value when
'ddrConf' is 9~10.
2'b10: Splitting size is 16 bytes. Must be set to this value when
'ddrConf' is 7~8 or 11.
2'b11: Reserved. Do not set to this value, otherwise, the system
will crash
GRF_DDR_BANKHASH_CTRL
Address: Operational Base + offset (0x0550)
Bit Attr Reset Value Description
31:7 RO 0x0 reserved
bank_offset
set the offset of the first bank bit. The real first bank offset bit is
6:4 RW 0x0 10+bank_offset. For example, if you are using the follwoing
ddrConf, set this register to 3:
'RRRRRRRRRRRRRRRRRBBBCCCCCCCCC----'
manicure_mask
bank manicure mask bits
3:1 RW 0x0 3'b000: when using 4 banks ddr, set to this value
3'b111: when using 8 banks ddr, set to this value
others: reserved
GRF_DDR_BANK_MASK0
Address: Operational Base + offset (0x0554)
Bit Attr Reset Value Description
ddr_bank_mask0
The MSB mask for the first bank bit
31:0 RW 0x00000000 The bits below R3(the third bit of row bits) must be set to 0 when
using 8 banks device. The bits below R0 must be set to 0 when
using 4 banks device.
GRF_DDR_BANK_MASK1
Address: Operational Base + offset (0x0558)
Bit Attr Reset Value Description
ddr_bank_mask1
The MSB mask for the second bank bit.
31:0 RW 0x00000000 The bits below R3(the third bit of row bits) must be set to 0 when
using 8 banks device. The bits below R0 must be set to 0 when
using 4 banks device.
GRF_DDR_BANK_MASK2
Address: Operational Base + offset (0x055c)
Bit Attr Reset Value Description
ddr_bank_mask2
The MSB mask for the third bank bit.
31:0 RW 0x00000000 The bits below R3(the third bit of row bits) must be set to 0 when
using 8 banks device. The bits below R0 must be set to 0 when
using 4 banks device.
GRF_HOST0_CON0
Address: Operational Base + offset (0x0700)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:12 RO 0x0 reserved
GRF_HOST0_CON1
Address: Operational Base + offset (0x0704)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:14 RO 0x0 reserved
grf_con_host0_arb_pause
13 RW 0x0
host0 ehci/ohci arbiter pause control
grf_con_host0_ohci_susp_lgcy
12 RW 0x0
USB HOST0 ohci_susp_lgcy bit control
grf_con_host0_ohci_cntsel
11 RW 0x0
USB HOST0 ohci_cntsel bit control
grf_con_host0_ohci_clkcktrst
10 RW 0x1
USB HOST0 ohci_clkcktrst bit control
grf_con_host0_app_prt_ovrcur
9 RW 0x0
USB HOST0 app_prt_ovrcur bit control
grf_con_host0_autoppd_on_overcur_en
8 RW 0x0
USB HOST0 autoppd_on_overcur_en bit control
grf_con_host0_word_if
7 RW 0x1
USB HOST0 word_if bit control
grf_con_host0_sim_mode
6 RW 0x0
USB HOST0 sim_mode bit control
grf_con_host0_incrx_en
5 RW 0x1
USB HOST0 incrx_en bit control
grf_con_host0_incr8_en
4 RW 0x1
USB HOST0 incr8_en bit control
grf_con_host0_incr4_en
3 RW 0x1
USB HOST0 incr4_en bit control
grf_con_host0_incr16_en
2 RW 0x1
USB HOST0 incr16_en bit control
grf_con_host0_hubsetup_min
1 RW 0x0
USB HOST0 bubsetup_min bit control
GRF_OTG_CON3
Address: Operational Base + offset (0x0880)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:3 RO 0x0 reserved
otg_dbnce_fltr_bypass
2 RW 0x0
OTG dbnce_fltr_bypass bit control
otg_scaledown_mode
1:0 RW 0x0
OTG scaledown_mode bit control
GRF_HOST0_STATUS4
Address: Operational Base + offset (0x0890)
Bit Attr Reset Value Description
31 RO 0x0 reserved
host0_ehci_power_state_ack
30 RO 0x0
host0_ehci_power_state_ack bit status
host0_ehci_pme_status
29 RO 0x0
host0_ehci_pme_status bit status
grf_stat_host0_ehci_bufacc
28 RO 0x0
host0_ehci_bufacc bit status
grf_stat_host0_ehci_xfer_prdc
27 RO 0x0
host0_ehci_xfer_prdc bit status
grf_stat_host0_ohci_ccs
26 RO 0x0
host0_ohci_ccs bit status
grf_stat_host0_ohci_rwe
25 RO 0x0
host0_ohci_rwe bit status
grf_stat_host0_ohci_drwe
24 RO 0x0
host0_ohci_drwe bit status
grf_stat_host0_ohci_globalsuspend
23 RO 0x0
host0_ohci_globalsuspend bit status
grf_stat_host0_ohci_bufacc
22 RO 0x0
host0_ohci_bufacc bit status
grf_stat_host0_ohci_rmtwkp
21 RO 0x0
host0_ohci_rmtwkp bit status
GRF_MAC_CON1
Address: Operational Base + offset (0x0904)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:7 RO 0x0 reserved
gmac2io_phy_intf_sel
PHY interface select
6:4 RW 0x0 3'b001:RGMII
3'b100:RMII
All others:Reserved
gmac2io_flowctrl
GMAC transmit flow control
When set high, instructs the GMAC to transmit PAUSE Control
3 RW 0x0 frame in
Full-duplex mode. In Half-duplex mode, the GMAC enables the
Back-pressure
function until this signal is made low again
gmac2io_mac_speed
MAC speed
2 RW 0x0
1'b1:100-Mbps
1'b0:10-Mbps
1:0 RO 0x0 reserved
Reset
Name Offset Size Description
Value
PMUGRF_GPIO0A_IOMUX 0x0000 W 0x00001040 GPIO0A iomux control bits
PMUGRF_GPIO0B_IOMUX 0x0004 W 0x00001000 GPIO0B iomux control bits
PMUGRF_GPIO0C_IOMUX 0x0008 W 0x00000000 GPIO0C iomux control bits
PMUGRF_GPIO0A_P 0x0010 W 0x0000466a GPIO0A PU/PD control
PMUGRF_GPIO0B_P 0x0014 W 0x000095a5 GPIO0B PU/PD control
PMUGRF_GPIO0C_P 0x0018 W 0x000000aa GPIO0C PU/PD control
PMUGRF_GPIO0A_E 0x0020 W 0x00000001 GPIO0A driver strengh control
PMUGRF_GPIO0B_E 0x0024 W 0x00000000 GPIO0B driver strengh control
PMUGRF_GPIO0C_E 0x0028 W 0x00000000 GPIO0C driver strengh control
PMUGRF_GPIO0L_SR 0x0030 W 0x00000000 GPIO0 slow rate control low bits
PMUGRF_GPIO0H_SR 0x0034 W 0x00000000 GPIO0 slow rate control high bits
PMUGRF_GPIO0L_SMT 0x0038 W 0x00000000 GPIO0 smitter control low bits
PMUGRF_GPIO0H_SMT 0x003c W 0x00000000 GPIO0 smitter control high bits
PMUGRF_SOC_CON0 0x0100 W 0x00000000 PMU SOC control register0
PMUGRF_SOC_CON1 0x0104 W 0x00000000 PMU SOC control register1
PMUGRF_SOC_CON2 0x0108 W 0x00000800 PMU SOC control register2
PMUGRF_FAILSAFE_CON 0x010c W 0x00000048 FailSafe module configuation
PMUGRF_PVTM_CON0 0x0180 W 0x00000003 PVTM control register0
PMUGRF_PVTM_CON1 0x0184 W 0x00000100 PVTM control register1
PMUGRF_PVTM_STATUS0 0x0190 W 0x00000000 PVTM status register0
PMUGRF_PVTM_STATUS1 0x0194 W 0x00000000 PVTM status register1
PMUGRF_OS_REG0 0x0200 W 0x00000000 pmu grf os register0
PMUGRF_OS_REG1 0x0204 W 0x00000000 pmu grf os register1
PMUGRF_OS_REG2 0x0208 W 0x00000000 pmu grf os register2
PMUGRF_OS_REG3 0x020c W 0x00000000 pmu grf os register3
PMUGRF_OS_REG4 0x0210 W 0x00000000 pmu grf os register4
PMUGRF_OS_REG5 0x0214 W 0x00000000 pmu grf os register5
PMUGRF_OS_REG6 0x0218 W 0x00000000 pmu grf os register6
PMUGRF_OS_REG7 0x021c W 0x00000000 pmu grf os register7
PMUGRF_OS_REG8 0x0220 W 0x00000000 pmu grf os register8
PMUGRF_OS_REG9 0x0224 W 0x00000000 pmu grf os register9
PMUGRF_OS_REG10 0x0228 W 0x00000000 pmu grf os register10
PMUGRF_OS_REG11 0x022c W 0x00000000 pmu grf os register11
PMUGRF_RESET_FUNCTIO
0x0230 W 0x00000000 system reset status register
N_STATUS
PMUGRF_SIG_DETECT_C
0x0380 W 0x00000000 sdmmc detect control reg
ON
PMUGRF_SIG_DETECT_ST
0x0390 W 0x00000000 sdmmc detect status reg
ATUS
PMUGRF_SIG_DETECT_ST
0x03a0 W 0x00000000 sdmmc irq clear reg
ATUS_CLEAR
PMUGRF_SDMMC_DET_C
0x03b0 W 0x00030100 sdmmc detect counter reg
OUNTER
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
PMUGRF_GPIO0B_IOMUX
Address: Operational Base + offset (0x0004)
PMUGRF_GPIO0C_IOMUX
Address: Operational Base + offset (0x0008)
PMUGRF_GPIO0A_P
Address: Operational Base + offset (0x0010)
PMUGRF_GPIO0B_P
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0b7_p
2'b00: Z(Normal operation);
15:14 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0b6_p
2'b00: Z(Normal operation);
13:12 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0b5_p
2'b00: Z(Normal operation);
11:10 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0b4_p
2'b00: Z(Normal operation);
9:8 RW 0x1 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0b3_p
2'b00: Z(Normal operation);
7:6 RW 0x2 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
PMUGRF_GPIO0C_P
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0c7_p
2'b00: Z(Normal operation);
15:14 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0c6_p
2'b00: Z(Normal operation);
13:12 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
gpio0c5_p
2'b00: Z(Normal operation);
11:10 RW 0x0 2'b01: weak 1(pull-up);
2'b10: weak 0(pull_down);
2'b11: Repeater(Bus keeper)
PMUGRF_GPIO0A_E
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0a7_e
2'b00: 2mA
15:14 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
PMUGRF_GPIO0B_E
Address: Operational Base + offset (0x0024)
PMUGRF_GPIO0C_E
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0c7_e
2'b00: 2mA
15:14 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio0c6_e
2'b00: 2mA
13:12 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio0c5_e
2'b00: 2mA
11:10 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio0c4_e
2'b00: 2mA
9:8 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
gpio0c3_e
2'b00: 2mA
7:6 RW 0x0 2'b01: 4mA
2'b10: 8mA
2'b11: 12mA
PMUGRF_GPIO0L_SR
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0b7_sr
15 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio0b6_sr
14 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio0b5_sr
13 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio0b4_sr
12 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio0b3_sr
11 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
gpio0b2_sr
10 RW 0x0 1'b0: slow(half frequency)
1'b1: fast
PMUGRF_GPIO0H_SR
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:8 RO 0x0 reserved
PMUGRF_GPIO0L_SMT
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpio0b7_smt
15 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio0b6_smt
14 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
gpio0b5_smt
13 RW 0x0 0: No hysteresis
1: Schmitt trigger enabled
PMUGRF_GPIO0H_SMT
Address: Operational Base + offset (0x003c)
PMUGRF_SOC_CON0
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
write_enable
When bit 16=1, bit0 can be written by software.
When bit 16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
PMUGRF_SOC_CON1
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:13 RO 0x0 reserved
hold_the_ddrfailsafe
12 RW 0x0
hold ddrfailsafe reset
resetn_hold
11:0 RW 0x000
Please refer to cru_softrst6_con. Each bit has a hold
PMUGRF_SOC_CON2
Address: Operational Base + offset (0x0108)
PMUGRF_FAILSAFE_CON
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
31:9 RO 0x0 reserved
upctl_c_sysreq_cfg
1'b1: always enable requesting DDR controller to enter low power
8 RW 0x0 state, when ddr failsafe module is working.
1'b0: After ddr failsafe module enters selfrefresh status, then
request DDR controller to enter low power state
7 RO 0x0 reserved
ddr_io_ret_cfg
6 RW 0x1 1'b0: disable ddr io retention during system failure;
1'b1: enable ddr io retention during system failure
ddr_io_ret_de_req
5 RW 0x0
1'b1: request to enter retention, during system failure
ddrc_gating_en
4 RW 0x0
1'b1: enable ddr clock gating during system failure
sref_enter_en
3 RW 0x1
1'b1: enable ddr selfrefresh enter when system is failed
ddrio_ret_en
2 RW 0x0 1'b1: enable ddr io retension when system is failed
1'b0: remain ddr io status when system is failed
wdt_shut_reset_trigger_en
Enable failsafe wdt input
1 RW 0x0
1'b1: enable;
1'b0: disable;
tsadc_shut_reset_trigger_en
Enable failsafe tsadc input
0 RW 0x0
1'b1: enable;
1'b0: disable;
PMUGRF_PVTM_CON0
Address: Operational Base + offset (0x0180)
PMUGRF_PVTM_CON1
Address: Operational Base + offset (0x0184)
Bit Attr Reset Value Description
pvtm_pmu_cal_cnt
31:0 RW 0x00000000
pvtm_pmu_cal_cnt
PMUGRF_PVTM_STATUS0
Address: Operational Base + offset (0x0190)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
pvtm_pmu_freq_done
0 RW 0x0
pvtm_pmu_freq_done
PMUGRF_PVTM_STATUS1
Address: Operational Base + offset (0x0194)
Bit Attr Reset Value Description
pvtm_pmu_freq_cnt
31:0 RW 0x00000000
pvtm_pmu_freq_cnt
PMUGRF_OS_REG0
Address: Operational Base + offset (0x0200)
Bit Attr Reset Value Description
pmu_os_reg0
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG1
Address: Operational Base + offset (0x0204)
Bit Attr Reset Value Description
pmu_os_reg1
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG2
Address: Operational Base + offset (0x0208)
Bit Attr Reset Value Description
pmu_os_reg2
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG3
Address: Operational Base + offset (0x020c)
Bit Attr Reset Value Description
pmu_os_reg3
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG4
Address: Operational Base + offset (0x0210)
Bit Attr Reset Value Description
pmu_os_reg4
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG5
Address: Operational Base + offset (0x0214)
Bit Attr Reset Value Description
pmu_os_reg5
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG6
Address: Operational Base + offset (0x0218)
Bit Attr Reset Value Description
pmu_os_reg6
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG7
Address: Operational Base + offset (0x021c)
Bit Attr Reset Value Description
pmu_os_reg7
31:0 RW 0x00000000
reserved
PMUGRF_OS_REG8
Address: Operational Base + offset (0x0220)
PMUGRF_OS_REG9
Address: Operational Base + offset (0x0224)
Bit Attr Reset Value Description
pmu_os_reg9
31:0 RW 0x00000000
reserved. once this reg is wrotten, it can't be reset
PMUGRF_OS_REG10
Address: Operational Base + offset (0x0228)
Bit Attr Reset Value Description
pmu_os_reg10
31:0 RW 0x00000000
reserved. once this reg is wrotten, it can't be reset
PMUGRF_OS_REG11
Address: Operational Base + offset (0x022c)
Bit Attr Reset Value Description
pmu_os_reg11
31:0 RW 0x00000000
reserved. once this reg is wrotten, it can't be reset
PMUGRF_RESET_FUNCTION_STATUS
Address: Operational Base + offset (0x0230)
Bit Attr Reset Value Description
st_rstfunc_status
32'H12345678: WDT RESET
31:0 RO 0x00000000
32'H23456789: TSADC RESET
32'H3456789A: SOFTWARE RESET
PMUGRF_SIG_DETECT_CON
Address: Operational Base + offset (0x0380)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
sdmmc_detectn_neg_irq_msk
Enable sdmmc detectn negedge irq
1 RW 0x0
1'b1: enable
1'b0: disable
sdmmc_detectn_pos_irq_msk
Enable sdmmc detectn posedge irq
0 RW 0x0
1'b1: enable
1'b0: disable
PMUGRF_SIG_DETECT_STATUS
PMUGRF_SIG_DETECT_STATUS_CLEAR
Address: Operational Base + offset (0x03a0)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
sdmmc_detectn_neg_irq_clr
1 WO 0x0
1'b1: clear irq
sdmmc_detectn_pos_irq_clr
0 WO 0x0
1'b1: clear irq
PMUGRF_SDMMC_DET_COUNTER
Address: Operational Base + offset (0x03b0)
Bit Attr Reset Value Description
31:20 RO 0x0 reserved
sdmmc_detectn_count
19:0 RW 0x30100
sdmmc_detectn_count bit register
Reset
Name Offset Size Description
Value
COREGRF_CA35_PEFF_CO CA35 performance monitor
0x0010 W 0x00000000
N4 control register4
COREGRF_CA35_PEFF_CO CA35 performance monitor
0x0014 W 0x00000000
N5 control register5
COREGRF_CA35_PEFF_CO CA35 performance monitor
0x0018 W 0x00000000
N6 control register6
COREGRF_CA35_PEFF_CO CA35 performance monitor
0x001c W 0x00000000
N7 control register7
COREGRF_CA35_PEFF_CO CA35 performance monitor
0x0020 W 0x00000000
N8 control register8
COREGRF_A35_PERF_RD_ CA35 performance monitor status
0x0030 W 0x00000000
MAX_LATENCY_NUM register
COREGRF_A35_PERF_RD_ CA35 performance monitor status
0x0034 W 0x00000000
LATENCY_SAMP_NUM register
COREGRF_A35_PERF_RD_ CA35 performance monitor status
0x0038 W 0x00000000
LATENCY_ACC_NUM register
COREGRF_A35_PERF_RD_ CA35 performance monitor status
0x003c W 0x00000000
AXI_TOTAL_BYTE register
COREGRF_A35_PERF_WR CA35 performance monitor status
0x0040 W 0x00000000
_AXI_TOTAL_BYTE register
COREGRF_A35_PERF_WO CA35 performance monitor status
0x0044 W 0x00000000
RKING_CNT register
COREGRF_A35_PERF_INT CA35 performance monitor status
0x0048 W 0x00000000
_STATUS register
COREGRF_COREPVTM_CO
0x0080 W 0x00000000 CORE PVTM control register0
N0
COREGRF_COREPVTM_CO
0x0084 W 0x00000000 CORE PVTM control register1
N1
COREGRF_COREPVTM_ST
0x0088 W 0x00000000 CORE PVTM status register0
ATUS0
COREGRF_COREPVTM_ST
0x008c W 0x00000000 CORE PVTM status register1
ATUS1
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
COREGRF_CA35_PEFF_CON1
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:12 RO 0x0 reserved
ca35_sw_rd_latency_thr
11:0 RW 0x000
Axi read channel id for latency AXI_PERFormance test
COREGRF_CA35_PEFF_CON2
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
ca35_sw_axi_perf_int_clr
interrupt clear
15 RW 0x0
1'b1: clear
1'b0: no op
ca35_sw_axi_perf_int_e
interrupt enable
14 RW 0x0
1'b1: enable
1'b0: disable
13 RO 0x0 reserved
ca35_sw_aw_count_id
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
12:8 RW 0x00
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
7:6 RO 0x0 reserved
COREGRF_CA35_PEFF_CON3
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
ca35_sw_ar_mon_id
15 RW 0x0
mon_id_bmsk bit control
ca35_sw_ar_mon_id_bmsk
14 RW 0x0
mon_id_bmsk bit control
13 RO 0x0 reserved
ca35_sw_ar_mon_id_type
12:8 RW 0x00
mon_id_type bit control
7:6 RO 0x0 reserved
ca35_sw_ar_mon_id_msk
5:0 RW 0x00
mon_id_msk bit control
COREGRF_CA35_PEFF_CON4
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
ca35_sw_aw_mon_id
15 RW 0x0
mon_id_bmsk bit control
COREGRF_CA35_PEFF_CON5
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
ca35_sw_araddr_mon_st
31:0 RW 0x00000000
monitor read start address
COREGRF_CA35_PEFF_CON6
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
ca35_sw_araddr_mon_end
31:0 RW 0x00000000
monitor read end address
COREGRF_CA35_PEFF_CON7
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
ca35_sw_awaddr_mon_st
31:0 RW 0x00000000
monitor write start address
COREGRF_CA35_PEFF_CON8
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
ca35_sw_awaddr_mon_end
31:0 RW 0x00000000
monitor write end address
COREGRF_A35_PERF_RD_MAX_LATENCY_NUM
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:13 RO 0x0 reserved
rd_max_latency_r
12:0 RO 0x0000
axi read max latency output
COREGRF_A35_PERF_RD_LATENCY_SAMP_NUM
Address: Operational Base + offset (0x0034)
COREGRF_A35_PERF_RD_LATENCY_ACC_NUM
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
rd_latency_acc_cnt_r
31:0 RO 0x00000000
AXI read latency (>sw_rd_latency_thr) total number
COREGRF_A35_PERF_RD_AXI_TOTAL_BYTE
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
rd_axi_total_byte
31:0 RO 0x00000000
AXI active total read bytes/ddr align read bytes
COREGRF_A35_PERF_WR_AXI_TOTAL_BYTE
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
wr_axi_total_byte
31:0 RO 0x00000000
AXI active total write bytes/ddr align write bytes
COREGRF_A35_PERF_WORKING_CNT
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
working_cnt_r
31:0 RO 0x00000000
working counter
COREGRF_A35_PERF_INT_STATUS
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
31 RO 0x0 reserved
a35_aw_mon_axi_id_status
30:24 RO 0x00
The ID be monitored read from the specific addr area
23:17 RO 0x0 reserved
a35_aw_mon_axi_hit_flag
16 RO 0x0
Write from the specific addr area interrupt status
15 RO 0x0 reserved
a35_ar_mon_axi_id_status
14:8 RO 0x00
The ID be monitored read from the specific addr area
7:1 RO 0x0 reserved
a35_ar_mon_axi_hit_flag
0 RO 0x0
Read from the specific addr area interrupt status
COREGRF_COREPVTM_CON0
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:4 RO 0x0 reserved
corepvtm_osc_sel
3:2 RW 0x0
osc_ring selection
corepvtm_osc_en
1 RW 0x0
corepvtm_osc_en
corepvtm_start
0 RW 0x0
corepvtm_start
COREGRF_COREPVTM_CON1
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
corepvtm_cal_cnt
31:0 RW 0x00000000
corepvtm_cal_cnt
COREGRF_COREPVTM_STATUS0
Address: Operational Base + offset (0x0088)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
corepvtm_freq_done
0 RW 0x0
corepvtm_freq_done
COREGRF_COREPVTM_STATUS1
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
corepvtm_freq_cnt
31:0 RW 0x00000000
corepvtm_freq_cnt
GPUGRF_PEFF_CON1
Address: Operational Base + offset (0x0004)
GPUGRF_PEFF_CON2
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
write_enable
Bit0~15 write enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
31:16 WO 0x0000 When bit 17=1, bit 1 can be written by software.
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
gpu_sw_axi_perf_int_clr
gpu_sw_axi_perf_int_clr
15 RW 0x0 interrupt clear
1'b1: clear
1'b0: no op
gpu_sw_axi_perf_int_e
gpu_sw_axi_perf_int_e
14 RW 0x0 interrupt enable
1'b1: enable
1'b0: disable
13 RO 0x0 reserved
GPUGRF_PERF_RD_MAX_LATENCY_NUM
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:13 RO 0x0 reserved
rd_max_latency_r
12:0 RO 0x0000 rd_max_latency_r
axi read max latency output
GPUGRF_PERF_RD_LATENCY_SAMP_NUM
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
rd_latency_samp_r
26:0 RO 0x0000000 rd_latency_samp_r
AXI read latency total sample number
GPUGRF_PERF_RD_LATENCY_ACC_NUM
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
rd_latency_acc_cnt_r
31:0 RO 0x00000000 rd_latency_acc_cnt_r
AXI read latency (>sw_rd_latency_thr) total number
GPUGRF_PERF_RD_AXI_TOTAL_BYTE
GPUGRF_PERF_WR_AXI_TOTAL_BYTE
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
wr_axi_total_byte
31:0 RO 0x00000000 wr_axi_total_byte
AXI active total write bytes/ddr align write bytes
GPUGRF_PERF_WORKING_CNT
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
working_cnt_r
31:0 RO 0x00000000 working_cnt_r
working counter
GPUGRF_GPU_CON0
Address: Operational Base + offset (0x0060)
Bit Attr Reset Value Description
31:7 RO 0x0 reserved
grf_gpu_emaa
6:4 RW 0x4 grf_gpu_emaa
SRAM EMAA control
3 RO 0x0 reserved
grf_con_dvalin_striping_granule
grf_con_dvalin_striping_granule
memory striping in level two cache
3'b000: 4KB Select L2C #0, if PA[12] == 0.
3'b001: 128 bytes Select L2C #0, if PA[7]==0.
2:0 RW 0x0 3'b010: 256 bytes Select L2C #0, if PA[8] == 0.
3'b011: 512 bytes Select L2C #0, if PA[9] == 0.
3'b100: 1KB Select L2C #0, if PA[10] == 0.
3'b101: 2KB Select L2C #0, if PA[11] == 0.
3'b110: This value is reserved.
3'b111: 256B An address hash function is used for striping
USBPHY_GRF_REG1
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg1
15:0 RW 0xe007
usbcomb phy control reg. BIT31 to 16
USBPHY_GRF_REG2
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg2
15:0 RW 0x02e7
usbcomb phy control reg. BIT47 to 32
USBPHY_GRF_REG3
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg3
15:0 RW 0x0200
usbcomb phy control reg. BIT63 to 48
USBPHY_GRF_REG4
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg4
15:0 RW 0x5556
usbcomb phy control reg. BIT79 to 64
USBPHY_GRF_REG5
Address: Operational Base + offset (0x0014)
USBPHY_GRF_REG6
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg6
15:0 RW 0x0005
usbcomb phy control reg. BIT111 to 96
USBPHY_GRF_REG7
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg7
15:0 RW 0x68c0
usbcomb phy control reg. BIT127 to 112
USBPHY_GRF_REG8
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg8
15:0 RW 0x0000
usbcomb phy control reg. BIT143 to 128
USBPHY_GRF_REG9
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg9
15:0 RW 0x0000
usbcomb phy control reg. BIT159 to 144
USBPHY_GRF_REG10
Address: Operational Base + offset (0x0028)
USBPHY_GRF_REG11
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg11
15:0 RW 0x0000
usbcomb phy control reg. BIT191 to 176
USBPHY_GRF_REG12
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg12
15:0 RW 0x8518
usbcomb phy control reg. BIT207 to 192
USBPHY_GRF_REG13
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg13
15:0 RW 0xe007
usbcomb phy control reg. BIT223 to 208
USBPHY_GRF_REG14
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg14
15:0 RW 0x02e7
usbcomb phy control reg. BIT239 to 224
USBPHY_GRF_REG15
Address: Operational Base + offset (0x003c)
USBPHY_GRF_REG16
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg16
15:0 RW 0x5556
usbcomb phy control reg. BIT271 to 256
USBPHY_GRF_REG17
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg17
15:0 RW 0x4555
usbcomb phy control reg. BIT287 to 272
USBPHY_GRF_REG18
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg18
15:0 RW 0x0005
usbcomb phy control reg. BIT303 to 288
USBPHY_GRF_REG19
Address: Operational Base + offset (0x004c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg19
15:0 RW 0x68c0
usbcomb phy control reg. BIT319 to 304
USBPHY_GRF_REG20
Address: Operational Base + offset (0x0050)
USBPHY_GRF_REG21
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg21
15:0 RW 0x0000
usbcomb phy control reg. BIT351 to 336
USBPHY_GRF_REG22
Address: Operational Base + offset (0x0058)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg22
15:0 RW 0x0000
usbcomb phy control reg. BIT367 to 352
USBPHY_GRF_REG23
Address: Operational Base + offset (0x005c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
usbphy_reg23
15:0 RW 0x0000
usbcomb phy control reg. BIT383 to 368
USBPHY_GRF_CON0
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
15:11 RO 0x0 reserved
usbotg_utmi_iddig
10 RW 0x1
GRF USB otg Plug iddig Indicator
usbotg_utmi_iddig_sel
USB otg plug indicator output selection
9 RW 0x0
1'b0:select phy iddig status to controller
1'b1: select grf plug iddig indicator to controller
usbotg_utmi_dmpulldown
8 RW 0x0
GRF otg DM pulldown resistor
USBPHY_GRF_CON1
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
15:9 RO 0x0 reserved
usbhost_utmi_dmpulldown
8 RW 0x1
GRF host DM pulldown resistor
usbhost_utmi_dppulldown
7 RW 0x1
GRF host DP pulldown resistor
usbhost_utmi_termselect
6 RW 0x1
GRF host termination select between FS/LS/HS speed
usbhost_utmi_xcvrselect
5:4 RW 0x1
GRF host transceiver select between FS/LS/HS speed
usbhost_utmi_opmode
3:2 RW 0x0
GRF host operational mode selection
usbhost_utmi_suspend_n
GRF host suspend mode
1 RW 0x1
1'b0: suspend
1'b1: normal
usbhost_utmi_sel
0 RW 0x0 1'b0: select host controller utmi interface to phy
1'b1: select grf utmi interface to phy
USBPHY_GRF_CON2
Address: Operational Base + offset (0x0108)
USBPHY_GRF_CON3
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
15:12 RO 0x0 reserved
usbotg_utmi_drvvbus
11 RW 0x0
USB OTG grf utmi_drvvbus
usbotg_utmi_drvvbus_sel
USB OTG utmi_drvvbus_sel bit control
10 RW 0x0
0:select otg controller drvvbus to phy
1:select otg grf utmidrvvbus to phy
USBPHY_GRF_INT_MASK
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
15:10 RO 0x0 reserved
host0_disconnect_irq_en
host0_disconnect_irq edge status enable
9:8 RW 0x0
x1: hostdisconnect rising edge irq status enable
1x: hostdisconnect falling edge irq status enable
otg0_disconnect_irq_en
otg0_disconnect_irq edge status enable
7:6 RW 0x0
x1: hostdisconnect rising edge irq status enable
1x: hostdisconnect falling edge irq status enable
otg0_id_irq_en
otg0_id edge status enable
5:4 RW 0x0
x1: id rising edge irq status enable
1x: id falling edge irq status enable
otg0_bvalid_irq_en
otg0_bvalid edge status irq enable
3:2 RW 0x0
x1: bvalid rising edge irq status enable
1x: bvalid falling edge irq status enable
USBPHY_GRF_INT_STATUS
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
31:10 RO 0x0 reserved
host0_disconnect_irq
host0_disconnect edge irq status
9:8 RO 0x0
x1: hostdisconnect rising edge irq status
1x: hostdisconnect falling edge irq status
otg0_disconnect_irq
otg0_disconnect edge irq status
7:6 RO 0x0
x1: hostdisconnect rising edge irq status
1x: hostdisconnect falling edge irq status
otg0_id_irq
otg0_id edge irq status
5:4 RO 0x0
x1: id rising edge irq status
1x: id falling edge irq status
otg0_bvalid_irq
otg0_bvalid edge irq status
3:2 RO 0x0
x1: bvalid rising edge irq status
1x: bvalid falling edge irq status
host0_linestate_irq
1 RO 0x0
host0_linestate change irq status
otg0_linestate_irq
0 RO 0x0
otg0_linestate change irq status
USBPHY_GRF_INT_STATUS_CLR
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
31:10 RO 0x0 reserved
host0_disconnect_irq_clr
host0_disconnect_irq_clr irq status clear
9:8 WO 0x0
01: hostdisconnect rising edge irq status clear
10: hostdisconnect falling edge irq status clear
otg0_disconnect_irq_clr
otg0_disconnect_irq_clr irq status clear
7:6 WO 0x0
01: hostdisconnect rising edge irq status clear
10: hostdisconnect falling edge irq status clear
USBPHY_GRF_STATUS
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
31:26 RO 0x0 reserved
grf_stat_usbphy_dp_detected
25 RO 0x0
grf_stat_usbphy_dp_detected bit status
grf_stat_usbphy_cp_detected
24 RO 0x0
grf_stat_usbphy_cp_detected bit status
grf_stat_usbphy_dcp_detected
23 RO 0x0
grf_stat_usbphy_dcp_detected bit status
usbhost_phy_ls_fs_rcv
22 RO 0x0
host_phy_ls_fs_rcv status
usbhost_utmi_avalid
21 RO 0x0
host_utmi_avalid status
usbhost_utmi_bvalid
20 RO 0x0
host_utmi_bvalid status
usbhost_utmi_hostdisconnect
19 RO 0x0
host_utmi_hostdisconnect status
usbhost_utmi_iddig_o
18 RO 0x0
host_utmi_iddig status
usbhost_utmi_linestate
17:16 RO 0x0
host_utmi_linestate status
usbhost_utmi_sessend
15 RO 0x0
host_utmi_sessend status
usbhost_utmi_vbusvalid
14 RO 0x0
host_utmi_vbusvalid status
usbhost_utmi_vmi
13 RO 0x0
host_utmi_vmi status
usbhost_utmi_vpi
12 RO 0x0
host_utmi_vpi status
USBPHY_GRF_LS_CON
Address: Operational Base + offset (0x0130)
Bit Attr Reset Value Description
31:20 RO 0x0 reserved
linestate_filter_con
19:0 RW 0x30100 host/otg port linestate filter time control register. Unit: pclk(up to
100MHz)
USBPHY_GRF_DIS_CON
Address: Operational Base + offset (0x0134)
Bit Attr Reset Value Description
31:20 RO 0x0 reserved
disconnect_filter_con
19:0 RW 0x30100 host/otg port hostdisconnect filter time control register. Unit:
pclk(up to 100MHz)
USBPHY_GRF_BVALID_CON
Address: Operational Base + offset (0x0138)
USBPHY_GRF_ID_CON
Address: Operational Base + offset (0x013c)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
id_filter_con
27:0 RW 0x0030100 otg port linestate filter time control register. Unit: pclk(up to
100MHz)
Reset
Name Offset Size Description
Value
DDR_GRF_STATUS5 0x0114 W 0x00000000 DDR Status Register5
DDR_GRF_STATUS6 0x0118 W 0x00000000 DDR Status Register6
DDR_GRF_STATUS7 0x011c W 0x00000000 DDR Status Register7
DDR_GRF_STATUS8 0x0120 W 0x00000000 DDR Status Register8
DDR_GRF_STATUS9 0x0124 W 0x00000000 DDR Status Register9
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
DDR_GRF_CON1
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
write_enable
When bit16=1, bit0 can be written by software.
When bit16=0, bit 0 cannot be written by software;
When bit 17=1, bit 1 can be written by software.
31:16 WO 0x0000
When bit 17=0, bit 1 cannot be written by software;
……
When bit 31=1, bit 15 can be written by software.
When bit 31=0, bit 15 cannot be written by software;
15:12 RO 0x0 reserved
grf_auto_sr_dly
11:8 RW 0x6
The delay of auto gated ddrc_core_clk. It should be to be 0x6
7:5 RO 0x0 reserved
grf_upctl_syscreq_cg_en
0: disable force ddrc_core_clk ungating when external
4 RW 0x0 ddrc_csysreq asserted
1: enable force ddrc_core ungating when external ddrc_csysreq
asserted
grf_selfref_type2_en
3 RW 0x0 0: disable ddrc_core_clk auto gating in type2 selfrefresh
1: enable ddrc_core_clk auto gating in type2 selfrefresh
grf_upctl_core_cg_en
2 RW 0x0 0: disable ddrc_core_clk auto gating
1: enable ddrc_core_clk auto gating
grf_upctl_apb_cg_en
0: disable function of force aclk/ddrc_core_clk ungated when apb
1 RW 0x0 access is going
1: enable function of force aclk/ddrc_core_clk ungated when apb
access is going
grf_upctl_axi_cg_en
0 RW 0x0 0: disable aclk auto gating
1: enable aclk auto gating
DDR_GRF_SPLIT_CON
Address: Operational Base + offset (0x0008)
DDR_GRF_LP_CON
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
write_enable
31:16 WO 0x0000
Bit0~15 write enable
15:14 RO 0x0 reserved
sr_ctl_en
13 RW 0x0 0: disable sr exit/enter reload/inverse lpckdis_ini
1: enable sr exit/eneter reload/inverse lpckdis_ini
pd_ctl_en
12 RW 0x1 0: disable pd exit/enter reload/inverse lpckdis_ini
1: enable pd exit/eneter reload/inverse lpckdis_ini
11:10 RO 0x0 reserved
lpckdis_en
9 RW 0x0 0: disable ddr phy low power fuction
1: enable ddr phy low power function
lpckdis_ini
8 RW 0x1
lpckdis intial value
7:3 RO 0x0 reserved
lp23_mode
2 RW 0x0 1: enable LPDDR2/LPDDR3 mode
0: disable LPDDR2/LPDDR3 mode
DDR_GRF_MSC_CTRL
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
31:20 RO 0x0 reserved
write_enable
19:16 RW 0x0
Bit0~3 write enable
15:4 RO 0x0 reserved
read_bypass_en
3 RW 0x0 1'b1: bypass all read traffics
1'b0: not bypass
priority_bypass_en
2 RW 0x0 1'b1: bypass traffics with priority higher than priority_level_th
1'b0: not bypass
cpu_bypass_en
1 RW 0x0 1'b1: bypass cpu traffics
1'b0: not bypass
global_en
msch_ready_ctrl global enable
1'b1: enable
0 RW 0x0
1'b0: disable
note: msch_ready_ctrl only works when grf_ddrbuf_en in
DDR_CON0 is set to 0
DDR_GRF_CPU_IDLE_TH
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
cpu_idle_threshold
Only when there is not any cpu traffics after cpu_idle_threshold
15:0 RW 0x0000
memory scheduler clock cycles, the msch_ready_ctrl can drive
ready low. Only used when cpu_bypass_en is 1'b1
DDR_GRF_READY_LOW_CYCLES
Address: Operational Base + offset (0x0088)
DDR_GRF_READY_HIGH_CYCLES
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
ready_high_cycles
15:0 RW 0x0000
The total memory scheduler clock cycles to keep ready high
DDR_GRF_PRIORITY_IDLE_TH
Address: Operational Base + offset (0x0090)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
priority_idle_threshold
Only when there is not any traffics with priority higher than
15:0 RW 0x0000 PRIORITY_LEVEL_TH after priority_idle_threshold memory
scheduler clock cycles, the msch_ready_ctrl can drive ready low.
Only used when priority_bypass_en is 1'b1
DDR_GRF_PRIORITY_LEVLE_TH
Address: Operational Base + offset (0x0094)
Bit Attr Reset Value Description
write_enable
31:16 RW 0x0000
Bit0~15 write enable
priority_level_threshold
15:0 RW 0x0000 When priority is higher than this value, the traffics will be
bypassed
DDR_GRF_STATUS0
Address: Operational Base + offset (0x0100)
DDR_GRF_STATUS1
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
mrr_data0[63:32]
31:0 RO 0x00000000
mrr_data0[63:32] data status. See DDR_STATUS0
DDR_GRF_STATUS2
Address: Operational Base + offset (0x0108)
Bit Attr Reset Value Description
mrr_data0[95:64]
31:0 RO 0x00000000
mrr_data0[95:64] data status. See DDR_STATUS0
DDR_GRF_STATUS3
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
mrr_data0[127:96]
31:0 RO 0x00000000
mrr_data0[127:96] data status. See DDR_STATUS0
DDR_GRF_STATUS4
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
mrr_data1[31:0]
31:0 RO 0x00000000
mrr_data1[31:0] data status. See DDR_STATUS0
DDR_GRF_STATUS5
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
mrr_data1[63:32]
31:0 RO 0x00000000
mrr_data1[63:32] data status. See DDR_STATUS0
DDR_GRF_STATUS6
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
mrr_data1[95:64]
31:0 RO 0x00000000
mrr_data1[95:64] data status. See DDR_STATUS0
DDR_GRF_STATUS7
Address: Operational Base + offset (0x011c)
Bit Attr Reset Value Description
mrr_data1[127:96]
31:0 RO 0x00000000
mrr_data1[127:96] data status. See DDR_STATUS0
DDR_GRF_STATUS8
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
31:19 RO 0x0 reserved
cpu_port_probe_mainStatAlarm
18 RO 0x0
cpu_port_probe_mainStatAlarm
cpu_port_probe_mainTraceAlarm
17 RO 0x0
cpu_port_probe_mainTraceAlarm
gpu_port_probe_mainStatAlarm
16 RO 0x0
gpu_port_probe_mainStatAlarm
gpu_port_probe_mainTraceAlarm
15 RO 0x0
gpu_port_probe_mainTraceAlarm
mmip_port_probe_mainStatAlarm
14 RO 0x0
mmip_port_probe_mainStatAlarm
mmip_port_probe_mainTraceAlarm
13 RO 0x0
mmip_port_probe_mainTraceAlarm
peri_port_probe_mainStatAlarm
12 RO 0x0
peri_port_probe_mainStatAlarm
peri_port_probe_mainTraceAlarm
11 RW 0x0
peri_port_probe_mainTraceAlarm
dfi_scramble_read_of
10 RW 0x0
dfi_scramble_read_of
dfi_scramble_write_of
9 RW 0x0
dfi_scramble_write_of
dfi_scramble_key_ready
8 RW 0x0
dfi_scramble_key_ready
grf_st_ddrc_reg_selfref_type
7:6 RW 0x0
grf_st_ddrc_reg_selfref_type
grf_st_cactive_aclk
5 RW 0x0
grf_st_cactive_aclk
grf_st_csysaclk_aclk
4 RW 0x0
grf_st_csysaclk_aclk
DDR_GRF_STATUS9
Address: Operational Base + offset (0x0124)
Bit Attr Reset Value Description
dfi_lp_ck_disable
31 RO 0x0
status low power of ddr phy
30 RO 0x0 reserved
grf_st_hif_refresh_req_bank
29:24 RO 0x00
grf_st_hif_refresh_req_bank
23 RO 0x0 reserved
grf_st_wr_credit_cnt
22:16 RO 0x00
grf_st_wr_credit_cnt
15 RO 0x0 reserved
grf_st_hpr_credit_cnt
14:8 RO 0x00
grf_st_hpr_credit_cnt
7 RO 0x0 reserved
grf_st_lpr_credit_cnt
6:0 RO 0x00
grf_st_lpr_credit_cnt
4.1 Overview
The GPU is a hardware accelerator for 2D and 3D graphics systems.
The GPU supports these compute API standards:
OpenCL 2.0 Full Profile.
The GPU supports these graphics API standards:
DirectX 11 FL9_3.
OpenGLES 1.1, 2.0, and 3.2.
Vulkan 1.0.
The GPU contains 1128-bit AXI slave bus and 1128-bit AXI master bus. CPU configures GPU
through AXIslave bus, GPU read and write data through AXI master bus.
GPU
Core group
Job
manager Shader
core Memory
Hierarchical
tiler management
unit
Chapter 5 Cortex-A35
5
5.1 Overview
The PX30 has a quad-core Cortex-A35 cluster with 256K L2 memory. Cortex-A35 processor,
which is a mid-range, low-power processor that implements the ARMv8-A architecture.
The Cortex-A35 processor includes following features:
Full implementation of the ARMv8-A A64, A32, and T32 instruction sets.
Both the AArch32 and AArch64 execution states at all Exception levels (EL0 to EL3).
In-order pipeline with direct and indirect branch prediction.
Separate Level 1 (L1) data and instruction side memory systems with a Memory
Management Unit(MMU).
Level 2 (L2) memory system that provides cluster memory coherency.
L2 cache.
TrustZone.
Support data engine that implements the Advanced SIMD and floating-point architecture
support.
Support Cryptographic Extension.
ARMv8 debug logic.
Support Generic Interrupt Controller (GIC) CPU interface to connect to an external
distributor.
Generic Timers supporting 64-bit count input from an external system counter.
The configuration details are shown in following tables
Table 5-1 CPU Configuration
Number of CPU 4
L1 I cache size 32K
L1 D cache size 32K
L2 cache size 256K
L2 data RAM output latency 3 cycles
L2 data RAM input latency 2 cycles
CPU cache protection No
SCU L2 cache protection No
BUS master interface AXI4
NEON and floating point support Yes
Cryptography extension Yes
32K I-Cache 32K D-Cache 32K I-Cache 32K D-Cache 32K I-Cache 32K D-Cache 32K I-Cache 32K D-Cache
SCU-L2
6.1 Overview
There are two embedded SRAMs, SYSTEM_SRAM and PMU_SRAM. the AXI slave device,
which supports read and write access to provide system fast access data storage
6.1.1 Features supported
SYSTEM_SRAM
Provide 16KB access space
Support security and non-security access
Security or non-security space is software programmable
Security space is nx4KB(up to whole memory space)
PMU_SRAM
Provide 8KB access space
Support security access only
System Interconnect
TZMA
AHB Slave
AXI Slave Interface
Interface
SRAM
SRAM
SYSTEM_SRAM PMU_SRAM
Fig. 6-1 Embedded SRAM block diagram
7.1 Overview
Nand Flash Controller (NandC) is used to control data transmission from host to flash device
or from flash device to host. NandC is connected to AHB BUS through an AHB Master and an
AHB Slave. The data transmission between host and external memory can be done through
AHB Master interface or AHB Slave interface.
NandC supports the following features:
Software Interface Type
Support directly mode
Support LLP(Linked List Pointer) mode
Flash Interface Type
Support Asynchronous Flash Interface with 8bits datawidth (“Asyn8x” for short)
Support ONFI Synchronous Flash Interface (“ONFI Syn” for short)
Support Toggle Flash Interface (“Toggle” for short)
Support 2 flash devices at most
Flash Type
Support Managed NAND Flash(LBA) and Raw NAND Flash(NO-LBA)
Support SLC/MLC/TLC Flash
Flash Interface Timing
Asyn8x: configurable timing, one byte per two host clocks at the fastest speed
ONFI Syn: configurable timing, two bytes per two host clocks at the fastest speed
Toggle: configurable timing, two byte per two host clocks at the fastest speed
Randomizer Ability
Supporttwo randomizer mode with different polynomial
Support two randomizer width, 8bit and 16bit parallel
BCH/ECC Ability
24bit/1KB BCH/ECC: support 24 bit BCH/ECC, which can detect and correct up to 24
error bits in every 1K bytes data
40bit/1KB BCH/ECC: support 40bit BCH/ECC, which can detect and correct up to 40
error bits in every 1K bytes data
60bit/1KB BCH/ECC: support 60bit BCH/ECC, which can detect and correct up to 60
error bits in every 1K bytes data
70bit/1KB BCH/ECC: support 70 bit BCH/ECC, which can detect and correct up to 70
error bits in every 1K bytes data
24bit/512B BCH/ECC: support 24 bit BCH/ECC, which can detect and correct up to
24 error bits in every 512 bytes data
40bit/512B BCH/ECC: support 40bit BCH/ECC, which can detect and correct up to 40
error bits in every 512 bytes data
60bit/512B BCH/ECC: support 60bit BCH/ECC, which can detect and correct up to 60
error bits in every 512 bytes data
70bit/512B BCH/ECC: support 70bit BCH/ECC, which can detect and correct up to 70
error bits in every 512 bytes data
Transmission Ability
Support 32K bytes data transmission at a time at most
Support two transfer working modes: Bypass or DMA
Support two transfer codewords size for Managed NAND Flash: 1024 bytes/codeword
or 512 bytes/codeword
Internal Memory
2 built-in srams, and the size is 1k bytes respectively
Can be accessed by other masters
Can be operated in pingpong mode by other masters
LLPC RANDMZ
FLASH IF
AHB Master MIF TRANSC FIF_GEN NAND_IO
SRIF
Reset
Name Offset Size Description
Value
NANDC_INTEN 0x0120 W 0x00000000 NandC Interrupt Enable Register
NANDC_INTCLR 0x0124 W 0x00000000 NandC Interrupt Clear Register
NANDC_INTST 0x0128 W 0x00000000 NandC Interrupt Status Register
BCH Status Register For
NANDC_BCHST0 0x0150 W 0x80000000
Codeword 0~1
BCH Status Register For
NANDC_BCHST1 0x0154 W 0x00000000
Codeword 2~3
BCH Status Register For
NANDC_BCHST2 0x0158 W 0x00000000
Codeword 4~5
BCH Status Register For
NANDC_BCHST3 0x015c W 0x00000000
Codeword 6~7
BCH Status Register For
NANDC_BCHST4 0x0160 W 0x00000000
Codeword 8~9
BCH Status Register For
NANDC_BCHST5 0x0164 W 0x00000000
Codeword 10~11
BCH Status Register For
NANDC_BCHST6 0x0168 W 0x00000000
Codeword 12~13
BCH Status Register For
NANDC_BCHST7 0x016c W 0x00000000
Codeword 14~15
BCH Status Register For
NANDC_BCHST8 0x0170 W 0x00000000
Codeword 16~17
BCH Status Register For
NANDC_BCHST9 0x0174 W 0x00000000
Codeword 18~19
BCH Status Register For
NANDC_BCHST10 0x0178 W 0x00000000
Codeword 20~21
BCH Status Register For
NANDC_BCHST11 0x017c W 0x00000000
Codeword 22~23
BCH Status Register For
NANDC_BCHST12 0x0180 W 0x00000000
Codeword 24~25
BCH Status Register For
NANDC_BCHST13 0x0184 W 0x00000000
Codeword 26~27
BCH Status Register For
NANDC_BCHST14 0x0188 W 0x00000000
Codeword 28~29
BCH Status Register For
NANDC_BCHST15 0x018c W 0x00000000
Codeword 30~31
System Information for codeword
NANDC_SPARE0_0 0x0200 W 0xffffffff
0
System Information for codeword
NANDC_SPARE1_0 0x0204 W 0xffffffff
1
NANDC_RANDMZ_CFG 0x0208 W 0x00000000 Randomizer Configure Register
NANDC_SEED_BCHST 0x020c W 0x00000000 Bchst Seed
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
7.4.2 Detail Register Description
NANDC_FMCTL
NANDC_FMWAIT_ASYN
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31 RO 0x0 reserved
fmw_dly_en
30 RW 0x0
fmw_dly enable signal,1 active.
fmw_dly
29:24 RW 0x3f
The number of delay cycle between two codeword transmission.
23 RO 0x0 reserved
wait_frdy_dly
22:18 RW 0x0f
The number of delay cycle to accept the flash ready signal.
csrw
When in Asynchronous mode or Toggle address/command mode,
17:12 RW 0x3f this field specifies the number of processor clock cycles from the
falling edge of CSn to the falling edge of RDn or WRn. The min
value of csrw is 0.
hard_rdy
Hardware handshaking controller bit.
11 RW 0x0 When asserted, an external device asserts signal "RDY" to extend
a wait-state access and the rest bits in this register will be
ignored.
rwpw
When in Asynchronous mode or Toggle address/command mode,
10:5 RW 0x3f
this field specifies the width of RDn or WRn in processor clock
cycles, 0x0<=rwpw<=0x3f.
NANDC_FMWAIT_SYN
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
ssyn_xle_sel
ALE/CLE selection signal for ONFI synchronous flash:
15 RW 0x0
0: ALE/CLE aligned to the falling edge of WRN
1: ALE/CLE aligned to the center of WRN low level
pst
Write/Read Postamble time for ONFI synchronous mode or Toggle
14:9 RW 0x00 data mode.
This field specifies the number of processor clock cycle for
Postamb- le time.
pre
Write/Read Preamble time for ONFI synchronous mode or Toggle
8:3 RW 0x00 data mode.
This field specifies the number of processor clock cycle for
preamble time.
fclk
2:0 RW 0x0 Half hclk cycle number for flash clock for ONFI synchronous mode
or Toggle data mode
NANDC_FLCTL
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31 RO 0x0 reserved
bypass_fifo_mode
The enable sigal for bypass with fifo mode.
30 RW 0x0
1'b0: disable;
1'b1: enable;
async_tog_mix
Nandc async mode and tog mode compatible control
29 RW 0x0
0: async write data can't be read by tog read
1: async write data can be read by tog read
low_power
Nandc low power control
28 RW 0x0
0: normal mode
1: low power mode
NANDC_FIFO_ACCESS
NANDC_BCHCTL
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
bchmode
BCH mode selection;
000: 70bitBCH
27:25 RW 0x0
001: 24bitBCH
010: 40bitBCH
011: 60bitBCH
bchthres
24:17 RW 0x00
BCH error number threshold
NANDC_MTRANS_CFG
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
redundance_size
26:16 RW 0x000 The num of all f byte to write to flash, the maximum of the size is
2K -1
R/W ahb_rst
15 0x0
SC ahb master interface software reset, auto cleared
NANDC_MTRANS_SADDR0
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
saddr0
Start address for page data transmision.
31:0 RW 0x00000000 Notes:
a. Only active for master-mode.
b. Should be aligned with hsize in MTRANS_CFG[5:3].
NANDC_MTRANS_SADDR1
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
saddr1
Start address for spare data.
31:0 RW 0x00000000 Notes:
a. Only active for master-mode.
b. Should be aligned with hsize in MTRANS_CFG[5:3].
NANDC_MTRANS_STAT
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
mtrans_cnt
finished counter for codeword transmission through Master
21:16 RO 0x00 interface
Notes:
Only active for master-mode.
NANDC_MTRANS_STAT2
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
bus_err2
Bus error indication for codeword16~31.
[0] : bus error for codeword 16
15:0 RO 0x0000 ……
[15] : bus error for codeword 31
Notes:
Only active for master-mode.
NANDC_DLL_CTL_REG0
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
31:24 RO 0x0 reserved
dll_dqs_dly_bypass
23:16 RW 0x7f Holds the read DQS delay setting when the DLL is operating in
bypass mode.
dll_dqs_dly
Holds the read DQS delay setting when the DLL is operating in
15:8 RW 0x7f
normal mode. Typically, this value is 1/4 of a clock cycle. Each
increment of this field represents 1/128th of a clock cycle.
dll_start_point
DLL Start Point Control. This value is loaded into the DLL at
7:0 RW 0x05 initialization and is the value at which the DLL will begin
searching for a lock. Each increment of this field represents
1/128th of a clock cycle.
NANDC_DLL_CTL_REG1
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
NANDC_DLL_OBS_REG0
Address: Operational Base + offset (0x0058)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
dll_dqs_delay_value
16:9 RO 0x01
Report the delay value for the read DQS signal
dll_lock_value
Reports the DLL encoder value from the master DLL to the slave
8:1 RO 0x00
DLL's. The slaves use this value to set up their delays for the
clk_wr and read DQS signals.
dll_lock
DLL Lock indication:
0 RO 0x0
0: DLL has not locked
1: DLL is locked.
NANDC_NANDC_VER
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
version
31:0 RO 0x56393030
Version indication for NANDC
NANDC_LLP_CTL
NANDC_LLP_STAT
Address: Operational Base + offset (0x0094)
Bit Attr Reset Value Description
llp_stat
31:6 RO 0x0000000
latest LLI_LOC finished, 64byte align
5:2 RO 0x0 reserved
llp_err
error status for llp load or execute
1 RO 0x0
0-llp is correct
1-llp is error
llp_rdy
ready status for all llp load
0 RO 0x1
0-llp load is busy
1-llp load is ready
NANDC_LLI_FOP7
Address: Operational Base + offset (0x00a0)
NANDC_LLI_FOP8
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
NANDC_LLI_FOP9
Address: Operational Base + offset (0x00a8)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
NANDC_LLI_FOP10
Address: Operational Base + offset (0x00ac)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
Fop_nxtid
23:20 RO 0x0
Next FOP ID;
Fop_wait_frdy
19 RO 0x0 Indicate the current FOP will excute when
flash ready; "1" active
Fop_wait_trdy
18 RO 0x0 Indicate the current FOP will excute when DMA transfer ready;
"1" active
Fop_addr
17:16 RO 0x0
flash address type, FOP_ADDR[0]-ALE, FOP_ADDR[1]-CLE
NANDC_LLI_FOP11
Address: Operational Base + offset (0x00b0)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
Fop_nxtid
23:20 RO 0x0
Next FOP ID;
Fop_wait_frdy
19 RO 0x0 Indicate the current FOP will excute when
flash ready; "1" active
Fop_wait_trdy
18 RO 0x0 Indicate the current FOP will excute when DMA transfer ready;
"1" active
Fop_addr
17:16 RO 0x0
flash address type, FOP_ADDR[0]-ALE, FOP_ADDR[1]-CLE
Fop_inst
flash write operation:
15:0 RO 0x0000 indicate flash write data(command/address/data) ;
flash read with match operation:
indicate match pattern data
NANDC_LLI_FOP12
Address: Operational Base + offset (0x00b4)
NANDC_LLI_FOP13
Address: Operational Base + offset (0x00b8)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
NANDC_LLI_FOP14
Address: Operational Base + offset (0x00bc)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
NANDC_LLI_NXT_LLP
Address: Operational Base + offset (0x00c0)
Bit Attr Reset Value Description
loc
31:6 RO 0x0000000
Starting address for next LLI
frdy
5 RW 0x0 Flash_rdy will not be used until 16 cycles after FOP_WAIT_FRDY
start; "1" active
4:2 RO 0x0 reserved
llp_mode
1 RO 0x0 0: next LLI only has FOP;
1:next LLI has both FOP and CFG
en
0 RO 0x0
Enable signal for next LLP
NANDC_LLI_FOP0
Address: Operational Base + offset (0x00c4)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
NANDC_LLI_FOP1
Address: Operational Base + offset (0x00c8)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
NANDC_LLI_FOP2
Address: Operational Base + offset (0x00cc)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
Fop_nxtid
23:20 RO 0x0
Next FOP ID;
Fop_wait_frdy
19 RO 0x0 Indicate the current FOP will excute when
flash ready; "1" active
Fop_wait_trdy
18 RO 0x0 Indicate the current FOP will excute when DMA transfer ready;
"1" active
Fop_addr
17:16 RO 0x0
flash address type, FOP_ADDR[0]-ALE, FOP_ADDR[1]-CLE
NANDC_LLI_FOP3
Address: Operational Base + offset (0x00d0)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
Fop_nxtid
23:20 RO 0x0
Next FOP ID;
Fop_wait_frdy
19 RO 0x0 Indicate the current FOP will excute when
flash ready; "1" active
Fop_wait_trdy
18 RO 0x0 Indicate the current FOP will excute when DMA transfer ready;
"1" active
Fop_addr
17:16 RO 0x0
flash address type, FOP_ADDR[0]-ALE, FOP_ADDR[1]-CLE
Fop_inst
flash write operation:
15:0 RO 0x0000 indicate flash write data(command/address/data) ;
flash read with match operation:
indicate match pattern data
NANDC_LLI_FOP4
Address: Operational Base + offset (0x00d4)
NANDC_LLI_FOP5
Address: Operational Base + offset (0x00d8)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
NANDC_LLI_FOP6
Address: Operational Base + offset (0x00dc)
Bit Attr Reset Value Description
Fop_type
flash operation type:
000:nop operation
31:29 RO 0x0 001:flash bypass write operation
010:flash bypass read operation
011:flash bypass read with match operation
100:flash DMA write/read operation
Fop_matchmod
when FOP_TYPE=3'b011, match operation is active, and the
PATTERN is LLI_FOP[15:0]. When FOP_MATCHMOD=0, it is
28 RO 0x0
matched when "RDATA|PATTERN=PATTERN" with
FOP_MATCHMOD=0, or when "RDATA&PATTERN=PATTERN" with
FOP_MATCHMOD=1.
Fop_cs
27:24 RO 0x0 Flash chip select; "1" active
"1000"~"1111" indicate select cs0~cs7;
NANDC_INTEN
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
31:10 RO 0x0 reserved
Seed_bcherr_int_en
Enable for seed bch error interrupt.
9 RW 0x0 0-interrupt disable
1-interrupt enable
When seed bcherr_int_en is active, an interrupt is generated.
Seed_bchfail_int_en
Enable for seed bch fail interrupt.
0-interrupt disable
8 RW 0x0
1-interrupt enable
When seed bchfail_int_en is active, an interrupt is generated if
seed bch decode failed
rd_1stpage_int_en
Enable for the first page read interrupt.
0: interrupt disable
7 RW 0x0
1: interrupt enable
When sif_bus_wr is active, an interrupt is generated if the first
page read operation is finished
master_idle_int_en
Enable for master idle interrupt
0-interrupt disable
6 RW 0x0
1-interrupt enable
When master_idle_int_en is active, an interrupt is generated if
posedge of master idle happen
NANDC_INTCLR
Address: Operational Base + offset (0x0124)
NANDC_INTST
Address: Operational Base + offset (0x0128)
Bit Attr Reset Value Description
31:10 RO 0x0 reserved
Seed_bcherr_int_stat
9 RO 0x0
Staus for seed bch decode error interrupt, high active
Seed_bchfail_int_stat
8 RO 0x0
Staus for seed bch decode fail interrupt, high active
rd_1stpage_int_stat
7 RO 0x0
Status for first page read interrupt, high active
master_idle_int_stat
6 RO 0x0
Status for master idle interrupt, high active
flash_abort_int_stat
5 RO 0x0 Status for flash abort, high active
Available when flash interface is ONFI synchronous or toggle
llp_int_stat
4 RO 0x0
Status for LLP finished interrupt, high active
bchfail_int_stat
3 RO 0x0
Status for bch decode fail interrupt, high active
bcherr_int_stat
2 RO 0x0
Status for bch error interrupt, high active
frdy_int_stat
1 RO 0x0
Status for flash_rdy interrupt, high active
dma_int_stat
0 RO 0x0
Status for internal DMA transfer finished interrupt, high active
NANDC_BCHST0
Address: Operational Base + offset (0x0150)
Bit Attr Reset Value Description
bchst_bchrdy
Ready indication for bch encoder/decoder, 1 active.
31 RO 0x1
0: bch encoder/decoder is busy
1: bch encoder/decoder is ready
NANDC_BCHST1
Address: Operational Base + offset (0x0154)
NANDC_BCHST2
Address: Operational Base + offset (0x0158)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST3
Address: Operational Base + offset (0x015c)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST4
Address: Operational Base + offset (0x0160)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST5
Address: Operational Base + offset (0x0164)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST6
Address: Operational Base + offset (0x0168)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST7
Address: Operational Base + offset (0x016c)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST8
Address: Operational Base + offset (0x0170)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST9
Address: Operational Base + offset (0x0174)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST10
Address: Operational Base + offset (0x0178)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST11
Address: Operational Base + offset (0x017c)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST12
Address: Operational Base + offset (0x0180)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST13
Address: Operational Base + offset (0x0184)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST14
Address: Operational Base + offset (0x0188)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_BCHST15
Address: Operational Base + offset (0x018c)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
NANDC_SPARE0_0
Address: Operational Base + offset (0x0200)
NANDC_SPARE1_0
Address: Operational Base + offset (0x0204)
Bit Attr Reset Value Description
system_3
31:24 RW 0xff
the 4th system byte of codeword 1
system_2
23:16 RW 0xff
the 3rd system byte of codeword 1
system_1
15:8 RW 0xff
the 2nd system byte of codeword 1
system_0
7:0 RW 0xff
the 1st system byte of codeword 1
NANDC_RANDMZ_CFG
Address: Operational Base + offset (0x0208)
Bit Attr Reset Value Description
randmz_en
Randomizer enable indication, 1 active.
0: Randomizer not active
1: Randomizer active
31 RW 0x0
Notes:
a. Not active when data transmission in bypass mode.
b. Just active for data, but not for address and command.
c. Not active when BchPage=1.
randmz_mode
Randomizer mode:
30:29 RW 0x0
00- Samsung randomizer Polynomial=1+x+x^15
10- Samsung randomizer Polynomial=1+x^14+x^15
28:20 RO 0x0 reserved
randmz_seed
when Samsung randomizer:
19:0 RW 0x00000 The seed for randomizer(initial value);
when Toshiba randomizer:
Seed Agitation Register.
NANDC_SEED_BCHST
Page_1 Spare_1
Saddr0 + PUnit×1 Saddr1 + SUnit×1
Page_2 Spare_2
Saddr0 + PUnit×2 Saddr1 + SUnit×2
Page_3 Spare_3
…… ……
Page_n-1 Spare_n-1
Saddr0 + PUnit×n Saddr1 + SUnit×n Valid
Page_n Spare_n
Invalid
1 P7 P6 P5 P4 1 P7 P6 P5 P4 1 P7 P6 P5 P4
P P P P P P P P P P P P
255 1023 1022 1021 1020
255 1023 1022 1021 1020
127 511 510 509 508
1 B3 B2 B1 B0
Fig.7-3NandC DataFormat
7.6.3 BchPage Application
BCHCTL[16] determines whether codeword size for page data is 1024 bytes or 512 bytes
when FLCTL[11] is 0.
7.6.3.1 1024bytes
When BCHCTL[16]=0, BchPage=0, hardware needs to write 1024 bytes page data and spare
data into flash or read 1024 bytes page data and spare data from flash. All the 1024 bytes
page data and spare data are encoded when writing or decoded when reading.
7.6.3.2 512bytes
When BCHCTL[16]=1, BchPage=1, hardware needs to write 512 bytes page data and spare
data into flash or read 512 bytes page data and spare data from flash.
In this mode, the page data unit size for BCH encoder and BCH decoder is still 1024byte. So
to support BCH encoder and decoder, software should configure page data as
follows:1th~512th bytes are invalid data which must be stuffed with 0xff, 513th~1024th
bytes arevalid page data.
However, Randomizer function is not supported under this condition.
7.6.4 PageSize/SpareSize Application
FLCTL[21] determines whether the codeword size is 1024 bytes or 512 bytes when
FLCTL[11] is 1.
However, Randomizer is just available for data transfer by internal DMA mode, but not by for
bypass mode. Furthermore, it should not be enable if BCHCTL[16]=0 (BchPage=512bytes).
7.6.6 DLL Application
When Toggle Flashor ONFI Synchronous Flash interface is active, DLL should be used to
adjust DQS input with DQ when reading flash.
There are 2 registers for DLL configuration(DLL_CFG_REG0 and DLL_CFG_REG1), and 1
register for DLL status(DLL_OBS_REG0).
The usage guide is as follows:
If bypass mode is used, you should set dll_bypass in DLL_CFG_REG1[1] to 1, and set
dll_dqs_dly_bypass in DLL_CFG_REG0[23:16] to determine the dll element number needed.
And then set dll_start in DLL_CFG_REG1[0] to 1 to start the DLL.
If auto adjusting is used, you should set dll_bypass in DLL_CFG_REG1[1] to 0, and set the
dll_start_point in DLL_CFG_REG0[7:0] and dll_incr in DLL_CFG_REG1[11:4]. You also
should set the adjusting mode dll_qtren in DLL_CFG_REG1[3:2] to compute the dll element
number needed. If dll_qtren=2’b00, the dll element number is determined by dll_dqs_dly in
DLL_CFG_REG0[15:8]; otherwise, it is 1/4 or 1/8 of the total number of dll elements used
for dll_qtren=2’b01 or dll_qtren=2’b10 separately. The last step is to set dll_start in
DLL_CFG_REG1[0] to 1 to start the DLL.
If you want to monitor the dll working status, you could read DLL_OBS_REG0. If
DLL_OBS_REG0[0]=0, it means that DLL is not locked, and still in detecting status.
Otherwise, it means that DLL is locked, and dll_lock_value in DLL_OBS_REG0[8:1] is the
total number of dll elements used, dll_dqs_delay_value in DLL_OBS_REG0[16:9] is the total
number of DQS delay used.
7.6.7 NandC Interrupt Application
NandC has 1 interrupt output signal and 10 interrupt sources: seed bch error interrupt
source, seed bch fail interrupt source, read first page interrupt source, master idle interrupt
source, flash abort interrupt source, LLP interrupt source, dma finish interrupt source, flash
ready interrupt source, bch error interrupt source, bchfail interrupt source. When one or
more of these interrupt source are enabled, NandC interrupt is asserted if one or more
interrupt source is high. Software can determine the interrupt source by reading INTST and
clear interrupt by writing corresponding bit in INTCLR.
7.6.8 LLP Application
LLP is used in NandC to store and execute instruction groups configured in external memory
by software. When LLPCTL[0]=1, LLP is active, NandC will load instruction groups stored in
{LLPCTL[31:6], 6’h0} and execute them. Next instruction groups should not be loaded until
current instruction execution finished.
LLI(n) : LLI_MODE=1
32
LLI(n) : LLI_MODE=0
32
FOP_TYPE:
000 : nop
001 : flash write
010 : flash read
011 : flash read with match operation
100 : DMA
When
FOP_TYPE=3’b011, match operation is active, and the PATTERN is LLI_FOP[15:0]. It is
matched when “RDATA|PATTERN=PATTERN” with FOP_MATCHMOD=0, or when
“RDATA&PATTERN=PATTERN” with FOP_MATCHMOD=1.
c. LLI_MTRANS_CFG/LLI_MTRANS_SADDR0/LLI_MTRANS_SADDR1/ LLI_RANDMZ/
LLI_FLCTL store the configuration for MTRANS_CFG/
MTRANS_SADDR0/MTRANS_SADDR1/RANDMZ/FLCTL.
7.6.8.3 LLP Working Mode
There are two working modes for LLP:
a. Normal mode: LLPCTL[0] is kept to 1 until all LLP loading and executing finished.
Software can monitor the progress by LLPSTAT[31:6], LLPSTAT[0].
b. Pause mode: LLPCTL[0] is changed from 1 to 0 during LLP loading or LLP executing.
NandC should not stop working until current LLP executing finished. Software can monitor
the progress by LLPSTAT[31:6], LLPSTAT[0].
7.6.9 Seed Application
Nandc supports randomizer seed transmission. When FLCTL[9]=1 and
RANDMZ_CFG[31]=1,Nandc will transmit seed to flash before page data transmission and
receive seed before page data receiving.
Seed has BCH encoder/decoder separately and support 1bit BCH. Software can query seed
BCH result by accessing SEED_BCHST.
7.6.10 Redundance Application
Nandc supports write “FF” to flash as redundance. Software can configure redundance size
by NANDC_MTRANS_CFG[26:16].
7.6.11 IOMUX Application
Nandc support IOMUX. Software can change pin function by FMCTL[23:21].
8.1 Overview
In order to meet low power requirements, a power management unit (PMU) is designed for
controlling power resources in PX30. The PX30 PMU is dedicated for managing the power of
the whole chip.
8.1.1 Features
Support 3 voltage domains: VD_CORE, VD_LOGIC, VD_PMU
Support power off VD_CORE only
4 Power domains in VD_CORE:PD_CPU_0/1/2/3
PD_CPU_0/1/2/3 support cpu auto power down ,support SCU auto power down
power domains in VD_LOGIC include PD_GPU, PD_VPU, PD_VI, PD_VO, PD_MMC_NAND,
PD_SDIO, PD_MAC, PD_DDR
Support DDR self-refresh, auto-gating and retention
Support wakeup source
Timer
Usb detect
Sdmmc detect
Sdio
Interrupt of Gpio0
Timeout
GPIO0A[7:0], GPIO0B[7:0], GPIO0C[4:0]
Uart0
Interrupt output from GIC
Support Flush L2 by software and hardware
Support NIU idle interface(idle request , ack and status)
Blocks Description
Voltage (not real
Domain power
domain)
PD_VI ISP and VIP
PD_VO VOP_M, VOP_S, RGA and DSI
PD_VPU VCODEC
DDR_CTRL, DDR_GRF, DDR_STDBY and
PD_DDR
DDR_MONITOR
PD_MAC MAC
PD_MMC_N SFC, EMMC, NAND and SDIO
AND
PD_SDCAR SDCARD
D
PD_USB USB_OTG and USB_HOST
PD_CRYPTO CRYPTO
DCF,DMAC, GIC, I2S0/1/2, PDM, INTMEM,
ROM, OTP_S, KEYREADER, USB_GRF, CRU,
PD_BUS(AL
CPU_BOOST,GRF,I2C,WDT_S/NS, TIMER_S/NS,
IVE)
TSADC,SARADC, OTP_NS, SPI, PWM, GPIO1/2/3,
UART1/2/3/4/5, DCF, PLL and ANALOG PHYs
PMU, UART0, GPIO0, PMU_GRF, PMU_INTMEM
VD_PMU PD_PMU
and SGRF
8.2.2 PMU block diagram
The following figure is the PMU block diagram. The PMU includes the 3 following sections:
APB interface and register, which can accept the system configuration
Low Power State Control, which generate low power control signals.
Power Switch Control, which control all power domain switch
APB Bus
Power Switch
Control
APB
Interface
And
Register Low Power
State Control
Reset
Name Offset Size Description
Value
PMU_SYS_REG3_HI 0x00c4 W 0x00000000 system register3 high 16 bit
PMU_SCU_PWRDN_CNT_L
0x00c8 W 0x00005dc0 scu power down count low 16 bit
O
PMU_SCU_PWRDN_CNT_
0x00cc W 0x00000000 scu power down count high 16 bit
HI
PMU_SCU_PWRUP_CNT_L
0x00d0 W 0x00005dc0 scu power up count low 16 bit
O
PMU_SCU_PWRUP_CNT_H
0x00d4 W 0x00000000 scu power up count low 16 bit
I
PMU_TIMEOUT_CNT_LO 0x00d8 W 0x00005dc0 time out count low 16 bit
PMU_TIMEOUT_CNT_HI 0x00dc W 0x00000000 time out count high 16 bit
PMU_CPU0APM_CON 0x00e0 W 0x00000000 cpu0 apm control register
PMU_CPU1APM_CON 0x00e4 W 0x00000000 cpu1 apm control register
PMU_CPU2APM_CON 0x00e8 W 0x00000000 cpu2 apm control register
PMU_CPU3APM_CON 0x00ec W 0x00000000 cpu3 apm control register
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
PMU_WAKEUP_CFG0_HI
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
wakeup_gpio_pos_en_hi
15:0 RW 0x0000
wakeup posedge enable for gpio 0 [31:16]
PMU_WAKEUP_CFG1_LO
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
wakeup_gpio_neg_en_lo
15:0 RW 0x0000
wakeup posedge enable for gpio 0 [15:0]
PMU_WAKEUP_CFG1_HI
PMU_WAKEUP_CFG2_LO
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:11 RO 0x0 reserved
wakeup_timeout_en
10 RW 0x0
timeout wakeup enable
9 RO 0x0 reserved
wakeup_sft_en
8 RW 0x0
software wakeup enable
wakeup_usbdev_en
7 RW 0x0
usb wakeup enable
wakeup_timer_en
6 RW 0x0
timer wakeup enable
wakeup_uart0_en
5 RW 0x0
uart0 wakeup enable
wakeup_sdmmc_en
4 RW 0x0
sdmmc wakeup enable
wakeup_sdio_en
3 RW 0x0
sdio wakeup enable
wakeup_gpio0_int_en
2 RW 0x0
gpio0 interrupt wakeup enable
1 RO 0x0 reserved
wakeup_int_cluster_en
0 RW 0x0
cluster interrupt wakeup enable
PMU_PWRDN_CON_LO
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pd_gpu_pwrdwn_en
15 RW 0x0
pd_gpu power down enable
pd_vi_pwrdwn_en
14 RW 0x0
pd_vi power down enable
pd_vo_pwrdwn_en
13 RW 0x0
pd_vo power down enable
PMU_PWRDN_ST
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
pd_gpu_pwr_status
15 RW 0x0 1: pd_gpu is power down
0: pd_gpu is power up
pd_vi_pwr_status
14 RW 0x0 1: pd_vi is power down
0:pd_vi is power up
pd_vo_pwr_status
13 RW 0x0 1: pd_vo is power down
0: pd_vi is power up
pd_vpu_pwr_status
12 RW 0x0 1: pd_vpu is power down
0: pd_vpu is power up
PMU_PWRMODE_CORE_CON_LO
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:12 RO 0x0 reserved
clr_peri2msch
11 RW 0x0
clear peri2msch niu when power down
PMU_PWRMODE_CORE_CON_HI
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:8 RO 0x0 reserved
npll_pd_en
7 RW 0x0
1: power down npll when power mode
gpll_pd_en
6 RW 0x0
1: power down gpll when power mode
cpll_pd_en
5 RW 0x0
1: power down cpll when power mode
dpll_pd_en
4 RW 0x0
1: power down dpll when power mode
apll_pd_en
3 RW 0x0
1: power down apll when in power mode
2:0 RO 0x0 reserved
PMU_PWRMODE_COMMON_CON_LO
Address: Operational Base + offset (0x002c)
PMU_PWRMODE_COMMON_CON_HI
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:14 RO 0x0 reserved
pd_bus_clk_src_gate_en
13 RW 0x0
clock gating bus niu when in power mode
pd_peri_clk_src_gate_en
12 RW 0x0
clock gating peri niu when in power mode
PMU_SFT_CON_LO
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:11 RO 0x0 reserved
upctl_c_sysreq_cfg
10 RW 0x0
software config upctl for idle
9:7 RO 0x0 reserved
l2flushreq_cluster_cfg
6 RW 0x0
software flush L2 config
gpll_pd_cfg
5 RW 0x0
software config gpll power down
cpll_pd_cfg
4 RW 0x0
software config cpll power down
dpll_pd_cfg
3 RW 0x0
software config dpll power down
apll_pd_cfg
2 RW 0x0
software config apll power down
PMU_BUS_IDLE_REQ_LO
Address: Operational Base + offset (0x0064)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
idle_req_peri2msch_cfg
15 RW 0x0
software configperi2msch niu idle request
idle_req_vpu_cfg
14 RW 0x0
software config vpu niu idle request
idle_req_pmu_cfg
13 RW 0x0
software config pmu niu idle request
idle_req_peri_mid_cfg
12 RW 0x0
software config peri_mid niu idle request
idle_req_msch_cfg
11 RW 0x0
software config msch niu idle request
idle_req_usb_cfg
10 RW 0x0
software config usb niu idle request
idle_req_sdcard_cfg
9 RW 0x0
software config sdcard niu idle request
idle_req_vi_cfg
8 RW 0x0
software config vi niu idle request
idle_req_vo_cfg
7 RW 0x0
software config vo niu idle request
idle_req_MAC_cfg
6 RW 0x0
software config MAC niu idle request
idle_req_mmc_nand_cfg
5 RW 0x0
software config mmc_nand niu idle request
idle_req_crypto_cfg
4 RW 0x0
software config crypto niu idle request
idle_req_core_cfg
3 RW 0x0
software config core niu idle request
idle_req_gpu_cfg
2 RW 0x0
software config bus niu idle request
idle_req_bus2main_cfg
1 RW 0x0
software config bus2main niu idle request
idle_req_bus_cfg
0 RW 0x0
software config bus niu idle request
PMU_BUS_IDLE_ST
PMU_OSC_CNT_LO
Address: Operational Base + offset (0x0074)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_osc_cnt_lo
15:0 RW 0x5dc0
osc_cnt[15:0]
PMU_OSC_CNT_HI
Address: Operational Base + offset (0x0078)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_osc_cnt_hi
3:0 RW 0x0
osc_cnt[19:16]
PMU_PLLLOCK_CNT_LO
Address: Operational Base + offset (0x007c)
PMU_PLLLOCK_CNT_HI
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_plllock_cnt_hi
3:0 RW 0x0
plllock_cnt[19:16]
PMU_PLLRST_CNT_LO
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_pllrst_cnt_lo
15:0 RW 0x5dc0
pllrst_cnt[15:0]
PMU_PLLRST_CNT_HI
Address: Operational Base + offset (0x0088)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_pllrst_cnt_hi
3:0 RW 0x0
pllrst_cnt[19:16]
PMU_STABLE_CNT_LO
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_stable_cnt_lo
15:0 RW 0x5dc0
stable_cnt[15:0]
PMU_STABLE_CNT_HI
Address: Operational Base + offset (0x0090)
PMU_WAKEUP_RST_CLR_CNT_HI
Address: Operational Base + offset (0x0098)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_wakeup_rst_cnt_hi
3:0 RW 0x0
wakeuprst_cnt[19:16]
PMU_WAKEUP_RST_CLR_CNT_LO
Address: Operational Base + offset (0x00a0)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_wakeup_rst_cnt_lo
15:0 RW 0x5dc0
wakeuprst_cnt[15:0]
PMU_DDR_SREF_ST
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
upctl_c_sysack
1 RO 0x0
upctl c_sysack status
upctl_c_active
0 RO 0x0
upctl c_active status
PMU_SYS_REG0_LO
Address: Operational Base + offset (0x00a8)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg0_lo
15:0 RW 0x0000
sysreg0[15:0]
PMU_SYS_REG0_HI
Address: Operational Base + offset (0x00ac)
PMU_SYS_REG1_LO
Address: Operational Base + offset (0x00b0)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg1_lo
15:0 RW 0x0000
sysreg1[15:0]
PMU_SYS_REG1_HI
Address: Operational Base + offset (0x00b4)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg1_hi
15:0 RW 0x0000
sysreg1[31:16]
PMU_SYS_REG2_LO
Address: Operational Base + offset (0x00b8)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg2_lo
15:0 RW 0x0000
sysreg2[15:0]
PMU_SYS_REG2_HI
Address: Operational Base + offset (0x00bc)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg2_hi
15:0 RW 0x0000
sysreg2[31:16]
PMU_SYS_REG3_LO
Address: Operational Base + offset (0x00c0)
PMU_SYS_REG3_HI
Address: Operational Base + offset (0x00c4)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16bit write mask for lsb
pmu_sys_reg3_hi
15:0 RW 0x0000
sysreg3[31:16]
PMU_SCU_PWRDN_CNT_LO
Address: Operational Base + offset (0x00c8)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_scu_pwrdn_cnt_lo
15:0 RW 0x5dc0
scu_pwrdn_cnt[15:0]
PMU_SCU_PWRDN_CNT_HI
Address: Operational Base + offset (0x00cc)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_scu_pwrdn_cnt_hi
3:0 RW 0x0
scu_pwrdn_cnt[19:16]
PMU_SCU_PWRUP_CNT_LO
Address: Operational Base + offset (0x00d0)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_scu_pwrdn_cnt_lo
15:0 RW 0x5dc0
scu_pwrdn_cnt[15:0]
PMU_SCU_PWRUP_CNT_HI
Address: Operational Base + offset (0x00d4)
PMU_TIMEOUT_CNT_LO
Address: Operational Base + offset (0x00d8)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
pmu_timeout_cnt_lo
15:0 RW 0x5dc0
timeout_cnt[15:0]
PMU_TIMEOUT_CNT_HI
Address: Operational Base + offset (0x00dc)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
pmu_timeout_cnt_hi
3:0 RW 0x0
timeout_cnt[19:16]
PMU_CPU0APM_CON
Address: Operational Base + offset (0x00e0)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
cpu0_sft_wakeup
3 RW 0x0
software wakeup cpu0 when auto power down mode
global_int_disable0_cfg
2 RW 0x0
disable interrupt to cpu0
cpu0_int_wakeup_en
1 RW 0x0
1: cpu0 auto power down interrupt wakeup enable
cpu0_wfi_pwrdn_en
0 RW 0x0
1: enable cpu0 wfi auto power down
PMU_CPU1APM_CON
Address: Operational Base + offset (0x00e4)
PMU_CPU2APM_CON
Address: Operational Base + offset (0x00e8)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
cpu2_sft_wakeup
3 RW 0x0
software wakeup cpu2 when auto power down mode
global_int_disable2_cfg
2 RW 0x0
disable interrupt to cpu2
cpu2_int_wakeup_en
1 RW 0x0
1: cpu2 auto power down interrupt wakeup enable
cpu2_wfi_pwrdn_en
0 RW 0x0
1: enable cpu2 wfi auto power down
PMU_CPU3APM_CON
Address: Operational Base + offset (0x00ec)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lsb 15-0
15:4 RO 0x0 reserved
cpu3_sft_wakeup
3 RW 0x0
software wakeup cpu3 when auto power down mode
global_int_disable3_cfg
2 RW 0x0
disable interrupt to cpu3
cpu3_int_wakeup_en
1 RW 0x0
1: cpu3 auto power down interrupt wakeup enable
cpu3_wfi_pwrdn_en
0 RW 0x0
1: enable cpu0 wfi auto power down
clk
pd_dwn_en
3 A
pd_dwn_req
4
pd_dwn_ack
B
pd_on_ack
D
pd_dwn_clkrst_n
C G
pd_dwn_rst_n
1 E
pd_dwn_clk_en
2 F
pd_clamp_n
5 H
pd_dwn_stat
9.1 Overview
The pulse-width modulator (PWM) feature is very common in embedded systems. It
provides a way to generate a pulse periodic waveform for motor control or can act as a
digital-to-analog converter with some external components.
The PWM Module supports the following features:
4-built-in PWM channels
Configurable to operate in capture mode
Measures the high/low polarity effective cycles of this input waveform
Generates a single interrupt at the transition of input waveform polarity
32-bit high polarity capture register
32-bit low polarity capture register
32-bit current value register
The capture result can be stored in a FIFO, and the depth of FIFO is 8. The data of
FIFO can be read by CPU or DMA
Support 32-bit power key capture mode
Support a input filter to remove glitch
Configurable to operate in continuous mode or one-shot mode
32-bit period counter
32-bit duty register
32-bit current value register
Configurable PWM output polarity in inactive state and duty period pulse polarity
Period and duty cycle are shadow buffered. Change takes effect when the end of the
effective period is reached or when the channel is disabled
Programmable center or left aligned outputs, and change takes effect when the end
of the effective period is reached or when the channel is disabled
8-bit repeat counter for one-shot operation. One-shot operation will produce N + 1
periods of the waveform, where N is the repeat counter value, and generates a
single interrupt at the end of operation
Continuous mode generates the waveform continuously, and does not generates any
interrupts
pre-scaled operation to clk_pwm and then further scaled
Available low-power mode to reduce power consumption when the channel is inactive.
PWM
APB Slave
Interface
oe_n[3:0]
pwm_int/pwm_int_pwr
pwm_int
Fig. 9-1PWM Block Diagram
The host processor gets access to PWM Register Block through the APB slave interface with
32-bit bus width, and asserts the active-high level interrupt. PWM only supports one
interrupt output, please refer to interrupt register to know the raw interrupt status when an
interrupt is asserted.
PWM Channel is the control logic of PWM module, and controls the operation of PWM module
according to the configured working mode.
clk_pwm
pwm_in
pwm_int
Start
pwm_int
Reset
Name Offset Size Description
Value
PWM Channel 3 Period
PWM_PWM3_PERIOD_HPR 0x0034 W 0x00000000 Register/High Polarity Capture
Register
PWM Channel 3 Duty
PWM_PWM3_DUTY_LPR 0x0038 W 0x00000000 Register/Low Polarity Capture
Register
PWM_PWM3_CTRL 0x003c W 0x00000000 PWM Channel 3 Control Register
PWM_INTSTS 0x0040 W 0x00000000 Interrupt Status Register
PWM_INT_EN 0x0044 W 0x00000000 Interrupt Enable Register
PWM Channel 3 FIFO Mode
PWM_FIFO_CTRL 0x0050 W 0x00000000
Control Register
PWM_FIFO_INTSTS 0x0054 W 0x00000010 FIFO Interrupts Status register
PWM_FIFO_TOUTTHR 0x0058 W 0x00000000 FIFO Timeout Threshold Register
PWM_FIFO 0x0060 W 0x00000000 FIFO Register
PWM_PWRMATCH_CTRL 0x0080 W 0x00000000 PWM power key match control
PWM power key match of low
PWM_PWRMATCH_LPRE 0x0084 W 0x238c22c4
preload
PWM power key match of high
PWM_PWRMATCH_HPRE 0x0088 W 0x11f81130
preload
PWM_PWRMATCH_LD 0x008c W 0x029401cc PWM power key match of low data
PWM_PWRMATCH_HD_ZE PWM power key match of high
0x0090 W 0x029401cc
RO data for zero
PWM_PWRMATCH_HD_ON PWM power key match of high
0x0094 W 0x06fe0636
E data for one
PWM_PWRMATCH_VALUE
0x0098 W 0x00000000 PWM power key match value 0
0
PWM_PWRMATCH_VALUE
0x009c W 0x00000000 PWM power key match value 1
1
PWM_PWRMATCH_VALUE
0x00a0 W 0x00000000 PWM power key match value 2
2
PWM_PWRMATCH_VALUE
0x00a4 W 0x00000000 PWM power key match value 3
3
PWM_PWRMATCH_VALUE
0x00a8 W 0x00000000 PWM power key match value 4
4
PWM_PWRMATCH_VALUE
0x00ac W 0x00000000 PWM power key match value 5
5
PWM_PWRMATCH_VALUE
0x00b0 W 0x00000000 PWM power key match value 6
6
PWM_PWRMATCH_VALUE
0x00b4 W 0x00000000 PWM power key match value 7
7
PWM_PWRMATCH_VALUE
0x00b8 W 0x00000000 PWM power key match value 8
8
Reset
Name Offset Size Description
Value
PWM_PWRMATCH_VALUE
0x00bc W 0x00000000 PWM power key match value 9
9
PWM_PWM0_PWRCAPTUR PWM Channel 0 power key
0x00c0 W 0x00000000
E_VALUE capture value
PWM_PWM1_PWRCAPTUR PWM channel 1 power key capture
0x00c4 W 0x00000000
E_VALUE value
PWM_PWM2_PWRCAPTUR PWM channel 2 power key capture
0x00c8 W 0x00000000
E_VALUE value
PWM_PWM3_PWRCAPTUR PWM channel 3 power key capture
0x00cc W 0x00000000
E_VALUE value
PWM_FILTER_CTRL 0x00d0 W 0x00000000 PWM input filter control
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
PWM_PWM0_PERIOD_HPR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
PERIOD_HPR
Output Waveform Period/Input Waveform High Polarity Cycle.
If PWM is operated at the continuous mode or one-shot mode,
this value defines the period of the output waveform. Note that, if
the PWM is operated at the center-aligned mode, the period
31:0 RW 0x00000000 should be an even one, and therefore only the bit [31:1] is taken
into account and bit [0] always considered as 0.
If PWM is operated at the capture mode, this value indicates the
effective high polarity cycles of input waveform. This value is
based on the PWM clock.
The value ranges from 0 to (2^32-1)
PWM_PWM0_DUTY_LPR
Address: Operational Base + offset (0x0008)
PWM_PWM0_CTRL
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
rpt
Repeat Counter.
31:24 RW 0x00 This field defines the repeated effective periods of output
waveform in one-shot mode. The value N means N+1 repeated
effective periods
scale
Scale Factor.
23:16 RW 0x00 This field defines the scale factor applied to prescaled clock. The
value N means the clock is divided by 2*N. If N is 0, it means
that the clock is divided by 512(2*256)
15 RO 0x0 reserved
prescale
Prescale Factor.
14:12 RW 0x0
This field defines the prescale factor applied to input clock. The
value N means that the input clock is divided by 2^N
11:10 RO 0x0 reserved
clk_sel
Clock Source Select.
9 RW 0x0 1'b0: non-scaled clock is selected as PWM clock source. It means
that the prescale clock is directly used as the PWM clock source
1'b1: scaled clock is selected as PWM clock source
force_clk_en
Force clock Enable
0: disabled, when PWM channel is inactive state, the clk_pwm to
8 RW 0x0 PWM Clock prescale module is blocked to reduce power
consumption.
1: enabled, the clk_pwm to PWM Clock prescale module is always
enable.
PWM_PWM1_CNT
Address: Operational Base + offset (0x0010)
PWM_PWM1_PERIOD_HPR
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
PERIOD_HPR
Output Waveform Period/Input Waveform High Polarity Cycle.
If PWM is operated at the continuous mode or one-shot mode,
this value defines the period of the output waveform. Note that, if
the PWM is operated at the center-aligned mode, the period
31:0 RW 0x00000000 should be an even one, and therefore only the bit [31:1] is taken
into account and bit [0] always considered as 0.
If PWM is operated at the capture mode, this value indicates the
effective high polarity cycles of input waveform.
This value is based on the PWM clock. The value ranges from 0 to
(2^32-1)
PWM_PWM1_DUTY_LPR
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
DUTY_LPR
Output Waveform Duty Cycle/Input Waveform Low Polarity Cycle.
If PWM is operated at the continuous mode or one-shot mode,
this value defines the duty cycle of the output waveform. The
PWM starts the output waveform with duty cycle. Note that, if the
PWM is operated at the center-aligned mode, the period should
31:0 RW 0x00000000
be an even one, and therefore only the [31:1] is taken into
account.
If PWM is operated at the capture mode, this value indicates the
effective low polarity cycles of input waveform.
This value is based on the PWM clock. The value ranges from 0 to
(2^32-1)
PWM_PWM1_CTRL
Address: Operational Base + offset (0x001c)
PWM_PWM2_CNT
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
CNT
Timer Counter.
31:0 RO 0x00000000 The 32-bit indicates current value of PWM Channel 2 counter. The
counter runs at the rate of PWM clock.
The value ranges from 0 to (2^32-1)
PWM_PWM2_PERIOD_HPR
Address: Operational Base + offset (0x0024)
PWM_PWM2_DUTY_LPR
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
DUTY_LPR
Output Waveform Duty Cycle/Input Waveform Low Polarity Cycle.
If PWM is operated at the continuous mode or one-shot mode,
this value defines the duty cycle of the output waveform. The
PWM starts the output waveform with duty cycle. Note that, if the
PWM is operated at the center-aligned mode, the period should
31:0 RW 0x00000000
be an even one, and therefore only the [31:1] is taken into
account.
If PWM is operated at the capture mode, this value indicates the
effective low polarity cycles of input waveform.
This value is based on the PWM clock. The value ranges from 0 to
(2^32-1)
PWM_PWM2_CTRL
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
rpt
Repeat Counter.
31:24 RW 0x00 This field defines the repeated effective periods of output
waveform in one-shot mode. The value N means N+1 repeated
effective periods
scale
Scale Factor.
23:16 RW 0x00 This fields defines the scale factor applied to prescaled clock. The
value N means the clock is divided by 2*N. If N is 0, it means
that the clock is divided by 512(2*256)
15 RO 0x0 reserved
PWM_PWM3_CNT
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
CNT
Timer Counter.
31:0 RW 0x00000000 The 32-bit indicates current value of PWM Channel 3 counter. The
counter runs at the rate of PWM clock.
The value ranges from 0 to (2^32-1)
PWM_PWM3_PERIOD_HPR
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
PERIOD_HPR
Output Waveform Period/Input Waveform High Polarity Cycle.
If PWM is operated at the continuous mode or one-shot mode,
this value defines the period of the output waveform. Note that, if
the PWM is operated at the center-aligned mode, the period
31:0 RW 0x00000000 should be an even one, and therefore only the bit [31:1] is taken
into account and bit [0] always considered as 0.
If PWM is operated at the capture mode, this value indicates the
effective high polarity cycles of input waveform.
This value is based on the PWM clock. The value ranges from 0 to
(2^32-1)
PWM_PWM3_DUTY_LPR
Address: Operational Base + offset (0x0038)
PWM_PWM3_CTRL
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
rpt
Repeat Counter.
31:24 RW 0x00 This field defines the repeated effective periods of output
waveform in one-shot mode. The value N means N+1 repeated
effective periods
scale
Scale Factor.
23:16 RW 0x00 This field defines the scale factor applied to prescaled clock. The
value N means the clock is divided by 2*N. If N is 0, it means
that the clock is divided by 512(2*256)
15 RO 0x0 reserved
prescale
Prescale Factor.
14:12 RW 0x0
This field defines the prescale factor applied to input clock. The
value N means that the input clock is divided by 2^N
11:10 RO 0x0 reserved
clk_sel
Clock Source Select.
9 RW 0x0 1'b0: non-scaled clock is selected as PWM clock source. It means
that the prescale clock is directly used as the PWM clock source
1'b1: scaled clock is selected as PWM clock source
force_clk_en
Force clock Enable
0: disabled, when PWM channel is inactive state, the clk_pwm to
8 RW 0x0 PWM Clock prescale module is blocked to reduce power
consumption.
1: enabled, the clk_pwm to PWM Clock prescale module is always
enable.
PWM_INTSTS
Address: Operational Base + offset (0x0040)
PWM_INT_EN
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
CH3_pwr_Int_en
Channel 3 Power Key Interrupt Enable.
7 RW 0x0
1'b0: Channel 3 power key Interrupt disabled
1'b1: Channel 3 power key Interrupt enabled
CH2_pwr_Int_en
Channel 2 Power Key Interrupt Enable.
6 RW 0x0
1'b0: Channel 2 power key Interrupt disabled
1'b1: Channel 2 power key Interrupt enabled
CH1_pwr_Int_en
Channel 1 Power Key Interrupt Enable.
5 RW 0x0
1'b0: Channel 1 power key Interrupt disabled
1'b1: Channel 1 power key Interrupt enabled
CH0_pwr_Int_en
Channel 0 Power Key Interrupt Enable.
4 RW 0x0
1'b0: Channel 0 power key Interrupt disabled
1'b1: Channel 0 power key Interrupt enabled
PWM_FIFO_CTRL
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
31:14 RO 0x0 reserved
dma_ch_sel
DMA channel select.
2'b00: Select PWM0
13:12 RW 0x0
2'b01: Select PWM1
2'b10: Select PWM2
2'b11: Select PWM3
11 RO 0x0 reserved
dma_ch_sel_en
DMA channel select enable.
1'b1: Enable, use dma_ch_sel to select the channel to FIFO mode
10 RW 0x0
and DMA mode.
1'b0: Disable, select the channel PWM3 to FIFO mode and DMA
mode
timeout_en
9 RW 0x0
Fifo timeout enable
dma_mode_en
DMA mode enable.
8 RW 0x0
1'b1: enable
1'b0: disable
7 RO 0x0 reserved
almost_full_watermark
6:4 RW 0x0
Almost full Watermark level
PWM_FIFO_INTSTS
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
fifo_empty_status
4 RO 0x1 FIFO empty Status.
This bit indicates the FIFO is empty
W1 timieout_intsts
3 0x0
C Timeout interrupt
fifo_watermark_full_intsts
W1
2 0x0 FIFO Watermark Full Interrupt Status.
C
This bit indicates the FIFO is Watermark Full
fifo_overflow_intsts
W1
1 0x0 FIFO Overflow Interrupt Status.
C
This bit indicates the FIFO is overflow
fifo_full_intsts
W1
0 0x0 FIFO Full Interrupt Status.
C
This bit indicates the FIFO is full
PWM_FIFO_TOUTTHR
Address: Operational Base + offset (0x0058)
Bit Attr Reset Value Description
31:20 RO 0x0 reserved
timeout_threshold
19:0 RW 0x00000
FIFO Timeout value(unit pwm clock)
PWM_FIFO
Address: Operational Base + offset (0x0060)
PWM_PWRMATCH_CTRL
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
CH3_pwrkey_int_ctrl
15 RW 0x0 1'b0: Assert interrupt after key capture with power key match
1'b1: Assert interrupt after key capture without power key match
CH2_pwrkey_int_ctrl
14 RW 0x0 1'b0: Assert interrupt after key capture with power key match
1'b1: Assert interrupt after key capture without power key match
CH1_pwrkey_int_ctrl
13 RW 0x0 1'b0: Assert interrupt after key capture with power key match
1'b1: Assert interrupt after key capture without power key match
CH0_pwrkey_int_ctrl
12 RW 0x0 1'b0: Assert interrupt after key capture with power key match
1'b1: Assert interrupt after key capture without power key match
CH3_pwrkey_capture_ctrl
11 RW 0x0 1'b0: Capture the value after interrupt
1'b1: Capture the value directly
CH2_pwrkey_capture_ctrl
10 RW 0x0 1'b0: Capture the value after interrupt
1'b1: Capture the value directly
CH1_pwrkey_capture_ctrl
9 RW 0x0 1'b0: Capture the value after interrupt
1'b1: Capture the value directly
CH0_pwrkey_capture_ctrl
8 RW 0x0 1'b0: Capture the value after interrupt
1'b1: Capture the value directly
CH3_pwrkey_polarity
7 RW 0x0 1'b0: pwm in polarity is positive
1'b1: pwm in polarity is negative
CH2_pwrkey_polarity
6 RW 0x0 1'b0: pwm in polarity is positive
1'b1: pwm in polarity is negative
PWM_PWRMATCH_LPRE
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
cnt_max
31:16 RW 0x238c
The maximum counter value
cnt_min
15:0 RW 0x22c4
The minimum counter value
PWM_PWRMATCH_HPRE
Address: Operational Base + offset (0x0088)
Bit Attr Reset Value Description
cnt_max
31:16 RW 0x11f8
The maximum counter value
cnt_min
15:0 RW 0x1130
The minimum counter value
PWM_PWRMATCH_LD
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
cnt_max
31:16 RW 0x0294
The maximum counter value
cnt_min
15:0 RW 0x01cc
The minimum counter value
PWM_PWRMATCH_HD_ZERO
Address: Operational Base + offset (0x0090)
Bit Attr Reset Value Description
cnt_max
31:16 RW 0x0294
The maximum counter value
cnt_min
15:0 RW 0x01cc
The minimum counter value
PWM_PWRMATCH_HD_ONE
Address: Operational Base + offset (0x0094)
Bit Attr Reset Value Description
cnt_max
31:16 RW 0x06fe
The maximum counter value
cnt_min
15:0 RW 0x0636
The minimum counter value
PWM_PWRMATCH_VALUE0
Address: Operational Base + offset (0x0098)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE1
Address: Operational Base + offset (0x009c)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE2
Address: Operational Base + offset (0x00a0)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE3
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE4
Address: Operational Base + offset (0x00a8)
PWM_PWRMATCH_VALUE5
Address: Operational Base + offset (0x00ac)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE6
Address: Operational Base + offset (0x00b0)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE7
Address: Operational Base + offset (0x00b4)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE8
Address: Operational Base + offset (0x00b8)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWRMATCH_VALUE9
Address: Operational Base + offset (0x00bc)
Bit Attr Reset Value Description
pwrkey_match_value
31:0 RW 0x00000000
Power key match value
PWM_PWM0_PWRCAPTURE_VALUE
Address: Operational Base + offset (0x00c0)
Bit Attr Reset Value Description
pwrkey_capture_value
31:0 RO 0x00000000
Power key capture value
PWM_PWM1_PWRCAPTURE_VALUE
Address: Operational Base + offset (0x00c4)
PWM_PWM2_PWRCAPTURE_VALUE
Address: Operational Base + offset (0x00c8)
Bit Attr Reset Value Description
pwrkey_capture_value
31:0 RO 0x00000000
Power key capture value
PWM_PWM3_PWRCAPTURE_VALUE
Address: Operational Base + offset (0x00cc)
Bit Attr Reset Value Description
pwrkey_capture_value
31:0 RO 0x00000000
Power key capture value
PWM_FILTER_CTRL
Address: Operational Base + offset (0x00d0)
Bit Attr Reset Value Description
31:13 RO 0x0 reserved
filter_number
12:4 RW 0x000
Filter window number
CH3_input_filter_enable
3 RW 0x0 1'b0: Disabled
1'b1: Enabled
CH2_input_filter_enable
2 RW 0x0 1'b0: Disabled
1'b1: Enabled
CH1_input_filter_enable
1 RW 0x0 1'b0: Disabled
1'b1: Enabled
CH0_input_filter_enable
0 RW 0x0 1'b0: Disabled
1'b1: Enabled
5. Set the PWM_PWRMATCH_VALUE0~9 registers for the 10 power key match value.
6.Set max_cnt and min_cnt of follow register:
PWM_PWRMATCH_LPRE,PWM_PWRMATCH_HPRE, PWM_PWRMATCH_LD,
PWM_PWRMATCH_HD_ZERO, PWM_PWRMATCH_HD_ONE. It doesn’t need to set these
registers when the default value can meet the requirement.
7.Set PWM_PWRMATCH_CTRL.CHx_pwrkey_polarity for the polarity of power key signal, the
default value is 0. Enable the PWM_PWRMATCH_CTRL.CHx_pwrkey_enable.
8. Set PWM_FILTER_CTRL.filter_number, then Enable the
PWM_FILTER_CTRL.CHx_input_filter_enable(Optional).
9. Enable the channel by writing ‘1’ to PWM_PWMx_CTRL.pwm_en bit to start the channel.
10. When an interrupt is asserted, refer to INTSTS register to know the raw interrupt status,
and refer to PWM_PWMx_PWRCAPTURE_VALUE to know the power key capture value.
11. Write ‘0’ to PWM_PWMx_CTRL.pwm_en to disable the channel.
9.6.4 PWM One-shot Mode/ContinuousStandard Usage Flow
1. Set PWM_PWMx_CTRL.pwm_en to ‘0’ to disable the PWM channel.
2. Choose the prescale factor and the scale factor for pclk by programming
PWM_PWMx_CTRL.prescale and PWM_PWMx_CTRL.scale, and select the clock needed by
setting PWM_PWMx_CTRL.clk_sel.
3. Choose the output mode by setting PWM_PWMx_CTRL.output_mode, and set the duty
polarity and inactive polarity by programming PWM_PWMx_CTRL.duty_pol and
PWM_PWMx_CTRL.inactive_pol.
4. Set the PWM_PWMx_CTRL.rpt if the channel is desired to work in the one-shot mode.
5. Configure the channel to work in the one-shot mode or the continuous mode.
6. Enable the PWM_INT_EN.chx_int_en to enable the interrupt generation if if the channel is
desired to work in the one-shot mode.
7. If the channel is working in the one-shot mode, an interrupt is asserted after the end of
operation, and the PWM_PWMx_CTRL.pwm_en is automatically cleared. Whatever mode the
channel is working in, write ‘0’ to PWM_PWMx_CTRL.pwm_en bit to disable the PWM
channel.
9.6.5 Low-power UsageFlow
The default value of PWM_PWMx_CTRL.force_clk_en is ‘0’ which make the channel enter the
low-power mode. In low-power mode, When the PWM channel is inactive, the clk_pwm to
the clock prescale module is gated in order to reduce the power consumption. User can set
PWM_PWMx_CTRL.force_clk_en to ‘1’ which will make the channel quit the low-power mode.
After the setting, the clk_pwm to the clock prescale module is always enable.
9.6.6 Other notes
When the channel is active to produce waveforms, it is free to program the
PWM_PWMx_PERIOD_HPC and PWM_PWMx_DUTY_LPC register. User can use
PWM_PWMx_CTRL.conlock to take period and duty effect at the same time. The usage flow
is as follow:
1. Set PWM_PWMx_CTRL.conlock to ‘1’.
2. Set PWM_PWMx_PERIOD_HPC and PWM_PWMx_DUTY_LPC.
3. Set PWM_PWMx_CTRL.conlock to ‘0’, the other bits in PWM_PWMx_CTRL should be
appropriate.
After above configuration, the change will not take effect immediately until the current
period ends.
An active channel can be changed to another operation mode without disable the PWM
channel. However, during the transition of the operation mode there may be some irregular
output waveforms. So does changing the clock division factor when the channel is active.
10.1 Overview
There is a generic interrupt controller(GIC400) in PX30which generates physical interrupts to
Cortex-A35. It has two interfaces, the distributor interface connects to the interrupt source,
and the CPU interface connects to Cortex-A35. The details of CPU interface connectivity are
shown in the following table.
Table 10-1CPU interface connectivity
CPU Interface Number Connectivity
CPU interface 0 CPU0
CPU interface 1 CPU1
CPU interface 2 CPU2
CPU interface 3 CPU3
spi[127:0]
nIRQ
cfgdisable
nFIQ
Distributor Cpu interface
interface
AXI
interface AXI
interface
gclk
gresetn
11.1 Overview
This device supports 1 Direct Memory Access(DMA) Controllers.It (DMAC) supports transfers
between memory and memory, peripheral and memory.DMACis under Non-secure state after
reset, and the secure state can be changed by configurable SGRF module.
DMACsupports the following features:
Supports Trustzone technology
Supports 25 peripheral request
Up to 64bits data size
8 channel at the same time
Up to burst 16
16 interrupts output and 1 abort output
Supports 128 MFIFO depth
Following table shows the DMACrequest mapping scheme.
Table 11-1DMAC Request Mapping Table
Req number Source Polarity
0 UART0_TX High level
1 UART0_RX High level
2 UART1_TX High level
3 UART1_RX High level
4 UART2_TX High level
5 UART2_RX High level
6 UART3_TX High level
7 UART3_RX High level
8 UART4_TX High level
9 UART4_RX High level
10 UART5_TX High level
11 UART5_RX High level
12 SPI0_TX High level
13 SPI0_RX High level
14 SPI1_TX High level
15 SPI1_RX High level
16 I2S0_8CH_TX High level
17 I2S0_8CH_RX High level
18 I2S1_2CH_TX High level
19 I2S1_2CH_RX High level
20 I2S2_8CH_TX High level
21 I2S2_8CH_RX High level
22 PWM0_TX High level
23 PWM1_TX High level
24 PDM High level
DMAC supportincrementing-address burst and fixed-address burst. But in the case of access
SPI and UART at byte or halfword size, DMAC only support fixed-address burst and the
address must be aligned to word.
10
After the DMAC exits from reset, it sets all DMA channel threads to the stopped state, and
DMA manager thread moves to the Stopped state.
Reset
Name Offset Size Description
Value
DMA_FTR3 0x004c W 0x00000000 Fault Type DMA Channel Register
DMA_FTR4 0x0050 W 0x00000000 Fault Type DMA Channel Register
DMA_FTR5 0x0054 W 0x00000000 Fault Type DMA Channel Register
DMA_CSR0 0x0100 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC0 0x0104 W 0x00000000
Registers
DMA_CSR1 0x0108 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC1 0x010c W 0x00000000
Registers
DMA_CSR2 0x0110 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC2 0x0114 W 0x00000000
Registers
DMA_CSR3 0x0118 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC3 0x011c W 0x00000000
Registers
DMA_CSR4 0x0120 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC4 0x0124 W 0x00000000
Registers
DMA_CSR5 0x0128 W 0x00000000 Channel Status Registers
Channel Program Counter
DMA_CPC5 0x012c W 0x00000000
Registers
DMA_SAR0 0x0400 W 0x00000000 Source Address Registers
DMA_DAR0 0x0404 W 0x00000000 DestinationAddress Registers
DMA_CCR0 0x0408 W 0x00000000 Channel Control Registers
DMA_LC0_0 0x040c W 0x00000000 Loop Counter 0 Registers
DMA_LC1_0 0x0410 W 0x00000000 Loop Counter 1 Registers
DMA_SAR1 0x0420 W 0x00000000 Source Address Registers
DMA_DAR1 0x0424 W 0x00000000 DestinationAddress Registers
DMA_CCR1 0x0428 W 0x00000000 Channel Control Registers
DMA_LC0_1 0x042c W 0x00000000 Loop Counter 0 Registers
DMA_LC1_1 0x0430 W 0x00000000 Loop Counter 1 Registers
DMA_SAR2 0x0440 W 0x00000000 Source Address Registers
DMA_DAR2 0x0444 W 0x00000000 DestinationAddress Registers
DMA_CCR2 0x0448 W 0x00000000 Channel Control Registers
DMA_LC0_2 0x044c W 0x00000000 Loop Counter 0 Registers
DMA_LC1_2 0x0450 W 0x00000000 Loop Counter 1 Registers
DMA_SAR3 0x0460 W 0x00000000 Source Address Registers
DMA_DAR3 0x0464 W 0x00000000 DestinationAddress Registers
DMA_CCR3 0x0468 W 0x00000000 Channel Control Registers
DMA_LC0_3 0x046c W 0x00000000 Loop Counter 0 Registers
DMA_LC1_3 0x0470 W 0x00000000 Loop Counter 1 Registers
DMA_SAR4 0x0480 W 0x00000000 Source Address Registers
DMA_DAR4 0x0484 W 0x00000000 DestinationAddress Registers
Reset
Name Offset Size Description
Value
DMA_CCR4 0x0488 W 0x00000000 Channel Control Registers
DMA_LC0_4 0x048c W 0x00000000 Loop Counter 0 Registers
DMA_LC1_4 0x0490 W 0x00000000 Loop Counter 1 Registers
DMA_SAR5 0x04a0 W 0x00000000 Source Address Registers
DMA_DAR5 0x04a4 W 0x00000000 DestinationAddress Registers
DMA_CCR5 0x04a8 W 0x00000000 Channel Control Registers
DMA_LC0_5 0x04ac W 0x00000000 Loop Counter 0 Registers
DMA_LC1_5 0x04b0 W 0x00000000 Register0000 Description
DMA_DBGSTATUS 0x0d00 W 0x00000000 Debug Status Register
DMA_DBGCMD 0x0d04 W 0x00000000 Debug Command Register
DMA_DBGINST0 0x0d08 W 0x00000000 Debug Instruction-0 Register
DMA_DBGINST1 0x0d0c W 0x00000000 Debug Instruction-1 Register
DMA_CR0 0x0e00 W 0x00047051 Configuration Register 0
DMA_CR1 0x0e04 W 0x00000057 Configuration Register 1
DMA_CR2 0x0e08 W 0x00000000 Configuration Register 2
DMA_CR3 0x0e0c W 0x00000000 Configuration Register 3
DMA_CR4 0x0e10 W 0x00000006 Configuration Register 4
DMA_CRDn 0x0e14 W 0x02094733 Configuration Register n
DMA_WD 0x0e80 W 0x00000000 DMA Watchdog Register
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
DMA_DPC
Address: Operational Base + offset (0x0004)
DMA_INTEN
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
Bit [N] = 0 If the DMAC executes DMASEV for the event-
interrupt resource N then the DMAC signals event N to all of the
threads. Set bit [N] to 0 if your system design does not use
irq[N] to
signal an interrupt request.
31:0 RW 0x00000000
Bit [N] = 1 If the DMAC executes DMASEV for the event-
interrupt resource N then the DMAC sets irq[N] HIGH. Set bit [N]
to 1 if your system designer requires irq[N] to signal an
interrupt
request
DMA_EVENT_RIS
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
Bit [N] = 0 Event N is inactive or irq[N] is LOW.
31:0 RO 0x00000000
Bit [N] = 1 Event N is active or irq[N] is HIGH
DMA_INTMIS
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
Bit [N] = 0 Interrupt N is inactive and therefore irq[N] is LOW.
31:0 RO 0x00000000
Bit [N] = 1 Interrupt N is active and therefore irq[N] is HIGH
DMA_INTCLR
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
Bit [N] = 0 The status of irq[N] does not change.
Bit [N] = 1 The DMAC sets irq[N] LOW if the INTEN Register
31:0 WO 0x00000000
programs the DMAC to signal an interrupt.
Otherwise, the status of irq[N] does not change
DMA_FSRD
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
0 = the DMA manager thread is not in the Faulting state
31:0 RO 0x00000000
1 = the DMA manager thread is in the Faulting state
DMA_FSRC
DMA_FTRD
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
31 RO 0x0 reserved
memory or from the debug interface:
0 = instruction that generated an abort was read from system
30 RO 0x0 memory
1 = instruction that generated an abort was read from the debug
interface
29:17 RO 0x0 reserved
performs an instruction fetch:
16 RO 0x0 0 = OKAY response
1 = EXOKAY, SLVERR, or DECERR response
15:6 RO 0x0 reserved
0 = DMA manager has appropriate security to execute DMAWFE
or DMASEV
1 = a DMA manager thread in the Non-secure state attempted to
5 RO 0x0
execute either:
o DMAWFE to wait for a secure event
o DMASEV to create a secure event or secure interrupt
0 = DMA manager has appropriate security to execute DMAGO
1 = a DMA manager thread in the Non-secure state attempted to
4 RO 0x0
execute DMAGO to create a DMA channel
operating in the Secure state
3:2 RO 0x0 reserved
the configuration of the DMAC:
1 RO 0x0 0 = valid operand
1 = invalid operand
0 = defined instruction
0 RW 0x0
1 = undefined instruction
DMA_FTR0
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
DMA_FTR1
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
memory or from the debug interface:
0 = instruction that generated an abort was read from system
memory
30 RO 0x0 1 = instruction that generated an abort was read from the debug
interface.
This fault is an imprecise abort but the bit is only valid when a
precise abort occurs
29:19 RO 0x0 reserved
thread performs a data read:
0 = OKAY response
18 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
DMA_FTR2
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
memory or from the debug interface:
0 = instruction that generated an abort was read from system
memory
30 RO 0x0 1 = instruction that generated an abort was read from the debug
interface.
This fault is an imprecise abort but the bit is only valid when a
precise abort occurs
29:19 RO 0x0 reserved
thread performs a data read:
0 = OKAY response
18 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
thread performs a data write:
0 = OKAY response
17 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
thread performs an instruction fetch:
0 = OKAY response
16 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is a precise abort
15:14 RO 0x0 reserved
0 = MFIFO contains all the data to enable the DMAST to complete
1 = previous DMALDs have not put enough data in the MFIFO to
13 RO 0x0
enable the DMAST to complete.
This fault is a precise abort
DMA_FTR3
Address: Operational Base + offset (0x004c)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
DMA_FTR4
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
memory or from the debug interface:
0 = instruction that generated an abort was read from system
memory
30 RO 0x0 1 = instruction that generated an abort was read from the debug
interface.
This fault is an imprecise abort but the bit is only valid when a
precise abort occurs
29:19 RO 0x0 reserved
thread performs a data read:
0 = OKAY response
18 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
DMA_FTR5
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
0 = DMA channel has adequate resources
31 RO 0x0 1 = DMA channel has locked-up because of insufficient resources.
This fault is an imprecise abort
memory or from the debug interface:
0 = instruction that generated an abort was read from system
memory
30 RO 0x0 1 = instruction that generated an abort was read from the debug
interface.
This fault is an imprecise abort but the bit is only valid when a
precise abort occurs
29:19 RO 0x0 reserved
thread performs a data read:
0 = OKAY response
18 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
thread performs a data write:
0 = OKAY response
17 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is an imprecise abort
thread performs an instruction fetch:
0 = OKAY response
16 RO 0x0
1 = EXOKAY, SLVERR, or DECERR response.
This fault is a precise abort
15:14 RO 0x0 reserved
0 = MFIFO contains all the data to enable the DMAST to complete
1 = previous DMALDs have not put enough data in the MFIFO to
13 RO 0x0
enable the DMAST to complete.
This fault is a precise abort
DMALD 0 = MFIFO contains sufficient space
1 = MFIFO is too small to hold the data that DMALD requires.
DMAST 0 = MFIFO contains sufficient data
12 RO 0x0
1 = MFIFO is too small to store the data to enable DMAST to
complete.
This fault is an imprecise abort
DMA_CSR0
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC0
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 0 thread
DMA_CSR1
Address: Operational Base + offset (0x0108)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC1
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 1 thread
DMA_CSR2
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC2
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 2 thread
DMA_CSR3
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC3
Address: Operational Base + offset (0x011c)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 3 thread
DMA_CSR4
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC4
Address: Operational Base + offset (0x0124)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 4 thread
DMA_CSR5
Address: Operational Base + offset (0x0128)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
0 = DMA channel operates in the Secure state
21 RO 0x0
1 = DMA channel operates in the Non-secure state
20:16 RO 0x0 reserved
0 = DMAWFP executed with the periph operand not set
15 RO 0x0
1 = DMAWFP executed with the periph operand set
0 = DMAWFP executed with the single operand set
14 RO 0x0
1 = DMAWFP executed with the burst operand set
13:9 RO 0x0 reserved
DMA_CPC5
Address: Operational Base + offset (0x012c)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Program counter for the DMA channel 5 thread
DMA_SAR0
Address: Operational Base + offset (0x0400)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the source data for DMA channel 0
DMA_DAR0
Address: Operational Base + offset (0x0404)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 0
DMA_CCR0
Address: Operational Base + offset (0x0408)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
DMA_LC0_0
Address: Operational Base + offset (0x040c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_0
Address: Operational Base + offset (0x0410)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_SAR1
Address: Operational Base + offset (0x0420)
DMA_DAR1
Address: Operational Base + offset (0x0424)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 1
DMA_CCR1
Address: Operational Base + offset (0x0428)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
Bit [27] 0 = AWCACHE[3] is LOW
1 = AWCACHE[3] is HIGH.
Bit [26] 0 = AWCACHE[1] is LOW
27:25 RO 0x0
1 = AWCACHE[1] is HIGH.
Bit [25] 0 = AWCACHE[0] is LOW
1 = AWCACHE[0] is HIGH
Bit [24] 0 = AWPROT[2] is LOW
1 = AWPROT[2] is HIGH.
Bit [23] 0 = AWPROT[1] is LOW
24:22 RO 0x0
1 = AWPROT[1] is HIGH.
Bit [22] 0 = AWPROT[0] is LOW
1 = AWPROT[0] is HIGH
the destination data:
b0000 = 1 data transfer
b0001 = 2 data transfers
b0010 = 3 data transfers
.
21:18 RO 0x0 .
.
b1111 = 16 data transfers.
The total number of bytes that the DMAC writes out of the MFIFO
when it executes a DMAST instruction
is the product of dst_burst_len and dst_burst_size
b000 = writes 1 byte per beat
b001 = writes 2 bytes per beat
b010 = writes 4 bytes per beat
b011 = writes 8 bytes per beat
17:15 RO 0x0 b100 = writes 16 bytes per beat
b101-b111 = reserved.
The total number of bytes that the DMAC writes out of the MFIFO
when it executes a DMAST instruction
is the product of dst_burst_len and dst_burst_size
DMA_LC0_1
Address: Operational Base + offset (0x042c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_1
Address: Operational Base + offset (0x0430)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_SAR2
Address: Operational Base + offset (0x0440)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the source data for DMA channel 2
DMA_DAR2
Address: Operational Base + offset (0x0444)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 2
DMA_CCR2
Address: Operational Base + offset (0x0448)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
Bit [27] 0 = AWCACHE[3] is LOW
1 = AWCACHE[3] is HIGH.
Bit [26] 0 = AWCACHE[1] is LOW
27:25 RO 0x0
1 = AWCACHE[1] is HIGH.
Bit [25] 0 = AWCACHE[0] is LOW
1 = AWCACHE[0] is HIGH
Bit [24] 0 = AWPROT[2] is LOW
1 = AWPROT[2] is HIGH.
Bit [23] 0 = AWPROT[1] is LOW
24:22 RO 0x0
1 = AWPROT[1] is HIGH.
Bit [22] 0 = AWPROT[0] is LOW
1 = AWPROT[0] is HIGH
the destination data:
b0000 = 1 data transfer
b0001 = 2 data transfers
b0010 = 3 data transfers
.
21:18 RO 0x0 .
.
b1111 = 16 data transfers.
The total number of bytes that the DMAC writes out of the MFIFO
when it executes a DMAST instruction
is the product of dst_burst_len and dst_burst_size
DMA_LC0_2
Address: Operational Base + offset (0x044c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_2
Address: Operational Base + offset (0x0450)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_SAR3
Address: Operational Base + offset (0x0460)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the source data for DMA channel 3
DMA_DAR3
Address: Operational Base + offset (0x0464)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 3
DMA_CCR3
Address: Operational Base + offset (0x0468)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
Bit [27] 0 = AWCACHE[3] is LOW
1 = AWCACHE[3] is HIGH.
Bit [26] 0 = AWCACHE[1] is LOW
27:25 RO 0x0
1 = AWCACHE[1] is HIGH.
Bit [25] 0 = AWCACHE[0] is LOW
1 = AWCACHE[0] is HIGH
Bit [24] 0 = AWPROT[2] is LOW
1 = AWPROT[2] is HIGH.
Bit [23] 0 = AWPROT[1] is LOW
24:22 RO 0x0
1 = AWPROT[1] is HIGH.
Bit [22] 0 = AWPROT[0] is LOW
1 = AWPROT[0] is HIGH
DMA_LC0_3
Address: Operational Base + offset (0x046c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_3
Address: Operational Base + offset (0x0470)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_SAR4
Address: Operational Base + offset (0x0480)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the source data for DMA channel 4
DMA_DAR4
Address: Operational Base + offset (0x0484)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 4
DMA_CCR4
Address: Operational Base + offset (0x0488)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
DMA_LC0_4
Address: Operational Base + offset (0x048c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_4
Address: Operational Base + offset (0x0490)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_SAR5
Address: Operational Base + offset (0x04a0)
DMA_DAR5
Address: Operational Base + offset (0x04a4)
Bit Attr Reset Value Description
31:0 RO 0x00000000 Address of the Destinationdata for DMA channel 5
DMA_CCR5
Address: Operational Base + offset (0x04a8)
Bit Attr Reset Value Description
31:28 RO 0x0 reserved
Bit [27] 0 = AWCACHE[3] is LOW
1 = AWCACHE[3] is HIGH.
Bit [26] 0 = AWCACHE[1] is LOW
27:25 RO 0x0
1 = AWCACHE[1] is HIGH.
Bit [25] 0 = AWCACHE[0] is LOW
1 = AWCACHE[0] is HIGH
Bit [24] 0 = AWPROT[2] is LOW
1 = AWPROT[2] is HIGH.
Bit [23] 0 = AWPROT[1] is LOW
24:22 RO 0x0
1 = AWPROT[1] is HIGH.
Bit [22] 0 = AWPROT[0] is LOW
1 = AWPROT[0] is HIGH
the destination data:
b0000 = 1 data transfer
b0001 = 2 data transfers
b0010 = 3 data transfers
.
21:18 RO 0x0 .
.
b1111 = 16 data transfers.
The total number of bytes that the DMAC writes out of the MFIFO
when it executes a DMAST instruction
is the product of dst_burst_len and dst_burst_size
b000 = writes 1 byte per beat
b001 = writes 2 bytes per beat
b010 = writes 4 bytes per beat
b011 = writes 8 bytes per beat
17:15 RO 0x0 b100 = writes 16 bytes per beat
b101-b111 = reserved.
The total number of bytes that the DMAC writes out of the MFIFO
when it executes a DMAST instruction
is the product of dst_burst_len and dst_burst_size
DMA_LC0_5
Address: Operational Base + offset (0x04ac)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 0 iterations
DMA_LC1_5
Address: Operational Base + offset (0x04b0)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
7:0 RO 0x00 Loop counter 1 iterations
DMA_DBGSTATUS
Address: Operational Base + offset (0x0d00)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
b00 = execute the instruction that the DBGINST [1:0] Registers
contain
1:0 RO 0x0 b01 = reserved
b10 = reserved
b11 = reserved
DMA_DBGCMD
Address: Operational Base + offset (0x0d04)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
b00 = execute the instruction that the DBGINST [1:0] Registers
contain
1:0 WO 0x0 b01 = reserved
b10 = reserved
b11 = reserved
DMA_DBGINST0
Address: Operational Base + offset (0x0d08)
Bit Attr Reset Value Description
31:24 WO 0x00 Instruction byte 1
23:16 WO 0x00 Instruction byte 0
15:11 RO 0x0 reserved
b000 = DMA channel 0
b001 = DMA channel 1
10:8 WO 0x0 b010 = DMA channel 2
…
b111 = DMA channel 7
7:1 RO 0x0 reserved
0 = DMA manager thread
0 WO 0x0
1 = DMA channel
DMA_DBGINST1
Address: Operational Base + offset (0x0d0c)
DMA_CR0
Address: Operational Base + offset (0x0e00)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
b00000 = 1 interrupt output, irq[0]
b00001 = 2 interrupt outputs, irq[1:0]
b00010 = 3 interrupt outputs, irq[2:0]
21:17 RO 0x02 .
.
.
b11111 = 32 interrupt outputs, irq[31:0]
b00000 = 1 peripheral request interface
b00001 = 2 peripheral request interfaces
b00010 = 3 peripheral request interfaces
16:12 RO 0x07 .
.
.
b11111 = 32 peripheral request interfaces
11:7 RO 0x0 reserved
b000 = 1 DMA channel
b001 = 2 DMA channels
b010 = 3 DMA channels
6:4 RO 0x5 .
.
.
b111 = 8 DMA channels
3 RO 0x0 reserved
0 = boot_manager_ns was LOW
2 RO 0x0
1 = boot_manager_ns was HIGH
0 = boot_from_pc was LOW
1 RO 0x0
1 = boot_from_pc was HIGH
0 = the DMAC does not provide a peripheral request interface
0 RO 0x1 1 = the DMAC provides the number of peripheral request
interfaces that the num_periph_req field specifies
DMA_CR1
Address: Operational Base + offset (0x0e04)
DMA_CR2
Address: Operational Base + offset (0x0e08)
Bit Attr Reset Value Description
Provides the value of boot_addr[31:0] when the DMAC exited
31:0 RO 0x00000000
from reset
DMA_CR3
Address: Operational Base + offset (0x0e0c)
Bit Attr Reset Value Description
Bit [N] = 0 Assigns event<N> or irq[N] to the Secure state.
31:0 RO 0x00000000
Bit [N] = 1 Assigns event<N> or irq[N] to the Non-secure state
DMA_CR4
Address: Operational Base + offset (0x0e10)
Bit Attr Reset Value Description
Bit [N] = 0 Assigns peripheral request interface N to the Secure
state.
31:0 RO 0x00000006
Bit [N] = 1 Assigns peripheral request interface N to the Non-
secure state
DMA_CRDn
Address: Operational Base + offset (0x0e14)
Bit Attr Reset Value Description
31:30 RO 0x0 reserved
b000000000 = 1 line
b000000001 = 2 lines
29:20 RO 0x020
…
b111111111 = 1024 lines
DMA_WD
Address: Operational Base + offset (0x0e80)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
0 = the DMAC aborts all of the contributing DMA channels and
0 RW 0x0 sets irq_abort HIGH
1 = the DMAC sets irq_abort HIGH
clk
dma_req
dma_ack
boot_manager_ns
When the DMAC exits from reset, this signal controls the security state of the DMA manager
thread:
0 = assigns DMA manager to the Secure state
1 = assigns DMA manager to the Non-secure state.
boot_irq_ns
Controls the security state of an event-interrupt resource, when the DMAC exits from reset:
boot_irq_ns[x] is LOW
The DMAC assigns event<x> or irq[x] to the Secure state.
boot_irq_ns[x] is HIGH
The DMAC assigns event<x> or irq[x] to the Non-secure state.
boot_periph_ns
Controls the security state of a peripheral request interface, when the DMAC exits from
reset:
boot_periph_ns[x] is LOW
The DMAC assigns peripheral request interface x to the Secure state.
boot_periph_ns[x] is HIGH
The DMAC assigns peripheral request interface x to the Non-secure state.
grf_drtype_<x>
The DMAC sets the state of the request_type flag:
grf_drtype_<x>[1:0]=b00: request_type<x> = Single.
grf_drtype_<x>[1:0]=b01: request_type<x> = Burst.
The DMAC does not start a DMA channel thread and instead it:
1. Executes a NOP.
2. Sets the FSRD Register, see Fault Status DMA Manager
3. Sets the dmago_err bit in the FTRD Register, see Fault Type DMA Manager Register.
4. Moves the DMA manager to the Faulting state.
ns = 1
The DMAC starts a DMA channel thread in the Non-secure state and programs the CNS bit to
be non-secure.
DMAWFE
The DMAC uses the status of the corresponding INS bit, in the CR3 Register, to control if it
waits for the event. If:
INS = 0
The event is in the Secure state. The DMAC:
1. Executes a NOP.
2. Sets the FSRD Register, see Fault Status DMA Manager Register.
3. Sets the mgr_evnt_err bit in the FTRD Register, see Fault Type DMA Manager Register.
4. Moves the DMA manager to the Faulting state.
INS = 1
The event is in the Non-secure state. The DMAC halts execution of the thread and waits for
the event to occur.
DMASEV
The DMAC uses the status of the corresponding INS bit, in the CR3Register, to control if it
creates the event-interrupt. If:
INS = 0
The event-interrupt resource is in the secure state. The DMAC:
1. Executes a NOP.
2. Sets the FSRD Register, see Fault Status DMA Manager Register.
3. Sets the mgr_evnt_err bit in the FTRD Register, see Fault Type DMA Manager Register.
4. Moves the DMA manager to the Faulting state.
INS = 1
The event-interrupt resource is in the Non-secure state. The DMAC creates the event-
interrupt.
DMA channel thread is in the secure state
When the CNS bit is 0, the DMA channel thread is programmed to operate in the Secure
state and it only performs secure instruction fetches.
When a DMA channel thread in the secure state processes the following instructions:
DMAWFE
The DMAC halts execution of the thread until the event occurs. When the event occurs, the
DMAC continues execution of the thread, irrespective of the security state of the
corresponding INS bit, in the CR3 Register.
DMASEV
The DMAC creates the event-interrupt, irrespective of the security state of the corresponding
INS bit, in the CR3 Register.
DMAWFP
The DMAC halts execution of the thread until the peripheral signals a DMA request. When
this occurs, the DMAC continues execution of the thread, irrespective of the security state of
the corresponding PNS bit, in the CR4 Register.
DMALDP, DMASTP
The DMAC sends a message to the peripheral to communicate that data transfer
is complete, irrespective of the security state of the corresponding PNS bit, in the CR4
Register.
DMAFLUSHP
The DMAC clears the state of the peripheral and sends a message to the peripheral to
resend its level status, irrespective of the security state of the corresponding PNS bit, in the
CR4 Register.
When a DMA channel thread is in the Secure state, it enables the DMAC to perform secure
and non-secure AXI accesses
The DMAC uses the status of the corresponding PNS bit, in the CR4 Register, to control if it
sends a flush request to the peripheral. If:
PNS = 0
The peripheral is in the secure state. The DMAC:
1. Executes a NOP.
2. Sets the appropriate bit in the FSRC Register that corresponds to the DMA channel
number. See Fault Status DMA Channel Register.
3. Sets the ch_periph_err bit in the FTRn Register, see Fault Type DMA Channel Registers.
4. Moves the DMA channel to the Faulting completing state.
PNS = 1
The peripheral is in the Non-secure state. The DMAC clears the state of the peripheral and
sends a message to the peripheral to resend its level status.
When a DMA channel thread is in the Non-secure state, and a DMAMOV CCR instruction
attempts to program the channel to perform a secure AXI transaction, the DMAC:
1. Executes a DMANOP.
2. Sets the appropriate bit in the FSRC Register that corresponds to the DMA channel
number. See Fault Status DMA Channel Register.
3. Sets the ch_rdwr_err bit in the FTRn Register, see Fault Type DMA Channel Registers.
4. Moves the DMA channel thread to the Faulting completing state.
11.7.3 Programming restrictions
Fixed unaligned bursts
The DMAC does not support fixed unaligned bursts. If you program the following conditions,
the DMAC treats this as a programming error:
Unaligned read
src_inc field is 0 in the CCRn Register
the SARn Register contains an address that is not aligned to the size of data that the
src_burst_size field contain
Unaligned write
dst_inc field is 0 in the CCRn Register
the DARn Register contains an address that is not aligned to the size of data that the
dst_burst_size field contains
Endian swap size restrictions
If you program the endian_swap_size field in the CCRn Register, to enable a DMA channel to
perform an endian swap then you must set the corresponding SARn Register and the
corresponding DARn Register to contain an address that is aligned to the value that the
endian_swap_size field contains.
Updating DMA channel control registers during a DMA cycle restrictions
Prior to the DMAC executing a sequence of DMALD and DMAST instructions, the values you
program in to the CCRn Register, SARn Register, and DARn Register control the data byte
lane manipulation that the DMAC performs when it transfers the data from the source
address to the destination address. You’d better not update these registers during a DMA
cycle.
Resource sharing between DMA channels
DMA channel programs share the MFIFO data storage resource. You must not start a set of
concurrently running DMA channel programs with a resource requirement that exceeds the
configured size of the MFIFO. If you exceed this limit then the DMAC might lock up and
generate a Watchdog abort.
11.7.4 Unaligned transfers may be corrupted
For a configuration with more than one channel, if any of channels 1 to 7 is performing
transfers between certain types of misaligned source and destination addresses, then the
output data may be corrupted by the action of channel 0.
Data corruption might occur if all of the following are true:
1. Two beats of AXI read data are received for one of channels 1 to 7.
2. Source and destination address alignments mean that each read data beat is
splited across two lines in the data buffer (see Splitting data, below).
3. There is one idle cycle between the two read data beats.
4. Channel 0 performs an operation that updates channel control information during this idle
Assembler syntax
DMAADNH <address_register>, <16-bit immediate>
where:
<address_register>
Selects the address register to use. It must be either:
SAR
SARn Register and sets ra to 0.
DAR
DARn Register and sets ra to 1.
<16-bit immediate>
The immediate value to be added to the <address_register>.
You should specify the 16-bit immediate as the number that is to be represented in the
instruction encoding. For example, DMAADNH DAR, 0xFFF0 causes the value 0xFFFFFFF0 to
be added to the current value of the Destination Address Register, effectively subtracting 16
from the DAR.
You can only use this instruction in a DMA channel thread.
12.1 Overview
The MAC Ethernet Controller provides a complete Ethernet interface from processor to a
Reduced Media Independent Interface (RMII) compliant Ethernet PHY.
The MAC includes a DMA controller. The DMA controller efficiently moves packet data from
microprocessor’s RAM, formats the data for an IEEE 802.3-2002 compliant packet and
transmits the data to an Ethernet Physical Interface (PHY). It also efficiently moves packet
data from RXFIFO to microprocessor’s RAM.
12.1.1 Feature
Supports 10/100-Mbps data transfer rates with the RMII interfaces
Supports both full-duplex and half-duplex operation
Supports CSMA/CD Protocol for half-duplex operation
Supports IEEE 802.3x flow control for full-duplex operation
Optional forwarding of received pause control frames to the user application in full-
duplex operation
Back-pressure support for half-duplex operation
Automatic transmission of zero-quanta pause frame on de-assertion of flow control
input in full-duplex operation
Preamble and start-of-frame data (SFD) insertion in Transmit, and deletion in Receive
paths
Automatic CRC and pad generation controllable on a per-frame basis
Options for Automatic Pad/CRC Stripping on receive frames
Programmable frame length to support Standard Ethernet frames
Programmable InterFrameGap (40-96 bit times in steps of 8)
Supports a variety of flexible address filtering modes:
64-bit Hash filter (optional) for multicast and uni-cast (DA) addresses
Option to pass all multicast addressed frames
Promiscuous mode support to pass all frames without any filtering for network
monitoring
Passes all incoming packets (as per filter) with a status report
Separate 32-bit status returned for transmission and reception packets
Supports IEEE 802.1Q VLAN tag detection for reception frames
MDIO Master interface for PHY device configuration and management
Support detection of LAN wake-up frames and AMD Magic Packet frames
Support checksum off-load for received IPv4 and TCP packets encapsulated by the
Ethernet frame
Support checking IPv4 header checksum and TCP, UDP, or ICMP checksum encapsulated
in IPv4 or IPv6 datagrams
Comprehensive status reporting for normal operation and transfers with errors
Support per-frame Transmit/Receive complete interrupt control
Supports 4-KB receive FIFO depths on reception.
Supports 2-KB FIFO depth on transmission
Automatic generation of PAUSE frame control or backpressure signal to the MAC core
based on Receive FIFO-fill (threshold configurable) level
Handles automatic retransmission of Collision frames for transmission
Discards frames on late collision, excessive collisions, excessive deferral and underrun
conditions
AXI interface to any CPU or memory
Software can select the type of AXI burst (fixed and variable length burst) in the AXI
Master interface
Supports internal loopback on theRMII for debugging
Debug status register that gives status of FSMs in Transmit and Receive data-paths and
FIFO fill-levels.
AXI
Master DMA
Interface TxFC RxFC
PHY
Interface
GMAC (RMII)
Fig.12-1 MACArchitecture
The MAC is broken up into multiple separate functional units. These blocks are
interconnected in the MAC module. The block diagram shows the general flow of data and
control signals between these blocks.
The MAC transfers data to system memory through the AXI master interface. The host CPU
uses the APB Slave interface to access the MAC subsystem’s control and status registers
(CSRs).
The MAC supports the PHY interfaces of reduced MII (RMII).
The Transmit FIFO (Tx FIFO) buffers data read from system memory by the DMA before
transmission by the MAC Core. Similarly, the Receive FIFO (Rx FIFO) stores the Ethernet
frames received from the line until they are transferred to system memory by the DMA.
These are asynchronous FIFOs, as they also transfer the data between the application clock
and the MAC line clocks.
SoC
CPU
AXI APB
Master Slave
MAC
Memory
Controller
RMII
10M/100M
MAC
PHY
Fig.12-2 MAC Block Diagram
The MAC controller named MAC2IO:
MAC2IO Supports 10/100-Mbps data transfer rates with the RMII interfaces
for wake-up frames and Magic Packets received by the MAC. The PMT block sits on the
receiver path of the MAC and is enabled with remote wake-up frame enable and Magic
Packet enable. These enables are in the PMT control and status register and are
programmed by the application.
When the power down mode is enabled in the PMT, then all received frames are dropped by
the core and they are not forwarded to the application. The core comes out of the power
down mode only when either a Magic Packet or a Remote Wake-up frame is received and the
corresponding detection is enabled.
Remote Wake-Up Frame Detection
When the MAC is in sleep mode and the remote wake-up bit is enabled in register
MAC_PMT_CTRL_STA (0x002C), normal operation is resumed after receiving a remote wake-
up frame. The application writes all eight wake-up filter registers, by performing a sequential
write to address (0028). The application enables remote wake-up by writing a 1 to bit 2 of
the register MAC_PMT_CTRL_STA.
PMT supports four programmable filters that allow support of different receive frame
patterns. If the incoming frame passes the address filtering of Filter Command, and if Filter
CRC-16 matches the incoming examined pattern, then the wake-up frame is received.
Filter_offset (minimum value 12, which refers to the 13th byte of the frame) determines the
offset from which the frame is to be examined. Filter Byte Mask determines which bytes of
the frame must be examined. The thirty-first bit of Byte Mask must be set to zero.
The remote wake-up CRC block determines the CRC value that is compared with Filter CRC-
16. The wake-up frame is checked only for length error, FCS error, dribble bit error, GMII
error, collision, and to ensure that it is not a runt frame. Even if the wake-up frame is more
than 512 bytes long, if the frame has a valid CRC value, it is considered valid. Wake-up
frame detection is updated in the register MAC_PMT_CTRL_STA for every remote Wake-up
frame received. A PMT interrupt to the application triggers a read to the
MAC_PMT_CTRL_STA register to determine reception of a wake-up frame.
Magic Packet Detection
The Magic Packet frame is based on a method that uses Advanced Micro Device’s Magic
Packet technology to power up the sleeping device on the network. The MAC receives a
specific packet of information, called a Magic Packet, addressed to the node on the network.
Only Magic Packets that are addressed to the device or a broadcast address will be checked
to determine whether they meet the wake-up requirements. Magic Packets that pass the
address filtering (unicast or broadcast) will be checked to determine whether they meet the
remote Wake-on-LAN data format of 6 bytes of all ones followed by a MAC Address
appearing 16 times.
The application enables Magic Packet wake-up by writing a 1 to Bit 1 of the register
MAC_PMT_CTRL_STA. The PMT block constantly monitors each frame addressed to the node
for a specific Magic Packet pattern. Each frame received is checked for a
48’hFF_FF_FF_FF_FF_FF pattern following the destination and source address field. The PMT
block then checks the frame for 16 repetitions of the MAC address without any breaks or
interruptions. In case of a break in the 16 repetitions of the address, the
48’hFF_FF_FF_FF_FF_FF pattern is scanned for again in the incoming frame. The 16
repetitions can be anywhere in the frame, but must be preceded by the synchronization
stream (48’hFF_FF_FF_FF_FF_FF). The device will also accept a multicast frame, as long as
the 16 duplications of the MAC address are detected.
If the MAC address of a node is 48'h00_11_22_33_44_55, then the MAC scans for the data
sequence:
Destination Address Source Address …………………………………. FF FFFFFFFFFF
00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55
00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55
00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55
00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55
…CRC
Magic Packet detection is updated in the PMT Control and Status register for Magic Packet
received. A PMT interrupt to the Application triggers a read to the PMT CSR to determine
whether a Magic Packet frame has been received.
Reset
Name Offset Size Description
Value
VLAN Tag Register
MAC_VLAN_TAG 0x001c W 0x00000000 Identifies IEEE 802.1Q VLAN type
frames
Debug register
This debug register gives the
status of all the main modules of
the transmit and receive data-
MAC_DEBUG 0x0024 W 0x00000000 paths and the FIFOs. An all-zero
status indicates that the MAC core
is in idle state (and FIFOs are
empty) and no activity is going on
in the data-paths
PMT Control and Status Register
MAC_PMT_CTRL_STA 0x002c W 0x00000000
PMT Control and Status
Interrupt Status Register
MAC_INT_STATUS 0x0038 W 0x00000000
Contains the interrupt status
Interrupt Mask Register
MAC_INT_MASK 0x003c W 0x00000000 Contains the masks for generating
the interrupts
MAC Address0 High Register
MAC_MAC_ADDR0_HI 0x0040 W 0x0000ffff Contains the higher 16 bits of the
first MAC address
MAC Address0 Low Register
MAC_MAC_ADDR0_LO 0x0044 W 0xffffffff Contains the lower 32 bits of the
first MAC address
AN Control Register
Enables and/or restarts auto-
MAC_AN_CTRL 0x00c0 W 0x00000000
negotiation. It also enables PCS
loopback
AN Status Register
MAC_AN_STATUS 0x00c4 W 0x00000008 Indicates the link and auto-
negotiation status
Auto Negotiation Advertisement
Register
This register is configured before
MAC_AN_ADV 0x00c8 W 0x000001e0
auto-negotiation begins. It
contains the advertised ability of
the MAC
Reset
Name Offset Size Description
Value
Auto Negotiation Link Partner
Ability Register
Contains the advertised ability of
the link partner. Its value is valid
MAC_AN_LINK_PART_AB 0x00cc W 0x00000000 after successful completion of
auto-negotiation or when a new
base page has been received
(indicated in the Auto-Negotiation
Expansion Register)
Auto Negotiation Expansion
Register
MAC_AN_EXP 0x00d0 W 0x00000000 Indicates whether a new base
page has been received from the
link partner
RGMII Status Register
Indicates the status signals
MAC_INTF_MODE_STA 0x00d8 W 0x00000000
received from the PHY through
the RGMII interface
MMC Control Register
The MMC Control register
MAC_MMC_CTRL 0x0100 W 0x00000000
establishes the operating mode of
the management counters
MMC Receive Interrupt Register
The MMC Receive Interrupt
register maintains the interrupts
generated when the receive
statistic counters reach half their
maximum values (0x8000_0000),
and when they cross their
maximum values (0xFFFF_FFFF).
When Counter Stop Rollover is
set, then interrupts are set but
MAC_MMC_RX_INTR 0x0104 W 0x00000000
the counter remains at all-ones.
The MMC Receive Interrupt
register 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
Reset
Name Offset Size Description
Value
MMC Transmit Interrupt Register
The MMC Transmit Interrupt
register maintains the interrupts
generated when transmit statistic
counters reach half their
maximum values (0x8000_0000),
and when they cross their
maximum values (0xFFFF_FFFF).
When Counter Stop Rollover is
set, then interrupts are set but
MAC_MMC_TX_INTR 0x0108 W 0x00000000
the counter remains at all-ones.
The MMC Transmit Interrupt
register 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
MMC Receive Interrupt Mask
Register
The MMC Receive Interrupt Mask
register maintains the masks for
MAC_MMC_RX_INT_MSK 0x010c W 0x00000000 the interrupts generated when
receive statistic counters reach
half their maximum value, and
when they reach their maximum
values
MMC Transmit Interrupt Mask
Register
The MMC Transmit Interrupt Mask
register maintains the masks for
MAC_MMC_TX_INT_MSK 0x0110 W 0x00000000 the interrupts generated when
transmit statistic counters reach
half their maximum value, and
when they reach their maximum
values
MAC_MMC_TXOCTETCNT_ MMC TX OCTET Good and Bad
0x0114 W 0x00000000
GB Counter
MAC_MMC_TXFRMCNT_G MMC TX OCTET Good and Bad
0x0118 W 0x00000000
B Counter
MAC_MMC_TXUNDFLWER
0x0148 W 0x00000000 MMC TX Underflow Error
R
Reset
Name Offset Size Description
Value
MAC_MMC_TXCARERR 0x0160 W 0x00000000 MMC TX Carrier Error
MAC_MMC_TXOCTETCNT_
0x0164 W 0x00000000 MMC TX OCTET Good Counter
G
MAC_MMC_TXFRMCNT_G 0x0168 W 0x00000000 MMC TX Frame Good Counter
MAC_MMC_RXFRMCNT_G MMC RX Frame Good and Bad
0x0180 W 0x00000000
B Counter
MAC_MMC_RXOCTETCNT_ MMC RX OCTET Good and Bad
0x0184 W 0x00000000
GB Counter
MAC_MMC_RXOCTETCNT_
0x0188 W 0x00000000 MMC RX OCTET Good Counter
G
MAC_MMC_RXMCFRMCNT MMC RX Multicast Frame Good
0x0190 W 0x00000000
_G Counter
MAC_MMC_RXCRCERR 0x0194 W 0x00000000 MMC RX Carrier
MAC_MMC_RXLENERR 0x01c8 W 0x00000000 MMC RX Length Error
MAC_MMC_RXFIFOOVRFL
0x01d4 W 0x00000000 MMC RX FIFO Overflow
W
MMC Receive Checksum Offload
Interrupt Mask Register
The MMC Receive Checksum
Offload Interrupt Mask register
maintains the masks for the
MAC_MMC_IPC_INT_MSK 0x0200 W 0x00000000
interrupts generated when the
receive IPC (Checksum Offload)
statistic counters reach half their
maximum value , and when they
reach their maximum values
Reset
Name Offset Size Description
Value
MMC Receive Checksum Offload
Interrupt Register The MMC
Receive Checksum Offload
Interrupt register maintains the
interrupts generated when receive
IPC statistic counters reach half
their maximum values
(0x8000_0000), and when they
cross their maximum values
(0xFFFF_FFFF). When Counter
MAC_MMC_IPC_INTR 0x0208 W 0x00000000
Stop Rollover is set, then
interrupts are set but the counter
remains at all-ones. When the
MMC IPC counter that caused the
interrupt is read, its
corresponding interrupt bit is
cleared. The counterí s least-
significant byte lane (bits[7:0])
must be read to clear the
interrupt bit
MAC_MMC_RXIPV4GFRM 0x0210 W 0x00000000 MMC RX IPV4 Good Frame
MAC_MMC_RXIPV4HDERR
0x0214 W 0x00000000 MMC RX IPV4 Head Error Frame
FRM
MAC_MMC_RXIPV6GFRM 0x0224 W 0x00000000 MMC RX IPV6 Good Frame
MAC_MMC_RXIPV6HDERR
0x0228 W 0x00000000 MMC RX IPV6 Head Error Frame
FRM
MAC_MMC_RXUDPERRFR
0x0234 W 0x00000000 MMC RX UDP Error Frame
M
MAC_MMC_RXTCPERRFRM 0x023c W 0x00000000 MMC RX TCP Error Frame
MAC_MMC_RXICMPERRFR
0x0244 W 0x00000000 MMC RX ICMP Error Frame
M
MAC_MMC_RXIPV4HDERR
0x0254 W 0x00000000 MMC RX OCTET IPV4 Head Error
OCT
MAC_MMC_RXIPV6HDERR
0x0268 W 0x00000000 MMC RX OCTET IPV6 Head Error
OCT
MAC_MMC_RXUDPERROC
0x0274 W 0x00000000 MMC RX OCTET UDP Error
T
MAC_MMC_RXTCPERROCT 0x027c W 0x00000000 MMC RX OCTET TCP Error
MAC_MMC_RXICMPERROC
0x0284 W 0x00000000 MMC RX OCTET ICMP Error
T
MAC_BUS_MODE 0x1000 W 0x00020101 Bus Mode Register
Reset
Name Offset Size Description
Value
Transmit Poll Demand Register
Used by the host to instruct the
MAC_TX_POLL_DEMAND 0x1004 W 0x00000000
DMA to poll the Transmit
Descriptor List
Receive Poll Demand Register
Used by the Host to instruct the
MAC_RX_POLL_DEMAND 0x1008 W 0x00000000
DMA to poll the Receive
Descriptor list
Receive Descriptor List Address
MAC_RX_DESC_LIST_AD Register
0x100c W 0x00000000
DR Points the DMA to the start of the
Receive Descriptor list
Transmit Descriptor List Address
MAC_TX_DESC_LIST_ADD Register
0x1010 W 0x00000000
R Points the DMA to the start of the
Transmit Descriptor List
Status Register
The Software driver (application)
reads this register during
MAC_STATUS 0x1014 W 0x00000000
interrupt service routine or polling
to determine the status of the
DMA
Operation Mode Register
Establishes the Receive and
MAC_OP_MODE 0x1018 W 0x00000000
Transmit operating modes and
command
Interrupt Enable Register
MAC_INT_ENA 0x101c W 0x00000000 Enables the interrupts reported by
the Status Register
Missed Frame and Buffer Overflow
Counter Register
Contains the counters for
MAC_OVERFLOW_CNT 0x1020 W 0x00000000 discarded frames because no host
Receive Descriptor was available,
and discarded frames because of
Receive FIFO Overflow
Receive Interrupt Watchdog Timer
MAC_REC_INT_WDT_TIM Register
0x1024 W 0x00000000
ER Watchdog time-out for Receive
Interrupt (RI) from DMA
Reset
Name Offset Size Description
Value
AXI Bus Mode Register
Controls AXI Master behavior
MAC_AXI_BUS_MODE 0x1028 W 0x00110001 (mainly controls burst splitting
and number of outstanding
requests)
AXI Status Register
MAC_AXI_STATUS 0x102c W 0x00000000 Gives the idle status of the AXI
master's read/write channels
Current Host Transmit Descriptor
Register
MAC_CUR_HOST_TX_DES
0x1048 W 0x00000000 Points to the start of current
C
Transmit Descriptor read by the
DMA
Current Host Receive Descriptor
Register
MAC_CUR_HOST_RX_DES
0x104c W 0x00000000 Points to the start of current
C
Receive Descriptor read by the
DMA
Current Host Transmit Buffer
MAC_CUR_HOST_TX_BUF Address Register
0x1050 W 0x00000000
_ADDR Points to the current Transmit
Buffer address read by the DMA
Current Host Receive Buffer
MAC_CUR_HOST_RX_BUF Address Register
0x1054 W 0x00000000
_ADDR Points to the current Receive
Buffer address read by the DMA
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
MAC_MAC_CONF
Address: Operational Base + offset (0x0000)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
TC
Transmit Configuration in RGMII
When set, this bit enables the transmission of duplex mode, link
24 RW 0x0
speed, and link up/down information to the PHY in the RGMII
ports. When this bit is reset, no such information is driven to the
PHY
MAC_MAC_FRM_FILT
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
RA
Receive All
When this bit is set, the MAC Receiver module passes to the
Application all frames received irrespective of whether they pass
31 RW 0x0
the address filter. The result of the SA/DA filtering is updated
(pass or fail) in the corresponding bits in the Receive Status
Word. When this bit is reset, the Receiver module passes to the
Application only those frames that pass the SA/DA address filter
30:11 RO 0x0 reserved
MAC_HASH_TAB_HI
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
HTH
31:0 RW 0x00000000 Hash Table High
This field contains the upper 32 bits of Hash table
MAC_HASH_TAB_LO
Address: Operational Base + offset (0x000c)
MAC_GMII_DATA
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
GD
GMII Data
15:0 RW 0x0000 This contains the 16-bit data value read from the PHY after a
Management Read operation or the 16-bit data value to be
written to the PHY before a Management Write operation
MAC_FLOW_CTRL
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
PT
Pause Time
This field holds the value to be used in the Pause Time field in the
31:16 RW 0x0000 transmit control frame. If the Pause Time bits is configured to be
double-synchronized to the (G)MII clock domain, then
consecutive writes to this register should be performed only after
at least 4 clock cycles in the destination clock domain
15:8 RO 0x0 reserved
DZPQ
Disable Zero-Quanta Pause
When set, this bit disables the automatic generation of Zero-
Quanta Pause Control frames on the de-assertion of the flow-
7 RW 0x0
control signal from the FIFO layer (MTL or external sideband flow
control signal sbd_flowctrl_i/mti_flowctrl_i).
When this bit is reset, normal operation with automatic Zero-
Quanta Pause Control frame generation is enabled
6 RO 0x0 reserved
MAC_VLAN_TAG
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
ETV
Enable 12-Bit VLAN Tag Comparison
When this bit is set, a 12-bit VLAN identifier, rather than the
complete 16-bit VLAN tag, is used for comparison and filtering.
16 RW 0x0
Bits[11:0] of the VLAN tag are compared with the corresponding
field in the received VLAN-tagged frame.
When this bit is reset, all 16 bits of the received VLAN frame's
fifteenth and sixteenth bytes are used for comparison
VL
VLAN Tag Identifier for Receive Frames
This contains the 802.1Q VLAN tag to identify VLAN frames, and
is compared to the fifteenth and sixteenth bytes of the frames
being received for VLAN frames. Bits[15:13] are the User Priority,
Bit[12] is the Canonical Format Indicator (CFI) and bits[11:0] are
15:0 RW 0x0000
the VLAN tag's VLAN Identifier (VID) field. When the ETV bit is
set, only the VID (Bits[11:0]) is used for comparison.
If VL (VL[11:0] if ETV is set) is all zeros, the MAC does not check
the fifteenth and sixteenth bytes for VLAN tag comparison, and
declares all frames with a Type field value of 0x8100 to be VLAN
frames
MAC_DEBUG
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
31:26 RO 0x0 reserved
TFIFO3
When high, it indicates that the MTL TxStatus FIFO is full and
25 RW 0x0
hence the MTL will not be accepting any more frames for
transmission
TFIFO2
24 RW 0x0 When high, it indicates that the MTL TxFIFO is not empty and has
some data left for transmission
23 RO 0x0 reserved
TFIFO1
22 RW 0x0 When high, it indicates that the MTL TxFIFO Write Controller is
active and transferring data to the TxFIFO
TFIFOSTA
This indicates the state of the TxFIFO read Controller:
2'b00: IDLE state
21:20 RW 0x0
2'b01: READ state (transferring data to MAC transmitter)
2'b10: Waiting for TxStatus from MAC transmitter
2'b11: Writing the received TxStatus or flushing the TxFIFO
PAUSE
When high, it indicates that the MAC transmitter is in PAUSE
19 RW 0x0
condition (in full-duplex only) and hence will not schedule any
frame for transmission
TSAT
This indicates the state of the MAC Transmit Frame Controller
module:
2'b00: IDLE
18:17 RW 0x0 2'b01: Waiting for Status of previous frame or IFG/backoff period
to be over
2'b10: Generating and transmitting a PAUSE control frame (in full
duplex mode)
2'b11: Transferring input frame for transmission
TACT
16 RW 0x0 When high, it indicates that the MAC GMII/MII transmit protocol
engine is actively transmitting data and not in IDLE state
15:10 RO 0x0 reserved
RFIFO
This gives the status of the RxFIFO Fill-level:
2'b00: RxFIFO Empty
9:8 RW 0x0
2'b01: RxFIFO fill-level below flow-control de-activate threshold
2'b10: RxFIFO fill-level above flow-control activate threshold
2'b11: RxFIFO Full
7 RO 0x0 reserved
MAC_PMT_CTRL_STA
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
WFFRPR
W1 Wake-Up Frame Filter Register Pointer Reset
31 0x0
C When set, resets the Remote Wake-up Frame Filter register
pointer to 3'b000. It is automatically cleared after 1 clock cycle
30:10 RO 0x0 reserved
GU
Global Unicast
9 RW 0x0
When set, enables any unicast packet filtered by the MAC (DAF)
address recognition to be a wake-up frame
8:7 RO 0x0 reserved
WFR
Wake-Up Frame Received
6 RC 0x0 When set, this bit indicates the power management event was
generated due to reception of a wake-up frame. This bit is
cleared by a read into this register
MPR
Magic Packet Received
5 RC 0x0 When set, this bit indicates the power management event was
generated by the reception of a Magic Packet. This bit is cleared
by a read into this register
4:3 RO 0x0 reserved
MAC_INT_STATUS
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
MRCOIS
MMC Receive Checksum Offload Interrupt Status
7 RO 0x0 This bit is set high whenever an interrupt is generated in the MMC
Receive Checksum Offload Interrupt Register. This bit is cleared
when all the bits in this interrupt register are cleared
MTIS
MMC Transmit Interrupt Status
This bit is set high whenever an interrupt is generated in the MMC
6 RO 0x0
Transmit Interrupt Register. This bit is cleared when all the bits in
this interrupt register are cleared. This bit is only valid when the
optional MMC module is selected during configuration
MRIS
MMC Receive Interrupt Status
This bit is set high whenever an interrupt is generated in the MMC
5 RO 0x0
Receive Interrupt Register. This bit is cleared when all the bits in
this interrupt register are cleared. This bit is only valid when the
optional MMC module is selected during configuration
MIS
MMC Interrupt Status
4 RO 0x0 This bit is set high whenever any of bits 7:5 is set high and
cleared only when all of these bits are low. This bit is valid only
when the optional MMC module is selected during configuration
MAC_INT_MASK
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
PIM
PMT Interrupt Mask
3 RW 0x0 This bit when set, will disable the assertion of the interrupt signal
due to the setting of PMT Interrupt Status bit in Register
MAC_INT_STATUS
2:1 RO 0x0 reserved
RIM
RGMII Interrupt Mask
0 RW 0x0 This bit when set, will disable the assertion of the interrupt signal
due to the setting of RGMII Interrupt Status bit in Register
MAC_INT_STATUS
MAC_MAC_ADDR0_HI
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
A47_A32
MAC Address0 [47:32]
This field contains the upper 16 bits (47:32) of the 6-byte first
15:0 RW 0xffff
MAC address. This is used by the MAC for filtering for received
frames and for inserting the MAC address in the Transmit Flow
Control (PAUSE) Frames
MAC_MAC_ADDR0_LO
Address: Operational Base + offset (0x0044)
MAC_AN_CTRL
Address: Operational Base + offset (0x00c0)
Bit Attr Reset Value Description
31:13 RO 0x0 reserved
ANE
Auto-Negotiation Enable
12 RW 0x0 When set, will enable the MAC to perform auto-negotiation with
the link partner.
Clearing this bit will disable auto-negotiation
11:10 RO 0x0 reserved
RAN
Restart Auto-Negotiation
R/W
9 0x0 When set, will cause auto-negotiation to restart if the ANE is set.
SC
This bit is self-clearing after auto-negotiation starts. This bit
should be cleared for normal operation
8:0 RO 0x0 reserved
MAC_AN_STATUS
Address: Operational Base + offset (0x00c4)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
ANC
Auto-Negotiation Complete
5 RO 0x0 When set, this bit indicates that the auto-negotiation process is
completed.
This bit is cleared when auto-negotiation is reinitiated
4 RO 0x0 reserved
ANA
Auto-Negotiation Ability
3 RO 0x1
This bit is always high, because the MAC supports auto-
negotiation
LS
R/W Link Status
2 0x0
SC When set, this bit indicates that the link is up. When cleared, this
bit indicates that the link is down
1:0 RO 0x0 reserved
MAC_AN_ADV
Address: Operational Base + offset (0x00c8)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
NP
Next Page Support
15 RO 0x0
This bit is tied to low, because the MAC does not support the next
page
14 RO 0x0 reserved
RFE
Remote Fault Encoding
13:12 RW 0x0
These 2 bits provide a remote fault encoding, indicating to a link
partner that a fault or error condition has occurred
11:9 RO 0x0 reserved
PSE
Pause Encoding
8:7 RW 0x3 These 2 bits provide an encoding for the PAUSE bits, indicating
that the MAC is capable of configuring the PAUSE function as
defined in IEEE 802.3x
HD
Half-Duplex
6 RW 0x1 This bit, when set high, indicates that the MAC supports Half-
Duplex. This bit is tied to low (and RO) when the MAC is
configured for Full-Duplex-only operation
FD
Full-Duplex
5 RW 0x1
This bit, when set high, indicates that the MAC supports Full-
Duplex
4:0 RO 0x0 reserved
MAC_AN_LINK_PART_AB
Address: Operational Base + offset (0x00cc)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
NP
Next Page Support
When set, this bit indicates that more next page information is
15 RO 0x0
available.
When cleared, this bit indicates that next page exchange is not
desired
ACK
Acknowledge
When set, this bit is used by the auto-negotiation function to
14 RO 0x0
indicate that the link partner has successfully received the MAC's
base page. When cleared, it indicates that a successful receipt of
the base page has not been achieved
MAC_AN_EXP
Address: Operational Base + offset (0x00d0)
Bit Attr Reset Value Description
31:3 RO 0x0 reserved
NPA
Next Page Ability
2 RO 0x0
This bit is tied to low, because the MAC does not support next
page function
NPR
New Page Received
1 RO 0x0
When set, this bit indicates that a new page has been received by
the MAC. This bit will be cleared when read
0 RO 0x0 reserved
MAC_INTF_MODE_STA
Address: Operational Base + offset (0x00d8)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
LST
3 RO 0x0 Link Status
Indicates whether the link is up (1'b1) or down (1'b0)
MAC_MMC_CTRL
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
FHP
Full-Half preset
When low and bit4 is set, all MMC counters get preset to almost-
half value. All octet counters get preset to 0x7FFF_F800 (half -
2K Bytes) and all frame-counters gets preset to 0x7FFF_FFF0
5 RW 0x0
(half - 16)
When high and bit4 is set, all MMC counters get preset to almost-
full value. All octet counters get preset to 0xFFFF_F800 (full - 2K
Bytes) and all frame-counters gets preset to 0xFFFF_FFF0 (full -
16)
CP
Counters Preset
When set, all counters will be initialized or preset to almost full or
R/W
4 0x0 almost half as per Bit5 above. This bit will be cleared
SC
automatically after 1 clock cycle. This bit along with bit5 is useful
for debugging and testing the assertion of interrupts due to MMC
counter becoming half-full or full
MCF
MMC Counter Freeze
When set, this bit freezes all the MMC counters to their current
3 RW 0x0 value. (None of the MMC counters are updated due to any
transmitted or received frame until this bit is reset to 0. If any
MMC counter is read with the Reset on Read bit set, then that
counter is also cleared in this mode.)
ROR
Reset on Read
2 RW 0x0 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
MAC_MMC_RX_INTR
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
INT21
21 RW 0x0 The bit is set when the rxfifooverflow counter reaches half the
maximum value, and also when it reaches the maximum value
20:19 RO 0x0 reserved
INT18
18 RC 0x0 The bit is set when the rxlengtherror counter reaches half the
maximum value, and also when it reaches the maximum value
17:6 RO 0x0 reserved
INT5
5 RW 0x0 The bit is set when the rxcrcerror counter reaches half the
maximum value, and also when it reaches the maximum value
INT4
The bit is set when the rxmulticastframes_g counter reaches half
4 RC 0x0
the maximum value, and also when it reaches the maximum
value
3 RO 0x0 reserved
INT2
2 RC 0x0 The bit is set when the rxoctetcount_g counter reaches half the
maximum value, and also when it reaches the maximum value
INT1
1 RC 0x0 The bit is set when the rxoctetcount_gb counter reaches half the
maximum value, and also when it reaches the maximum value
INT0
0 RC 0x0 The bit is set when the rxframecount_gb counter reaches half the
maximum value, and also when it reaches the maximum value
MAC_MMC_TX_INTR
Address: Operational Base + offset (0x0108)
MAC_MMC_RX_INT_MSK
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
INT21
Setting this bit masks the interrupt when the rxfifooverflow
21 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
20:19 RO 0x0 reserved
INT18
Setting this bit masks the interrupt when the rxlengtherror
18 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
17:6 RO 0x0 reserved
INT5
Setting this bit masks the interrupt when the rxcrcerror counter
5 RW 0x0
reaches half the maximum value, and also when it reaches the
maximum value
INT4
Setting this bit masks the interrupt when the
4 RW 0x0
rxmulticastframes_g counter reaches half the maximum value,
and also when it reaches the maximum value
MAC_MMC_TX_INT_MSK
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
31:22 RO 0x0 reserved
INT21
Setting this bit masks the interrupt when the txframecount_g
21 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
INT20
Setting this bit masks the interrupt when the txoctetcount_g
20 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
INT19
Setting this bit masks the interrupt when the txcarriererror
19 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
18:14 RO 0x0 reserved
INT13
Setting this bit masks the interrupt when the txunderflowerror
13 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
12:2 RO 0x0 reserved
INT1
Setting this bit masks the interrupt when the txframecount_gb
1 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
INT0
Setting this bit masks the interrupt when the txoctetcount_gb
0 RW 0x0
counter reaches half the maximum value, and also when it
reaches the maximum value
MAC_MMC_TXOCTETCNT_GB
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
txoctetcount_gb
31:0 RW 0x00000000 Number of bytes transmitted, exclusive of preamble and retried
bytes, in good and bad frames
MAC_MMC_TXFRMCNT_GB
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
txframecount_gb
31:0 RW 0x00000000 Number of good and bad frames transmitted, exclusive of retried
frames
MAC_MMC_TXUNDFLWERR
Address: Operational Base + offset (0x0148)
Bit Attr Reset Value Description
txunderflowerror
31:0 RW 0x00000000
Number of frames aborted due to frame underflow error
MAC_MMC_TXCARERR
Address: Operational Base + offset (0x0160)
Bit Attr Reset Value Description
txcarriererror
31:0 RW 0x00000000 Number of frames aborted due to carrier sense error (no carrier
or loss of carrier)
MAC_MMC_TXOCTETCNT_G
Address: Operational Base + offset (0x0164)
Bit Attr Reset Value Description
txoctetcount_g
31:0 RW 0x00000000 Number of bytes transmitted, exclusive of preamble, in good
frames only
MAC_MMC_TXFRMCNT_G
Address: Operational Base + offset (0x0168)
Bit Attr Reset Value Description
txframecount_g
31:0 RW 0x00000000
Number of good frames transmitted
MAC_MMC_RXFRMCNT_GB
Address: Operational Base + offset (0x0180)
Bit Attr Reset Value Description
rxframecount_gb
31:0 RW 0x00000000
Number of good and bad frames received
MAC_MMC_RXOCTETCNT_GB
Address: Operational Base + offset (0x0184)
Bit Attr Reset Value Description
rxoctetcount_gb
31:0 RW 0x00000000 Number of bytes received, exclusive of preamble, in good and
bad frames
MAC_MMC_RXOCTETCNT_G
Address: Operational Base + offset (0x0188)
Bit Attr Reset Value Description
rxoctetcount_g
31:0 RW 0x00000000 Number of bytes received, exclusive of preamble, only in good
frames
MAC_MMC_RXMCFRMCNT_G
Address: Operational Base + offset (0x0190)
Bit Attr Reset Value Description
rxmulticastframes_g
31:0 RW 0x00000000
Number of good multicast frames received
MAC_MMC_RXCRCERR
Address: Operational Base + offset (0x0194)
Bit Attr Reset Value Description
rxcrcerror
31:0 RW 0x00000000
Number of frames received with CRC error
MAC_MMC_RXLENERR
Address: Operational Base + offset (0x01c8)
Bit Attr Reset Value Description
rxlengtherror
31:0 RW 0x00000000 Number of frames received with length error (Length type field
≠frame size), for all frames with valid length field
MAC_MMC_RXFIFOOVRFLW
Address: Operational Base + offset (0x01d4)
Bit Attr Reset Value Description
rxfifooverflow
31:0 RW 0x00000000
Number of missed received frames due to FIFO overflow
MAC_MMC_IPC_INT_MSK
Address: Operational Base + offset (0x0200)
Bit Attr Reset Value Description
31:30 RO 0x0 reserved
MAC_MMC_IPC_INTR
Address: Operational Base + offset (0x0208)
Bit Attr Reset Value Description
31:30 RO 0x0 reserved
INT29
The bit is set when the rxicmp_err_octets counter reaches half
29 RC 0x0
the maximum value, and also when it reaches the maximum
value
28 RO 0x0 reserved
INT27
27 RC 0x0 The bit is set when the rxtcp_err_octets counter reaches half the
maximum value, and also when it reaches the maximum value
26 RO 0x0 reserved
INT25
25 RC 0x0 The bit is set when the rxudp_err_octets counter reaches half the
maximum value, and also when it reaches the maximum value
24:23 RO 0x0 reserved
INT22
The bit is set when the rxipv6_hdrerr_octets counter reaches half
22 RC 0x0
the maximum value, and also when it reaches the maximum
value
21:18 RO 0x0 reserved
INT17
The bit is set when the rxipv4_hdrerr_octets counter reaches half
17 RC 0x0
the maximum value, and also when it reaches the maximum
value
16:14 RO 0x0 reserved
INT13
13 RC 0x0 The bit is set when the rxicmp_err_frms counter reaches half the
maximum value, and also when it reaches the maximum value
MAC_MMC_RXIPV4GFRM
Address: Operational Base + offset (0x0210)
Bit Attr Reset Value Description
rxipv4_gd_frms
31:0 RW 0x00000000 Number of good IPv4 datagrams received with the TCP, UDP, or
ICMP payload
MAC_MMC_RXIPV4HDERRFRM
Address: Operational Base + offset (0x0214)
Bit Attr Reset Value Description
rxipv4_hdrerr_frms
31:0 RW 0x00000000 Number of IPv4 datagrams received with header (checksum,
length, or version mismatch) errors
MAC_MMC_RXIPV6GFRM
Address: Operational Base + offset (0x0224)
MAC_MMC_RXIPV6HDERRFRM
Address: Operational Base + offset (0x0228)
Bit Attr Reset Value Description
rxipv6_hdrerr_frms
31:0 RW 0x00000000 Number of IPv6 datagrams received with header errors (length or
version mismatch)
MAC_MMC_RXUDPERRFRM
Address: Operational Base + offset (0x0234)
Bit Attr Reset Value Description
rxudp_err_frms
31:0 RW 0x00000000 Number of good IP datagrams whose UDP payload has a
checksum error
MAC_MMC_RXTCPERRFRM
Address: Operational Base + offset (0x023c)
Bit Attr Reset Value Description
rxtcp_err_frms
31:0 RW 0x00000000 Number of good IP datagrams whose TCP payload has a
checksum error
MAC_MMC_RXICMPERRFRM
Address: Operational Base + offset (0x0244)
Bit Attr Reset Value Description
rxicmp_err_frms
31:0 RW 0x00000000 Number of good IP datagrams whose ICMP payload has a
checksum error
MAC_MMC_RXIPV4HDERROCT
Address: Operational Base + offset (0x0254)
Bit Attr Reset Value Description
rxipv4_hdrerr_octets
Number of bytes received in IPv4 datagrams with header errors
31:0 RW 0x00000000
(checksum, length, version mismatch). The value in the Length
field of IPv4 header is used to update this counter
MAC_MMC_RXIPV6HDERROCT
Address: Operational Base + offset (0x0268)
MAC_MMC_RXUDPERROCT
Address: Operational Base + offset (0x0274)
Bit Attr Reset Value Description
rxudp_err_octets
31:0 RW 0x00000000 Number of bytes received in a UDP segment that had checksum
errors
MAC_MMC_RXTCPERROCT
Address: Operational Base + offset (0x027c)
Bit Attr Reset Value Description
rxtcp_err_octets
31:0 RW 0x00000000
Number of bytes received in a TCP segment with checksum errors
MAC_MMC_RXICMPERROCT
Address: Operational Base + offset (0x0284)
Bit Attr Reset Value Description
rxicmp_err_octets
31:0 RW 0x00000000 Number of bytes received in an ICMP segment with checksum
errors
MAC_BUS_MODE
Address: Operational Base + offset (0x1000)
Bit Attr Reset Value Description
31:26 RO 0x0 reserved
AAL
Address-Aligned Beats
When this bit is set high and the FB bit equals 1, the AXI
25 RW 0x0 interface generates all bursts aligned to the start address LS bits.
If the FB bit equals 0, the first burst (accessing the data buffer's
start address) is not aligned, but subsequent bursts are aligned
to the address
PBL_Mode
8xPBL Mode
When set high, this bit multiplies the PBL value programmed (bits
24 RW 0x0
[22:17] and bits [13:8]) eight times. Thus the DMA will transfer
data in to a maximum of 8, 16, 32, 64, 128, and 256 beats
depending on the PBL value
MAC_TX_POLL_DEMAND
Address: Operational Base + offset (0x1004)
Bit Attr Reset Value Description
TPD
Transmit Poll Demand
When these bits are written with any value, the DMA reads the
current descriptor pointed to by Register
31:0 RO 0x00000000
MAC_CUR_HOST_TX_DESC. If that descriptor is not available
(owned by Host), transmission returns to the Suspend state and
DMA Register MAC_STATUS[2] is asserted. If the descriptor is
available, transmission resumes
MAC_RX_POLL_DEMAND
Address: Operational Base + offset (0x1008)
Bit Attr Reset Value Description
RPD
Receive Poll Demand
When these bits are written with any value, the DMA reads the
current descriptor pointed to by Register
31:0 RO 0x00000000
MAC_CUR_HOST_RX_DESC. If that descriptor is not available
(owned by Host), reception returns to the Suspended state and
Register MAC_STATUS[7] is not asserted. If the descriptor is
available, the Receive DMA returns to active state
MAC_RX_DESC_LIST_ADDR
Address: Operational Base + offset (0x100c)
Bit Attr Reset Value Description
SRL
Start of Receive List
This field contains the base address of the First Descriptor in the
31:0 RW 0x00000000
Receive Descriptor list. The LSB bits [1/2/3:0] for 32/64/128-bit
bus width) will be ignored and taken as all-zero by the DMA
internally. Hence these LSB bits are Read Only
MAC_TX_DESC_LIST_ADDR
Address: Operational Base + offset (0x1010)
Bit Attr Reset Value Description
STL
Start of Transmit List
This field contains the base address of the First Descriptor in the
31:0 RW 0x00000000
Transmit Descriptor list. The LSB bits [1/2/3:0] for 32/64/128-bit
bus width) will be ignored and taken as all-zero by the DMA
internally. Hence these LSB bits are Read Only
MAC_STATUS
MAC_OP_MODE
Address: Operational Base + offset (0x1018)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
DT
Disable Dropping of TCP/IP Checksum Error Frames
When this bit is set, the core does not drop frames that only have
errors detected by the Receive Checksum Offload engine. Such
26 RW 0x0
frames do not have any errors (including FCS error) in the
Ethernet frame received by the MAC but have errors in the
encapsulated payload only. When this bit is reset, all error frames
are dropped if the FEF bit is reset
RSF
Receive Store and Forward
When this bit is set, the MTL only reads a frame from the Rx FIFO
25 RW 0x0
after the complete frame has been written to it, ignoring RTC
bits. When this bit is reset, the Rx FIFO operates in Cut-Through
mode, subject to the threshold specified by the RTC bits
DFF
Disable Flushing of Received Frames
24 RW 0x0 When this bit is set, the RxDMA does not flush any frames due to
the unavailability of receive descriptors/buffers as it does
normally when this bit is reset
23:22 RO 0x0 reserved
TSF
Transmit Store and Forward
When this bit is set, transmission starts when a full frame resides
21 RW 0x0
in the MTL Transmit FIFO. When this bit is set, the TTC values
specified in Register MAC_OP_MODE[16:14] are ignored. This bit
should be changed only when transmission is stopped
MAC_INT_ENA
Address: Operational Base + offset (0x101c)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
NIE
Normal Interrupt Summary Enable
When this bit is set, a normal interrupt is enabled. When this bit
is reset, a normal interrupt is disabled. This bit enables the
16 RW 0x0 following bits:
Register MAC_STATUS[0]: Transmit Interrupt
Register MAC_STATUS[2]: Transmit Buffer Unavailable
Register MAC_STATUS[6]: Receive Interrupt
Register MAC_STATUS[14]: Early Receive Interrupt
MAC_OVERFLOW_CNT
Address: Operational Base + offset (0x1020)
MAC_REC_INT_WDT_TIMER
Address: Operational Base + offset (0x1024)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
RIWT
RI Watchdog Timer count
Indicates the number of system clock cycles multiplied by 256 for
which the watchdog timer is set. The watchdog timer gets
triggered with the programmed value after the RxDMA completes
7:0 RW 0x00 the transfer of a frame for which the RI status bit is not set due
to the setting in the corresponding descriptor RDES1[31]. When
the watch-dog timer runs out, the RI bit is set and the timer is
stopped. The watchdog timer is reset when RI bit is set high due
to automatic setting of RI as per RDES1[31] of any received
frame
MAC_AXI_BUS_MODE
Address: Operational Base + offset (0x1028)
Bit Attr Reset Value Description
EN_LPI
Enable LPI (Low Power Interface)
When set to 1, enable the LPI (Low Power Interface) supported
31 RW 0x0 by the MAC and accepts the LPI request from the AXI System
Clock controller.
When set to 0, disables the Low Power Mode and always denies
the LPI request from the AXI System Clock controller
MAC_AXI_STATUS
Address: Operational Base + offset (0x102c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
RD_CH_STA
1 RO 0x0 When high, it indicates that AXI Master's read channel is active
and transferring data
WR_CH_STA
0 RO 0x0 When high, it indicates that AXI Master's write channel is active
and transferring data
MAC_CUR_HOST_TX_DESC
Address: Operational Base + offset (0x1048)
Bit Attr Reset Value Description
HTDAP
31:0 RO 0x00000000 Host Transmit Descriptor Address Pointer
Cleared on Reset. Pointer updated by DMA during operation
MAC_CUR_HOST_RX_DESC
Address: Operational Base + offset (0x104c)
Bit Attr Reset Value Description
HRDAP
31:0 RO 0x00000000 Host Receive Descriptor Address Pointer
Cleared on Reset. Pointer updated by DMA during operation
MAC_CUR_HOST_TX_BUF_ADDR
Address: Operational Base + offset (0x1050)
Bit Attr Reset Value Description
HTBAP
31:0 RO 0x00000000 Host Transmit Buffer Address Pointer
Cleared on Reset. Pointer updated by DMA during operation
MAC_CUR_HOST_RX_BUF_ADDR
Address: Operational Base + offset (0x1054)
Bit Attr Reset Value Description
HRBAP
31:0 RO 0x00000000 Host Receive Buffer Address Pointer
Cleared on Reset. Pointer updated by DMA during operation
However, a single descriptor cannot span multiple frames. The DMA will skip to the next
frame buffer when end-of-frame is detected. Data chaining can be enabled or disabled
The descriptor ring and chain structure is shown in following figure.
Bit Description
or when the buffers that are associated with this descriptor are full.
30 AFM: Destination Address Filter Fail
When set, this bit indicates a frame that failed in the DA Filter in the MAC Core.
29:16 FL: Frame Length
These bits indicate the byte length of the received frame that was transferred to
host memory (including CRC). This field is valid when Last Descriptor (RDES0[8])
is set and either the Descriptor Error (RDES0[14]) or Overflow Error bits are reset.
The frame length also includes the two bytes appended to the Ethernet frame
when IP checksum calculation (Type 1) is enabled and the received frame is not a
MAC control frame.
This field is valid when Last Descriptor (RDES0[8]) is set. When the Last
Descriptor and Error Summary bits are not set, this field indicates the
accumulated number of bytes that have been transferred for the current frame.
15 ES: Error Summary
Indicates the logical OR of the following bits:
• RDES0[0]: Payload Checksum Error
• RDES0[1]: CRC Error
• RDES0[3]: Receive Error
• RDES0[4]: Watchdog Timeout
• RDES0[6]: Late Collision
• RDES0[7]: IPC Checksum
• RDES0[11]: Overflow Error
• RDES0[14]: Descriptor Error
This field is valid only when the Last Descriptor (RDES0[8]) is set.
14 DE: Descriptor Error
When set, this bit indicates a frame truncation caused by a frame that does not fit
within the current descriptor buffers, and that the DMA does not own the Next
Descriptor. The frame is truncated. This field is valid only when the Last Descriptor
(RDES0[8]) is set
13 SAF: Source Address Filter Fail
When set, this bit indicates that the SA field of frame failed the SA Filter in the
MAC Core.
12 LE: Length Error
When set, this bit indicates that the actual length of the frame received and that
the Length/ Type field does not match. This bit is valid only when the Frame Type
(RDES0[5]) bit is reset. Length error status is not valid when CRC error is present.
11 OE: Overflow Error
When set, this bit indicates that the received frame was damaged due to buffer
overflow.
10 VLAN: VLAN Tag
When set, this bit indicates that the frame pointed to by this descriptor is a VLAN
frame tagged by the MAC Core.
9 FS: First Descriptor
When set, this bit indicates that this descriptor contains the first buffer of the
frame. If the size of the first buffer is 0, the second buffer contains the beginning
of the frame. If the size of the second buffer is also 0, the next Descriptor contains
the beginning of the frame.
8 LS: Last Descriptor
When set, this bit indicates that the buffers pointed to by this descriptor are the
last buffers of the frame.
7 IPC Checksum Error/Giant Frame
When IP Checksum Engine is enabled, this bit, when set, indicates that the 16-bit
IPv4 Header checksum calculated by the core did not match the received
checksum bytes. The Error Summary bit[15] is NOT set when this bit is set in this
Bit Description
mode.
6 LC: Late Collision
When set, this bit indicates that a late collision has occurred while receiving the
frame in Half-Duplex mode.
5 FT: Frame Type
When set, this bit indicates that the Receive Frame is an Ethernet-type frame (the
LT field is greater than or equal to 16’h0600). When this bit is reset, it indicates
that the received frame is an IEEE802.3 frame. This bit is not valid for Runt
frames less than 14 bytes.
4 RWT: Receive Watchdog Timeout
When set, this bit indicates that the Receive Watchdog Timer has expired while
receiving the current frame and the current frame is truncated after the Watchdog
Timeout.
3 RE: Receive Error
When set, this bit indicates that the gmii_rxer_i signal is asserted while
gmii_rxdv_i is asserted during frame reception. This error also includes carrier
extension error in GMII and Half-duplex mode. Error can be of less/no extension,
or error (rxd≠ 0f) during extension.
2 DE: Dribble Bit Error
When set, this bit indicates that the received frame has a non-integer multiple of
bytes (odd nibbles). This bit is valid only in MII Mode.
1 CE: CRC Error
When set, this bit indicates that a Cyclic Redundancy Check (CRC) Error occurred
on the received frame. This field is valid only when the Last Descriptor (RDES0[8])
is set.
0 Rx MAC Address/Payload Checksum Error
When set, this bit indicates that the Rx MAC Address registers value (1 to 15)
matched the frame’s DA field. When reset, this bit indicates that the Rx MAC
Address Register 0 value matched the DA field.
If Full Checksum Offload Engine is enabled, this bit, when set, indicates the TCP,
UDP, or ICMP checksum the core calculated does not match the received
encapsulated TCP, UDP, or ICMP segment’s Checksum field. This bit is also set
when the received number of payload bytes does not match the value indicated in
the Length field of the encapsulated IPv4 or IPv6 datagram in the received
Ethernet frame.
Bit Description
23:22 Reserved.
21:11 RBS2: Receive Buffer 2 Size
These bits indicate the second data buffer size in bytes. The buffer size must be a
multiple of 8 depending upon the bus widths (64), even if the value of RDES3
(buffer2 address pointer) is not aligned to bus width. In the case where the buffer
size is not a multiple of 8, the resulting behavior is undefined. This field is not
valid if RDES1[24] is set.
10:0 RBS1: Receive Buffer 1 Size
Indicates the first data buffer size in bytes. The buffer size must be a multiple of 8
depending upon the bus widths (64), even if the value of RDES2 (buffer1 address
pointer) is not aligned. In the case where the buffer size is not a multiple of 8, the
resulting behavior is undefined. If this field is 0, the DMA ignores this buffer and
uses Buffer 2 or next descriptor depending on the value of RCH (Bit 24).
TDES0 contains the transmitted frame status and the descriptor ownership information.
Table 12-6 Transmit Descriptor 0
Bit Description
31 OWN: Own Bit
When set, this bit indicates that the descriptor is owned by the DMA. When this bit
is reset, this bit indicates that the descriptor is owned by the Host. The DMA clears
this bit either when it completes the frame transmission or when the buffers
allocated in the descriptor are empty. The ownership bit of the First Descriptor of
the frame should be set after all subsequent descriptors belonging to the same
frame have been set. This avoids a possible race condition between fetching a
descriptor and the driver setting an ownership bit.
30:17 Reserved.
16 IHE: IP Header Error
When set, this bit indicates that the Checksum Offload engine detected an IP
header error and consequently did not modify the transmitted frame for any
checksum insertion.
15 ES: Error Summary
Indicates the logical OR of the following bits:
• TDES0[14]: Jabber Timeout
• TDES0[13]: Frame Flush
• TDES0[11]: Loss of Carrier
• TDES0[10]: No Carrier
• TDES0[9]: Late Collision
• TDES0[8]: Excessive Collision
• TDES0[2]: Excessive Deferral
• TDES0[1]: Underflow Error
14 JT: Jabber Timeout
When set, this bit indicates the MAC transmitter has experienced a jabber time-
out.
13 FF: Frame Flushed
When set, this bit indicates that the DMA/MTL flushed the frame due to a SW flush
command given by the CPU.
12 PCE: Payload Checksum Error
This bit, when set, indicates that the Checksum Offload engine had a failure and
did not insert any checksum into the encapsulated TCP, UDP, or ICMP payload. This
failure can be either due to insufficient bytes, as indicated by the IP Header’s
Payload Length field, or the MTL starting to forward the frame to the MAC
transmitter in Store-and-Forward mode without the checksum having been
calculated yet. This second error condition only occurs when the Transmit FIFO
depth is less than the length of the Ethernet frame being transmitted: to avoid
deadlock, the MTL starts forwarding the frame when the FIFO is full, even in
Store-and-Forward mode.
11 LC: Loss of Carrier
When set, this bit indicates that Loss of Carrier occurred during frame
transmission. This is valid only for the frames transmitted without collision and
when the MAC operates in Half-Duplex Mode.
10 NC: No Carrier
When set, this bit indicates that the carrier sense signal form the PHY was not
asserted during transmission.
9 LC: Late Collision
When set, this bit indicates that frame transmission was aborted due to a collision
occurring after the collision window (64 byte times including Preamble in RMII
Mode and 512 byte times including Preamble and Carrier Extension in RGMII
Mode). Not valid if Underflow Error is set.
8 EC: Excessive Collision
Bit Description
When set, this bit indicates that the transmission was aborted after 16 successive
collisions while attempting to transmit the current frame. If the DR (Disable Retry)
bit in the MAC Configuration Register is set, this bit is set after the first collision
and the transmission of the frame is aborted.
7 VF: VLAN Frame
When set, this bit indicates that the transmitted frame was a VLAN-type frame.
6:3 CC: Collision Count
This 4-bit counter value indicates the number of collisions occurring before the
frame was transmitted. The count is not valid when the Excessive Collisions bit
(TDES0[8]) is set.
2 ED: Excessive Deferral
When set, this bit indicates that the transmission has ended because of excessive
deferral of over 24,288 bit times (155,680 bits times in 1000-Mbps mode) if the
Deferral Check (DC) bit is set high in the MAC Control Register.
1 UF: Underflow Error
When set, this bit indicates that the MAC aborted the frame because data arrived
late from the Host memory. Underflow Error indicates that the DMA encountered
an empty Transmit Buffer while transmitting the frame. The transmission process
enters the suspended state and sets both Transmit Underflow (Register
MAC_STATUS[5]) and Transmit Interrupt (Register MAC_STATUS [0]).
0 DB: Deferred Bit
When set, this bit indicates that the MAC defers before transmission because of
the presence of carrier. This bit is valid only in Half-Duplex mode.
Bit Description
26 DC: Disable CRC
When set, the MAC does not append the Cyclic Redundancy Check (CRC) to the
end of the transmitted frame. This is valid only when the first segment
(TDES1[29]).
25 TER: Transmit End of Ring
When set, this bit indicates that the descriptor list reached its final descriptor. The
returns to the base address of the list, creating a descriptor ring.
24 TCH: Second Address Chained
When set, this bit indicates that the second address in the descriptor is the Next
Descriptor address rather than the second buffer address. When TDES1[24] is set,
TBS2 (TDES1[21–11]) are “don’t care” values.
TDES1[25] takes precedence over TDES1[24].
23 DP: Disable Padding
When set, the MAC does not automatically add padding to a frame shorter than 64
bytes. When this bit is reset, the DMA automatically adds padding and CRC to a
frame shorter than 64 bytes and the CRC field is added despite the state of the DC
(TDES1[26]) bit. This is valid only when the first segment (TDES1[29]) is set.
22 Reserved.
21:11 TBS2: Transmit Buffer 2 Size
These bits indicate the Second Data Buffer in bytes. This field is not valid if
TDES1[24] is set.
10:0 TBS1: Transmit Buffer 1 Size
These bits indicate the First Data Buffer byte size. If this field is 0, the DMA
ignores this buffer and uses Buffer 2 or next descriptor depending on the value of
TCH (Bit 24).
3. Program the following fields to initialize the Bus Mode Register by setting values in
register MAC_BUS_MODE
a. Mixed Burst and AAL
b. Fixed burst or undefined burst
c. Burst length values and burst mode values.
d. Descriptor Length (only valid if Ring Mode is used)
e. Tx and Rx DMA Arbitration scheme
4. Program the AXI Interface options in the register MAC_BUS_MODE
a. If fixed burst-length is enabled, then select the maximum burst-length possible on the
AXI bus (Bits[7:1])
5. A proper descriptor chain for transmit and receive must be created. It should also ensure
that the receive descriptors are owned by DMA (bit 31 of descriptor should be set). When
OSF mode is used, at least two descriptors are required.
6. Software should create three or more different transmit or receive descriptors in the chain
before reusing any of the descriptors.
7. Initialize receive and transmit descriptor list address with the base address of transmit
and receive descriptor (register MAC_RX_DESC_LIST_ADDR and
MAC_TX_DESC_LIST_ADDR).
8. Program the following fields to initialize the mode of operation by setting values in
register MAC_OP_MODE
a. Receive and Transmit Store And Forward
b. Receive and Transmit Threshold Control (RTC and TTC)
c. Hardware Flow Control enable
d. Flow Control Activation and De-activation thresholds for MTL Receive and Transmit FIFO
(RFA and RFD)
e. Error Frame and undersized good frame forwarding enable
f. OSF Mode
9. Clear the interrupt requests, by writing to those bits of the status register (interrupt bits
only) which are set. For example, by writing 1 into bit 16 - normal interrupt summary will
clear this bit (register MAC_STATUS).
10. Enable the interrupts by programming the interrupt enable register MAC_INT_ENA.
11. Start the Receive and Transmit DMA by setting SR (bit 1) and ST (bit 13) of the control
register MAC_OP_MODE.
MAC Initialization
The following MAC Initialization operations can be performed after the DMA initialization
sequence. If the MAC Initialization is done before the DMA is set-up, then enable the MAC
receiver (last step below) only after the DMA is active. Otherwise, received frames will fill
the RxFIFO and overflow.
1. Program the register MAC_GMII_ADDR for controlling the management cycles for external
PHY, for example, Physical Layer Address PA (bits 15-11). Also set bit 0 (GMII Busy) for
writing into PHY and reading from PHY.
2. Read the 16-bit data of (MAC_GMII_DATA) from the PHY for link up, speed of operation,
and mode of operation, by specifying the appropriate address value in
registerMAC_GMII_ADDR (bits 15-11).
3. Provide the MAC address registers (MAC_MAC_ADDR0_HI and MAC_MAC_ADDR0_LO).
4. If Hash filtering is enabled in your configuration, program the Hash filter register
(MAC_HASH_TAB_HI and MAC_HASH_TAB_LO).
5. Program the following fields to set the appropriate filters for the incoming frames in
register MAC_MAC_FRM_FILT
a. Receive All
b. Promiscuous mode
c. Hash or Perfect Filter
d. Unicast, Multicast, broad cast and control frames filter settings etc.
6. Program the following fields for proper flow control in register MAC_FLOW_CTRL.
a. Pause time and other pause frame control bits
b. Receive and Transmit Flow control bits
SoC
CRU
DivFree
PLL 1~32
Fig. 12-13 RMII clock architecture when clock source from CRU
OSC
SoC
CRU
Fig. 12-14 RMII clock architecture when clock source from external OSC
the core.
9. Read the register MAC_PMT_CTRL_STA to clear the interrupt, then enable the other
modules in the system and resume normal operation.
Chapter 13 Timer
13.1 Overview
Timer is a programmable timer peripheral. This component is an APB slave device.There are
6 non-secure timers and 2 secure timers.
Timer5 and STimer0~1 count up from zero to a programmed value and generate an
interrupt when the counter reaches the programmed value.
Timer0~4 count down from a programmed value to zero and generate an interrupt when the
counter reaches zero.
Timer supports the following features:
Timer0~Timer5 is used for no-secure, STimer0~STimer1 is used for secure.
Two operation modes: free-running and user-defined count.
APB
APB_TIMERS
clk_timer0 timer0_int
Timer ch0
clk_timer1 timer1_int
Timer ch1
clk_timer5 timer5_int
Timer ch5
Initialize Timer
Enable Timer
Reset
Name Offset Size Description
Value
Timern Current Value Register
TIMER_TIMERn_CURRENT
0x000c W 0x00000000 1.High 32 bits of Current Value of
_VALUE1
Timer n
TIMER_TIMERn_CONTROL
0x0010 W 0x00000000 Timern Control Register
REG
TIMER_TIMERn_INTSTAT
0x0018 W 0x00000000 Timern Interrupt Status Register
US
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
TIMER_TIMERn_LOAD_COUNT1
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
load_count_0
31:0 RW 0x00000000 Low 32 bits Value to be loaded into Timer n. This is the value
from which counting commences
TIMER_TIMERn_CURRENT_VALUE0
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
timern_current_value0
31:0 RO 0x00000000
Low 32 bits of Current Value of Timer n
TIMER_TIMERn_CURRENT_VALUE1
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
timern_current_value0
31:0 RO 0x00000000
Low 32 bits of Current Value of Timer n
TIMER_TIMERn_CONTROLREG
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:3 RO 0x0 reserved
TIMER_TIMERn_INTSTATUS
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
timern_int
0 RO 0x0
This register contains the interrupt status for timern
timer_en
Fig. 13-3 Timing between timer_en and timer_clk
Please refer to function description section for the timer usage flow.
14.1 Overview
The chip uses the DAPLITE Technology to support real-time debug.
14.1.1 Features
Invasive debug with core halted
SW-DP
14.1.2 Debug components address map
The following table shows the debug components address in memory map:
Module Base Address
DAP_ROM 0xff680000
Please refer to the document CoreSight_DAPLite_TRM.pdf for the debug detail description.
Chapter 15 WatchDog
15.1 Overview
Watchdog Timer (WDT) is an APB slave peripheral that can be used to prevent system
lockup that may becaused by conflicting parts or programs .The WDT would generate
interrupt or reset signal when it’s counter reaches zero, then a reset controller would reset
the system. there are a Non-secure WDT(WDT_NS) and a Secure WDT(WDT_S);
WDT supports the following features:
32 bits APB bus width
WDT counter’s clock is pclk
32 bits WDT counter width
Counter counts down from a preset value to 0 to indicate the occurrence of a timeout
WDT can perform two types of operations when timeout occurs:
Generate a system reset
First generate an interrupt and if this is not cleared by the service routine by the
time a second timeout occurs then generate a system reset
Programmable reset pulse length
Total 16 defined-ranges of main timeout period
Support two WTD, one is used for non-secure application, the other is used for secure
application
WDT
Interrupt&
APB Register System
Interface Block Reset
Control
Interrupts
The WDT can be programmed to generate an interrupt (and then a system reset) when a
timeout occurs. When a 1 is written to the response mode field (RMOD, bit 1) of the
Watchdog Timer Control Register (WDT_CR), the WDT generates an interrupt. If it is not
cleared by the time a second timeout occurs, then it generates a system reset. If a restart
occurs at the same time the watchdog counter reaches zero, an interrupt is not generated.
System Resets
When a 0 is written to the output response mode field (RMOD, bit 1) of the Watchdog Timer
Control Register (WDT_CR), the WDT generates a system reset when a timeout occurs.
Reset Pulse Length
The reset pulse length is the number of pclk cycles for which a system reset is asserted.
When a system reset is generated, it remains asserted for the number of cycles specified by
the reset pulse length or until the system is reset. A counter restart has no effect on the
system reset once it has been asserted.
WDT_TORR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
timeout_period
Timeout period. This field is used to select the timeout period
from
which the watchdog counter restarts. A change of the timeout
period takes effect only after the next counter restart (kick).
The range of values available for a 32-bit watchdog counter are:
0000: 0x0000ffff
0001: 0x0001ffff
0010: 0x0003ffff
0011: 0x0007ffff
0100: 0x000fffff
3:0 RW 0x0
0101: 0x001fffff
0110: 0x003fffff
0111: 0x007fffff
1000: 0x00ffffff
1001: 0x01ffffff
1010: 0x03ffffff
1011: 0x07ffffff
1100: 0x0fffffff
1101: 0x1fffffff
1110: 0x3fffffff
1111: 0x7fffffff
WDT_CCVR
Address: Operational Base + offset (0x0008)
WDT_CRR
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
cnt_restart
Counter restart. This register is used to restart the WDT counter.
W1
7:0 0x00 As a safety feature to prevent accidental restarts, the value 0x76
C
must be written. A restart also clears the WDT interrupt. Reading
this register returns zero
WDT_STAT
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
wdt_status
This register shows the interrupt status of the WDT.
0 RO 0x0
1: Interrupt is active regardless of polarity;
0: Interrupt is inactive
WDT_EOI
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
wdt_int_clr
0 RO 0x0 Clears the watchdog interrupt. This can be used to clear the
interrupt without restarting the watchdog counter
The following figure show the operation flow chart (Response mode=1).
Reset
Program WDT_TORR.1
Program WDT_CR.2
NO Counter = 0?
YES
Assert Interrupt
NO
Decrement Counter
YES
NO YES NO
Counter = 0? Interrupt Cleared?5 Assert System Reset
16.1 Overview
The serial flash controller (SFC) is used to control the data transfer between the chip system
and the serial nor/nand flash device.
The SFC supports the following features:
Support AHB slave interface to configure register and read/write serial flash
Support AHB master interface to transfer data from/to SPIflash device
Support AHB burst with incr4x32bits, or incr x32bits
Support two independent clock domain: AHB clock and SPI clock
Support x1,x2,x4 data bits mode
Support up to 4 chip select
Support interrupt output, interrupt maskable
Support Spansion, MXIC,Gigadevice…vendor’s nor flash memory.
SFC_RX_FIFO si[0:3]
sfc_int SFC_INT_CTRL
Fig.16-1SFC architecture
csn
sclk
sio[ 3: 0] cm d A5 A4 A0 D1 D0
Fig.16-2idle cycles
When the field spi mode is set, the transfer waveform will like following, and switch to
mode3.
csn
sclk
sio[ 3: 0] cm d A5 A4 A0 D1 D0
Fig.16-3SPI mode
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
16.4.2 Detail Register Description
SFC_CTRL
Address: Operational Base + offset (0x0000)
Bit Attr Reset Value Description
31:14 RO 0x0 reserved
SFC_IMR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
DMAM
7 RW 0x0 1'b0: dma_intr interrupt is not masked
1'b1: dma_intr interrupt is masked
NSPIM
6 RW 0x0 1'b0: nspi_intr interrupt is not masked
1'b1: nspi_intr interrupt is masked
AHBM
5 RW 0x0 1'b0: ahb_intr interrupt is not masked
1'b1: ahb_intr interrupt is masked
SFC_ICLR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
W1 DMAC
7 0x0
C DMA finish Interrupt Clear
W1 NSPIC
6 0x0
C SPI Error Interrupt Clear
W1 AHBC
5 0x0
C AHB Error Interrupt Clear
W1 TRANSC
4 0x0
C Transfer finish Interrupt Clea
W1 TXEC
3 0x0
C Transmit FIFO Empty Interrupt Clear
W1 TXOC
2 0x0
C Transmit FIFO Overflow Interrupt Clear
W1 RXUC
1 0x0
C Receive FIFO Underflow Interrupt Clear
W1 RXFC
0 0x0
C Receive FIFO Full Interrupt Clear
SFC_FTLR
Address: Operational Base + offset (0x000c)
SFC_RCVR
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
RCVR
SFC Recover
0 RW 0x0
Write 1 to recover the SFC State Machine, FIFO state and other
logic state.
SFC_AX
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
AX
7:0 RW 0x00
The AX Value when doing the continuous read(enhance mode).
SFC_ABIT
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
ABIT
4:0 RW 0x00
Flash Address bits
SFC_ISR
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
DMAS
DMA Finish Interrupt Status
7 RO 0x0
1'b0: not active
1'b1: active
NSPIS
SPI Error Interrupt Statu
6 RO 0x0
1'b0: not active
1'b1: active
SFC_FSR
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:21 RO 0x0 reserved
RXWLVL
RX FIFO Water Level
0x0: fifo is empty
20:16 RO 0x00
0x1: 1 entry is taken
...
0x10:16 entry is taken, fifo is full
15:13 RO 0x0 reserved
TXWLVL
TX FIFO Water Level
0x0: fifo is full
12:8 RO 0x00
0x1: left 1 entry
...
0x10:left 16 entry, fifo is empty
7:4 RO 0x0 reserved
SFC_SR
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
SR
0: SFC is idle
0 RO 0x0
1: SFC is busy
When busy, don’t set the control register.
SFC_RISR
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
DMAS
DMA Finish Interrupt Status
7 RO 0x0
1'b0: not active
1'b1: active
NSPIS
SPI Error Interrupt Statu
6 RO 0x0
1'b0: not active
1'b1: active
AHBS
AHB Error Interrupt Status
5 RO 0x0
1'b0: not active
1'b1: active
SFC_VER
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
VER
31:0 RW 0x0a340003
the version id of sfc
SFC_QOP
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
SO123
0 RW 0x0 the value of SO1,SO2 and SO3 during command and address bits
input
SFC_DMATR
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
W1 DMATR
0 0x0
C Write 1 to start the dma transfer.
SFC_DMAADDR
Address: Operational Base + offset (0x0084)
SFC_CMD
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
CS
Flash chip select
2'b00: chip select 0
31:30 WO 0x0
2'b01: chip select 1
2'b10: chip select 2
2'b11: chip select 3
TRB
29:16 WO 0x0000
Total Data Bytes number that will write to /read from the flash.
ADDRB
Address bits number select, if there is not address command to
send, set to zero
15:14 WO 0x0 2'b00: 0bits
2'b01: 24bits
2'b10: 32bits
2'b11: From the ABIT register
CONT
Continuous read mode
13 WO 0x0
1'b0: disable continuous read mode
1'b1: enable continuous read mode
WR
Flash Write or Read
12 WO 0x0
1'b0:read
1'b1:write
DUMM
11:8 WO 0x0
Dummy Bits Number
CMD
7:0 WO 0x00
Flash Command
SFC_ADDR
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
ADDR
31:0 WO 0x00000000
Flash's address
SFC_DATA
Address: Operational Base + offset (0x0108)
Read sfc_srbusy_flag
Sfc busy
Sfc idle
Write address to
SFC_ADDR,config Flash's
address
Continuously
Write data to SFC_DATA
no
yes
END
Read sfc_srbusy_flag
Sfc busy
Sfc idle
Write address to
SFC_ADDR,config Flash's
address
Continuously
read data from SFC_DATA
no
yes
END
Read sfc_sr
busy_flag
no
yes
Configure register
Write sfc_cmd
Write sfc_addr
17.1 Overview
The serial peripheral interface is an APB slave device. A four wire full duplex serial protocol
from Motorola. There are four possible combinations for the serial clock phase and polarity.
The clock phase (SCPH) determines whether the serial transfer begins with the falling edge
of slave select signals or the first edge of the serial clock. The slave select line is held high
when the SPI is idle or disabled. This SPI controller can work as either master or slave
mode.
SPI Controller supports the following features:
Support Motorola SPI,TI Synchronous Serial Protocol and National Semiconductor Micro
wire interface
Support 32-bit APB bus
Support two internal 16-bit wide and 32-location deep FIFOs, one for transmitting and
the other for receiving serial data
Support two chip select signals in master mode
Support 4,8,16 bit serial data transfer
Support configurable interrupt polarity
Support asynchronous APB bus and SPI clock
Support master and slave mode
Support DMA handshake interface and configurable DMA water level
Support transmit FIFO empty, underflow, receive FIFO full, overflow, interrupt and all
interrupts can be masked
Support configurable water level of transmit FIFO empty and receive FIFO full interrupt
Support combine interrupt output
Support up to half of SPI clock frequency transfer in master mode and one sixth of SPI
clock frequency transfer in slave mode
Support full and half duplex mode transfer
Stop transmitting SCLK if transmit FIFO is empty or receive FIFO is full in master mode
Support configurable delay from chip select active to SCLK active in master mode
Support configurable period of chip select inactive between two parallel data in master
mode
Support big and little endian, MSB and LSB first transfer
Support two 8-bit audio data store together in one 16-bit wide location
Support sample RXD 0~3 SPI clock cycles later
Support configurable SCLK polarity and phase
Support fix and incremental address access to transmit and receive FIFO
txd
TRANSMIT SHIFT
APB
APB FIFO CONTROL
INTERFACE rxd
BUS LOGIC
ss_1_n
ss_0_n REGISTER RECEIVE spi_intr
INTERRUPT
BLOCK FIFO
ss_in_n LOGIC
mst_oe_n
dma_tx_ack spi_clk
dma_tx_req DMA FSM sclk_out
INTERFACE CONTROL CLOCK
PRE-SCALE sclk_in
dma_rx_req
dma_rx_ack
clk clk
cs cs
SPI Master SPI Slave
txd rxd
rxd txd
Transfer Modes
The SPI operates in the following three modes when transferring data on the serial bus.
1). Transmit and Receive
When SPI_CTRLR0 [19:18]== 2‘b00, both transmit and receive logic are valid.
2).Transmit Only
When SPI_CTRLR0 [19:18] == 2‘b01, the receive data are invalid and should not be stored
in the receive FIFO.
3).Receive Only
When SPI_CTRLR0 [19:18]== 2‘b10, the transmit data are invalid.
Clock Ratios
A summary of the frequency ratio restrictions between the bit-rate clock (sclk_out/sclk_in)
and the SPI peripheral clock (spi_clk) are described as,
When SPI Controller works as master, the Fspi_clk>= 2 × (maximum Fsclk_out)
When SPI Controller works as slave, the Fspi_clk>= 6 × (maximum Fsclk_in)
With the SPI, the clock polarity (SCPOL) configuration parameter determines whether the
inactive state of the serial clock is high or low. To transmit data, both SPI peripherals must
have identical serial clock phase (SCPH) and clock polarity (SCPOL) values. The data frame
can be 4/8/16 bits in length.
When the configuration parameter SCPH = 0, data transmission begins on the falling edge of
the slave select signal. The first data bit is captured by the master and slave peripherals on
the first edge of the serial clock; therefore, valid data must be present on the txd and rxd
lines prior to the first serial clock edge. The following two figures show a timing diagram for
a single SPI data transfer with SCPH = 0. The serial clock is shown for configuration
parameters SCPOL = 0 and SCPOL = 1.
spi0_clk/spi1_clk
spi0_clk/spi1_clk
spi0_txd/spi0_rxd/ MSB LSB MSB LSB
(LSB) (MSB) (LSB) (MSB)
spi1_txd/spi1_rxd
4/8/16bits
spi0_csn0/spi0_csn1/
spi1_csn0/spi1_csn1
0/0.5/1 spi0_clk/spi1_clk cycle(s)
SPI_CTRLR1
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
NDM
Number of Data Frames.When Transfer Mode is receive only, this
register field sets the number of data frames to be continuously
15:0 RW 0x0000 received by the SPI. The SPI continues to receive serial data until
the number of data frames received is equal to this register value
plus 1, which enables you to receive up to 64 KB of data in a
continuous transfer
SPI_ENR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
ENR
Enables and disables all SPI operations.
0 RW 0x0
Transmit and receive FIFO buffers are cleared when the device is
disabled
SPI_SER
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
SER
1:0 RW 0x0 Slave Select Enable.This register is valid only when SPI is
configured as a master device
SPI_BAUDR
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
BAUDR
SPI Clock Divider. Baud Rate Select.
This register is valid only when the SPI is configured as a master
device.The LSB for this field is always set to 0 and is unaffected
by a write operation, which ensures an even value is held in this
register.If the value is 0, the serial output clock (sclk_out) is
15:0 RW 0x0000 disabled. The frequency of the sclk_out is derived from the
following equation:
Fsclk_out = Fspi_clk/ SCKDV
Where SCKDV is any even value between 2 and 65534.
For example:
for Fspi_clk = 3.6864MHz and SCKDV =2
Fsclk_out = 3.6864/2= 1.8432MHz
SPI_TXFTLR
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
TXFTLR
Transmit FIFO Threshold Level.When the number of transmit
4:0 RW 0x00
FIFO entries is less than or equal to this value, the transmit FIFO
empty interrupt is triggered
SPI_RXFTLR
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
RXFTLR
Receive FIFO Threshold Level.When the number of receive FIFO
4:0 RW 0x00
entries is greater than or equal to this value + 1, the receive
FIFO full interrupt is triggered
SPI_TXFLR
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
TXFLR
5:0 RO 0x00 Transmit FIFO Level.Contains the number of valid data entries in
the transmit FIFO
SPI_RXFLR
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
RXFLR
5:0 RO 0x00 Reveive FIFO Level.Contains the number of valid data entries in
the receive FIFO
SPI_SR
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
RFF
Receive FIFO Full.
4 RO 0x0
1'b0: Receive FIFO is not full
1'b1: Receive FIFO is full
RFE
Receive FIFO Empty.
3 RW 0x0
1'b0: Receive FIFO is not empty
1'b1: Receive FIFO is empty
TFE
Transmit FIFO Empty.
2 RO 0x1
1'b0: Transmit FIFO is not empty
1'b1: Transmit FIFO is empty
TFF
Transmit FIFO Full.
1 RO 0x0
1'b0: Transmit FIFO is not full
1'b1: Transmit FIFO is full
BSF
SPI Busy Flag.When set, indicates that a serial transfer is in
0 RO 0x0 progress; when cleared indicates that the SPI is idle or disabled.
1'b0: SPI is idle or disabled
1'b1: SPI is actively transferring data
SPI_IPR
Address: Operational Base + offset (0x0028)
SPI_IMR
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
RFFIM
Receive FIFO Full Interrupt Mask.
4 RW 0x0
1'b0: spi_rxf_intr interrupt is masked
1'b1: spi_rxf_intr interrupt is not masked
RFOIM
Receive FIFO Overflow Interrupt Mask.
3 RW 0x0
1'b0: spi_rxo_intr interrupt is masked
1'b1: spi_rxo_intr interrupt is not masked
RFUIM
Receive FIFO Underflow Interrupt Mask.
2 RW 0x0
1'b0: spi_rxu_intr interrupt is masked
1'b1: spi_rxu_intr interrupt is not masked
TFOIM
Transmit FIFO Overflow Interrupt Mask.
1 RW 0x0
1'b0: spi_txo_intr interrupt is masked
1'b1: spi_txo_intr interrupt is not masked
TFEIM
Transmit FIFO Empty Interrupt Mask.
0 RW 0x0
1'b0: spi_txe_intr interrupt is masked
1'b1: spi_txe_intr interrupt is not masked
SPI_ISR
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
RFFIS
Receive FIFO Full Interrupt Status.
4 RO 0x0
1'b0: spi_rxf_intr interrupt is not active after masking
1'b1: spi_rxf_intr interrupt is full after masking
RFOIS
Receive FIFO Overflow Interrupt Status.
3 RO 0x0
1'b0: spi_rxo_intr interrupt is not active after masking
1'b1: spi_rxo_intr interrupt is active after masking
SPI_RISR
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
RFFRIS
Receive FIFO Full Raw Interrupt Status.
4 RW 0x0
1'b0: spi_rxf_intr interrupt is not active prior to masking
1'b1: spi_rxf_intr interrupt is full prior to masking
RFORIS
Receive FIFO Overflow Raw Interrupt Status.
3 RO 0x0
1'b0 = spi_rxo_intr interrupt is not active prior to masking
1'b1 = spi_rxo_intr interrupt is active prior to masking
RFURIS
Receive FIFO Underflow Raw Interrupt Status.
2 RO 0x0
1'b0: spi_rxu_intr interrupt is not active prior to masking
1'b1: spi_rxu_intr interrupt is active prior to masking
TFORIS
Transmit FIFO Overflow Raw Interrupt Status.
1 RO 0x0
1'b0: spi_txo_intr interrupt is not active prior to masking
1'b1: spi_txo_intr interrupt is active prior to masking
TFERIS
Transmit FIFO Empty Raw Interrupt Status.
0 RO 0x1
1'b0: spi_txe_intr interrupt is not active prior to masking
1'b1: spi_txe_intr interrupt is active prior to masking
SPI_ICR
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
SPI_DMACR
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
TDE
Transmit DMA Enable.
1 RW 0x0
1'b0: Transmit DMA disabled
1'b1: Transmit DMA enabled
RDE
Receive DMA Enable.
0 RW 0x0
1'b0: Receive DMA disabled
1'b1: Receive DMA enabled
SPI_DMATDLR
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
TDL
Transmit Data Level.
This bit field controls the level at which a DMA request is made by
4:0 RW 0x00 the transmit logic. It is equal to the watermark level; that is, the
dma_tx_req signal is generated when the number of valid data
entries in the transmit FIFO is equal to or below this field value,
and Transmit DMA Enable (DMACR[1]) = 1
SPI_DMARDLR
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
SPI_TXDR
Address: Operational Base + offset (0x0400)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
TXDR
15:0 WO 0x0000 Transimt FIFO Data Register.
When it is written to, data are moved into the transmit FIFO
SPI_RXDR
Address: Operational Base + offset (0x0800)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
RXDR
15:0 RW 0x0000 Receive FIFO Data Register.
When the register is read, data in the receive FIFO is accessed
IDLE
Disable
SPI
Transmit Only
Enable NO
SPI
If the transmit FIFO is
requesting and all data
have not been sent, then
write data into transmit
You may fill FIFO here: BUSY?
FIFO.
Transfer begins when first If the receive FIFO is
Write data to
data word is present in the requesting, then read data
Tx FIFO
transmit FIFO and a slave from receive FIFO. NO
is enabled. YES
Interrupt Service
Routine
Transfer in
Interrupt?
progress
YES
IDLE
Disable
SPI
Transmit Only
Enable NO
SPI
If the transmit FIFO is
requesting and all data
Receive Only have not been sent, then
write data into transmit
BUSY?
FIFO.
Wait for master Write data to If the receive FIFO is
to select slave Tx FIFO requesting, then read data
from receive FIFO. NO
YES
Interrupt Service
Routine
Transfer in
Interrupt?
progress
YES
Chapter 18 UART
18.1 Overview
The Universal Asynchronous Receiver/Transmitter (UART) is used for serial communication
with a peripheral, modem (data carrier equipment, DCE) or data set. Data is written from a
master (CPU) over the APB bus to the UART and it is converted to serial form and
transmitted to the destination device. Serial data is also received by the UART and stored for
the master (CPU) to read back.
UART Controller supports the following features:
Support 6 independent UART controller: UART0~UART5
contain two 64Bytes FIFOs for data receive and transmit
support auto flow-control
Support bit rates 115.2Kbps,460.8Kbps,921.6Kbps,1.5Mbps,3Mbps, 4Mbps
Support programmable baud rates, even with non-integer clock divider
Standard asynchronous communication bits (start, stop and parity)
Support interrupt-based or DMA-based mode
Support 5-8 bits width transfer
intr dma_tx_req
dtr_n dma_rx_req
rts_n register dma_tx_ack
dma_rx_ack
block
cts_n baud
modem baudout_n
dsr_n sync clock
generation
sin sout
serial serial
receiver transmitter
sir_in_n sir_out_n
FIFO Support
1. NONE FIFO MODE
If FIFO support is not selected, then no FIFOs are implemented and only a single receive
data byte and transmit data byte can be stored at a time in the RBR and THR.
2. FIFO MODE
The FIFO depth of UART0/UART1/UART2/UART3/UART4/UART5 is 64bytes. The FIFO mode of all
the UART is enabled by register FCR[0].
Interrupts
The following interrupt types can be enabled with the IER register.
Receiver Error
Receiver Data Available
Character Timeout (in FIFO mode only)
Transmitter Holding Register Empty at/below threshold (in Programmable THRE
Interrupt mode)
Modem Status
DMA Support
The UART supports DMA signaling with the use of two output signals (dma_tx_req_n and
dma_rx_req_n) to indicate when data is ready to be read or when the transmit FIFO is
empty.
The dma_tx_req_n signal is asserted under the following conditions:
When the Transmitter Holding Register is empty in non-FIFO mode.
When the transmitter FIFO is empty in FIFO mode with Programmable THRE interrupt
mode disabled.
When the transmitter FIFO is at, or below the programmed threshold with
Programmable THRE interrupt mode enabled.
The dma_rx_req_n signal is asserted under the following conditions:
When there is a single character available in the Receive Buffer Register in non-FIFO
mode.
When the Receiver FIFO is at or above the programmed trigger level in FIFO mode.
Auto Flow Control
The UART can be configured to have a 16750-compatible Auto RTS and Auto CTS serial data
flow control mode available. If FIFOs are not implemented, then this mode cannot be
selected. When Auto Flow Control mode has been selected, it can be enabled with the
Modem Control Register (MCR[5]). Following figure shows a block diagram of the Auto Flow
Control functionality.
UART_THR
Address: Operational Base + offset (0x0000)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
data_output
Data to be transmitted on the serial output port (sout) in UART
mode or the serial infrared output (sir_out_n) in infrared mode.
Data should only be
written to the THR when the THR Empty (THRE) bit (LSR[5]) is
set.
If in non-FIFO mode or FIFOs are disabled (FCR[0] = 0) and
THRE is set, writing a single character to the THR clears the
7:0 RW 0x00 THRE. Any additional writes to the THR before the THRE is set
again causes the THR data to be
overwritten.
If in FIFO mode and FIFOs are enabled (FCR[0] = 1) and THRE is
set, x number of characters of data may be written to the THR
before the FIFO is full. The number x (default=16) is determined
by the value of FIFO Depth that you set during configuration. Any
attempt to write data when the FIFO is full results in the write
data being lost
UART_DLL
Address: Operational Base + offset (0x0000)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
UART_DLH
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
baud_rate_divisor_H
7:0 RW 0x00 Upper 8 bits of a 16-bit, read/write, Divisor Latch register that
contains the baud rate divisor for the UART
UART_IER
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
prog_thre_int_en
Programmable THRE Interrupt Mode Enable.
7 RW 0x0 This is used to enable/disable the generation of THRE Interrupt.
0 = disabled
1 = enabled
6:4 RO 0x0 reserved
modem_status_int_en
Enable Modem Status Interrupt.
This is used to enable/disable the generation of Modem Status
3 RW 0x0
Interrupt. This is the fourth highest priority interrupt.
0 = disabled
1 = enabled
UART_IIR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
fifos_en
FIFOs Enabled.
This is used to indicate whether the FIFOs are enabled or
7:6 RO 0x0
disabled.
00 = disabled
11 = enabled
5:4 RO 0x0 reserved
int_id
Interrupt ID.
This indicates the highest priority pending interrupt which can be
one of the following types:
0000 = modem status
3:0 RO 0x1 0001 = no interrupt pending
0010 = THR empty
0100 = received data available
0110 = receiver line status
0111 = busy detect
1100 = character timeout
UART_FCR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
UART_LCR
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
div_lat_access
Divisor Latch Access Bit.
Writeable only when UART is not busy (USR[0] is zero), always
7 RW 0x0 readable. This bit is used to enable reading and writing of the
Divisor Latch register (DLL and DLH) to set the baud rate of the
UART. This bit must be cleared after initial baud rate setup in
order to access other registers
break_ctrl
Break Control Bit.
This is used to cause a break condition to be transmitted to the
receiving device. If set to one the serial output is forced to the
spacing
6 RW 0x0 (logic 0) state. When not in Loopback Mode, as determined by
MCR[4], the sout line is forced low until the Break bit is cleared.
If MCR[6] set to one, the sir_out_n line is continuously pulsed.
When in Loopback Mode, the break condition is internally looped
back to the
receiver and the sir_out_n line is forced low
5 RO 0x0 reserved
even_parity_sel
Even Parity Select.
Writeable only when UART is not busy (USR[0] is zero), always
4 RW 0x0 readable. This is used to select between even and odd parity,
when parity is enabled (PEN set to one). If set to one, an even
number of logic 1s is transmitted or checked. If set to zero, an
odd number of logic 1s is transmitted or checked
parity_en
Parity Enable.
Writeable only when UART is not busy (USR[0] is zero), always
readable. This bit is used to enable and disable parity generation
3 RW 0x0
and detection in transmitted and received serial character
respectively.
0 = parity disabled
1 = parity enabled
UART_MCR
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:7 RO 0x0 reserved
sir_mode_en
SIR Mode Enable.
6 RW 0x0 This is used to enable/disable the IrDA SIR Mode .
0 = IrDA SIR Mode disabled
1 = IrDA SIR Mode enabled
auto_flow_ctrl_en
Auto Flow Control Enable.
5 RW 0x0
0 = Auto Flow Control Mode disabled
1 = Auto Flow Control Mode enabled
loopback
LoopBack Bit.
4 RW 0x0
This is used to put the UART into a diagnostic mode for test
purposes
UART_LSR
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
receiver_fifo_error
Receiver FIFO Error bit. This bit is relevant FIFOs are enabled
(FCR[0] set to one). This is used to indicate if there is at least
7 RO 0x0
one parity error, framing error, or break indication in the FIFO.
0 = no error in RX FIFO
1 = error in RX FIFO
trans_empty
Transmitter Empty bit. If FIFOs enabled (FCR[0] set to one), this
bit is set whenever the Transmitter Shift Register and the FIFO
6 RO 0x1
are both empty. If FIFOs are
disabled, this bit is set whenever the Transmitter Holding Register
and the Transmitter Shift Register are both empty
UART_MSR
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
UART_SCR
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
temp_store_space
7:0 RW 0x00 This register is for programmers to use as a temporary storage
space
UART_SRBR
Address: Operational Base + offset (0x0030)
UART_STHR
Address: Operational Base + offset (0x006c)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
shadow_thr
7:0 RO 0x00
This is a shadow register for the THR
UART_FAR
Address: Operational Base + offset (0x0070)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
fifo_access_test_en
This register is use to enable a FIFO access mode for testing, so
that the receive FIFO can be written by the master and the
transmit FIFO can be read by the master when FIFOs are
0 RW 0x0 implemented and enabled. When FIFOs are not enabled it allows
the RBR to be written by the master and the THR to be read by
the master.
0 = FIFO access mode disabled
1 = FIFO access mode enabled
UART_TFR
Address: Operational Base + offset (0x0074)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
UART_RFW
Address: Operational Base + offset (0x0078)
Bit Attr Reset Value Description
31:10 RO 0x0 reserved
receive_fifo_framing_error
Receive FIFO Framing Error.
9 WO 0x0
These bits are only valid when FIFO access mode is enabled
(FAR[0] is set to one)
receive_fifo_parity_error
Receive FIFO Parity Error.
8 WO 0x0
These bits are only valid when FIFO access mode is enabled
(FAR[0] is set to one)
receive_fifo_write
Receive FIFO Write Data.
These bits are only valid when FIFO access mode is enabled
(FAR[0] is set to one). When FIFOs are enabled, the data that is
7:0 WO 0x00 written to the RFWD is pushed into the receive FIFO. Each
consecutive write pushes the new data to the next write location
in the receive FIFO.
When FIFOs not enabled, the data that is written to the RFWD is
pushed into the RBR
UART_USR
Address: Operational Base + offset (0x007c)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
receive_fifo_full
Receive FIFO Full.
This is used to indicate that the receive FIFO is completely full.
4 RO 0x0
0 = Receive FIFO not full
1 = Receive FIFO Full
This bit is cleared when the RX FIFO is no longer full
UART_TFL
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
trans_fifo_level
4:0 RW 0x00 Transmit FIFO Level. This is indicates the number of data entries
in the transmit FIFO
UART_RFL
Address: Operational Base + offset (0x0084)
Bit Attr Reset Value Description
31:5 RO 0x0 reserved
receive_fifo_level
4:0 RO 0x00 Receive FIFO Level. This is indicates the number of data entries
in the receive FIFO
UART_SRR
Address: Operational Base + offset (0x0088)
Bit Attr Reset Value Description
31:3 RO 0x0 reserved
xmit_fifo_reset
2 WO 0x0 XMIT FIFO Reset.
This is a shadow register for the XMIT FIFO Reset bit (FCR[2])
rcvr_fifo_reset
1 WO 0x0 RCVR FIFO Reset.
This is a shadow register for the RCVR FIFO Reset bit (FCR[1])
uart_reset
UART Reset.
0 WO 0x0 This asynchronously resets the Uart and synchronously removes
the reset assertion. For a two clock implementation both pclk and
sclk domains are reset
UART_SRTS
Address: Operational Base + offset (0x008c)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
shadow_req_to_send
Shadow Request to Send.
0 RW 0x0 This is a shadow register for the RTS bit (MCR[1]), this can be
used to remove the burden of having to performing a read-
modify-write on the MCR
UART_SBCR
Address: Operational Base + offset (0x0090)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
shadow_break_ctrl
Shadow Break Control Bit.
0 RW 0x0 This is a shadow register for the Break bit (LCR[6]), this can be
used to remove the burden of having to performing a read modify
write on the LCR
UART_SDMAM
Address: Operational Base + offset (0x0094)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
shadow_dma_mode
0 RW 0x0 Shadow DMA Mode. This is a shadow register for the DMA mode
bit (FCR[3])
UART_SFE
Address: Operational Base + offset (0x0098)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
shadow_fifo_en
0 RW 0x0 Shadow FIFO Enable. Shadow FIFO Enable. This is a shadow
register for the FIFO enable bit (FCR[0])
UART_SRT
Address: Operational Base + offset (0x009c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
shadow_rcvr_trigger
1:0 RW 0x0 Shadow RCVR Trigger. This is a shadow register for the RCVR
trigger bits (FCR[7:6])
UART_STET
Address: Operational Base + offset (0x00a0)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
shadow_tx_empty_trigger
1:0 RW 0x0 Shadow TX Empty Trigger. This is a shadow register for the TX
empty trigger bits (FCR[5:4])
UART_HTX
Address: Operational Base + offset (0x00a4)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
halt_tx_en
This register is use to halt transmissions for testing, so that the
transmit FIFO can be filled by the master when FIFOs are
0 RW 0x0
implemented and enabled.
0 = Halt TX disabled
1 = Halt TX enabled
UART_DMASA
Address: Operational Base + offset (0x00a8)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
dma_software_ack
0 WO 0x0 This register is use to perform a DMA software acknowledge if a
transfer needs to be terminated due to an error condition
UART_CPR
Address: Operational Base + offset (0x00f4)
UART_UCV
Address: Operational Base + offset (0x00f8)
Bit Attr Reset Value Description
ver
31:0 RO 0x3330382a
ASCII value for each number in the version
UART_CTR
Address: Operational Base + offset (0x00fc)
Bit Attr Reset Value Description
peripheral_id
31:0 RO 0x44570110
This register contains the peripherals identification code
The I/O interface of UART2 can be chosen by setting GRF_IOFUNC_SEL0[10]bit, if this bit is
set to 1, UART2 uses the UART2m1 I/O interface. The I/O interface of UART3 can be sen by
setting GRF_IOFUNC_SEL0[9]bit, if this bit is set to 1, UART3 uses the UART3m1 I/O
interface.
IDLE
Set LCR[7] to
select DLL,DLH
Set LCR[1:0] to
select data width
Set DLL,DLH to
decide baud rate
Wait transfer
end
IDLE
Set LCR[7] to
select DLL,DLH
Set LCR[1:0] to
select data width
Write data to
THR/STHR
Set MCR to start
the transfer
Wait transfer
end
xin_osc0_func
S3_0
gpllmux DivFree
S3_14
G1_0 S5
usb480m 1~32
G1_2 FracDiv
S4_14
npllmux G1_3 D1 uart0
DivFreeN.5
G1_1 1.5~32.5
S4_0
xin_osc0_func
S34_0
gpllmux DivFree
S34_14
G10_12 S36
usb480m 1~32
G10_14 FracDiv
S35_14
npllmux G10_15 D1 uart1
DivFreeN.5
G10_13 1.5~32.5
S35_0
xin_osc0_func
S37_0
gpllmux DivFree
S37_14
G11_0 S39
usb480m 1~32
G11_2 FracDiv
S38_14
npllmux G11_3 D1 uart2
DivFreeN.5
G11_1 1.5~32.5
S38_0
xin_osc0_func
S40_0
gpllmux DivFree
S40_14
G11_4 S42
usb480m 1~32
G11_6 FracDiv
S41_14
npllmux G11_7 D1 uart3
DivFreeN.5
G11_5 1.5~32.5
S41_0
xin_osc0_func
S43_0
gpllmux DivFree
S43_14
G11_8 S45
usb480m 1~32
G11_10 FracDiv
S44_14
xin_osc0_func
S46_0
gpllmux DivFree
S46_14
G11_12 S48
usb480m 1~32
G11_14 FracDiv
S47_14
Configure UART_DLL to 1.
Chapter 19 SAR-ADC
19
19.1 Overview
The SAR-ADC is a 3-channel signal-ended 10-bit Successive Approximation Register (SAR)
A/D Converter. It uses the supply and ground as it reference which avoid use of any external
reference. It converts the analog input signal into 10-bit binary digital codes at maximum
conversion rate of 1MSPS with 13MHz A/D converter clock.
SARADC_AIN[2:0]
REFP (VDDA_SARADC)
SARADC_STAS
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
adc_status
0 RO 0x0 0: ADC stop
1: Conversion in progress
SARADC_CTRL
Address: Operational Base + offset (0x0008)
SARADC_DLY_PU_SOC
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
DLY_PU_SOC
5:0 RW 0x00 The start signal will be asserted (DLY_PU_SOC + 2) sclk clock
period later after power up
20.1 Overview
TS-ADC Controller module supports user-defined mode and automatic mode.User-defined
mode refers, TSADC all the control signals entirely by software writing to register for direct
control.Automatic mode refers to the module automatically poll TSADC output, and the
results were checked. If you find that the temperatureHigh in a period of time, an interrupt
is generated to the processor down-measures taken; if the temperature over a period of
timeHigh, the resulting TSHUT gave CRU module, let it reset the entire chip, or via GPIO
give PMIC.
TS-ADC Controller supports the following features:
Support User-Defined Mode and Automatic Mode
In User-Defined Mode, start_of_conversion can be controlled completely by software,
and also can be generated by hardware.
In Automatic Mode, the temperature of alarm(high/low temperature) interrupt can be
configurable
In Automatic Mode, the temperature of system reset can be configurable
Support to 2 channel TS-ADC, the temperature criteria can be configurable
In Automatic Mode, the time interval of temperature detection can be configurable
In Automatic Mode, when detecting a high temperature, the time interval of
temperature detection can be configurable
High temperature denounce can be configurable
10-bit SARADC up to 50KS/s sampling rate
enough gain.
Reset
Name Offset Size Description
Value
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
TSADC_AUTO_CON
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:26 RO 0x0 reserved
last_tshut_2cru
TSHUT status.
25 RW 0x0 This bit will set to 1 when tshut is valid, and only be cleared when
application write 1 to it.
This bit will not be cleared by system reset
last_tshut_2gpio
TSHUT status.
24 RW 0x0 This bit will set to 1 when tshut is valid, and only be cleared when
application write 1 to it.
This bit will not be cleared by system reset
23:18 RO 0x0 reserved
sample_dly_sel
17 RO 0x0 0: AUTO_PERIOD is used.
1: AUTO_PERIOD_HT is used
auto_status
16 RO 0x0 0: auto mode stop;
1: auto mode in progress
15:14 RO 0x0 reserved
TSADC_INT_EN
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
eoc_int_en
eoc interrupt enable in user defined mode
16 RW 0x0
0: disable;
1: enable
15:14 RO 0x0 reserved
lt_inten_src1
low temperature interrupt enable for src1
13 RW 0x0
0: disable
1: enable
TSADC_INT_PD
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
eoc_int_pd
16 RW 0x0 This bit will be set to 1 when end-of-conversion.
Set 0 to clear the interrupt
15:14 RO 0x0 reserved
TSADC_DATA0
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_data
11:0 RO 0x000
A/D value of the channel 0 last conversion (DOUT[9:0])
TSADC_DATA1
Address: Operational Base + offset (0x0024)
TSADC_COMP0_INT
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_comp_src0
ADC high level for channel 0.
11:0 RW 0x000 ADC output is bigger than adc_comp, means the temperature is
high.
ADC_HT_INT will be valid
TSADC_COMP1_INT
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_comp_src1
ADC high level for channel 1.
11:0 RW 0x000 ADC output is bigger than adc_comp, means the temperature is
high.
ADC_HT_INT will be valid
TSADC_COMP0_SHUT
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_comp_src0
11:0 RW 0x000 ADC high level for channel 0 to generate TSHUT.
ADC output is bigger than adc_comp, TSHUT will be valid
TSADC_COMP1_SHUT
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_comp_src1
11:0 RW 0x000 ADC high level for channel 1 to generate TSHUT.
ADC output is bigger than adc_comp, TSHUT will be valid
TSADC_HIGHT_INT_DEBOUNCE
Address: Operational Base + offset (0x0060)
TSADC_HIGHT_TSHUT_DEBOUNCE
Address: Operational Base + offset (0x0064)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
debounce
7:0 RW 0x03 ADC controller will only generate TSHUT when temperature /
voltage is higher than COMP_SHUT for "debounce" times
TSADC_AUTO_PERIOD
Address: Operational Base + offset (0x0068)
Bit Attr Reset Value Description
auto_period
31:0 RW 0x00010000 when auto mode is enabled, this register controls the interleave
between every two accessing of ADC
TSADC_AUTO_PERIOD_HT
Address: Operational Base + offset (0x006c)
Bit Attr Reset Value Description
auto_period
This register controls the interleave between every two accessing
31:0 RW 0x00010000
of ADC after the temperature is higher than COMP_SHUT or
COMP_INT
TSADC_COMP0_LOW_INT
Address: Operational Base + offset (0x0080)
Bit Attr Reset Value Description
31:12 RO 0x0 reserved
adc_comp_src0
ADC low level.
11:0 RW 0x000 ADC output is lower than adc_comp, means the temperature is
low.
ADC_LOW_INT will be valid
TSADC_COMP1_LOW_INT
Address: Operational Base + offset (0x0084)
Note:
Code to Temperature mapping of the Temperature sensor is a piece wise linear curve. Any temperature,
code faling between to 2 give temperatures can be linearly interpolated.
Code to Temperature mapping should be updated based on sillcon results.
20.5.3 User-Define Mode
In user-define mode, the PD_DVDD and CHSEL_DVDD are generate by setting register
TSADC_USER_CON, bit[3] and bit[2:0]. In order to ensure timing between PD_DVDD and
CHSEL_DVDD, the CHSEL_DVDD must be set before the PD_DVDD.
In user-define mode, you can choose the method to control the START_OF_CONVERSION
by setting bit[4] of TSADC_USER_CON. If set to 0, the start_of_conversion will be assert
after “inter_pd_soc” cycles, which could be set by bit[11:6] of TSADC_USER_CON. And if
start_mode was set 1, the start_of_conversion will be controlled by bit[5] of
TSADC_USER_CON.
Software can get the four channel temperature from TSADC_DATAn (n=0,1,2,3).
20.5.4 Automatic Mode
You can use the automatic mode with the following step:
Set TSADC_AUTO_PERIOD,configure the interleave between every two accessing of
TSADC in normal operation.
Set TSADC_AUTO_PERIOD_HT. configure the interleave between every two accessing of
TSADC after the temperature is higher than COMP_SHUT or COMP_INT.
Set TSADC_COMPn_INT(n=0,1), configure the high temperature level, if tsadc output is
smaller than the value, means the temperature is high, tsadc_int will be asserted.
Set TSADC_COMPn_SHUT(n=0,1), configure the super high temperature level, if tsadc
output is smaller than the value, means the temperature is too high, TSHUT will be
asserted.
Set TSADC_INT_EN, you can enable the high temperature interrupt for all channel; and
you can also set TSHUT output to gpio to reset the whole chip; and you can set TSHUT
output to cru to reset the whole chip.
Set TSADC_HIGHT_INT_DEBOUNCE and TSADC_HIGHT_TSHUT_DEBOUNCE, if the
temperature is higher than COMP_INT or COMP_SHUT for “debounce” times, TSADC
controller will generate interrupt or TSHUT.
Set TSADC_AUTO_CON, enable the TSADC controller.
Chapter 21 GPIO
21.1 Overview
GPIO is a programmable General Purpose Programming I/O peripheral. This component is an
APB slave device.GPIO controls the output data and direction of external I/O pads. It also
can read back thedata on external pads using memory-mapped registers.
GPIO supports the following features:
32 bits APB bus width
32 independently configurable signals
Separate data registers and data direction registers for each signal
Software control for each signal, or for each bit of each signal
Configurable interrupt mode
Port xpins
I/O
Interface
APB APB
Interface
Interrupts
Interrupt
Detection
GPIO_SWPORTA_DDR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
gpio_swporta_ddr
Values written to this register independently control the direction
31:0 RW 0x00000000 of the corresponding data bit in Port A.
1'b0: Input (default)
1'b1: Output
GPIO_INTEN
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
gpio_int_en
Allows each bit of Port A to be configured for interrupts.
Whenever a 1 is written to a bit of this register, it configures the
corresponding bit on Port A to become an interrupt; otherwise,
31:0 RW 0x00000000 Port A operates as a normal GPIO signal. Interrupts are disabled
on the corresponding bits of Port A if the corresponding data
direction register is set to Output.
1'b0: Configure Port A bit as normal GPIO signal (default)
1'b1: Configure Port A bit as interrupt
GPIO_INTMASK
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
gpio_int_mask
Controls whether an interrupt on Port A can create an interrupt
for the interrupt controller by not masking it. Whenever a 1 is
written to a bit in this register, it masks the interrupt generation
0 RW 0x0
capability for this signal; otherwise interrupts are allowed
through.
1'b0: Interrupt bits are unmasked (default)
1'b1: Mask interrupt
GPIO_INTTYPE_LEVEL
Address: Operational Base + offset (0x0038)
GPIO_INT_POLARITY
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
gpio_int_polarity
Controls the polarity of edge or level sensitivity that can occur on
31:0 RW 0x00000000 input of Port A.
1'b0: Active-low (default)
1'b1: Active-high
GPIO_INT_STATUS
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
gpio_int_status
31:0 RO 0x00000000
Interrupt status of Port A
GPIO_INT_RAWSTATUS
Address: Operational Base + offset (0x0044)
Bit Attr Reset Value Description
gpio_int_rawstatus
31:0 RO 0x00000000
Raw interrupt of status of Port A (premasking bits)
GPIO_DEBOUNCE
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
gpio_debounce
Controls whether an external signal that is the source of an
interrupt needs to be debounced to remove any spurious glitches.
Writing a 1 to a bit in this register enables the debouncing
31:0 RW 0x00000000
circuitry. A signal must be valid for two periods of an external
clock before it is internally processed.
1'b0: No debounce (default)
1'b1: Enable debounce
GPIO_PORTA_EOI
Address: Operational Base + offset (0x004c)
GPIO_EXT_PORTA
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
gpio_ext_porta
When Port A is configured as Input, then reading this location
31:0 RW 0x00000000 reads the values on the signal. When the data direction of Port A
is set as Output, reading this location reads the data register for
Port A
GPIO_LS_SYNC
Address: Operational Base + offset (0x0060)
Bit Attr Reset Value Description
gpio_ls_sync
Writing a 1 to this register results in all level-sensitive interrupts
31:0 RW 0x00000000 being synchronized to pclk_intr.
1'b0: No synchronization to pclk_intr (default)
1'b1: Synchronize to pclk_intr
GPIO_INT_BOTHEDGE
Address: Operational Base + offset (0x0068)
Bit Attr Reset Value Description
interrupt_both_edge_type
Controls the edge type of interrupt that can occur on Port
A.Whenever a particular bit is programmed to 1, it enables the
generation of interrupts on both the rising edge and the falling
edge of an external input signal corresponding to that bit on port
31:0 RW 0x00000000 A.The values programmed in the registers gpio_intype_level and
gpio_int_polarity for this particular bit are not considered when
the corresponding bit of this register is set to 1. Whenever a
particular bit is programmed to 0, the interrupt type depends on
the value of the corresponding bits in the gpio_inttype_level and
gpio_int_polarity registers
22.1 Overview
The I2S/PCM controller is designed for interfacing between the AHB bus and the I2S bus.
The I2S bus (Inter-IC sound bus) is a serial link for digital audio data transfer between
devices in the system and be invented by Philips Semiconductor. Now it is widely used by
many semiconductor manufacturers.
Devices often use the I2S bus are ADC, DAC, DSP, CPU, etc. With the I2S interface, we can
connect audio devices and the embedded SoC platform together and provide an audio
interface solution for the system.
Not only I2S but also PCM mode surround audio output and stereo input are supported in
I2S/PCM controller.
There are two 2 channel I2S/PCM controllers embedded in the design, I2S1 and I2S2.
Common features for I2S1 and I2S2 are as follows.
Support AHB bus interface
Support 16 ~ 32 bits audio data transfer
Support master and slave mode
Support DMA handshake interface and configurable DMA water level
Support transmit FIFO empty, underflow, receive FIFO full, overflow interrupt and all
interrupts can be masked
Support configurable water level of transmit FIFO empty and receive FIFO full interrupt
Support combine interrupt output
Support 2 channels audio receiving in PCM mode
Support I2S normal, left and right justified mode serial audio data transfer
Support PCM early, late1, late2, late3 mode serial audio data transfer
Support MSB or LSB first serial audio data transfer
Support 16 to 31 bit audio data left or right justified in 32-bit wide FIFO
Support two 16-bit audio data store together in one 32-bit wide location
Support single LRCK for transmitting and receiving data if the sample rate are the same
Support configurable SCLK and LRCK polarity
System
Clock Generator I2S BUS
Interface
AHB BUS
stereo
interrupt Receive audio
Receiver
interface FIFO input
module is MCLK_I2S, and by the divider of the module, the clock generator generates SCLK
and LRCK to transmitter and receiver.
Transmitter
The Transmitter implements transmission operation. The transmitter can act as either
master or slave, with I2S or PCM mode surround serial audio interface.
Receiver
The Receiver implements receive operation. The receiver can act as either master or slave,
with I2S or PCM mode stereo serial audio interface.
Transmit FIFO
The Transmit FIFO is the buffer to store transmitted audio data. The size of the FIFO is
32bits x 32.
Receive FIFO
The Receive FIFO is the buffer to store received audio data. The size of the FIFO is 32bits x
32.
SCLK
LRCK
I2S Transmitter Master I2S Receiver Slave
SD
SCLK
LRCK
I2S Transmitter Slave I2S Receiver Master
SD
i2s_sclk
i2s_lrck_rx/
Left channel Right channel
i2s_lrck_tx
i2s_sdo 0 1 21 22 23 0 1 21 22 23 0
i2s_sdi 0 1 21 22 23 0 1 21 22 23 0
i2s_sdo 0 1 21 22 23 0 1 21 22 23 0 1
i2s_sdi 0 1 21 22 23 0 1 21 22 23 0 1
i2s_sdo 0 1 21 22 23 0 1 21 22 23
i2s_sdi 0 1 21 22 23 0 1 21 22 23
i2s_lrck_rx
/i2s_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s_lrck_rx
/i2s_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s_sdo 0 1 23 0 1 23 0 1 23 0 1
channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s_sdi 0 1 23 0 1 23 0 1
i2s_lrck_rx
/i2s_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s_lrck_rx
/i2s_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s_sdo 0 1 23 0 1 23 0 1 23 0
no valid data
channel0 left channel0 right channel1 left ~ channel3 right
i2s_sdi 0 1 23 0 1 23 0
i2s_sclk
i2s_lrck_rx
/i2s_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s_lrck_rx
/i2s_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s_sdo 0 1 23 0 1 23 0 1 23
channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s_sdi 0 1 23 0 1 23
i2s_lrck_rx
/i2s_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s_lrck_rx
/i2s_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s_sdi 0 1 23 0 1 23
I2S_RXCR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:17 RO 0x0 reserved
RCSR
16:15 RW 0x0 2'b00:two channel
2'b01~2'b11: reserved
HWT
(Can be written only when XFER[1] bit is 0.)
Only valid when VDW select 16bit data.
14 RW 0x0
0: 32 bit data valid to AHB/APB bus. Low 16 bit for left channel
and high 16 bit for right channel.
1: low 16bit data valid to AHB/APB bus, high 16 bit data invalid.
13 RO 0x0 reserved
SJM
(Can be written only when XFER[1] bit is 0.)
16bit~31bit DATA stored in 32 bits width fifo.
If VDW select 16bit data, this bit is valid only when HWT select
12 RW 0x0
0.Because if HWT is 1, every fifo unit contain two 16bit data and
32 bit space is full, it is impossible to choose justified mode.
0: right justified
1: left justified
FBM
(Can be written only when XFER[1] bit is 0.)
11 RW 0x0
0: MSB
1: LSB
IBM
(Can be written only when XFER[1] bit is 0.)
0: I2S normal
10:9 RW 0x0
1: I2S Left justified
2: I2S Right justified
3: reserved
PBM
(Can be written only when XFER[1] bit is 0.)
0: PCM no delay mode
8:7 RW 0x0
1: PCM delay 1 mode
2: PCM delay 2 mode
3: PCM delay 3 mode
6 RO 0x0 reserved
TFS
(Can be written only when XFER[1] bit is 0.)
5 RW 0x0
0: i2s
1: pcm
I2S_CKR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:30 RO 0x0 reserved
TRCM
2'b00/2'b11: tx_lrck/rx_lrck are used as synchronous signal for
29:28 RW 0x0 TX /RX respectively.
2'b01: only tx_lrck is used as synchronous signal for TX and RX.
2'b10: only rx_lrck is used as synchronous signal for TX and RX.
MSS
(Can be written only when XFER[1] or XFER[0] bit is 0.)
27 RW 0x0
0: master mode(sclk output)
1: slave mode(sclk input)
CKP
(Can be written only when XFER[1] or XFER[0] bit is 0.)
26 RW 0x0
0: sample data at posedge sclk and drive data at negedge sclk
1: sample data at negedge sclk and drive data at posedge sclk
RLP
(Can be written only when XFER[1] or XFER[0] bit is 0.)
0: normal polarity
(I2S normal: low for left channel, high for right channel
I2S left/right just: high for left channel, low for right channel
25 RW 0x0
PCM start signal: high valid)
1:oppsite polarity
(I2S normal: high for left channel, low for right channel
I2S left/right just: low for left channel, high for right channel
PCM start signal: low valid)
I2S_TXFIFOLR
Address: Operational Base + offset (0x000c)
I2S_DMACR
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
RDE
24 RW 0x0 0 : Receive DMA disabled
1 : Receive DMA enabled
23:21 RO 0x0 reserved
RDL
This bit field controls the level at which a DMA request is made
20:16 RW 0x1f by the receive logic. The watermark level = DMARDL+1; that is,
dma_rx_req is generated when the number of valid data entries
in the receive FIFO is equal to or above this field value + 1.
15:9 RO 0x0 reserved
TDE
8 RW 0x0 0 : Transmit DMA disabled
1 : Transmit DMA enabled
7:5 RO 0x0 reserved
TDL
This bit field controls the level at which a DMA request is made by
4:0 RW 0x00 the transmit logic. It is equal to the watermark level; that is, the
dma_tx_req signal is generated when the number of valid data
entries in the TXFIFO is equal to or below this field value.
I2S_INTCR
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
RFT
24:20 RW 0x00 When the number of receive FIFO entries is more than or equal to
this threshold plus 1, the receive FIFO full interrupt is triggered.
19 RO 0x0 reserved
RXOIC
18 WO 0x0
Write 1 to clear RX overrun interrupt.
RXOIE
17 RW 0x0 0: disable
1: enable
RXFIE
16 RW 0x0 0: disable
1: enable
I2S_INTSR
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:18 RO 0x0 reserved
RXOI
17 RO 0x0 0: inactive
1: active
RXFI
16 RO 0x0 0: inactive
1: active
15:2 RO 0x0 reserved
TXUI
1 RO 0x0 0: inactive
1: active
TXEI
0 RO 0x0 0: inactive
1: active
I2S_XFER
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
RXS
1 RW 0x0 0: stop RX transfer.
1: start RX transfer
TXS
0 RW 0x0 0: stop TX transfer.
1: start TX transfer
I2S_CLR
I2S_TXDR
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
TXDR
31:0 WO 0x00000000
When it is written to, data are moved into the transmit FIFO.
I2S_RXDR
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
RXDR
31:0 RO 0x00000000
When the register is read, data in the receive FIFO is accessed.
I2S_RXFIFOLR
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
RFL0
5:0 RW 0x00
Contains the number of valid data entries in the receive FIFO.
I2S_VER
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
VER
31:0 RW 0x20150001
Version of I2S.
I2S_CLR[0]= 0x1
Read I2S_CLR[0]
I2S_CLR= 0x0
DMA
Controller
I2S_XFER[0] can not be disabled until the current transfer has Configuration
completed
I2S_CLR[1]= 0x1
Read I2S_CLR[1]
I2S_CLR[1]= 0x0
Config a DMA channel for I2S receiver and the source address
is I2S_RXDR
DMA
Controller
I2S_XFER[1] can not be disabled until the current transfer has Configuration
completed
23.1 Overview
The I2S/PCM/TDM controller is designed for interfacing between the AHB bus and the I2S
bus.
The I2S bus (Inter-IC sound bus) is a serial link for digital audio data transfer between
devices in the system and is invented by Philips Semiconductor. Now it is widely used by
many semiconductor manufacturers.
I2S bus is widely used in the devices such as ADC, DAC, DSP, CPU, etc. With the I2S
interface, we can connect audio devices and the embedded SoC platform together and
provide an audio interface solution for the system.
23.1.1 Features
The I2S/PCM/TDM controller supports I2S,PCM and TDM mode stereo audio output and
input.
Support eight internal 32-bit wide and 32-location deep FIFOs, four for transmitting and
the other for receiving audio data
Support AHB bus interface
Support 16 ~ 32 bits audio data transfer
Support master and slave mode
Support DMA handshaking interface and configurable DMA water level
Support transmit FIFO empty, underflow, receive FIFO full, overflow interrupt and all
interrupts can be masked
Support configurable water level of transmit FIFO empty and receive FIFO full interrupt
Support combined interrupt output
Support 8-channel audio transmitting in I2S/TDM mode and 2-channelin PCM mode.
Support 8-channel audio receiving in I2S/TDMmode and 2 channel in PCM mode
Support up to 192kHz sample rate
Support I2S normal, left and right justified mode serial audio data transfer
Support PCM early, late1, late2, late3 mode serial audio data transfer
Support TDM normal,1/2 cycle left shift ,1 cycle left shift,2 cycle left shift, right shift
mode serial audio data transfer.
Support MSB or LSB first serial audio data transfer
Support 16 to 31 bit audio data left or right justified in 32-bit wide FIFO
Support two 16-bit audio data store together in one 32-bit wide location
Support 2 independent LRCK signals, one for receiving and the other for transmitting
audio data. Single LRCK can be used for transmitting and receiving data if the sample
rate are the same
Support configurable SCLK and LRCK polarity
Support TDM programmable slot bit width: 16~32bits
Support TDM programmable frame width: 32~512bits
Support TDM programmable FSYNC width
Support SDI,SDO IOMUX.
TDM Transmitter
TDM Transmitter
stereo
interrupt RX FIFO RX_CTRL audio
interface input
I2S Transmitter
SCLK
LRCK
I2S Transmitter Master I2S Receiver Slave
SD
SCLK
LRCK
I2S Transmitter Slave I2S Receiver Master
SCLK
This is the waveform of I2S normal mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it
goes low to indicate left channel and high to right channel. For SD (i2s1_sdo, i2s1_sdi)
signal, it starts sending the first bit (MSB or LSB) one SCLK clock cycle after LRCK changes.
The range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx/ Left channel
Right channel
i2s1_lrck_tx
i2s1_sdo/ 0 1 21 22 23 0 1 21 22 23 0
i2s1_sdi
Fig.23-4I2S normal mode timing format
This is the waveform of I2S left justified mode. For LRCK (i2s1_lrck_rx / i2s1_lrck_tx)
signal, it goes high to indicate left channel and low to right channel. For SD (i2s1_sdo,
i2s1_sdi) signal, it starts sending the first bit (MSB or LSB) at the same time when LRCK
changes. The range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx/ Right channel
Left channel
i2s1_lrck_tx
i2s1_sdo/ 0 1 21 22 23 0 1 21 22 23 0 1
i2s1_sdi
Fig.23-5I2S left justified mode timing format
This is the waveform of I2S right justified mode. For LRCK (i2s1_lrck_rx/ i2s1_lrck_tx)
signal, it goes high to indicate left channel and low to right channel. For SD (i2s1_sdo,
i2s1_sdi) signal, it transfers MSB or LSB first; but what is different from I2S normal or left
justified mode, the last bit of the transferred data is aligned to the transition edge of the
LRCK signal while one bit is transferred at one SCLK cycle. The range of SD signal width is
from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx/
Left channel Right channel
i2s1_lrck_tx
i2s1_sdo/ 0 1 21 22 23 0 1 21 22 23
i2s1_sdi
Fig.23-6I2S right justified mode timing format
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) at the same time when LRCK goes high. The range of SD
signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s1_sdo 0 1 23 0 1 23 0 1 23 0 1
channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) one SCLK clock cycle after LRCK goes high. The range of SD
signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s1_sdo 0 1 23 0 1 23 0 1 23 0
no valid data
channel0 left channel0 right channel1 left ~ channel3 right
i2s1_sdi 0 1 23 0 1 23 0
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB)two SCLK clock cycles after LRCK goes high. The range of SD
signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
(slave mode) At least one sclk cycle in slave mode
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) three SCLK clock cycles after LRCK goes high. The range of
SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) Always one sclk cycle in master mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23
This is the waveform of TDM normal mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it
goes high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi)
signal, it sends the first bit (MSB or LSB) on the second falling edge of SCLK after LRCK goes
high. The range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) At least one sclk cycle in slave mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) on the second rising edge of SCLK after LRCK goes high.
The range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) At least one sclk cycle in slave mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) on the first falling edge of SCLKafter LRCK goes high. The
range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) At least one sclk cycle in slave mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) on the first rising edge of SCLK after LRCK goes high. The
range of SD signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) At least one sclk cycle in slave mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
This is the waveform of PCM early mode. For LRCK (i2s1_lrck_rx/i2s1_lrck_tx) signal, it goes
high to indicate the start of a group of audio channels. For SD (i2s1_sdo, i2s1_sdi) signal, it
sends the first bit (MSB or LSB) at the same time when LRCK goes high. The range of SD
signal width is from 16 to 32bits.
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
At least one sclk cycle in slave mode
(slave mode)
i2s1_lrck_rx
/i2s1_lrck_tx
(master mode) At least one sclk cycle in slave mode
i2s1_sdo 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
i2s1_sdi 0 1 23 0 1 23 0 1 23
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data
This is the waveform of I2S normal mode. For SD (i2s1_sdo, i2s1_sdi) signal, it starts
sending the first bit (MSB or LSB)on the first falling edge of SCLK after LRCK changes. The
range of SD signal width is from 16 to 32bits.
tdm_txctrl[17]/tdm_rxctrl[17]=1:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel0 right channel1 left ~ channel3 right no valid data channel0 left channel0 right channel1 left ~ channel3 right
tdm_txctrl[17]/tdm_rxctrl[17]=0:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel1 left channel2 left ~ channel3 left no valid data channel0 right channel1 right channel2 right ~ channel3 right
This is the waveform of I2S left justified mode. For SD (i2s1_sdo, i2s1_sdi) signal, it starts
sending the first bit (MSB or LSB) at the same time when LRCK changes. The range of SD
signal width is from 16 to 32bits.
tdm_txctrl[17]/tdm_rxctrl[17]=1:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel0 right channel1 left ~ channel3 right channel0 left channel0 right channel1 left ~ channel3 right
tdm_txctrl[17]/tdm_rxctrl[17]=0:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel1 left channel2 left ~ channel3 left channel0 right channel1 right channel2 right ~ channel3 right
This is the waveform of I2S right justified mode.For SD (i2s1_sdo, i2s1_sdi) signal, it
transfers MSB or LSB first; but what is different from I2S normal or left justified mode.The
range of SD signal width is from 16 to 32bits.
Unuse Unuse Unuse Unuse Unuse Unuse Unuse Unuse
Valid cycle Valid cycle Valid cycle Valid cycle Valid cycle Valid cycle Valid cycle Valid cycle Unused cycle
d cycle d cycle d cycle d cycle d cycle d cycle d cycle d cycle
tdm_txctrl[17]/tdm_rxctrl[17]=1:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel0 right channel1 left ~ channel3 right channel0 left channel0 right channel1 left ~ channel3 right
tdm_txctrl[17]/tdm_rxctrl[17]=0:
i2s1_sclk
i2s1_lrck_rx
/i2s1_lrck_tx
i2s1_sdi 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23 0 1 23
/i2s1_sdo
no valid data channel0 left channel1 left channel2 left ~ channel3 left channel0 right channel1 right channel2 right ~ channel3 right
Reset
Name Offset Size Description
Value
When the register is read, data in
I2S_8CH_RXDR 0x0028 W 0x00000000
the receive FIFO is accessed.
I2S_8CH_RXFIFOLR 0x002c W 0x00000000 RX FIFO level register
TDM mode transmit operation
I2S_8CH_TDM_TXCTRL 0x0030 W 0x00003eff
control register
TDM mode receive operation
I2S_8CH_TDM_RXCTRL 0x0034 W 0x00003eff
control register
I2S_8CH_CLKDIV 0x0038 W 0x00000707 clock divider register
I2S_8CH_VERSION 0x003c W 0x20150001 I2S version register
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
I2S_8CH_RXCR
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
rx_path_select3
2'b00: path3 data from sdi0;
2'b01: path3 data from sdi1;
24:23 RW 0x3
2'b10: path3 data from sdi2;
2'b11: path3 data from sdi3;
Note: inoperative at TDM mode.
rx_path_select2
Rx path select;
2'b00: path2 data from sdi0;
22:21 RW 0x2 2'b01: path2 data from sdi1;
2'b10: path2 data from sdi2;
2'b11: path2 data from sdi3;
Note: inoperative at TDM mode.
rx_path_select1
Rx path select;
2'b00: path1 data from sdi0;
20:19 RW 0x1 2'b01: path1 data from sdi1;
2'b10: path1 data from sdi2;
2'b11: path1 data from sdi3;
Note: inoperative at TDM mode.
I2S_8CH_CKR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:30 RO 0x0 reserved
LRCK_COMMON
29:28 RW 0x0
Lrck as common
MSS
(Can be written only when XFER[1] or XFER[0] bit is 0.)
27 RW 0x0
0:master mode(sclk output)
1:slave mode(sclk input)
CKP
(Can be written only when XFER[1] or XFER[0] bit is 0.)
26 RW 0x0
0: sample data at posedge sclk and drive data at negedge sclk
1: sample data at negedge sclk and drive data at posedge sclk
RLP
(Can be written only when XFER[1] or XFER[0] bit is 0.)
0:normal polartiy
(I2S normal: low for left channel, high for right channel
I2S left/right just: high for left channel, low for right channel
25 RW 0x0
PCM start signal:high valid)
1:oppsite polarity
(I2S normal: high for left channel, low for right channel
I2S left/right just: low for left channel, high for right channel
PCM start signal:low valid)
I2S_8CH_TXFIFOLR
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:24 RO 0x0 reserved
TFL3
23:18 RW 0x00
Contains the number of valid data entries in the transmit FIFO3.
TFL2
17:12 RW 0x00
Contains the number of valid data entries in the transmit FIFO2.
TFL1
11:6 RW 0x00
Field0000 Description
TFL0
5:0 RO 0x00
Contains the number of valid data entries in the transmit FIFO0.
I2S_8CH_DMACR
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
RDE
24 RW 0x0 0 : Receive DMA disabled
1 : Receive DMA enabled
I2S_8CH_INTCR
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:25 RO 0x0 reserved
RFT
24:20 RW 0x1f When the number of receive FIFO entries is more than or equal to
this threshold plus 1, the receive FIFO full interrupt is triggered.
19 RO 0x0 reserved
RXOIC
18 WO 0x0
Write 1 to clear RX overrun interrupt.
RXOIE
17 RW 0x0 0:disable
1:enable
RXFIE
16 RW 0x0 0:disable
1:enable
15:9 RO 0x0 reserved
TFT
When the number of transmit FIFO (TXFIFO0 if CSR=00; TXFIFO1
8:4 RW 0x00 if CSR=01, TXFIFO2 if CSR=10, TXFIFO3 if CSR=11) entries is
less than or equal to this threshold, the transmit FIFO empty
interrupt is triggered.
3 RO 0x0 reserved
TXUIC
2 WO 0x0
Write 1 to clear TX underrun interrupt.
I2S_8CH_INTSR
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:18 RO 0x0 reserved
RXOI
17 RO 0x0 0:inactive
1:active
RXFI
16 RO 0x0 0:inactive
1:active
15:2 RO 0x0 reserved
TXUI
1 RO 0x0 0:inactive
1:active
TXEI
0 RO 0x0 0:inactive
1:active
I2S_8CH_XFER
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
RXS
1 RW 0x0 0:stop RX transfer.
1:start RX transfer
TXS
0 RW 0x0 0:stop TX transfer.
1:start TX transfer
I2S_8CH_CLR
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
RXC
1 RW 0x0
This is a self cleard bit. Write 1 to clear all receive logic.
TXC
0 RW 0x0
This is a self cleard bit. Write 1 to clear all transmit logic.
I2S_8CH_TXDR
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
TXDR
31:0 WO 0x00000000
When it is written to, data are moved into the transmit FIFO.
I2S_8CH_RXDR
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
RXDR
31:0 RO 0x00000000
When the register is read, data in the receive FIFO is accessed.
I2S_8CH_RXFIFOLR
Address: Operational Base + offset (0x002c)
Bit Attr Reset Value Description
31:24 RO 0x0 reserved
RFL3
23:18 RW 0x00
Contains the number of valid data entries in the Receive FIFO3.
RFL2
17:12 RW 0x00
Contains the number of valid data entries in the Receive FIFO2.
RFL1
11:6 RW 0x00
Contains the number of valid data entries in the Receive FIFO1.
RFL0
5:0 RW 0x00
Contains the number of valid data entries in the Receive FIFO0.
I2S_8CH_TDM_TXCTRL
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
31:21 RO 0x0 reserved
TX_TDM_FSYNC_WIDTH_SEL1
(Can be written only when XFER[0] is 0.)
0: single period of the ASP_CLK.
1: 2 period of the ASP_CLK.
20:18 RW 0x0
n: n+1 period of the ASP_CLK.
6: 7 period of the ASP_CLK.
7: the width is equivalent to a channel block
Note: function when TX TFS[1:0] is 2 or 3;
TX_TDM_FSYNC_WIDTH_SEL0
(Can be written only when XFER[0] is 0.)
17 RW 0x0 0: 1/2 frame width. Aspc_ctrl1[8:0] should be set to an even
number
1: frame width
I2S_8CH_TDM_RXCTRL
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
31:21 RO 0x0 reserved
RX_TDM_FSYNC_WIDTH_SEL1
(Can be written only when XFER[0] is 0.)
0: single period of the ASP_CLK.
1: 2 period of the ASP_CLK.
20:18 RW 0x0
n: n+1 period of the ASP_CLK.
6: 7 period of the ASP_CLK.
7: the width is equivalent to a channel block
Note: function when RX TFS[1:0] is 2 or 3;
RX_TDM_FSYNC_WIDTH_SEL0
(Can be written only when XFER[0] is 0.)
17 RW 0x0 0: 1/2 frame width. Aspc_ctrl1[8:0] should be set to an even
number
1: frame width
I2S_8CH_CLKDIV
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
31:16 RO 0x0 reserved
RX_MDIV
(Can be written only XFER[0] bit is 0.)
Serial Clock Divider = Fmclk / Ftxsclk-1.(mclkfrequecy / txsclk
frequecy-1)
0 :Fmclk=Ftxsclk;
1 :Fmclk=2*Ftxsclk;
2,3 :Fmclk=4*Ftxsclk;
4,5 :Fmclk=6*Ftxsclk;
15:8 RW 0x07
……
2n,2n+1:Fmclk=(2n+2)*Ftxsclk;
……
60,61:Fmclk=62*Ftxsclk;
62,63:Fmclk=64*Ftxsclk;
……
252,253:Fmclk=254*Ftxsclk;
254,255:Fmclk=256*Ftxsclk;
I2S_8CH_VERSION
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
I2S_VERSION
31:0 RO 0x20150001
i2s_version
I2Sx_CLR[0]= 0x1
Read I2Sx_CLR[0]
I2Sx_CLR= 0x0
x=1
DMA
Controller
I2Sx_XFER[0] can not be disabled until the current transfer has Configuration
completed
I2Sx_CLR[1]= 0x1
Read I2Sx_CLR[1]
I2Sx_CLR[1]= 0x0
x=1
DMA
Controller
I2Sx_XFER[1] can not be disabled until the current transfer has Configuration
completed
Note: User should clear TX/RX logical by CLR[0]/CLR[1] and wait clear operation done before configure the
other registers.
24.1 Overview
The Inter-Integrated Circuit (I2C) is a two wired (SCL and SDA), bi-directional serial bus
that provides an efficient and simple method of information exchange between devices. This
I2C bus controller supports master mode acting as a bridge between AMBA protocol and
generic I2C bus system.
I2C Controller supports the following features:
Support 4 independent I2C: I2C0, I2C1, I2C2, I2C3
Item Compatible with I2C-bus
AMBA APB slave interface
Supports master mode of I2C bus
Software programmable clock frequency and transfer rate up to 400Kbit/sec
Supports 7 bits and 10 bits addressing modes
Interrupt or polling driven multiple bytes data transfer
Clock stretching and wait state generation
Fiter out glitch on SCL and SDA
APB BUS
I2C_TOP
pclk
int
Fig.24-1I2C architecture
24.2.1 I2C_RF
I2C_RF module is used to control the I2C controller operation by the host with APB
interface. It implements the register set and the interrupt functionality. The CSR component
operates synchronously with the pclk clock.
24.2.2 I2C_PE
I2C_PE module implements the I2C master operation for transmit data to and receive data
from other I2C devices. The I2C master controller operates synchronously with the pclk.
24.2.3 I2C_TOP
I2C_TOP module is the top module of the I2C controller.
be up to 400Kbit/sec.
The operations of I2C controller is divided to 2 parts and described separately: initialization
and master mode programming.
24.3.1 Initialization
The I2C controller is based on AMBA APB bus architecture and usually is part of a SOC. So
before I2C operates, some system setting and configuration must be conformed, which
includes:
I2C interrupt connection type: CPU interrupt scheme should be considered. If the I2C
interrupt is connected to extra Interrupt Controller module, we need decide the INTC
vector.
I2C Clock Rate: The I2C controller uses the APB clock as the working clock so the APB
clock will determine the I2C bus clock. The correct register setting is subject to the
system requirement.
24.3.2 Master Mode Programming
SCL Clock
When the I2C controller is programmed in Master mode, the SCL frequency is determined by
I2C_CLKDIV register. The SCL frequency is calculated by the following formula:
SCL Divisor = 8*(CLKDIVL + 1 + CLKDIVH + 1)
SCL = PCLK/ SCLK Divisor
Start Command
Write 1 to I2C_CON[3], the controller will send I2C start command.
Stop Command
Write 1 to I2C_CON[4], the controller will send I2C stop command
Read/Write Command
When I2C_OPMODE(I2C_CON[2:1]) is 2’b01 or 2’b11, the Read/Write command bit
is decided by controller itself.
In RX only mode (I2C_CON[2:1] is 2’b10), the Read/Write command bit is decided
by MRXADDR[0].
In TX only mode (I2C_CON[[2:1] is 2’b00), the Read/Write command bit is decided
by TXDATA[0].
transmitting a byte.
Byte received finish interrupt (Bit 1): The bit is asserted when Master completed
receiving a byte.
MTXCNT bytes data transmitted finish interrupt (Bit 2): The bit is asserted when
Master completed transmitting MTXCNT bytes.
MRXCNT bytes data received finish interrupt (Bit 3): The bit is asserted when Master
completed receiving MRXCNT bytes.
Start interrupt (Bit 4): The bit is asserted when Master finished asserting start
command to I2C bus.
Stop interrupt (Bit 5): The bit is asserted when Master finished asserting stop
command to I2C bus.
NAK received interrupt (Bit 6): The bit is asserted when Master received a NAK
handshake.
Fig.24-4I2C Acknowledge
Byte transfer
The master own I2C bus might initiate multi byte to transfer to a slave.The transfer starts from a
“START” command and ends in a “STOP”command. After every byte transfer, the receiver must reply
an ACK to transmitter.
Reset
Name Offset Size Description
Value
RKI2C_TXDATA4 0x0110 W 0x00000000 I2C tx data register 4
RKI2C_TXDATA5 0x0114 W 0x00000000 I2C tx data register 5
RKI2C_TXDATA6 0x0118 W 0x00000000 I2C tx data register 6
RKI2C_TXDATA7 0x011c W 0x00000000 I2C tx data register 7
RKI2C_RXDATA0 0x0200 W 0x00000000 I2C rx data register 0
RKI2C_RXDATA1 0x0204 W 0x00000000 I2C rx data register 1
RKI2C_RXDATA2 0x0208 W 0x00000000 I2C rx data register 2
RKI2C_RXDATA3 0x020c W 0x00000000 I2C rx data register 3
RKI2C_RXDATA4 0x0210 W 0x00000000 I2C rx data register 4
RKI2C_RXDATA5 0x0214 W 0x00000000 I2C rx data register 5
RKI2C_RXDATA6 0x0218 W 0x00000000 I2C rx data register 6
RKI2C_RXDATA7 0x021c W 0x00000000 I2C rx data register 7
RKI2C_ST 0x0220 W 0x00000003 status debug register
RKI2C_DBGCTRL 0x0224 W 0x00000f00 Debug config register
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
RKI2C_CLKDIV
Address: Operational Base + offset (0x0004)
Bit Attr Reset Value Description
CLKDIVH
31:16 RW 0x0000 scl high level clock count:
T(SCL_HIGH) = Tclk_i2c * (CLKDIVH + 1) * 8
CLKDIVL
15:0 RW 0x0001 scl low level clock count:
T(SCL_LOW) = Tclk_i2c * (CLKDIVL + 1) * 8
RKI2C_MRXADDR
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
addhvld
address high byte valid:
26 RW 0x0
1'b0:invalid
1'b1:valid
RKI2C_MRXRADDR
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:27 RO 0x0 reserved
sraddhvld
address high byte valid:
26 RW 0x0
1'b0:invalid
1'b1:valid
sraddmvld
address middle byte valid:
25 RW 0x0
1'b0:invalid
1'b1:valid
sraddlvld
address low byte valid:
24 RW 0x0
1'b0:invalid
1'b1:valid
sraddr
23:0 RW 0x000000 slave register address accessed.
24 bits register address
RKI2C_MTXCNT
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
mtxcnt
5:0 RW 0x00 master transmit count.
6 bits counter
RKI2C_MRXCNT
Address: Operational Base + offset (0x0014)
RKI2C_IEN
Address: Operational Base + offset (0x0018)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
slavehdsclen
slave hold scl interrupt enable:
7 RW 0x0
1'b0:disable
1'b1:enable
nakrcvien
NAK handshake received interrupt enable:
6 RW 0x0
1'b0:disable
1'b1:enable
stopien
stop operation finished interrupt enable:
5 RW 0x0
1'b0:disable
1'b1:enable
startien
start operation finished interrupt enable:
4 RW 0x0
1'b0:disable
1'b1:enable
mbrfien
MRXCNT data received finished interrupt enable:
3 RW 0x0
1'b0:disable
1'b1:enable
mbtfien
MTXCNT data transfer finished interrupt enable:
2 RW 0x0
1'b0:disable
1'b1:enable
brfien
byte rx finished interrupt enable:
1 RW 0x0
1'b0:disable
1'b1:enable
btfien
byte tx finished interrupt enable:
0 RW 0x0
1'b0:disable
1'b1:enable
RKI2C_IPD
RKI2C_FCNT
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:6 RO 0x0 reserved
fcnt
5:0 RO 0x00 the count of data which has been transmitted or received
for debug purpose
RKI2C_SCL_OE_DB
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
scl_oe_db
7:0 RW 0x20 slave hold scl debounce.
cycles for debounce (unit: Tclk_i2c)
RKI2C_TXDATA0
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
txdata0
31:0 RW 0x00000000 data0 to be transmitted.
32 bits data
RKI2C_TXDATA1
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
txdata1
31:0 RW 0x00000000 data1 to be transmitted.
32 bits data
RKI2C_TXDATA2
Address: Operational Base + offset (0x0108)
Bit Attr Reset Value Description
txdata2
31:0 RW 0x00000000 data2 to be transmitted.
32 bits data
RKI2C_TXDATA3
Address: Operational Base + offset (0x010c)
Bit Attr Reset Value Description
txdata3
31:0 RW 0x00000000 data3 to be transmitted.
32 bits data
RKI2C_TXDATA4
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
txdata4
31:0 RW 0x00000000 data4 to be transmitted.
32 bits data
RKI2C_TXDATA5
Address: Operational Base + offset (0x0114)
Bit Attr Reset Value Description
txdata5
31:0 RW 0x00000000 data5 to be transmitted.
32 bits data
RKI2C_TXDATA6
Address: Operational Base + offset (0x0118)
Bit Attr Reset Value Description
txdata6
31:0 RW 0x00000000 data6 to be transmitted.
32 bits data
RKI2C_TXDATA7
Address: Operational Base + offset (0x011c)
Bit Attr Reset Value Description
txdata7
31:0 RW 0x00000000 data7 to be transmitted.
32 bits data
RKI2C_RXDATA0
Address: Operational Base + offset (0x0200)
Bit Attr Reset Value Description
rxdata0
31:0 RO 0x00000000 data0 received.
32 bits data
RKI2C_RXDATA1
Address: Operational Base + offset (0x0204)
Bit Attr Reset Value Description
rxdata1
31:0 RO 0x00000000 data1 received.
32 bits data
RKI2C_RXDATA2
Address: Operational Base + offset (0x0208)
Bit Attr Reset Value Description
rxdata2
31:0 RO 0x00000000 data2 received.
32 bits data
RKI2C_RXDATA3
Address: Operational Base + offset (0x020c)
Bit Attr Reset Value Description
rxdata3
31:0 RO 0x00000000 data3 received.
32 bits data
RKI2C_RXDATA4
Address: Operational Base + offset (0x0210)
Bit Attr Reset Value Description
rxdata4
31:0 RO 0x00000000 data4 received.
32 bits data
RKI2C_RXDATA5
Address: Operational Base + offset (0x0214)
Bit Attr Reset Value Description
rxdata5
31:0 RO 0x00000000 data5 received.
32 bits data
RKI2C_RXDATA6
Address: Operational Base + offset (0x0218)
Bit Attr Reset Value Description
rxdata6
31:0 RO 0x00000000 data6 received.
32 bits data
RKI2C_RXDATA7
Address: Operational Base + offset (0x021c)
Bit Attr Reset Value Description
rxdata7
31:0 RO 0x00000000 data7 received.
32 bits data
RKI2C_ST
Address: Operational Base + offset (0x0220)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
scl_st
scl status:
1 RO 0x0
1'b0: scl status low
1'b0: scl status high
The I2C controller core operation flow chart below is to describe how the software configures
and performs an I2C transaction through this I2C controller core. Descriptions are divided
into 3 sections, transmit only mode, receive only mode, and mix mode. Users are strongly
advised to follow
Transmit only mode (I2C_CON[1:0]=2’b00)
start
Config I2C_CLKDIV to
select I2C_SCL frequency
Config I2C_CON to
select TX only mode
Write datas to
I2C_TXDATA0~I2C_TXDA
TA7
NO
Stop
Fig.24-6I2C Flow chat for transmit only mode
start
Config I2C_CLKDIV to
select I2C_SCL frequency
Config I2C_CON to
select RX only mode
YES
More data to
receive ?
NO
Stop
Fig.24-7I2C Flow chat for receive only mode
start
Config I2C_CLKDIV to
select I2C_SCL frequency
Config I2C_CON to
select MIX mode
Config I2C_MRXADDR
and I2C_MRXRADDR
NO
Stop
Fig.24-8I2C Flow chat for mix mode
25.1 Overview
The Audio Serial Port Controller (ASPC) is a PDM interface controller and decoder that
supportmono PDM format. It integrates a clock generator driving the PDM microphone and
embeds filters which decimatethe incoming bitstream to obtain most common audio rates.
ASPC supports the following features:
Support one internal 32-bit wide and 128-location deep FIFOsfor receiving audio data
Support receive FIFO full, overflow interrupt and all interrupts can be masked
Support configurable water level of receive FIFO full interrupt
Support combined interrupt output
Support AHB bus slave interface
Support DMA handshaking interface and configurable DMA water level
Support PDM master receive mode
Support 4 paths. Each path is composed of two digital microphone channels, the ASPC
can be used with four stereo or eight mono microphones. Each path is enabled or
disabled independently
Support 16 ~24 bit sample resolution
Support sample rate:
8khz,16khz,32kHz,64kHz,128khz,11.025khz,22.05khz,44.1khz,88.2khz,176.4khz,12khz,24khz,48khz,9
6khz,192khz
Support two 16-bit audio data store together in one 32-bit wide location
Support 16 to 31 bit audio data left or right justified in 32-bit wide FIFO
Support programmable data sampling sensibility (rising or falling edge)
aspc_receiver
aspc_filter
aspc_filter
AHB_BUS ASP_IF
aspc_sys_if aspc_if
aspc_filter
DMA_IF
aspc_filter
aspc_fifo aspc_receiver_ctrl
aspc_clk_gen
ASP_CLK
Stereo mic
ASP_DATA0
Stereo mic
ASP_DATA1
Stereo mic
ASP_DATA3
ASP_CLK
input (ASP_DATA). The clock is fanned out to both digital mics, and both digital mics’ data
(left channel and right channel) outputs share a single signal line. To share a single line, the
digital mics tristate their output during one phase of the clock(high or low part of cycle,
depending on how they are configured via their L/R input).
ASP_CLK
(ASPC_CLK_CTRL[3]=1)
ASP_CLK
(ASPC_CLK_CTRL[3]=0)
t dv t dz
Left Left
Data(L) data data
Reset
Name Offset Size Description
Value
ASPC high pass filter control
ASPC_HPF_CTRL 0x0010 W 0x00000000
register
ASPC_FIFO_CTRL 0x0014 W 0x00000000 ASPC fifo control register
ASPC_DMA_CTRL 0x0018 W 0x0000001f ASPC dma control register
ASPC_INT_EN 0x001c W 0x00000000 ASPC interrupt enable register
ASPC_INT_CLR 0x0020 W 0x00000000 ASPC interrupt clear register
ASPC_INT_ST 0x0024 W 0x00000000 ASPC interrupt status register
ASPC_RXFIFO_DATA_REG 0x0030 W 0x00000000 ASPC receive fifo data register
ASPC path0 right channel data
ASPC_DATA0R_REG 0x0034 W 0x00000000
register
ASPC path0 left channel data
ASPC_DATA0L_REG 0x0038 W 0x00000000
register
ASPC path1 right channel data
ASPC_DATA1R_REG 0x003c W 0x00000000
register
ASPC path1 left channel data
ASPC_DATA1L_REG 0x0040 W 0x00000000
register
ASPC path2 right channel data
ASPC_DATA2R_REG 0x0044 W 0x00000000
register
ASPC path2 left channel data
ASPC_DATA2L_REG 0x0048 W 0x00000000
register
ASPC path3 right channel data
ASPC_DATA3R_REG 0x004c W 0x00000000
register
ASPC path3 left channel data
ASPC_DATA3L_REG 0x0050 W 0x00000000
register
ASPC_DATA_VALID 0x0054 W 0x00000000 path data valid register
ASPC_VERSION 0x0058 W 0x59313030 ASPC version register
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
ASPC_CTRL1
Address: Operational Base + offset (0x0008)
Bit Attr Reset Value Description
frac_div_numerator
31:16 RW 0x0bb8 fraction divider numerator;
(Can be written only when SYSCONFIG[2] is 0.)
frac_div_denomonator
15:0 RW 0xea60 fraction divider denominator;
(Can be written only when SYSCONFIG[2] is 0.)
ASPC_CLK_CTRL
Address: Operational Base + offset (0x000c)
Bit Attr Reset Value Description
31:7 RO 0x0 reserved
frac_div_ratio_sel
fraction clk divider ratio select:
6 RW 0x0 (Can be written only when SYSCONFIG[2] is 0.)
0: ratio is more than 40;
1: ratio is less than 35;
pdm_clk_en
Pdm clk enable.working at PDM mode
5 RW 0x0 (Can be written only when SYSCONFIG[2] is 0.)
0:pdm clk disable
1:pdm clk enable
4 RO 0x0 reserved
clk_polar
ASP_CLK polarity selection
3 RW 0x0 (Can be written only when SYSCONFIG[2] is 0.)
0: no inverted
1: inverted
ASPC_HPF_CTRL
Address: Operational Base + offset (0x0010)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
hpfle
HPFLE
3 RW 0x0 high pass filter enable for left channel
1'b0: high pass filter for right channel is disabled.
1'b1: high pass filter for right channel is enabled.
hpfre
HPFRE
2 RW 0x0 high pass filter enable for right channel
1'b0: high pass filter for right channel is disabled.
1'b1: high pass filter for right channel is enabled.
hpf_cf
HPF_CF
high pass filter configure register
high pass filter configure register
1:0 RW 0x0
2'b00: 3.79Hz
2'b01: 60Hz
2'b10: 243Hz
2'b11: 493Hz
ASPC_FIFO_CTRL
Address: Operational Base + offset (0x0014)
Bit Attr Reset Value Description
31:15 RO 0x0 reserved
rft
Receive FIFO Threshold
14:8 RW 0x00 When the number of receive FIFO entries is more than or equal to
this threshold plus 1, the receive FIFO threshold interrupt is
triggered.
ASPC_INT_EN
Address: Operational Base + offset (0x001c)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
rxoie
RX overflow interrupt enable
1 RW 0x0
0:disable
1:enable
rxtie
RX threshold interrupt enable
0 RW 0x0
0:disable
1:enable
ASPC_INT_CLR
Address: Operational Base + offset (0x0020)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
W1 rxoic
1 0x0
C RX overflow interrupt clear, high active, auto clear.
0 RO 0x0 reserved
ASPC_INT_ST
Address: Operational Base + offset (0x0024)
ASPC_RXFIFO_DATA_REG
Address: Operational Base + offset (0x0030)
Bit Attr Reset Value Description
rxdr
31:0 RO 0x00000000 Receive FIFO shadow Register
When the register is read, data in the receive FIFO is accessed.
ASPC_DATA0R_REG
Address: Operational Base + offset (0x0034)
Bit Attr Reset Value Description
data0r
31:0 RO 0x00000000
Data of the path 0 right channel
ASPC_DATA0L_REG
Address: Operational Base + offset (0x0038)
Bit Attr Reset Value Description
data0l
31:0 RO 0x00000000
Data of the path 0 left channel
ASPC_DATA1R_REG
Address: Operational Base + offset (0x003c)
Bit Attr Reset Value Description
31:1 RO 0x0 reserved
data1r
0 RO 0x0
Data of the path 1 right channel
ASPC_DATA1L_REG
Address: Operational Base + offset (0x0040)
Bit Attr Reset Value Description
data1l
31:0 RO 0x00000000
Data of the path 1 left channel
ASPC_DATA2R_REG
ASPC_DATA2L_REG
Address: Operational Base + offset (0x0048)
Bit Attr Reset Value Description
data2l
31:0 RO 0x00000000
Data of the path 2 left channel
ASPC_DATA3R_REG
Address: Operational Base + offset (0x004c)
Bit Attr Reset Value Description
data3r
31:0 RO 0x00000000
Data of the path 3 right channel
ASPC_DATA3L_REG
Address: Operational Base + offset (0x0050)
Bit Attr Reset Value Description
data3l
31:0 RO 0x00000000
Data of the path 3 left channel
ASPC_DATA_VALID
Address: Operational Base + offset (0x0054)
Bit Attr Reset Value Description
31:4 RO 0x0 reserved
path0_vld
3 RC 0x0 0: DATA0R_REG, DATA0L_REG value is invalid;
1: DATA0R_REG, DATA0L_REG value is valid;
path1_vld
2 RC 0x0 0: DATA1R_REG, DATA1L_REG value is invalid;
1: DAT1R_REG, DATA1L_REG value is valid;
path2_vld
1 RC 0x0 0: DATA2R_REG, DATA2L_REG value is invalid;
1: DATA2R_REG, DATA2L_REG value is valid;
path3_vld
0 RC 0x0 0: DATA3R_REG, DATA3L_REG value is invalid;
1: DATA3R_REG, DATA3L_REG value is valid;
ASPC_VERSION
Address: Operational Base + offset (0x0058)
ASPC_SYSCONFIG[0]=1
Read ASPC_SYSCONFIG[0]
Chapter 26 OTP
26.1 Overview
The One Time Programmable Controller (OTPC) is used for communication with the OTP
subsystem to achieve the controlling command and receive the returning data. The
configuration and command information are written from a master(CPU) over the APB bus to
the OTPC and converted to standard form and transmitted to the OTP. The data from OTP can
be stored in the registers of OTPC for the master (CPU) to read back.
OTP Controller supports the following features:
Support APB interface
Support OTP SBPI master interface
Support OTP user master interface
Support two programmable working clock for SBPI and user interface
Support one interrupt output
Support two busy signals
SBPI master:
Support configurable device ID
Support maximum 32 consecutive valid command
Support CS automatic de-assert
Support CS manual de-assert
Support maximum 32B consecutive reading and storage
Support reading MISO and FLAG status by the APB bus
User interface master:
Support software configurable DCTRL
Support single reading
OTPC_S OTPC_NS
OTP_MEM
0-3.5Kb 3.5-4Kb
secure Non secure
APB INTERFACE
The host processor accesses data, control, and status information on the OTPCthrough the
APB interface including secure and non-secure.
Register file
Be responsible for the main OTPC functionality including control, status and interrupt
generation.
SBPI FSM & USER FSM
The two FSMs are used for converting command to standard form and receiving data from
SBPI and USER interface.
SBPI BUS & USER BUS
SBPI bus and USER bus are used for the transmission of command and the reception of
data.
OTP MEMORY
There are two pieces of memory and each of them is 4Kb. The all 4Kb of MEM_0 is secure.
The 0-3.5Kb of MEM_1 is secure while the remaining 0.5Kb is non-secure.
HIGH. The addressA[8:0] and select SEL inputs are latched on the rising edge of CK access
strobe signal. The dataoutputs Q[7:0] and QP[7:0], become valid following the subsequent
falling edge of the CK accessstrobe signal, or after the tACC if the SHF internal timer is enabled.
If an output data bit does notchange state during a read operation, there is no intermediate
transition at the output during the accesstime.
PMC_CTRL_STATUSregister and the FLAG output signal will indicate routine completion and
status. By default, the BIST canbe configured to run through the entire address space and to
attempt to repair any bad bits in the array.Alternatively the BIST can be run through a selected
portion of the address space, with or without bitrepair.
Reset
Name Offset Size Description
Value
OTPC_USER_Q 0x0124 W 0x00000000 OTPC USER Q storage register
OTPC_USER_QSR 0x0128 W 0x00000000 OTPC USER QSR storage register
OTPC_USER_QRR 0x012c W 0x00000000 OTPC USER QRR storage register
OTPC_INT_CON 0x0300 W 0x00000000 OTPC interrupt register
OTPC_INT_STATUS 0x0304 W 0x00000000 OTPC interrupt status register
SBPI_CMD will be programmable
from offset 0x1000 to 0x2000,
which is 4kBAnd there are 1024
registers totally, which are
OTPC_SBPI_CMD_BASE 0x1000 W 0x00000000
correspond to a certain
command.The address of these
registers
are:0x10000x1004......0x1ffc
There are 1024 registers which
are all 32bit. They are mapped to
OTPC_SBPI_CMD registers, if the
corresponding command is a read
OTPC_SBPI_READ_DATA_
0x2000 W 0x00000000 command, the read data will be
BASE
captured in the matched
OTPC_SBPI_READ_DATA
registers. The address of these
registers are:0x20000x2004
Notes:Size:B- Byte (8 bits) access, HW- Half WORD (16 bits) access, W-WORD (32 bits) access
OTPC_SBPI_CMD_VALID_PRELOAD
Address: Operational Base + offset (0x0024)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lower bits
otpc_sbpi_cmd_valid_preload
15:0 RW 0x0000
a value define number of sbpi valid command
OTPC_SBPI_CS_VALID_PRELOAD
Address: Operational Base + offset (0x0028)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lower bits
otpc_sbpi_cs_valid_preload
15:0 RW 0x0000 a value define number of cs valid cycles, when sbpi_cs_auto is
set to 1 of OTPC_SBPI_CTRL
OTPC_SBPI_STATUS
Address: Operational Base + offset (0x002c)
OTPC_USER_CTRL
Address: Operational Base + offset (0x0100)
Bit Attr Reset Value Description
31:2 RO 0x0 reserved
user_pd
1 RW 0x0 1'b0: PD of user interface will be set to 0
1'b1: PD of user interface will be set to 1
user_dctrl
0 RW 0x0 1'b0: DCTRL of user interface will be set to 0
1'b1: DCTRL of user interface will be set to 1
OTPC_USER_ADDR
Address: Operational Base + offset (0x0104)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lower bits
otpc_user_addr
15:0 RW 0x0000
16bit A of User interface
OTPC_USER_ENABLE
Address: Operational Base + offset (0x0108)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lower bits
15:1 RO 0x0 reserved
otpc_user_enable
0 RW 0x0 write 1 to enable USER FSM
will be selfclear, do not write 0 to this bit
OTPC_USER_STATUS
Address: Operational Base + offset (0x0110)
Bit Attr Reset Value Description
31:24 RO 0x0 reserved
DCTRL
23 RO 0x0
DCTRL of USER interface
A
22:7 RO 0x0000
A of USER interface
PD
6 RO 0x0
PD of USER interface
5 RO 0x0 reserved
SEL
4 RO 0x0
SEL of USER interface
user_current_state
3:1 RO 0x0
state of USER FSM
user_busy
0 RO 0x0
user_busy indication
OTPC_USER_QP
Address: Operational Base + offset (0x0120)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
QP
7:0 RW 0x00
QP value of USER interface
OTPC_USER_Q
Address: Operational Base + offset (0x0124)
Bit Attr Reset Value Description
31:24 RO 0x0 reserved
Q
23:0 RW 0x000000
Q value of USER interface
OTPC_USER_QSR
Address: Operational Base + offset (0x0128)
Bit Attr Reset Value Description
QSR
31:0 RW 0x00000000
QSR value of USER interface
OTPC_USER_QRR
Address: Operational Base + offset (0x012c)
Bit Attr Reset Value Description
QRR
31:0 RW 0x00000000
QRR value of USER interface
OTPC_INT_CON
Address: Operational Base + offset (0x0300)
Bit Attr Reset Value Description
write_mask
31:16 RW 0x0000
16 bit write mask for lower bits
otpc_global_int_enable
15 RW 0x0 1'b0 : disable all interrupt
1'b1 : enable all interrupt
14:3 RO 0x0 reserved
user_done_int_enable
2 RW 0x0 1'b0 : disable user done interrupt
1'b1 : enable user done interrupt
sbpi_done_int_enable
1 RW 0x0 1'b0 : disable sbpi done interrupt
1'b1 : enable sbpi done interrupt
sbpi_flag_detect_int_enable
0 RW 0x0 1'b0 : disable sbpi flag detect interrupt
1'b1 : enable sbpi flag detect interrupt
OTPC_INT_STATUS
Address: Operational Base + offset (0x0304)
Bit Attr Reset Value Description
31:3 RO 0x0 reserved
user_done_int_status
2 RW 0x0
indicate a user done interrupt status
sbpi_done_int_status
1 RW 0x0
indicate a sbpi done status
R/W sbpi_flag_detect_int_status
0 0x0
SC indicate detecting a flag negedge
OTPC_SBPI_CMD_BASE
Address: Operational Base + offset (0x1000)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
command_value
7:0 RW 0x00
contain value of the command
OTPC_SBPI_READ_DATA_BASE
Address: Operational Base + offset (0x2000)
Bit Attr Reset Value Description
31:8 RO 0x0 reserved
sbpi_read_data
7:0 RW 0x00
read_data from sbpi bus