00 1 Page Hi3515 H.264 Encoding And Decoding Processor Data Sheet

User Manual: Hi3515 H.264 Encoding and Decoding Processor Data Sheet

Open the PDF directly: View PDF PDF.
Page Count: 919

Download00-1  Page Hi3515 H.264 Encoding And Decoding Processor Data Sheet
Open PDF In BrowserView PDF
Hi3515 H.264 Encoding and Decoding Processor

Data Sheet

Issue

02

Date

2010-04-20

Copyright © HiSilicon Technologies CO., LIMITED. 2009~2010. All rights reserved.
No part of this document may be reproduced or transmitted in any form or by any means without prior
written consent of HiSilicon Technologies CO., LIMITED.

Trademarks and Permissions
,
LIMITED.

, and other Hisilicon icons are trademarks of HiSilicon Technologies CO.,

All other trademarks and trade names mentioned in this document are the property of their respective
holders.

Notice
The purchased products, services and features are stipulated by the contract made between Hisilicon
and the customer. All or part of the products, services and features described in this document may not
be within the purchase scope or the usage scope. Unless otherwise specified in the contract, all
statements, information, and recommendations in this document are provided “AS IS” without warranties,
guarantees or representations of any kind, either express or implied.
The information in this document is subject to change without notice. Every effort has been made in the
preparation of this document to ensure accuracy of the contents, but all statements, information, and
recommendations in this document do not constitute the warranty of any kind, express or implied.

HiSilicon Technologies CO., LIMITED.
Address:

Manufacture Center of Huawei Electric, Huawei Base,
Bantian, Longgang District, Shenzhen, 518129, People’s Republic of China

Website:

http://www.hisilicon.com

Tel:

+86-755-28788858

Fax:

+86-755-28357515

Email:

support@hisilicon.com

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Hi3515
Data Sheet

About This Document

About This Document
Purpose
This document describes the features, logic structures, module functions, operating modes,
register definitions of the Hi3515. It also describes the interface timings and parameters in
figures and tables. In addition, this document provides the pin definitions, performance
parameters, and package dimensions.

Related Version
The following table lists the product version related to this document.
Product Name

Version

Hi3515 H.264 Encoding and Decoding
Processor

V100

Intended Audience
This document is intended for:
z

Design and maintenance personnel for electronics

z

Sales personnel for electronic components

Conventions
Symbol Conventions
The symbols that may be found in this document are defined as follows.
Symbol

Description
Indicates a hazard with a high level of risk which, if not
avoided, will result in death or serious injury.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

Hi3515
Data Sheet

About This Document

Symbol

Description
Indicates a hazard with a medium or low level of risk that, if
not avoided, could result in minor or moderate injury.

Indicates a potentially hazardous situation, which if not
avoided, could result in equipment damage, data loss,
performance degradation, or unexpected results.
Indicates a tip that may help you solve a problem or save
time.
Provides additional information to emphasize or supplement
important points of the main text.

General Conventions
The general conventions that may be found in this document are defined as follows.
Convention

Description

Times New Roman

Normal paragraphs are in Times New Roman.

Boldface

Names of files, directories, folders, and users are in
boldface. For example, log in as user root.

Italic

Book titles are in italics.

Courier New

Examples of information displayed on the screen are in
Courier New.

Table Conventions
The table conventions that may be found in this document are defined as follows.
Convention

Description

–

The cell is blank.

*

The contents in such cell are configurable.

Register Attributes
The register attributions that may be found in this document are defined as follows.

2

Symbol

Description

Symbol

Description

RO

The register is read-only.

RW

The register is read/write.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Symbol

About This Document

Description

Symbol

Description
The register can be read.

RC

The register is cleared on a
read.

WC

The register is cleared when 1
is written.
The register keeps unchanged
when 0 is written.

Numerical System
The expressions of data capacity, frequency, and data rate are described as follows.
Type
Data capacity (such as the
RAM capacity)

Frequency, data rate

Symbol

Value

1K

1024

1M

1,048,576

1G

1,073,741,824

1k

1000

1M

1,000,000

1G

1,000,000,000

The expressions of addresses and data are described as follows.
Symbol

Example

Description

0x

0xFE04, 0x18

Address or data in hexadecimal

0b

0b000, 0b00 00000000

Data or sequence in binary (register
description is excluded.)

X

00X、1XX

In data expression, X indicates 0 or 1.
For example, 00X indicates 000 or 001
and 1XX indicates 100, 101, 110, or
111.

Update History
Updates between document issues are cumulative. Therefore, the latest document issue
contains all updates made in previous issues.

Updates in Issue 02 (2010-04-20)
Chapter 1 Product Description

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3

Hi3515
Data Sheet

About This Document

In section 1.1.13, the typical power consumption is changed from 1,000 mW to 1,500 mW;
the surface temperature of the chip package ranging from –20°C to +110°C is added, the
junction temperature ranging from –40°C to +125°C is added.
Chapter 2 Hardware
In Table 2-34, the surface temperature of the chip package ranging from –20°C to +110°C is
added and the junction temperature ranging from –40°C to +125°C is added.

Updates in Issue 01 (2010-03-26)
Chapter 2 Hardware
In Table 2-34, the minimum values, typical values, and maximum values of DVDD10,
DVDD10_PLL, DVDD10_DAC, and SPHY_VP are changed from 0.95, 1.0, 1.1 to 1.0, 1.05,
1.15 respectively; the minimum value, typical value, maximum value of DVDD10_USB are
changed from 0.95, 1.0, 1.05 to 1.0, 1.05, 1.1 respectively.
Chapter 10 USB 2.0 Host
Figure 10-1 is simplified.

Updates in Issue 00B06 (2010-03-18)
Chapter 10 USB 2.0 Host
Figure 10-1 is simplified.

Updates in Issue 00B05 (2010-03-17)
Chapter 2 Hardware
In table 2-10, the Type column is added and the impedance 190 Ω of the extended resistor of
the SRESREF pin is added.
Chapter 3 System
In section 3.10.4, the descriptions of SC_PERCTRL2 bit[31] and SC_PERCTRL4 bit[31] are
updated.
Chapter 4 Memory Controller
In table 4-13, the corresponding pin name of NF_PAGE[1:0] is changed.
Chapter 6 Video Interface
In section 6.1.2, the time-division-multiplexing modes of port 0, port 1, port 2, and port 3 are
added.
The description below Figure 6-25 is updated.
In section 6.1.7, the description of VIn_PORT_CFG bit[[7:6] is updated.
In section 6.2.1, the number of display channels supported by the VOU is changed from three
to two.
In section 6.2.5, the number of surfaces that can be connected to mixer 1 and mixer 2 is
changed from five to six. In addition, the driver VDC_AD of mixer 2 is changed to VDC_SD.
In section 6.2.6, the registers VO_MUX and DADACCAD are deleted.

4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

About This Document

Updates in Issue 00B04 (2010-01-19)
Chapter 4 Memory Controller
Section 4.1 is updated
Chapter 9 SATA
The registers relevant to PHY1 are deleted and the bits and descriptions of certain registers
are updated.
The number of supported ports is changed from 4 to 2 and the contents relevant to port 2 and
port 3 are changed.

Updates in Issue 00B03 (2009-12-23)
Chapter 1 Product Description
In section 1.1.8, the number of standard SMPTE296M and BT.1120 HD timings is changed
from 1 channel to 2 channels.
Chapter 3 System
In section 3.2.3, the configuration processes of VPLL0 and VPLL1 are modified.
In section 3.10.5, the total reset value of SC_PERCLKEN is changed to 0xEFFF_CFFF.
In section 3.10.5, the value of the nf_page_size field of SC_PERCTRL23 is changed.
In Figure 3-1, PCIRSTN and relevant description are deleted
Chapter 4 Memory Interface
In section 4.1.6, the description of DDRC_EMRS01[11:9] is modified.
In section 4.3.2, the page size of 512 bytes is deleted.
In Table 4-13 and Table 4-14, the values of NF_PAGE[1:0] are changed.
In "Boot Configuration Pins" in section 4.3.5, the page size of 512 bytes is deleted.
Table 4-15 and relevant description in 00B02 are deleted.
In Table 4-17 "Common commands for operating the NAND flash memories", the last row is
deleted.
In section 4.3.7, the value of the pagesize field of NFC_CON is changed.

Updates in Issue 00B02 (2009-11-30)
Complete version.

Updates in Issue 00B01(2009-06-30)
Initial version. Only chapter 1 "Product Description" and chapter 2 "Hardware" are provided.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5

Hi3515
Data Sheet

Contents

Contents
1 Product Description...................................................................................................................1-1
1.1 Architecture ...................................................................................................................................................1-1
1.1.1 Overview..............................................................................................................................................1-1
1.1.2 Processor System .................................................................................................................................1-2
1.1.3 Graphics Processing.............................................................................................................................1-2
1.1.4 Video Encoding and Decoding.............................................................................................................1-3
1.1.5 Cipher Engine ......................................................................................................................................1-3
1.1.6 Memory Controller Interface ...............................................................................................................1-3
1.1.7 Ethernet Interface.................................................................................................................................1-4
1.1.8 Video Interface.....................................................................................................................................1-4
1.1.9 Audio Interface.....................................................................................................................................1-5
1.1.10 MMC/SD/SDIO Controller................................................................................................................1-5
1.1.11 USB Port ............................................................................................................................................1-5
1.1.12 Other Peripheral Interfaces ................................................................................................................1-5
1.1.13 Hardware Specifications ....................................................................................................................1-6
1.2 Application Scenarios....................................................................................................................................1-6

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 1-1 Logical block diagram of the Hi3515 ...............................................................................................1-1
Figure 1-2 Block diagram of the Hi3515 in a 4-channel CIF DVR....................................................................1-7
Figure 1-3 Block diagram of the Hi3515 in an 8-channel CIF DVR..................................................................1-8

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

1 Product Description

1

Product Description

1.1 Architecture
1.1.1 Overview
Figure 1-1 shows the logical block diagram of the Hi3515.
Figure 1-1 Logical block diagram of the Hi3515
Ethernet
PHY
Video
decoder
(A/D)

10/100 Mbit/s
MAC

ARM processor

BT.1120
BT.656

SDIO
Video in x 4

Graphics engine
Deinerlace/Scaler/OSD

Video codec
H.264/MJPEG

CMOS
sensor
TV

I2 C
SSP/SPI

CVBS

Video out CVBS 0

Shared memory switch / DMA

Pre/Post processing engine

VGA

SATAII x 2

Java Acc/VFP/MMU

RGB

GPIO
JTAG
UART x 4

Video out VGA

Interrupt control

Timers/WDT
IR

Video
encoder
(D/A)

BT.656

Audio
codec

Video out

I 2S x 2

Security
AES/DES/3DES

RTC
Real-time Clock

USB2.0 x 2

NAND flash
controller

NOR flash
controller

DDR2 SDRAM
controller

NAND flash

NOR flash

DDR2 SDRAM

Hi3515

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1-1

Hi3515
Data Sheet

1 Product Description

1.1.2 Processor System
The Hi3515 processor is built based on the high-performance ARM926 processor. With the
maximum processing frequency of 400 MHz, the ARM926 CPU provides flexible and various
application services and high-performance audio/video services. The processor system
consists of the following parts:
z

ARM926 processor: It serves as the main control CPU to work with the hardware
accelerator to encode and decode audio/video streams and schedule the system. This
processor is embedded with 16 KB instruction cache, 16 KB data cache, and 2 KB
instruction tightly-coupled memory (ITCM) and its operating frequency is up to 400
MHz.

z

Direct memory access controller (DMAC): The DMAC can directly transfer data
between a memory and a peripheral, between peripherals, and between memories.

z

Interrupt system: It provides interrupt management to the entire system and supports 32
interrupt sources.

z

Clock: It manages the clocks in the entire system, including the main clock of the chip
and the gating clock of each module.

z

Reset module: It manages the resets of the entire system and each functional module in a
unified manner. To be specific, it manages and controls the power-on reset, soft reset of
the system, and separate soft reset for each functional module.

z

Timer: It provides two groups of dual-timers. Each group provides two independent
timers.

z

Watchdog: It resets the entire system when an exception occurs in the system.

z

Real-time clock (RTC): It displays the time and reports alarms periodically.

z

System controller: It controls the running mode of the system, monitors the running
status of the system, manages key modules (such as the clock, reset module, and pin
multiplexing) in the system, and configures certain functions of the peripherals.

1.1.3 Graphics Processing
The Hi3515 graphics processing module processes the video input (VI)/video output (VO)
images for better display effect and strong adaptability to various scenarios. The features of
the graphics processing module are as follows:

1-2

z

Supports the de-interlace processing of input images

z

Supports the de-interlace processing of output images for progressive display and the
conversion from 60 fields to 60 frames or from 60 fields to 30 frames

z

Supports color and contrast enhancement and image denoising

z

Supports clip, alpha blending, raster operation (ROP), colorkey, and gamma correction

z

Supports up to x16 image scaling

z

Supports on-screen display (OSD) blending and video overlapping of four areas

z

Supports the anti-flicker operation on output images

z

Supports 2D data copying and data stuffing

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

1 Product Description

1.1.4 Video Encoding and Decoding
The Hi3515 is integrated with the high-performance H.264/MJEPG/JPEG hardware codec.
The features of the encoding and decoding module are as follows:
z

Supports H.264 Main Profile @ Level 3 encoding/decoding

z

Supports H.264 BaseLine @ Level 3 encoding/decoding

z

Supports JPEG/MJPEG Baseline encoding/decoding

z

Supports the maximum performance of H.264 real-time encoding/decoding, namely, 4channel D1

z

Supports the maximum resolution for H.264 encoding/decoding, namely, 1280 x 1024 @
30 fps

z

The following are supported during H.264 simultaneous encoding and decoding:
−

240 fps CIF encoding + 240 fps QCIF encoding + 120 fps CIF decoding @ NTSC

−

200 fps CIF encoding + 200 fps QCIF encoding + 100 fps CIF decoding @ PAL

−

240 fps CIF encoding + 120 fps QCIF encoding + 240 fps CIF decoding @ NTSC

−

200 fps CIF encoding + 100 fps QCIF encoding + 200 fps CIF decoding @ PAL

z

Supports the encoding of dual streams complying with the H.264 or MJPEG protocol
respectively

z

Supports 3-megapixel encoding with 10 fps frame rate in MJPEG or JPEG format

z

Controls the constant bit rate (CBR) and variable bit rate (VBR) ranging from16 kbit/s to
20 Mbit/s for H.264

1.1.5 Cipher Engine
The cipher engine uses various digital watermark encryption/decryption technologies and
encryption/decryption algorithms such as the advanced encryption standard (AES) and data
encryption standard (DES)/3DES. The features are as follows:
z

The DES/3DES and AES algorithms comply with the FIPS46-3/FIPS 197 standards. The
operating modes of DES/3DES and AES algorithms comply with the FIPS-81/NIST
special 800-38a standards.

z

Supports the digital watermark technology

1.1.6 Memory Controller Interface
The features of the memory controller interface are as follows:
z

z

One double data-rate controller (DDR2) interface
−

The maximum operating rate is 200 MHz so that sufficient bandwidth is available for
the entire system.

−

The data bit width is 32 bits.

−

Up to 256 MB space is supported by the synchronous dynamic random access
memory (SDRAM).

NOR flash interface
−

Issue 02 (2010-04-20)

Supports 8-bit data width
HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1-3

Hi3515
Data Sheet

1 Product Description

z

−

Supports two chip selects (CSs). Each CS provides up to 32 MB space.

−

Supports the booting from the NOR flash

NAND flash interface
−

Supports 8-bit data width

−

Supports the SLC and MLC and 1-bit, 4-bit, or 8-bit error correcting code (ECC)
mode

−

Supports up to 8 GB capacity

−

Supports the booting from the NAND flash

1.1.7 Ethernet Interface
The 10/100 Mbit/s Ethernet interface complies with the 802.3 standard and is used for the
data exchange between the external port and the main processor ARM926 in nonblock mode.
The features of the Ethernet interface are as follows:
z

Supports the 10/100 Mbit/s full-duplex or half-duplex mode

z

Provides the media independent interface (MII)

z

Supports the management data input/output (MDIO) function

z

Transmits and receives flow control frames

z

Supports MAC address filtering

z

Supports the traffic control function

z

Supports the functions of counting or debugging error packets, loss packets, ultra-short
packets, ultra-long packets, unicast packets, and multicast packets in the transmit or
receive process

1.1.8 Video Interface
The video interface consists of four VI interfaces, one digital VO interface, and four analog
VO channels. The operating frequencies are 27 MHz, 54 MHz, and 108 MHz. The features of
the video interface are as follows:
z

z

1-4

VI interface
−

Supports 4-channel BT.656 YCrCb 4:2:2 interfaces, 8 bits, 27/54/108 MHz

−

Supports 2-channel standard SMPTE296M and BT.1120 high-definition (HD)
timings

−

Supports 2-channel digital camera interfaces with the maximum resolution of 1280 x
1024 @ 30fps, 1600 x 1200 @ 20 fps, or 2048 x 1536 @ 10 fps

VO interface
−

Supports multiple VO interfaces

−

Supports video graphics array (VGA) x 1 + composite video broadcast signal (CVBS)
x1

−

Supports typical VGA output resolutions including 1024 x 768 @ 60 fps, 1280 x 720
@ 60 fps, 1280 x 1024 @ 60 fps, 1440 x 900 @ 60 fps, and 1366 x 768 @ 60 fps

−

Supports BT.656 digital output

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

1 Product Description

1.1.9 Audio Interface
The Hi3515 sonic input/output (SIO) includes two standard inter-IC sound (I2S) interfaces
that are compatible with various single- or multi-channel cascade audio codec chips. The
features of the audio interface are as follows:
z

Includes two I2S interfaces. Each interface supports 16 channels of 8-bit or 16-bit audio
cascade input

z

Supports the sampling bit width of 8 bits, 16 bits, or 32 bits

z

Supports the sampling rate of 8 kHz, 16 kHz, 32 kHz, 44.1 kHz, or 48 kHz

1.1.10 MMC/SD/SDIO Controller
The multi-media card/secure digital/secure digital input/output (MMC/SD/SDIO) controller
controls the read and write operations on the SD/MMC storage cards and supports various
extended devices such as Bluetooth and WiFi over the SDIO protocol. The MMC/SD/SDIO
controller can control the devices that comply with the following protocols:
z

SD mem-version 2.00

z

SDIO-version 1.10

z

MMC-version 4.2

1.1.11 USB Port
The Hi3515 integrates with two universal serial bus (USB) 2.0 host ports. The features are as
follows:
z

Compatible with USB 2.0

z

Complies with OHCI Rev 1.0a and EHCI Rev 1.0

z

Supports three transfer modes including high-speed, full-speed, and Low-speed

z

Supports the low-power solution

z

Supports four basic data transfer modes including control transfer, bulk transfer,
isochronous transfer, and interrupt transfer

z

Supports the connections to up to 127 devices through USB hubs

1.1.12 Other Peripheral Interfaces
The features of other peripheral interfaces are as follows:
z

I2C
The inter-integrated circuit (I2C) controller functions as standard master/slave I2C device
and complies with the Philips I2C bus protocol. It receives/transmits data from/to the
slave device of the I2C bus.

z

UART
The universal asynchronous receiver transmitter (UART) interface refers to an
asynchronous serial communications interface. By connecting it to the UART interfaces
of external chips, the Hi3515 can communicate with other chips. The Hi3515 supports
four UART interfaces. Three of them support basic serial data transfer. The last one
supports request-to-send (RTS) and clear-to-send (CTS) hardware flow control.

z

Issue 02 (2010-04-20)

SPI
HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1-5

Hi3515
Data Sheet

1 Product Description

The serial peripheral interface (SPI) controller functions as a master or slave device to
communicate with external devices in synchronous serial mode. The following
communications protocols are supported:

z

−

A Motorola SPI-compatible interface

−

A Texas Instruments synchronous serial interface

−

A National Semiconductor Microwire interface

IR
The infrared remoter (IR) module receives the infrared data through the infrared
interface. It supports the decoding in four formats including NEC with simple repeat
code, NEC with full repeat code, SONY, and TC9012. It also supports error detection on
the received data and IR wake-up.

z

GPIO
The Hi3515 supports up to six groups of general-purpose input/outputs (GPIOs). Each
group of GPIO provides eight programmable input/output pins. The GPIO pins are
multiplexed with other service pins. The type of the pin can be configured as input or
output to generate output signals or collect input signals for specific applications.

1.1.13 Hardware Specifications
z

Typical power consumption of 1,500 mW in the digital video recorder (DVR) application

z

Multiple-level power-saving mode

z

90 nm technology and the chip voltage of 1.0 V, 1.8 V, or 3.3 V

z

441-pin fine-pitch ball grid array (TFBGA) package, 0.8 mm ball pitch, and 19 mm x 19
mm package dimensions

z

Operating temperature: –20°C to +85°C

z

Surface temperature of the chip package: –20°C to +110°C

z

Junction temperature: –40°C to +125°C

1.2 Application Scenarios
The Hi3515 is high-performance communications media processor based on the ARM9
processor core and video hardware accelerator engine. With the highly-integrated and
programmable features, it supports various protocols such as MPEG-4 AVC/H.264 and
MJPEG. Therefore, the Hi3515 is widely applied to multiple fields, such as real-time video
communication and digital image surveillance.
The Hi3515 can be used in the following application scenarios:
z

4-Channel CIF DVR

z

8-Channel CIF DVR

4-Channel CIF DVR
Figure 1-2 shows the block diagram of the Hi3515 in a 4-channel CIF DVR. The
specifications are as follows:

1-6

z

1280 x 1024 VGA display output

z

D1 spot CVBS display output
HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

1 Product Description

z

4-channel CIF real-time recording

z

4-channel CIF real-time network transfer

z

4-channel CIF real-time decoding replay

Figure 1-2 Block diagram of the Hi3515 in a 4-channel CIF DVR

TV

CVBS

SATA
HDD

SATA
recorder

SATA0

SATA1

VGA

VGA

Flash
DDR2

Hi3515
USB2.0
Host

PHY

GMAC
MAC

VI0
VI0

VI1
VI1

VI2
VI2

VI3
VI3

4 Ch. A/V Dec.

LAN

8-Channel CIF DVR
Figure 1-3 shows the block diagram of the Hi3515 in an 8-channel CIF DVR. The
specifications are as follows:
z

1280 x 1024 VGA display output

z

D1 spot CVBS display output

z

8-channel CIF real-time recording

z

8-channel QCIF network transfer

z

8-channel CIF real-time decoding replay

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1-7

Hi3515
Data Sheet

1 Product Description

Figure 1-3 Block diagram of the Hi3515 in an 8-channel CIF DVR
SATA
HDD
TV

SATA
recorder

VGA

CVBS

SATA0

VGA

SATA1

Flash
DDR2

Hi3515
USB2.0
Host

PHY

GMAC
MAC

VI0
VI0

VI1
VI1

VI2
VI2

VI3
VI3

8 Ch. A/V Dec.

LAN

1-8

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
2 Hardware .....................................................................................................................................2-1
2.1 Pin Description..............................................................................................................................................2-1
2.1.1 Power Pins ...........................................................................................................................................2-2
2.1.2 SYS Pins ............................................................................................................................................ 2-11
2.1.3 SIO Pins .............................................................................................................................................2-12
2.1.4 DAC Pins ...........................................................................................................................................2-12
2.1.5 DDR Pins ...........................................................................................................................................2-14
2.1.6 EBI Pins .............................................................................................................................................2-18
2.1.7 ETH Pins............................................................................................................................................2-20
2.1.8 I2C Pins ..............................................................................................................................................2-21
2.1.9 SATA Pins ..........................................................................................................................................2-22
2.1.10 JTAG Pins ........................................................................................................................................2-23
2.1.11 UART Pin.........................................................................................................................................2-23
2.1.12 USB Pins..........................................................................................................................................2-24
2.1.13 VO Pins............................................................................................................................................2-24
2.1.14 VI Pins .............................................................................................................................................2-25
2.2 Description of Software Multiplexing Pins.................................................................................................2-27
2.3 Description of Hardware Multiplexing Pins................................................................................................2-34
2.4 Summary of the IO Config (Pin Multiplexing Control) Registers ..............................................................2-35
2.5 Recommended Power-on and Power-off Sequences ...................................................................................2-61
2.6 External Interrupts.......................................................................................................................................2-61
2.7 Electrical Specifications..............................................................................................................................2-62
2.7.1 DC/AC Parameters.............................................................................................................................2-62
2.7.2 Recommended Operating Conditions ................................................................................................2-63
2.8 PCB Routing Recommendations.................................................................................................................2-64
2.9 Timing Specifications..................................................................................................................................2-64
2.9.1 Primitives of Timing Diagrams..........................................................................................................2-64
2.9.2 Timings of the DDR2 Interface..........................................................................................................2-64
2.9.3 Timings of the ETH Interface ............................................................................................................2-67
2.9.4 Timings of the VI Interface ................................................................................................................2-70
2.9.5 Timings of the VO Interface ..............................................................................................................2-71
2.9.6 Timings of the I2C Interface...............................................................................................................2-72

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Contents

2.9.7 Timings of the MMC Interface ..........................................................................................................2-73
2.9.8 Timings of the SPI Interface ..............................................................................................................2-73
2.9.9 Timings of the UART Interface..........................................................................................................2-75
2.9.10 Timings of the SIO Interface............................................................................................................2-76
2.9.11 Timings of the SMI Interface ...........................................................................................................2-78
2.9.12 Timings of the SATA Interface.........................................................................................................2-78
2.10 Package and Pin-out ..................................................................................................................................2-78
2.10.1 Package ............................................................................................................................................2-78
2.10.2 Pin-out..............................................................................................................................................2-81
2.10.3 Pin Arrangement Table.....................................................................................................................2-87

ii

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Figures

Figures
Figure 2-1 Primitives of timing diagrams.........................................................................................................2-64
Figure 2-2 Write timing of dqs_out relative to dq_out .....................................................................................2-64
Figure 2-3 Write timing of dqs_out relative to CK...........................................................................................2-65
Figure 2-4 Write timing of cmd/addr relative to CK ........................................................................................2-65
Figure 2-5 DDR2 SDRAM output timing ........................................................................................................2-66
Figure 2-6 100 Mbit/s receive timing of the MII interface...............................................................................2-67
Figure 2-7 10 Mbit/s receive timing of the MII interface.................................................................................2-67
Figure 2-8 100 Mbit/s transmit timing of the MII interface .............................................................................2-68
Figure 2-9 10 Mbit/s transmit timing of the MII interface ...............................................................................2-68
Figure 2-10 Timing parameter diagram of the MII interface............................................................................2-68
Figure 2-11 Transmit timing parameter diagram of the MII interface..............................................................2-69
Figure 2-12 Read timing of the MDIO interface ..............................................................................................2-69
Figure 2-13 Write timing of the MDIO interface .............................................................................................2-70
Figure 2-14 Timing parameter diagram of the MDIO interface .......................................................................2-70
Figure 2-15 Timings of the VI interface ...........................................................................................................2-71
Figure 2-16 Timings of the VO interface .........................................................................................................2-71
Figure 2-17 Transfer timings of the I2C interface.............................................................................................2-72
Figure 2-18 Timings of the MMC interface .....................................................................................................2-73
Figure 2-19 SPICK timing of the SPI interface................................................................................................2-73
Figure 2-20 Timing of the SPI interface in master mode (sph = 0) ..................................................................2-74
Figure 2-21 Timing of the SPI interface in master mode (sph = 1) ..................................................................2-74
Figure 2-22 Timings of the UART interface.....................................................................................................2-76
Figure 2-23 Receive timing of the I2S interface ...............................................................................................2-77
Figure 2-24 Transmit timing of the I2S interface..............................................................................................2-77
Figure 2-25 Receive timing of the PCM interface............................................................................................2-77
Figure 2-26 Transmit timing of the PCM interface ..........................................................................................2-78

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Figures

Figure 2-27 Package dimensions (top view) ....................................................................................................2-79
Figure 2-28 Package dimensions (bottom view) ..............................................................................................2-79
Figure 2-29 Detail B.........................................................................................................................................2-80
Figure 2-30 Package dimensions (side view) ...................................................................................................2-80
Figure 2-31 Detail A.........................................................................................................................................2-80
Figure 2-32 Pin-out ..........................................................................................................................................2-82
Figure 2-33 Pin-out blocks ...............................................................................................................................2-83
Figure 2-34 Color definitions of the pin-out ....................................................................................................2-83
Figure 2-35 Hi3515 pin-out block A ................................................................................................................2-84
Figure 2-36 Hi3515 pin-out block B ................................................................................................................2-85
Figure 2-37 Hi3515 pin-out block C ................................................................................................................2-86
Figure 2-38 Hi3515 pin-out block D ................................................................................................................2-87

iv

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Tables

Tables
Table 2-1 I/O pin types .......................................................................................................................................2-1
Table 2-2 Power pins ..........................................................................................................................................2-2
Table 2-3 SYS pins ........................................................................................................................................... 2-11
Table 2-4 SIO pins............................................................................................................................................2-12
Table 2-5 DAC pins..........................................................................................................................................2-13
Table 2-6 DDR pins..........................................................................................................................................2-14
Table 2-7 EBI pins............................................................................................................................................2-18
Table 2-8 ETH pins...........................................................................................................................................2-21
Table 2-9 I2C pins .............................................................................................................................................2-22
Table 2-10 SATA pins.......................................................................................................................................2-22
Table 2-11 JTAG pins .......................................................................................................................................2-23
Table 2-12 UART pins......................................................................................................................................2-23
Table 2-13 USB pins.........................................................................................................................................2-24
Table 2-14 VO pins...........................................................................................................................................2-24
Table 2-15 VI pins ............................................................................................................................................2-25
Table 2-16 Software multiplexing pins of the VI interface...............................................................................2-27
Table 2-17 Description of the software multiplexing pins of the VI interface..................................................2-29
Table 2-18 Software multiplexing pins of the VO interface .............................................................................2-30
Table 2-19 Description of the software multiplexing pins of the VO interface ................................................2-31
Table 2-20 Software multiplexing pins of the I2C interface .............................................................................2-31
Table 2-21 Description of the software multiplexing pins of the I2C interface ................................................2-32
Table 2-22 Software multiplexing pins of the SIO interface ............................................................................2-32
Table 2-23 Description of the software multiplexing pins of the SIO interface ...............................................2-32
Table 2-24 Software multiplexing pins of the EBI interface ............................................................................2-33
Table 2-25 Description of the software multiplexing pins of the EBI interface ...............................................2-33
Table 2-26 Software multiplexing pins of the ETH interface ...........................................................................2-33

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

Tables

Table 2-27 Description of the software multiplexing pins of the ETH interface ..............................................2-33
Table 2-28 Hardware multiplexing of the EBI pins..........................................................................................2-34
Table 2-29 Multiplexed pins of the EBI pins....................................................................................................2-34
Table 2-30 Summary of the pin multiplexing control registers (base address: 0x200F_0000).........................2-35
Table 2-31 DC parameters (DVDD33 = 3.3 V) ................................................................................................2-62
Table 2-32 DC parameters (DVDD18 = 1.8 V) ................................................................................................2-62
Table 2-33 AC parameters (DVDD18 = 1.8 V) ................................................................................................2-63
Table 2-34 Recommended operating conditions...............................................................................................2-63
Table 2-35 Clock parameters ............................................................................................................................2-66
Table 2-36 Memory device parameters.............................................................................................................2-66
Table 2-37 Package/Board parameters .............................................................................................................2-67
Table 2-38 Timing parameters of the MII interface..........................................................................................2-69
Table 2-39 Timing parameters of the MDIO interface .....................................................................................2-70
Table 2-40 Timing parameters of the VI interface ............................................................................................2-71
Table 2-41 Timing parameters of the VO interface ..........................................................................................2-71
Table 2-42 Timing parameters of the I2C interface...........................................................................................2-72
Table 2-43 Timing parameters of the MMC interface ......................................................................................2-73
Table 2-44 Timing parameters of the SPI interface ..........................................................................................2-74
Table 2-45 Timing parameters of the receive data signal URXD .....................................................................2-76
Table 2-46 Timing parameters of the transmit data signal UTXD....................................................................2-76
Table 2-47 Timing parameters of the I2S interface ...........................................................................................2-77
Table 2-48 Timing parameters of the PCM interface........................................................................................2-78
Table 2-49 Package dimensions........................................................................................................................2-81
Table 2-50 Pin arrangement table .....................................................................................................................2-87

vi

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

2

Hardware

2.1 Pin Description
Table 2-1 describes the input/output (I/O) pin types.
Table 2-1 I/O pin types
I/O

Description

I

Input signal

IPD

Input signal, internal pull-down

IPU

Input signal, internal pull-up

IS

Input signal with Schmitt trigger

ISPD

Input signal with Schmitt trigger, internal pull-down

ISPU

Input signal with Schmitt trigger, internal pull-up

O

Output signal

OOD

Output signal, open drain (OD)

I/O

Input/output bidirectional signal

IPD/O

Bidirectional signal, input pull-down

IPU/O

Bidirectional signal, input pull-up

ISPU/O

Bidirectional signal with Schmitt trigger, input pull-up

IPD/OOD

Bidirectional signal, input pull-down and output OD

IPU/OOD

Bidirectional signal, input pull-up and output OD

IS/O

Bidirectional signal, input with Schmitt trigger

IS/OOD

Bidirectional signal, input with Schmitt trigger and output OD

CIN

Crystal oscillator input

COUT

Crystal oscillator output

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-1

Hi3515
Data Sheet

2 Hardware

I/O

Description

P

Power supply

G

Ground

2.1.1 Power Pins
Table 2-2 lists the power pins.
Table 2-2 Power pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

Digital-to-analog converter (DAC) power and ground

2-2

T9

DVDD10_DAC

–

–

–

1.0 V digital power of the
digital-to-analog converter
(DAC)

W6

DVDD33_DAC

–

–

–

3.3 V digital power of the
DAC

T8

DVSS10_DAC

–

–

–

1.0 V digital ground of the
DAC

W5

DVSS33_DAC

–

–

–

3.3 V digital ground of the
DAC

W4

AVDD33

–

–

–

3.3 V analog power

W3

AVDD33

–

–

–

3.3 V analog power

V5

AVDD33

–

–

–

3.3 V analog power

V4

AVDD33

–

–

–

3.3 V analog power

AC4

AVSS

–

–

–

Analog ground

AC1

AVSS

–

–

–

Analog ground

AB3

AVSS

–

–

–

Analog ground

AB2

AVSS

–

–

–

Analog ground

AA2

AVSS

–

–

–

Analog ground

Y1

AVSS

–

–

–

Analog ground

U5

AVSS

–

–

–

Analog ground

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

T5

AVSS

–

–

–

Analog ground

R8

AVSS

–

–

–

Analog ground

P8

AVSS

–

–

–

Analog ground

Phase-locked loop (PLL) power and ground
L21

AVDD33_APL
L

–

–

–

3.3 V analog power of the
analog PLL (APLL)

K21

AVDD33_SPLL

–

–

–

3.3 V analog power of the
software PLL (SPLL)

M19

AVDD33_VPL
L

–

–

–

3.3 V analog power of the
video PLL (VPLL)

L19

VDD10_APLL

–

–

–

1.0 V digital power of the
APLL

K19

VDD10_SPLL

–

–

–

1.0 V digital power of the
SPLL

M16

VDD10_VPLL

–

–

–

1.0 V digital power of the
VPLL

L20

VSS_APLL

–

–

–

APLL ground

K20

VSS_SPLL

–

–

–

SPLL ground

M20

VSS_VPLL

–

–

–

VPLL ground

Double data-rate 2 (DDR2) power
J16

DVDD18

–

–

–

1.8 V digital power of DDR2

H16

DVDD18

–

–

–

1.8 V digital power of DDR2

H13

DVDD18

–

–

–

1.8 V digital power of DDR2

H9

DVDD18

–

–

–

1.8 V digital power of DDR2

H8

DVDD18

–

–

–

1.8 V digital power of DDR2

G19

DVDD18

–

–

–

1.8 V digital power of DDR2

F19

DVDD18

–

–

–

1.8 V digital power of DDR2

E16

DVDD18

–

–

–

1.8 V digital power of DDR2

E15

DVDD18

–

–

–

1.8 V digital power of DDR2

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-3

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

E12

DVDD18

–

–

–

1.8 V digital power of DDR2

E11

DVDD18

–

–

–

1.8 V digital power of DDR2

E10

DVDD18

–

–

–

1.8 V digital power of DDR2

E7

DVDD18

–

–

–

1.8 V digital power of DDR2

E6

DVDD18

–

–

–

1.8 V digital power of DDR2

E18

VREF

–

–

–

0.9 V reference power of
DDR2

E8

VREF

–

–

–

0.9 V reference power of
DDR2

Serial advanced technology attachment (SATA) power
R16

SPHY_VP

–

–

–

1.0 V power of the SATA

P16

SPHY_VP

–

–

–

1.0 V power of the SATA

N16

SPHY_VP

–

–

–

1.0 V power of the SATA

R19

SPHY_VPH

–

–

–

3.3 V power of the SATA

T19

SPHY_VPH

–

–

–

3.3 V power of the SATA

P19

SPHY_VPH

–

–

–

3.3 V power of the SATA

W20

SPHY_VPH

–

–

–

3.3 V power of the SATA

W19

SPHY_VPH

–

–

–

3.3 V power of the SATA

Universal serial bus (USB) power and ground

2-4

T11

USBVDD

–

–

–

USB 2.0 HOST digital
power, connected to an
external 1.0 V power supply

AA11

USBVDDA33

–

–

–

USB 2.0 host analog power,
connected to an external 3.3
V power supply

Y11

USBVDDA33

–

–

–

USB 2.0 HOST analog
power, connected to an
external 3.3 V power supply

W11

USBVDDA33

–

–

–

USB 2.0 HOST analog
power, connected to an
external 3.3 V power supply

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

T12

USBVSS

–

–

–

USB 2.0 HOST digital
ground

AA9

USBVSSA33

–

–

–

USB 2.0 HOST analog
ground

Y9

USBVSSA33

–

–

–

USB 2.0 HOST analog
ground

W9

USBVSSA33

–

–

–

USB 2.0 HOST analog
ground

Core power
T16

DVDD10

–

–

–

1.0 V digital power

T15

DVDD10

–

–

–

1.0 V digital power

T14

DVDD10

–

–

–

1.0 V digital power

T13

DVDD10

–

–

–

1.0 V digital power

T10

DVDD10

–

–

–

1.0 V digital power

N8

DVDD10

–

–

–

1.0 V digital power

M8

DVDD10

–

–

–

1.0 V digital power

L16

DVDD10

–

–

–

1.0 V digital power

L8

DVDD10

–

–

–

1.0 V digital power

K16

DVDD10

–

–

–

1.0 V digital power

K8

DVDD10

–

–

–

1.0 V digital power

J8

DVDD10

–

–

–

1.0 V digital power

H15

DVDD10

–

–

–

1.0 V digital power

H14

DVDD10

–

–

–

1.0 V digital power

H11

DVDD10

–

–

–

1.0 V digital power

H10

DVDD10

–

–

–

1.0 V digital power

–

–

–

3.3 V digital power

Other I/O power
Y12

Issue 02 (2010-04-20)

DVDD33

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-5

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

W17

DVDD33

–

–

–

3.3 V digital power

W16

DVDD33

–

–

–

3.3 V digital power

W14

DVDD33

–

–

–

3.3 V digital power

W13

DVDD33

–

–

–

3.3 V digital power

W8

DVDD33

–

–

–

3.3 V digital power

R5

DVDD33

–

–

–

3.3 V digital power

R4

DVDD33

–

–

–

3.3 V digital power

N5

DVDD33

–

–

–

3.3 V digital power

L5

DVDD33

–

–

–

3.3 V digital power

L4

DVDD33

–

–

–

3.3 V digital power

J19

DVDD33

–

–

–

3.3 V digital power

J5

DVDD33

–

–

–

3.3 V digital power

G5

DVDD33

–

–

–

3.3 V digital power

F5

DVDD33

–

–

–

3.3 V digital power

Other digital ground

2-6

AC23

VSS

–

–

–

Digital ground

AC11

VSS

–

–

–

Digital ground

AC9

VSS

–

–

–

Digital ground

AB11

VSS

–

–

–

Digital ground

AB9

VSS

–

–

–

Digital ground

Y18

VSS

–

–

–

Digital ground

Y15

VSS

–

–

–

Digital ground

W23

VSS

–

–

–

Digital ground

W22

VSS

–

–

–

Digital ground

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

W21

VSS

–

–

–

Digital ground

W18

VSS

–

–

–

Digital ground

W15

VSS

–

–

–

Digital ground

W12

VSS

–

–

–

Digital ground

W7

VSS

–

–

–

Digital ground

V21

VSS

–

–

–

Digital ground

U21

VSS

–

–

–

Digital ground

U20

VSS

–

–

–

Digital ground

U19

VSS

–

–

–

Digital ground

T23

VSS

–

–

–

Digital ground

T22

VSS

–

–

–

Digital ground

R21

VSS

–

–

–

Digital ground

R20

VSS

–

–

–

Digital ground

R15

VSS

–

–

–

Digital ground

R14

VSS

–

–

–

Digital ground

R13

VSS

–

–

–

Digital ground

R12

VSS

–

–

–

Digital ground

R11

VSS

–

–

–

Digital ground

R10

VSS

–

–

–

Digital ground

R9

VSS

–

–

–

Digital ground

P23

VSS

–

–

–

Digital ground

P22

VSS

–

–

–

Digital ground

P15

VSS

–

–

–

Digital ground

P14

VSS

–

–

–

Digital ground

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-7

Hi3515
Data Sheet

2 Hardware

2-8

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

P13

VSS

–

–

–

Digital ground

P12

VSS

–

–

–

Digital ground

P11

VSS

–

–

–

Digital ground

P10

VSS

–

–

–

Digital ground

P9

VSS

–

–

–

Digital ground

P5

VSS

–

–

–

Digital ground

N19

VSS

–

–

–

Digital ground

N15

VSS

–

–

–

Digital ground

N14

VSS

–

–

–

Digital ground

N13

VSS

–

–

–

Digital ground

N12

VSS

–

–

–

Digital ground

N11

VSS

–

–

–

Digital ground

N10

VSS

–

–

–

Digital ground

N9

VSS

–

–

–

Digital ground

N4

VSS

–

–

–

Digital ground

M23

VSS

–

–

–

Digital ground

M15

VSS

–

–

–

Digital ground

M14

VSS

–

–

–

Digital ground

M13

VSS

–

–

–

Digital ground

M12

VSS

–

–

–

Digital ground

M11

VSS

–

–

–

Digital ground

M10

VSS

–

–

–

Digital ground

M9

VSS

–

–

–

Digital ground

M5

VSS

–

–

–

Digital ground

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

L15

VSS

–

–

–

Digital ground

L14

VSS

–

–

–

Digital ground

L13

VSS

–

–

–

Digital ground

L12

VSS

–

–

–

Digital ground

L11

VSS

–

–

–

Digital ground

L10

VSS

–

–

–

Digital ground

L9

VSS

–

–

–

Digital ground

K22

VSS

–

–

–

Digital ground

K15

VSS

–

–

–

Digital ground

K14

VSS

–

–

–

Digital ground

K13

VSS

–

–

–

Digital ground

K12

VSS

–

–

–

Digital ground

K11

VSS

–

–

–

Digital ground

K10

VSS

–

–

–

Digital ground

K9

VSS

–

–

–

Digital ground

K5

VSS

–

–

–

Digital ground

J23

VSS

–

–

–

Digital ground

J15

VSS

–

–

–

Digital ground

J14

VSS

–

–

–

Digital ground

J13

VSS

–

–

–

Digital ground

J12

VSS

–

–

–

Digital ground

J11

VSS

–

–

–

Digital ground

J10

VSS

–

–

–

Digital ground

J9

VSS

–

–

–

Digital ground

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-9

Hi3515
Data Sheet

2 Hardware

2-10

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

J4

VSS

–

–

–

Digital ground

H20

VSS

–

–

–

Digital ground

H19

VSS

–

–

–

Digital ground

H12

VSS

–

–

–

Digital ground

H5

VSS

–

–

–

Digital ground

G21

VSS

–

–

–

Digital ground

G4

VSS

–

–

–

Digital ground

F23

VSS

–

–

–

Digital ground

E20

VSS

–

–

–

Digital ground

E19

VSS

–

–

–

Digital ground

E17

VSS

–

–

–

Digital ground

E14

VSS

–

–

–

Digital ground

E13

VSS

–

–

–

Digital ground

E9

VSS

–

–

–

Digital ground

E5

VSS

–

–

–

Digital ground

D21

VSS

–

–

–

Digital ground

D17

VSS

–

–

–

Digital ground

D15

VSS

–

–

–

Digital ground

D12

VSS

–

–

–

Digital ground

D9

VSS

–

–

–

Digital ground

D5

VSS

–

–

–

Digital ground

C22

VSS

–

–

–

Digital ground

C18

VSS

–

–

–

Digital ground

C8

VSS

–

–

–

Digital ground

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

C4

VSS

–

–

–

Digital ground

B19

VSS

–

–

–

Digital ground

B14

VSS

–

–

–

Digital ground

B7

VSS

–

–

–

Digital ground

B3

VSS

–

–

–

Digital ground

A23

VSS

–

–

–

Digital ground

A20

VSS

–

–

–

Digital ground

A14

VSS

–

–

–

Digital ground

A6

VSS

–

–

–

Digital ground

A1

VSS

–

–

–

Digital ground

2.1.2 SYS Pins
Table 2-3 lists the system (SYS) pins.
Table 2-3 SYS pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

M21

RSTN

ISPU

–

–

System power-on reset input,
active low.

L22

TESTMODE

ISPD

–

–

Functional mode and ARM
debug mode select.
0: normal mode. The ARM can
be in debug mode.
1: test mode.

M22

WDGRSTN

OT

4

–

Watchdog reset, active low and
OD output.

L23

XIN24

–

2

–

24 MHz crystal oscillator clock
input.

K23

XOUT24

–

–

–

24 MHz crystal oscillator clock
output. If the oscillator clock is
connected, this pin is floated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-11

Hi3515
Data Sheet

2 Hardware

2.1.3 SIO Pins
Table 2-4 lists the sonic input/output (SIO) pins.
Table 2-4 SIO pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

C1

ACKOUT

ISPU/O

8

–

Programmable output clock of
the SIO interface, for low-end
DACs.

B2

SIO0DI

IPU

–

–

Data input of SIO0. This pin
can be floated when it is not in
use.

D4

SIO0DO

OT

4

–

Data output of SIO0.

C3

SIO0RCK

ISPU/O

4

–

Bit stream clock on the receive
side of SIO0.

D3

SIO0RFS

ISPU/O

4

–

Frame sync signal on the
receive side of SIO0.

C2

SIO0XCK

ISPU/O

4

–

Bit stream clock on the
transmit side of SIO0.

B1

SIO0XFS

ISPU/O

4

–

Frame sync signal on the
transmit end of SIO0.

D2

SIO1DI

IPU

–

–

Data input of SIO1. This pin
can be floated when it is not in
use.

E4

SIO1RCK

ISPU/O

4

–

Bit stream clock on the receive
side of SIO1.

D1

SIO1RFS

ISPU/O

4

–

Frame sync signal on the
receive side of SIO1.

2.1.4 DAC Pins
Table 2-5 lists the DAC pins.

2-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Table 2-5 DAC pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

W2

COMPDA
C0

–

–

–

Compensation pin of DAC0,
connected to external
compensation capacitors.
Note: It is recommended to
connect a 0.01 uF ceramic
capacitor and a 10 uF tantalum
capacitor in parallel between
this pin and the 3.3 V analog
power of the DAC.

AA3

COMPDA
C1

–

–

–

Compensation pin of DAC1,
connected to external
compensation capacitors.
Note: It is recommended to
connect a 0.01 uF ceramic
capacitor and a 10 uF tantalum
capacitor in parallel between
this pin and the 3.3 V analog
power of the DAC.

AA1

DACVGA0
R

–

–

–

Red signal or 1-channel
standard-definition composite
video broadcast signal (CVBS)
of DAC0, analog output signal.

AC3

DACVGA1
B

–

–

–

Blue signal output of DAC1,
analog signal.

AC2

DACVGA1
G

–

–

–

Green signal of DAC1, analog
signal.

AB1

DACVGA1
R

–

–

–

Red signal of DAC1, analog
signal.

T9

DVDD10_
DAC

–

–

–

1.0 V digital power of the
DAC.

W6

DVDD33_
DAC

–

–

–

3.3 V digital power of the
DAC.

T8

DVSS10_D
AC

–

–

–

1.0 V digital ground of the
DAC.

W5

DVSS33_D
AC

–

–

–

3.3 V digital ground of the
DAC.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-13

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

Y2

RSETDAC
0

–

–

–

Extended resistor pin of DAC0,
connected to external extended
resistors.
Note: This pin is used to adjust
the full-scale output current.
Extended resistors must be
connected between this pin and
the ground.

Y3

RSETDAC
1

–

–

–

Extended resistor pin of DAC1,
connected to external extended
resistors.
Note: This pin is used to adjust
the full-scale output current.
Extended resistors must be
connected between this pin and
the ground.

W1

VREFIND
AC0

–

–

–

Reference voltage input of
DAC0.
Note: It is recommended to
connect a 0.1 uF ceramic
capacitor between this pin and
the analog ground of the DAC.

Y4

VREFIND
AC1

–

–

–

Reference voltage input of
DAC1.
Note: It is recommended to
connect a 0.1 uF ceramic
capacitor between this pin and
the analog ground of the DAC.

2.1.5 DDR Pins
Table 2-6 lists the DDR pins.
Table 2-6 DDR pins

2-14

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

A16

DDRADR0

–

–

–

Address signal of the DDR port

A11

DDRADR1

–

–

–

Address signal of the DDR port

B16

DDRADR2

–

–

–

Address signal of the DDR port

A12

DDRADR3

–

–

–

Address signal of the DDR port

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

D13

DDRADR4

–

–

–

Address signal of the DDR port

B12

DDRADR5

–

–

–

Address signal of the DDR port

C15

DDRADR6

–

–

–

Address signal of the DDR port

B11

DDRADR7

–

–

–

Address signal of the DDR port

D11

DDRADR8

–

–

–

Address signal of the DDR port

C11

DDRADR9

–

–

–

Address signal of the DDR port

C12

DDRADR10

–

–

–

Address signal of the DDR port

C13

DDRADR11

–

–

–

Address signal of the DDR port

D14

DDRADR12

–

–

–

Address signal of the DDR port

A10

DDRADR13

–

–

–

Address signal of the DDR port

D16

DDRBA0

–

–

–

Bank 0 select signal of the DDR
port

C16

DDRBA1

–

–

–

Bank 1 select signal of the DDR
port

C17

DDRBA2

–

–

–

Bank 2 select signal of the DDR
port

A17

DDRCASN

–

–

–

Column address strobe signal of
the DDR port, active low

C14

DDRCKE

–

–

–

Clock enable signal of the DDR
port, active high

B15

DDRCKN0

–

–

–

Negative differential clock
signal of group 0 of the DDR
port

B13

DDRCKN1

–

–

–

Negative differential clock
signal of group 1 of the DDR
port

A15

DDRCKP0

–

–

–

Positive differential clock signal
of group 0 of the DDR port

A13

DDRCKP1

–

–

–

Positive differential clock signal
of group 1 of the DDR port

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-15

Hi3515
Data Sheet

2 Hardware

2-16

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

A18

DDRCSN

–

–

–

Chip select (CS) signal output
from the DDR port to the DDR2
synchronous dynamic random
access memory (SDRAM),
active low

D19

DDRDM0

–

–

–

Byte mask signal of the DDR
port, corresponding to the data
bus DDRDQ[7:0]

G20

DDRDM1

–

–

–

Byte mask signal of the DDR
port, corresponding to the data
bus DDRDQ[15:8]

A8

DDRDM2

–

–

–

Byte mask signal of the DDR
port, corresponding to the data
bus DDRDQ[23:16]

A2

DDRDM3

–

–

–

Byte mask signal of the DDR
port, corresponding to the data
bus DDRDQ[31:24]

D18

DDRDQ0

–

–

–

Data signal of the DDR port

C20

DDRDQ1

–

–

–

Data signal of the DDR port

C19

DDRDQ2

–

–

–

Data signal of the DDR port

C21

DDRDQ3

–

–

–

Data signal of the DDR port

D20

DDRDQ4

–

–

–

Data signal of the DDR port

B20

DDRDQ5

–

–

–

Data signal of the DDR port

B22

DDRDQ6

–

–

–

Data signal of the DDR port

A22

DDRDQ7

–

–

–

Data signal of the DDR port

F20

DDRDQ8

–

–

–

Data signal of the DDR port

F22

DDRDQ9

–

–

–

Data signal of the DDR port

D22

DDRDQ10

–

–

–

Data signal of the DDR port

C23

DDRDQ11

–

–

–

Data signal of the DDR port

F21

DDRDQ12

–

–

–

Data signal of the DDR port

E21

DDRDQ13

–

–

–

Data signal of the DDR port

D23

DDRDQ14

–

–

–

Data signal of the DDR port

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

B23

DDRDQ15

–

–

–

Data signal of the DDR port

B8

DDRDQ16

–

–

–

Data signal of the DDR port

C10

DDRDQ17

–

–

–

Data signal of the DDR port

D8

DDRDQ18

–

–

–

Data signal of the DDR port

D10

DDRDQ19

–

–

–

Data signal of the DDR port

B10

DDRDQ20

–

–

–

Data signal of the DDR port

A7

DDRDQ21

–

–

–

Data signal of the DDR port

C9

DDRDQ22

–

–

–

Data signal of the DDR port

C7

DDRDQ23

–

–

–

Data signal of the DDR port

C5

DDRDQ24

–

–

–

Data signal of the DDR port

A3

DDRDQ25

–

–

–

Data signal of the DDR port

C6

DDRDQ26

–

–

–

Data signal of the DDR port

D7

DDRDQ27

–

–

–

Data signal of the DDR port

B6

DDRDQ28

–

–

–

Data signal of the DDR port

A4

DDRDQ29

–

–

–

Data signal of the DDR port

B4

DDRDQ30

–

–

–

Data signal of the DDR port

D6

DDRDQ31

–

–

–

Data signal of the DDR port

A21

DDRDQSN0

–

–

–

Data strobe (DQS) negative
differential signal of the DDR
port, corresponding to the data
bus DDRDQ[7:0]

E23

DDRDQSN1

–

–

–

DQS negative differential signal
of the DDR port, corresponding
to the data bus DDRDQ[15:8]

B9

DDRDQSN2

–

–

–

DQS negative differential signal
of the DDR port, corresponding
to the data bus DDRDQ[23:16]

B5

DDRDQSN3

–

–

–

DQS negative differential signal
of the DDR port, corresponding
to the data bus DDRDQ[31:24]

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-17

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

B21

DDRDQSP0

–

–

–

DQS positive differential signal
of the DDR port, corresponding
to the data bus DDRDQ[7:0]

E22

DDRDQSP1

–

–

–

DQS positive differential signal
of the DDR port, corresponding
to the data bus DDRDQ[15:8]

A9

DDRDQSP2

–

–

–

DQS positive differential signal
of the DDR port, corresponding
to the data bus DDRDQ[23:16]

A5

DDRDQSP3

–

–

–

DQS positive differential signal
of the DDR port, corresponding
to the data bus DDRDQ[31:24]

B18

DDRODT

–

–

–

On-die termination (ODT) signal
of the DDR port

B17

DDRRASN

–

–

–

Row address strobe signal of the
DDR port, active low

A19

DDRWEN

–

–

–

Write enable signal of the DDR
port, active low

2.1.6 EBI Pins
Table 2-7 lists the external bus interface (EBI) pins.
Table 2-7 EBI pins

2-18

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AB14

EBIADR0

O

8

–

EBI address bus ADR0

AA14

EBIADR1

O

8

–

EBI address bus ADR1

Y14

EBIADR2

O

8

–

EBI address bus ADR2

AC15

EBIADR3

O

8

–

EBI address bus ADR3

AB15

EBIADR4

O

8

–

EBI address bus ADR4

AA15

EBIADR5

O

8

–

EBI address bus ADR5

AC16

EBIADR6

O

8

–

EBI address bus ADR6

AB16

EBIADR7

O

8

–

EBI address bus ADR7

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AA16

EBIADR8

O

8

–

EBI address bus ADR8

Y16

EBIADR9

O

8

–

EBI address bus ADR9

AC17

EBIADR10

O

8

–

EBI address bus ADR10

AB17

EBIADR11

O

8

–

EBI address bus ADR11

AA17

EBIADR12

O

8

–

EBI address bus ADR12

AC18

EBIADR13

O

8

–

EBI address bus ADR13

AB18

EBIADR14

O

8

–

EBI address bus ADR14

AC19

EBIADR15

I/O

8

–

EBI address bus ADR15

AB19

EBIADR16

I/O

8

–

EBI address bus ADR16

AC20

EBIADR17

I/O

8

–

EBI address bus ADR17

AB20

EBIADR18

I/O

8

–

EBI address bus ADR18

AC21

EBIADR19

I/O

8

–

EBI address bus ADR19

AB21

EBIADR20

I/O

8

–

EBI address bus ADR20

AC22

EBIADR21

O

8

–

EBI address bus ADR21

AB22

EBIADR22

I/O

8

–

EBI address bus ADR22

AB23

EBIADR23

O

8

–

EBI address bus ADR23

AA18

EBIADR24

I/O

8

–

EBI address bus ADR24

AC12

EBIDQ0

I/O

8

–

EBI data bus DAT0

AB12

EBIDQ1

I/O

8

–

EBI data bus DAT1

AA12

EBIDQ2

I/O

8

–

EBI data bus DAT2

AC13

EBIDQ3

I/O

8

–

EBI data bus DAT3

AB13

EBIDQ4

I/O

8

–

EBI data bus DAT4

AA13

EBIDQ5

I/O

8

–

EBI data bus DAT5

Y13

EBIDQ6

I/O

8

–

EBI data bus DAT6

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-19

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AC14

EBIDQ7

I/O

8

–

EBI data bus DAT7

AA21

EBIRDYN

ISPU/O

4

–

Static memory interface (SMI)
input ready indicator signal,
active low. This pin can be
floated when it is not in use.

AA20

EBIWEN

O

8

–

EBI write signal, active low

AA22

NFALE

O

4

–

Address latch signal of the
NAND flash

Y20

NFCLE

O

4

–

Command latch signal of the
NAND flash

Y22

NFCS0N

O

4

–

NAND flash CS 0, active low.
The system can boot from this
CS.

Y23

NFCS1N

I/O

4

–

NAND flash CS 1, active low

Y21

NFOEN

O

8

–

Read enable signal of the
NAND flash, active low

AA23

NFRB

IPU/O

4

–

Status indicator signal of the
NAND flash.
0: busy
1: idle
If two external NAND flashes
are connected, they must be
wire-ANDed together and then
connected to this pin.

AA19

SMICS0N

O

4

–

SMI CS signal 0, active low
(default) or active high. The
system can boot from this CS.

Y19

SMICS1N

I/O

4

–

SMI CS signal 1, active low
(default) or active high.

Y17

SMIOEN

O

8

–

Read enable signal of the SMI
interface, active low

2.1.7 ETH Pins
Table 2-8 lists the Ethernet (ETH) pins.

2-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Table 2-8 ETH pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AB7

ECOL

IPU/O

4

–

ETH collision indicator signal

AA7

ECRS

IPU/O

4

–

ETH carrier sense signal

Y7

ERXCK

IPU

–

–

ETH receive clock input

AC8

ERXD0

IPU

–

–

ETH receive data DAT0

AB8

ERXD1

IPU

–

–

ETH receive data DAT1

AA8

ERXD2

IPU

–

–

ETH receive data DAT2

Y8

ERXD3

IPU

–

–

ETH receive data DAT3

AC6

ERXDV

IPU

–

–

ETH receive data valid

AA6

ETXCK

IPU

–

–

ETH transmit clock input

AB5

ETXD0

O

4

–

ETH transmit data DAT0

AC5

ETXD1

O

4

–

ETH transmit data DAT1

Y6

ETXD2

O

4

–

ETH transmit data DAT2

AB6

ETXD3

O

4

–

ETH transmit data DAT3

AC7

ETXEN

O

4

–

ETH transmit enable signal

Y5

MDCK

O

4

–

Clock output of the
management data input/output
(MDIO) interface

AA5

MDIO

IPU/O

4

–

Input/output signal of the
MDIO interface

2.1.8 I2C Pins
Table 2-9 lists the inter-integrated circuit (I2C) pins.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-21

Hi3515
Data Sheet

2 Hardware

Table 2-9 I2C pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

J21

SCL

ISPU/O

4

–

I2C bus clock, OD output. This
pin must have an external pullup resister on the printed circuit
board (PCB).

J20

SDA

ISPU/O

4

–

I2C bus data/address, OD
output. This pin must have an
external pull-up resister on the
PCB.

2.1.9 SATA Pins
Table 2-10 lists the SATA pins.
Table 2-10 SATA pins

2-22

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

R22

SREFCKM

I

–

–

SATA negative differential
clock input

R23

SREFCKP

I

–

–

SATA positive differential clock
input

P20

SRESREF

I/O

–

–

SATA extended resistor pin,
connected to 190 Ω external
extended resistors

V23

SRXP0

I

–

–

Positive differential data input of
SATA port 0

U22

SRXM1

I

–

–

Negative differential data input
of SATA port 1

V22

SRXM0

I

–

–

Negative differential data input
of SATA port 0

U23

SRXP1

I

–

–

Positive differential data input of
SATA port 1

V19

STXM0

O

–

–

Negative differential data output
of SATA port 0

T21

STXM1

O

–

–

Negative differential data output
of SATA port 1

V20

STXP0

O

–

–

Positive differential data output
of SATA port 0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

T20

STXP1

O

–

–

Positive differential data output
of SATA port 1

2.1.10 JTAG Pins
Table 2-11 lists the joint test action group (JTAG) pins.
Table 2-11 JTAG pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

N20

TCK

ISPD

–

–

JTAG clock input

N23

TDI

ISPU

–

–

JTAG data input

N22

TDO

OT

4

–

JTAG data output.

N21

TMS

ISPU

–

–

JTAG mode select input

P21

TRSTN

ISPD

–

–

JTAG reset input, active low

2.1.11 UART Pin
Table 2-12 lists the universal asynchronous receiver transmitter (UART) pins.
Table 2-12 UART pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

G23

UCTSN1

IPU

–

–

CTSN signal of UART1. This
pin can be floated when it is
not in use.

H22

URTSN1

OT

4

–

RTSN signal of UART1.

H23

URXD0

IPU

–

–

UART0 data receive

H21

URXD1

IPU

–

–

UART1 data receive

J22

UTXD0

OT

4

–

UART0 data transmit

G22

UTXD1

OT

4

–

UART1 data transmit

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-23

Hi3515
Data Sheet

2 Hardware

2.1.12 USB Pins
Table 2-13 lists the USB pins.
Table 2-13 USB pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AB10

USBDM0

I/O

–

–

D- differential data bus of USB
2.0 HOST port 0, analog signal

Y10

USBDM1

I/O

–

–

D- differential data bus of the
USB 2.0 HOST port 1, analog
signal

AC10

USBDP0

I/O

–

–

D+ differential data bus of
USB 2.0 HOST port 0, analog
signal

AA10

USBDP1

I/O

–

–

D+ differential data bus of
USB 2.0 HOST port 1, analog
signal

W10

USBREXT

I/O

–

–

USB 2.0 HOST external
resistor connected end

2.1.13 VO Pins
Table 2-14 lists the video output (VO) pins.
Table 2-14 VO pins

2-24

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

AA4

VGAHS

O

8

–

Video graphics array (VGA)
horizontal sync signal

AB4

VGAVS

O

8

–

VGA vertical sync signal

F3

VOCK

I/O

8

–

Standard-definition (SD) image
output clock

E3

VODAT0

ISPU/O

8

–

SD image output data DAT0

E2

VODAT1

ISPU/O

8

–

SD image output data DAT1

E1

VODAT2

ISPU/O

8

–

SD image output data DAT2

F4

VODAT3

ISPU/O

8

–

SD image output data DAT3

F2

VODAT4

ISPU/O

8

–

SD image output data DAT4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

F1

VODAT5

ISPU/O

8

–

SD image output data DAT5

G3

VODAT6

I/O

8

–

SD image output data DAT6

G2

VODAT7

I/O

8

–

SD image output data DAT7

2.1.14 VI Pins
Table 2-15 lists the video input (VI) pins.
Table 2-15 VI pins
Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

H2

VI0CK

IPU

–

–

Clock of the VI0 interface

H4

VI0DAT0

IPU

–

–

Data DAT0 of the VI0
interface

H3

VI0DAT1

IPU

–

–

Data DAT1 of the VI0
interface

J3

VI0DAT2

IPU

–

–

Data DAT2 of the VI0
interface

J2

VI0DAT3

IPU

–

–

Data DAT3 of the VI0
interface

J1

VI0DAT4

IPU

–

–

Data DAT4 of the VI0
interface

K4

VI0DAT5

IPU

–

–

Data DAT5 of the VI0
interface

K3

VI0DAT6

IPU

–

–

Data DAT6 of the VI0
interface

K2

VI0DAT7

IPU

–

–

Data DAT7 of the VI0
interface

G1

VI0HS

IPU/O

4

–

Horizontal sync signal of the
VI0 interface. This pin can be
floated when it is not in use.

H1

VI0VS

IPU/O

4

–

Vertical sync signal of the VI0
interface. This pin can be
floated when it is not in use.

M4

VI1CK

IPU

–

–

Clock of the VI1 interface

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-25

Hi3515
Data Sheet

2 Hardware

2-26

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

K1

VI1DAT0

IPU/O

4

–

Data DAT0 of the VI1
interface

L3

VI1DAT1

IPU/O

4

–

Data DAT1 of the VI1
interface

L2

VI1DAT2

IPU/O

4

–

Data DAT2 of the VI1
interface

L1

VI1DAT3

IPU/O

4

–

Data DAT3 of the VI1
interface

M3

VI1DAT4

IPU/O

4

–

Data DAT4 of the VI1
interface

M2

VI1DAT5

IPU/O

4

–

Data DAT5 of the VI1
interface

M1

VI1DAT6

IPU/O

4

–

Data DAT6 of the VI1
interface

N1

VI1DAT7

IPU/O

4

–

Data DAT7 of the VI1
interface

R3

VI2CK

IPU

–

–

Clock of the VI2 interface

P4

VI2DAT0

IPU/O

4

–

Data DAT0 of the VI2
interface

P3

VI2DAT1

IPU/O

4

–

Data DAT1 of the VI2
interface

P2

VI2DAT2

IPU/O

4

–

Data DAT2 of the VI2
interface

P1

VI2DAT3

IPU/O

4

–

Data DAT3 of the VI2
interface

R2

VI2DAT4

IPU/O

4

–

Data DAT4 of the VI2
interface

R1

VI2DAT5

IPU/O

4

–

Data DAT5 of the VI2
interface

T2

VI2DAT6

IPU/O

4

–

Data DAT6 of the VI2
interface

T1

VI2DAT7

IPU/O

4

–

Data DAT7 of the VI2
interface

N3

VI2HS

IPU/O

4

–

Horizontal sync signal of the
VI2 interface. This pin can be
floated when it is not in use.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pin Name

Type

Drive
(mA)

Voltage
(V)

Description

N2

VI2VS

IPU/O

4

–

Vertical sync signal of the VI2
interface. This pin can be
floated when it is not in use.

U3

VI3CK

IPU

–

–

Clock of the VI3 interface

T4

VI3DAT0

IPU/O

4

–

Data DAT0 of the VI3
interface

T3

VI3DAT1

IPU/O

4

–

Data DAT1 of the VI3
interface

U1

VI3DAT2

IPU/O

4

–

Data DAT2 of the VI3
interface

U2

VI3DAT3

IPU/O

4

–

Data DAT3 of the VI3
interface

U4

VI3DAT4

IPU/O

4

–

Data DAT4 of the VI3
interface

V1

VI3DAT5

IPU/O

4

–

Data DAT5 of the VI3
interface

V2

VI3DAT6

IPU/O

4

–

Data DAT6 of the VI3
interface

V3

VI3DAT7

IPU/O

4

–

Data DAT7 of the VI3
interface

2.2 Description of Software Multiplexing Pins
Software multiplexing refers to a function that the CPU controls the pin multiplexing by
configuring registers.

VI
Table 2-16 lists the software multiplexing pins of the VI interface.
Table 2-16 Software multiplexing pins of the VI interface
Pin

Pad Signal

Multiplexing
Control
Register

Multiplexing Signal
1

Multiplexing Signal
2

G1

VI0HS

reg0

URXD2

GPIO1_3

H1

VI0VS

reg1

UTXD2

GPIO1_4

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-27

Hi3515
Data Sheet

2 Hardware

Pin

Pad Signal

Multiplexing
Control
Register

Multiplexing Signal
1

Multiplexing Signal
2

K1

VI1DAT0

reg2

GPIO3_0

–

L3

VI1DAT1

reg3

GPIO3_1

–

L2

VI1DAT2

reg4

GPIO3_2

–

L1

VI1DAT3

reg5

GPIO3_3

–

M3

VI1DAT4

reg6

GPIO3_4

–

M2

VI1DAT5

reg7

GPIO3_5

–

M1

VI1DAT6

reg8

GPIO3_6

–

N1

VI1DAT7

reg9

GPIO3_7

–

N3

VI2HS

reg10

URXD3

GPIO1_5

N2

VI2VS

reg11

UTXD3

GPIO1_6

P4

VI2DAT0

reg12

GPIO4_0

–

P3

VI2DAT1

reg13

GPIO4_1

–

P2

VI2DAT2

reg14

GPIO4_2

–

P1

VI2DAT3

reg15

GPIO4_3

–

R2

VI2DAT4

reg16

GPIO4_4

–

R1

VI2DAT5

reg17

GPIO4_5

–

T2

VI2DAT6

reg18

GPIO4_6

–

T1

VI2DAT7

reg19

GPIO4_7

–

T4

VI3DAT0

reg20

GPIO5_0

–

T3

VI3DAT1

reg21

GPIO5_1

–

U1

VI3DAT2

reg22

GPIO5_2

–

U2

VI3DAT3

reg23

GPIO5_3

–

U4

VI3DAT4

reg24

GPIO5_4

–

V1

VI3DAT5

reg25

GPIO5_5

–

2-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Pin

Pad Signal

Multiplexing
Control
Register

Multiplexing Signal
1

Multiplexing Signal
2

V2

VI3DAT6

reg26

GPIO5_6

–

V3

VI3DAT7

reg27

GPIO5_7

–

Table 2-17 describes the software multiplexing pins of the VI interface.
Table 2-17 Description of the software multiplexing pins of the VI interface
Signal

Direction

Description

GPIO1_3

I/O

General purpose input/output (GPIO)

GPIO1_4

I/O

GPIO

GPIO1_5

I/O

GPIO

GPIO1_6

I/O

GPIO

GPIO3_0

I/O

GPIO

GPIO3_1

I/O

GPIO

GPIO3_2

I/O

GPIO

GPIO3_3

I/O

GPIO

GPIO3_4

I/O

GPIO

GPIO3_5

I/O

GPIO

GPIO3_6

I/O

GPIO

GPIO3_7

I/O

GPIO

GPIO4_0

I/O

GPIO

GPIO4_1

I/O

GPIO

GPIO4_2

I/O

GPIO

GPIO4_3

I/O

GPIO

GPIO4_4

I/O

GPIO

GPIO4_5

I/O

GPIO

GPIO4_6

I/O

GPIO

GPIO4_7

I/O

GPIO

GPIO5_0

I/O

GPIO

GPIO5_1

I/O

GPIO

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-29

Hi3515
Data Sheet

2 Hardware

Signal

Direction

Description

GPIO5_2

I/O

GPIO

GPIO5_3

I/O

GPIO

GPIO5_4

I/O

GPIO

GPIO5_5

I/O

GPIO

GPIO5_6

I/O

GPIO

GPIO5_7

I/O

GPIO

URXD2

I

UART2 data receive

URXD3

I

UART3 data receive

UTXD2

O

UART2 data transmit

UTXD3

O

UART0 data transmit

VO
Table 2-18 lists the software multiplexing pins of the VO interface.
Table 2-18 Software multiplexing pins of the VO interface
Pin

Pad Signal

Multiplexing
Control
Register

Multiplexing
Signal 1

Multiplexing
Signal 2

Multiplexing
Signal 3

F3

VOCK

reg28

GPIO1_7

SDIOCK

SPICK

E3

VODAT0

reg29

GPIO2_0

SDIOCMD

SPIDI

E2

VODAT1

reg30

GPIO2_1

SDIODAT0

SPIDO

E1

VODAT2

reg31

GPIO2_2

SDIODAT1

SPICSN0

F4

VODAT3

reg32

GPIO2_3

SDIODAT2

SPICSN1

F2

VODAT4

reg33

GPIO2_4

SDIODAT3

–

F1

VODAT5

reg34

GPIO2_5

SDIODETC

–

G3

VODAT6

reg35

SATALEDN0

–

–

G2

VODAT7

reg36

SATALEDN1

–

–

Table 2-19 describes the software multiplexing pins of the VO interface.

2-30

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Table 2-19 Description of the software multiplexing pins of the VO interface
Signal

Direction

Description

GPIO1_7

I/O

GPIO

GPIO2_0

I/O

GPIO

GPIO2_1

I/O

GPIO

GPIO2_2

I/O

GPIO

GPIO2_3

I/O

GPIO

GPIO2_4

I/O

GPIO

GPIO2_5

I/O

GPIO

SATALEDN0

I/O

SATA light emitting diode (LED) 0

SATALEDN1

I/O

SATA LED 1

SDIOCK

O

Secure digital input/output (SDIO)/Multi-media card
(MMC) clock

SDIOCMD

I/O

SDIO/MMC command

SDIODAT0

I/O

SDIO/MMC data DAT0

SDIODAT1

I/O

SDIO/MMC data DAT1

SDIODAT2

I/O

SDIO/MMC data DAT2

SDIODAT3

I/O

SDIO/MMC data DAT3

SDIODETC

I

SDIO/MMC card detection signal

SPICK

I/O

Serial peripheral interface (SPI) clock signal

SPICSN0

I/O

SPI CS 0, active low

SPICSN1

I/O

SPI CS 1, active low

SPIDI

I

SPI input data. This pin can be floated when it is not
in use.

SPIDO

O

SPI output data

I2C
Table 2-20 lists the software multiplexing pins of the I2C interface.
Table 2-20 Software multiplexing pins of the I2C interface
Pin

Pad Signal

Multiplexing Control
Register

Multiplexing Signal 1

J20

SDA

reg37

GPIO0_0

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-31

Hi3515
Data Sheet

2 Hardware

Pin

Pad Signal

Multiplexing Control
Register

Multiplexing Signal 1

J21

SCL

reg38

GPIO0_1

Table 2-21 describes the software multiplexing pins of the I2C interface.
Table 2-21 Description of the software multiplexing pins of the I2C interface
Signal

Direction

Description

GPIO0_0

I/O

GPIO

GPIO0_1

I/O

GPIO

SIO
Table 2-22 lists the software multiplexing pins of the SIO interface.
Table 2-22 Software multiplexing pins of the SIO interface
Pin

Pad Signal

Multiplexing
Control Register

Multiplexing Signal 1

B1

SIO0XFS

reg39

GPIO0_2

C2

SIO0XCK

reg40

GPIO0_3

C1

ACKOUT

reg41

GPIO0_4

Table 2-23 describes the software multiplexing pins of the SIO interface.
Table 2-23 Description of the software multiplexing pins of the SIO interface
Signal

Direction

Description

GPIO0_2

I/O

GPIO

GPIO0_3

I/O

GPIO

GPIO0_4

I/O

GPIO

EBI
Table 2-24 lists the software multiplexing pins of the EBI interface.

2-32

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Table 2-24 Software multiplexing pins of the EBI interface
Pin

Pad Signal

Multiplexing
Control
Register

Multiplexing
Signal 1

Multiplexing
Signal 2

Y19

SMICS1N

reg42

GPIO0_5

-

Y23

NFCS1N

reg43

GPIO0_6

-

AA23

NFRB

reg44

GPIO0_7

-

AA21

EBIRDYN

reg45

IRRCV

GPIO1_0

Table 2-25 describes the software multiplexing pins of the EBI interface.
Table 2-25 Description of the software multiplexing pins of the EBI interface
Signal

Direction

Description

GPIO0_5

I/O

GPIO

GPIO0_6

I/O

GPIO

GPIO0_7

I/O

GPIO

GPIO1_0

I/O

GPIO

IRRCV

I

Infrared remote receive

ETH
Table 2-26 lists the software multiplexing pins of the ETH interface.
Table 2-26 Software multiplexing pins of the ETH interface
Pin

Pad Signal

Multiplexing
Control Register

Multiplexing Signal 1

AB7

ECOL

reg46

GPIO1_1

AA7

ECRS

reg47

GPIO1_2

Table 2-27 describes the software multiplexing pins of the ETH interface.
Table 2-27 Description of the software multiplexing pins of the ETH interface
Signal

Direction

Description

GPIO1_1

I/O

GPIO

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-33

Hi3515
Data Sheet

2 Hardware

Signal

Direction

Description

GPIO1_2

I/O

GPIO

2.3 Description of Hardware Multiplexing Pins
EBI Pin Multiplexing
In Table 2-28, power_on==0'b1 indicates the time of canceling the hardware reset of the Hi3515. When
designing the following pins on the PCB, you must connect a pull-up resistor or pull-down resistor to
select required modes.

Table 2-28 describes the multiplexing of the EBI pins.
Table 2-28 Hardware multiplexing of the EBI pins
Pin

Pad Signal

Multiplexing Signal 1
(power_on == 0'b1)

AC19

EBIADR15

NFECC0

AB19

EBIADR16

NFECC1

AC20

EBIADR17

NFNUM0

AB20

EBIADR18

NFNUM1

AC21

EBIADR19

NFPAGE0

AB21

EBIADR20

NFPAGE1

AB22

EBIADR22

FUNSEL

AA18

EBIADR24

BOOTSEL

Table 2-29 lists the multiplexed pins of the EBI pins.
Table 2-29 Multiplexed pins of the EBI pins

2-34

Signal

Direction

Description

NFECC0

I

ECC type when the system boots from the NAND flash

NFECC1

I

ECC type when the system boots from the NAND flash

NFNUM0

I

Number of addresses when the system boots from the
NAND flash

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Signal

Direction

Description

NFNUM1

I

Number of addresses when the system boots from the
NAND flash

NFPAGE0

I

Page size when the system boots from the NAND flash

NFPAGE1

I

Page size when the system boots from the NAND flash

FUNSEL

I

Functional mode select.
0: ARM debug
1: SATA debug

BOOTSEL

I

Boot mode select.
00: boot from the NOR flash
00: boot from the NAND flash

2.4 Summary of the IO Config (Pin Multiplexing Control)
Registers
Table 2-30 lists the pin multiplexing control registers.
Table 2-30 Summary of the pin multiplexing control registers (base address: 0x200F_0000)
Offset
Address

Register

Description

Page

0x0000

reg0

Multiplexing control register of the VI0HS
pin

2-38

0x0004

reg1

Multiplexing control register of the VI0VS
pin

2-38

0x0008

reg2

Multiplexing control register of the
VI1DAT0 pin

2-39

0x000C

reg3

Multiplexing control register of the
VI1DAT1 pin

2-39

0x0010

reg4

Multiplexing control register of the
VI1DAT2 pin

2-40

0x0014

reg5

Multiplexing control register of the
VI1DAT3 pin

2-40

0x0018

reg6

Multiplexing control register of the
VI1DAT4 pin

2-41

0x001C

reg7

Multiplexing control register of the
VI1DAT5 pin

2-41

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-35

Hi3515
Data Sheet

2 Hardware

2-36

Offset
Address

Register

Description

Page

0x0020

reg8

Multiplexing control register of the
VI1DAT6 pin

2-41

0x0024

reg9

Multiplexing control register of the
VI1DAT7 pin

2-42

0x0028

reg10

Multiplexing control register of the VI2HS
pin

2-42

0x002C

reg11

Multiplexing control register of the VI2VS
pin

2-43

0x0030

reg12

Multiplexing control register of the
VI2DAT0 pin

2-43

0x0034

reg13

Multiplexing control register of the
VI2DAT1 pin

2-44

0x0038

reg14

Multiplexing control register of the
VI2DAT2 pin

2-44

0x003C

reg15

Multiplexing control register of the
VI2DAT3 pin

2-45

0x0040

reg16

Multiplexing control register of the
VI2DAT4 pin

2-45

0x0044

reg17

Multiplexing control register of the
VI2DAT5 pin

2-46

0x0048

reg18

Multiplexing control register of the
VI2DAT6 pin

2-46

0x004C

reg19

Multiplexing control register of the
VI2DAT7 pin

2-47

0x0050

reg20

Multiplexing control register of the
VI3DAT0 pin

2-47

0x0054

reg21

Multiplexing control register of the
VI3DAT1 pin

2-48

0x0058

reg22

Multiplexing control register of the
VI3DAT2 pin

2-48

0x005C

reg23

Multiplexing control register of the
VI3DAT3 pin

2-49

0x0060

reg24

Multiplexing control register of the
VI3DAT4 pin

2-49

0x0064

reg25

Multiplexing control register of the
VI3DAT5 pin

2-50

0x0068

reg26

Multiplexing control register of the
VI3DAT6 pin

2-50

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Offset
Address

Register

Description

Page

0x006C

reg27

Multiplexing control register of the
VI3DAT7 pin

2-51

0x0070

reg28

Multiplexing control register of the VOCK
pin

2-51

0x0074

reg29

Multiplexing control register of the
VODAT0 pin

2-52

0x0078

reg30

Multiplexing control register of the
VODAT1 pin

2-52

0x007C

reg31

Multiplexing control register of the
VODAT2 pin

2-53

0x0080

reg32

Multiplexing control register of the
VODAT3 pin

2-53

0x0084

reg33

Multiplexing control register of the
VODAT4 pin

2-54

0x0088

reg34

Multiplexing control register of the
VODAT5 pin

2-54

0x008C

reg35

Multiplexing control register of the
VODAT6 pin

2-55

0x0090

reg36

Multiplexing control register of the
VODAT7 pin

2-55

0x0094

reg37

Multiplexing control register of the serial
data (SDA) pin

2-56

0x0098

reg38

Multiplexing control register of the serial
clock (SCL) pin

2-56

0x009C

reg39

Multiplexing control register of the
SIO0XFS pin

2-57

0x00A0

reg40

Multiplexing control register of the
SIO0XCK pin

2-57

0x00A4

reg41

Multiplexing control register of the
ACKOUT pin

2-58

0x00A8

reg42

Multiplexing control register of the
SMICS1N pin

2-58

0x00AC

reg43

Multiplexing control register of the
NFCS1N pin

2-59

0x00B0

reg44

Multiplexing control register of the NFRB
pin

2-59

0x00B4

reg45

Multiplexing control register of the
EBIRDYN pin

2-60

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-37

Hi3515
Data Sheet

2 Hardware

Offset
Address

Register

Description

Page

0x00B8

reg46

Multiplexing control register of the ECOL
pin

2-60

0x00BC

reg47

Multiplexing control register of the ECRS
pin

2-61

reg0
Multiplexing control register of the VI0HS pin.
Register Name

Total Reset Value

0x0000

reg0

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

2

1

0

reserved

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

reg0

Bit

Offset Address

0

0

0

0

0

0

0

Description
Multiplexing of the VI0HS pin.
00: VI0HS

[1:0]

RW

reg0

01: URXD2
10: GPIO1_3
Others: reserved

reg1
Multiplexing control register of the VI0VS pin.

Name

2-38

Register Name

Total Reset Value

0x0004

reg1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

reg1

Bit

Offset Address

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset

0

0

0

Bits

0

0

2 Hardware
0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI0VS pin.
00: VI0VS

[1:0]

RW

reg1

01: UTXD2
10: GPIO1_4
Others: reserved

reg2
Multiplexing control register of the VI1DAT0 pin.
Register Name

Total Reset Value

0x0008

reg2

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reg2

Bit

Offset Address

reserved

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT0 pin.

[0]

RW

0: VI1DAT0

reg2

1: GPIO3_0

reg3
Multiplexing control register of the VI1DAT1 pin.
Register Name

Total Reset Value

0x000C

reg3

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg3

Bit

Offset Address

reserved

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[0]

RW

reg3

Multiplexing of the VI1DAT1 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

2-39

Hi3515
Data Sheet

2 Hardware

0: VI1DAT1
1: GPIO3_1

reg4
Multiplexing control register of the VI1DAT2 pin.
Register Name

Total Reset Value

0x0010

reg4

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg4

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT2 pin.

[0]

RW

reg4

0: VI1DAT2
1: GPIO3_2

reg5
Multiplexing control register of the VI1DAT3 pin.
Register Name

Total Reset Value

0x0014

reg5

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg5

Bit

Offset Address

reserved

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT3 pin.

[0]

RW

reg5

0: VI1DAT3
1: GPIO3_3

2-40

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

reg6
Multiplexing control register of the VI1DAT4 pin.
Register Name

Total Reset Value

0x0018

reg6

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg6

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT4 pin.

[0]

RW

0: VI1DAT4

reg6

1: GPIO3_4

reg7
Multiplexing control register of the VI1DAT5 pin.
Register Name

Total Reset Value

0x001C

reg7

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg7

Bit

Offset Address

reserved

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT5 pin.

[0]

RW

reg7

0: VI1DAT5
1: GPIO3_5

reg8
Multiplexing control register of the VI1DAT6 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-41

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0020

reg8

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg8

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT6 pin.

[0]

RW

reg8

0: VI1DAT6
1: GPIO3_6

reg9
Multiplexing control register of the VI1DAT7 pin.
Register Name

Total Reset Value

0x0024

reg9

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg9

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI1DAT7 pin.

[0]

RW

reg9

0: VI1DAT7
1: GPIO3_7

reg10
Multiplexing control register of the VI2HS pin.

2-42

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0028

reg10

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

reg10

Bit

2 Hardware

0

0

0

0

0

0

0

Description
Multiplexing of the VI2HS pin.
00: VI2HS

[1:0]

RW

reg10

01: URXD3
10: GPIO1_5
Others: reserved

reg11
Multiplexing control register of the VI2VS pin.
Register Name

Total Reset Value

0x002C

reg11

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg11

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI2VS pin.
00: VI2VS

[1:0]

RW

reg11

01: UTXD3
10: GPIO1_6
Others: reserved

reg12
Multiplexing control register of the VI2DAT0 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-43

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0030

reg12

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg12

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT0 pin.

[0]

RW

reg12

0: VI2DAT0
1: GPIO4_0

reg13
Multiplexing control register of the VI2DAT1 pin.
Register Name

Total Reset Value

0x0034

reg13

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg13

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT1 pin.

[0]

RW

reg13

0: VI2DAT1
1: GPIO4_1

reg14
Multiplexing control register of the VI2DAT2 pin.

2-44

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0038

reg14

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg14

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT2 pin.

[0]

RW

0: VI2DAT2

reg14

1: GPIO4_2

reg15
Multiplexing control register of the VI2DAT3 pin.
Register Name

Total Reset Value

0x003C

reg15

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg15

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT3 pin.

[0]

RW

reg15

0: VI2DAT3
1: GPIO4_3

reg16
Multiplexing control register of the VI2DAT4 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-45

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0040

reg16

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg16

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT4 pin.

[0]

RW

reg16

0: VI2DAT4
1: GPIO4_4

reg17
Multiplexing control register of the VI2DAT5 pin.
Register Name

Total Reset Value

0x0044

reg17

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg17

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT5 pin.

[0]

RW

reg17

0: VI2DAT5
1: GPIO4_5

reg18
Multiplexing control register of the VI2DAT6 pin.

2-46

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0048

reg18

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg18

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT6 pin.

[0]

RW

0: VI2DAT6

reg18

1: GPIO4_6

reg19
Multiplexing control register of the VI2DAT7 pin.
Register Name

Total Reset Value

0x004C

reg19

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg19

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI2DAT7 pin.

[0]

RW

reg19

0: VI2DAT7
1: GPIO4_7

reg20
Multiplexing control register of the VI3DAT0 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-47

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0050

reg20

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg20

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT0 pin.

[0]

RW

reg20

0: VI3DAT0
1: GPIO5_0

reg21
Multiplexing control register of the VI3DAT1 pin.
Register Name

Total Reset Value

0x0054

reg21

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg21

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT1 pin.

[0]

RW

reg21

0: VI3DAT1
1: GPIO5_1

reg22
Multiplexing control register of the VI3DAT2 pin.

2-48

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0058

reg22

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg22

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT2 pin.

[0]

RW

0: VI3DAT2

reg22

1: GPIO5_2

reg23
Multiplexing control register of the VI3DAT3 pin.
Register Name

Total Reset Value

0x005C

reg23

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg23

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT3 pin.

[0]

RW

reg23

0: VI3DAT3
1: GPIO5_3

reg24
Multiplexing control register of the VI3DAT4 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-49

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0060

reg24

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg24

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT4 pin.

[0]

RW

reg24

0: VI3DAT4
1: GPIO5_4

reg25
Multiplexing control register of the VI3DAT5 pin.
Register Name

Total Reset Value

0x0064

reg25

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg25

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT5 pin.

[0]

RW

reg25

0: VI3DAT5
1: GPIO5_5

reg26
Multiplexing control register of the VI3DAT6 pin.

2-50

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0068

reg26

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg26

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT6 pin.

[0]

RW

0: VI3DAT6

reg26

1: GPIO5_6

reg27
Multiplexing control register of the VI3DAT7 pin.
Register Name

Total Reset Value

0x006C

reg27

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg27

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VI3DAT7 pin.

[0]

RW

reg27

0: VI3DAT7
1: GPIO5_7

reg28
Multiplexing control register of the VOCK pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-51

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0070

reg28

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

reg28

Bit

Offset Address

0

0

0

0

0

0

0

Description
Multiplexing of the VOCK pin.
00: GPIO1_7

[1:0]

RW

reg28

01: VOCK
10: SDIOCK
11: SPICK

reg29
Multiplexing control register of the VODAT0 pin.
Register Name

Total Reset Value

0x0074

reg29

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg29

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT0 pin.
00: GPIO2_0

[1:0]

RW

reg29

01: VODAT0
10: SDIOCMD
11: SPIDI

reg30
Multiplexing control register of the VODAT1 pin.

2-52

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0078

reg30

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

reg30

Bit

2 Hardware

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT1 pin.
00: GPIO2_1

[1:0]

RW

reg30

01: VODAT1
10: SDIODAT0
11: SPIDO

reg31
Multiplexing control register of the VODAT2 pin.
Register Name

Total Reset Value

0x007C

reg31

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg31

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT2 pin.
00: GPIO2_2

[1:0]

RW

reg31

01: VODAT2
10: SDIODAT1
11: SPICSN0

reg32
Multiplexing control register of the VODAT3 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-53

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0080

reg32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

reg32

Bit

Offset Address

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT3 pin.
00: GPIO2_3

[1:0]

RW

reg32

01: VODAT3
10: SDIODAT2
11: SPICSN1

reg33
Multiplexing control register of the VODAT4 pin.
Register Name

Total Reset Value

0x0084

reg33

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg33

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT4 pin.
00: GPIO2_4

[1:0]

RW

reg33

01: VODAT4
10: SDIODAT3
Others: reserved

reg34
Multiplexing control register of the VODAT5 pin.

2-54

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0088

reg34

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

reg34

Bit

2 Hardware

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT5 pin.
00: GPIO2_5

[1:0]

RW

reg34

01: VODAT5
10: SDIODETC
Others: reserved

reg35
Multiplexing control register of the VODAT6 pin.
Register Name

Total Reset Value

0x008C

reg35

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg35

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the VODAT6 pin.

[0]

RW

reg35

0: SATALEDN0
1: VODAT6

reg36
Multiplexing control register of the VODAT7 pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-55

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x0090

reg36

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg36

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the VODAT7 pin.

[0]

RW

reg36

0: SATALEDN1
1: VODAT7

reg37
Multiplexing control register of the SDA pin.
Register Name

Total Reset Value

0x0094

reg37

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg37

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the SDA pin.

[0]

RW

reg37

0: SDA
1: GPIO0_0

reg38
Multiplexing control register of the SCL pin.

2-56

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0098

reg38

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg38

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the SCL pin.

[0]

RW

0: SCL

reg38

1: GPIO0_1

reg39
Multiplexing control register of the SIO0XFS pin.
Register Name

Total Reset Value

0x009C

reg39

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg39

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the SIO0XFS pin.

[0]

RW

reg39

0: SIO0XFS
1: GPIO0_2

reg40
Multiplexing control register of the SIO0XCK pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-57

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x00A0

reg40

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg40

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the SIO0XCK pin.

[0]

RW

reg40

0: SIO0XCK
1: GPIO0_3

reg41
Multiplexing control register of the ACKOUT pin.
Register Name

Total Reset Value

0x00A4

reg41

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg41

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the ACKOUT pin.

[0]

RW

reg41

0: GPIO0_4
1: ACKOUT

reg42
Multiplexing control register of the SMICS1N pin.

2-58

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x00A8

reg42

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg42

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the SMICS1N pin.

[0]

RW

0: GPIO0_5

reg42

1: SMICS1N

reg43
Multiplexing control register of the NFCS1N pin.
Register Name

Total Reset Value

0x00AC

reg43

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg43

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the NFCS1N pin.

[0]

RW

reg43

0: GPIO0_6
1: NFCS1N

reg44
Multiplexing control register of the NFRB pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-59

Hi3515
Data Sheet

2 Hardware
Register Name

Total Reset Value

0x00B0

reg44

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg44

Bit

Offset Address

0

0

0

0

0

0

Description
Multiplexing of the NFRB pin.

[0]

RW

reg44

0: NFRB
1: GPIO0_7

reg45
Multiplexing control register of the EBIRDYN pin.
Register Name

Total Reset Value

0x00B4

reg45

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg45

Bit

Offset Address

reserved

Reset

0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the EBIRDYN pin.
00: EBIRDYN

[1:0]

RW

reg45

01: IRRCV
10: GPIO1_0
Others: reserved

reg46
Multiplexing control register of the ECOL pin.

2-60

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x00B8

reg46

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

reserved

Reset

0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

reg46

Bit

2 Hardware

0

0

0

0

0

0

Description
Multiplexing of the ECOL pin.

[0]

RW

0: ECOL

reg46

1: GPIO1_1

reg47
Multiplexing control register of the ECRS pin.
Register Name

Total Reset Value

0x00BC

reg47

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reg47

Bit

Offset Address

reserved

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Multiplexing of the ECRS pin.

[0]

RW

0: ECRS

reg47

1: GPIO1_2

2.5 Recommended Power-on and Power-off Sequences
It is recommended to power on the VDD33, VDD18, and VDD10 in sequence, and power off
the VDD10, VDD18, and VDD33 in sequence.

2.6 External Interrupts
For details about external interrupts, see section 3.4 "Interrupt System."

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-61

Hi3515
Data Sheet

2 Hardware

2.7 Electrical Specifications
2.7.1 DC/AC Parameters
Table 2-31, Table 2-32, and Table 2-33 list the direct current (DC) and alternating current (AC)
parameters.
Table 2-31 DC parameters (DVDD33 = 3.3 V)
Symbol

Parameter

Min

Typ

Max

Unit

Remarks

VIH

Input high voltage

2.0

–

5.5

V

–

VIL

Input low voltage

–0.3

–

0.8

V

–

VOH

Output high
voltage

2.4

–

–

–

–

VOL

Output low
voltage

–

–

0.4

V

–

IL

Input leakage
current

–

–

±10

µA

–

IOZ

Tri-state output
leakage current

–

–

±10

µA

–

RPU

Pull-up resistor

63

92

142

kΩ

–

RPD

Pull-down resistor

57

91

159

kΩ

–

Table 2-32 DC parameters (DVDD18 = 1.8 V)

2-62

Symbol

Parameter

Min

Typ

Max

Unit

Remarks

Vref

Reference
voltage

0.85

0.9

0.95

V

0.5 x VDD18

VIH (dc)

Input high
voltage

Vref +
0.125

–

DVDD18
+ 0.3

V

–

VIL(dc)

Input low
voltage

–0.3

–

Vref 0.125

V

–

IOH(dc)

Output high
current

|–13.4|

–

–

mA

Voh(dc) =
1.42 V

IOL(dc)

Output low
current

13.4

–

–

mA

Vol(dc) = 0.28
V

VTT

Valid
termination
voltage

Vref - 0.04

Vref

Vref +
0.04

V

–

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Table 2-33 AC parameters (DVDD18 = 1.8 V)
Symbol

Parameter

Min

Typ

Max

Unit

Remarks

V IH(ac)

Input high
voltage

Vref + 0.25

–

–

V

–

VIL(ac)

Input low
voltage

–

–

Vref 0.25

V

–

VOH(ac)

Output high
voltage

V TTmax +
0.603

–

–

V

IOH = 13.4 mA

VOL(ac)

Output low
voltage

–

–

V TTmin 0.603

V

IOL = 13.4
mA

SLEW

Minimum input
skew

1.0

–

–

V/ns

-

2.7.2 Recommended Operating Conditions
Table 2-34 lists the recommended operating conditions.
Table 2-34 Recommended operating conditions
Symbol

Parameter

Min

Typ

Max

Unit

TOPT

Ambient temperature

–20

–

85

°C

TS

Surface temperature of
the chip package

–20

–

110

°C

TJ

Junction temperature

–40

–

125

°C

DVDD10

Core power

1.0

1.05

1.15

V

DVDD33

I/O power

3.135

3.3

3.6

V

DVDD18

DDR I/O power

1.7

1.8

1.9

V

VREF

DDR reference power
(0.5 x VDD18)

0.85

0.9

0.95

V

AVDD33_PLL

PLL analog power

3.135

3.3

3.6

V

DVDD10_PLL

PLL digital power

1.0

1.05

1.15

V

AVDD33_USB

USB analog power

3.135

3.3

3.465

V

DVDD10_USB

USB digital power

1.0

1.05

1.1

V

AVDD33_VDAC

VDAC analog power

3.135

3.3

3.6

V

DVDD10_DAC

VDAC digital power

1.0

1.05

1.15

V

DVDD33_DAC

VDAC digital power

3.0

3.3

3.6

V

SPHY_VP

SATA core power

1.0

1.05

1.15

V

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-63

Hi3515
Data Sheet

2 Hardware

Symbol

Parameter

Min

Typ

Max

Unit

SPHY_VPH

SATA IO power

3.0

3.3

3.6

V

2.8 PCB Routing Recommendations
For details about the PCB routing recommendations, see the Hi3515 Hardware Design User
Guide.

2.9 Timing Specifications
2.9.1 Primitives of Timing Diagrams
Figure 2-1 shows the primitives of the timing diagrams in this document.
Figure 2-1 Primitives of timing diagrams
From low level to high level (for signal)
From high level to low level (for signal)
From low level to high impedance (for signal)
From invalid to valid (for bus data)
From high impedance to valid (for bus data)
Multi-clock cycles

2.9.2 Timings of the DDR2 Interface
2.9.2.1 Write Timings
Write Timing of dqs_out Relative to dq_out
In the write timing of dqs_out relative to dq_out, the parameters tDS and tDH need to be
checked. In DDR2-400, tDS is 0.150 ns and tDH is 0.275 ns.
Figure 2-2 shows the timing of dqs_out relative to dq_out and the DDR clocks CKP and CKN.

2-64

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-2 Write timing of dqs_out relative to dq_out
CKP
CKN
dqs_out
tDH
tDS
dq_out

Write Timing of dqs_out Relative to CK
In the write timing of dqs_out relative to CK, the parameters tDSS and tDSH need to be
checked. Their values are tCK x 0.2. Figure 2-3 shows the write timing.
Figure 2-3 Write timing of dqs_out relative to CK
CKP
CKN
dqs_out

Write Timing of cmd/addr Relative to CK
Figure 2-4 shows the write timing of cmd/addr relative to CK.
Figure 2-4 Write timing of cmd/addr relative to CK
CKP
CKN
tIS

tIH

cmd/addr

2.9.2.2 Read Timings
Read Timing of cmd/addr Relative to CK
For details, see the description of Write Timing of cmd/addr Relative to CK in section 2.9.2.1 .

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-65

Hi3515
Data Sheet

2 Hardware

Read Timing of dqs_in Relative to dq_in
For the DDR2 SDRAM output timing, DQS and CK are in phase in the ideal case. Actually,
there is a skew of tDQSCK and the skew is 0.500 ns. tDQSQ is the jitter of the last valid DQ
relative to DQS and its value is 0.350 ns; tQHS is the jitter of the first valid DQ relative to
DQS and its value is 0.450 ns.
Figure 2-5 shows the DDR2 SDRAM output timing.
Figure 2-5 DDR2 SDRAM output timing
CKP
CKN
tDQSCK
dqs_in
tQHS
tDQSQ
dq_in

2.9.2.3 Timing Parameters
All the timings described in this document are at the DDR physical layer entity sublayer
(PHY) side. The Hi3515 parameters are based on the timing parameters of DDR2-400. For
details, see Table 2-35 to Table 2-37.
Table 2-35 Clock parameters
Parameter

Typ

Unit

Memory clock frequency

200.00

MHz

PLL clock jitter

0.200

ns

PLL duty cycle

45.000

%

CLK Skew

0.200

ns

Parameter

Typ

Unit

Memory type

DDR2-400

–

tDSS: DQS falling edge-CK setup time

0.2

Tck

tDSH: DQS falling edge-CK hold time

0.2

Tck

tDS: DQ/DM-DQS setup time

0.150

ns

tDH: DQ/DM-DQS hold time

0.275

ns

DQS-DQ skew, tDQSQ

0.350

ns

Data hold skew factor, tQHS

0.450

ns

Table 2-36 Memory device parameters

2-66

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Parameter

Typ

Unit

Adr/Cmd setup time, tIS

0.350

ns

Adr/Cmd hold time, tIH

0.475

ns

tDQSCK: DQS output access time from CKP/CKN (min)

–0.500

ns

tDQSCK: DQS output access time from CKP/CKN (max)

0.500

ns

Parameter

Typ

Unit

Package trace skew (max/min)

0.050

ns

Board trace length mismatch (for Dqs/Dq)

0.050

ns

Board trace length mismatch (for others)

0.100

ns

Board and package uncertainty (output)

0.250

ns

Board and package uncertainty (input)

0.250

ns

Table 2-37 Package/Board parameters

2.9.3 Timings of the ETH Interface
The Hi3515 provides a standard media independent interface (MII) that complies with the MII
interface timing standard. This interface is used to connect to the PHY chip.

Timings of the MII Interface
Figure 2-6 shows the 100 Mbit/s receive timing of the MII interface.
Figure 2-6 100 Mbit/s receive timing of the MII interface
40 ns
PHY_RXC
PHY_CRS
PHY_RXDV
Thd
Tsu
PHY_RXD

Figure 2-7 shows the 10 Mbit/s receive timing of the MII interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-67

Hi3515
Data Sheet

2 Hardware

Figure 2-7 10 Mbit/s receive timing of the MII interface
400 ns
PHY_RXC
PHY_CRS
PHY_RXDV
Thd
Tsu
PHY_RXD

Transmit Timings of the MII Interface
Figure 2-8 shows the 100 Mbit/s transmit timing of the MII interface.
Figure 2-8 100 Mbit/s transmit timing of the MII interface
40 ns
PHY_TXC
PHY_TXEN
Tsu

Thd

PHY_TXD
PHY_CRS

Figure 2-9 shows the 10 Mbit/s transmit timing of the MII interface.
Figure 2-9 10 Mbit/s transmit timing of the MII interface
400 ns
PHY_TXC
PHY_TXEN
Tsu

Thd

PHY_TXD
PHY_CRS

Figure 2-10 shows the timing parameter diagram of the MII interface.

2-68

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-10 Timing parameter diagram of the MII interface
T
T

ETH_RXCK
ETH_RXDV
Tsu

Thd

ETH_RXD

Figure 2-11 shows the transmit timing parameter diagram of the MII interface.
Figure 2-11 Transmit timing parameter diagram of the MII interface
T
T

ETH_TXCK
ETH_TXEN
Tov
ETH_TXD

Table 2-38 lists the timing parameters of the MII interface.
Table 2-38 Timing parameters of the MII interface
Parameter

Symbol

Signal

Min

Max

Unit

MII clock cycle

T

ETH_RXCK,
ETH_TXCK

400 (10Mbit/s)

400

ns

40 (10Mbit/s)

40

ns

MII signal setup
time

Tsu (RX)

ETH_RXER,
ETH_RXDV,
ETH_RXD[3:0]

6

–

ns

MII signal hold
time

Thd (RX)

ETH_RXER,
ETH_RXDV,
ETH_RXD[3:0]

2

–

ns

MII output signal
delay

Tov (TX)

ETH_TXD[1:0]
, ETH_TXEN

2

8

ns

Timings of the MDIO Interface
Figure 2-12 shows the read timing of the MDIO interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-69

Hi3515
Data Sheet

2 Hardware

Figure 2-12 Read timing of the MDIO interface
MDC
MDIO
(Into Chip)
MDIO
(Out of Chip)
mdata

z

1

0

1

0

0

1

0

1

0

Figure 2-13 shows the write timing of the MDIO interface.
Figure 2-13 Write timing of the MDIO interface
MDC
MDIO
(Out of Chip)
mdata

z

0

1

0

1

0

1

0

1

z

0

Figure 2-14 shows the timing parameter diagram of the MDIO interface.
Figure 2-14 Timing parameter diagram of the MDIO interface
Tp
MDC
Tov
MDIO
(Into CHip)
Thd
Tsu

MDIO
(Out of Chip)

Table 2-39 lists the timing parameters of the MDIO interface.
Table 2-39 Timing parameters of the MDIO interface

2-70

Parameter

Symbol

Signal

Min

Max

Unit

MDIO receive data delay

Tov

MDIO

166

20833

ns

MDIO clock cycle

Tp

MDC

333

41667

ns

MDIO transmit data setup
time

Tsu

MDIO

10

–

ns

MDIO transmit data hold
time

Thd

MDIO

10

–

ns

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

The clock cycle Tp can be changed by adjusting the frequency of the MDC (MDIO_RWCTRL[frq_dv]). You
can divide the 150 MHz ETH working clock by 100, 50, or other values. Tov is related to Tp and it is about
Tmdc/2.

2.9.4 Timings of the VI Interface
Figure 2-15 shows the timings of the VI interface.
Figure 2-15 Timings of the VI interface
T
VICLK (nPort)
Thd

Tsu
HS/VS (Port0/2)
Tsu

Thd

VIDATAn (nPort)

Table 2-40 lists the timing parameters of the VI interface.
Table 2-40 Timing parameters of the VI interface
Parameter

Symbol

Min

Typ

Max

Unit

VICLK clock cycle (the VIU clock
depends on its supported protocol)

T

–

–

–

ns

Input signal setup time

Tsu

2.93

–

–

ns

Input signal hold time

Thd

2

–

–

ns

2.9.5 Timings of the VO Interface
Figure 2-16 shows the timing of the VO interface.
Figure 2-16 Timings of the VO interface
T
VOCK (n Port)

Tov

VODATAn

Table 2-41 lists the timing parameters of the VO interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-71

Hi3515
Data Sheet

2 Hardware

Table 2-41 Timing parameters of the VO interface
Parameter

Symbol

Min

Typ

Max

Unit

VOCK clock cycle

T

–

37.03

–

ns

Output signal delay

Tov

T/2 △T

T/2 + 1

T/2 + 1 +
△T

ns

The value of △T depends on its supported protocol. For example, △T is 3 T when the BT.656 protocol
is supported; △T is 0.11 T when the BT.1120 protocol is supported.

2.9.6 Timings of the I2C Interface
Figure 2-17 shows the transfer timings of the I2C interface.
Figure 2-17 Transfer timings of the I2C interface

SDA
tf
SCL

S

t LOW
t HD;STA

t SU;DAT

tr

t BUF

t HD;STA

t SU;STA
t HD;DAT

t SU;STO

t HIGH

P

Sr

Table 2-42 lists the timing parameters of the I2C interface.
Table 2-42 Timing parameters of the I2C interface

2-72

Standard Mode

Fast Mode

Min

Max

Min

Max

fSCL

0

100

0

400

kHz

Start hold time

tHD;STA

4.0

–

0.6

–

μs

SCL low-level cycle

tLOW

4.7

–

1.3

–

μs

SCL high-level cycle

tHIGH

4.0

–

0.6

–

μs

Start setup time

tSU;STA

4.7

–

0.6

–

μs

Data hold time

tHD;DAT

0

3.45

0

0.9

μs

Data setup time

tSU;DAT

250

–

100

–

ns

SDA and SCL rising
time

tr

–

1000

20 +
0.1Cb

300

ns

SDA and SCL falling
time

tf

–

300

20 +
0.1Cb

300

ns

Parameter

Symbol

SCL clock frequency

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Unit

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Standard Mode

Fast Mode

Min

Max

Min

Max

tSU;STO

4.0

–

0.6

–

μs

Bus release time from
start to end

tBUF

4.7

–

1.3

–

μs

Bus load

Cb

–

400

–

400

pF

Low-level noise
tolerance

VnL

0.1VDD

–

0.1VDD

–

V

High-level noise
tolerance

VnH

0.2VDD

–

0.2VDD

–

V

Parameter

Symbol

End setup time

Unit

2.9.7 Timings of the MMC Interface
Figure 2-18 shows the timings of the MMC interface.
Figure 2-18 Timings of the MMC interface
T

MMCCLK
(OUT Port)

Tsu

Thd

Input
Tov
Output

Table 2-43 lists the timing parameters of the MMC interface.
Table 2-43 Timing parameters of the MMC interface
Parameter

Symbol

Min

Typ

Max

Unit

MMCCLK clock cycle

T

20.8

–

–

ns

Input signal setup time

Tsu

5

–

–

ns

Input signal hold time

Thd

2.5

–

–

ns

Output signal delay

Tov

6.5

–

14.3

ns

2.9.8 Timings of the SPI Interface
From Figure 2-19 to Figure 2-21, the acronyms and conventions are as follows:

Issue 02 (2010-04-20)

z

MSB = most significant bit

z

LSB = least significant bit

z

SPICK(0):spo = 0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-73

Hi3515
Data Sheet

2 Hardware
z

SPICK(1):spo = 1

Figure 2-19 shows the SPICK timing of the SPI interface.
Figure 2-19 SPICK timing of the SPI interface
2

3
1

SPICK(0)
SPICK(1)

Figure 2-20 and Figure 2-21 show the timings of the SPI interface in master mode.
Figure 2-20 Timing of the SPI interface in master mode (sph = 0)
SPICSN
10

11

SPICK(0)
SPICK(1)
4

6

5

7

SPIDI
8

9

SPIDO

Figure 2-21 Timing of the SPI interface in master mode (sph = 1)
SPICSN
19

18
SPICK(0)
SPICK(1)
14
12
MSB IN

SPIDI

15
13
DATA

LSB IN
17

16
SPIDO

MSB OUT

DATA

MSB OUT

Table 2-44 lists the timing parameters of the SPI interface.
Table 2-44 Timing parameters of the SPI interface

2-74

No

Parameter

Symbol

Min

Typ

Max

Unit

1

Cycle time, SPICK

tc

–

–

–

ns

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

No

Parameter

Symbol

Min

Typ

Max

Unit

2

Pulse duration, SPICK high (all
master modes)

tw1

–

–

–

ns

3

Pulse duration. SPICK low (all
master modes)

tw2

–

–

–

ns

4

Setup time, SPIDI (input) valid
before SPICK (output) falling
edge

tsu1

–

–

–

ns

5

Setup time, SPIDI (in put) valid
before SPICK (output)

tsu2

–

–

–

ns

rising edge
6

Hold time, SPIDI (input) valid
after SPICK (output) falling edge

th1

–

–

–

ns

7

Hold time, SPIDI (input) valid
after SPICK (output) rising edge

th2

–

–

–

ns

8

Delay time, SPICK (output) rising
edge to SPIDO (output) transition

td1

–

–

–

ns

9

Delay time, SPICK (output)
falling edge to SPIDO (output)
transition

td2

–

–

–

ns

10

Delay time, SPICSN (output)
falling edge to first SPICK
(output) rising or falling edge

td3

–

–

–

ns

11

Delay time, SPICK (output) rising
or falling edge to SPICSN (output)
rising edge

td4

–

–

–

ns

12

Setup time, SPIDI (input) valid
before SPICK (output) rising edge

tsu3

–

–

–

ns

13

Setup time, SPIDI (in put) valid
before SPICK (output) falling
edge

tsu4

–

–

–

ns

14

Hold time, SPIDI (input) valid
after SPICK (output) rising edge

th3

–

–

–

ns

15

Hold time, SPIDI (input) valid
after SPICK (output) falling edge

th4

–

–

–

ns

16

Delay time, SSP_SPICK (output)
falling edge to SSP_SPIDO
(output) transition

td5

–

–

–

ns

17

Delay time, SPICK (output) rising
edge to SPIDO (output) transition

td6

–

–

–

ns

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-75

Hi3515
Data Sheet

2 Hardware

No

Parameter

Symbol

Min

Typ

Max

Unit

18

Delay time, SPICSN (output)
falling edge to first SPICK
(output) rising or falling edge

td7

–

–

–

ns

19

Delay time, SPICK (output) rising
or falling edge to SPICSN (output)
rising edge

td8

–

–

–

ns

2.9.9 Timings of the UART Interface
Figure 2-22 shows the timings of the UART interface.
Figure 2-22 Timings of the UART interface
1

2
LSB

Stop bit(1-2 bit)

MSB

UART_RXD
Start bit
3

5-8 bit data
LSB

4

Parity bit
(Optional)
Stop bit(1-2 bit)

MSB

UART_TXD
Start bit

5-8 bit data

Parity bit
(Optional)

Table 2-45 lists the timing parameters of the UART receive data signal URXD.
Table 2-45 Timing parameters of the receive data signal URXD
No.

Parameter

Symbol

Min

Typ

Max

Unit

1

Pulse width, receive start
bit

UART_RXD

0.96 U

–

1.05 U

ns

2

Pulse width, receive data bit

UART_RXD

0.96 U

–

1.05 U

ns

U = UART baud time = 1/baud rate

Table 2-46 lists the timing parameters of the transmit data signal UTXD.
Table 2-46 Timing parameters of the transmit data signal UTXD

2-76

No.

Parameter

Symbol

Min

Typ

Max

Unit

3

Pulse width, transmit start
bit

UART_TXD

U-2

–

U+2

ns

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

No.

Parameter

Symbol

Min

Typ

Max

Unit

4

Pulse width, transmit data
bit

UART_TXD

U-2

–

U+2

ns

U = UART baud time = 1/baud rate

2.9.10 Timings of the SIO Interface
Timings of the I2S Interface
Figure 2-23 shows the receive timing of the I2S interface.
Figure 2-23 Receive timing of the I2S interface
RCK
Tsu

Thd

RFS
Tsu

Thd

DI

Figure 2-24 shows the transmit timing of the I2S interface.
Figure 2-24 Transmit timing of the I2S interface
XCK
XFS

Td

Td
Td

DO

Table 2-47 lists the timing parameters of the I2S interface.
Table 2-47 Timing parameters of the I2S interface
Parameter

Symbol

Min

Typ

Max

Unit

Input signal setup time

Tsu

10

–

–

ns

Input signal hold time

Thd

10

–

–

ns

Output signal delay time

Td

0

–

8

ns

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-77

Hi3515
Data Sheet

2 Hardware

Timings of the PCM Interface
Figure 2-25 shows the receive timing of the PCM interface.
Figure 2-25 Receive timing of the PCM interface
RCK

Tsu

Thd

RFS

Tsu

Thd

DI

Figure 2-26 shows the transmit timing of the PCM interface.
Figure 2-26 Transmit timing of the PCM interface
XCK

Td
XFS

Td
Td

DO

Table 2-48 lists the timing parameters of the PCM interface.
Table 2-48 Timing parameters of the PCM interface
Parameter

Symbol

Min

Typ

Max

Unit

Input signal setup time

Tsu

10

–

–

ns

Input signal hold time

Thd

10

–

–

ns

Output signal delay time

Td

0

–

8

ns

2.9.11 Timings of the SMI Interface
For details about the timings of the SMI interface, see the "Function Principle" in section
4.2.4 "Function Description."

2.9.12 Timings of the SATA Interface
The SATA interface provides high-speed external serial differential signals and has only one
pair of differential data lines. The clock is multiplexed with the serial data bus. That is, there
is no separate clock pins. Therefore, the peer end needs to extract the clock information when
receiving data.

2-78

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

2.10 Package and Pin-out
2.10.1 Package
The Hi3515 uses the 0.09 µm technology and the thin fine–pitch ball grid array 441
(TFBGA441) package. The package dimensions are 19 mm x 19 mm and the ball pitch is 0.8
mm. For details about the package dimensions, see Figure 2-27 to Figure 2-31. For the
dimension parameters, see Table 2-49.
Figure 2-27 Package dimensions (top view)
A
PIN#1

D

aaa
B

E

aaa

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-79

Hi3515
Data Sheet

2 Hardware

Figure 2-28 Package dimensions (bottom view)
D1
e
AC
AB
AA
Y
W
V
U
T
R
P
N
M
L
K
J
H
G
F
E
D
C
B
A

E1

1

3
2

5
4

7
6

9
8

11 13 15 17 19 21 23
10 12 14 16 18 20 22

"B"

Figure 2-29 Detail B
eee M C A B
fff M C

b 3

D
C
B
A
6

1

2

3

4

Detail: "B"

2-80

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-30 Package dimensions (side view)

"A"

Figure 2-31 Detail A
Cavity
bbbC
A2
c
C

Solder ball

ddd C

A

A1

Seating plane
2
Detail: "A"

Table 2-49 Package dimensions
Parameter

Dimension (mm)
Min

Typ

Max

A

–

–

1.40

A1

0.25

0.30

0.35

A2

0.91

0.96

1.01

b

0.35

0.40

0.45

c

0.22

0.26

0.3

D

18.90

19.00

19.10

E

18.90

19.00

19.10

D1

–

17.60

–

E1

–

17.60

–

e

–

0.80

–

aaa

0.15

bbb

0.20

ddd

0.20

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-81

Hi3515
Data Sheet

2 Hardware

Parameter

Dimension (mm)
Min

Typ

eee

0.15

fff

0.08

MD/ME

23/23

Max

2.10.2 Pin-out
Figure 2-32 shows the pin-out (top view) of the Hi3515. Figure 2-35 to Figure 2-38 show the
block diagrams.
Figure 2-33 shows the pin-out blocks in Figure 2-35 to Figure 2-38, and Figure 2-34 shows the color
definitions of the pin-out.

Figure 2-32 Pin-out
1

2

3

4

DDRDM3 DDRDQ25 DDRDQ29

5

6

DDRDQSP
3

VSS

7

8

9

10

11

12

13

14

15

16

17

18

19

20

DDRDQSP DDRADR1
DDRADR1 DDRADR3 DDRCKP1
2
3

VSS

DDRCKP0 DDRADR0 DDRCASN DDRCSN DDRWEN

DDRDQSN
DDRDQ20 DDRADR7 DDRADR5 DDRCKN1
2

VSS

DDRCKN0 DDRADR2 DDRRASN DDRODT

21

22

DDRDQSN
DDRDQ7
0

A

VSS

B

SIO0XFS

SIO0DI

VSS

DDRDQ30

C

ACKOUT

SIO0XCK

SIO0RCK

VSS

D

SIO1RFS

SIO1DI

SIO0RFS

SIO0DO

VSS

E

VODAT2

VODAT1

VODAT0

SIO1RCK

VSS

F

VODAT5

VODAT4

VOCK

VODAT3

DVDD33

DVDD18

DDRDQ8 DDRDQ12 DDRDQ9

G

VI0HS

VODAT7

VODAT6

VSS

DVDD33

DVDD18

DDRDM1

VSS

DDRDQSN
DDRDQ28
3

DDRDQ21 DDRDM2

VSS

DDRDQ24 DDRDQ26 DDRDQ23

DDRDQ16

VSS

DDRDQ31 DDRDQ27 DDRDQ18

DVDD18

DVDD18

VREF

DDRDQ22 DDRDQ17 DDRADR9

VSS

VSS

DDRDQ19 DDRADR8

DVDD18

DVDD18

VSS

VSS

DDRDQ5

23
VSS

DDRDQSP
DDRDQ6 DDRDQ15
0

DDRADR1 DDRADR1
DDRCKE DDRADR6 DDRBA1
0
1

DDRBA2

VSS

DDRDQ2

DDRDQ1

DDRDQ3

VSS

A
B

DDRDQ11

C
D

VSS

DDRADR4

DDRADR1
2

VSS

DDRBA0

VSS

DDRDQ0

DDRDM0

DDRDQ4

VSS

DDRDQ10 DDRDQ14

DVDD18

VSS

VSS

DVDD18

DVDD18

VSS

VREF

VSS

VSS

DDRDQ13

DDRDQSP DDRDQSN
1
1

E

VSS

F

UTXD1

UCTSN1

G
H

H

VI0VS

VI0CK

VI0DAT1

VI0DAT0

VSS

DVDD18

DVDD18

DVDD10

DVDD10

VSS

DVDD18

DVDD10

DVDD10

DVDD18

VSS

VSS

URXD1

URTSN1

URXD0

J

VI0DAT4

VI0DAT3

VI0DAT2

VSS

DVDD33

DVDD10

VSS

VSS

VSS

VSS

VSS

VSS

VSS

DVDD18

DVDD33

SDA

SCL

UTXD0

VSS

J

K

VI1DAT0

VI0DAT7

VI0DAT6

VI0DAT5

VSS

DVDD10

VSS

VSS

VSS

VSS

VSS

VSS

VSS

DVDD10

VDD10_S
AVDD33_
VSS_SPLL
PLL
SPLL

VSS

XOUT24

K

L

VI1DAT3

VI1DAT2

VI1DAT1

DVDD33

DVDD33

DVDD10

VSS

VSS

VSS

VSS

VSS

VSS

VSS

DVDD10

VDD10_A
AVDD33_ TESTMOD
VSS_APLL
PLL
APLL
E

M

VI1DAT6

VI1DAT5

VI1DAT4

VI1CK

VSS

DVDD10

VSS

VSS

VSS

VSS

VSS

VSS

VSS

VDD10_V
PLL

AVDD33_
VSS_VPLL
VPLL

N

VI1DAT7

VI2VS

VI2HS

VSS

DVDD33

DVDD10

VSS

VSS

VSS

VSS

VSS

VSS

VSS

SPHY_VP

VSS

TCK

XIN24

L

RSTN

WDGRST
N

VSS

M

TMS

TDO

TDI

N

TRSTN

VSS

VSS

P

P

VI2DAT3

VI2DAT2

VI2DAT1

VI2DAT0

VSS

AVSS

VSS

VSS

VSS

VSS

VSS

VSS

VSS

SPHY_VP

SPHY_VP
SRESREF
H

R

VI2DAT5

VI2DAT4

VI2CK

DVDD33

DVDD33

AVSS

VSS

VSS

VSS

VSS

VSS

VSS

VSS

SPHY_VP

SPHY_VP
H

VSS

VSS

T

VI2DAT7

VI2DAT6

VI3DAT1

VI3DAT0

AVSS

DVDD10

USBVDD

USBVSS

DVDD10

DVDD10

DVDD10

DVDD10

SPHY_VP
H

STXP1

STXM1

VSS

VSS

T

U

VI3DAT2

VI3DAT3

VI3CK

VI3DAT4

AVSS

VSS

VSS

VSS

SRXM1

SRXP1

U

VI3DAT5

VI3DAT6

VI3DAT7

AVDD33

AVDD33

STXM0

STXP0

VSS

SRXM0

SRXP0

V

VREFINDA COMPDA
C0
C0

AVDD33

AVDD33

DVSS33_ DVDD33_
DAC
DAC

VSS

VSS

VSS

W

NFCLE

NFOEN

NFCS0N

NFCS1N

Y

EBIWEN

EBIRDYN

NFALE

NFRB

AA

V
W

DVSS10_ DVDD10_
DAC
DAC

DVDD33

DVDD33

VSS

DVDD33

DVDD33

VSS

SPHY_VP SPHY_VP
H
H

USBVSSA
USBVDDA
USBDM1
DVDD33
33
33

EBIDQ6

EBIADR2

VSS

EBIADR9

SMIOEN

VSS

SMICS1N

ERXD2

USBVSSA
33

VSS

DVDD33

ERXCK

ERXD3

ECRS

AVSS

RSETDAC RSETDAC VREFINDA
0
1
C1

AA

DACVGA0
R

AVSS

COMPDA
C1

VGAHS

MDIO

AB

DACVGA1
R

AVSS

AVSS

VGAVS

ETXD0

ETXD3

ECOL

ERXD1

AVSS

ETXD1

ERXDV

ETXEN

ERXD0

4

5

6

7

8

Y

AC

AVSS

1

2-82

DACVGA1 DACVGA1
G
B

2

3

MDCK

ETXD2

ETXCK

USBVSSA
USBVDDA
USBREXT
33
33

VSS

SREFCKM SREFCKP

R

USBVDDA
USBDP1
33

EBIDQ2

EBIDQ5

EBIADR1

EBIADR5

EBIADR8 EBIADR12 EBIADR24 SMICS0N

VSS

USBDM0

VSS

EBIDQ1

EBIDQ4

EBIADR0

EBIADR4

EBIADR7 EBIADR11 EBIADR14 EBIADR16 EBIADR18 EBIADR20 EBIADR22 EBIADR23

AB

VSS

USBDP0

VSS

EBIDQ0

EBIDQ3

EBIDQ7

EBIADR3

EBIADR6 EBIADR10 EBIADR13 EBIADR15 EBIADR17 EBIADR19 EBIADR21

AC

9

10

11

12

13

14

15

16

17

18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

19

20

21

22

VSS

23

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-33 Pin-out blocks
1

2

3

4

5

A
B
C
D
E
F
G
H
J
K
L
M
N
P
R
T
U
V
W
Y
AA
AB
AC
1

2

3

4

5

6

7

8

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23

A

B

C

D

6

7

8

9

A
B
C
D
E
F
G
H
J
K
L
M
N
P
R
T
U
V
W
Y
AA
AB
AC

10 11 12 13 14 15 16 17 18 19 20 21 22 23

Figure 2-34 Color definitions of the pin-out

441 ball TFBGA19X19 pinassign for Hi3515

TOP view

Power group

Net group

Net group

VSS

DAC0/DAC1

SIO

VSS

115

VSS

DVDD33

15

DVDD33

DVDD33

UART

CLK & RESET&TEST

DVDD10

16

DVDD10

DVDD10

DDR2

USB

DVDD18

14

DVDD18

DVDD18

EBI

SATA

ETH

JTAG

VO/VI

PLL
I2C

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-83

Hi3515
Data Sheet

2 Hardware

Figure 2-35 Hi3515 pin-out block A

1

2

3

4

6

DDRDQSP
3

VSS

A

VSS

B

SIO0XFS

SIO0DI

VSS

DDRDQ30

C

ACKOUT

SIO0XCK

SIO0RCK

VSS

D

SIO1RFS

SIO1DI

SIO0RFS

SIO0DO

VSS

E

VODAT2

VODAT1

VODAT0

SIO1RCK

VSS

F

VODAT5

VODAT4

VOCK

VODAT3

DVDD33

G

VI0HS

VODAT7

VODAT6

VSS

DVDD33

H

VI0VS

VI0CK

VI0DAT1

VI0DAT0

J

VI0DAT4

VI0DAT3

VI0DAT2

K

VI1DAT0

VI0DAT7

L

VI1DAT3

M

VI1DAT6

2-84

DDRDM3 DDRDQ25 DDRDQ29

5

DDRDQSN
DDRDQ28
3

7

8

DDRDQ21 DDRDM2

VSS

DDRDQ24 DDRDQ26 DDRDQ23

DDRDQ16

VSS

DDRDQ31 DDRDQ27 DDRDQ18

DVDD18

DVDD18

9

10

11

12

DDRDQSP DDRADR1
DDRADR1 DDRADR3
2
3
DDRDQSN
DDRDQ20 DDRADR7 DDRADR5
2
DDRDQ22 DDRDQ17 DDRADR9

VSS

DDRDQ19 DDRADR8

DDRADR1
0
VSS

VREF

VSS

DVDD18

DVDD18

DVDD18

VSS

DVDD18

DVDD18

DVDD10

DVDD10

VSS

VSS

DVDD33

DVDD10

VSS

VSS

VSS

VSS

VI0DAT6

VI0DAT5

VSS

DVDD10

VSS

VSS

VSS

VSS

VI1DAT2

VI1DAT1

DVDD33

DVDD33

DVDD10

VSS

VSS

VSS

VSS

VI1DAT5

VI1DAT4

VI1CK

VSS

DVDD10

VSS

VSS

VSS

VSS

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-36 Hi3515 pin-out block B

13

14

DDRCKP1

VSS

DDRCKN1

VSS

15

16

19

20

DDRCKP0 DDRADR0 DDRCASN DDRCSN

DDRWEN

VSS

DDRCKN0 DDRADR2 DDRRASN DDRODT

VSS

DDRDQ5

DDRADR1
DDRCKE DDRADR6 DDRBA1
1

17

18

21

22

DDRDQSN
DDRDQ7
0

23
VSS

DDRDQSP
DDRDQ6 DDRDQ15
0

DDRBA2

VSS

DDRDQ2

DDRDQ1

DDRDQ3

VSS

C
D

DDRADR1
2

VSS

DDRBA0

VSS

DDRDQ0

DDRDM0

DDRDQ4

VSS

DDRDQ10 DDRDQ14

VSS

VSS

DVDD18

DVDD18

VSS

VREF

VSS

VSS

DDRDQ13

DDRDQSP DDRDQSN
1
1

DDRDQ8 DDRDQ12 DDRDQ9

DVDD18

DDRDM1

VSS

B

DDRDQ11

DDRADR4

DVDD18

A

E

VSS

F

UTXD1

UCTSN1

G

DVDD18

DVDD10

DVDD10

DVDD18

VSS

VSS

URXD1

URTSN1

URXD0

H

VSS

VSS

VSS

DVDD18

DVDD33

SDA

SCL

UTXD0

VSS

J

VSS

VSS

VSS

DVDD10

VDD10_S
AVDD33_
VSS_SPLL
PLL
SPLL

VSS

XOUT24

K

VSS

VSS

VSS

DVDD10

VDD10_A
AVDD33_ TESTMOD
VSS_APLL
PLL
APLL
E

XIN24

L

VSS

VSS

VSS

VDD10_V
PLL

AVDD33_
VSS_VPLL
VPLL

VSS

M

Issue 02 (2010-04-20)

RSTN

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

WDGRST
N

2-85

Hi3515
Data Sheet

2 Hardware

Figure 2-37 Hi3515 pin-out block C

N

VI1DAT7

VI2VS

VI2HS

VSS

DVDD33

DVDD10

VSS

VSS

VSS

VSS

P

VI2DAT3

VI2DAT2

VI2DAT1

VI2DAT0

VSS

AVSS

VSS

VSS

VSS

VSS

R

VI2DAT5

VI2DAT4

VI2CK

DVDD33

DVDD33

AVSS

VSS

VSS

VSS

VSS

T

VI2DAT7

VI2DAT6

VI3DAT1

VI3DAT0

AVSS

DVDD10

USBVDD

USBVSS

U

VI3DAT2

VI3DAT3

VI3CK

VI3DAT4

AVSS

V

VI3DAT5

VI3DAT6

VI3DAT7

AVDD33

AVDD33

VREFINDA COMPDA
C0
C0

AVDD33

AVDD33

DVSS33_ DVDD33_
DAC
DAC

W
Y

AVSS

DVSS10_ DVDD10_
DAC
DAC

VSS

DVDD33

USBVSSA
USBVDDA
USBREXT
33
33

VSS

RSETDAC RSETDAC VREFINDA
0
1
C1

MDCK

ETXD2

ERXCK

ERXD3

USBVSSA
USBVDDA
USBDM1
DVDD33
33
33

AA

DACVGA0
R

AVSS

COMPDA
C1

VGAHS

MDIO

ETXCK

ECRS

ERXD2

USBVSSA
33

USBDP1

USBVDDA
33

EBIDQ2

AB

DACVGA1
R

AVSS

AVSS

VGAVS

ETXD0

ETXD3

ECOL

ERXD1

VSS

USBDM0

VSS

EBIDQ1

AVSS

ETXD1

ERXDV

ETXEN

ERXD0

VSS

USBDP0

VSS

EBIDQ0

4

5

6

7

8

9

10

11

12

AC

AVSS

1

2-86

DACVGA1 DACVGA1
G
B

2

3

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Figure 2-38 Hi3515 pin-out block D
VSS

VSS

VSS

SPHY_VP

VSS

TCK

TMS

TDO

TDI

N

VSS

VSS

VSS

SPHY_VP

SPHY_VP
SRESREF
H

TRSTN

VSS

VSS

P

VSS

VSS

VSS

SPHY_VP

SPHY_VP
H

VSS

VSS

DVDD10

DVDD10

DVDD10

DVDD10

SPHY_VP
H

STXP1

STXM1

VSS

VSS

T

VSS

VSS

VSS

SRXM1

SRXP1

U

STXM0

STXP0

VSS

SRXM0

SRXP0

V

VSS

VSS

VSS

W

NFCLE

NFOEN

NFCS0N

NFCS1N

Y

EBIWEN

EBIRDYN

NFALE

NFRB

AA

SREFCKM SREFCKP

R

DVDD33

DVDD33

VSS

DVDD33

DVDD33

VSS

SPHY_VP SPHY_VP
H
H

EBIDQ6

EBIADR2

VSS

EBIADR9

SMIOEN

VSS

SMICS1N

EBIDQ5

EBIADR1

EBIADR5

EBIADR8 EBIADR12 EBIADR24 SMICS0N

EBIDQ4

EBIADR0

EBIADR4

EBIADR7 EBIADR11 EBIADR14 EBIADR16 EBIADR18 EBIADR20 EBIADR22 EBIADR23

AB

EBIDQ3

EBIDQ7

EBIADR3

EBIADR6 EBIADR10 EBIADR13 EBIADR15 EBIADR17 EBIADR19 EBIADR21

AC

13

14

15

16

17

18

19

20

21

22

VSS

23

2.10.3 Pin Arrangement Table
Table 2-50 lists the pins of the Hi3515 in order.
Table 2-50 Pin arrangement table
Position

Pin

Position

Pin

A1

VSS

M13

VSS

A2

DDRDM3

M14

VSS

A3

DDRDQ25

M15

VSS

A4

DDRDQ29

M16

VDD10_VPLL

A5

DDRDQSP3

M19

AVDD33_VPLL

A6

VSS

M20

VSS_VPLL

A7

DDRDQ21

M21

RSTN

A8

DDRDM2

M22

WDGRSTN

A9

DDRDQSP2

M23

VSS

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-87

Hi3515
Data Sheet

2 Hardware

2-88

Position

Pin

Position

Pin

A10

DDRADR13

N1

VI1DAT7

A11

DDRADR1

N2

VI2VS

A12

DDRADR3

N3

VI2HS

A13

DDRCKP1

N4

VSS

A14

VSS

N5

DVDD33

A15

DDRCKP0

N8

DVDD10

A16

DDRADR0

N9

VSS

A17

DDRCASN

N10

VSS

A18

DDRCSN

N11

VSS

A19

DDRWEN

N12

VSS

A20

VSS

N13

VSS

A21

DDRDQSN0

N14

VSS

A22

DDRDQ7

N15

VSS

A23

VSS

N16

SPHY_VP

B1

SIO0XFS

N19

VSS

B2

SIO0DI

N20

TCK

B3

VSS

N21

TMS

B4

DDRDQ30

N22

TDO

B5

DDRDQSN3

N23

TDI

B6

DDRDQ28

P1

VI2DAT3

B7

VSS

P2

VI2DAT2

B8

DDRDQ16

P3

VI2DAT1

B9

DDRDQSN2

P4

VI2DAT0

B10

DDRDQ20

P5

VSS

B11

DDRADR7

P8

AVSS

B12

DDRADR5

P9

VSS

B13

DDRCKN1

P10

VSS

B14

VSS

P11

VSS

B15

DDRCKN0

P12

VSS

B16

DDRADR2

P13

VSS

B17

DDRRASN

P14

VSS

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Position

Pin

Position

Pin

B18

DDRODT

P15

VSS

B19

VSS

P16

SPHY_VP

B20

DDRDQ5

P19

SPHY_VPH

B21

DDRDQSP0

P20

SRESREF

B22

DDRDQ6

P21

TRSTN

B23

DDRDQ15

P22

VSS

C1

ACKOUT

P23

VSS

C2

SIO0XCK

R1

VI2DAT5

C3

SIO0RCK

R2

VI2DAT4

C4

VSS

R3

VI2CK

C5

DDRDQ24

R4

DVDD33

C6

DDRDQ26

R5

DVDD33

C7

DDRDQ23

R8

AVSS

C8

VSS

R9

VSS

C9

DDRDQ22

R10

VSS

C10

DDRDQ17

R11

VSS

C11

DDRADR9

R12

VSS

C12

DDRADR10

R13

VSS

C13

DDRADR11

R14

VSS

C14

DDRCKE

R15

VSS

C15

DDRADR6

R16

SPHY_VP

C16

DDRBA1

R19

SPHY_VPH

C17

DDRBA2

R20

VSS

C18

VSS

R21

VSS

C19

DDRDQ2

R22

SREFCKM

C20

DDRDQ1

R23

SREFCKP

C21

DDRDQ3

T1

VI2DAT7

C22

VSS

T2

VI2DAT6

C23

DDRDQ11

T3

VI3DAT1

D1

SIO1RFS

T4

VI3DAT0

D2

SIO1DI

T5

AVSS

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-89

Hi3515
Data Sheet

2 Hardware

2-90

Position

Pin

Position

Pin

D3

SIO0RFS

T8

DVSS10_DAC

D4

SIO0DO

T9

DVDD10_DAC

D5

VSS

T10

DVDD10

D6

DDRDQ31

T11

USBVDD

D7

DDRDQ27

T12

USBVSS

D8

DDRDQ18

T13

DVDD10

D9

VSS

T14

DVDD10

D10

DDRDQ19

T15

DVDD10

D11

DDRADR8

T16

DVDD10

D12

VSS

T19

SPHY_VPH

D13

DDRADR4

T20

STXP1

D14

DDRADR12

T21

STXM1

D15

VSS

T22

VSS

D16

DDRBA0

T23

VSS

D17

VSS

U1

VI3DAT2

D18

DDRDQ0

U2

VI3DAT3

D19

DDRDM0

U3

VI3CK

D20

DDRDQ4

U4

VI3DAT4

D21

VSS

U5

AVSS

D22

DDRDQ10

U19

VSS

D23

DDRDQ14

U20

VSS

E1

VODAT2

U21

VSS

E2

VODAT1

U22

SRXM1

E3

VODAT0

U23

SRXP1

E4

SIO1RCK

V1

VI3DAT5

E5

VSS

V2

VI3DAT6

E6

DVDD18

V3

VI3DAT7

E7

DVDD18

V4

AVDD33

E8

VREF

V5

AVDD33

E9

VSS

V19

STXM0

E10

DVDD18

V20

STXP0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Position

Pin

Position

Pin

E11

DVDD18

V21

VSS

E12

DVDD18

V22

SRXM0

E13

VSS

V23

SRXP0

E14

VSS

W1

VREFINDAC0

E15

DVDD18

W2

COMPDAC0

E16

DVDD18

W3

AVDD33

E17

VSS

W4

AVDD33

E18

VREF

W5

DVSS33_DAC

E19

VSS

W6

DVDD33_DAC

E20

VSS

W7

VSS

E21

DDRDQ13

W8

DVDD33

E22

DDRDQSP1

W9

USBVSSA33

E23

DDRDQSN1

W10

USBREXT

F1

VODAT5

W11

USBVDDA33

F2

VODAT4

W12

VSS

F3

VOCK

W13

DVDD33

F4

VODAT3

W14

DVDD33

F5

DVDD33

W15

VSS

F19

DVDD18

W16

DVDD33

F20

DDRDQ8

W17

DVDD33

F21

DDRDQ12

W18

VSS

F22

DDRDQ9

W19

SPHY_VPH

F23

VSS

W20

SPHY_VPH

G1

VI0HS

W21

VSS

G2

VODAT7

W22

VSS

G3

VODAT6

W23

VSS

G4

VSS

Y1

AVSS

G5

DVDD33

Y2

RSETDAC0

G19

DVDD18

Y3

RSETDAC1

G20

DDRDM1

Y4

VREFINDAC1

G21

VSS

Y5

MDCK

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-91

Hi3515
Data Sheet

2 Hardware

2-92

Position

Pin

Position

Pin

G22

UTXD1

Y6

ETXD2

G23

UCTSN1

Y7

ERXCK

H1

VI0VS

Y8

ERXD3

H2

VI0CK

Y9

USBVSSA33

H3

VI0DAT1

Y10

USBDM1

H4

VI0DAT0

Y11

USBVDDA33

H5

VSS

Y12

DVDD33

H8

DVDD18

Y13

EBIDQ6

H9

DVDD18

Y14

EBIADR2

H10

DVDD10

Y15

VSS

H11

DVDD10

Y16

EBIADR9

H12

VSS

Y17

SMIOEN

H13

DVDD18

Y18

VSS

H14

DVDD10

Y19

SMICS1N

H15

DVDD10

Y20

NFCLE

H16

DVDD18

Y21

NFOEN

H19

VSS

Y22

NFCS0N

H20

VSS

Y23

NFCS1N

H21

URXD1

AA1

DACVGA0R

H22

URTSN1

AA2

AVSS

H23

URXD0

AA3

COMPDAC1

J1

VI0DAT4

AA4

VGAHS

J2

VI0DAT3

AA5

MDIO

J3

VI0DAT2

AA6

ETXCK

J4

VSS

AA7

ECRS

J5

DVDD33

AA8

ERXD2

J8

DVDD10

AA9

USBVSSA33

J9

VSS

AA10

USBDP1

J10

VSS

AA11

USBVDDA33

J11

VSS

AA12

EBIDQ2

J12

VSS

AA13

EBIDQ5

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

2 Hardware

Position

Pin

Position

Pin

J13

VSS

AA14

EBIADR1

J14

VSS

AA15

EBIADR5

J15

VSS

AA16

EBIADR8

J16

DVDD18

AA17

EBIADR12

J19

DVDD33

AA18

EBIADR24

J20

SDA

AA19

SMICS0N

J21

SCL

AA20

EBIWEN

J22

UTXD0

AA21

EBIRDYN

J23

VSS

AA22

NFALE

K1

VI1DAT0

AA23

NFRB

K2

VI0DAT7

AB1

DACVGA1R

K3

VI0DAT6

AB2

AVSS

K4

VI0DAT5

AB3

AVSS

K5

VSS

AB4

VGAVS

K8

DVDD10

AB5

ETXD0

K9

VSS

AB6

ETXD3

K10

VSS

AB7

ECOL

K11

VSS

AB8

ERXD1

K12

VSS

AB9

VSS

K13

VSS

AB10

USBDM0

K14

VSS

AB11

VSS

K15

VSS

AB12

EBIDQ1

K16

DVDD10

AB13

EBIDQ4

K19

VDD10_SPLL

AB14

EBIADR0

K20

VSS_SPLL

AB15

EBIADR4

K21

AVDD33_SPLL

AB16

EBIADR7

K22

VSS

AB17

EBIADR11

K23

XOUT24

AB18

EBIADR14

L1

VI1DAT3

AB19

EBIADR16

L2

VI1DAT2

AB20

EBIADR18

L3

VI1DAT1

AB21

EBIADR20

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2-93

Hi3515
Data Sheet

2 Hardware

2-94

Position

Pin

Position

Pin

L4

DVDD33

AB22

EBIADR22

L5

DVDD33

AB23

EBIADR23

L8

DVDD10

AC1

AVSS

L9

VSS

AC2

DACVGA1G

L10

VSS

AC3

DACVGA1B

L11

VSS

AC4

AVSS

L12

VSS

AC5

ETXD1

L13

VSS

AC6

ERXDV

L14

VSS

AC7

ETXEN

L15

VSS

AC8

ERXD0

L16

DVDD10

AC9

VSS

L19

VDD10_APLL

AC10

USBDP0

L20

VSS_APLL

AC11

VSS

L21

AVDD33_APLL

AC12

EBIDQ0

L22

TESTMODE

AC13

EBIDQ3

L23

XIN24

AC14

EBIDQ7

M1

VI1DAT6

AC15

EBIADR3

M2

VI1DAT5

AC16

EBIADR6

M3

VI1DAT4

AC17

EBIADR10

M4

VI1CK

AC18

EBIADR13

M5

VSS

AC19

EBIADR15

M8

DVDD10

AC20

EBIADR17

M9

VSS

AC21

EBIADR19

M10

VSS

AC22

EBIADR21

M11

VSS

AC23

VSS

M12

VSS

–

–

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
3 System ..........................................................................................................................................3-1
3.1 Reset..............................................................................................................................................................3-1
3.1.1 Overview..............................................................................................................................................3-1
3.1.2 Reset Control .......................................................................................................................................3-1
3.1.3 Reset Configuration .............................................................................................................................3-2
3.2 Clock .............................................................................................................................................................3-3
3.2.1 Overview..............................................................................................................................................3-3
3.2.2 Clock Control.......................................................................................................................................3-3
3.2.3 Clock Configuration.............................................................................................................................3-5
3.3 Processor and Memory Address Mapping...................................................................................................3-15
3.3.1 Processor............................................................................................................................................3-15
3.3.2 Memory Address Mapping.................................................................................................................3-15
3.4 Interrupt System ..........................................................................................................................................3-24
3.4.1 Overview............................................................................................................................................3-24
3.4.2 Features..............................................................................................................................................3-24
3.4.3 Function Description..........................................................................................................................3-24
3.4.4 Register Summary..............................................................................................................................3-27
3.4.5 Register Description...........................................................................................................................3-27
3.5 Direct Memory Access Controller...............................................................................................................3-32
3.5.1 Overview............................................................................................................................................3-32
3.5.2 Features..............................................................................................................................................3-32
3.5.3 Function Description..........................................................................................................................3-33
3.5.4 Operating Mode .................................................................................................................................3-36
3.5.5 Register Summary..............................................................................................................................3-37
3.5.6 Register Description...........................................................................................................................3-40
3.6 CIPHER ......................................................................................................................................................3-59
3.6.1 Overview............................................................................................................................................3-59
3.6.2 Features..............................................................................................................................................3-59
3.6.3 Function Description..........................................................................................................................3-60
3.6.4 Operating Mode .................................................................................................................................3-70
3.6.5 Register Summary..............................................................................................................................3-72
3.6.6 Register Description...........................................................................................................................3-73

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Contents

3.7 Timer ...........................................................................................................................................................3-87
3.7.1 Overview............................................................................................................................................3-87
3.7.2 Features..............................................................................................................................................3-87
3.7.3 Function Description..........................................................................................................................3-88
3.7.4 Operating Mode .................................................................................................................................3-89
3.7.5 Register Summary..............................................................................................................................3-90
3.7.6 Register Description...........................................................................................................................3-90
3.8 Watchdog.....................................................................................................................................................3-95
3.8.1 Overview............................................................................................................................................3-95
3.8.2 Features..............................................................................................................................................3-95
3.8.3 Signal Description..............................................................................................................................3-96
3.8.4 Function Description..........................................................................................................................3-96
3.8.5 Operating Mode .................................................................................................................................3-97
3.8.6 Register Summary..............................................................................................................................3-98
3.8.7 Register Description...........................................................................................................................3-99
3.9 Real Time Clock........................................................................................................................................3-102
3.9.1 Overview..........................................................................................................................................3-102
3.9.2 Features............................................................................................................................................3-102
3.9.3 Function Description........................................................................................................................3-102
3.9.4 Operating Mode ...............................................................................................................................3-103
3.9.5 Register Summary............................................................................................................................3-104
3.9.6 Regitsr Description ..........................................................................................................................3-104
3.10 System Controller....................................................................................................................................3-108
3.10.1 Overview........................................................................................................................................3-108
3.10.2 Features..........................................................................................................................................3-108
3.10.3 Function Description......................................................................................................................3-108
3.10.4 Register Summary.......................................................................................................................... 3-114
3.10.5 Register Description....................................................................................................................... 3-116
3.11 Power Management and Low-Power Mode Control ...............................................................................3-153
3.11.1 Overview........................................................................................................................................3-153
3.11.2 Operating Modes of the System .....................................................................................................3-153
3.11.3 Clock Gating and Clock Frequency Adjustment ............................................................................3-153
3.11.4 DDR Low-Power Control ..............................................................................................................3-154

ii

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Figures

Figures
Figure 3-1 Control diagram of reset signals .......................................................................................................3-1
Figure 3-2 Functional block diagram of the clock management module ...........................................................3-4
Figure 3-3 Address space mapping when the Hi3515 from the NOR flash......................................................3-16
Figure 3-4 Address distribution after the remapping is cleared during the booting from the NOR flash.........3-18
Figure 3-5 Address space mapping when the Hi3515 boots from the NAND flash .........................................3-19
Figure 3-6 Address distribution after the remapping is cleared during the booting from the NAND flash......3-20
Figure 3-7 Functional block diagram of the INT..............................................................................................3-24
Figure 3-8 Functional block diagram of the DMAC ........................................................................................3-33
Figure 3-9 Updating channel registers through the LLI ...................................................................................3-34
Figure 3-10 Structure of the DMAC LLIs........................................................................................................3-52
Figure 3-11 3DES encryption of the 3-key operation and the 2-key operation ................................................3-60
Figure 3-12 3DES decryption of the 3-key operation and 2-key operation......................................................3-61
Figure 3-13 ECB mode of the AES and DES algorithms .................................................................................3-61
Figure 3-14 ECB mode of the 3DES algorithm................................................................................................3-62
Figure 3-15 CBC mode of the AES and DES algorithms.................................................................................3-63
Figure 3-16 CBC mode of the 3DES algorithm ...............................................................................................3-64
Figure 3-17 S-bit CFB mode of the AES and DES algorithms ........................................................................3-65
Figure 3-18 S-bit CFB mode of the 3DES algorithm .......................................................................................3-66
Figure 3-19 OFB mode of the AES algorithm..................................................................................................3-67
Figure 3-20 S-bit OFB mode of the DES algorithm.........................................................................................3-68
Figure 3-21 S-bit OFB mode of the 3DES algorithm.......................................................................................3-69
Figure 3-22 CTR mode of the AES algorithm..................................................................................................3-70
Figure 3-23 Application block diagram of the watchdog .................................................................................3-96
Figure 3-24 Process of switching the system mode........................................................................................ 3-111
Figure 3-25 Bit allocation of chip ID registers............................................................................................... 3-114

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 3-1 Types of reset signals..........................................................................................................................3-2
Table 3-2 PLL configuration registers of the Hi3515 .........................................................................................3-5
Table 3-3 Formulas for calculating the frequency of each PLL pin of the Hi3515.............................................3-5
Table 3-4 Configuration parameters of the Hi3515 APLL..................................................................................3-6
Table 3-5 Configuration parameters of the Hi3515 EPLL..................................................................................3-7
Table 3-6 Configuration parameters of the Hi3515 VPLL0 ...............................................................................3-8
Table 3-7 Configuration parameters of the Hi3515 VPLL1 ...............................................................................3-9
Table 3-8 Frequency configuration of the ARM/SCLK/HCLK/PCLK ............................................................ 3-11
Table 3-9 Mapping between the system controller status and clock switching ................................................ 3-11
Table 3-10 Clock frequency configuration of the MMC module .....................................................................3-12
Table 3-11 Clock frequency configuration of the SMI module ........................................................................3-12
Table 3-12 Clock frequency configuration of the VO module..........................................................................3-13
Table 3-13 Clock frequency configuration of the VI module ...........................................................................3-13
Table 3-14 Clock frequency configuration of SIO0/SIO1 ................................................................................3-13
Table 3-15 Address spaces of the Hi3515.........................................................................................................3-21
Table 3-16 Interrupt mapping of the INT .........................................................................................................3-25
Table 3-17 Summary of the INT registers (based address: 0x1007_0000).......................................................3-27
Table 3-18 Hardware request signals of the DMAC.........................................................................................3-35
Table 3-19 Summary of the DMAC registers (base address: 0x100D_0000)...................................................3-38
Table 3-20 Mapping between the value of DBSize or SBSize and the burst size.............................................3-55
Table 3-21 Mapping between the value of DWidth or SWidth and the transfer bit width................................3-55
Table 3-22 Attributes and definitions of the prot field of DMAC_CX_CONTROL ........................................3-56
Table 3-23 Flow controller and transfer types corresponding to the flow_cntrl field.......................................3-59
Table 3-24 Summary of the CIPHER registers (base address: 0x100C_0000).................................................3-72
Table 3-25 Summary of the timer registers (base addresses: 0x2000_0000 and 0x2001_0000) ......................3-90
Table 3-26 Watchdog interface signal...............................................................................................................3-96

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

Tables

Table 3-27 Summary of watchdog registers (base address: 0x2004_0000)......................................................3-98
Table 3-28 Summary of the RTC registers (base address: 0x2006_0000) ......................................................3-104
Table 3-29 Relationship between the status of the system controller and the system clock ........................... 3-110
Table 3-30 Summary of the system controller registers (base address: 0x2005_0000) .................................. 3-114

vi

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

3

System

3.1 Reset
3.1.1 Overview
The reset management module manages the reset of the entire Hi3515 and all functional
modules as follows:
z

Manages and controls power-on reset.

z

Controls the system soft reset and the separate soft reset of each functional module.

z

Synchronizes reset signals to the clock domain corresponding to each module.

The reset management module generates reset signals for each internal functional module.

3.1.2 Reset Control
Figure 3-1 shows the control diagram of reset signals.
Figure 3-1 Control diagram of reset signals
System
controller
sys_rst_req

xx_rst_req

RSTN
ResetCtrl
level1

ResetCtrl
level2

xx_rst_n

sys_rst_n
npor
RSTN: Power-on reset signal derived from the RSTN pin of the Hi3515.
sys_rst_req: Global soft reset request signal derived from the system controller.
xx_rst_req: Separate soft reset request signal of each submodule derived from the system controller.
xx_rst_n, sys_rst_n, and npor: reset signals.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-1

Hi3515
Data Sheet

3 System

Table 3-1 Types of reset signals
Type

Source

Function

Global hard reset
signal (npor)

Derived from the RSTN reset
pin.

Globally resets the entire Hi3515.

Global soft reset
signal (syn_rst_n)

Derived from the global soft
reset register of the software
configuration system
controller.

Globally resets all the modules of the
Hi3515 excluding the clock reset
circuit and the test circuit.

Submodule reset
signal (xx_rst_n)

Derived from the submodule
reset control register of the
software configuration system
controller.

Separately resets each submodule of
the Hi3515.

3.1.3 Reset Configuration
Power-on Reset
The RSTN is the functional reset input/output (IO) of the Hi3515. To implement the power-on
reset, the following conditions must be met:
z

The power-on reset IO pin inputs a low-level pulse.

z

The clock input by the XIN pin of the crystal oscillator clock works properly.

z

The input power-on reset signals are maintained as low for more than 12 XIN crystal
oscillator clock cycles.

System Reset
The system is reset in either of the following two ways:
z

Power-on reset

z

Global soft reset, controlled by the system controller SC_SYSSTAT.

Soft Reset
Soft reset is controlled by configuring the associated system controller. For details about the
configurations, see the descriptions of SC_SYSSTAT.

3-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

z

After a system soft reset request is sent, the circuit reset is cleared after at least 360 system
clock cycles.

z

The separate soft reset of each module is not automatically cleared. For example, if a
module is reset after 1 is written to the associated bit, the reset of this module is cleared
only when the associated bit is set to 0.

z

The USB 2.0 host physical layer entity sublayer (PHY) module, MMC/SD/SDIO
controller (MMC), and Ethernet MAC (ETH), video input (VI), video output (VO), and
real time clock (RTC) modules are reset by default when they are powered on. Therefore,
the resets must be cleared before the modules work.

3.2 Clock
3.2.1 Overview
The clock management module manages clock input, clock generation, and clock control in a
unified manner as follows:
z

Manages and controls clock inputs.

z

Divides and controls clock frequencies.

z

Generates the working clock for each module.

3.2.2 Clock Control
Figure 3-2 shows the functional block diagram of the clock management module.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-3

Hi3515
Data Sheet

3 System

Figure 3-2 Functional block diagram of the clock management module

System
Controller
SC_PERCTRL0-7

SC_PERCTRL9

PLL
PLL

SC_PEREN
SC_PERDIS

arm_clk

ARMCLK
Freq Ctrl

sclk
Clock

PLL

Gating

PLL
IPCLK
Freq Ctrl

XIN24

XXIP_clk

VInCK

ERXCLK

ETXCLK

Note: In this diagram, the value of n in VInCK ranges from 0 to 3.

The inputs of the clock management module are as follows:
z

z

Clock inputs from the pins: XIN24, VI0CK, VI1CK, VI2CK, VI3CK, ERXCLK, and
ETXCLK.
−

XIN24 is the input clock of the phase-locked loop (PLL) and USB 2.0 host PHY.

−

VI0CK, VI1CK, VI2CK, and VI3CK are video input clocks.

−

ERXCLK and ETXCLK are the interface clocks of the ETH module.

Clock control registers derived from the system controller.
−

PLL frequency configuration

−

IP clock frequency configuration

−

Clock Gating Configuration

The clock management module consist of the following parts:

3-4

z

PLL unit: Generates ARM clock, bus clock, and the clocks required by other peripherals.

z

ARM frequency control unit (ARMCLK Freq Ctrl) and module clock frequency control
unit (IPCLK Freq Ctrl)

z

Clock gating management unit

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

3.2.3 Clock Configuration
PLL Configuration Registers
The Hi3515 has four internal PLLs. Each PLL uses two sets of configuration registers. See
Table 3-2. For details about each configuration register, see the descriptions of the system
controllers SC_PERCTRL0 to SC_PERCTRL7.
Table 3-2 PLL configuration registers of the Hi3515
PLL

Configuration
Register

Description

APLL

SC_PERCRTL0

The APLL is used to generate ARMCLK and bus
clock.

SC_PERCRTL1
EPLL

SC_PERCRTL2

The EPLL is used to generate the ETH clock.

SC_PERCRTL3
VPLL0

SC_PERCRTL4
SC_PERCRTL5

VPLL1

SC_PERCRTL6
SC_PERCRTL7

VPLL0 is used to generate the clock of the VO0
module.
VPLL1 is used to generate the clock of the VO1
module.

All the PLLs use the crystal oscillator clock input by the XIN24 pin as the input clock (24
MHz). Each of the PLLs can provide multiple clock frequencies. See Table 3-3.
Table 3-3 Formulas for calculating the frequency of each PLL pin of the Hi3515
PLL Pin

Formula

Precautions

FREF

24 MHz

The Hi3515 must be connected to a 24
MHz crystal oscillator clock.

FOUTVCO

FREF x (fbdiv +
frac/2^24)/refdiv

The operating frequency of the PLL
voltage controlled oscillator (VCO)
must range from 800 MHz to 2.4 GHz.
When the PLL frequency divider is an
integer, frac is equal to 0.

FOUTPOSTDIV

FOUTVCO/pstdiv1 x pstdiv2

–

FOUT1ph0

FOUTVCO/(pstdiv1 x 2)

–

FOUT2

FOUTVCO/(pstdiv1 x 4)

–

FOUT3

FOUTVCO/(pstdiv1 x 6)

–

FOUT4

FOUTVCO/(pstdiv1 x 8)

–

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-5

Hi3515
Data Sheet

3 System

The configured values of the APLL and EPLL are fixed, whereas the values of VPLL0 and
VPLL1 can be configured according to application scenarios.
The APLL uses FOUT2 and FOUT3. In typical application scenario, the required frequencies
of FOUT2 and FOUT3 are respectively 400 MHz and 266 MHz respectively. Table 3-4
describes the recommended configuration, that is, SC_PERCTRL0 = 0x8900_0000 and
SC_PERCTRL1 = 0x006C_30C8.
Table 3-4 Configuration parameters of the Hi3515 APLL
Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL0[31]

dsmpd

0: decimal frequencydivision mode

0b1

1: integer frequency-division
mode
SC_PERCTRL0 [30]

bypass

0: no bypass

0b0

1: bypass
SC_PERCTRL0[29:27]

postdiv2

Level-2 output frequency
divider of the PLL

0b001

SC_PERCTRL0[26:24]

postdiv1

Level-1 output frequency
divider of the PLL

0b001

SC_PERCTRL0[23:0]

frac

Decimal frequency divider of
the PLL

0x00_0000

SC_PERCTRL1[22]

reset

PLL reset control

0b1

0: reset
1: not reset
SC_PERCTRL1[21]

pd

PLL power down control

0b1

0: disabled
1: enabled
SC_PERCTRL1[20]

foutvcopd

PLL VCO output power
down control

0b0

0: disabled
1: enabled
SC_PERCTRL1[19]

postdivpd

APLL POSTDIV output
power down control

0b1

0: disabled
1: enabled
SC_PERCTRL1[18]

fout4phasepd

PLL FOUT output power
down control

0b1

0: disabled
1: enabled

3-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL1[17:12]

refdiv

Frequency divider of the
PLL reference clock

0x03

SC_PERCTRL1[11:0]

fbdiv

Integer frequency multiplier
of the PLL

0x0C8

The EPLL uses FOUT1ph0, FOUT2, and FOUT4. In typical application scenario, their
required frequencies are respectively 500 MHz, 250 MHz, and 125 MHz. Table 3-5 describes
the recommended configuration, that is, SC_PERCTRL6 = 0xA100_0000 and
SC_PERCTRL7 = 0x006C_307D.
Table 3-5 Configuration parameters of the Hi3515 EPLL
Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL6[31]

dsmpd

0: Decimal frequencydivision mode

0x1

1: Integer frequency-division
mode
SC_PERCTRL6[30]

bypass

0: no bypass

0x0

1: bypass
SC_PERCTRL6[29:27]

postdiv2

Level-2 output frequency
divider of the PLL

0x4

SC_PERCTRL6[26:24]

postdiv1

Level-1 output frequency
divider of the PLL

0x1

SC_PERCTRL6[23:0]

frac

Decimal frequency divider of
the PLL

0x00_0000

SC_PERCTRL7[22]

reset

PLL reset control

0x1

0: reset
1: not reset
SC_PERCTRL7[21]

pd

PLL power down control

0x1

0: disabled
1: enabled
SC_PERCTRL7[20]

foutvcopd

PLL VCO output power
down control

0x0

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-7

Hi3515
Data Sheet

3 System

Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL7[19]

postdivpd

APLL POSTDIV output
power down control

0x1

0: disabled
1: enabled
SC_PERCTRL7[18]

vfout4phase
pd

PLL FOUT output power
down control

0x1

0: disabled
1: enabled
SC_PERCTRL7[17:12]

refdiv

Frequency divider of the PLL
reference clock

0x3

SC_PERCTRL7[11:0]

fbdiv

Integer frequency multiplier
of the PLL

0x07D

Both VPLL0 and VPLL1 use FOUTPOSTDIV of the PLL as the frequency output pin. The
required frequencies can be configured through SC_PERCTRL2 to SC_PERCTRL5. Table 36 and Table 3-7 show the recommended configuration.
Table 3-6 Configuration parameters of the Hi3515 VPLL0
Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL2[31]

dsmpd

0: Decimal frequency-division
mode

Depending on
the application
scenario

1: Integer frequency-division
mode
SC_PERCTRL2[30]

bypass

0: no bypass

0b0

1: bypass
SC_PERCTRL2[29:27]

postdiv2

Level-2 output frequency
divider of the PLL

Depending on
the application
scenario

SC_PERCTRL2[26:24]

postdiv1

Level-1 output frequency
divider of the PLL

Depending on
the application
scenario

SC_PERCTRL2 [23:0]

frac

Decimal frequency divider of
the PLL

Depending on
the application
scenario

SC_PERCTRL3[22]

reset

PLL reset control

0b1

0: reset
1: not reset

3-8

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL3 [21]

pd

PLL power down control

0b1

0: disabled
1: enabled
SC_PERCTRL3 [20]

foutvcopd

PLL VCO output power down
control

0b0

0: disabled
1: enabled
SC_PERCTRL3[19]

postdivpd

APLL POSTDIV output
power down control

0b1

0: disabled
1: enabled
SC_PERCTRL3[18]

vfout4phase
pd

PLL FOUT output power
down control

0b1

0: disabled
1: enabled
SC_PERCTRL3[17:12]

refdiv

Frequency divider of the PLL
reference clock

Depending on
the application
scenario

SC_PERCTRL3 [11:0]

fbdiv

Integer frequency multiplier
of the PLL

Depending on
the application
scenario

Table 3-7 Configuration parameters of the Hi3515 VPLL1
Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL4[31]

dsmpd

0: Decimal frequency-division
mode

Depending on
the application
scenario

1: Integer frequency-division
mode
SC_PERCTRL4[30]

bypass

0: no bypass

0b0

1: bypass
SC_PERCTRL4[29:27]

postdiv2

Level-2 output frequency
divider of the PLL

Depending on
the application
scenario

SC_PERCTRL4[26:24]

postdiv1

Level-1 output frequency
divider of the PLL

Depending on
the application
scenario

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-9

Hi3515
Data Sheet

3 System

Bit

PLL Pin

Description

Recommended
Value

SC_PERCTRL4[23:0]

frac

Decimal frequency divider of
the PLL

Depending on
the application
scenario

SC_PERCTRL5[22]

reset

PLL reset control

0b1

0: reset
1: not reset
SC_PERCTRL5[21]

pd

0b1

PLL power down control
0: disabled
1: enabled

SC_PERCTRL5[20]

foutvcopd

PLL VCO output power down
control

0b0

0: disabled
1: enabled
SC_PERCTRL5[19]

postdivpd

APLL POSTDIV output
power down control

0b1

0: disabled
1: enabled
SC_PERCTRL5[18]

vfout4phase
pd

PLL FOUT output power
down control

0b1

0: disabled
1: enabled
SC_PERCTRL5[17:12]

refdiv

Frequency divider of the PLL
reference clock

Depending on
the application
scenario

SC_PERCTRL5 [11:0]

fbdiv

Integer frequency multiplier
of the PLL

Depending on
the application
scenario

When the clock frequency required by a service is determined, the configured value of the
PLL can be calculated accordingly.
Take VPLL0 as an example. Configure VPLL0 to enable it to output FOUTPOSTDIV. Then
FOUTPOSTDIV is divided by 2 and output to the VO0 module. Assume that the VO0 module
needs a 54 MHz working clock, configure the registers as follows:
z

Set postdiv2 to 5 and set postdiv1 to 3, then FOUTVCO = 54253 = 1,620 MHz.

z

Set refdiv to 2, then 12 x (fbdiv + frac/2^24) = 1,620 MHz.

Based on the preceding results, fbdiv is 135 and frac is 0.
Take VPLL1 as an example. Configure VPLL1 to enable it to output FOUTPOSTDIV to the
VO1 module. Assume that the VO1 module needs a 74.25 MHz working clock, configure the
registers as follows:

3-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

z

Set postdiv2 to 4 and set postdiv1 to 5, then FOUTVCO = 74.2545 = 1,485 MHz.

z

Set refdiv to 1, then 24 x (fbdiv + frac/2^24) = 1,485 MHz.

Based on the preceding results, fbdiv is 61 and frac is 14,680,064.
If you want VPLL0 to output a 108 MHz working clock and VPLL1 to output a 65 MHz
working clock, configure the registers as follows:
z

SC_PERCTRL2 = 0xAB00_0000

z

SC_PERCTRL3 = 0x006C_2087

z

SC_PERCTRL4 = 0x A300_0000

z

1SC_PERCTRL5 = 0x006C_2041

Frequency Configuration of the ARM/SCLK/HCLK/PCLK
Table 3-8 describes the frequency configuration of the ARM/SCLK/HCLK/PCLK.
Table 3-8 Frequency configuration of the ARM/SCLK/HCLK/PCLK
Signal

Description

sysmode[3:0]

ARM frequency switch.
The default value is 0xB that indicates the crystal oscillator mode. The
signal is controlled through SC_CTRL [2:0].

sleep_mode

When all the clocks except the SCLK and clocks of the IR and clock reset
generation (CRG) module are disabled, the system enters the sleep mode.
The signal is controlled through SC_CTRL [2:0].

Table 3-9 describes the mapping between the system controller status and clock switching.
Table 3-9 Mapping between the system controller status and clock switching
Status of
the System
Controller

Enable
Status of the
45 kHz
Clock

Enable
Status of the
24MHz
Crystal
Oscillator

Enable
Status of
the
ARMPLL

Status of the System
Clock

Normal

Enabled

Enabled

Enabled

The working clocks of
the ARM subsystem are
derived from the PLL.

Slow

Enabled

Enabled

Disabled

The working clocks of
the ARM subsystem are
derived from the 24 MHz
crystal oscillator.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-11

Hi3515
Data Sheet

3 System

Status of
the System
Controller

Enable
Status of the
45 kHz
Clock

Enable
Status of the
24MHz
Crystal
Oscillator

Enable
Status of
the
ARMPLL

Status of the System
Clock

Doze

Enabled

Enabled

Disabled

The working clocks of
the ARM subsystem are
derived from the 45 kHz
clock, which is obtained
by dividing the
frequency of the 24 MHz
crystal oscillator.

Sleep

Enabled

Enabled

Disabled

All the clocks are
disabled except that the
clocks of the system
controller and IR module
work at 45 kHz.

Clock Frequency Configuration of Modules
Table 3-10 describes the clock frequency configuration of the MMC module.
Table 3-10 Clock frequency configuration of the MMC module
Signal

Description

mmcclk_sel

Frequency control for the working clock of the MMC module. The
signal is controlled through SC_PERCRTL9 bit[21:20].

mmcsap_sel

Normal/reversed phase control for the sampling card data clock of
the MMC module. The signal is controlled through SC_PERCRTL
bit[22].

Table 3-11 describes the clock frequency configuration of the static memory interface (SMI)
module.
Table 3-11 Clock frequency configuration of the SMI module
Signal

Description

ssmcclk_sel

Clock frequency select of the SMI working clock. Through the
signal, the frequency of the advanced high-performance bus (AHB)
can be divided by 1 or 2. The signal is controlled through
SC_PERCRTL9 bit[3].

Table 3-12 describes the clock frequency configuration of the VO module.

3-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Table 3-12 Clock frequency configuration of the VO module
Signal

Description

vo0out_sel

BT656 output clock phase select of the VO0 module, which
provides normal or reversed phase output of the working clock of
the VO0 module. The signal is controlled through SC_PERCRTL9
bit[18].

vo1out_sel

BT1120 output clock phase clock of the VO1 module, which
provides normal or reversed phase output of the working clock of
the VO1 module. The signal is controlled through SC_PERCRTL9
bit[19].

Table 3-13 describes the clock frequency configuration of the VI module.
Table 3-13 Clock frequency configuration of the VI module
Signal

Description

vi3div_sel[1:0]

VI3 interface frequency division clock select. Through this signal,
the frequency of the VI3 clock can be divided by 1, 2, or 4. The
signal is controlled through SC_PERCRTL9 bit[13:12].

vi2div_sel[1:0]

VI2 interface frequency division clock select. Through this signal,
the frequency of the VI2 clock can be divided by 1, 2, or 4. The
signal is controlled through SC_PERCRTL9 bit[11:10].

vi1div_sel[1:0]

VI1 interface frequency division clock select. Through this signal,
the frequency of the VI1 clock can be divided by 1, 2, or 4. The
signal is controlled through SC_PERCRTL9 bit[9:8].

vi0div_sel[1:0]

VI0 interface frequency division clock select. Through this signal,
the frequency of the VI0 clock can be divided by 1, 2, or 4. The
signal is controlled through SC_PERCRTL9 bit[7:6].

vi3_vi2_sel

VI3 interface clock select. The signal is controlled through
SC_PERCRTL9 bit[5].

vi1_vi0_sel

VI1 interface clock select. The signal is controlled through
SC_PERCRTL9 bit[4].

Table 3-14 describes the clock frequency configuration of SIO0/SIO1.
Table 3-14 Clock frequency configuration of SIO0/SIO1
Signal

Description

sio0clk_sel[23:0]

Frequency divider select of the output interface master clock
SIO_MCLK of the SIO0 module. The signal is controlled through
SC_PERCRTL13 bit[23:0].

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-13

Hi3515
Data Sheet

3 System

Signal

Description

sio0_bclk_sel[3:0]

Frequency configuration of the bit stream clock SIO_XCK (BCLK)
of the SIO1 module in master mode. The signal is controlled through
SC_PERCRTL13 bit[27:24].

sio0_lrclk_sel[3:0]

Frequency configuration of the sampling rate output clock
SIO_RFS/SIO_XFS (FSCLK) of the SIO0 module in master mode.
The signal is controlled through SC_PERCRTL13 bit[31:28].

sio1clk_sel[23:0]

Frequency divider select of the output interface master clock
SIO_MCLK of the SIO0 module. The signal is controlled through
SC_PERCRTL14 bit[23:0].

sio1_bclk_sel[3:0]

Frequency configuration of the bit stream clock SIO_XCK (BCLK)
of the SIO1 module in master mode. The signal is controlled through
SC_PERCRTL14 bit[27:24].

sio1_lrclk_sel[3:0]

Frequency configuration of the sampling rate output clock
SIO_RFS/SIO_XFS (FSCLK) of the SIO1 module in master mode.
The signal is controlled through SC_PERCRTL14 bit[31:28].

sio0_blk_edge

Bit stream clock normal/reverse phase control of the SIO0 module.
The signal can be controlled through SC_PERCRTL16 bit[8].

sio1_blk_edge

Bit stream clock normal/reverse phase control of the SIO1 module.
The signal can be controlled through SC_PERCRTL16 bit[9].

aclkout_sel

ACKOUT output clock. The signal is controlled through
SC_PERCRTL9 bit[25].

The frequency FSCLK of the sampling rate clock is specified in common application
scenarios; however, the frequencies of the bit clock BCLK and the master clock MCLK are
variable multiples of FSCLK. The following example shows how to configure the clock
frequencies.
Assume that the frequency of the clock source ARMPLL is set to 540 MHz and the required
working clock frequencies are as follows: FSCLK = 48kHz, MCLK = 256FSCLK =
12.288MHz, and BCLK = 16FSCLK = 384KHz. The following configuration is performed:

3-14

z

The frequency division ratio N of ARMPLL to MCLK is 12.288/540, then
sioclk_sel[23:0] = N x 227. According to the result 3,054,199 obtained by rounding N x
227 to the nearest integer, set sioclk_sel to 0x002E_9A77. In this way, the correct MCLK
frequency is obtained.

z

The frequency of BCLK is generated by dividing that of BCLK. The frequency division
ratio of BCLK to MCLK is 16/256 = 1/16. According to the mapping in Table 3-14, set
siobclk_sel[2:0] to 0b100 (corresponding to the frequency divider 16). In this way, the
correct frequency of BCLK is obtained.

z

The frequency of FSCLK is generated by dividing that of BCLK and their frequency
division ratio is 1/16. According to the mapping in Table 3-14, set siolrclk_sel to 0b011
(corresponding to the frequency divider 16). In this way, the correct frequency of
FSCLK is obtained.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Clock Gating Configuration
For details about the clock gating configuration, see the description of the system controller
SC_PEREN.

Precautions
Take the following precautions when configuring clocks:
z

By default, the ARM working clock is in crystal oscillator mode after power-on. That is,
the crystal oscillator clock input by the XIN24 pin is selected.

z

If the frequency of the PLL is changed, the PLL can generate a clock with a stable
frequency until 0.1 ms later. The frequency of the PLL can be changed only when the
system runs in slow mode.

z

When the PLL output clock is not stable, the system cannot be switched to the PLL mode.

3.3 Processor and Memory Address Mapping
3.3.1 Processor
The Hi3515 has an embedded processor ARM926EJ-S. The features of ARM926EJ-S are as
follows:
z

Adopts the 32-bit ARM v5TEJ and 5-stage pipeline to be compatible with the 32-bit
ARM and the 16-bit thumb instruction sets.

z

Supports the embedded enhanced digital signal processing (DSP) instructions.

z

Supports Java.

z

Provides the independent 16 KB instruction cache, 16 KB data cache, and 4-way set
associative cache. The cache line size is 32 bytes. The data cache supports configurable
write-back and write-through operations.

z

Provides the caches that supports configurable pseudo-random or round-robin
replacement algorithm.

z

Provides independent instructions and data bus interfaces. The ratio of the operating
frequency of the bus to that of the system clock of ARM926EJ-S can be set to 1:1 or 1:2.

z

Includes an MMU that supports multiple open operating systems, such as VxWorks,
Linux, WindowCE, and PalmOS.

z

Provides an independent 2-KB instruction tightly-coupled memory (ITCM).

z

Adopts the little endian mode.

z

Supports fast interrupt requests (FIQs) and interrupt requests (IRQs).

z

Supports the joint test action group (JTAG) debugging interface.

z

Supports dynamic and static power management.

3.3.2 Memory Address Mapping
The Hi3515 uses 32-bit address bus and supports 4 GB addressable space. The Hi3515 can
boot in different modes by configuring the BOOTSEL pin:
z

00: boot from the NOR flash

z

00: boot from the NAND flash

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-15

Hi3515
Data Sheet

3 System

Booting from the NOR Flash
The Hi3515 can boot from the NOR flash only after the BOOTSEL pin is configured properly.
In this boot mode, the externally-connected memory is the asynchronous NOR flash. The
Hi3515 supports the 8-bit NOR flash only.
Figure 3-3 shows the address space mapping of the Hi3515 when the it boots from the NOR
flash.
Figure 3-3 Address space mapping when the Hi3515 from the NOR flash
0x201C_FFFF

0xFFFF_FFFF
0xE000_0000

Reserved

DDR0 address
space
0xC000_0000
Reserved
0x8800_0000
SMI CS 1
0x8400_0000
SMI CS 0
0x8000_0000
0x7400_0000
0x7000_0000
0x201D_0000

Reserved
NAND flash
address space
Reserved

0x201C_0000

GPIO7 register

0x201B_0000

GPIO6 register

0x2008_FFFF

0x201A_0000

GPIO5 register

0x2008_0000

0x2019_0000

GPIO4 register

0x2007_0000

0x2018_0000

GPIO3 register

0x2006_0000

0x2017_0000

GPIO2 register

0x2005_0000

0x2016_0000

GPIO1 register

0x2004_0000

0x2015_0000

GPIO0 register

0x2014_0000

TDE register

0x2002_0000

0x2013_0000

VOU register

0x2001_0000

0x2012_0000

Reserved

0x2000_0000

0x2011_0000

DDRC0 register

0x2010_0000

Reserved

0x200F_0000 IO config register
SPI register
0x200E_0000
0x200D_0000

I2C register

0x200C_0000

UART3 register

0x200B_0000

UART2 register

0x200A_0000

UART1 register

0x2009_0000

UART0 register

Reserved
Register
collection
Memory
Register

0x1000_0000
Reserved

SMI CS 0

3-16

WDG register

Timer1 register
Timer0 register
Reserved

0x1011_0000
0x1010_0000

SATA register
VIU register

0x100F_0000

Reserved

0x100E_0000

VDEU0 register

0x100D_0000

DMAC register

0x100C_0000

CIPHER register

0x100B_0000

0x1009_0000
0x1008_0000
0x1007_0000
0x1006_0000
0x1005_0000
0x1003_0000
0x1002_0000

0x0000_0000

RTC register
System register

0x1012_0000

0x1004_0000

0x0400_0000

IR register

Reserved

0x100A_0000
Register

Reserved

0x1001_0000
0x1000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

USB 2.0 HOST
EHCI register
USB 2.0 HOST
OHCI register
ETH register
Reserved
VIC0 register
Reserved
SIO1 register
SIO0 register
MMC register
Reserved
SMI register
NANDC register

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-4 shows the address distribution after the remapping is cleared during the booting
from the NOR flash.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-17

Hi3515
Data Sheet

3 System

z

The system actually provides 2 KB ITCM address space only. Hence, ensure that the size
of the program and data in the ITCM is equal to or less than 2 KB.

z

If you want to use the ITCM, you must enable the ITCM and configure the ITCM size by
setting the register of the system control coprocessor CP15 of ARM. In addition, you need
to set the C9 register to 0xD by using the MCR instruction.

Figure 3-4 Address distribution after the remapping is cleared during the booting from the NOR
flash.
0x201C_FFFF

0xFFFF_FFFF
0xE000_0000

Reserved

DDR0 address
space
0xC000_0000
Reserved
0x8800_0000
SMI CS 1
0x8400_0000
SMI CS 0
0x8000_0000
0x7400_0000
0x7000_0000
0x201D_0000

Reserved
NAND flash
address space
Reserved

0x201C_0000

GPIO7 register

0x201B_0000

GPIO6 register

0x2008_FFFF

0x201A_0000

GPIO5 register

0x2008_0000

0x2019_0000

GPIO4 register

0x2007_0000

0x2018_0000

GPIO3 register

0x2006_0000

0x2017_0000

GPIO2 register

0x2005_0000

0x2016_0000

GPIO1 register

0x2004_0000

0x2015_0000

GPIO0 register

0x2014_0000

TDE register

0x2002_0000

0x2013_0000

VOU register

0x2001_0000

0x2012_0000

Reserved

0x2000_0000

0x2011_0000

DDRC0 register

0x2010_0000

Reserved

0x200F_0000 IO config register
SPI register
0x200E_0000
0x200D_0000

I2C register

0x200C_0000

UART3 register

0x200B_0000

UART2 register

0x200A_0000

UART1 register

0x2009_0000

UART0 register

Reserved
Register
collection
Memory
Register

0x1000_0000

0x0000_0800
0x0000_0000

3-18

WDG register

Timer1 register
Timer0 register
Reserved

0x1011_0000
0x1010_0000

SATA register
VIU register

0x100F_0000

Reserved

0x100E_0000

VDEU0 register

0x100D_0000

DMAC register

0x100C_0000

CIPHER register

0x100B_0000

0x1009_0000
0x1008_0000
0x1007_0000
0x1006_0000
0x1005_0000

Reserved

0x1003_0000

Reserved

0x1002_0000

ITCM

System register

0x1012_0000

0x1004_0000

0x0400_0000

IR register
RTC register

Reserved

0x100A_0000
Register

Reserved

0x1001_0000
0x1000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

USB 2.0 HOST
EHCI register
USB 2.0 HOST
OHCI register
ETH register
Reserved
VIC0 register
Reserved
SIO1 register
SIO0 register
MMC register
Reserved
SMI register
NANDC register

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Booting from the NAND Flash
The Hi3515 can boot from the NAND flash only after the BOOTSEL pin is configured
properly. In this boot mode, the externally-connected memory is the NAND flash. The Hi3515
supports the 8-bit NAND flash only.
Figure 3-5 shows the address space mapping of the Hi3515 when it boots from the NAND
flash.
Figure 3-5 Address space mapping when the Hi3515 boots from the NAND flash
0x201C_FFFF

0xFFFF_FFFF
0xE000_0000

Reserved

DDR0 address
space
0xC000_0000
Reserved
0x8800_0000
SMI CS 1
0x8400_0000
SMI CS 0
0x8000_0000
0x7400_0000
0x7000_0000
0x201D_0000

Reserved
NAND Flash
address space
Reserved

0x201C_0000

GPIO7 register

0x201B_0000

GPIO6 register

0x2008_FFFF

0x201A_0000

GPIO5 register

0x2008_0000

0x2019_0000

GPIO4 register

0x2007_0000

0x2018_0000

GPIO3 register

0x2006_0000

0x2017_0000

GPIO2 register

0x2005_0000

0x2016_0000

GPIO1 register

0x2004_0000

0x2015_0000

GPIO0 register

0x2014_0000

TDE register

0x2002_0000

0x2013_0000

VOU register

0x2001_0000

0x2012_0000

Reserved

0x2000_0000

0x2011_0000

DDRC0 register

0x2010_0000

Reserved

0x200F_0000 IO config register
SPI register
0x200E_0000
0x200D_0000

I2C register

0x200C_0000

UART3 register

0x200B_0000

UART2 register

0x200A_0000

UART1 register

0x2009_0000

UART0 register

Reserved
Register
collection
Memory
Register

0x1000_0000
Reserved

NAND Flash

Issue 02 (2010-04-20)

System register
WDG register

Timer1 register
Timer0 register
Reserved

0x1011_0000
0x1010_0000

SATA register
VIU register

0x100F_0000

Reserved

0x100E_0000

VDEU0 register

0x100D_0000

DMAC register

0x100C_0000

CIPHER register

0x100B_0000

0x1009_0000
0x1008_0000
0x1007_0000
0x1006_0000
0x1005_0000
0x1003_0000
0x1002_0000

0x0000_0000

RTC register

0x1012_0000

0x1004_0000

0x0400_0000

IR register

Reserved

0x100A_0000
Register

Reserved

0x1001_0000
0x1000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

USB 2.0 HOST
EHCI register
USB 2.0 HOST
OHCI register
ETH register
Reserved
VIC0 register
Reserved
SIO1 register
SIO0 register
MMC register
Reserved
SMI register
NANDC register

3-19

Hi3515
Data Sheet

3 System

Figure 3-6 shows the address distribution after the remapping is cleared during the booting
from the NAND flash.
Figure 3-6 Address distribution after the remapping is cleared during the booting from the NAND
flash
0x201C_FFFF

0xFFFF_FFFF
0xE000_0000

Reserved

DDR0 address
space
0xC000_0000
Reserved
0x8800_0000
SMI CS 1
0x8400_0000
SMI CS 0
0x8000_0000
0x7400_0000
0x7000_0000
0x201D_0000

Reserved
NAND Flash
address space
Reserved

0x201C_0000

GPIO7 register

0x201B_0000

GPIO6 register

0x2008_FFFF

0x201A_0000

GPIO5 register

0x2008_0000

0x2019_0000

GPIO4 register

0x2007_0000

0x2018_0000

GPIO3 register

0x2006_0000

0x2017_0000

GPIO2 register

0x2005_0000

0x2016_0000

GPIO1 register

0x2004_0000

0x2015_0000

GPIO0 register

0x2014_0000

TDE register

0x2002_0000

0x2013_0000

VOU register

0x2001_0000

0x2012_0000

Reserved

0x2000_0000

0x2011_0000

DDRC0 register

0x2010_0000

Reserved

0x200F_0000 IO config register
SPI register
0x200E_0000
0x200D_0000

I2C register

0x200C_0000

UART3 register

0x200B_0000

UART2 register

0x200A_0000

UART1 register

0x2009_0000

UART0 register

Reserved
Register
collection
Memory
Register

0x1000_0000

0x0000_0800
0x0000_0000

System register
WDG register

Timer1 register
Timer0 register
Reserved

0x1011_0000
0x1010_0000

SATA register
VIU register

0x100F_0000

Reserved

0x100E_0000

VDEU0 register

0x100D_0000

DMAC register

0x100C_0000

CIPHER register

0x100B_0000

0x1009_0000
0x1008_0000
0x1007_0000
0x1006_0000
0x1005_0000

Reserved

0x1003_0000

Reserved

0x1002_0000
0x1001_0000

ITCM

RTC register

0x1012_0000

0x1004_0000

0x0400_0000

IR register

Reserved

0x100A_0000
Register

Reserved

0x1000_0000

USB 2.0 HOST
EHCI register
USB 2.0 HOST
OHCI register
ETH register
Reserved
VIC0 register
Reserved
SIO1 register
SIO0 register
MMC register
Reserved
SMI register
NANDC register

Address Space List
Table 3-15 lists the address spaces of the Hi3515.

3-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Table 3-15 Address spaces of the Hi3515
Start Address

End Address

Function

Capacity

Description

0xE000_0000

0xFFFF_FFFF

Reserved.

512 MB

–

0xC000_0000

0xDFFF_FFFF

DDR0

512 MB

Addressing space of
the dynamic
memory (128 bits)

0xB000_0000

0xBFFF_FFFF

Reserved.

256 MB

–

0x8800_0000

0xAFFF_FFF

Reserved.

640 MB

–

0x8400_0000

0x87FF_FFFF

SSMC CS1

64 MB

–

0x8000_0000

0x83FF_FFFF

SSMC CS0

64 MB

–

0x7400_0000

0x7FFF_FFFF

Reserved.

64 MB

–

0x7000_0000

0x73FF_FFFF

Storage space of the
NAND flash

64 MB

–

0x201D_0000

0x6FFF_FFFF

Reserved.

1278 MB

–

0x201C_0000

0x201C_FFFF

GPIO7 register

64 KB

–

0x201B_0000

0x201B_FFFF

GPIO6 register

64 KB

–

0x201A_0000

0x201A_FFFF

GPIO5 register

64 KB

–

0x2019_0000

0x2019_FFFF

GPIO4 register

64 KB

–

0x2018_0000

0x2018_FFFF

GPIO3 register

64 KB

–

0x2017_0000

0x2017_FFFF

GPIO2 register

64 KB

–

0x2016_0000

0x2016_FFFF

GPIO1 register

64 KB

–

0x2015_0000

0x2015_FFFF

GPIO0 register

64 KB

–

0x2014_0000

0x2014_FFFF

TDE register

64 KB

–

0x2013_0000

0x2013_FFFF

VOU register

64 KB

–

0x2012_0000

0x2012_FFFF

Reserved.

64 KB

–

0x2011_0000

0x2011_FFFF

DDRC0 register

64 KB

–

0x2010_0000

0x2010_FFFF

Reserved.

64 KB

–

0x200F_0000

0x200F_FFFF

IO config register

64 KB

–

0x200E_0000

0x200E_FFFF

SPI register

64 KB

–

2

0x200D_0000

0x200D_FFFF

I C register

64 KB

–

0x200C_0000

0x200C_FFFF

UART3 register

64 KB

–

0x200B_0000

0x200B_FFFF

UART2 register

64 KB

–

0x200A_0000

0x200A_FFFF

UART1 register

64 KB

–

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-21

Hi3515
Data Sheet

3 System

Start Address

End Address

Function

Capacity

Description

0x2009_0000

0x2009_FFFF

UART0 register

64 KB

–

0x2008_0000

0x2008_FFFF

Reserved.

64 KB

–

0x2007_0000

0x2007_FFFF

IR register

64 KB

–

0x2006_0000

0x2006_FFFF

RTC register

64 KB

–

0x2005_0000

0x2005_FFFF

System control
register

64 KB

–

0x2004_0000

0x2004_FFFF

WDG register

64 KB

–

0x2002_0000

0x2003_FFFF

Reserved.

128 KB

–

0x2001_0000

0x2001_FFFF

Timer1 register

64 KB

–

0x2000_0000

0x2000_FFFF

Timer0 register

64 KB

–

0x1012_0000

0x1FFF_FFFF

Reserved.

255 MB

–

0x1011_0000

0x1011_FFFF

SATA register

64 KB

–

0x1010_0000

0x1010_FFFF

VIU register

64 KB

–

0x100F_0000

0x100F_FFFF

Reserved.

64 KB

–

0x100E_0000

0x100E_FFFF

VEDU0 register

64 KB

–

0x100D_0000

0x100D_FFFF

DMAC register

64 KB

–

0x100C_0000

0x100C_FFFF

CIPHER register

64 KB

–

0x100B_0000

0x100B_FFFF

USB 2.0 HOST
EHCI register

64 KB

–

0x100A_0000

0x100A_FFFF

USB 2.0 HOST
OHCI register

64 KB

–

0x1009_0000

0x1009_FFFF

ETH register

64 KB

–

0x1008_0000

0x1008_FFFF

Reserved.

64 KB

–

0x1007_0000

0x1007_FFFF

VIC0 register

64 KB

–

0x1006_0000

0x1006_FFFF

Reserved.

64 KB

–

0x1005_0000

0x1005_FFFF

SIO1 register

64 KB

–

0x1004_0000

0x1004_FFFF

SIO0 register

64 KB

–

0x1003_0000

0x1003_FFFF

SDIO register

64 KB

–

0x1002_0000

0x1002_FFFF

Reserved.

64 KB

–

0x1001_0000

0x1001_FFFF

SSMC register

64 KB

–

0x1000_0000

0x1000_FFFF

NANDC register

64 KB

–

0x0400_0000

0x0FFF_FFFF

Reserved.

192 MB

–

3-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Start Address

End Address

Function

Capacity

Description

0x0000_0000

0x03FF_FFFF

Memory selected
for address
remapping

64 MB

The component
corresponding to
the current storage
space is configured
based on the
BOOTSEL pin
during reset.
In general, the
value of the storage
space is set to the
value of the ITCM.
after the address
remapping is
cleared. The size of
the ITCM is 2 KB,
and its address
space ranges from
0x0000_0000 to
0x0000_08000.

Issue 02 (2010-04-20)

z

DDR = double-data rate

z

SSMC = static memory interface controller

z

GPIO = general purpose input/output

z

TDE = two-dimensional engine

z

VOU = video output unit

z

DDRC = double-data rate controller

z

SPI = serial peripheral interface

z

I2C = inter-integrated circuit

z

UART = universal asynchronous receiver transmitter

z

WDG = watchdog

z

SATA = serial advanced technology attachment

z

VIU = video input video

z

VEDU = video encoding decoding unit

z

DMAC = direct memory access controller

z

EHCI = enhanced host controller interface

z

OHCI = open host controller interface

z

VIC = vector interrupt controller

z

SDIO = secure digital input/output

z

NANDC = NAND flash Controller

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-23

Hi3515
Data Sheet

3 System

3.4 Interrupt System
3.4.1 Overview
The interrupt system (INT) of the Hi3515 provides the interrupt management function.

3.4.2 Features
The INT has the following features:
z

Supports 32 interrupt sources that are triggered by high level.

z

Generates interrupt requests when the INT working clock is disabled.

z

Supports configurable interrupt types. Each interrupt source is set to IRQ or FIQ as
required.

z

Masks interrupting sources.

z

Queries the status of raw interrupt sources and masked interrupt sources.

z

Supports the access protection function. When the access protection function is enabled,
the CPU can access the INT in privileged mode only.

3.4.3 Function Description
Functional Block Diagram
Figure 3-7 shows the functional block diagram of the INT.
Figure 3-7 Functional block diagram of the INT

nFIQ
CPU
nIRQ

rawinterrupt

Internal

intenable[31:0]

intselect[31:0]

Interrupt
enable

Type
selection

interrupt
sources[31:0]
Interrupt
request
softint[31:0]
fiqstatus[31:0]
INT

3-24

irqstatus[31:0]

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

In Figure 3-7, the letter n in nFIQ and nIRQ indicates active low

The CPU can access the function registers of the INT through the internal bus. For example:
z

Enabling or masking the interrupt request of each interrupt source by configuring
INT_INTENABLE

z

Selecting the interrupt request type of each interrupt source by configuring
INT_INTSELECT. Generally, up to one interrupt request is set to FIQ.

z

Generating and clearing software interrupt requests by configuring INT_SOFTINT and
INT_SOFTINTCLEAR respectively

z

Querying the status of interrupt sources by configuring INT_IRQSTATUS and
INT_FIQSTATUS when interrupt requests are generated

z

Querying the raw interrupt requests that are generated by interrupt sources and software
interrupts by configuring INT_RAWINTR

Interrupt Processing
When an interrupt occurs, the interrupt is processed as follows:
Step 1 Switch the ARM processor to the IRQ or FIQ interrupt mode.
Step 2 Jump to the primary interrupt handler and push the stack.
Step 3 Start the system.
Step 4 Query INT_IRQSTATUS or INT_FIQSTATUS to determine the interrupt source. If there are
multiple active interrupt sources, compare the interrupt priorities.
Step 5 Jump to the interrupt service routine (ISR) corresponding to each interrupt source and
configure INT_INTENABLE to mask the interrupt that is being processed. If necessary,
configure INT_INTENABLE to enable corresponding interrupts.
Step 6 Run the ISR.
Step 7 Clear the current interrupt source. If it is a software interrupt, configure the corresponding bit
of INT_SOFTINTCLEAR.
Step 8 Enable the IRQ and FIQ mask bits of ARM CPSR.
Step 9 Pop the stack and return from the interrupt.
----End

Interrupt Mapping
Table 3-16 lists the interrupt mapping of the INT.
Table 3-16 Interrupt mapping of the INT
Interrupt No.

Interrupt Source

0

Watchdog interrupt

1

Global software interrupt

2

COMMRX interrupt

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-25

Hi3515
Data Sheet

3 System

3-26

Interrupt No.

Interrupt Source

3

COMMTX interrupt

4

Dual-timer01 interrupt

5

Dual-timer23 interrupt

6

GPIO0 interrupt

7

GPIO1 interrupt

8

Combined interrupt of GPIO2, GPIO3, GPIO4, and GPIO5

9

IR interrupt

10

RTC interrupt

11

SPI interrupt

12

UART0 or UART1 interrupt

13

UART2 or UART3 interrupt

14

ETH interrupt

15

DMAC interrupt

16

I2C interrupt

17

VIU interrupt

18

TDE interrupt

19

VOU interrupt

20

VEDU interrupt

21

Reserved.

22

USB 2.0 HOST OHCI interrupt

23

USB 2.0 HOST EHCI interrupt

24

SDIO interrupt

25

SIO0 interrupt

26

SIO1 interrupt

27

Reserved.

28

CIPHER interrupt

29

SATA interrupt

30

NANDC interrupt

31

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

The COMMRX and COMMTX interrupts are used for CPU debugging.

3.4.4 Register Summary
Table 3-17 lists the INT registers.
Table 3-17 Summary of the INT registers (based address: 0x1007_0000)
Offset
Address

Register

Description

Page

0x000

INT_IRQSTATUS

IRQ interrupt status register

3-27

0x004

INT_FIQSTATUS

FIQ interrupt status register

3-28

0x008

INT_RAWINTR

Raw interrupt status register

3-28

0x00C

INT_INTSELECT

Interrupt source select register

3-28

0x010

INT_INTENABLE

Interrupt enable register

3-29

0x014

INT_INTENCLEAR

Interrupt enable clear register

3-29

0x018

INT_SOFTINT

Software interrupt register

3-30

0x01C

INT_SOFTINTCLEAR

Software interrupt clear register

3-30

0x020

INT_PROTECTION

Protection enable register

3-31

3.4.5 Register Description
INT_IRQSTATUS
INT_IRQSTATUS is the IRQ interrupt status register. Its 32 bits map to 32 interrupt sources.
For details, see Table 3-16 .

Bit

Offset Address

Register Name

Total Reset Value

0x000

INT_IRQSTATUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

irqstatus

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Status of the IRQ interrupt source.

[31:0]

RO

irqstatus

0: No interrupt is generated.
1: An IRQ interrupt is generated and sent to the processor.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-27

Hi3515
Data Sheet

3 System

INT_FIQSTATUS
INT_FIQSTATUS is the FIQ interrupt status register. The 32 bits of INT_INTENABLE map
to 32 interrupt sources.

Bit

Offset Address

Register Name

Total Reset Value

0x004

INT_FIQSTATUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

fiqstatus

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
Status of the FIQ interrupt source.

[31:0]

RO

fiqstatus

0: No interrupt is generated.
1: An FIQ interrupt is generated and sent to the processor.

INT_RAWINTR
INT_RAWINTR is the raw interrupt status register. It shows the status of raw interrupt
requests and the status of the software interrupts that are generated by configuring
INT_SOFTINT. The 32 bits of INT_RAWINTR map to 32 interrupt sources.

Bit

Offset Address

Register Name

Total Reset Value

0x008

INT_RAWINTR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rawinterrupt

Reset 0

0

Bits

0

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Status of the interrupt requests of raw interrupt sources.

[31:0]

RO

rawinterrupt

0: No interrupt is generated.
1: An interrupt is generated.

INT_INTSELECT
INT_INTSELECT is the interrupt source select register. It determines whether the selected
interrupt sources generate IRQ interrupts or FIQ interrupts. The 32 bits of INT_INTSELECT
map to 32 interrupt sources.

3-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset Address

Register Name

Total Reset Value

0x00C

INT_INTSELECT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

intselect

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
Interrupt request type of interrupt sources.

[31:0]

RW

intselect

0: IRQ interrupt
1: FIQ interrupt

INT_INTENABLE
INT_INTENABLE is the interrupt enable register. It is used to enable interrupt request lines.
After reset, the value of INT_INTENABLE is changed to 0x0000_0000. As a result, all
interrupt sources are masked. The 32 bits of INT_INTENABLE map to 32 interrupt sources.

Bit

Offset Address

Register Name

Total Reset Value

0x010

INT_INTENABLE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

intenable

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Returned mask status of each interrupt source when this register is
read.
0: masked

[31:0]

RW

intenable

1: not masked
Interrupt source is enabled bit by bit when this register is written.
0: The current value of the corresponding bit is not affected.
1: The corresponding bit is set to 1 to enable the corresponding
interrupt request.

INT_INTENCLEAR
INT_INTENCLEAR is the interrupt enable clear register. It is used to clear the corresponding
bits of INT_INTENABLE. INT_INTENCLEAR is write-only and has no default reset value.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-29

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0x014

INT_INTENCLEAR

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

8

7

6

5

4

3

2

1

0

?

?

?

?

?

?

?

?

?

intenableclear
?

?

?

Bits

?

?

?

Access

?

?

?

?

?

?

Name

?

?

?

?

?

?

?

?

?

?

?

Description
Mask of the interrupt source corresponding to INT_INTENABLE.

[31:0]

WO

0: The current value of the corresponding bit of
INT_INTENABLE is not affected.

intenableclear

1: The corresponding bit of INT_INTENABLE is cleared and the
corresponding interrupt request is masked.

INT_SOFTINT
INT_SOFTINT is the software interrupt register. Through software, it controls whether to
generate interrupts by the interrupt source input lines. The software interrupts can be cleared
by writing INT_SOFTINTCLEAR. The clear operation is performed after the ISR is executed.

Bit

Offset Address

Register Name

Total Reset Value

0x018

INT_SOFTINT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

softint

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Generates a raw software interrupt on a specified interrupt source.

[31:0]

RW

softint

0: The current value of the corresponding bit is not affected.
1: The corresponding bit is set to 1 and a software interrupt request
is generated.

INT_SOFTINTCLEAR
INT_SOFTINTCLEAR is the software interrupt clear register. It is used to clear the
corresponding bit of INT_SOFTINT. INT_SOFTINTCLEAR is write-only and has no default
reset value.

3-30

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset Address

Register Name

Total Reset Value

0x01C

INT_SOFTINTCLEAR

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

8

7

6

5

4

3

2

1

0

?

?

?

?

?

?

?

?

?

softintclear
?

?

?

Bits

?

?

?

Access

?

?

?

?

?

?

Name

?

?

?

?

?

?

?

?

?

?

?

Description
Mask of the interrupt request corresponding to INT_SOFTINT.

[31:0]

WO

00: The corresponding bit of INT_SOFTINT is not affected.

softintclear

1: The corresponding bit of INT_SOFTINT is cleared and the
corresponding interrupt request is masked.

INT_PROTECTION
INT_PROTECTION is the protection enable register It is used to enable or disable the access
to the protected registers.

After reset, this register is cleared and the registers of the INT can be accessed in both user
mode and privileged mode.

z

When the CPU cannot generate the correct protection information (HPROT), the registers
of the INT can be accessed in user mode after INT_PROTECTION is reset.

Offset Address

Register Name

Total Reset Value

0x020

INT_PROTECTION

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
protection

Bit

z

0

0

0

0

0

0

0

Register access protection enable.
[0]

RW

protection

0: disabled. The registers of the INT can be accessed both in user
mode and privileged mode.
1: enabled. The registers of the INT can be access in privileged
mode only.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-31

Hi3515
Data Sheet

3 System

3.5 Direct Memory Access Controller
3.5.1 Overview
DMA refers to an operating mode in which data is transferred through input/output (I/O)
exchange by hardware only. In this mode, the DMAC directly transfers data between a
memory and a peripheral, between peripherals, and between memories. This avoids the
processor intervention and reduces the interrupt processing overhead of the processor. The
DMA mode is usually used to transmit data blocks at high speed. After receiving a DMA
transfer request, the DMAC enables the master bus controller based on the channel
configuration, sends address and control signals to memories and peripherals, counts the
transferred data segments, and reports the end of data transfer or errors to the CPU in interrupt
mode.

3.5.2 Features
The DMAC has the following features:

3-32

z

Transfers data in 8-bit, 16-bit, or 32-bit mode.

z

Provides eight DMA channels. Each channel can be configured to support unidirectional
transfer.

z

Provides eight fixed DMA channel priorities. DMA channel 0 has the highest priority;
whereas channel 7 has the lowest priority. When the DMA requests from two peripherals
are valid simultaneously, the channel with the higher priority starts data transfer first.

z

Includes one 4 x 32-bit first in first out (FIFO) in each DMAC channel (channel 0 to
channel 5) and one 16 x 32-bit FIFO in each DMAC channel (channel 6 to channel 7).

z

Provides two 32-bit master bus interfaces for data transfer.

z

Supports two types of DMA requests: single transfer and burst transfer.

z

Provides 16 groups of DMA request inputs. These requests can be configured as source
requests or target requests.

z

Supports the DMA requests controlled through software.

z

Supports the DMA burst size configured by programming.

z

Supports the source address and the target address that are automatically incremented or
not during DMA transfer

z

Supports four data transfer directions:
−

Memory to peripheral

−

Memory to memory

−

Peripheral to memory

−

Peripheral to peripheral

z

Supports DMA transfer with the linked list.

z

Supports the DMAC flow control.

z

Providing two maskable interrupt outputs that are reported to the master ARM and slave
ARM respectively, querying the status of the raw/masked DMA error interrupt and DMA
terminal count interrupt, and querying the status of the combination of the two interrupts.

z

Controls the power consumption by disabling the DMAC and supports DMAC clock
gating.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

3.5.3 Function Description
3.5.3.1 Functional Block Diagram
Figure 3-8 shows the functional block diagram of the DMAC.
Figure 3-8 Functional block diagram of the DMAC

AHB slave interface
and global config
registers

AHB bus

DMA
Req&Resp

DMA request and
response interface

Transfer control logics and FIFOs
for Channel 0-7

AHB master 0

AHB master 1
DMAC
AHB bus

Each DMAC channel involves a group of transfer control logics and one FIFO. This group of
transfer control logics perform the following operations automatically:
Step 1 Read data from a specified source address.
Step 2 Buffer the data to the FIFO.
Step 3 Take data out from the FIFO.
Step 4 Write the data to a specified target address.
----End

3.5.3.2 Workflow
The workflow of the DMAC is as follows:
Step 1 The software selects one DMAC channel for DMA transfer, configures the following items
for this channel, and then enables this channel:
z

Source address

z

Target address

z

Head pointer of the linked list

z

Amount of the transferred data

z

Peripheral request signal line numbers at the source and target sides

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-33

Hi3515
Data Sheet

3 System
z

Masters at the source and target sides

After the channel is enabled, the DMAC hardware starts to check the activities on the DMA
request signal lines of the source peripheral and target device connected to this channel.
Step 2 The source device sends a DMA request to the DMAC. If the source device is a memory, the
DMAC considers that the DMA request is always valid by default.
Step 3 The DMAC channel responds to the DMA request of the source device. The DMAC reads
data from the source device and stores it in the internal FIFO of the channel.
Step 4 The target device sends a DMA request to the DMAC. If the target device is a memory, the
DMAC considers that the DMA request is always valid by default.
Step 5 The DMAC channel responds to the DMA request of the target device. The DMAC takes out
data from the internal FIFO of the channel and writes it to the target device.
Step 6 Step 2, Step 3 and Step 4, Step 5 may be performed concurrently, because the source and
target devices may send DMA requests to the DMAC at the same time.
When the FIFO overrun or underrun of the DMA channel occurs, the DMAC blocks the DMA
requests of the source device or target device until the FIFO is not full or empty.
When the DMAC interacts with the source device and target device for several times, Step 2
to Step 5 are performed repeatedly until the specified data is transferred and a maskable
terminal count interrupt is sent.
If the value of DMAC_CX_LLI is not 0, read linked list item (LLI) nodes by considering the
register value as an address, load the read values to DMAC_CX_SRC_ADDR,
DMAC_CX_DEST_ADDR, DMAC_CX_LLI, and DMAC_CX_CONTROL in sequence (see
Figure 3-9), and then go to Step 2.
If the value of DMAC_CX_LLI is 0, the current DMA transfer is stopped. In this case, the
channel is disabled automatically and the transfer ends.
----End
Figure 3-9 shows how to update channel registers through the LLI.
Figure 3-9 Updating channel registers through the LLI
Channel registers

Linked list item

DMAC_CX_SRC_ADDR

DMAC_CX_SRC_ADDR

DMAC_CX_DEST_ADDR

DMAC_CX_DEST_ADDR

DMAC_CX_LLI

DMAC_CX_LLI

DMAC_CX_CONTROL

DMAC_CX_CONTROL

DMAC_CX_CONFIG

3-34

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

3.5.3.3 Connections Between the DMA and Peripherals
The peripherals initiate data transfer by sending DMA request signals to the DMAC.

DMA Request Signals
The DMAC provides two types of DMA request signals for each peripheral:
z

DMACBREQ
Burst transfer request signal. It triggers a burst transfer. The burst size is preset.

z

DMACSREQ
Single transfer request signal. It triggers a single transfer. That is, the DMAC reads a
data segment from a peripheral or writes a data segment to a peripheral.

Request Clear Signal
The DMAC provides a request clear signal DMACLR.
This signal is sent to each peripheral by the DMAC and is used to respond to the DMA
request signal of each peripheral.

DMAC Request Signals
Table 3-18 shows the hardware request signals of the DMAC.
Table 3-18 Hardware request signals of the DMAC
DMAC Hardware Request
Signal No.

Description

0

SIO0 receive (RX) channel

1

SIO0 transmit (TX) channel

2

SIO1 RX channel

3

SIO1 TX channel

4

UART RX channel

5

UART TX channel

6

SPI RX channel

7

SPI TX channel

8

MMC read channel

9

MMC write channel

10

DMA request of the UART0 RX channel

11

DMA request of the UART0 TX channel

12

DMA request of the UART1 RX channel

13

DMA request of the UART1 TX channel

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-35

Hi3515
Data Sheet

3 System

DMAC Hardware Request
Signal No.

Description

14

DMA request of the UART2 RX channel

15

DMA request of the UART2 TX channel

The source and target requests of each DMA channel are configured through the software. For
example, DMA request 2 is the request of the RX channel of SIO1. If you want to transmit the
received data of SIO1 through channel 3, you must configure DMA request 2 as the source
request of channel 3.
There is no DMA request signal for memories. When a memory is used, the DMAC considers
that the DMA request of the memory is always valid by default. For DMAC channel 6 and
channel 7, an idle cycle is inserted after each bus operation. In this way, the master with a
higher priority channel can transfer data on the bus. Therefore, to prevent other channels from
waiting for the bus for a long time, it is recommended to transmit data from memory to
memory through channel 6 or channel 7.

3.5.4 Operating Mode
Initialization
To initialize the DMAC, do as follows:
Step 1 Configure DMAC_CONFIG to set the endianness of DMAC master 1 and DMAC master 2
and write 1 to DMAC_CONFIG[e] to enable the DMAC.
Step 2 Write 1 to all the bits of DMAC_INT_TC_CLR and DMAC_INT_ERR_CLR to clear all the
interrupt status.
Step 3 Write 0 to the corresponding bits of DMAC_SYNC to set the DMA request signal groups to
be synchronized.
Step 4 Configure and disable each channel in sequence. You can disable all the channels by writing 0
to DMAC_CX_CONFIG[e] of each channel.
----End

Enabling a Channel
After the DMAC is initialized, the DMAC can transmit data only when a DMAC channel is
configured and enabled. To enable a DMA channel, do as follows:
Step 1 Read DMAC_ENBLD_CHNS to search for free channels and select one.
Step 2 Write 1 to the corresponding bits of DMAC_INT_TC_CLR and DMAC_INT_ERR_CLR to
clear the interrupt status of the selected channel.
Step 3 Configure and enable the selected channel. Do as follows:

3-36

1.

Configure DMAC_CX_SRC_ADDR to set the access start address of the source device.

2.

Configure DMAC_CX_DEST_ADDR to set the access start address of the target device.

3.

For single-block data transfer, write 0 to DMAC_CX_LLI.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

4.

For LLI data transfer, configure DMAC_CX_LLI as the LLI header pointer.

5.

Write to DMAC_CX_CONTROL to set the master, data width, burst size, address
increment, and transfer size of the source device and target device.

6.

Write to DMAC_CX_CONFIG to set the DMA request signal, flow control mode, and
interrupt mask of this channel. At this time, write 0 to DMAC_CX_CONFIG[e]. That is,
this channel is not enabled currently.

7.

Configure DMAC_CX_CONFIG to enable this channel. Note: In this case, change the
channel enable bit to 1 but keep other bits unchanged.

----End

Processing an Interrupt
When an error occurs after or during the data transfer, the DMA channel reports an interrupt
to the master ARM or slave ARM based on the channel configuration. To process an interrupt,
do as follows:
Step 1 Read DMAC_INT_STAT to search for the channel that sends an interrupt request. If the
interrupt is from ARM, read DMAC_INT_STAT1. When multiple channels send interrupt
requests at the same time, the interrupt with the highest priority is processed first.
Step 2 Read DMAC_INT_TC_STAT (if the interrupt is from ARM, read DMAC_INT_STAT1) to
check whether the selected bit is 1. If it is 1, it indicates that the interrupt sent from the
corresponding channel is a transfer complete interrupt. If the value is 1, it indicates the
interrupt is a terminal count interrupt. In this case go to Step 4; otherwise, go to Step 3.
Step 3 Read DMAC_INT_ERR_STAT (if the interrupt is from ARM, read DMAC_INT_STAT1) to
check whether the selected bit is 1. The value 1 indicates that the interrupt sent from the
corresponding channel is an error interrupt. If the selected bit is 1, it indicates the interrupt is
an error interrupt. In this case, go to Step 5; otherwise, end the operation.
Step 4 Process the terminal count interrupt as follows:
1.

Configure DMAC_INT_TC_CLR and write 1 to the selected bit to clear the interrupt
status of the corresponding channel.

2.

Take away or use up the data buffered in the memory. If required (such as for creating a
buffer in the memory), configure and enable the channel again.

3.

End the operation.

Step 5 Process the error interrupt as follows:
1.

Configure DMAC_INT_ERR_CLR and write 1 to the selected bit to clear the interrupt
status of the corresponding channel.

2.

Check the error information. If required, configure and enable the channel again.

3.

End the operation.

----End

3.5.5 Register Summary
Table 3-19 lists the DMAC registers.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-37

Hi3515
Data Sheet

3 System

Table 3-19 Summary of the DMAC registers (base address: 0x100D_0000)

3-38

Offset
Address

Register

Description

Page

0x000

DMAC_INT_STAT

DMAC interrupt status register

3-40

0x004

DMAC_INT_TC_STAT

DMAC terminal count interrupt
status register

3-41

0x008

DMAC_INT_TC_CLR

DMAC terminal count interrupt
clear register

3-41

0x00C

DMAC_INT_ERR_STAT

DMAC error interrupt status
register

3-42

0x010

DMAC_INT_ERR_CLR

DMAC error interrupt clear
register

3-42

0x014

DMAC_RAW_INT_TC_STAT

DMAC raw terminal count
interrupt status register

3-43

0x018

DMAC_RAW_INT_ERR_STAT

DMAC raw error interrupt status
register

3-43

0x01C

DMAC_ENBLD_CHNS

DMAC channel enable status
register

3-44

0x020

DMAC_SOFT_BREQ

DMA burst request register for
software

3-44

0x024

DMAC_SOFT_SREQ

DMA single request register for
software

3-45

0x028

DMAC_SOFT_LBREQ

DMA last burst request register
for software

3-46

0x02C

DMAC_SOFT_LSREQ

DMA last single request register
for software

3-47

0x030

DMAC_CONFIG

DMAC configuration register

3-47

0x034

DMAC_SYNC

DMAC request synchronization
register

3-48

0x040

DMAC_INT_STAT1

DMAC interrupt status register

3-48

0x044

DMAC_INT_TC_STAT1

DMAC terminal count interrupt
status register 1

3-49

0x048

DMAC_INT_ERROR_STAT1

DMAC error interrupt status
register

3-49

0x100

DMAC_C0_SRC_ADDR

Source address register of
channel 0

3-48

0x104

DMAC_C0_DEST_ADDR

Target address register of
channel 0

3-51

0x108

DMAC_C0_LLI

LLI register of channel 0

3-51

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Offset
Address

Register

Description

Page

0x10C

DMAC_C0_CONTROL

Control register of channel 0

3-53

0x110

DMAC_C0_CONFIG

Configuration register of
channel 0

3-56

0x120

DMAC_C1_SRC_ADDR

Source address register of
channel 1

3-48

0x124

DMAC_C1_DEST_ADDR

Target address register of
channel 1

3-51

0x128

DMAC_C1_LLI

LLI register of channel 1

3-51

0x12C

DMAC_C1_CONTROL

Control register of channel 1

3-53

0x130

DMAC_C1_CONFIG

Configuration register of
channel 1

3-56

0x140

DMAC_C2_SRC_ADDR

Source address register of
channel 2

3-48

0x144

DMAC_C2_DEST_ADDR

Target address register of
channel 2

3-51

0x148

DMAC_C2_LLI

LLI register of channel 2

3-51

0x14C

DMAC_C2_CONTROL

Control register of channel 2

3-53

0x150

DMAC_C2_CONFIG

Configuration register of
channel 2

3-56

0x160

DMAC_C3_SRC_ADDR

Source address register of
channel 3

3-48

0x164

DMAC_C3_DEST_ADDR

Target address register of
channel 3

3-51

0x168

DMAC_C3_LLI

LLI register of channel 3

3-51

0x16C

DMAC_C3_CONTROL

Control register of channel 3

3-53

0x170

DMAC_C3_CONFIG

Configuration register of
channel 3

3-56

0x180

DMAC_C4_SRC_ADDR

Source address register of
channel 4

3-48

0x184

DMAC_C4_DEST_ADDR

Target address register of
channel 4

3-51

0x188

DMAC_C4_LLI

LLI register of channel 4

3-51

0x18C

DMAC_C4_CONTROL

Control register of channel 4

3-53

0x190

DMAC_C4_CONFIG

Configuration register of
channel 4

3-56

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-39

Hi3515
Data Sheet

3 System

Offset
Address

Register

Description

Page

0x1A0

DMAC_C5_SRC_ADDR

Source address register of
channel 5

3-48

0x1A4

DMAC_C5_DEST_ADDR

Target address register of
channel 5

3-51

0x1A8

DMAC_C5_LLI

LLI register of channel 5

3-51

0x1AC

DMAC_C5_CONTROL

Control register of channel 5

3-53

0x1B0

DMAC_C5_CONFIG

Configuration register of
channel 5

3-56

0x1C0

DMAC_C6_SRC_ADDR

Source address register of
channel 6

3-48

0x1C4

DMAC_C6_DEST_ADDR

Target address register of
channel 6

3-51

0x1C8

DMAC_C6_LLI

LLI register of channel 6

3-51

0x1CC

DMAC_C6_CONTROL

Control register of channel 6

3-53

0x1D0

DMAC_C6_CONFIG

Configuration register of
channel 6

3-56

0x1E0

DMAC_C7_SRC_ADDR

Source address register of
channel 7

3-48

0x1E4

DMAC_C7_DEST_ADDR

Target address register of
channel 7

3-51

0x1E8

DMAC_C7_LLI

LLI register of channel 7

3-51

0x1EC

DMAC_C7_CONTROL

Control register of channel 7

3-53

0x1F0

DMAC_C7_CONFIG

Configuration register of
channel 7

3-56

3.5.6 Register Description
DMAC_INT_STAT
DMAC_INT_STAT is the interrupt status register. It shows the master ARM the status of
masked interrupts. If the certain bits of DMAC_INT_TC_STAT and
DMAC_INT_ERR_STAT are masked at the same time, the corresponding bit of
DMAC_INT_STAT is masked. Each bit of DMAC_INT_STAT maps to one DMAC channel.

3-40

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset address

Register Name

Total Reset Value

0x000

DMAC_INT_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

int_stat
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the masked interrupts of each DMA channel. Bit[7:0]
map to channels 7–0.
[7:0]

RO

int_stat

0: No interrupt is generated.
1: An interrupt is generated. The interrupt request may be an error
interrupt or a terminal count interrupt.

DMAC_INT_TC_STAT
DMAC_INT_TC_STAT is the transfer complete interrupt status register. It shows the master
ARM the status of masked transfer complete interrupts. The corresponding mask bit is
DMAC_CX_CONFIG[itc]. X indicates the channel ID ranging from 0 to 7. This register must
work with DMAC_INT_STAT.

Bit

Offset address

Register Name

Total Reset Value

0x004

DMAC_INT_TC_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:8]

RO

reserved

Reserved.

RO

int_tc_stat

3

2

1

0

0

0

0

int_tc_stat

Bits

[7:0]

4

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the masked terminal count interrupts. Bit[7:0] map to
channels 7–0.
0: No terminal count interrupt is generated.
1: A terminal count interrupt is generated.

DMAC_INT_TC_CLR
DMAC_INT_TC_CLR is the terminal count interrupt clear register. It is used to clear
terminal count interrupts. Writing 1 to a certain bit clears both DMAC_INT_TC_STAT and
DMAC_INT_TC_STAT1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-41

Hi3515
Data Sheet

3 System

Bit

Offset address

Register Name

Total Reset Value

0x008

DMAC_INT_TC_CLR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

int_tc_clr
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Terminal count interrupt clear. Bit[7:0] map to channels 7–0.
[7:0]

WO

0: not cleared

int_tc_clr

1: cleared

DMAC_INT_ERR_STAT
DMAC_INT_ERR_STAT is the error interrupt status register. It shows the master ARM the
status of masked error interrupts for querying. The corresponding mask bit is
DMAC_CX_CONFIG[ie]. The register must work with DMAC_INT_STAT.

Bit

Offset address

Register Name

Total Reset Value

0x00C

DMAC_INT_ERR_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

int_err_stat
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of masked error interrupts. Bit[7:0] map to channels 7–0.
[7:0]

RO

int_err_stat

0: No error interrupt is generated.
1: An error interrupt is generated.

DMAC_INT_ERR_CLR
DMAC_INT_ERR_CLR is an error interrupt clear register. It is used to clear error interrupts.
Writing 1 to a certain bit clears both DMAC_INT_ERR_STAT and
DMAC_INT_ERR_STAT1.

3-42

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset address

Register Name

Total Reset Value

0x010

DMAC_INT_ERR_CLR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

int_err_clr
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Error interrupt clear. Bit[7:0] map to channels 7–0.
[7:0]

WO

int_err_clr

0: not cleared
1: cleared

DMAC_RAW_INT_TC_STAT
DMAC_RAW_INT_TC_STAT is the raw terminal count interrupt status register. It shows the
status of the raw terminal count interrupt of each channel.

Bit

Offset address

Register Name

Total Reset Value

0x014

DMAC_RAW_INT_TC_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:8]

RO

reserved

Reserved.

RO

raw_int_tc_stat

4

3

2

1

0

0

0

raw_int_tc_stat

Bits

[7:0]

5

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the raw terminal count interrupt of each channel. Bit[7:0]
map to channels 7–0.
0: No terminal count interrupt is generated.
1: A terminal count interrupt is generated.

DMAC_RAW_INT_ERR_STAT
DMAC_RAW_INT_ERR_STAT is the raw error interrupt status register. It shows the status
of the raw error interrupt of each channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-43

Hi3515
Data Sheet

3 System

Bit

Offset address

Register Name

Total Reset Value

0x018

DMAC_RAW_INT_ERR_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:8]

RO

reserved

Reserved.

RO

3

2

1

0

0

0

raw_int_err_stat

Bits

[7:0]

4

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the raw error interrupt of each channel. Bit[7:0] map to
channels 7–0.

raw_int_err_stat

0: No error interrupt is generated.
1: An error interrupt is generated.

DMAC_ENBLD_CHNS
DMAC_ENBLD_CHNS is the channel enable register that shows the enabled channels.
For example, if a certain bit of DMAC_ENBLD_CHNS is 1, it indicates that the
corresponding channel is enabled. The enable bit of DMAC_CX_CONFIG of each channel
determines whether the corresponding channel is enabled. When the DMA transfer of a
channel is complete, the bit of DMAC_ENBLD_CHNS corresponding to the channel is
cleared.

Bit

Offset address

Register Name

Total Reset Value

0x01C

DMAC_ENBLD_CHNS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

enabled_channels
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Channel enable. Bit[7:0] map to channels 7–0.
[7:0]

RO

enabled_channels 0: disabled
1: enabled

DMAC_SOFT_BREQ
DMAC_SOFT_BREQ is the burst request register for software. It is used to control whether
to generate DMA burst requests through the software.

3-44

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

When this register is read, the device that is requesting the DMA burst transfer can be queried.
This register and any peripheral each can generate a DAM request.
Do not use a software DMA request and a hardware DMA request at the same time.

Bit

Offset address

Register Name

Total Reset Value

0x020

DMAC_SOFT_BREQ

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

soft_breq
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

Controls whether to generate DMA burst transfer requests through
the software. For the request signal corresponding to each bit, see
Table 3-18.
When the register is written:
0: no effect
[15:0]

RW

soft_breq

1: A DMA burst transfer request is generated. When the transfer is
complete, the corresponding bit is cleared.
When the register is read:
0: The peripheral corresponding to the request signal
DMACBREQ[15:0] does not send a DMA burst request.
1: The peripheral corresponding to the request signal
DMACBREQ[15:0] is requesting the DMA burst transfer.

DMAC_SOFT_SREQ
DMAC_SOFT_SREQ is the DMA single request register for software. It is used to control
whether to generate a DMA single transfer request through the software.
When this register is read, the device that is requesting the DMA single transfer can be
queried. This register and the 16 DMA request input signals of the DMAC each can generate a
DMA request.
Do not use a software DMA request and a hardware DMA request at the same time.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-45

Hi3515
Data Sheet

3 System

Bit

Offset address

Register Name

Total Reset Value

0x024

DMAC_SOFT_SREQ

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

soft_sreq
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

Controls whether to generate DMA single transfer requests
through the software. For the request signal corresponding to each
bit, see Table 3-18.
When the register is written:
0: no effect
[15:0]

RW

1: A DMA single transfer request is generated. When the transfer
is complete, the corresponding bit is cleared.

soft_sreq

When the register is read:
0: The peripheral corresponding to the request signal
DMACBREQ[15:0] does not send a DMA signal request.
1: The peripheral corresponding to the request signal
DMACBREQ[15:0] is requesting the single DMA transfer.

DMAC_SOFT_LBREQ
DMAC_SOFT_LBREQ is the last burst request register for software. It is used to control
whether to generate a DMA last burst transfer request through the software.

Bit

Offset address

Register Name

Total Reset Value

0x028

DMAC_SOFT_LBREQ

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:16]

RO

reserved

Reserved.

WO

soft_lbreq

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

soft_lbreq

Bits

[15:0]

8

0

0

0

0

0

0

0

0

0

Controls whether to generate a last burst request through the
software. For details about the request signal corresponding to
each bit, see Table 3-18.
0: no effect
1: A DMA last burst transfer request is generated. When the
transfer is complete, the corresponding bit is cleared.

3-46

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

DMAC_SOFT_LSREQ
DMAC_SOFT_LSREQ is the DMA last single request register for software. It is used to
control whether to generate the last DMA single transfer request through the software.

Bit

Offset address

Register Name

Total Reset Value

0x02C

DMAC_SOFT_LSREQ

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:16]

RO

reserved

Reserved.

WO

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

soft_lsreq

Bits

[15:0]

8

0

0

0

0

0

0

0

0

0

Controls whether to generate the last single transfer request
through the software. For details about the request signal
corresponding to each bit, see Table 3-18.

soft_lsreq

0: no effect
1: The last DMA single transfer request is generated. When the
transfer is complete, the corresponding bit is cleared.

DMAC_CONFIG
DMAC_CONFIG is the configuration register. It is used to configure the DMAC. You can
change the endianness mode of the two master interfaces of the DMAC by writing m1 (bit[1])
and m2 (bit[2]) of this register. After reset, the two master interfaces are set to little endian
mode.
The two master interfaces work in little endian mode.

Bit

Offset address

Register Name

Total Reset Value

0x030

DMAC_CONFIG

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

2

1

0

m2 m1 e
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Endianness mode of master 2.
[2]

RW

m2

0: little endian mode
1: big endian mode

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-47

Hi3515
Data Sheet

3 System

Endianness mode of master 1.
[1]

RW

m1

0: little endian mode
1: big endian mode
DMAC enable.

[0]

RW

0: disabled

e

1: enabled

DMAC_SYNC
DMAC_SYNC is the synchronization register. It is used to enable or disable the
synchronization logics provided for DMA request signals.
It is recommended to disable the synchronization logics provided for all the request signals.

Bit

Offset address

Register Name

Total Reset Value

0x034

DMAC_SYNC

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

dmac_sync
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

Controls whether to synchronize request signals. For the request
signal corresponding to each bit, see Table 3-18
[15:0]

RW

dmac_sync

0: Enable the synchronization logics provided for the DMA
request signals of the corresponding peripheral.
1: Disable the synchronization logics provided for the DMA
request signals of the corresponding peripheral

DMAC_INT_STAT1
DMAC_INT_STAT1 is the interrupt status register. It shows the slave ARM the status of
masked interrupts. If the certain bits of DMAC_INT_STAT1 and DMAC_INT_ERR_STAT1
are masked at the same time, the corresponding bit of DMAC_INT_STAT1 is masked. Each
bit of DMAC_INT_STAT1 maps to one DMAC channel.

3-48

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset address

Register Name

Total Reset Value

0x040

DMAC_INT_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

int_stat
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the masked interrupts of each DMA channel. Bit[7:0]
map to channels 7–0.
[7:0]

RO

int_stat

0: No interrupt is generated.
1: An interrupt is generated. The interrupt request may be an error
interrupt or a terminal count interrupt.

DMAC_INT_TC_STAT1
DMAC_INT_TC_STAT1 is the terminal count interrupt status register. It shows the slave
ARM the status of masked terminal count interrupts for querying. The corresponding mask bit
is DMAC_CX_CONFIG[itc]. X indicates the channel ID ranging from 0 to 7. This register
must work with DMAC_INT_STAT1.

Bit

Offset address

Register Name

Total Reset Value

0x044

DMAC_INT_TC_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:8]

RO

reserved

Reserved.

RO

int_tc_stat

3

2

1

0

0

0

0

int_tc_stat

Bits

[7:0]

4

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of the masked terminal count interrupts. Bit[7:0] map to
channels 7–0.
0: No terminal count interrupt is generated.
1: A terminal count interrupt is generated.

DMAC_INT_ERR_STAT1
DMAC_INT_ERR_STAT1 is the error interrupt status register. It shows the slave ARM the
status of masked error interrupts for querying. The corresponding mask bit is
DMAC_CX_CONFIG[ie]. The register must work with DMAC_INT_STAT1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-49

Hi3515
Data Sheet

3 System

Bit

Offset address

Register Name

Total Reset Value

0x048

DMAC_INT_ERR_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

int_err_stat
0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Status of masked error interrupts. Bit[7:0] map to channels 7–0.
[7:0]

RO

0: No error interrupt is generated.

int_err_stat

1: An error interrupt is generated.

DMAC_CX_SRC_ADDR
DMAC_CX_SRC_ADDR is the source address register. It shows the source addresses (sorted
by byte) of the data to be transmitted.
Its offset address is 0x100+Xx0x20. The value of X ranges from 0 to 7. The values 0–7 map
to DMA channels 0–7.
Before a channel is enabled, its register must be programmed through software. After the
channel is enabled, the register is updated in the following cases:
z

When the source address is incremented.

z

When a complete data block is transferred and then loaded from LLI nodes.

When a channel is active, no valid information is obtained when this register is read. This is
because that after software obtains the register value, the value is changed during data transfer.
Therefore, the register is read after the channel stops data transfer. At this time, the read value
is the last source address read by the DMAC.
The source and target addresses must be aligned with the transfer widths of the source and
target devices.

Bit

Offset address

Register Name

Total Reset Value

0x100+X x 0x20

DMAC_CX_SRC_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

src_addr

Reset 0

3-50

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

src_addr

DMA source address.

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

z

The DMAC provides eight channels. Each channel has the following five channel registers:

z

DMAC_CX_SRC_ADDR

z

DMAC_CX_DEST_ADDR

z

DMAC_CX_LLI

z

DMAC_CX_CONTROL

z

DMAC_CX_CONFIG

When the DMA loads LLI nodes from a memory, the DMAC updates DMAC_CX_SRC_ADDR the
preceding five registers excluding DMAC_CX_CONFIG automatically.

During DMA transfer, the DMAC may perform unpredictable operations when the preceding
channel registers are updated. Before changing the settings of a channel, you must disable the
channel and then configure its related registers.

DMAC_CX_DEST_ADDR
DMAC_CX_DEST_ADDR is the target address register. Its offset address is 0x104+Xx0x20.
The value of X ranges from 0 to 7. The values 0–7 map to DMA channels 0–7.
This register contains the target address (sorted by byte) of the data to be transmitted. Before a
channel is enabled, its register must be programmed through software. After the channel is
enabled, the register is updated in the following cases:
z

Target address increment.

z

When a complete data block is transferred and then loaded from LLI nodes.

When a channel is active, no valid information is obtained when this register is read. This is
because that after software obtains the register value, the value is changed during data transfer.
Therefore, the register is read after the channel stops data transfer. At this time, the read value
is the last target address written by the DMAC.

Bit

Offset address

Register Name

Total Reset Value

0x104+X x 0x20

DMAC_CX_DEST_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dest_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

dest_addr

DMA target address.

0

0

0

0

0

DMAC_CX_LLI
DMAC_CXLLI is the LLI register. Its offset address is 0x108+Xx0x20. The value of X
ranges from 0 to 7. The values 0–7 map to DMA channels 0–7.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-51

Hi3515
Data Sheet

3 System

The data structure of the DMAC LLI node is as follows:
z

Channel register DMAC_CX_SRC_ADDR, for setting the start address of the source
device.

z

Channel register DMAC_CX_DEST_ADDR, for setting the start address of the target
device.

z

Channel register DMAC_CX_LLI, for setting the address of the next node.

z

Channel register DMAC_CX_CONTROL, for setting the master, data width, burst size,
address increment, and transfer size of the source device and target device.

Figure 3-10 shows the structure of the DMAC LLIs.
Figure 3-10 Structure of the DMAC LLIs

SRC_ADDR

SRC_ADDR

SRC_ADDR

SRC_ADDR

DEST_ADDR

DEST_ADDR

DEST_ADDR

DEST_ADDR

LLI

LLI

LLI

LLI

CONTROL

CONTROL

CONTROL

CONTROL

The value of the LLI field must be equal to or less than 0xFFFF_FFF0. Otherwise, the address
is rolled back to 0x0000_0000 during a 4-word burst transfer. As a result, the data structure of
LLI nodes cannot be stored in a continuous address area.

Bit

Offset address

Register Name

Total Reset Value

0x108+Xx0x20

DMAC_CXLLI

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

lli

Reset 0

3-52

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

reserved

If the LLI field is set to 0, it indicates that the current node is at the end of the linked list. In
this case, the channel is disabled after the corresponding data blocks of the current node are
transferred.

lm

0

0

Bits

Access

Name

Description

[31:2]

RW

lli

LLI. The [31:2] bit of the next LLI node address and the address
bit[1:0] are both set to 0. A linked list address must be 4-byte
aligned.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[1]

3 System

RO

Reserved. This bit must be 0 during writes and must be masked
during reads.

reserved

Master for loading the next LLI node.
[0]

RW

0: Master1

lm

1: Master2

DMAC_CX_CONTROL
DMAC_CX_CONTROL is the channel control register. Its offset address is 0x10C+Xx0x20.
The value of X ranges from 0 to 7. The values 0–7 map to DMA channels 0–7.
This register contains the control information about the DMA channels, such as the transfer
size, burst size, and transfer bit width.
Before a channel is enabled, its register must be programmed through software. When the
channel is enabled, the value of the register is updated when being loaded from the LLI node
after a complete data block is transferred.
When a channel is active, no valid information is obtained when this register is read. because
after software obtains the register value, the value is changed during data transfer. After the
channel stops data transfer, the register can be read.

Bit
Name

Offset address

Register Name

Total Reset Value

0x10C+Xx 0x20

DMAC_CX_CONTROL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
i

Reset 0

prot
0

Bits

[31]

0

0

di si d

s

0

0

Access

RW

0

0

dwidth
0

Name

i

0

0

swidth
0

0

0

dbsize
0

0

8

sbsize
0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

transfersize
0

0

0

0

0

0

0

0

0

Description
Terminal count interrupt enable. This bit determines whether the
current LLI node triggers a terminal count interrupt.
0: do not trigger
1: trigger

[30:28]

RW

prot

Access protection HPROT[2:0] signal sent by a master. For details
about these bits, see Table 3-22.
Target address increment.
0: The target address is not incremented

[27]

RW

di

1: The target address is incremented once after a data segment is
transferred
If the target device is a peripheral, the target address is not
incremented. If the target device is a memory, the target address is
incremented.

[26]

RW

Issue 02 (2010-04-20)

si

Source address increment.
0: The source address is not incremented

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-53

Hi3515
Data Sheet

3 System

1: The source address is incremented once after a data segment is
transferred
If the source device is a peripheral, the source address is not
incremented. If the source device is a memory, the source address
is incremented.
Master for accessing the target device.
[25]

RW

0: Master 1 accesses SIO0, SIO1, UART0, SDIO, and SPI.

d

1: Master 2 accesses the NOR flash and DDR.
Master for accessing the source device.
[24]

RW

0: Master 1 accesses SIO0, SIO1, UART0, SDIO, and SPI.

s

1: Master 2 accesses the NOR flash and DDR.
Transfer bit width of the target device.
The transfer bit width is invalid if it is greater than the bit width of
the master.
[23:21]

RW

dwidth

The data widths of the target and source devices can be different.
The hardware automatically packs and unpacks the data.
For the mapping between the value of DWidth and the bit width,
see Table 3-21.
Transfer bit width of the source device.
The transfer bit width is invalid if it is greater than the bit width of
the master.

[20:18]

RW

swidth

The data widths of the target and source devices can be different.
The hardware automatically packs and unpacks the data.
For the mapping between the value of SWidth and the bit width,
see Table 3-21.
Burst size of the target device.
It indicates the number of data segments to be transferred by the
target device in a burst transfer, that is, the number of transferred
data segments when DMACCxBREQ is valid.

[17:15]

RW

dbsize

This value must be set to a burst size supported by the target
device. If the target device is a memory, the value is set to the
storage address boundary.
For the mapping between the value of DBSize and the transfer
size, see Table 3-20.
Burst size of the source device.
It indicates the number of data segments to be transferred by the
source device in a burst transfer, that is, the number of transferred
data segments when DMACCxBREQ is valid.

[14:12]

RW

sbsize

The value must be set to a burst size supported by the source
device. If the source device is a memory, the value is set to the
storage address boundary.
For the mapping between the value of SBSize and the transfer size,
see Table 3-20.

[11:0]

3-54

RW

transfersize

If the DMAC is a flow controller, the DMA transfer size can be

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

configured by writing DMAC_CX_CONTROL. The transfer size
indicates the number of the data segments to be transferred by the
source device.
When DMAC_CX_CONTROL is read, the number of data
segments transferred through the bus connected to the target
device is obtained.
When a channel is active, no valid information is obtained when
this register is read. This is because that after software obtains the
register value, the value is changed during data transfer. Therefore,
the register is read after the channel is enabled and data transfer is
stopped.

Table 3-20 lists the value of DBSize or SBSize of DMAC_CX_CONTROL and the
corresponding burst size.
Table 3-20 Mapping between the value of DBSize or SBSize and the burst size
DBSize or SBSize

Burst Size

000

1

001

4

010

8

011

16

100

32

101

64

110

128

111

256

Table 3-21 lists the value of DWidth or SWidth of DMAC_CX_CONTROL and the
corresponding transfer data width.
Table 3-21 Mapping between the value of DWidth or SWidth and the transfer bit width
SWidth or DWidth

Transfer Bit Width

000

Byte (8 bits)

001

Halfword (16 bits)

010

Word (32 bits)

Others

Reserved.

Note the following points when configuring DMAC_CX_CONTROL register:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-55

Hi3515
Data Sheet

3 System
z

When the transfer bit width of the source device is less than that of the target device, the
product of the transfer bit width and transfer size of the source device must be an integer
multiple of the transfer bit width of the target device. Otherwise, the data in the FIFO is
stranded and then lost.

z

SWidth and DWidth fields cannot be set to undefined bit widths.

z

If the transfer size field is set to 0 and the DMAC is a flow controller, the DMAC does
not transfer data. In this case, the programmer needs to disable the DMA channel and
reprogram it.

z

Do not perform common write/read tests on the DMAC_CX_CONTROL register,
because the transfer size field is not a common register field in which the written value is
the same as the read value. During writes, this field serves as a control register, because
it determines the number of data segments transferred by the DMAC. During reads, this
field serves as a status register, because it returns the number (in the unit of the bit width
of the source device) of the remaining data segments to be transferred.

z

When the transfer size field is set to a value greater than the depth of the FIFO
(peripheral FIFO, not DMAC FIFO) of the source device or target device, the source
address or target address of the DMAC must be set to the non-increment mode.
Otherwise, the peripheral FIFO may overflow.

The bus access information is provided to the source device or target device by the master
interface signals during data transfer. Such information is related to the bits
DMAC_CX_CONTROL[prot] and DMAC_CX_CONFIG[Lock] that are set by programming
the channel registers. Table 3-22 describes the three protection bits of the prot field of
DMAC_CX_CONTROL.
Table 3-22 Attributes and definitions of the prot field of DMAC_CX_CONTROL
Bit

Description

Function

[2]

Cacheable or
nonCacheable

Indicates whether the access is cacheable.
0: noncacheable
1: cacheable
This bit controls the output of the bus signal HPROT[3].

[1]

bufferable or
nonbufferable

Indicates whether the access is bufferable.
0: nonbufferable
1: bufferable
This bit controls the output of the bus signal HPROT[2].

[0]

privileged or user

Access mode.
0: user mode
1: privileged mode
This bit controls the output of the bus signal HPROT[1].

DMAC_CX_CONFIG
DMAC_CX_CONFIG is the channel configuration register. Its offset address is
0x110+Xx0x20. The value of X ranges from 0 to 7. The values 0–7 map to DMA channels 0–
7.

3-56

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

This register is not updated when a new LLI node is loaded.
Total Reset Value

0x110+Xx0x20

DMAC_CX_CONFIG

0x0000_0000

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

Bits

Access

Name

[31:21]

RO

reserved

0

0

0

0

h

a

l

0

0

0

ie flow_cntrl

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

8

7

6

dest_peripheral

0

0

0

0

5

4

reserved

Register Name

itc

Bit

Offset address

3

src_peripheral e

0

0

0

2

0

1

0

0

0

Description
Reserved.
This bit must be 0 during writes and must be masked during reads.
Terminal count interrupt mask bit.

[20]

ITC1

0: Mask the terminal count interrupt of the channel of the slave
ARM.

R/W

1: Do not mask the terminal count interrupt of the channel of the
slave ARM.
Error interrupt mask bit.
[19]

IE1

0: Mask the error interrupt of the channel of the slave ARM.

R/W

1: Do not mask the error interrupt of the channel of the slave
ARM.
Active bit.
0: There is no data in the channel FIFO.

[17]

RO

a

1: There is data in the channel FIFO.
This bit can disable a DMA channel without data loss by working
with the halt bit and the channel enable bit.
Lock bit.

[16]

RW

l

0: Disable lock transfer on the bus.
1: Enable lock transfer on the bus.
Terminal count interrupt mask bit.

[15]

RW

0: Mask the terminal count interrupt of the channel of the master
ARM.

itc

1: Do not mask the terminal count interrupt of the channel of the
master ARM.
Error interrupt mask bit.
0: Mask the error interrupt of the channel of the master ARM.

[14]

RW

ie

[13:11]

RW

flow_cntrl

Issue 02 (2010-04-20)

1: Do not mask the error interrupt of the channel of the master
ARM.
Flow control and transfer type field.
This field is used to specify the flow controller and the transfer

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-57

Hi3515
Data Sheet

3 System

type. The flow controller can be the DMAC, source device, or
target device.
The transfer type can be memory to peripheral, peripheral to
memory, peripheral to peripheral, or memory to memory. For
details, see Table 3-23.
[10]

[9:6]

RO

RW

reserved

dest_peripheral

Reserved.
This bit must be 0 during writes and must be masked during reads.
Target device. This field is used to select a peripheral request
signal as the request signal of the DMA target device of the
channel.
If the target device for DMA transfer is a memory, this field is
ignored.

[5]

[4:1]

RO

RW

reserved

src_peripheral

Reserved.
This bit must be 0 in writes and must be masked in reads.
Source device. This field is used to select a peripheral request
signal as the request signal of the DMA source device of the
channel.
If the source device for DMA transfer is a memory, this field is
ignored.
Channel enable bit. The channel status can be queried by reading
DMAC_CX_CONFIG or DMACEnbldChns.
0: disabled
1: enabled

[0]

RW

e

Clearing this bit can disable a channel. When this bit is cleared, the
current bus transfer continues until all data is transferred. Then, the
channel is disabled and the remaining data in the FIFO is lost.
When the last LLI is transferred or an error occurs during transfer,
the channel is also disabled and this bit is cleared. If you want to
disable a channel without data loss, the halt bit must be set to 1, so
the subsequent DMA requests are ignored by the channel. After
this, the active bit must be polled until its value becomes 0. The
value 0 indicates that there is no data in the channel FIFO. In this
case, the enable bit can be cleared.
In case of enabling a channel by setting this bit to 1, the channel
can be enabled only after it is initialized again. If a channel is
enabled by setting this bit to 1 only, unpredictable results may
occur.

When a channel is disabled by writing to the channel enable bit, this bit can be set to 1 again only after the corresponding bit of
DMAC_ENBLD_CHNS is polled to be 0. This is because the channel is not disabled immediately after the channel enable bit is
cleared. In addition, the running delay during a bus burst operation should be considered.

Table 3-23 lists the flow controller and transfer types corresponding to the flow_cntrl field of
DMAC_CX_CONFIG.

3-58

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Table 3-23 Flow controller and transfer types corresponding to the flow_cntrl field
Bit
Value

Transfer Type

Controller

000

Memory to memory

DMAC

001

Memory to peripheral

DMAC

010

Peripheral to memory

DMAC

011

Source device to target device

DMAC

Others

Reserved.

Reserved.

3.6 CIPHER
3.6.1 Overview
The CIPHER module is an encryption and decryption module that uses the data encryption
standard (DES), 3DES, and advanced encryption standard (AES) algorithms. The DES or
3DES algorithm is based on the FIPS46-3 standard, whereas the AES algorithm is based on
the FIPS 197 standard. The operating modes of the DES or 3DES algorithm comply with the
FIPS-81 standard and the operating modes of the AES algorithm comply with the NIST
special800-38a standard.
The CIPHER module can encrypt or decrypt a large amount of data effectively. In addition, it
encrypts and decrypts one or multiple blocks at a time.

3.6.2 Features
The CIPHER module has the following features:
z

Supports the AES key length of 128 bits, 192 bit, or 256 bits.

z

Supports the DES key length of 64 bits.

z

Supports 3-key and 2-key modes for the 3DES algorithm.

z

Supports the operating modes of electronic codebook (ECB), cipher block chaining
(CBC), 1-/8-/128-cipher feedback (CFB), 128-output feedback (OFB), and counter (CTR)
for the AES algorithm. These operating modes comply with the NIST special800-38a
standard.

z

Supports the operating modes of ECB, CBC, 1/8/64-CFB, and 1/8/64-OFB for the DES
or 3DES algorithm. These operating modes comply with the FIPS-81 standard.

z

Encrypts and decrypts one or multiple blocks at a time in ECB, CBC, CFB, or OFB
operating mode.

z

Encrypts and decrypts a block at a time in CTR operating mode of the AES algorithm.

z

Supports the functions of interrupt status query, interrupt mask, and interrupt clear.

z

Supports the function of forcible abort.

z

Adjusts the byte sequences of the input data (including the block input, vector input, and
key) and the output data (including the block output and vector output).

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-59

Hi3515
Data Sheet

3 System

3.6.3 Function Description
The operating modes of the DES or 3DES algorithm comply with the FIPS-81 standard and
the operating modes of the AES algorithm comply with the NIST special800-38a standard.
For the DES, 3DES, and AES algorithms, the ECB, CBC, and CFB operating modes are the
same, whereas the CTR and OFB operating modes are different. Note that the CTR operating
mode is exclusive for the AES algorithm only.

3DES Algorithm
The 3DES algorithm supports both 3-key and 2-key operations. The 2-key operation can be
regarded as a simplified 3-key operation. To be specific, for the 2-key operation, key 3 is
replaced with key 1.
Figure 3-11 shows the 3DES encryption of the 3-key operation and the 2-key operation.
Figure 3-11 3DES encryption of the 3-key operation and the 2-key operation
Plain text

Plain text

3DES

3DES

DES encryption

DES decryption

DES encryption

key 1

key 2

key 3

DES encryption

DES decryption

key 1

key 2

key 1
DES encryption

Cipher text

Cipher text

Three-key encryption

Two-key encryption

Figure 3-12 shows the 3DES decryption of the 3-key operation and the 2-key operation.

3-60

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-12 3DES decryption of the 3-key operation and 2-key operation
Cipher text

Cipher text

3DES

3DES
key 3

DES decryption

key 2

DES encryption

key 1

DES decryption

DES decryption

DES encryption

key 1

key 2

key 1
DES decryption

Plain text

Plain text

Three-key decryption

Two-key decryption

ECB Mode
In ECB mode, the encryption and decryption algorithms are directly applied to the block data.
In addition, the operation of each block is independent. With this feature, the plain text
encryption and cipher text decryption can be performed concurrently. Figure 3-13 shows the
ECB mode of the AES and DES algorithms and Figure 3-14 shows the ECB mode of the
3DES algorithm.
Figure 3-13 ECB mode of the AES and DES algorithms
Input plain text
Pi

AES/DES
encryption

Issue 02 (2010-04-20)

Input cipher
text Ci
key

AES/DES
decryption

Output cipher
text Ci

Output plain
text Pi

ECB encryption

ECB decryption

key

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-61

Hi3515
Data Sheet

3 System

Figure 3-14 ECB mode of the 3DES algorithm
Plain text

Cipher text

3DES

3DES

DES encryption

DES decryption

DES encryption

Cipher text
ECB encryption

key 1

key 2

key 3

DES decryption

DES encryption

DES decryption

key 3

key 2

key 1

Plain text
ECB decryption

CBC Mode
In CBC mode, the encryption operation is performed only after the encrypted input plain text
block is exclusive-ORed with the input vector (IV). In addition, each plain text block is
encrypted based on the processing result (namely, cipher text) of the previous plain text block.
Therefore, encryption operations cannot be performed concurrently in CBC mode. The
decryption operation, however, is independent of output plain text of the previous block.
Therefore, decryption operations can be performed concurrently. Figure 3-15 shows the CBC
mode of the AES and DES algorithms and Figure 3-16 shows the CBC mode of the 3DES
algorithm.

3-62

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-15 CBC mode of the AES and DES algorithms

IV

Input plain
text P1

AES/DES
encryption

Input plain
text P2

key

Output cipher
text C1

AES/DES
encryption

Input plain
text Pn

key

Output cipher
text C2

AES/DES
encryption

key

Output cipher
text Cn
CBC encryption

Input cipher
text C1
AES/DES
decryption

IV

Output plain
text P1

Input cipher
text C2
key

AES/DES
decryption

Input cipher
text Cn
key

Output plain
text P2

AES/DES
decryption

key

Output plain
text Pn
CBC decryption

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-63

Hi3515
Data Sheet

3 System

Figure 3-16 CBC mode of the 3DES algorithm
Plain text

Cipher text

Plain text

IV

Cipher text

3DES

3DES
3DES
3DES

3DES
DES
encryption

key 1

DES
decryption

key 2

DES
encryption

key 3

DES
encryption
DES
decryption

DES
decryption

key 3

DES
decryption

DES
encryption

key 2

DES
encryption

DES
decryption

key 1

DES
decryption

DES
encryption
IV

Cipher text

Cipher text

Plain text

Plain text

CBC encryption

CBC decryption

CFB Mode
The CFB mode is used to convert a block cipher into a stream cipher. This mode is
implemented by selecting the operation bits of the CFB. The shift operation bits are
represented by s in either of the following cases:
z

For the DES or 3DES algorithm, s bits can be 1 bit, 8 bits, or 64 bits.

z

For the AES algorithm, s bits can be 1 bit, 8 bits, or 128 bits.

Figure 3-17 shows the s-bit CFB mode of the AES and DES algorithm and Figure 3-18 shows
the s-bit CFB mode of the 3DES algorithm.

3-64

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-17 S-bit CFB mode of the AES and DES algorithms

IV

(128 - s) bits

(128 - s) bits s bits

s bits

key

key

key
AES/DES encryption

AES/DES encryption

AES/DES encryption

Discard
(128 - s) bits

Discard
Select
s bits (128 - s) bits

Discard
Select
s bits (128 - s) bits

Select
s bits
Input s-bit
plain text
P1

Input s-bit
plain text
Pn

Input s-bit
plain text
P2
Output s-bit
cipher text
C1

Output s-bit
cipher text
Cn

Output s-bit
cipher text
C2

CFB encryption

IV

AES/DES
encryption

(128 - s) bit

key

AES/DES encryption

s bits

AES/DES
encryption

key

Discard
Select
s bits (128 - s) bits
Input s-bit
cipher text
Cn

Input s-bit
cipher text
C2
Output s-bit
plain text
P1

key

Discard
Select
s bits (128 - s) bits

Discard
Select
s bits (128 - s) bits
Input s-bit
cipher text
C1

(128 - s) bits

s bits

Output s-bit
plain text
P2

Output s-bit
plain text
Pn

CFB decryption

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-65

Hi3515
Data Sheet

3 System

Figure 3-18 S-bit CFB mode of the 3DES algorithm
Encryption

Decryption

s bits

s bits

IV
(64 - s) bits

IV
(64 - s) bits s bits

s bits

3DES
DES encryption

DES decryption

DES encryption

3DES
key 1

DES encryption

key 2

DES decryption

key 3
DES encryption

key 2

key 3

s bits Discard (64 - s)
bits

s bits Discard (64 - s)
bits
s-bit
plain
text

key 1

s-bit
cipher
text
s-bit cipher text

s-bit plain text

OFB Mode
In OFB mode, IVs serve as the inputs during encryption. If a same key is used repeatedly,
different IVs must be used to ensure operation security. The s bits can be the following values:

3-66

z

For the DES or 3DES algorithm, s bits can be 1 bit, 8 bits, or 64 bits.

z

For the AES algorithm, s bits must be 128 bits.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-19 shows the OFB mode of the AES algorithm.
Figure 3-19 OFB mode of the AES algorithm

IV1

AES
encryption
Input
plain
text P1

key

AES
encryption

key

key

Input
plain
text Pn

Input
plain
text P2
Output cipher
text C1

AES
encryption

Output cipher
text C2

Output cipher
text Cn

OFB encryption

IV1

AES
encryption
Input
cipher
text C1

key

AES
encryption

key

key

Input
cipher
text Cn

Input
cipher
text C2
Output plain
text P1

AES
encryption

Output plain
text P2

Output plain
text Pn

OFB decryption

Figure 3-20 shows the s-bit OFB mode of the DES algorithm.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-67

Hi3515
Data Sheet

3 System

Figure 3-20 S-bit OFB mode of the DES algorithm

IV

DES encryption

(64 - s) bits

key

Select
Select s
(64 - s) bits
bits

Input s-bit
plain text P1

(64 - s) bits

s bits

DES encryption

key

key
DES encryption

Select s
Select
bits
(64 - s) bits

Select
Select s
(64 - s) bits
bits

Input s-bit
plain text Pn

Input s-bit
plain text P2

Output s-bit
cipher text
C1

Output s-bit
cipher text
Cn

Output s-bit
cipher text
C2

IV

s bits

(64 - s) bits

(64 - s) bits

s bits

key

OFB encryption

s bits

key

key

DES encryption

DES encryption

DES encryption

Select
Select s
(64 - s) bits
bits

Select
Select s
(64 - s) bits
bits

Select s
Select
bits
(64 - s) bits

Input s-bit
cipher text
C1

Input s-bit
cipher text
Cn

Input s-bit
cipher text
C2

Output s-bit
plain text P1

Output s-bit
plain text P2

Output s-bit
plain text Pn

OFB decryption

Figure 3-21 shows the s-bit OFB mode of the 3DES algorithm.

3-68

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-21 S-bit OFB mode of the 3DES algorithm
Encryption

Decryption

s bits

s bits

IV
(64 - s) bits s bits

IV

3DES
DES encryption

DES decryption

DES encryption

(64 - s) bits s bits

3DES
key 1

DES encryption

key 2

DES decryption

key 3
DES encryption

key 2

key 3

s bits Discard (64 - s)
bits

s bits Discard (64 - s)
bits
s-bit
plain
text

key 1

s-bit
cipher
text
s-bit cipher text

s-bit plain text

CTR Mode
In CTR mode, different data is input to the CIPHER module by using the AES algorithm to
ensure the security of data processing. Such data can be the count value CTRn. Therefore,
CTRn also ensures the security of the CTR mode.
CTRn is obtained in accumulative mode.

Figure 3-22 shows the CTR mode of the AES algorithm.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-69

Hi3515
Data Sheet

3 System

Figure 3-22 CTR mode of the AES algorithm

CTR1

AES
encryption

CTR2

key

Input plain
text P1

AES
encryption

CTRn

key

Input plain
text P2

AES
encryption
Input plain
text Pn

Output cipher
text C2

Output cipher
text C1

key

Output cipher
text Cn
CTR encryption

CTR1

AES
encryption
Input cipher
text C1

CTR2

key

AES
encryption

Input cipher
text C2
Output plain
text P1

CTRn

key

AES
encryption

key

Input cipher
text Cn
Output plain
text P2

Output plain
text Pn
CTR decryption

3.6.4 Operating Mode
Single-Block Process of the CIPHER Module
The single-block operation of the CIPHER module is performed as follows:
Step 1 Read the status register CIPHER_BUSY. If it is 0, go to Step 2; otherwise, continue to read
this register.
Step 2 Configure CIPHER_CTRL.
Step 3 Configure the registers CIPHER_DIN, CIPHER_IVIN, and CIPHER_KEY.
Step 4 Set CIPHER_ST to 0x1.
Step 5 Wait until the operation is complete in either of the following mode:
z

In interrupt mode, if an interrupt occurs, go to Step 6; otherwise, wait until an interrupt
occurs.

z

In query mode, read CIPHER_BUSY. If it is 0, go to Step 6; otherwise, continue to read
this register.

Step 6 Read the result registers CIPHER_DOUT and CIPHER_IVOUT.
----End

3-70

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

The single-block operation is available in all the operating modes.
If you want to encrypt and decrypt a segment of data through the single-block operation, the
preceding process must be performed repeatedly. To improve efficiency, note the following
points:
z

For the same segment of data, if the key is the same, CIPHER_KEY needs to be
configured for the first block only.

z

In CBC, CFB, or OFB mode, after a block operation, the obtained value of
CIPHER_IVOUT is used as the value of CIPHER_IVIN in the next operation by default.
Therefore, the next operation can be started in either of the following ways:

z

−

Set CIPHER_CTRL[ivin_sel] to 0 and then configure CIPHER_DIN.

−

Read the value of CIPHER_IVOUT in the current operation, set CIPHER_IVIN to
this value, set CIPHER_CTRL[ivin_sel] to 1, and then configure CIPHER_CTRL.

In CBC, CFB, or OFB mode, if the value of CIPHER_IVIN in the current operation is
irrelevant to the value of CIPHER_IVOUT in the previous block, you must reconfigure
CIPHER_IVIN and set CIPHER_CTRL[ivin_sel] to 1.

Multi-Block Process of the CIPHER Module
The multi-block process of the CIPHER module is performed as follows:
Step 1 Read CIPHER_BUSY. If it is 0, go to Step 2; otherwise, continue to read this register.
Step 2 Configure CIPHER_CTRL.
Step 3 Configure the data storage registers SRC_START_ADDR and DEST_START_ADDR and
the data amount register MEM_LENGTH.
Step 4 Configure CIPHER_IVIN and CIPHER_KEY.
Step 5 Set CIPHER_ST to 0x1.
Step 6 Wait until the operation is complete in either of the following modes:
z

In interrupt mode, if an interrupt occurs, go to Step 7; otherwise, wait until an interrupt
occur.

z

In query mode, read CIPHER_BUSY. If it is 0, go to Step 7; otherwise, continue to read
this register.

Step 7 Read CIPHER_IVOUT.
----End
The multi-block operation is available in all the operating mode except the AES CTR mode.
The multi-block operation is useful for encrypting and decrypting a large amount of data.
Through this operation, the CPU reduces the times of reading and writing the registers when
starting and ending each block operation. After the CPU configures the required control
registers, data registers, and then CIPHER_ST, the hardware performs all the operations
automatically until the data operations are complete. In this way, CPU resources are released.
For the multi-block operation, the data stored in one continuous address can be encrypted and
decrypted at a time. The addresses for storing the input data and result data can be different. If
you want to encrypt or decrypt the data stored in multiple addresses by using a same key, note
the following requirements:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-71

Hi3515
Data Sheet

3 System
z

CIPHER_KEY need not to be configured.

z

The information such as the source address, target address, and data length need to be
reconfigured.

z

After a block operation in CBC, CFB, or OFB mode, the obtained value of
CIPHER_IVOUT is used as the value of CIPHER_IVIN in the next operation by default.
Therefore, the next operation can be started in either of the following ways:
−

Set CIPHER_CTRL[ivin_sel] to 0 and then configure CIPHER_DIN.

−

Read the value of CIPHER_IVOUT in the current operation, set CIPHER_IVIN to
this value, set CIPHER_CTRL[ivin_sel] to 1, and then configure CIPHER_DIN.

Clock Gating
When no encryption is required and CIPHER_BUSY[cipher_busy] is set to 0b0, the clock of
the CIPHER module can be disabled by configuring the registers of the system controller,
thus reducing power consumption.
z

Write 1 to SC_PERDIS[cipherclkdis] to disable the clock of the CIPHER module.

z

Write 1 to SC_PEREN[cipherclken] to enable the clock of the CIPHER module.

Soft Reset
When an error occurs in a module, the error can be rectified through soft reset by configuring
the registers of the system controller.
z

Write 1 to SC_PERCTRL8[cipher_srst] to soft-reset the CIPHER module.

z

Write 0 to SC_PERCTRL8[cipher_srst] to clear the soft reset on the CIPHER module,
and then perform normal operations.

3.6.5 Register Summary
Table 3-24 lists the CIPHER registers.
Table 3-24 Summary of the CIPHER registers (base address: 0x100C_0000)
Offset Address

Reigster

Description

Page

0x000, 0x004,
0x008, 0x00C

CIPHER_DIN

128-bit block input register

3-73

0x010, 0x014,
0x018, 0x01C

CIPHER_IVIN

Vector block input register. It need not
to be configured in ECB mode.

3-74

0x020, 0x024,
0x028, 0x02C

CIPHER_KEY

Key input register

3-75

0x040, 0x044,
0x048, 0x04C

CIPHER_DOUT

128-bit block output register

3-76

0x050, 0x054,
0x058, 0x05C

CIPHER_IVOUT

Operation complete vector output
register. It is ignored in ECB and CTR
modes.

3-77

0x030, 0x034,
0x038, 0x03C

3-72

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Offset Address

Reigster

Description

Page

0x060

CIPHER_CTRL

Control register

3-78

0x064

INT_CIPHER

Masked interrupt register

3-81

0x068

CIPHER_BUSY

Operation status indicator register

3-82

0x06C

CIPHER_ST

Operation start/end control signal
register

3-82

0x070

SRC_START_A
DDR

Start address register of the off-chip
memory for storing the block data to be
processed

3-83

0x074

MEM_LENGTH

Length register of the block data to be
processed (measured by 32 bits)

3-83

0x078

DEST_START_
ADDR

Start address register of the off-chip
memory for storing operation results by
blocks

3-85

0x07C

INT_MASK

Interrupt mask register

3-85

0x080

INT_CIPHER_S
TATUS

Interrupt status register

3-86

3.6.6 Register Description
CIPHER_DIN
CIPHER_DIN is the 128-bit block input register of the CIPHER module.
Note the following points when configuring this register:
If the single-block operation is selected (CIPHER_CTRL[cipher_mode] = 0b0),
CIPHER_DIN must be configured.
z

z

Issue 02 (2010-04-20)

Assume that the AES algorithm (CIPHER_CTRL[alg_sel] = 0b10) is selected.
−

If the 1-CFB operating mode is selected (CIPHER_CTRL bit[5:1] = 0b10010), the
least significant bit (LSB) is valid, that is, CIPHER_DIN bit[0] is valid.

−

If the 8-CFB operating mode is selected (CIPHER_CTRL bit[5:1] = 0b01010), eight
lower bits are valid, that is, CIPHER_DIN bit[7:0] are valid.

−

If the 128-CFB operating mode is selected (CIPHER_CTRL bit[5:1] = 0b00010 or
0b11010), 128 bits are valid.

−

In other operating modes, 128 bits are valid.

Assume that the DES or the 3DES algorithm is selected (CIPHER_CTRL[alg_sel] =
0b00, 0b01, or 0b11).
−

If the 1-CFB or 1-OFB operating mode is selected (CIPHER_CTRL bit[5:1] =
0b10010 or 0b10011), the LSB is valid, that is, CIPHER_DIN bit[0] is valid.

−

If the 8-CFB or 8-OFB operating mode is selected (CIPHER_CTRL bit[5:1] =
0b01010 or 0b01011), eight lower bits are valid, that is, CIPHER_DIN bit[7:0] are
valid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-73

Hi3515
Data Sheet

3 System
−

For the 64-CFB or 64-OFB operating mode (CIPHER_CTRL bit[5:1] = 0b00010,
0b11010, 0b00011, or 0b11011), 64 lower bits are valid, that is, CIPHER_DIN
bit[63:0] is valid.

−

In other operating modes, 64 lower bits are valid, that is, CIPHER_DIN bit[63:0] are
valid.

If the multi-block operation is selected (CIPHER_CTRL[cipher_mode] = 0b1), CIPHER_DIN
need not to be configured.

Bit

Offset Address

Register Name

Total Reset Value

0x000–0x00C

CIPHER_DIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cipher_din

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
128-bit block input of the CIPHER module. Each address maps to
a 32-bit data segment.

[31:0]

RW

cipher_din

CIPHER_DIN[31:0]: 0x000 address
CIPHER_DIN[63:32]: 0x004 address
CIPHER_DIN[95:64]: 0x008 address
CIPHER_DIN[127:96]: 0x00C address

CIPHER_IVIN
CIPHER_IVIN is the vector block input register of the CIPHER module.
Note the following points when configuring this register:
z

z

Assume that the single-block operation (CIPHER_CTRL bit[cipher_mode] = 0b0) is
selected and the selected mode (CIPHER_CTRL[mode]=0b001, 0b010, 0b011, or 0b100)
is not ECB mode.
−

If you do not need to configure the input vector (CIPHER_CTRL[ivin_sel] = 0b0),
CIPHER_IVIN is not required to configure.

−

If you want to configure the input vector (CIPHER_CTRL[ivin_sel] = 0b1),
CIPHER_IVIN must be configured. If the AES algorithm is selected
(CIPHER_CTRL [alg_sel] = 0b10), CIPHER_IVIN bit[127:0] are valid. If the DES
or 3DES algorithm is selected (CIPHER_CTRL[alg_sel] = 0b00, 0b01, or 0b11),
64 lower bits are valid, that is, CIPHER_IVIN bit[63:0] are valid.

Assume that the multi-block operation is selected (CIPHER_CTRL bit[cipher_mode] =
0b1) and the selected mode is not ECB mode (CIPHER_CTRL[mode]=0b001, 0b010, or
0b011).
−

3-74

If you do not need to configure the input vector (CIPHER_CTRL[ivin_sel] = 0b0),
CIPHER_IVIN is not required to configure, because the input vector of the first
block operation is unrelated to the value of CIPHER_IVIN.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System
−

Bit

If you need to configure the input vector (CIPHER_CTRL[ivin_sel] = 0b1),
CIPHER_IVIN must be configured, because the input vector of the first block
operation is obtained from CIPHER_IVIN.

Offset Address

Register Name

Total Reset Value

0x010–0x01C

CIPHER_IVIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cipher_ivin

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
128-bit IV of the CIPHER module or the data input from the
counter. Each address maps to a 32-bit data segment.

[31:0]

RW

cipher_ivin

CIPHER_IVIN[31:0]: 0x010 address
CIPHER_IVIN[63:32]: 0x014 address
CIPHER_IVIN[95:64]: 0x018 address
CIPHER_IVIN[127:96]: 0x01C address

CIPHER_KEY
CIPHER_KEY is the key input register of the CIPHER module.
Note the following points when configuring this register:
z

Assume that the DES algorithm is selected (CIPHER_CTRL[alg_sel] = 0b00 or 0b11),
the 64 lower bits are valid, that is, CIPHER_KEY[63:0] are valid.

z

Assume that the 3DES algorithm is selected (CIPHER_CTRL[alg_sel] = 0b01).
If the three-key operation is selected (CIPHER_CTRL[key_length] = 0b00, 0b01, 0b10),
192 lower bits are valid.
−

CIPHER_KEY bit[63:0] indicates the first key.

−

CIPHER_KEY bit[127:64] indicates the second key.

−

CIPHER_KEY bit[191:128] indicates the third key.

If the two-key operation is selected (CIPHER_CTRL[key_length] = 0b11), 128 lower
bits are valid.

z

Issue 02 (2010-04-20)

−

CIPHER_KEY bit[63:0] indicates the first key.

−

CIPHER_KEY bit[127:64] indicates the second key.

Assume that the AES algorithm is selected (CIPHER_CTRL[alg_sel] = 0b10).
−

If the 128-bit key operation is selected (CIPHER_CTRL[key_length] = 0b00 or
0b11), 128 lower bits are valid, that is, CIPHER_KEY bit[127:0] are valid.

−

If the 192-bit key operation is selected (CIPHER_CTRL[key_length] = 0b01), 192
lower bits are valid, that is, CIPHER_KEY bit[191:0] are valid.

−

If the 256-bit key operation is selected (CIPHER_CTRL[key_length] = 0b10), 256
lower bits are valid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-75

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0x020–0x03C

CIPHER_KEY

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cipher_key

Reset 0

0

Bits

0

0

0

0

Access

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Key input of the CIPHER module. Each address maps to a 32-bit
data segment.
CIPHER_KEY[31:0]: 0x020 address
CIPHER_KEY[63:32]: 0x024 address

[31:0]

RW

cipher_key

CIPHER_KEY[95:64]: 0x028 address
CIPHER_KEY[127:96]: 0x02C address
CIPHER_KEY[159:128]: 0x030 address
CIPHER_KEY[191:160]: 0x034 address
CIPHER_KEY[223:192]: 0x038 address
CIPHER_KEY[255:224]: 0x03C address

CIPHER_DOUT
CIPHER_DOUT is the 128-bit block output register of the CIPHER module.
Note the following points when reading this register:
If the single-block operation is selected (CIPHER_CTRL[cipher_mode] = 0b0), the data read
from CIPHER_DOUT is the result of the single-block operation. The result of the AES
algorithm is different from that of the DES or 3DES algorithm.
z

z

3-76

Assume that the AES algorithm (CIPHER_CTRL[alg_sel] = 0b10) is selected.
−

If the 1-CFB mode is selected (CIPHER_CTRL bit[5:1] = 0b10010), the LSB is valid,
that is, CIPHER_DOUT bit[0] is valid.

−

If the 8-CFB mode is selected (CIPHER_CTRL bit[5:1] = 0b01010), eight lower bits
are valid, that is, CIPHER_DOUT bit[7:0] are valid.

−

If the 128-CFB operating mode is selected (CIPHER_CTRL bit[5:1] = 0b00010 or
0b11010), 128 bits are valid.

−

In other operating modes, 128 bits are valid.

Assume that the DES or the 3DES algorithm is selected (CIPHER_CTRL[alg_sel] =
0b00, 0b01, or 0b11).
−

If the 1-CFB or 1-OFB mode is selected (CIPHER_CTRL bit[5:1] = 0b10010 or
0b10011), the LSB is valid, that is, CIPHER_DOUT bit[0] is valid.

−

If the 8-CFB or 8-OFB operating mode is selected (CIPHER_CTRL bit[5:1] =
0b01010 or 0b01011), eight lower bits are valid, that is, CIPHER_DOUT bit[7:0] are
valid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System
−

If the 64-CFB or 64-OFB operating mode is selected (CIPHER_CTRL bit[5:1] =
0b00010, 0b00011, 0b11010, or 0b11011), 64 lower bits are valid, that is,
CIPHER_DOUT bit[63:0] are valid.

−

In other operating modes, 64 lower bits are valid, that is, CIPHER_DOUT bit[63:0]
are valid.

If the multi-block operation is selected (CIPHER_CTRL[ivin_sel] = 0b1), the data read from
CIPHER_DOUT is the result of the last block operation.

Bit

Offset Address

Register Name

Total Reset Value

0x040–0x04C

CIPHER_DOUT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cipher_dout

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
128-bit block output of the CIPHER module. Each address maps
to a 32-bit data segment.

[31:0]

RO

cipher_dout

CIPHER_DOUT[31:0]: 0x040 address
CIPHER_DOUT[63:32]: 0x044 address
CIPHER_DOUT[95:64]: 0x048 address
CIPHER_DOUT[127:96]: 0x04C address

CIPHER_IVOUT
CIPHER_IVOUT is the operation complete vector output register of the CIPHER module.
Note the following points when reading this register:
z

If the ECB or CTR operating mode is selected (CIPHER_CTRL[mode] = 0b000, 0b100,
0b101, 0b110, or 0b111), CIPHER_IVOUT can be ignored.

z

Assume that the single-block operation is selected (CIPHER_CTRL[cipher_mode] =
0b0), the data of CIPHER_IVOUT is the vector output of the block that can be regarded
as the vector input of the next block operation of the same data packet.

z

Issue 02 (2010-04-20)

−

If the AES algorithm is selected (CIPHER_CTRL[alg_sel] = 0b10), 128 bits are
valid.

−

If the DES or 3DES algorithm is selected (CIPHER_CTRL[cipher_mode] = 0b00,
0b01, or 0b11), 64 lower bits are valid, that is, CIPHER_IVOUT bit[63:0] are valid.

Assume that the multi-block operation is selected (CIPHER_CTRL[ivin_sel] = 0b1), the
data read from CIPHER_IVOUT is the vector output of the last block operation.
−

If the AES algorithm is selected (CIPHER_CTRL[cipher_mode] = 0b10), 128 bits
are valid.

−

If the DES or 3DES algorithm is selected (CIPHER_CTRL[cipher_mode] = 0b00,
0b01, or 0b11), 64 lower bits are valid, that is, CIPHER_IVOUT bit[63:0] are valid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-77

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0x050–0x05C

CIPHER_IVOUT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cipher_ivout

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Vector output after the operation of the CIPHER module is
complete. It can be ignored in ECB or CTR operating mode. Each
address maps to a 32-bit data segment.

[31:0]

RO

cipher_ivout

CIPHER_IVOUT[31:0]: 0x050 address
CIPHER_IVOUT[63:32]: 0x054 address
CIPHER_IVOUT[95:64]: 0x058 address
CIPHER_IVOUT[127:96]: 0x05C address

CIPHER_CTRL
CIPHER_CTRL is the control register of the CIPHER module.
Note the following points when configuring this register:
z

Configure this register before configuring others registers of the CIPHER module.

z

The multi-block operation is not supported in the CTR operating mode of the AES
algorithm. That is, when the CTR mode of the AES algorithm is selected,
CIPHER_CTRL[cipher_mode] cannot be set to 1.

z

In other operating modes except the CFB mode of the AES algorithm,
CIPHER_CTRL[width] cannot be set to 01 or 10.

z

In other operating modes except the CFB and OFB modes of the DES or 3DES
algorithm, CIPHER_CTRL[width] cannot be set to 01 or 10.

z

CIPHER_CTRL[byte_seq_reg] and CIPHER_CTRL[byte_seq_ram] are used to adjust
the byte sequences of the data in the configuration register and result register. If the data
(such as the data processed through the DES algorithm) is transmitted to the CIPHER
module as character streams, the byte sequences must be adjusted.
For example, the text 7654321 maps to the number 0x3736_3534_3332_3120. After data
is received as characters, the data is stored in the memory in the following sequences:
−

The data stored in the 0x0 address is 0x3435_3637.

−

The data stored in the 0x4 address is 0x2031_3233.

Assume that the data is stored starting from the offset address of 0x0. In this case, both the
byte_seq_ram and byte_seq_reg bits must be set to 1.

3-78

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x060

CIPHER_CTRL

0x0000_0000

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:15]

RO

reserved

Reserved.

[14]

RW

byte_seq_ram

0

0

0

0

0

5

0

0

4

3

0

0

2

1

mode

0

6

width

0

7

key_length

0

8

alg_sel

ivin_sel

Reset 0

cipher_mode

reserved

dest_addr_set

Name

byte_seq_reg

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

Decrypt

Offset Address

byte_seq_ram

Bit

3 System

0

0

Controls whether to adjust the byte sequences of the data stored in
the memory address space.
0: do not adjust
1: adjust
Controls whether to adjust the byte sequences of the data
configured by input data registers or read from output data
registers.
0: do not adjust

[13]

RW

byte_seq_reg

1: adjust
The input data registers include CIPHER_KEY, CIPHER_IVIN,
and CIPHER_DIN.
The output data registers include CIPHER_IVOUT and
CIPHER_DOUT.
Controls the starting addresses of the off-chip memory for storing
the block data to be processed and the block data of operation
results.

[12]

RW

dest_addr_set

0: The start addresses for storing the block data to be processed
and the block data of operation results are the same, so
SRC_START_ADDR and DEST_START_ADDR need not to be
configured.
1: The start addresses for storing the block data to be processed
and the block data of operation results are different, so
SRC_START_ADDR and DEST_START_ADDR need to be
configured.
Cipher mode selection of the CIPHER module.

[11]

RW

cipher_mode

0: single-block operation
1: multi-block operation
Input selection of CIPHER_IVIN.

[10]

RW

ivin_sel

0: CIPHER_IVIN need not to be configured.
1: CIPHER_IVINmust be configured.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-79

Hi3515
Data Sheet

3 System

Algorithm selection.
00: DES algorithm
[9:8]

RW

alg_sel

01: 3DES algorithm
10: AES algorithm
11: DES algorithm
Key length selection.
For the AES algorithm:
00: 128-bit key
01: 192-bit key
10: 256-bit key

[7:6]

RW

key_length

11: 128-bit key
For the DES algorithm:
00: 3-key
01: 3-key
10: 3-key
11: 2-key
Bit width selection.
For the DES or 3DES algorithm:
00: 64 bits
01: 8 bits
10: 1 bits

[5:4]

RW

width

11: 64 bits
For the AES algorithm:
00: 128 bits
01: 8 bits
10: 1 bits
11: 128 bits

3-80

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Operating mode selection.
For the AES algorithm:
000: ECB mode
001: CBC mode
010: CFB mode
011: OFB mode
[3:1]

RW

100: CTR mode

mode

Others: ECB mode
For the DES algorithm:
000: ECB mode
001: CBC mode
010: CFB mode
011: OFB mode
Others: ECB mode
Encryption/decryption selection.

[0]

RW

decrypt

0: encryption
1: decryption

INT_CIPHER

Register Name

Total Reset Value

0x064

INT_CIPHER

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

[1]

RO

int_error

0

0

0

0

0

0

0

1

0
int_done

Bit

Offset Address

int_error

INT_CIPHER is the masked interrupt register. It is the interrupt register that is generated after
the interrupt status register INT_CIPHER_STATUS is masked by the interrupt mask register
INT_MASK.

0

0

Error interrupt status. An error occurs when the CIPHER module
accesses the bus or the bus is accessed in non-word mode.
0: No error occurs.
1: An error occurs.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-81

Hi3515
Data Sheet

3 System

CIPHER operation complete interrupt.
[0]

RO

int_done

0: The operation is not complete.
1: The operation is complete.

CIPHER_BUSY
CIPHER_BUSY is the operation status indicator register.
Register Name

Total Reset Value

0x068

CIPHER_BUSY

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
Cipher_busy

Bit

Offset Address

0

0

0

0

0

0

0

CIPHER operation status.
[0]

RO

cipher_busy

0: No CIPHER operation is performed.
1: A CIPHER operation is being performed.

CIPHER_ST
CIPHER_ST is the operation start/end control signal register of the CIPHER module.
Note the following points when configuring this register:

3-82

z

If 0x0000_0001 is written to CIPHER_ST, the CIPHER module starts an operation.

z

If 0x0000_0000 is written to CIPHER_ST, the CIPHER module stops running.

z

In addition, when the multi-block operation is selected ( CIPHER_CTRL bit[11] = 0b1),
the CIPHER module stops running after the read or write operation is complete if the bus
is being read or written. Otherwise, the module stops running immediately when the
hardware reads the value 0x0000_0000.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x06C

CIPHER_ST

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
cipher_st

Bit

3 System

0

0

0

0

0

0

0

Operation start/end control signal of the CIPHER module.
[0]

RW

cipher_st

0: An operation of the CIPHER module ends.
1: An operation of the CIPHER module starts.

SRC_START_ADDR
SRC_START_ADDR is the start address register of the off-chip memory for storing the block
data to be processed.
If the multi-block operation is selected (CIPHER_CTRL[cipher_mode] = 0b1),
SRC_START_ADDR must be configured before the CIPHER module is enabled.

Bit

Offset Address

Register Name

Total Reset Value

0x070

SRC_START_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

src_start_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

src_start_addr

Start address of the off-chip memory for storing the block data to
be processed.

MEM_LENGTH
MEM_LENGTH is the length register of the block data to be processed (measured by 32 bits).
Note the following points when configuring this register:
z

If the multi-block operation is selected (CIPHER_CTRL[cipher_mode] = 0b1),
MEM_LENGTH must be configured before the CIPHER module is enabled.

z

Assume that the AES algorithm is selected.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-83

Hi3515
Data Sheet

3 System

z

3-84

−

If the ECB, CBC, OFB, or CTR operating mode is selected (CIPHER_CTRL[mode]
= 0b000, 0b001, 0b011, 0b100, 0b101, 0b110, or 0b111), the value of mem_length
must be an integer multiple of 4.

−

If the 128-CFB operating mode is selected (CIPHER_CTRL[mode] = 0b010 and
CIPHER_CTRL [width] = 0b00 or 0b11), the value of mem_length must be an
integer multiple of 4.

−

If the 8-CFB operating mode is selected (CIPHER_CTRL[mode] = 0b010 and
CIPHER_CTRL[width] = 0b01), the value of mem_length is not restricted. The data
must be stuffed to upper bits. The valid data is valid starting from lower bits. For
example, if mem_length is set to 0x0000_0001, it indicates that the data of only one
address is valid and the data is represented by data[31:0]. If only one byte of the
actual data is valid, that is, data[7:0] are valid, other data is stuffed data and only
eight lower bits are valid. If only two bytes are valid, that is, data[15:0] are valid,
other data is stuffed data and only 16 lower bits are valid. The rest can be deduced by
analogy.

−

If the 1-CFB operating mode is selected (CIPHER_CTRL[mode] = 0b010 and
CIPHER_CTRL[width] = 0b10), the value of mem_length is not restricted. The data,
however, must be stuffed to upper bits. The valid data is valid starting from lower bits.
For example, if mem_length is set to 0x0000_0001, it indicates that the data of only
one address is valid and the data is represented by data[31:0]. If only one bit of the
actual data is valid, that is, data[0] is valid, other data is stuffed data and only the
LSB is valid. If only two bits are valid, that is, data[1:0] are valid, other data is
stuffed data and only two lower bits are valid. The rest can be deduced by analogy.

Assume that the DES or 3DES algorithm is selected.
−

If the ECB or CBC operating mode is selected (CIPHER_CTRL[mode] = 0b000,
0b001, 0b100, 0b101, 0b110, or 0b111), the value of mem_length must be an even.

−

If the 64-CFB or 64-OFB operating mode is selected (CIPHER_CTRL[mode] =
0b010 or 0b011 and CIPHER_CTRL[width] = 0b00 or 0b11), the value of
mem_length must be an even.

−

If the 8-CFB or 8-OFB operating mode is selected (CIPHER_CTRL[mode] = 0b010
or 0b011 and CIPHER_CTRL[width] = 0b01), the value of mem_length is not
restricted. The data, however, must be stuffed to upper bits. The valid data is valid
starting from lower bits. For example, if mem_length is set to 0x0000_0001, it
indicates that the data of only one address is valid and the data is represented by
data[31:0]. If only one byte of the actual data is valid, that is, data[7:0] are valid,
other data is stuffed data and only eight lower bits are valid. If only two bytes are
valid, that is, data[15:0] are valid, other data is stuffed data and only 16 lower bits are
valid. The rest can be deduced by analogy.

−

If the 1-CFB or 8-OFB operating mode is selected (CIPHER_CTRL[mode] = 0b010
or 0b011 and CIPHER_CTRL[width] = 0b10), the value of mem_length is not
restricted. The data, however, must be stuffed to upper bits. The valid data is valid
starting from lower bits. For example, if mem_length is set to 0x0000_0001, it
indicates that the data of only one address is valid and the data is represented by
data[31:0]. If only one bit of the actual data is valid, that is, data[0] is valid, other
data is stuffed data and only the LSB is valid. If only two bits are valid, that is,
data[1:0] are valid, other data is stuffed data and only two lower bits are valid. The
rest can be deduced by analogy.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset Address

Register Name

Total Reset Value

0x074

MEM_LENGTH

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

mem_length

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

mem_length

Length of the block data to be processed (measured by 32 bits).

DEST_START_ADDR
DEST_START_ADDR is the start address register of the off-chip memory for storing
operation results by blocks.
Note the following points when configuring this register:

Bit

z

If the start addresses for storing the block data to be processed and the block data of
operation results are the same, that is CIPHER_CTRL[dest_addr_set] = 0b0,
DEST_START_ADDR need not to be configured.

z

If the start addresses for storing the block data to be processed and the block data of
operation results are different (CIPHER_CTRL[dest_addr_set] = 0b1),
DEST_START_ADDR must be configured.

Offset Address

Register Name

Total Reset Value

0x078

DEST_START_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dest_start_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0 0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

dest_start_addr

Start address of the off-chip memory for storing the operation
results by blocks.

INT_MASK
INT_MASK is the interrupt mask register. It is used to control whether to mask the interrupt
status register, thus determining whether to generate interrupts. When different values are
written to INT_MASK, the following cases occur:
z

Issue 02 (2010-04-20)

After 0x0000_0003 is written to INT_MASK, the CIPHER module masks the status of
INT_CIPHER_STATUS. That is, no interrupt is generated (INT_CIPHER bit[1:0] =
0b00).

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-85

Hi3515
Data Sheet

3 System

z

After 0x0000_0002 is written to INT_CIPHER_STATUS, the CIPHER module masks
the status of the int_error_status bit of INT_CIPHER_STATUS, so the status does not
trigger any interrupt. That is, INT_CIPHER[int_error] is set to 0b0.

Offset Address

Register Name

Total Reset Value

0x07C

INT_MASK

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0
int_done_mask

After 0x0000_0001 is written to INT_MASK, the CIPHER module masks the status of
the int_done_status bit of INT_CIPHER_STATUS, so the status does not trigger any
interrupt. That is, INT_CIPHER[int_done] is set to 0b0.

int_error_mask

Bit

z

0

0

Mask control of int_error.
[1]

RW

int_error_mask

0: An interrupt is generated.
1: No interrupt is generated.
Mask control of int_done.

[0]

RW

int_done_mask

0: An interrupt is generated.
1: No interrupt is generated.

INT_CIPHER_STATUS
INT_CIPHER_STATUS is the interrupt status register. Writing 1 clears this register. When
different values are written to INT_CIPHER_STATUS, the following cases occur:

3-86

z

After 0x0000_0003 is written to INT_CIPHER_STATUS, the CIPHER module clears
the error interrupt and operation complete interrupt.

z

After 0x0000_0001 is written to INT_CIPHER_STATUS, the CIPHER module clears
the error interrupt.

z

After 0x0000_0002 is written to INT_CIPHER_STATUS, the CIPHER module clears
the operation complete interrupt.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x080

INT_CIPHER_STATUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

int_error_status

Offset Address

int_done_status

Bit

3 System

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

int_error_status

Error interrupt status. An error occurs when the advanced highperformance bus (AHB) is accessed through the master interface
of the CIPHER module or the slave interface is accessed in nonword mode.

[1]

WC

0: No error occurs.
1: An error occurs.
CIPHER operation complete interrupt status.
[0]

WC

int_done_status

0: The operation is not complete.
1: The operation is complete.

3.7 Timer
3.7.1 Overview
The timer module implements the timing and counting functions. It not only serves as the
system clock of the operating system, but also can be used by applications for timing and
counting. The timer module has two dual-timer modules: dual-timer0 and dual-timer1.
Besides the different base addresses, the two dual-timer modules provide different functions
in the system applications. The details about the four dual-timer modules are as follows:
z

Dual-timer0 consists of timer0 and timer1 that share a base address and an interrupt
signal.

z

Dual-timer1 consists of timer2 and timer3 that share a base address and an interrupt
signal.

Each dual-timer module consists of two timers with the same functions.

3.7.2 Features
Each dual-timer module has the following features:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-87

Hi3515
Data Sheet

3 System
z

Provides two 16-bit or 32-bit down counters. Each counter has a programmable 8-bit
prescaler.

z

Provides a configurable count clock, that is, the clock can serve as the clock of the
advanced peripheral bus (APB) or 3 MHz crystal oscillator clock

z

Supports three count modes: free-running mode, periodic mode, and one-shot mode.

z

Loads the initial value through either of the following registers: TIMERx_LOAD and
TIMERx_BGLOAD

z

Reads the current count value at any time

z

Generates an interrupt when the count value is decreased to 0

3.7.3 Function Description
Typical Application
The timer module of the Hi3515 is designed for software. The two dual-timer modules of the
Hi3515 provide different count clock configurations based on applications.

Function Principle
The timer is a 32-bit or 16-bit configurable down counter. The counter value is decremented
by 1 on each rising edge of the count clock. When the count value reaches 0, the timer
generates an interrupt.
The timer supports three count modes:
z

Free-running mode
The timer counts continuously. When the count value reaches 0, the timer wraps its value
around to the maximum value automatically and then continues to count. When the count
length is 32 bits, the maximum value is 0xFFFF_FFFF. When the count length is 16 bits,
the maximum value is 0xFFFF. In free-running mode, the count value is decremented
immediately from the loaded value. When the value reaches 0, the value is wrapped
around to the maximum value.

z

Periodic mode
The timer counts continuously. When the count value reaches 0, the timer loads an initial
value from TIMERx_BGLOAD again and then continues to count.

z

One-shot mode
The initial value is loaded to the timer. When the count value of the timer reaches 0, the
timer stops counting. The timer starts to count again only when a new value is loaded
and the timer is enabled.

Each timer has a prescaler that divides the frequency of the working clock of each timer by 1,
16, or 256. In this way, flexible frequencies of the count clock are provided. An initial value is
loaded to the timer as follows:

3-88

z

An initial value can be loaded by writing TIMERx_LOAD. When the timer works, if a
value is written to TIMERx_LOAD, the timer recounts starting from this value
immediately. This method is applicable to all count modes.

z

The count cycle in periodic mode can be set by writing TIMERx_BGLOAD. The current
count value of the timer is not affected immediately when TIMERx_BGLOAD is written.
Instead, the timer continues to count until the count value reaches 0. Then the timer loads
the new value of TIMERx_BGLOAD and starts to count.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

3.7.4 Operating Mode
Initialization
The timer must be initialized when the system is initialized. To initialize timerX (X ranges
from 0 to 3), do as follows:
Step 1 Write to TIMERx_LOAD to load an initial value to the timer.
Step 2 When the timer is required to work in periodic mode and the count cycle is different from the
initial value loaded to the timer, write to TIMERx_BGLOAD to set the count cycle of the
timer.
Step 3 Configure the SC_CTRL register of the system controller to set the reference clock of the
clock enable signal of the timer.
Step 4 Write to TIMERx_CONTROL to set the count mode, counter length, prescaling factor, and
interrupt mask of the timer, and then enable the timer to count.
----End

Interrupt Processing
The timer is used to generate interrupts periodically. Therefore, interrupt processing is a
process of activating and waiting the timing interrupt. To process an interrupt, do as follows:
Step 1 Configure TIMERx_INTCLR to clear the interrupt of the timer.
Step 2 Activate the processes of waiting for the interrupt and execute the process.
Step 3 When all the processes of waiting for the interrupt are complete or the wait interrupt is in
hibernate state, resume the interrupt and continue to execute the interrupted program.
----End

Clock Selection
Each timer has two optional count clocks. The following sections describe how to select a
clock by taking timer0 as an example.
To select the APB clock as the count clock, do as follows:
Step 1 Set SC_CTRL[timeren0ov] to 1.
Step 2 Initialize the timer and start to count.
----End
To select the 3 MHz crystal oscillator clock as the count clock, do as follows:
Step 1 Set SC_CTRL[timeren0sel] to 0.
Step 2 Initialize the timer and start to count.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-89

Hi3515
Data Sheet

3 System

3.7.5 Register Summary
The timer module consists of four timers and each timer involves a group of registers. The
four groups of registers have the same features except that their base addresses and offset
addresses are different. The details are as follows:
z

TIMER0_XXXX and TIMER2_XXXX have the same base address rather than offset
address.

z

TIMER0_XXXX and TIMER1_XXXX have the same base address (0x2000_0000)
rather than offset address; TIMER2_XXXX and TIMER3_XXXX have the same base
address (0x2001_0000) rather than offset address.

Therefore, section 3.7.6 "Register Description" describes the registers by taking
TIMER0_XXXX as an example.
Table 3-25 Summary of the timer registers (base addresses: 0x2000_0000 and 0x2001_0000)
Offset
Address of
Timer0/2

Offset
Address of
Timer1/3

Register

Description

Page

0x000

0x020

TIMERx_LOAD

Initial count value
register

3-90

0x004

0x024

TIMERx_VALUE

Current count
value register

3-91

0x008

0x028

TIMERx_CONTROL

Control register

3-92

0x00C

0x02C

TIMERx_INTCLR

Interrupt clear
register

3-93

0x010

0x030

TIMERx_RIS

Raw interrupt
status register

3-94

0x014

0x034

TIMERx_MIS

Masked interrupt
status register

3-94

0x018

0x038

TIMERx_BGLOAD

Initial count value
register in
periodic mode

3-95

3.7.6 Register Description
In TIMERx, the value of x ranges from 0 to 3.

TIMERx_LOAD
TIMERx_LOAD is the initial count value register. It is used to set the initial count value of
each timer. Each timer (timer0–timer3) has one such register.
When a timer is in periodic mode and the count value reaches 0, the value of TIMERx_LOAD
is reloaded to the timer. When a value is written to TIMERx_LOAD, the value of the current

3-90

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

counter is changed to the input value on the next rising edge of TIMCLK enabled by
TIMCLKENx.
z

The minimum valid value written to TIMERx_LOAD is 1.

z

When the value 0 is written to TIMERx_LOAD, the dual-timer module generates an interrupt
immediately.

When a value is written to TIMERx_BGLOAD, the value of TIMERx_LOAD is overwritten,
but the current count value of the timer remains unchanged.
If values are written to TIMERx_BGLOAD and TIMERx_LOAD before the rising edge of
TIMCLK enabled by TIMCLKENx reaches, the value of the counter on the next rising edge
is changed to the input value of TIMERx_LOAD. After that, each time when the counter
reaches 0, the last values written to TIMERx_BGLOAD and TIMERx_LOAD are reloaded.
After TIMERx_BGLOAD and TIMERx_LOAD are written twice respectively, the return
value after reading TIMERx_LOAD is the input value of TIMERx_BGLOAD.

Bit

Offset Address

Register Name

Total Reset Value

0x000

TIMER0_LOAD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

timer0_load

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

timer0_load

Initial count value of timer0

0

0

0

TIMERx_VALUE
TIMERx_VALUE is the current count value register. It shows the current value of the counter
that is decremented. Each timer (timer0–timer3) has one such register.
After a value is written to TIMERx_LOAD, TIMERx_VALUE immediately shows the newly
loaded value of the counter in the PCLK domain without waiting for the clock edge of
TIMCLK enabled by TIMCLKENx.
When a timer is in 16-bit mode, the 16 upper bits of the 32-bit TIMERx_VALUE are not set to 0
automatically. If the timer is switched from 32-bit mode to 16-bit mode and no data is written to
TIMERx_LOAD, the upper 16 bits of TIMERx_VALUE may be non-zero.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-91

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0x004

TIMER0_VALUE

0xFFFF_FFFF

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

1

1

1

1

1

1

1

1

timer0_value

Reset 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Bits

Access

Name

Description

[31:0]

RO

timer0_value

Current count value of timer0 that is decremented.

TIMERx_CONTROL
TIMERx_CONTROL is the control register. Each timer (timer0–timer3) has one such register.

0x0000_0000

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

7

6

5

4

0

0

0

0

3

2
timerpre

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

1

0
oneshot

TIMER0_CONTROL

reserved

0x008

intenable

Total Reset Value

timermode

Register Name

timeren

Bit

Offset Address

timersize

When the periodic mode is selected, TIMERx_CONTROL[timermode] must be set to 1 and
TIMERx_CONTROL[oneshot] must be set to 0.

0

0

Timer enable.
[7]

RW

timeren

0: disabled
1: enabled
Timer count mode.

[6]

RW

timermode

0: free-running mode
1: periodic mode
Raw interrupt mask.

[5]

RW

intenable

0: masked
1: not masked

[4]

3-92

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Prescaling factor configuration.
00: no prescaling. That is, the clock frequency of the timer is
divided by 1
[3:2]

RW

01: 4-level prescaling. That is, the clock frequency of the timer is
divided by 16

timerpre

10: 8-level prescaling. That is, the clock frequency of the timer is
divided by 256
11: undefined. If the bits are set to 11, 8-level prescaling is
considered. That is, the clock frequency of the timer is divided by
256.
Counter select.

[1]

RW

timersize

0: 16-bit counter
1: 32-bit counter
Count mode select.

[0]

RW

0: periodic mode or free-running mode

oneshot

1: one-shot mode

TIMERx_INTCLR
TIMERx_INTCLR is the interrupt clear register. The interrupt status of a counter is cleared
after any operation is performed on this register. Each timer (timer0–timer3) has one such
register.

This register is a write-only register. The timer clears interrupts when any value is written to
this register. In addition, no value is recorded in this register and no default reset value is
defined.

Bit

Offset Address

Register Name

Total Reset Value

0x00C

TIMER0_INTCLR

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

8

7

6

5

4

3

2

1

0

?

?

?

?

?

?

?

?

?

timer0_intclr
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:0]

WO

timer0_intclr

Writing this register clears the output interrupt of timer0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-93

Hi3515
Data Sheet

3 System

TIMERx_RIS
TIMERx_RIS is the raw interrupt status register. Each timer (timer0–timer3) has one such
register.
Register Name

Total Reset Value

0x010

TIMER0_RIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
timer0ris

Bit

Offset Address

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved. Writing this register has no effect and reading this
register returns 0.

0

Raw interrupt status of timer0.
[0]

RO

timer0ris

0: No interrupt is generated.
1: An interrupt is generated.

TIMERx_MIS
TIMERx_MIS is the masked interrupt status register. Each timer (timer0–timer3) has one
such register.
Register Name

Total Reset Value

0x014

TIMER0_MIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
timer0mis

Bit

Offset Address

0

0

0

0

0

0

0

Masked interrupt status of timer0.
[0]

RO

timer0mis

0: The interrupt is invalid.
1: The interrupt is valid.

3-94

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

TIMERx_BGLOAD
TIMERx_BGLOAD is the initial count value register in periodic mode. Each timer (timer0–
timer3) has one such register.
The TIMERx_BGLOAD register contains the initial count value of the timer. This register is
used to reload an initial count value when the count value of the timer reaches 0 in periodic
mode.
In addition, this register provides another method of accessing TIMERx_LOAD. The
difference is that after a value is written to TIMERx_BGLOAD, the timer does not count
starting from the input value immediately.

Bit

Offset Address

Register Name

Total Reset Value

0x018

TIMER0_BGLOAD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

timer0bgload

Reset 0

0

Bits

0

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Initial count value of timer0.

[31:0]

RW

timer0bgload

Note: This register differs from TIMERx_LOAD. For details, see
the descriptions of TIMERx_LOAD.

3.8 Watchdog
3.8.1 Overview
Within a period of time after an exception occurs in the system, the watchdog sends a reset
signal to reset the entire system.

3.8.2 Features
The watchdog has the following features:
z

Provides a 32-bit internal down counter. The count clock source is configurable.

z

Supports the configurable timeout interval, namely, initial count value

z

Locks registers to avoid any modification to them

z

Supports generation of the timeout interrupt

z

Supports generation of the reset signal

z

Supports the debug mode

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-95

Hi3515
Data Sheet

3 System

3.8.3 Signal Description
Table 3-26 Watchdog interface signal
Signal

Direction

Description

Pin

WDG_RST

O

Reset signal of the watchdog output
interface, active low

WDGRST

The WDGRST pin is open-drain (OD) output and it must be connected to an external pull-up
resistor.

3.8.4 Function Description
Application Block Diagram
Figure 3-23 shows the application block diagram of the watchdog.
Figure 3-23 Application block diagram of the watchdog
System bus

3 MHz clock
APB clock
SC_CTRL[wdogenov]

0
1

clk

WDG_RST
Watchdog

Function Principle
The watchdog works based on a 32-bit down counter. The initial count value is loaded from
WDG_LOAD. When the watchdog clock is enabled, the count value is decremented by 1 on
the rising edge of each count clock. When the count value reaches 0, the watchdog generates
an interrupt. On the next rising edge of the count clock, the counter reloads the initial value
from WDG_LOAD and continues to count in decremental mode.
If the count value of the counter reaches 0 for the second time and the CPU does not clear the
watchdog interrupt, the watchdog sends the reset signal WDG_RST and the counter stops
counting.

3-96

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

By configuring WDG_CONTROL, you can enable or disable the watchdog to determine
whether to generate an interrupt and a reset signal as required.
z

When the interrupt is disabled, the counter stops counting.

z

When the interrupt is enabled again, the watchdog counts starting from the preset value
of WDG_LOAD instead of the last count value. Before an interrupt is generated, the
initial value can be reloaded.

The count clock of the watchdog can be a 3 MHz crystal oscillator clock or an APB clock, so
different count time ranges are available.
By configuring WDG_LOCK, you can disable the operation of writing to the internal
registers of the watchdog.
z

Writing 0x1ACC_E551 to WDG_LOCK enables the write access to all the registers of
the watchdog.

z

Writing any other values to WDG_LOCK disables the write access to all the registers of
the watchdog except WDG_LOCK.

This feature avoids improper modifications to the watchdog registers by software. Therefore,
the watchdog operation is not terminated by software by mistake when an exception occurs.
In debug mode, the watchdog is disabled automatically to avoid the interference to the normal
debugging.

The watchdog must be disabled before the system runs in sleep mode. For details, see the
description of "Disabling the Watchdog" in section 3.8.5 "Operating Mode."
When either of the two processors of the Hi3515 works in debug mode, the watchdog is
disabled automatically. The processor exits from the debug mode and the counter continues to
count.

3.8.5 Operating Mode
Configuring the Frequency of the Count Clock
The system supports two types of watchdog count clocks: 3 MHz crystal oscillator clock and
APB clock. The two clocks are selected by configuring SC_CTRL[wdogenov].
The count time of the watchdog is calculated as follows:

TWDG = Value WDG_LOAD × (1 f clk )
TWDG

indicates the count time of the watchdog,

value of the watchdog, and

f clk

Value WDG_LOAD

indicates the initial count

indicates the frequency of the watchdog count clock.

The ranges of the count time of the watchdog in different clocks are as follows:
z

When the 3 MHz crystal oscillator clock is selected, the count time ranges from 0s to
1432s.

z

When the 100 MHz APB clock is selected, the count time ranges from 0s to 43s.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-97

Hi3515
Data Sheet

3 System

Initializing the Watchdog
The watchdog counter stops counting after the system is reset during power-on. When the
system is initialized, the watchdog must be initialized and enabled. To initialize the watchdog,
do as follows:
Step 1 Write to WDG_LOAD to set the initial count value.
Step 2 Write to WDG_CONTROL to enable the interrupt mask and the watchdog counter.
Step 3 Write to WDG_LOCK to lock the watchdog. Therefore, the settings of the watchdog are not
modified by software.
----End

Processing an Interrupt
After an interrupt is received from the watchdog, the interrupt should be cleared in time and
the initial count value should be reloaded to the watchdog to restart the count. To process a
watchdog interrupt, do as follows:
Step 1 Write 0x1ACC_E551 to WDG_LOCK to unlock the watchdog.
Step 2 Write to WDG_INTCLR to clear the watchdog interrupt and load the initial count value to the
watchdog to restart the count.
Step 3 Write any value other than 0x1ACC_E551 to WDG_LOCK to lock the watchdog.
----End

Disabling the Watchdog
The watchdog must be disabled before the system runs in sleep mode. When 0 is written to
WDG_CONTROL[inten], the watchdog is disabled. When 1 is written to
WDG_CONTROL[inten], the watchdog is enabled.

3.8.6 Register Summary
Table 3-27 lists the watchdog registers.
Table 3-27 Summary of watchdog registers (base address: 0x2004_0000)

3-98

Offset
Address

Register

Description

Page

0x000

WDG_LOAD

Initial count value register

3-99

0x004

WDG_VALUE

Current count value register

3-99

0x008

WDG_CONTROL

Control register

3-99

0x00C

WDG_INTCLR

Interrupt clear register

3-100

0x010

WDG_RIS

Raw interrupt status register

3-101

0x014

WDG_MIS

Masked interrupt status register

3-101

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Offset
Address

Register

Description

Page

0x018–
0xBFC

RESERVED

Reserved

-

0xC00

WDG_LOCK

Lock register

3-102

3.8.7 Register Description
WDG_LOAD
WDG_LOAD is the initial count value register. It is used to configure the initial count value
of the internal counter of the watchdog.

Bit

Offset Address

Register Name

Total Reset Value

0x000

WDG_LOAD

0xFFFF_FFFF

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

1

1

1

1

1

1

1

1

wdg_load

Reset 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Bits

Access

Name

Description

[31:0]

RW

wdg_load

Initial count value of the watchdog counter.

WDG_VALUE
WDG_VALUE is the current count value register. It is used to read the current count value of
the internal counter of the watchdog.

Bit

Offset Address

Register Name

Total Reset Value

0x004

WDG_VALUE

0xFFFF_FFFF

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

1

1

1

1

1

1

1

1

wdogvalue

Reset 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Bits

Access

Name

Description

[31:0]

RO

wdogvalue

Current count value of the watchdog counter.

WDG_CONTROL
WDG_CONTROL is the control register. It is used to control the functions of enabling,
disabling, interrupting, and resetting the watchdog.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-99

Register Name

Total Reset Value

0x008

WDG_CONTROL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0

inten

Bit

Offset Address

resen

Hi3515
Data Sheet

3 System

0

0

Output enable of the watchdog reset signal.
[1]

RW

resen

0: disabled
1: enabled
Output enable of the watchdog interrupt signal.
0: The counter stops counting, the current count value keeps
unchanged, and the watchdog is disabled.

[0]

RW

inten

1: The counter, interrupt, and watchdog are enabled.
Note: If the interrupt corresponding to inten is disabled and then
enabled, the counter loads the initial count value from
WDG_LOAD and restarts the count.

WDG_INTCLR
WDG_INTCLR is the interrupt clear register. It is used to clear interrupts of the watchdog,
thus enabling the watchdog to reload the initial count value to start the count. This register is a
write-only register. The watchdog clears interrupts when any value is written to this register.
In addition, no value is recorded in this register and no default reset value is defined..

Bit

Offset Address

Register Name

Total Reset Value

0x00C

WDG_INTCLR

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

?

?

?

?

?

?

?

?

?

wdg_intclr

Reset

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:0]

WO

wdg_intclr

Writing any value to this register clears the watchdog interrupts
and enables the watchdog to reload the initial count value from
WDG_LOAD to restart the count.

3-100

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

WDG_RIS
WDG_RIS is the raw interrupt register. It is used to show the status of the raw interrupts of
the watchdog.
Register Name

Total Reset Value

0x010

WDG_RIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

[0]

RO

0

0
wdogris

Bit

Offset Address

0

0

0

0

0

0

0

Status of the raw interrupts of the watchdog. When the count value
reaches 0, this bit is set to 1.

wdogris

0: No interrupt is generated.
1: An interrupt is generated.

WDG_MIS
WDG_MIS is the masked interrupt status register. It is used to show the status of the masked
interrupts of the watchdog.
Register Name

Total Reset Value

0x014

WDG_MIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
wdogmis

Bit

Offset Address

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

[0]

RO

wdogmis

Status of the masked interrupts of the watchdog.

0

0: No interrupt is generated or the interrupt is masked.
1: An interrupt is generated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-101

Hi3515
Data Sheet

3 System

WDG_LOCK
WDG_LOCK is the lock register. It is used to control the read and write access to watchdog
registers.

Bit

Offset Address

Register Name

Total Reset Value

0xC00

WDG_LOCK

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

wdg_lock

Reset 0

0

Bits

0

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
When 0x1ACC_E551 is written to this register, the write access to
all registers is enabled; when any other value is written to this
register, the write access is disabled.

[31:0]

RW

wdg_lock

When this register is read, the lock status other than the value
written to this register is returned.
0x0000_0000: The write access is available (unlocked).
0x0000_0001: The write access is unavailable (locked).

3.9 Real Time Clock
3.9.1 Overview
The real time clock (RTC) is used to display the time in real time and send timing alarms.

3.9.2 Features
The RTC has the following features:
z

Provides an internal 32-bit up counter

z

Provides a count clock with the frequency of 1 Hz

z

Supports the configurable initial count value

z

Supports the configurable match value

z

Supports the timeout interrupt

z

Supports soft reset

3.9.3 Function Description
The RTC works based on a 32-bit up counter. The initial count value is loaded from RTC_LR.
The count value is incremented by 1 on the rising edge of each count clock. When the count
value of RTC_LR is equal to that of RTC_MR, the RTC generates an interrupt. Then the
counter continues to count in incremental mode on the next rising edge of the count clock.
The interrupt number of the RTC is 10 in the system.

3-102

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

By configuring RTC_IMSC, you can enable or disable the RTC to determine whether to
generate interrupts. At this time, there are two cases:
z

When the function of generating interrupts is disabled, the RTC counter continues to
count in incremental mode and no interrupts are generated. RTC_MIS shows the status
of masked interrupt and RTC_RIS shows the status of raw interrupts.

z

When the function of generating interrupts is enabled again, the RTC counter still counts
in incremental mode. When the count value of RTC_LR is equal to that of RTC_MR, the
RTC generates an interrupt.

The count clock of the RTC is a 1 Hz clock that is used to convert the count time into year,
month, day, hour, minute, or second.

3.9.4 Operating Mode
Frequency of the Count Clock
The RTC uses a 1 Hz count clock. The maximum count time is calculated as follows:

TRTC

indicates the count time,

2 32 - 1

indicates the initial count value, and

f rtcclk

indicates the

frequency of the count clock and it is 1 Hz.

Soft Reset
You can separately execute soft reset on the RTC by configuring SC_PERCTRL8[rtc_srst].
After soft reset, the value of each RTC configuration register is restored to its default value.
Thus, these registers must be initialized again.
To execute soft reset, do as follows:
Step 1 Write 1 to SC_PERCTRL8[rtc_srst] to execute soft reset on the RTC.
Step 2 Write 0 to SC_PERCTRL8[rtc_srst] to clear the soft reset on the RTC.
----End

Initializing the RTC
The RTC counter stops counting after the system is reset during power-on. When the system
is initialized, the RTC must be initialized and enabled. To initialize the RTC, do as follows:
Step 1 Set RTC_CR[rtc_start] to 0b1 to enable the RTC counter.
Step 2 Set RTC_IMSC[rtc_imsc] to 0b0 to configure the interrupt mask bit of the RTC.
Step 3 Configure RTC_MR to set the match value of the RTC.
Step 4 Configure RTC_LR to set the initial count value of the RTC.
Step 5 The RTC counts starting from the value of RTC_LR based on the frequency of the 1 Hz count
clock. When the count value is equal to the value of RTC_MR, the RTC determines whether
to generate interrupts based on the settings of RTC_IMSC.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-103

Hi3515
Data Sheet

3 System

Processing an Interrupt
If the system receives an interrupt from the RTC, it indicates that the timing time is reached.
Then, the operations such as auto startup and auto shutdown are performed. The RTC counter,
however, still counts in incremental mode. To process an RTC interrupt, do as follows:
Step 1 Set RTC_ICR[rtc_icr] to 0b1 to clear the status of the RTC interrupt.
Step 2 If you want to continue to set a timing time, write a new match value to RTC_MR.
----End

Disabling the RTC
If RTC_CR is configured and the RTC starts to count, the RTC keeps on counting. The RTC
can be disabled only when it is reset. For details about how to execute soft reset on the RTC,
see the description of "Soft Reset" in section 3.9.4 "Operating Mode."

3.9.5 Register Summary
Table 3-28 lists the RTC registers.
Table 3-28 Summary of the RTC registers (base address: 0x2006_0000)
Offset
Address

Register

Description

Page

0x000

RTC_DR

Current count value register

3-104

0x004

RTC_MR

RTC match register

3-105

0x008

RTC_LR

RTC load register

3-105

0x00C

RTC_CR

RTC enable register

3-106

0x010

RTC_IMSC

Interrupt mask register

3-106

0x014

RTC_RIS

Raw interrupt status register

3-107

0x018

RTC_MIS

Masked interrupt status register

3-107

0x01C

RTC_ICR

Interrupt clear register

3-107

3.9.6 Regitsr Description
RTC_DR
RTC_DR is the current count value register. It is used to read the current count value of the
internal counter of the RTC.

3-104

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset Address

Register Name

Total Reset Value

0x000

RTC_DR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rtc_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rtc_data

Current count value of the RTC.

0

RTC_MR
RTC_MR is the RTC match register. It is used to set the match value of the RTC.

Bit

Offset Address

Register Name

Total Reset Value

0x004

RTC_MR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rtc_match

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

rtc_match

Sets the match value of the RTC.

0

RTC_LR
RTC_LR is the RTC load register. It is used to set the initial count value of the RTC.

Bit

Offset Address

Register Name

Total Reset Value

0x008

RTC_LR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rtc_load

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

rtc_load

Sets the initial count value of the RTC.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-105

Hi3515
Data Sheet

3 System

RTC_CR
RTC_CR is the control register. It is used to enable the RTC. If the RTC is enabled, this
register can be cleared only when the system is reset. Writing this register has no effect and
reading this register returns the current value.

Bit

Offset Address

Register Name

Total Reset Value

0x00C

RTC_CR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
rtc_start

Name

8

0

0

0

0

0

0

0

RTC enable.
[0]

RW

0: disabled

rtc_start

1: enabled

RTC_IMSC
RTC_IMSC is the interrupt mask register. It is used to show the interrupt mask status of the
RTC.

Bit

Offset Address

Register Name

Total Reset Value

0x010

RTC_IMSC

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
rtc_imsc

Name

8

0

0

0

0

0

0

0

RTC interrupt mask control.
[0]

RW

rtc_imsc

0: masked
1: not masked

3-106

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

RTC_RIS
RTC_RIS is the raw interrupt status register. It is used to show the status of the raw interrupts
of the RTC.

Bit

Offset Address

Register Name

Total Reset Value

0x014

RTC_RIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
rtc_ris

Name

8

0

0

0

0

0

0

0

Status of raw interrupts of the RTC.
[0]

RO

rtc_ris

0: No interrupt is generated.
1: An interrupt is generated.

RTC_MIS
RTC_MIS is the masked interrupt status register. It is used to show the status of the masked
interrupts of the RTC.

Bit

Offset Address

Register Name

Total Reset Value

0x018

RTC_MIS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
rtc_mis

Name

8

0

0

0

0

0

0

0

Status of the masked interrupts of the RTC.
[0]

RO

rtc_mis

0: No interrupt is generated or the interrupt is masked.
1: An interrupt is generated.

RTC_ICR
RTC_ICR is the RTC interrupt clear register. It is used to clear RTC interrupts.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-107

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0x01C

RTC_ICR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
rtc_icr

Name

8

0

0

0

0

0

0

0

RTC interrupt clear.
[0]

WO

rtc_icr

0: no effect
1: An interrupt is cleared.

3.10 System Controller
3.10.1 Overview
The system controller controls the system from various aspects. To be specific, it controls the
operating mode of the system, monitors the system status, manages the important modules in
the system (such as the clock module and reset module), and configures certain functions of
peripherals.

3.10.2 Features
The system controller has the following features:
z

Controls and monitoring the operating mode of the system.

z

Controls the system clock and queries its status.

z

Controls the clock gating of peripherals and supports reset control and query.

z

Controls the interrupt mode of the system.

z

Controls the system address remapping and monitors its status.

z

Controls peripherals through their general-purpose control registers in various ways.

z

Controls the arbitration function of certain buses.

z

Provides write protection for key registers.

z

Provides chip identification (ID) registers.

3.10.3 Function Description
Controlling the Operating Modes of the System
The system has the following four operating modes:

3-108

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
z

3 System

Normal mode
It refers to a mode in which the system works properly. In this mode, the system is
driven by the output clock of the on-chip clock source ARMPLL. All the modules can
work properly under ARMPLL.

z

Slow mode
It refers to a slow-speed mode. In this mode, the system is driven by the external crystal
oscillator clock. In addition, only certain of on-chip modules can work properly, such as
the system controller, timer, and SMI. None of the modules that require high-speed clock
can work under the crystal oscillator clock. These modules include the DDRC, USB 2.0
HOST, AMBA-PCI bridge (the clock of the bridge is provided by the clock and reset
generator), SIO0, SIO1, SIO2, and MMC.

z

Doze mode
It also refers to a slow-speed mode, but its speed is lower than that in slow mode. In this
mode, the system is driven by a 46.8 kHz low-frequency clock. This clock is generated
by dividing the frequency of the external crystal oscillator clock. Most on-chip
peripherals and memory interfaces cannot work. Only the CPU and certain modules
(such as the system controller and timer) can work properly.

z

Sleep mode
It refers to a hibernate mode. In this mode, the CPU and most modules do not work
because the clock is disabled. Only the system controller and the IR module can work
under the 46.8 kHz low-frequency clock. In addition, the low-frequency clock is
maintained at the AHB side of the AMBA-PCI bridge.

The system controller provides a mode switching mechanism to switch the system clock
source.
You can switch the system operating mode by configuring the SC_CTRL[modectrl] field.
This field defines the operating mode to which the system is switched:
z

000: sleep mode

z

001: doze mode

z

01X: slow mode

z

1XX: normal mode
The value of X can be 0 or 1.

After the system operating mode is set, the state machine switches the mode automatically
without software interference. The current system status can be queried by reading
SC_CTRL[modestatus]. SC_CTRL[modestatus] not only shows the preceding four main
modes (normal, slow, doze, and sleep modes), but also the following intermediate states
between the main modes: SW-from-PLL, SW-to-PLL, PLLCTL, SW-from-XTAL, SW-toXTAL, and XTALCTL.
The normal, slow, doze, and sleep modes can be switched directly. For example, if the system works in
normal mode, you can switch this mode to doze mode by setting SC_CTRL [modectrl] to 001. In
practice, however, the system experiences SW-from-PLL, slow, and then SW-from-XTAL mode before
the system is switched to the doze mode.

After power-on reset, the system controller is in slow mode by default.
When the VIC receives interrupt inputs in interrupt mode, the target mode is specified by the
interrupt response mode register rather than SC_CTRL[modectrl].

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-109

Hi3515
Data Sheet

3 System

The system controller switches the system clock and system mode by working with the clock
module. When the status of the state machine is changed, the system controller sends a clock
switch indicator signal. Then, the clock module switches the clock and sends a switch done
indicator signal to the system controller. After the system controller detects this signal, the
mode switch is complete.
Table 3-29 lists the relationship between the status of the system controller and the system
clock.
Table 3-29 Relationship between the status of the system controller and the system clock
Status of
the
System
Controller

Status of
the 24 MHz
Crystal
Oscillator

Status of the
Master PLL

Status of the System Clock

Normal

Enabled

Enabled

The working clocks of the ARM
subsystem are originated from the PLL
output.

Slow

Enabled

Disabled

The working clocks of the ARM
subsystem are originated from the 24
MHz crystal oscillator input.

Doze

Enabled

Disabled

The working clocks of the ARM
subsystem are originated from the 46.8
kHz crystal oscillator frequency-division
clock.

Sleep

Enabled

Disabled

Only the system controller and IR
module work under a 46.8 kHz clock.
The clocks of other modules are disabled.

Figure 3-24 shows the process of switching the system mode.

3-110

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Figure 3-24 Process of switching the system mode
Normal
Clock switch done
Normal
SW to PLL
PLL timeout

SW from
PLL

PLLCTL

Clock switch done
Power-on reset

Normal
Slow
Clock switch done
Slow &

Normal

SW to XTAL
SW from
XTAL

XTAL timeout

Clock switch done

XTALCTL

Slow | Normal
Doze
&
Doze
Slow
&
Normal &
STANDBYWFI

IRQ|FIQ

Sleep

The operations involved in the mode switching are as follows:
z

Sleep mode
In this mode, only the clocks of the system controller and the IR module are driven by
the 46.8 kHz low-speed crystal oscillator frequency-division clock. The clocks of other
modules are disabled. When an FIQ or IRQ interrupt is generated, the system is switched
to the doze mode and the value of SC_CTRL[modectrl] is changed from sleep to doze
automatically.
The switching from the sleep mode to the doze mode is triggered by an interrupt. Therefore, ensure that
the interrupt controller does not mask the IRQ or FIQ interrupt before the system enters the sleep mode.
When you want to switch the system to the doze mode by using the GPIO external input interrupt, the
interrupt must be level-triggered rather than edge-triggered.

z

Doze mode
In this mode, the system clock and the clock of the system controller are driven by the
46.8 kHz crystal oscillator frequency-division clock. The doze mode is switched in the
following cases:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-111

Hi3515
Data Sheet

3 System

z

−

If SC_CTRL[modectrl] is set to slow or normal, the system enters the crystal
oscillator-controlled status SC_XTALCTL and then initializes the 24 MHz crystal
oscillator. After the crystal oscillator is stable, the system is switched to the SW-toXTAL mode. After the system clock is switched from the 46.8 kHz clock to the 24
MHz clock, the system enters the slow mode.

−

If SC_CTRL[modectrl] is set to sleep and the ARM926EJ-S is in wait-for-interrupt
state, the system enters the sleep mode.

z

SC_XTALCTRL bit[18:3] define the stable time of the 24 MHz crystal oscillator. When the crystal
oscillator is enabled, the timeout counter starts to count.

z

You can enable ARM1176 to enter the low-power mode (wait-for-interrupt status) by configuring the
coprocessor CP15.

Slow mode
In this mode, the ARM subsystem works under the 24 MHz clock. If
SC_CTRL[modectrl] is set to normal, the system enters the PLL-controlled status
SC_PLLCTL, and then enables the PLL. When the PLL is stable, the system enters the
SW-to-PLL mode. After the system clock is switched to the PLL clock, the system enters
the normal mode.
SC_PLLCTRL bit[27:3] define the stable time of the PLL. After the PLL is enabled, the timeout counter
starts to count. You can check whether the PLL is stable by querying SC_PLLCTRL23 bit[0].

If SC_CTRL[modectrl] is set to a mode in which the speed is lower than that in slow
mode (such as the doze or sleep mode), the system is switched to the SW-from-XTAL
mode. After the system clock is switched to the 46.8 kHz clock, the system enters the
doze mode.
z

Normal mode
In this mode, the ARM subsystem works under the PLL output clock. If
SC_CTRL[modectrl] is set to a mode rather than normal, the system is switched to the
SW-from-PLL mode. After the system clock is switched to the 24 MHz clock, the system
enters the slow mode.

PLL Control
The state machine of the system controller can enable or disable the on-chip PLL. Table 3-29
shows the PLL status in different modes.

PLL Frequency Control
The system controller is integrated with four PLL frequency control registers that are used to
define the control coefficients of the PLL. For details, see the descriptions of SC_PERCTRL0
to SC_PERCTRL7.

Interrupt Response Mode
The interrupt response mode defines the mode of the system state machine after an interrupt is
generated. The interrupt response mode is controlled by a group of interrupt mode control
registers. These registers define the following functions:

3-112

z

Enabling the interrupt response mode or not

z

Operating mode of the system after an interrupt is generated

z

The type of the interrupt for triggering the interrupt response mode: FIQ or IRQ

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
z

3 System

The mechanism for querying and clearing the interrupt mode status
In interrupt response mode, the system can switch only from a low-speed mode to a high-speed mode,
such as from doze mode to normal mode. Therefore, the system cannot be switched from the normal
mode to the slow mode.

Soft Reset
The system controller can execute soft reset on the entire chip or certain modules.
z

After the global soft reset register SC_SYSSTAT is configured, the system controller
sends a reset request to the on-chip reset module. Then the Hi3515 is reset.

z

After the soft reset control bit of a module of the system controller is configured, the
system controller determines whether to reset this module by controlling the on-chip
reset module.

A soft reset operation involves soft reset configuration and clear. For example, to execute soft
reset on UART0, you must write 1 to SC_PERCTRL8[uart0_srst], and then write 0 to
SC_PERCTRL8[uart0_srst] to clear soft reset.
z

You can execute soft reset on the system by writing any value to SC_SYSSTAT. The system soft
reset is cleared automatically without software interference.

z

For details on how to control the soft reset on each module, see the descriptions of SC_PERCTRL8
and SC_PERCTRL10.

System Address Remapping Control
By providing address remapping control signals, the system controller allows the address
decoding unit to remap and reallocate the system memory address space. After power-on reset,
the Hi3515 maps address 0 to different physical spaces based on the boot mode. The Hi3515
can boot in either of the following modes by configuring the pin BOOTSEL:
z

00: booting from the NOR flash

z

00: booting from the NAND flash
After the address remapping is cleared, the memory space mapping between address 0 and the SMI,
NANDC flash is also cleared. In this case, it is recommended to allocate the address ranging from
0x0000_0000 to 0x0000_0FFF to the 2 KB on-chip ITCM by configuring the CPU.

Enable Control for WatchDog and Timer Clocks
Through the clock enable function, the count frequency can be independent of the frequency
of the system clock. That is, the counter can work at a fixed count frequency even the
frequency of the system clock is changed. The system controller clock provides the following
enable control functions:
z

Sampling input count clocks, generating clock enable signals, and then sending the
signals to the watchdog and timer

z

Forcibly enabling the count clocks of watchdog and timer through software. In this way,
the internal counter of the watchdog and timer count based on the bus clock. When the
system is in debug mode, the count function of the watchdog is disabled.

z

Selecting the count clock source for the timer

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-113

Hi3515
Data Sheet

3 System

Bus Arbitration Control
The 128-bit interconnect bus has an arbitration mechanism. Therefore, the system controller
can set the priorities and timeout time of the ports on the interconnect bus.

Write Proctection for Key Registers
To avoid the entire system being severely affected due to the improper operation on the
system controller, the system controller provides write protection for key configuration
registers. Such key configuration registers are as follows:
z

Mode switch control register SC_CRTL

z

System global soft reset control register SC_SYSSTAT

z

On-chip ARMPLL control registers SC_PERCTRL0 and SC_PERCTRL1

Before providing write protection for the preceding key registers, you must configure
SC_PERLOCK to disable the write protection function. Then, you can configure
SC_PERLOCK to enable the write protection function, thus ensuring that the key registers are
not overwritten by software.
After reset, the key registers are not write-protected by default. To enable write protection, it is
recommended to configure SC_PERLOCK when the system starts.

Chip ID Registers
The system controller provides a chip ID register SC_SYSID. This register is a virtual 32-bit
read-only register. In fact, it consists of four 8-bit ID registers: SC_SYSID3, SC_SYSID2,
SC_SYSID1, and SC_SYSID0. After the values of these four registers are read and combined,
the value of SC_SYSID, namely, 0x3515_0100, is obtained. Figure 3-25 shows the bit
allocation of the chip ID registers.
Figure 3-25 Bit allocation of chip ID registers
31

24 23

16 15

8 7

0

7

07

07

07

0

SC_SYSID3

SC_SYSID2

SC_SYSID1

SC_SYSID0

3.10.4 Register Summary
Table 3-30 lists the registers of the system controller.
Table 3-30 Summary of the system controller registers (base address: 0x2005_0000)

3-114

Offset
Address

Register

Description

Page

0x0000

SC_CTRL

System control register

3-116

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Offset
Address

Register

Description

Page

0x0004

SC_SYSSTAT

System status register

3-118

0x0008

SC_IMCTRL

Interrupt mode control register

3-119

0x000C

SC_IMSTAT

Interrupt mode status register

3-120

0x0010

SC_XTALCTRL

Crystal oscillator control register

3-121

0x0014

SC_PLLCTRL

PLL control register

3-121

0x001C

SC_PERCTRL0

ARMPLL frequency control register 1

3-122

0x0020

SC_PERCTRL1

ARMPLL frequency control register 2

3-123

0x0024

SC_PEREN

Peripheral clock enable register

3-124

0x0028

SC_PERDIS

Peripheral clock disable register

3-127

0x002C

SC_PERCLKEN

Peripheral clock status register

3-130

0x0034

SC_PERCTRL2

Video PLL0 frequency control register 1

3-133

0x0038

SC_PERCTRL3

Video PLL0 frequency control register 2

3-133

0x003C

SC_PERCTRL4

Video PLL1 frequency control register 1

3-134

0x0040

SC_PERCTRL5

Video PLL1 frequency control register 2

3-135

0x0044

SC_PERLOCK

Lock register of key system control
registers

3-136

0x0048

SC_PERCTRL6

ETH PLL frequency control register 1

3-136

0x004C

SC_PERCTRL7

ETH PLL frequency control register 2

3-137

0x0050

SC_PERCTRL8

Soft reset control register 1

3-138

0x0054

SC_PERCTRL9

Clock mode control register 1

3-140

0x0058

SC_PERCTRL10

Soft reset control register 2

3-142

0x005C

SC_PERCTRL11

Peripheral operating mode register 1

3-144

0x0060

SC_PERCTRL12

Peripheral operating mode register 2

3-145

0x0064

SC_PERCTRL13

Clock mode control register 2

3-147

0x0068

SC_PERCTRL14

Clock mode control register 3

3-148

0x0070

SC_PERCTRL16

Clock mode control register 4

3-149

0x008C

SC_PERCTRL23

Chip operating mode status and PLL status
register

3-150

0xEE0

SC_SYSID0

Chip ID register 0

3-151

0xEE4

SC_SYSID1

Chip ID register 1

3-152

0xEE8

SC_SYSID2

Chip ID register 2

3-152

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-115

Hi3515
Data Sheet

3 System

Offset
Address

Register

Description

Page

0xEEC

SC_SYSID3

Chip ID register 3

3-153

3.10.5 Register Description
SC_CTRL
SC_CTRL is the system control register. It is used to specify the operations that need to be
performed by the system.

This register can be write-protected by configuring SC_PERLOCK. In addition, this register
can be written only when the write protection function is disabled.

0x0000_0212

0

0

0

0

0

0

0

0

timeren0ov

0

timeren0sel

0

timeren1ov

0

timeren1sel

0

timeren2sel

Reset 0

timeren2ov

reserved

timeren3sel

Name

wdogenov

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

reserved

0

0

0

0

0

8

7

1

0

0

6

5

4

3

2

modestatus

0

0

1

0

1

0

modectrl

SC_CTRL

reserved

0x0000

remapclear

Total Reset Value

remapstat

Register Name

timeren3ov

Bit

Offset Address

0

1

0

Watchdog count clock select.
[23]

RW

wdogenov

0: 3 MHz clock
1: bus clock
Count clock select of timer3.

[22]

RW

timeren3ov

0: The enable signal is obtained through the reference clock. The
reference clock is specified by timeren3sel.
1: bus clock
Count clock frequency select of timer3. This bit must be set to 0.

[21]

RW

timeren3sel

0: 3 MHz clock
1: reserved

3-116

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Count clock select of timer2.
[20]

RW

timeren2ov

0: The enable signal is obtained through the reference clock. The
reference clock is specified by timeren2sel.
1: bus clock
Count clock frequency select of timer2. This bit must be set to 0.

[19]

RW

timeren2sel

0: 3 MHz clock
1: reserved
Count clock select of timer1.

[18]

RW

timeren1ov

0: The enable signal is obtained through the reference clock. The
reference clock is specified by timeren1sel.
1: bus clock
Count clock frequency select of timer1. This bit must be set to 0.

[17]

RW

timeren1sel

0: 3 MHz clock
1: reserved
Count clock select of timer0.

[16]

RW

timeren0ov

0: The enable signal is obtained through the reference clock. The
reference clock is specified by timeren0sel.
1: bus clock
Count clock frequency select of timer0. This bit must be set to 0.

[15]

RW

timeren0sel

0: 3 MHz clock
1: reserved

[14:10]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.
Status of address remapping.
0: The address is not remapped.

[9]

RO

remapstat

1: The address is remapped. When the load mode is self-load,
EBICS0N is remapped to address 0; when the load mode is
passive load, DDRCSN is remapped to address 0.
Address remapping clear.
0: Keep the remapping status.

[8]

RW

remapclear

1: Clear the remapping status.
For details about the address mapping before and after the
mapping is cleared, see section 3.3.2 "Memory Address Mapping."

[7]

RO

Issue 02 (2010-04-20)

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-117

Hi3515
Data Sheet

3 System

Mode status.
These four bits return to the current operating mode of the system.
The definitions of the four bits are as follows:
0x0: sleep
0x1: doze
0x2: slow
[6:3]

RW

modestatus

0x3: XTAL CTL
0x4: NORMAL
0x6: PLL CTL
0x9: SW from XTAL
0xA: SW from PLL
0xB: SW to XTAL
0xE: SW to PLL
Others: reserved
Mode control. These three bits define the operating mode to which
the system controller is switched. The definitions of the three bits
are as follows:

[2:0]

RW

modectrl

000: sleep
001: doze
01X: slow
1XX: normal

SC_SYSSTAT
SC_SYSSTAT is the system status register. When any value is written to this register, the
system controller sends a system soft reset request to the reset module. Then the reset module
resets the system.

This register can be write-protected by configuring SC_PERLOCK. In addition, this register
can be written only when the write protection function is disabled.

3-118

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

3 System

Offset Address

Register Name

Total Reset Value

0x0004

SC_SYSSTAT

0x0000_0002

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

1

0

softresreq

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

WO

softresreq

The system is reset when any value is written to this register.

SC_IMCTRL
SC_IMCTRL is the interrupt mode control register. It is used to control the system mode
when an interrupt is generated.
Register Name

Total Reset Value

0x0008

SC_IMCTRL

0x0000_0000

0

0

0

0

0

0

0

0

0

0

0

0

6

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

0

0

0

0

2

1

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.

[7]

RW

inmdtype

0
itmden

reserved

Reset 0

7

reserved

Name

8

itmdctrl

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

inmdtype

Bit

Offset Address

0

Type of the interrupt for triggering the interrupt mode of the
system.
0: FIQ interrupt only
1: FIQ interrupt and IRQ interrupt

[6:4]

[3:1]

RO

RW

reserved

itmdctrl

Reserved.
Operating mode of the system with the lowest speed in interrupt
mode. The value generated after the values of this register and
SC_CTRL[modectrl] are ORed indicates the operating mode of the
system after an interrupt is generated. The definitions of these bits
are as follows:
000: sleep
001: doze
01X: slow
1XX: normal

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-119

Hi3515
Data Sheet

3 System

Interrupt mode enable.
[0]

RW

0: disabled

itmden

1: enabled (when an interrupt is generated, the system enters the
interrupt mode)

SC_IMSTAT
SC_IMSTAT is the interrupt mode control register. It is used to check whether the system is in
interrupt mode. The system can be set to the interrupt mode forcibly by configuring this
register.

When the ISR ends, the interrupt mode must be cleared manually.

Bit

Offset Address

Register Name

Total Reset Value

0x000C

SC_IMSTAT

0x0000_0000

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
itmdstat

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.

0

Interrupt mode status. The bit is used by software for controlling
whether the system enters the interrupt mode.
When the register is read:
0: The system is not in interrupt mode.
[0]

RW

itmdstat

1: The system is in interrupt mode.
When the register is written:
0: Software controls whether the system enters the interrupt mode.
1: Software does not control whether the system enters the
interrupt mode.

3-120

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SC_XTALCTRL
SC_XTALCTRL is the crystal oscillator control register. This register is used to control the
stable time of initializing the clock module, that is, the wait time spent on switching the mode
from XTAL CTL to SW-to-XTAL.
Total Reset Value

0x0010

SC_XTALCTRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

0

0

0

0

0

0

xtaltime

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

0

0
reserved

Register Name

reserved

Bit

Offset Address

0

0

Bits

Access

Name

Description

[31:19]

RO

reserved

Reserved. Writing these bits returns 0 and reading these bits has no
effect.
Wait time of crystal oscillator switching.
The value of this field is used to specify the wait time spent on
switching the system mode from XTAL CTL to SW-to-XTAL.
The wait cycle can be calculated as follows: (65536 - xtaltime) x
T46.8 K. T46.8 K indicates the clock cycle of the 46.8 kHz lowfrequency clock.

[18:3]

RW

xtaltime

[2]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.

[1:0]

RO

reserved

Reserved. Reading these bits returns the written value.

SC_PLLCTRL
SC_PLLCTRL is the PLL control register. It is used to control whether to enable the on-chip
ARMPLL through software or system mode switching. It also sets the stable time of setting
the ARMPLL.

This register can be write-protected by configuring SC_PERLOCK. In addition, this register
can be written only when the write protection function is disabled.
When the ARMPLL is enabled through the system mode switching, the ARMPLL is disabled
automatically if the system is not in normal mode.
The clock frequency of the ARMPLL is controlled by certain bits of SC_PERCTRL0 and
SC_PERCTRL1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-121

Hi3515
Data Sheet

3 System

Total Reset Value

0x0014

SC_PLLCTRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

8

7

6

5

4

3

0

0

0

0

0

0

plltime

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0
pllover

Register Name

reserved

Bit

Offset Address

reserved

When the PLL frequency is changed, a stable clock can be output after at least 0.5 ms. Therefore, the
plltime of this register must meet this requirement.

0

0

0

Bits

Access

Name

Description

[31:28]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.
Stable time of the ARMPLL.
This time refers to the period from the start of the PLL to the
output of a stable PLL clock. That is, the wait time of switching
the system mode from PLL CTL to the SW-to-PLL. The timeout
time is calculated as follows: (33554432 - plltime) x TXIN. TXIN
indicates the clock cycle of the external crystal oscillator of the
Hi3515.

[27:3]

RW

plltime

[2]

RO

reserved

Reserved. Writing this bit returns 0 and reading this bit has no
effect.

[1]

RO

reserved

Reserved.

[0]

RW

pllover

This bit must be set to 0. It indicates that the ARMPLL is enabled
through the system mode switching.

SC_PERCTRL0
SC_PERCTRL0 is ARMPLL frequency control register 1.

3-122

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x001C

SC_PERCTRL0

0x0000_0000

Reset 0

0

0

Bits

apll_postdiv1

apll_postdiv2

apll_bypass

Name

Offset Address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
apll_dsmpd

Bit

3 System

0

0

0

Access

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

apll_frac

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
APLL frequency-division mode control.

[31]

RW

apll_dsmpd

0: decimal frequency-division mode
1: integer frequency-division mode
ARMPLL clock frequency-division bypass control.

[30]

RW

apll_bypass

0: no bypass
1: bypass

[29:27]

RW

apll_postdiv2

Level-2 output frequency divider of the APLL.

[26:24]

RW

apll_postdiv1

Level-1 output frequency divider of the APLL.

[23:0]

RW

apll_frac

Decimal frequency divider of the APLL.

SC_PERCTRL1
SC_PERCTRL1 is ARMPLL frequency control register 2.
Register Name

Total Reset Value

0x0020

SC_PERCTRL1

0x0000_0000

0

0

0

0

0

0

0

0

0

apll_fout4phasepd

Reset 0

apll_postdivpd

reserved

apll_pd

Name

apll_foutvcopd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

apll_reset

Bit

Offset Address

0

0

0

0

7

apll_refdiv

0

0

Bits

Access

Name

Description

[31:23]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

apll_fbdiv

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

3-123

Hi3515
Data Sheet

3 System

APLL reset control.
[22]

RW

apll_reset

0: reset
1: not reset
APLL power down control.

[21]

RW

0: disabled

apll_pd

1: enabled
APLL VCO output power down control.
[20]

RW

apll_foutvcopd

0: disabled
1: enabled
APLL POSTDIV output power down control.

[19]

RW

apll_postdivpd

0: disabled
1: enabled
APLL FOUT output power down control.

[18]

apll_fout4phasepd 0: disabled

RW

1: enabled
[17:12]

RW

apll_refdiv

Frequency divider of the APLL reference clock.

[11:0]

RW

apll_fbdiv

Integer frequency multiplier of the APLL.

SC_PEREN
SC_PEREN is the peripheral clock enable register. As a write-only register, it generates the
enable signal of the peripheral clock in the external clock generation logic. Writing 1 to a
certain bit of this register enables the clock of the corresponding module, but writing 0 has no
effect.

Bits

Access

Name

1

1

1

1

1

1

1

1

6

5

4

3

2

1

0
reserved

1

7

sataclkgate

1

8

smiclken

1

reserved

1

sio1clken

1

irclken

1

reserved

1

mmcclken

usbclken

1

tdeclken

vobusclken

1

vibusclken

vosdclken

1

vi0clken

vohdclken

1

vi1clken

reserved

1

vi2clken

nandcclken

1

ethclken

reserved

1

Reset 1

vi3clken

sspclken

Name

vdac0clken

vdac1clken

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

cipherclken

0xFFFF_FFFF

uart0clken

SC_PEREN

uart1clken

0x0024

uart2clken

Total Reset Value

sio0clken

Register Name

uart3clken

Bit

Offset Address

1

1

1

1

1

1

1

1

1

Description
Video DAC1 clock enable.

[31]

WO

vdac1clken

0: disabled
1: enabled

3-124

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Video DAC0 clock enable.
[30]

WO

vdac0clken

0: disabled
1: enabled
SSP clock enable.

[29]

WO

sspclken

0: disabled
1: enabled

[28]

RO

reserved

Reserved.
NANDC clock enable.

[27]

WO

nandcclken

0: disabled
1: enabled

[26]

RO

reserved

Reserved.
VO high-definition (HD) channel clock enable.

[25]

WO

vohdclken

0: disabled
1: enabled
VO standard-definition (SD) channel clock enable.

[24]

WO

vosdclken

0: disabled
1: enabled
VO bus clock enable.

[23]

WO

vobusclken

0: disabled
1: enabled
USB clock enabled.

[22]

WO

usbclken

0: disabled
1: enabled
ETH clock enable.

[21]

WO

ethclken

0: disabled
1: enabled
VI3 port clock enable.

[20]

WO

vi3clken

0: disabled
1: enabled
VI2 port clock enable.

[19]

WO

vi2clken

0: disabled
1: enabled
VI1 port clock enable.

[18]

WO

vi1clken

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-125

Hi3515
Data Sheet

3 System

VI0 port clock enable.
[17]

WO

vi0clken

0: disabled
1: enabled
VI bus clock enable.

[16]

WO

vibusclken

0: disabled
1: enabled
TDE clock enable.

[15]

WO

tdeclken

0: disabled
1: enabled
MMC clock enable.

[14]

WO

mmcclken

0: disabled
1: enabled

[13:12]

RO

reserved

Reserved.
IR clock enable.

[11]

WO

irclken

0: disabled
1: enabled

[10]

RO

reserved

Reserved.
SIO1 clock enable.

[9]

WO

sio1clken

0: disabled
1: enabled
SIO0 clock enable.

[8]

WO

sio0clken

0: disabled
1: enabled
UART3 clock enable.

[7]

WO

uart3clken

0: disabled
1: enabled
UART2 clock enable.

[6]

WO

uart2clken

0: disabled
1: enabled
UART1 clock enable.

[5]

WO

uart1clken

0: disabled
1: enabled
UART0 clock enable.

[4]

WO

uart0clken

0: disabled
1: enabled

3-126

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SMI clock enable.
[3]

WO

0: disabled

smiclken

1: enabled
CIPHER clock enable.
[2]

WO

cipherclken

0: disabled
1: enabled
SATA clock enable.

[1]

WO

0: disabled

sataclkgate

1: enabled
[0]

RO

reserved

Reserved.

SC_PERDIS
SC_PERDIS is the peripheral clock disable register. As a write-only register, it is used to set
the enable signal of the peripheral clock to be invalid in the external clock generation logic.
Writing 1 to a certain bit of this register disables the clock of the corresponding module, but
writing 0 has no effect.
To enable or disable the clock of a module, you must use both the SC_PEREN register and
SC_PERDIS register. For example, if the clock of the SMI module is enabled, this clock is
disabled when 0x0000_0004 is written to SC_PERDIS. In this case, if you want to enable this
clock again, write 0x0000_0001 to SC_PEREN. In addition, you can check whether the clock
of a module is enabled or disabled successfully by reading a certain bit of SC_PERCLKEN.
For example, after enabling the SMI clock, you can read SC_PERCLKEN[3]. If
SC_PERCLKEN[3] is 1, it indicates that the operation is successful.

Bits

Access

Name

0

0

1

0

0

3

2

1

0

reserved

0

4

sataclkdis

0

5

smiclkdis

0

6

cipherclkdis

0

7

uart0clkdis

0

reserved

0

sio1clkdis

0

irclkdis

0

reserved

0

mmcclkdis

usbclkdis

0

tdeclkdis

vobusclkdis

0

vibusclkdis

vosdclkdis

0

vi0clkdis

vohdclkdis

1

vi1clkdis

reserved

0

vi2clkdis

nandcclkdis

0

ethclkdis

reserved

0

vi3clkdis

sspclkdis

0

Reset 0

8

uart1clkdis

0x0400_0402

uart2clkdis

SC_PERDIS

sio0clkdis

0x0028

uart3clkdis

Total Reset Value

vdac0clkdis

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vdac1clkdis

Bit

Offset Address

0

0

0

0

0

0

0

1

0

Description
Video DAC1 clock disable.

[31]

WO

vdac1clkdis

0: no effect
1: disabled
Video DAC0 clock disable.

[30]

WO

vdac0clkdis

0: no effect
1: disabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-127

Hi3515
Data Sheet

3 System

SSP clock disable.
[29]

WO

sspclkdis

0: no effect
1: disabled

[28]

RO

reserved

Reserved.
NANDC clock disable.

[27]

WO

nandcclkdis

0: no effect
1: disabled

[26]

RO

reserved

Reserved.
VO HD channel clock disable.

[25]

WO

vohdclkdis

0: no effect
1: disabled
VO SD channel clock disable.

[24]

WO

vosdclkdis

0: no effect
1: disabled
VO bus clock disable.

[23]

WO

vobusclkdis

0: no effect
1: disabled
USB clock disable.

[22]

WO

usbclkdis

0: no effect
1: disabled
ETH clock disable.

[21]

WO

ethclkdis

0: no effect
1: disabled
VI3 port clock disable.

[20]

WO

vi3clkdis

0: no effect
1: disabled
VI2 port clock disable.

[19]

WO

vi2clkdis

0: no effect
1: disabled
VI1 port clock disable.

[18]

WO

vi1clkdis

0: no effect
1: disabled
VI0 port clock disable.

[17]

WO

vi0clkdis

0: no effect
1: disabled

3-128

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

VI bus clock disable.
[16]

WO

vibusclkdis

0: no effect
1: disabled
TDE clock disable.

[15]

WO

tdeclkdis

0: no effect
1: disabled
MMC clock disable.

[14]

WO

mmcclkdis

0: no effect
1: disabled

[13:12]

RO

reserved

Reserved.
IR clock disable.

[11]

WO

irclkdis

0: no effect
1: disabled

[10]

RO

reserved

Reserved.
SIO1 clock disable.

[9]

WO

sio1clkdis

0: no effect
1: disabled
SIO0 clock disable.

[8]

WO

sio0clkdis

0: no effect
1: disabled
UART3 clock disable.

[7]

WO

uart3clkdis

0: no effect
1: disabled
UART2 clock disable.

[6]

WO

uart2clkdis

0: no effect
1: disabled
UART1 clock disable.

[5]

WO

uart1clkdis

0: no effect
1: disabled
UART0 clock disable.

[4]

WO

uart0clkdis

0: no effect
1: disabled
SMI clock disable.

[3]

WO

smiclkdis

0: no effect
1: disabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-129

Hi3515
Data Sheet

3 System

CIPHER clock disable.
[2]

WO

cipherclkdis

0: no effect
1: disabled
SATA clock disable.

[1]

WO

0: no effect

sataclkdis

1: disabled
[0]

RO

reserved

Reserved.

SC_PERCLKEN
SC_PERCLKEN is the peripheral clock status register. As a read-only register, it is used to
read the enable status of each module clock to check whether the operations of writing
SC_PEREN and SC_PERDIS take effect. If a bit is read as 0, it indicates that the
corresponding module clock is disabled. If a bit is read as 1, it indicates that the
corresponding module clock is enabled.

1

1

1

1

1

0

0

sio0clkstat

reserved

Name

1

uart3clkstat

sataclkstat

Access

1

sio1clkstat

smiclkstat

Bits

1

sio2clkstat

1

irclkstat

1

reserved

1

1

mmcclkstat

1

1

tdeclkstat

1

1

vibusclkstat

1

1

vi0clkstat

1

0

vi1clkstat

1

1

vi2clkstat

1

1

Reset 0

ethclkstat

0

vi3clkstat

1

usbclkstat

2

vobusclkstat

3

vosdclkstat

4

vohdclkstat

5

reserved

6

nandcclkstat

7

reserved

8

sspclkstat

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

cipherclkstat

0xEFFF_CFFF

uart0clkstat

SC_PERCLKEN

uart1clkstat

0x002C

uart2clkstat

Total Reset Value

vdac0clkstat

Name

Register Name

vdac1clkstat

Bit

Offset Address

1

1

1

1

1

Description
Video DAC1 clock status.

[31]

RO

vdac1clkstat

0: disabled
1: enabled
Video DAC0 clock status.

[30]

RO

vdac0clkstat

0: disabled
1: enabled
SSP clock status.

[29]

RO

sspclkstat

0: disabled
1: enabled

[28]

RO

reserved

Reserved.
NANDC clock status.

[27]

RO

nandcclkstat

0: disabled
1: enabled

[26]

3-130

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Status of the VO HD channel clock.
[25]

RO

vohdclkstat

0: disabled
1: enabled
Status of the VO SD channel clock.

[24]

RO

vosdclkstat

0: disabled
1: enabled
VO bus clock status.

[23]

RO

vobusclkstat

0: disabled
1: enabled
USB clock status.

[22]

RO

usbclkstat

0: disabled
1: enabled
ETH clock status.

[21]

RO

ethclkstat

0: disabled
1: enabled
VI3 port clock status.

[20]

RO

vi3clkstat

0: disabled
1: enabled
VI2 port clock status.

[19]

RO

vi2clkstat

0: disabled
1: enabled
VI1 port clock status.

[18]

RO

vi1clkstat

0: disabled
1: enabled
VI0 port clock status.

[17]

RO

vi0clkstat

0: disabled
1: enabled
VI bus clock status.

[16]

RO

vibusclkstat

0: disabled
1: enabled
TDE clock status.

[15]

RO

tdeclkstat

0: disabled
1: enabled
MMC clock status.

[14]

RO

mmcclkstat

0: disabled
1: enabled

[13:12]

RO

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-131

Hi3515
Data Sheet

3 System

IR clock status.
[11]

RO

irclkstat

0: disabled
1: enabled
SIO2 clock status.

[10]

RO

sio2clkstat

0: disabled
1: enabled
SIO1 clock status.

[9]

RO

sio1clkstat

0: disabled
1: enabled
SIO0 clock status.

[8]

RO

sio0clkstat

0: disabled
1: enabled
UART3 clock status.

[7]

RO

uart3clkstat

0: disabled
1: enabled
UART2 clock status.

[6]

RO

uart2clkstat

0: disabled
1: enabled
UART1 clock status.

[5]

RO

uart1clkstat

0: disabled
1: enabled
UART0 clock status.

[4]

RO

uart0clkstat

0: disabled
1: enabled
SMI clock status.

[3]

RO

smiclkstat

0: disabled
1: enabled
CIPHER clock status.

[2]

RO

cipherclkstat

0: disabled
1: enabled
SATA clock status.

[1]

RO

sataclkstat

0: disabled
1: enabled

[0]

3-132

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SC_PERCTRL2
SC_PERCTRL2 is video PLL0 frequency control register 1.
Total Reset Value

0x0034

SC_PERCTRL2

0x0000_0000

Reset 0

0

0

Bits

vpll0_postdiv1

vpll0_postdiv2

vpll0_bypass

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vpll0_dsmpd

Bit

Offset Address

0

0

0

Access

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

3

2

1

0

0

0

0

0

vpll0_frac

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
VPLL0 frequency-division mode control.

[31]

RW

0: decimal frequency-division mode

vpll0_dsmpd

1: integer frequency-division mode
VPLL0 clock frequency-division bypass control.
[30]

RW

0: no bypass

vpll0_bypass

1: bypass
[29:27]

RW

vpll0_postdiv2

Level-2 output frequency divider of VPLL0.

[26:24]

RW

vpll0_postdiv1

Level-1 output frequency divider of VPLL0.

[23:0]

RW

vpll0_frac

Decimal frequency divider of VPLL0.

SC_PERCTRL3
SC_PERCTRL3 is video PLL0 frequency control register 2.
Register Name

Total Reset Value

0x0038

SC_PERCTRL3

0x0000_0000

0

0

0

0

0

0

0

0

0

vpll0_fout4phasepd

Reset 0

vpll0_postdivpd

reserved

vpll0_pd

Name

vpll0_foutvcopd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

vpll0_reset

Bit

Offset Address

0

0

0

0

vpll0_refdiv

0

0

Bits

Access

Name

Description

[31:23]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

0

7

6

5

4

vpll0_fbdiv

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

3-133

Hi3515
Data Sheet

3 System

VPLL0 reset control.
[22]

RW

vpll0_reset

0: reset
1: not reset
VPLL0 power down control.

[21]

RW

0: disabled

vpll0_pd

1: enabled
VPLL0 VCO output power down control.
[20]

RW

vpll0_foutvcopd

0: disabled
1: enabled
VPLL0 POSTDIV output power down control.

[19]

RW

vpll0_postdivpd

0: disabled
1: enabled
VPLL0 FOUT output power down control.

[18]

vpll0_fout4phasepd 0: disabled

RW

1: enabled
[17:12]

RW

vpll0_refdiv

Frequency divider of the VPLL0 reference clock.

[11:0]

RW

vpll0_fbdiv

Integer frequency multiplier divider of VPLL0.

SC_PERCTRL4
SC_PERCTRL4 is video PLL1 frequency control register 1.

Bit

Offset Address

Register Name

Total Reset Value

0x003C

SC_PERCTRL4

0x0000_0000

Reset 0

0

Bits

0

0

vpll1_postdiv1

vpll1_postdiv2

Name

vpll1_bypass

vpll1_dsmpd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

Access

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vpll1_frac

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
VPLL1 frequency-division mode control.

[31]

RW

vpll1_dsmpd

0: decimal frequency-division mode
1: integer frequency-division mode
VPLL1 clock frequency-division bypass control.

[30]

RW

vpll1_bypass

0: no bypass
1: bypass

3-134

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

[29:27]

RW

vpll1_postdiv2

Level-2 output frequency divider of VPLL1.

[26:24]

RW

vpll1_postdiv1

Level-1 output frequency divider of VPLL1.

[23:0]

RW

vpll1_frac

Decimal frequency divider of VPLL1.

SC_PERCTRL5
SC_PERCTRL5 is video PLL1 frequency control register 2.
Register Name

Total Reset Value

0x0040

SC_PERCTRL5

0x0000_0000

0

0

0

0

0

0

0

0

0

vpll1_fout4phasepd

Reset 0

vpll1_postdivpd

reserved

vpll1_pd

Name

vpll1_foutvcopd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

vpll1_reset

Bit

Offset Address

0

0

0

0

8

7

vpll1_refdiv

0

0

Bits

Access

Name

Description

[31:23]

RO

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

vpll1_fbdiv

0

0

0

0

0

0

0

0

0

VPLL1 reset control.
[22]

RW

vpll1_reset

0: reset
1: not reset
VPLL1 power down control.

[21]

RW

vpll1_pd

0: disabled
1: enabled
VPLL1 VCO output power down control.

[20]

RW

vpll1_foutvcopd

0: disabled
1: enabled
VPLL1 POSTDIV output power down control.

[19]

RW

vpll1_postdivpd

0: disabled
1: enabled
VPLL1 FOUT output power down control.

[18]

RW

vpll1_fout4phasepd 0: disabled
1: enabled

[17:12]

RW

vpll1_refdiv

Frequency divider of the VPLL1 reference clock.

[11:0]

RW

vpll1_fbdiv

Integer frequency multiplier of VPLL1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-135

Hi3515
Data Sheet

3 System

SC_PERLOCK
SC_PERLOCK is the lock register of key system control registers.

Bit

Offset Address

Register Name

Total Reset Value

0x0044

SC_PERLOCK

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

scper_lockl

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description
A register for locking the key system control registers. The key
registers include SC_CTRL, SC_SYSSTAT, SC_PLLCTRL,
SC_PERCTRL0, and SC_PERCTRL1.

[31:0]

RW

When 0x1ACC_E551 is written to this register, the write access to
all registers is enabled; when any other value is written to this
register, the write access is disabled.

scper_lockl

Reading this register returns the lock status rather than its written
value.
0x0000_0000: The write access is available (unlocked).
0x0000_0001: The write access is unavailable (locked).

SC_PERCTRL6
SC_PERCTRL6 is ETH PLL frequency control register 1.

Bit

Offset Address

Register Name

Total Reset Value

0x0048

SC_PERCTRL6

0x0000_0000

Reset 0

0

Bits

0

0

epll_postdiv1

epll_postdiv2

Name

epll_bypass

epll_dsmpd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

Access

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

epll_frac

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
EPLL frequency-division mode control.

[31]

RW

epll_dsmpd

0: integer frequency-division mode
1: decimal frequency-division mode

3-136

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

EPLL clock frequency-division bypass control.
[30]

RW

0: no bypass

epll_bypass

1: bypass
[29:27]

RW

epll_postdiv2

Level-2 output frequency divider of EPLL.

[26:24]

RW

epll_postdiv1

Level-1 output frequency divider of the EPLL.

[23:0]

RW

epll_frac

Decimal frequency divider of the EPLL.

SC_PERCTRL7
SC_PERCTRL7 is ETH PLL frequency control register 2.
Register Name

Total Reset Value

0x004C

SC_PERCTRL7

0x0000_0000

0

0

0

0

0

0

0

0

0

epll_fout4phasepd

Reset 0

epll_postdivpd

reserved

epll_pd

Name

epll_foutvcopd

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

epll_reset

Bit

Offset Address

0

0

0

0

8

7

epll_refdiv

0

0

Bits

Access

Name

Description

[31:23]

RO

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

epll_fbdiv

0

0

0

0

0

0

0

0

EPLL reset control.
[22]

RW

epll_reset

0: reset
1: not reset
EPLL power down control.

[21]

RW

epll_pd

0: disabled
1: enabled
EPLL VCO output power down control.

[20]

RW

epll_foutvcopd

0: disabled
1: enabled
EPLL POSTDIV output power down control.

[19]

RW

epll_postdivpd

0: disabled
1: enabled
EPLL FOUT output power down control.

[18]

RW

epll_fout4phasepd 0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-137

Hi3515
Data Sheet

3 System

[17:12]

RW

epll_refdiv

Frequency divider of the EPLL reference clock.

[11:0]

RW

epll_fbdiv

Integer frequency multiplier of the EPLL.

SC_PERCTRL8
SC_PERCTRL8 is soft reset control register 1.

Bits

Access

Name

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

0

0

0

0

0

0

0

1

0
reserved

0

8

reserved

0

ir_srst

0

uart3_srst

0

rtc_srst

vi_srst

0

i2c_srst

vi0_srst

0

reserved

vi1_srst

0

mmc_srst

vi2_srst

0

sio0_srst

vi3_srst

0

sio1_srst

vo_srst

0

eth_srst

reserved

0

reserved

vosd_srst

0

Reset 0

reserved

usb_hrst

Name

vohd_srst

usb_srst

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

0x0000_0000

ssmc_srst

SC_PERCTRL8

cipher_srst

0x0050

uart0_srst

Total Reset Value

uart1_srst

Register Name

uart2_srst

Bit

Offset Address

0

0

Description
USB port soft reset control.

[31]

RW

usb_srst

0: soft reset
1: soft reset clear
USB bus soft reset control.

[30]

RW

usb_hrst

0: soft reset
1: soft reset clear
VO HD soft reset control.

[29]

RW

vohd_srst

0: soft reset
1: soft reset clear
VO SD soft reset control.

[28]

RW

vosd_srst

0: soft reset
1: soft reset clear

[27]

RO

reserved

Reserved.
VO bus soft reset control.

[26]

RW

vo_srst

0: soft reset
1: soft reset clear
VI3 port soft reset control.

[25]

RW

vi3_srst

0: soft reset
1: soft reset clear
VI2 port soft reset control.

[24]

RW

vi2_srst

0: soft reset
1: soft reset clear

3-138

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

VI1 port soft reset control.
[23]

RW

vi1_srst

0: soft reset
1: soft reset clear
VI0 port soft reset control.

[22]

RW

vi0_srst

0: soft reset
1: soft reset clear
VI bus soft reset control.

[21]

RW

vi_srst

0: soft reset
1: soft reset clear

[20:19]

RO

reserved

Reserved.
ETH bus soft reset control.

[18]

RW

eth_srst

0: soft reset
1: soft reset clear

[17]

RO

reserved

Reserved.
SIO1 soft reset control.

[16]

RW

sio1_srst

0: soft reset clear
1: soft reset
SIO0 soft reset control.

[15]

RW

sio0_srst

0: soft reset clear
1: soft reset
MMC soft reset control.

[14]

RW

mmc_srst

0: soft reset
1: soft reset clear

[13]

RO

reserved

Reserved.
I2C soft reset control.

[12]

RW

i2c_srst

0: soft reset clear
1: soft reset
RTC soft reset control.

[11]

RW

rtc_srst

0: soft reset clear
1: soft reset
IR soft reset control.

[10]

RW

ir_srst

0: soft reset clear
1: soft reset
UART3 soft reset control.

[9]

RW

uart3_srst

0: soft reset clear
1: soft reset

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-139

Hi3515
Data Sheet

3 System

UART2 soft reset control.
[8]

RW

uart2_srst

0: soft reset clear
1: soft reset
UART1 soft reset control.

[7]

RW

0: soft reset clear

uart1_srst

1: soft reset
UART0 soft reset control.
[6]

RW

uart0_srst

0: soft reset clear
1: soft reset
CIPHER soft reset control.

[5]

RW

cipher_srst

0: soft reset clear
1: soft reset
SSMC soft reset control.

[4]

RW

0: soft reset clear

ssmc_srst

1: soft reset
[3]

RO

reserved

Reserved.

[2]

RO

reserved

Reserved.

[1:0]

RO

reserved

Reserved.

SC_PERCTRL9
SC_PERCTRL9 is clock mode control register 1.

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

0

0

0

0

0

0

7

vi1div_sel

0

vi2div_sel

0

vi3div_sel

mmcclk_sel
0

reserved

8

0

0

6

0

0

5

4

3

2

1

0
tde_clk_sel

0

vo0out_sel

0

vo1out_sel

Reset 0

mmcsap_sel

reserved

reserved

Name

aclkout_sel

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

sata_clk_sel

0x0000_0000

ssmcclk_sel

SC_PERCTRL9

vo0out_clk_sel

0x0054

vi1_vi0_sel

Total Reset Value

vi3_vi2_sel

Register Name

vi0div_sel

Bit

Offset Address

0

0

0

0

0

0

ACKOUT output clock select.
[25]

RW

aclkout_sel

0: SIO0 system clock
1: SIO1 system clock

3-140

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[24:23]

[22]

RO

RW

3 System

reserved

mmcsap_sel

Reserved.
Normal/reverse phase control for the MMC sampling card data
clock.
0: Use the normal phase clock as the sampling clock.
1: Use the reverse phase clock as the sampling clock.
Frequency control for the MMC working clock.
00: 25 MHz

[21:20]

RW

mmcclk_sel

01: 50 MHz
10: reserved
11: 19.23 MHz

[19]

RO

vo1out_sel

Reserved.
Normal/reverse phase control for the output clock of the VO0 port.

[18]

RW

vo0out_sel

0: output normal phase clock of the VO0 port
1: output reverse phase clock of the VO0 port

[17:14]

RO

reserved

Reserved.
Frequency-division control for the VI3 port clock.
00: VI3 port clock divided by 2

[13:12]

RW

vi3div_sel

01: VI3 port clock divided by 4
10: VI3 port clock
11: reserved
Frequency-division control for the VI2 port clock.
00: VI2 port clock divided by 2

[11:10]

RW

vi2div_sel

01: VI2 port clock divided by 4
10: VI2 port clock
11: reserved
Frequency-division control for the VI1 port clock.
00: VI1 port clock divided by 2

[9:8]

RW

vi1div_sel

01: VI1 port clock divided by 4
10: VI1 port clock
11: reserved
Frequency-division control for the VI0 port clock.
00: VI0 port clock divided by 2

[7:6]

RW

vi0div_sel

01: VI0 port clock divided by 4
10: VI0 port clock
11: reserved
VI3 port clock select.

[5]

RW

vi3_vi2_sel

0: input clock of the VI3 port
1: input clock of the VI2 port

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-141

Hi3515
Data Sheet

3 System

VI1 port clock select.
[4]

RW

vi1_vi0_sel

0: input clock of the VI1 port
1: input clock of the VI0 port
Frequency ratio of the SSMC clock to the bus clock.

[3]

RW

0: SSMC:HCLK = 1:1

ssmcclk_sel

1: SSMC:HCLK = 1:2
Output clock select of the VO0 port (for test).
[2]

RW

vo0out_clk_sel

0: VO0 output clock
1: VO1 output clock
SATA clock select.

[1]

RW

sata_clk_sel

0: 25 MHz clock
1: 125 MHz EPLL clock
TDE clock select.

[0]

RW

0: 270 MHz VPLL clock

tde_clk_sel

1: 266 MHz APLL clock

SC_PERCTRL10
SC_PERCTRL10 is soft reset control register 2.

vedu0_vpp_en

vedu0_vedsel

vedu0_stdmod

vedu0_power_mode

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:25]

RO

reserved

Reserved.

8

7

reserved

0

0

0

0

6

5

4

3

2

1

0

tde_srst

vedu0_mdu_en

0

vedu0_stdmod_p1

0

sata_rst

0

sata_hrst

0

sata_phyrst

0

sata_tx0_rst

0

sata_tx1_rst

Reset 0

sata_rx0_rst

reserved

sata_rx1_rst

Name

sata_alive_rst

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

tde_hrst

0x0000_0000

reserved

SC_PERCTRL10

nadc_hrst

0x0058

spi_hrst

Total Reset Value

ddr_hrst

Register Name

dma_hrst

Bit

Offset Address

0

0

0

0

0

0

0

Soft reset control for the SATA controller alive clock domain.
[24]

RW

sata_alive_rst

0: soft reset
1: soft reset clear
Soft reset control for the SATA controller rx1 clock domain.

[23]

RW

sata_rx1_rst

0: soft reset
1: soft reset clear

3-142

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Soft reset control for the SATA controller rx0 clock domain.
[22]

RW

sata_rx0_rst

0: soft reset
1: soft reset clear
Soft reset control for the SATA controller tx1 clock domain.

[21]

RW

sata_tx1_rst

0: soft reset
1: soft reset clear
Soft reset control for the SATA controller tx0 clock domain.

[20]

RW

sata_tx0_rst

0: soft reset
1: soft reset clear
Soft reset control for SATA PHY.

[19]

RW

sata_phyrst

0: soft reset
1: soft reset clear
Soft reset control for the SATA controller bus.

[18]

RW

sata_hrst

0: soft reset
1: soft reset clear
Soft reset control for the SATA controller interface.

[17]

RW

sata_rst

0: soft reset
1: soft reset clear

[16:11]

RW

vedu0_stdmod_p1 Reserved.

[10:7]

RO

reserved

Reserved.
Soft reset control for the DMA bus.

[6]

RW

dma_hrst

0: soft reset clear
1: soft reset
Soft reset control for the DDR bus.

[5]

RW

ddr_hrst

0: soft reset clear
1: soft reset
Soft reset control for the SPI bus.

[4]

RW

spi_hrst

0: soft reset clear
1: soft reset

[3]

RO

reserved

Reserved.
Soft reset control for the NANDC bus.

[2]

RW

nadc_hrst

0: soft reset clear
1: soft reset
Soft reset control for the TDE.

[1]

RW

tde_srst

0: soft reset clear
1: soft reset

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-143

Hi3515
Data Sheet

3 System

Soft reset control for the TDE bus.
[0]

RW

tde_hrst

0: soft reset clear
1: soft reset

SC_PERCTRL11
SC_PERCTRL11 is peripheral operating mode register 1.
Total Reset Value

0x005C

SC_PERCTRL11

0x0100_4000

0

0

Reset 0

Bits

ebinandc_time_out

0

0

Access

0

0

1

0

0

0

Name

8

ebismi_time_out

0

0

0

0

0

0

1

0

0

7

ebi_arb_delay

spi_port

Name

smi_canclewait

uart1_rtsmode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

6

5
i2c_delay_bypass

Register Name

ebi_mormal_mode

Bit

Offset Address

0

0

4

3

2

1

0

reserved

0

0

0

0

0

Description
UART1 request-to-send (RTS) signal mode.

[31]

RW

uart1_rtsmode

0: normal mode
1: reverse mode
SPI CS select.

[30]

RW

spi_port

0: SPI_CS0
1: SPI_CS1
External wait interrupt signal of the SMI module.

[29]

RW

smi_canclewait

0: wait in normal mode
1: interrupt the operations performed through the SMI interface
forcibly
Timeout value set by the NANDC module through the EBI
interface.

[28:19]

RW

If the access operation of the NANDC module is not responded
ebinandc_time_out during the timeout period, the NANDC module schedules the
shared channel by taking priority over the SMI module. It is
recommended to set the value of these bits to 0x020 if arbitration
occurs.
Timeout value set by the SMI module through the EBI interface.

[18:9]

3-144

RW

ebismi_time_out

If the access operation of the SMI module is not responded during
the timeout period, the SMI module schedules the shared channel
by taking priority over the NANDC module. It is recommended to
set the value of these bits to 0x020 if arbitration occurs.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

EBI delay of the switching between the SMI and NANDC.
00: no delay
[8:7]

RW

ebi_arb_delay

01: delay one cycle
10: delay two cycles
11: delay three cycles
EBI arbitration mode.

[6]

RW

ebi_mormal_mode 0: normal mode
1: dock mode. It is idle by default.
I2C serial data (SDA) delay relative to the serial clock (SCL).

[5]

i2c_delay_bypass 0: no delay

RW

1: delay 300 ns
[4:0]

RO

reserved

Reserved.

SC_PERCTRL12
SC_PERCTRL12 is peripheral operating mode register 2.

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RO

reserved

Reserved.

[19]

RW

usb_start_clk

0

0

0

0

0

0

0

0

0

6

5

4

reserved

0

7

0

0

0

3

2

1

0

sio0_xck

0

8

sio0_master

Reset 0

reserved

usb_tune0

reserved

usb_tune1

Name

usb_susp_lgcy

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

sio0_xfs

0x0000_0000

sio1_master

SC_PERCTRL12

vou_test_en

0x0060

dac0_powredown

Total Reset Value

dac1_powredown

Register Name

usb_start_clk

Bit

Offset Address

0

0

0

0

OHCI clock control signal. When the OHCI clock is suspended,
this bit should be set to 1 to enable the 12 MHz and 48 MHz
clocks of the OHCI module. After the two clocks are enabled, this
bit should be set to 0 before the OHCI clock is suspended again.
0: After the OHCI clock is suspended, the 12 MHz and 48 MHz
clocks are disabled.
1: After the OHCI clock is suspended, the 12 MHz and 48 MHz
clocks are enabled.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-145

Hi3515
Data Sheet

3 System

Strap signal of the OHCI clock.

[18]

RW

usb_susp_lgcy

0: When the USB ports use the OHCI controller,
utmi_suspend_o_n = 0 indicates that all the USB ports that use the
OHCI controller are suspended or the OHCI controller is in the
global suspend state; utmi_suspend_o_n = 1 indicates that part of
the USB ports that use the OHCI controller are suspended or the
OHCI controller is not in the global suspend state.
1: When USB ports use the OHCI controller, the
utmi_suspend_o_n signal shows the suspend state of the
corresponding port.

[17:14]

RO

reserved

Reserved.
High-speed adjust signal of the transmitter of USB port 1. The
static signal is used to adjust the current at high speed.
00: The default value is decreased by 4.5%.

[13:12]

RW

usb_tune1

01: default rated operating voltage
10: The default value is increased by 4.5%.
11: The default value is increased by 9%.
Note: Set this signal only when the USB PHY is reset. This value
must be maintained in normal mode.
High-speed adjust signal of the transmitter of USB port 0. The
static signal is used to adjust the current at high speed.
00: The default value is decreased by 4.5%.

[11:10]

RW

usb_tune0

01: default rated operating voltage
10: The default value is increased by 4.5%.
11: The default value is increased by 9%.
Note: Set this signal only when the USB PHY is reset. This value
must be maintained in normal mode.
DAC1 power down control.

[9]

RW

dac1_powredown 0: power down
1: power on
DAC0 power down control.

[8]

RW

dac0_powredown 0: power down
1: power on
VOU test enable.

[7]

RW

vou_test_en

0: normal mode
1: test mode

[6:4]

RO

reserved

Reserved.
SIO1 master/slave mode.

[3]

3-146

RW

sio1_master

0: slave mode. Clocks and sync signals are obtained from pins.
1: master mode. Clock and sync signals are generated in the
Hi3515.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SIO0 transmit frame sync signal select.
[2]

RW

0: The SIO0 transmit channel uses the signals passing through the
SIO0XFS pin or generated by the Hi3515.

sio0_xfs

1: The SIO0 transmit channel uses the signals generated by the
SIO0RFS pin or the Hi3515. The SIO0XFS pin is invalid.
SIO0 transmit clock select.
[1]

RW

0: The SIO0 transmit channel uses the signals passing through the
SIO0XCK pin or generated by the Hi3515.

sio0_xck

1: The SIO0 transmit channel uses the signals passing through the
SIO0RCK pin or generated by the Hi3515. The SIO0XCK pin is
invalid.
SIO0 master/slave mode.

[0]

RW

0: slave mode. Clocks and sync signals are obtained from pins.

sio0_master

1: master mode. Clock and sync signals are generated in the
Hi3515.

SC_PERCTRL13
SC_PERCTRL13 is clock mode control register 2.

Bit

Offset Address

Register Name

Total Reset Value

0x0064

SC_PERCTRL13

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name sio0_lrclk_sel sio0_bclk_sel
Reset 0

0

Bits

0

0

0

Access

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

sio0clk_sel

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
SIO0 sampling clock frequency control. These bits provide the
options of dividing the frequency of the SIO bit stream clock by 2,
4, 8, 16, 32, 48, 64, 128, or 256.
0x0: divided by 2
0x1: divided by 4
0x2: divided by 8

[31:28]

RW

sio0_lrclk_sel

0x3: divided by 16
0x4: divided by 32
0x5: divided by 48
0x6: divided by 64
0x7: divided by 128
0x8: divided by 256
Others: reserved

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-147

Hi3515
Data Sheet

3 System

SIO0 bit stream clock frequency control. These bits provide the
options of dividing the frequency of the SIO0 system clock by 1,
2, 3, 4, 6, 8, 12, 16, 24, 48, 64, or 128.
0x0: divided by 1
0x1: divided by 3
0x2: divided by 2
0x3: divided by 4
0x4: divided by 6
[27:24]

RW

sio0_bclk_sel

0x5: divided by 8
0x6: divided by 12
0x7: divided by 16
0x8: divided by 24
0x9: divided by 48
0x10: divided by 64
0x11: divided by 128
Others: reserved

[23:0]

RW

SIO system clock frequency control. These bits provide the
options of dividing the frequency of the EPLL output clock (500
MHz) by any value.

sio0clk_sel

Fsio = (sio0clk_sel x Fepll)/2^27

SC_PERCTRL14
SC_PERCTRL14 is clock mode control register 3.

Bit

Offset Address

Register Name

Total Reset Value

0x0068

SC_PERCTRL14

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

sio1_bclk_sel
0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

sio12clk_sel

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RO

reserved

Reserved.

3-148

8

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SIO1 bit stream clock frequency control. These bits provide the
options of dividing the frequency of the SIO1 system clock by 1,
2, 3, 4, 6, 8, 12, 16, 24, 48, 64, or 128.
0x0: divided by 1
0x1: divided by 3
0x2: divided by 2
0x3: divided by 4
0x4: divided by 6
[27:24]

RW

sio1_bclk_sel

0x5: divided by 8
0x6: divided by 12
0x7: divided by 16
0x8: divided by 24
0x9: divided by 48
0x10: divided by 64
0x11: divided by 128
Others: reserved

[23:0]

RW

SIO1 or SIO2 system clock frequency control. These bits provide
options of dividing the frequency of the EPLL output clock (500
MHz) by any value.

sio12clk_sel

Fsio = (sio12clk_sel x Fepll)/2^27

SC_PERCTRL16
SC_PERCTRL16 is clock mode control register 4.
Register Name

Total Reset Value

0x0070

SC_PERCTRL16

0x0000_0000

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:10]

RO

reserved

Reserved.

0

0

0

0

0

0

8
sio0_bclk_edge

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
sio1_bclk_edge

Bit

Offset Address

0

0

7

6

5

4

3

2

1

0

0

0

0

reserved

0

0

0

0

0

Normal/reverse edge output select of SIO1BCLK.
[9]

RW

sio1_bclk_edge

0: normal edge
1: reverse edge

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-149

Hi3515
Data Sheet

3 System

Normal/reverse edge output select of SIO0BCLK.
[8]

RW

0: normal edge

sio0_bclk_edge

1: reverse edge
[7:0]

RO

reserved

Reserved.

SC_PERCTRL23
SC_PERCTRL23 is the chip operating mode status and PLL status register.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:15]

RO

reserved

Reserved.

0

0

0

0

0

0

0

6

5

4

3

2

1

0

apll_lock

0

7

vpll0_lock

Reset 0

8

epll_lock

reserved

nf_page_size

nf_ecc_type

Name

nf_addr_num

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

vpll1_lock

0x0000_0000

reserved

SC_PERCTRL23

reserved

0x008C

boot_mode

Total Reset Value

reserved

Register Name

debug_sel

Bit

Offset Address

0

0

0

0

0

0

0

0

0

ECC mode when the system boots from the NAND flash.
bit[14] and bit[13] map to the power-on status of the multiplexed
pins NFECC0 and NFECC1 respectively.
[14:13]

RO

nf_ecc_type

The definitions of NFECC0 and NFECC1 are as follows:
00: disabled
01: 1-bit mode
10: 4 bit mode
11: 8-bit mode
Number of addresses when the system boots from the NAND
flash.
bit[12] and bit[11] map to the power-on status of the multiplexed
pins NFNUM0 and NFNUM1 respectively.

[12:11]

RO

nf_addr_num

The definitions of NFNUM0 and NFNUM1 are as follows:
00: 3 address cycles
01: 4 address cycles
10: 5 address cycles
11: 6 address cycles

3-150

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

Page size when the system boots from the NAND flash.
bit[10] and bit[9] map to the power-on status of the multiplexed
pins NFPAGE0 and NFPAGE1 respectively.
[10:9]

RO

nf_page_size

The definitions of NFPAGE0 and NFPAGE1 are as follows:
01: 2 KB
10: 4 KB
Others: reserved
Selected ARM debug mode.

[8]

RO

debug_sel

0: debug ARM926
1: debug SATA PHY

[7]

RO

reserved

Reserved, fixed at 0x0 in read.
Selected boot mode of the chip.

[6]

RO

boot_mode

00: boot from the NOR flash
00: boot from the NAND flash

[5]

RO

reserved

Reserved, fixed at 0x0 in read.

[4]

RO

reserved

Reserved.
Lock status of the Ethernet PLL.

[3]

RO

epll_lock

0: unlocked
0: locked
Lock status of the video1 PLL.

[2]

RO

vpll1_lock

0: unlocked
0: locked
Lock status of the video0 PLL.

[1]

RO

vpll0_lock

0: unlocked
0: locked
Lock status of the ARM PLL.

[0]

RO

apll_lock

0: unlocked
0: locked

SC_SYSID0
SC_SYSID0 is chip ID register 0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-151

Hi3515
Data Sheet

3 System

Bit

Offset Address

Register Name

Total Reset Value

0xEE0

SC_SYSID0

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

sysid0

Reset

0

0

0

0

Bits

Access Name

Description

[7:0]

RO

Reading this register returns 0x00.

sysid0

SC_SYSID1
SC_SYSID1 is chip ID register 1.

Bit

Offset Address

Register Name

Total Reset Value

0xEE4

SC_SYSID1

0x01

7

6

5

4

Name

3

2

1

0

0

0

0

1

sysid1

Reset

0

0

0

0

Bits

Access Name

Description

[7:0]

RO

Reading this register returns 0x01.

sysid1

SC_SYSID2
SC_SYSID2 is chip ID register 2.

Bit

Offset Address

Register Name

Total Reset Value

0xEE8

SC_SYSID2

0x15

7

6

5

4

Name

2

1

0

0

1

0

1

sysid2

Reset

3-152

3

0

0

0

1

Bits

Access Name

Description

[7:0]

RO

Reading this register returns 0x15.

sysid2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

SC_SYSID3
SC_SYSID3 is chip ID register 3.

Bit

Offset Address

Register Name

Total Reset Value

0xEEC

SC_SYSID3

0x35

7

6

5

4

Name

3

2

1

0

0

1

0

1

sysid3

Reset

0

0

1

1

Bits

Access Name

Description

[7:0]

RO

Reading this register returns 0x35.

sysid3

3.11 Power Management and Low-Power Mode Control
3.11.1 Overview
In low-power mode, the power consumption of chip is reduced effectively. The Hi3515
dynamically reduces its power consumption in the following low-power control modes:
z

System operating mode control
In each operating mode except the normal mode, the power consumption is reduced to
some extent. You can select different operating modes according to the actual power
consumption and function requirements.

z

Clock gating and clock frequency adjustment
The Hi3515 supports the disabling of clocks. That is, you can disable the clocks of
unused modules, thus reducing the power consumption. In addition, the frequency of the
system working clock can be adjusted. That is, when the function requirement is met,
you can adjust the clock frequency to dynamically reduce the power consumption of the
Hi3515.

z

DDR low-power control
You can enable the self-refresh mode of the DDR to reduce the power consumption of
the Hi3515.

3.11.2 Operating Modes of the System
The system provides four operating modes. For details, see "Controlling the Operating Modes
of the System" in section 3.10.3 "Function Description."

3.11.3 Clock Gating and Clock Frequency Adjustment
The system provides the clock gating functions for the following modules. When a module is
idle, its clock can be disabled to reduce the power consumption of the Hi3515. For details
about the process, see the description in the section of "clock gating" of the following
modules:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-153

Hi3515
Data Sheet

3 System
z

VEDU

z

MMC

z

VIU

z

VOU

z

TDE

z

CIPHER

z

ETH

z

SIO

z

UART

z

SMI

z

NANDC

z

USB 2.0 HOST

z

SSP

z

SATA

z

IR

In normal mode, the system can reduce the power consumption of the Hi3515 by adjusting its
operating frequency. To adjust the system operating frequency, the following steps take place:
Step 1 Disable the service module to prevent it from accessing the DDR.
Step 2 The system runs in the flash or the TCM.
Step 3 Set DDRC_DLL_CONFIG[dll_cali_en] to 1 to recalibrate the delay locked loop (DLL).
Step 4 Set DDRC_CTRL[sr_req] to 1 to request to enter the self-refresh mode.
Step 5 Query the DDRC_STATUS[in_sr] bit. When it is 1, go to Step 6.
Step 6 Configure the value of SC_PLLCTRL[27:3] as the stable time of the PLL.
Step 7 Configure SC_PERCTRL0 and SC_PERCTRL1 to control the frequency-division ratio of the
PLL and switch the PLL clock. That is, output a PLL clock to the DDRC when the clock is
stable.
Step 8 Set DDRC_CTRL[sr_req] to 0 to request to exit the self-refresh mode.
Step 9 Query the DDRC_STATUS[in_sr] bit until it is 0.
Step 10 Set DDRC_DLL_CONFIG[dll_cali_en] to 0 to disable the recalibration function of the DLL.
Step 11 Run the software program in the DDR and enable the service module.
----End
Besides the preceding method, you can also adjust the operating frequencies of certain
modules, thus further reducing the power consumption of the system. For details, see the
section "Clock Configuration" of the SMI and MMC modules.

3.11.4 DDR Low-Power Control
By using this control mode, you can dynamically control the power consumption of the pins
in the DDR controller and chip of the peer DDR.

3-154

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

3 System

z

By configuring DDRC_CONFIG[pd_en] and DDRC_CONFIG[pd_prd], you can enable
the DDR to enter the low-power mode. When the bus does not access the DDR, the
DDRC enables the DDR to enter the low-power mode, thus reducing the power
consumption.

z

By setting DDRC_CTRL[sr_req] to 1, you can enable the DDR to enter the self-refresh
mode to reduce the power consumption. To enable the DDR to enter the self-refresh
mode, the following requirements must be met: before the DDR enters the self-refresh
mode, the program must run in the on-chip program memory or the flash memory.
Additionally, the DDR self-refresh function is enabled by the DDRC.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3-155

Hi3515
Data Sheet

Contents

Contents
4 Memory Controller ....................................................................................................................4-1
4.1 DDR Controller.............................................................................................................................................4-1
4.1.1 Overview..............................................................................................................................................4-1
4.1.2 Features................................................................................................................................................4-1
4.1.3 Signal Description................................................................................................................................4-1
4.1.4 Function Description............................................................................................................................4-3
4.1.5 Operating Mode ...................................................................................................................................4-9
4.1.6 Registers Summary ............................................................................................................................4-10
4.1.7 Registers Description .........................................................................................................................4-12
4.2 SMI Controller ............................................................................................................................................4-37
4.2.1 Overview............................................................................................................................................4-37
4.2.2 Features..............................................................................................................................................4-38
4.2.3 Signal Description..............................................................................................................................4-38
4.2.4 Function Description..........................................................................................................................4-39
4.2.5 Operating Mode .................................................................................................................................4-43
4.2.6 Register Summary..............................................................................................................................4-46
4.2.7 Register Description...........................................................................................................................4-47
4.3 NAND Flash Controller ..............................................................................................................................4-60
4.3.1 Overview............................................................................................................................................4-60
4.3.2 Features..............................................................................................................................................4-60
4.3.3 Description of NANDC Interfaces.....................................................................................................4-61
4.3.4 Function Description..........................................................................................................................4-62
4.3.5 Operating Mode .................................................................................................................................4-64
4.3.6 Register Summary..............................................................................................................................4-73
4.3.7 Register Description...........................................................................................................................4-74

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 4-1 Interconnection between the DDRC and two DDR2 SDRAMs .......................................................4-4
Figure 4-2 Connection between the SMI controller and the asynchronous static memory ..............................4-40
Figure 4-3 Connection between the SMI controller and the control devices integrated with asynchronous static
memory interfaces.............................................................................................................................................4-40
Figure 4-4 Timing diagram (read/write) of the SMI controller in timing parameter mode ..............................4-42
Figure 4-5 Timing diagram (page read) of the SMI controller in timing parameter mode ...............................4-42
Figure 4-6 Timing diagram (wait read/write) of the SMI controller in asynchronous wait mode ....................4-43
Figure 4-7 Block diagram of NANDC interfaces.............................................................................................4-62
Figure 4-8 Typical timing when the NANDC reads the data of a page size from the NAND flash .................4-63
Figure 4-9 Timing when the NANDC starts to be programmed.......................................................................4-64
Figure 4-10 Data storage structure of the NAND flash with the page size of (512 + 16) bytes in 1-bit ECC mode
...........................................................................................................................................................................4-68
Figure 4-11 Data storage structure of the NAND flash with the page size of 2 KB (2048 + 64) bytes............4-69
Figure 4-12 Data structure after data is automatically stored in main areas and their corresponding spare areas469
Figure 4-13 Data storage structure of the NAND flash with the page size of 2 KB (2048 + 64) bytes in 4-bit
ECC mode .........................................................................................................................................................4-70
Figure 4-14 Data storage structure of the NAND flash with the page size of (2048 + 26 x 4) bytes in 8-bit ECC
mode..................................................................................................................................................................4-70

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 4-1 Signals of the DDRC interface ...........................................................................................................4-1
Table 4-2 DDR2 SDRAMs supported by the DDRC .........................................................................................4-5
Table 4-3 Command truth table of the DDRC ....................................................................................................4-6
Table 4-4 Address mapping when the DDRC is in 32-bit mode.........................................................................4-8
Table 4-5 Summary of the DDRC register (base address: 0x2011_0000) ........................................................4-10
Table 4-6 Variables in the offset addresses of registers ....................................................................................4-12
Table 4-7 Interface signals of the SMI controller .............................................................................................4-38
Table 4-8 Configuration of timing parameters of the SMI controller (bus clock fBUSCLK = 200 MHz) .......4-41
Table 4-9 Read/write timing parameters of the SMI controller ........................................................................4-42
Table 4-10 Page read timing parameters of the SMI controller ........................................................................4-43
Table 4-11 Memory address space supported by the SMI controller................................................................4-44
Table 4-12 Summary of SMI controller registers (base address: 0x1010_0000)..............................................4-46
Table 4-13 Signals of NANDC interfaces ........................................................................................................4-61
Table 4-14 Boot configuration pins ..................................................................................................................4-65
Table 4-15 K9F2G08U0M addresses ...............................................................................................................4-66
Table 4-16 K9GAG08X0M addresses..............................................................................................................4-67
Table 4-17 Common commands for operating the NAND flash memories......................................................4-67
Table 4-18 Summary of NANDC registers (base address: 0x1000_0000) .......................................................4-73

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

4 Memory Controller

4

Memory Controller

4.1 DDR Controller
4.1.1 Overview
The DDR2 SDRAM controller (DDRC) provides DDR2 interfaces for accessing the DDR2
SDRAM. The Hi3515 has one DDRC interface.

4.1.2 Features
The DDRC has the following features:
z

Provides a DDR2 SDRAM chip select space that supports the 32-bit mode.

z

Supports a maximum of 512 MB storage space (for the 32-bit DDRC).

z

Supports the burst-of-four transfer mode of the DDR2 SDRAM

z

Supports configurable timing parameters, thus satisfying various frequency requirements
of components

z

Controls the auto-refresh and self-refresh modes of the DDR SDRAM and DDR2
SDRAM

z

Supports the low-power mode.

z

Supports the 200 MHz operating frequency of the DDR2 SDRAM

4.1.3 Signal Description
Table 4-1 describes the signals of the DDRC interface.
Table 4-1 Signals of the DDRC interface
Signal

Direction

Description

Pin

DDRCKP0

O

Positive differential clock 0

DDRCKP0

DDRCKN0

O

Negative differential clock 0

DDRCKN0

DDRCKP1

O

Positive differential clock 1

DDRCKP1

DDRCKN1

O

Negative differential clock 1

DDRCKN1

DDRCKE

O

DDR2 SDRAM clock enable

DDRCKE

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-1

Hi3515
Data Sheet

4 Memory Controller

4-2

Signal

Direction

Description

Pin

DDRCSN

O

DDR2 SDRAM CS

DDRCSN

DDRRASN

O

DDR2 SDRAM RAS

DDRRASN

DDRCASN

O

DDR2 SDRAM CAS

DDRCASN

DDRWEN

O

DDR2 SDRAM WE

DDRWEN

DDRODT

O

DDR2 SDRAM ODT enable

DDRODT

DDRBA0

O

DDR2 SDRAM bank address
0

DDRBA0

DDRBA1

O

DDR2 SDRAM bank address
1

DDRBA1

DDRBA2

O

DDR2 SDRAM bank address
2

DDRBA2

DDRADR[13:0]

O

DDR SDRAM address signal

DDRADR13–
DDRADR0

DDRDM0

O

DDR2 SDARM0 lower-bit
DM signal, corresponding to
data buses DQ0–DQ7

DDRDM0

DDRDM1

O

DDR2 SDARM0 upper-bit
DM signal, corresponding to
data buses DQ8–DQ15

DDRDM1

DDRDM2

O

DDR2 SDARM1 lower-bit
DM signal, corresponding to
data buses DQ16–DQ23

DDRDM2

DDRDM3

O

DDR2 SDARM1 upper-bit
DM signal, corresponding to
data buses DQ24–DQ31

DDRDM3

DDRDQSP0

I/O

Positive DQS0,
corresponding to data buses
DQ0–DQ7

DDRDQSP0

DDRDQSN0

I/O

Negative DQS0,
corresponding to data buses
DQ0–DQ7

DDRDQSN0

DDRDQSP1

I/O

Positive DQS1,
corresponding to data buses
DQ8–DQ15

DDRDQSP1

DDRDQSN1

I/O

Negative DQS1,
corresponding to data buses
DQ8–DQ15

DDRDQSN1

DDRDQSP2

I/O

Positive DQS2,
corresponding to data buses
DQ16–DQ23

DDRDQSP2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Signal

Direction

Description

Pin

DDRDQSN2

I/O

Negative DQS2,
corresponding to data buses
DQ16–DQ23

DDRDQSN2

DDRDQSP3

I/O

Positive DQS3,
corresponding to data buses
DQ24–DQ31

DDRDQSP3

DDRDQSN3

I/O

Negative DQS3,
corresponding to data buses
DQ24–DQ31

DDRDQSN3

DDRDQ[31:0]

I/O

Data bus

DDRDQ31–
DDRDQ0

z

CS = chip select

z

RAS = row address select

z

CAS = column address select

z

WE = write enable

z

DQS = data strobe

z

DM = data mask

z

ODT = on-die termination

4.1.4 Function Description
4.1.4.1 Application Block Diagram
Through the DDRC, the master devices such as the CPU of the system-on-chip (SoC) can
access the external DDR2 SDRAM. After the timing parameter registers of the DDRC are
configured through the CPU, the DDRC supports the DDR2 SDRAM that complies with the
JEDEC (JESD79) standard.
The DDRC can interconnect to the DDR2 SDRAM in 32-bit mode. In this mode, the DDRC
connects to two DDR2 SDRAMs (each one has 16-bit data bus width), as shown in Figure 4-1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-3

Hi3515
Data Sheet

4 Memory Controller

Figure 4-1 Interconnection between the DDRC and two DDR2
SDRAMs

Hi3515
DDR_CKP0
DDR_CKN0
DDR_DQ[15:0]
DDR_DQSP[1:0]
DDR_DQSN[1:0]
DDR_DM[1:0]

DDRC

DDR_CKE
DDR_CSN
DDR_RASN
DDR_CASN
DDR_WEN
DDR_ODT
DDR_BA[2:0]
DDR_ADR[13:0]
DDR_CKP1
DDR_CKN1
DDR_DQ[31:16]
DDR_DQSP[3:2]
DDR_DQSN[3:2]
DDR_DM[3:2]

CK
DDR2 SDRAM
CK#
DQ[15:0]
DQS[1:0]
DQS#[1:0]
DM[1:0] (UDM,LDM)

0

(CKE, /CS, /RAS, /CAS,
/WE, BA, Ax, ODT)

CK
DDR2 SDRAM
CK#
DQ[15:0]
DQS[1:0]
DQS#[1:0]
DM[1:0] (UDM,LDM)

1

z

The symbol # indicates active low.

z

Both DDR2 SDRAM0 and DDR2 SDRAM1 have 16-bit data bus width. Figure 4-1 shows how the
DDRC connects to DDR2 SDRAMs in 32-bit DDR2 mode.

z

The DDRC signals DDRCKE, DDRCSN, DDRRASN, DDRCASN, DDRWEN, DDRBA[2:0], and
DDRADR[13:0] are connected to the command control signals CKE, /CS, /RAS, /CAS, /WE, BA,
and Ax of DDR2 SDRAM0 respectively. See Figure 4-1.

z

When the capacity of the DDR2 SDRAM is less than 1 Gbit, the signal DDR_BA[2] of the DDRC is
floated as output.

4.1.4.2 Function Principle
The DDRC supports the DDR2 SDRAMs provided by the mainstream DRAM vendors, as
shown in Table 4-2. The descriptions in Table 4-2 are based on the working frequencies of
DDR2 SDRAMs. The restrictions such as the capacity are not taken into account.

4-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Table 4-2 DDR2 SDRAMs supported by the DDRC
Vendor

200 MHz

333 MHz

400 MHz

Remarks

JESD79

DDR2-400

DDR2-667

DDR2-800

1, 2

(DDR2 Standard)

DDR2-533

DDR2-800

-25 DDR2800

3

DDR2-667
DDR2-800
Micron

-5E DDR2-400

-3 DDR2-667

-37E DDR2-533

-3E DDR2-667

-3 DDR2-667

-25 DDR2-800

-3E DDR2-667

-25E DDR2-800

-25E DDR2800

-25 DDR2-800
-25E DDR2-800
ELPIDA

-4A DDR2-400

-6E DDR2-667

-5C DDR2-533

-6C DDR2-667

-6E DDR2-667

-8E DDR2-800

-8E DDR2800

3

-S5 DDR2800

3

-6C DDR2-667
-8E DDR2-800
Hynix

-E3 DDR2-400

-Y4 DDR2-667

-C4 DDR2-533

-Y5 DDR2-667

-Y4 DDR2-667

-S5 DDR2-800

-Y5 DDR2-667

-S6 DDR2-800

-S6 DDR2800

-S5 DDR2-800
-S6 DDR2-800
Samsung

-CC DDR2-400

-E6 DDR2-667

-D5 DDR2-533

-E7 DDR2-800

-E7 DDR2800

3

-E6 DDR2-667
-E7 DDR2-800

z

1. The Hi3515 DDRC supports most SDRAMs that comply with the JESD79 standard. In different
operating modes, the DDRC supports only the SDRAMs whose frequencies are equal to or higher
than the working frequency of the DDRC. When you use the SDRAMs provided by other vendors,
you can select the SDRAMs and their classes based on the preceding descriptions.

z

2. The DDR2 SDRAMs provided by each vendor vary according to frequencies. Even at the same
working frequency, the SDRAMs provided by the same vendor have different capacities and
versions. The DDRC supports all the DDR2 SDRAM types listed in Table 4-2. You can select the
capacity and bit width of a DDR2 SDRAM based on the application scenario of the system chip.

z

3. The DDRC supports the burst-of-four DDR2 SDRAMs only.

The functions of the DDRC are implemented according to the timings of the JESD79 DDR2
SDRAM. By transmitting the command words of the DDR2 SDRAM, the DDRC accesses the

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-5

Hi3515
Data Sheet

4 Memory Controller

DDR2 SDRAM and controls its status. Such functions include write/read access, auto refresh,
and low-power control for the DDR2 SDRAM.

Command Truth Table
The DDRC supports the major command words of the DDR2 SDRAM. Table 4-3 shows the
command truth table of the DDRC.
Table 4-3 Command truth table of the DDRC
FUNCTION

DD
R

DD
R

DDR

DDR

DDR

DDRADR

CKE
DESELECT

DDRB
A

RAS
N

CAS
N

WEN

CSN

11

AP(10)

9:0

H

H

X

X

X

X

X

X

X

NOP

H

L

H

H

H

X

X

X

X

ACTIVE

H

L

L

H

H

V

V

V

V

READ

H

L

H

L

H

V

V

V

V

WRITE

H

L

H

L

L

V

V

V

V

PRECHARGE

H

L

L

H

L

X

L

X

V

PRECHARGE

H

L

L

H

L

X

H

X

X

AUTO
Refresh

H

L

L

L

H

X

X

X

X

SELF Refresh

L

L

L

L

H

X

X

X

X

MODE
REGISTER
SET

H

L

L

L

L

V

V

V

V

ALL

z

1 The AP bit in DDRADR column is used to check whether the current PRECHARGE command is
for a single bank or for all banks. For the definition of the AP bit, see the DDR JEDEC standard.

z

2 H indicates high level; L indicates low level; V indicates valid; X indicates ignored.

z

3 The DDRC supports only the burst-of-four operation mode of the DDR2. It does not support the
burst termination operation of the DDR2.

Auto-Fresh
When DDRC_TIMING2[taref] is set to a non-zero value, the DDRC refreshes the DDR2
SDRAM by generating a periodic auto refresh command automatically At normal temperature,
the DDR2 SDRAM must be auto-refreshed for 8,192 times within 64 ms, that is, the autorefresh cycle is 7.8 µs. The relationship between the configured value (Taref) of
DDRC_TIMING2[taref] and the auto-refresh cycle T (T = 7.8 µs) is as follows:
T ≥ Taref x 16 DDR clock cycles

4-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

When DDRC_TIMING2[taref] is configured, the internal counter of the DDRC loads the taref
value automatically and then counts in deremental mode. When the count value reaches 0, the
DDRC initiates an auto-refresh operation and the counter reloads the taref value to count.

Low-Power Management
The DDRC supports the following two low-power management modes:
z

Common low-power mode
After the system is idle for pd_prd clock cycles, the DDRC forces the DDR2 SDRAM to
enter the low-power mode.
If DDRC_CONFIG[pd_en] and DDRC_CONFIG[pr_prd] are set to valid values, the
DDRC also automatically forces the DDR2 SDRAM to enter the low-power mode if the
system is idle. When DDRC_CONFIG[pd_en] is set to 1, the DDR2 SDRAM enters the
low-power mode if the DDRC does not perform any access operation within
DDRC_CONFIG[pr_prd] bus clock cycles.

z

Self-refresh low-power mode
To switch to the standby mode, you can force the DDR2 SDRAM to enter the selfrefresh low-power mode by configuring the DDRC registers. In self-refresh low-power
mode, the power consumption of the DDR2 SDRAM is reduced to the minimum level,
but the data in the DDR2 SDRAM is retained. In this case, the system cannot access the
DDR2 SDRAM.
By configuring DDRC_CTRL[sr_req], the DDRC can force the DDR2 SDRAM to enter
the low-power mode. To be specific, when DDRC_CTRL[sr_req] is set to 1, the DDRC
forces the DDR2 SDRAM to enter the self-refresh mode and does not respond to the bus
request after the DDRC completes the current access operation. When the
DDRC_CTRL[sr_req] is set to 0, the DDR2 SDRAM exits the self-refresh mode.

Arbitration Mechanism
The DDRC uses the priority scheduling algorithm. That is, the DDRC adds priority attributes
to bus commands by configuring DDRC_QOS[pri], and then schedules the commands based
on the priority attributes. As a result, the DDR2 SDRAM is accessed in a high-effective
manner. The DDRC can also add delay attributes to bus commands by configuring
DDRC_QOS[qos_en] and DDRC_QOS[qos], thus ensuring delay response to the commands
based on the delay priority scheduling algorithm.

Address Mapping Mode
The DDRC maps the system bus address to the address of the DDR2 SDRAM, so the system
can access the DDR2 SDRAM. By configuring DDRC_CONFIG[mem_map],
DDRC_CONFIG[mem_row], and DDRC_CONFIG[mem_col], the DDRC converts the
system bus into the address of the DDR2 SDRAM based on the address mapping algorithm.
The following example describes the mapping algorithm of the system bus address and the
address of the DDR2 SDRAM. Assume that the lower 29 bits of the system bus address are
BUS_ADR[28:0], the valid address is BUS_ADR[m - 1:0], and the DDRC address of the
Hi3515 is DDR_ADR[13:0]. Then, for the 1-Gbit DDR2 SDRAM, its row address is
DDR_ROW[x - 1:0], column address of the DDR2 SDRAM is DDR_COL[y - 1:0], and bank
address is DDR_BA[z - 1:0]. If the values of the row address, column address, and bank
address are 13, 10, and 3 respectively, the values of x, y, and z are 13, 10, and 3 respectively.
The width of the DDRC data storage bus is DW. In this case, the address mapping is as
follows:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-7

Hi3515
Data Sheet

4 Memory Controller
z

When DDRC_CONFIG[mem_map] is set to 0, the row-bank-column (RBC) mapping
mode is as follows:
BUS_ADR[m - 1:0] = {DDR_ROW[x–1:0], DDR_BA[z - 1:0], DDR_COL[y - 1:0],
DW{b0}}

z

When DDRC_CONFIG[mem_map] is set to 1, the bank-row-column (BRC) mapping
mode is as follows:
BUS_ADR[m - 1:0]={DDR_BA[z - 1:0], DDR_ROW[x - 1:0], DDR_COL[y - 1:0],
DW{b0}}
In the preceding expressions, the condition of the equation m = x + y + z + DW is true.
When the DDRC is in 32-bit mode, the value of DW is 2.

In RBC mode, A10 acts as the AP function bit of the DDR. Table 4-4 shows the mapping
between the system bus address and the address of the DDR2 SDRAM. In BRC mode, the
addresses are mapped based on the preceding expressions.
Table 4-4 Address mapping when the DDRC is in 32-bit mode
Memory
Type
Mbit x bw

Width of
the

Width
of the

Row
Address

Column
Width

DDRBA
2

1

0

Row
Address
or
Column
Address

DDRADR
1
3

12

11

10/AP

9

8

[7:0]

Row
address

–

25

24

23

22

21

[20:13]

Column
address

–

–

–

AP

–

10

[9:2]

Row
address

–

26

25

24

23

22

[21:14]

Column
address

–

–

–

AP

11

10

[9:2]

Row
address

–

27

26

25

24

23

[22:15]

Column
address

–

–

–

AP

11

10

[9:2]

Row
address

2
8

27

26

25

24

23

[22:15]

Column
address

–

–

–

AP

11

10

[9:2]

256 Mbit 4 bank

16 x 16

13

9

– 12

11

512 Mbit 4 bank

32 x 16

13

10

– 13

12

1 Gbit 8 bank

64 x 16

13

10

1
13
4

12

2 Gbit 8 bank

128 x 16

4-8

14

10

1
13
4

12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

4.1.5 Operating Mode
4.1.5.1 Clock Gating
After the system enters the low-power mode, the working clock of the DDRC can be disabled.
Before the system restores to the normal mode, the working clock of the DDRC must be
enabled.
To disable the DDRC clock, the following steps take place:
Step 1 Ensure that the system runs in the flash memory.
Step 2 Set DDRC_CONFIG[sr_cc] to 1 to enable the component clock control function.
Step 3 Set DDRC_CTRL[sr_req] to 1 to request to enter the self-refresh mode.
Step 4 Query the DDRC_STATUS[in_sr] bit until it is 1, and then go to Step 5.
Step 5 Disable the DDRC clock.
----End
To enable the DDRC clock, the following steps take place:
Step 1 Enable the DDRC clock when the system runs in normal mode.
Step 2 Wait until the internal DLL (delay lock loop) of the DDRC is locked.
Step 3 Set DDRC_CTRL[sr_req] to 0 to request to exit the self-refresh mode.
Step 4 Query the DDRC_STATUS[in_sr] bit until it is 0, and then go to Step 5.
Step 5 The DDRC clock works in normal mode.
----End

4.1.5.2 Soft Reset
The DDRC cannot be reset independently. It can be reset only when global soft reset is
performed. After reset, the DDRC initializes the DDR2 SDRAM by following the
initialization process.

4.1.5.3 Initialization
After power on, the system can access the DDR2 SDRAM only when the DDR2 SDRAM is
initialized. Before initializing the DDR2 SDRAM, note the following points:
z

Power on the DDR2 SDRAM according to the JEDEC standard. In other words, you
must power on VDD, VDDQ, VREF, and VTT in sequence.

z

Initialize the DDR2 SDRAM after the system runs in normal mode.

To initialize the DDR2 SDRAM, the following steps take place:
Step 1 The software waits for more than 200 μs.
Step 2 Set DDRC_CTRL to 0x0000_0004 to exit the self-refresh mode.
Step 3 The software waits for more than 400 ns.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-9

Hi3515
Data Sheet

4 Memory Controller

Step 4 Set DDRC_EMRS01 to 0x0044_0662, set DDRC_EMRS23 to 0x0000_0000, and then
configure the mode register and extended mode register of the DDR2 SDRAM. In this step,
set the CAS latency (CL) of the DDR to 4 and set the burst length to 4. The value of the
extended mode register can be set as required or set to the same value as the mode register of
the DDR2 SDRAM. In this step, the value of the extended mode register is set to 0.
z

The values of the CL and DDRC_TIMING1[tcl] must be the same.

z

DDRC_EMRS01 maps to the mode register (MRS) and extended mode register 1 (EMRS1) of the
DDR2 SDRAM. You need to configure DDRC_EMRS01 according to the description of A15–A0 of
the mode register in the DDR2 SDRAM manual. The three most significant bits (MSBs) of the mode
register, namely, the bank address, are ignored.

z

When configuring the extended mode register 1 (EMRS1) of the DDR2, the RDQS of RMRS1 must
be disabled and

DQS

of EMRS1 must be enabled.

Step 5 Set DDRC_CONFIG to 0x7000_7022 based on the widths the row address and column
address of the DDR2 SDRAM. This indicates that the address mapping mode is RBC, AP is
A10, width of the column address is 10, width of the row address is 13, and seven autorefresh operations are performed during initialization. In addition, DDRC_CONFIG[pd_en] is
set to the power-on reset value, that is, the reset value is used in low-power mode.
The low-power mode is disabled by default. The function of entering the low-power mode automatically
must be disabled during initialization. In normal mode, you are recommended to enable the low-power
control function, thus reducing power consumption.

Step 6 Configure DDRC_TIMING0, DDRC_TIMING1, DDRC_TIMING2, and DDRC_TIMING3.
Note that the value of tcl and DDRC_EMRS01 must be the same.
Step 7 Configure DDRC_ODT_CONFIG. The default value is recommended. That is, odt is valid
when the DDR2 is written; odt is invalid when the DDR2 is read.
Step 8 Configure DDRC_QOS of different ports based on the system requirements. It is
recommended that the value of DDRC_QOS[qos] is greater than 1 and ranges from 0x002 to
0x3FF.
Step 9 Set DDRC_CTRL to 0x6 to start the initialization.
Step 10 After the value of DDRC_STATUS bit[3] changes to 1, it indicates that the initialization is
complete.
----End
After the preceding steps are complete, the DDR2 SDRAM can work properly.

4.1.6 Registers Summary
Table 4-5 lists the DDRC registers.
Table 4-5 Summary of the DDRC register (base address: 0x2011_0000)

4-10

Offset
Address

Register

Description

Page

0x00

DDRC_STATUS

DDRC status register

4-12

0x04

DDRC_CTRL

DDRC control register

4-13

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Offset
Address

Register

Description

Page

0x08

DDRC_EMRS01

DDR mode configuration register 1

4-14

0x0C

DDRC_EMRS23

DDR mode configuration register 2

4-15

0x10

DDRC_CONFIG

DDR configuration register

4-16

0x20

DDRC_TIMING0

DDRC timing register 0

4-18

0x24

DDRC_TIMING1

DDRC timing register 1

4-19

0x28

DDRC_TIMING2

DDRC timing register 2

4-20

0x2C

DDRC_TIMING3

DDRC timing register 3

4-22

0x3C

DDRC_DTR_CTRL

DDRC data training control register

4-22

0x40

DDRC_DTR_PRD

DDRC data training period register

4-23

0x44

DDRC_DTR_GATE

DDRC data training gating register

4-24

0x48

DDRC_DTR_LAT

DDRC data training delay register

4-26

0x4C

DDRC_PHY_STAT
US

DDRC PHY status register

4-28

0x50

DDRC_PHY_ADDR

DDRC PHY training address register

4-28

0x54

DDRC_PHY_DATA
0

DDRC PHY training data register 0

4-29

0x58

DDRC_PHY_DATA
1

DDRC PHY training data register 1

4-29

0x5C

DDRC_PHY_DATA
2

DDRC PHY training data register 2

4-30

0x60

DDRC_PHY_DATA
3

DDRC PHY training data register 3

4-30

0x90

DDRC_IF_STATUS

DDRC interface status register

4-31

0x94

DDRC_ODT_CONFI
G

DDRC ODT configuration register

4-31

0x100

DDRC_QOS_CTRL

DDRC quality of service (QoS) control
register

4-32

0x104

DDRC_QOS_CONFI
G

DDRC QoS configuration register

4-32

0x108+nx
4

DDRC_QOS

DDRC QoS register

4-33

0x270

DDRC_PHY_CONFI
G

DDRC PHY configuration register

4-34

0x274

DDRC_DLL_STATU
S

DDRC_DLL status register

4-34

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-11

Hi3515
Data Sheet

4 Memory Controller

Offset
Address

Register

Description

Page

0x278

DDRC_DLL_CONFI
G

DDRC_DLL configuration register

4-35

0x27C

DDRC_IO_CTRL

DDRC IO configuration register

4-36

Table 4-6 lists the value ranges and meanings of the variables in the offset addresses of
registers.
Table 4-6 Variables in the offset addresses of registers
Variable

Value Range

Description

n

0–15

QoS variable of the 16 IDs

4.1.7 Registers Description
DDRC_STATUS
DDRC_STATUS is the DDRC status register.

Name

8

7

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:7]

RO

reserved

Reserved.

0

0

0

0

0

0

0

6

5

4

3

2

1

0

busy

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

0x0000_004D

in_sr

DDRC_STATUS

in_init

0x00

ecc_serr

Total Reset Value

ecc_derr

Register Name

test_pass

Bit

Offset Address

1

0

0

1

1

0

1

Self-test status.
[6]

RO

test_pass

0: Do not pass the test.
1: Pass the test.
Single-bit error indicator through ECC.

[5]

RC

ecc_serr

0: No single-bit error occurs.
1: A single-bit error occurs.
Multi-bit error indicator through ECC.

[4]

RC

ecc_derr

0: No multi-bit error occurs.
1: A multi-bit error occurs.

4-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Initialization status indicator.
[3]

RO

0: Being initialized.

in_init

1: Normal operating mode.
Self-refresh status indicator.
[2]

RO

in_sr

0: Normal.
1: Self refresh.

[1]

RO

reserved

Reserved.
Controller status.

[0]

RO

0: Idle.

busy

1: Busy.

DDRC_CTRL
DDRC_CTRL is the DDRC control register.

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:5]

RO

reserved

Reserved.

0

0

0

0

0

0

0

4

3

2

1

0

sr_req

DDRC_CTRL

init_req

0x04

ecc_en

Total Reset Value

clk_ratio

Register Name

sref_test_req

Bit

Offset Address

0

0

0

0

1

Read/write data channel test of the controller and PHY.
[4]

RW

sref_test_req

[3]

RW

ecc_en

0: Normal operating mode.
1: The self-test starts. When the test is complete, this bit is cleared
automatically.
CCC enable.
Not supported.
Operating mode of the controller clock.

[2]

RW

clk_ratio

0: The controller and PHY work in 1:2 mode.
1: The controller and PHY work in 1:1 mode.
Only the 1:1 mode is supported.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-13

Hi3515
Data Sheet

4 Memory Controller

Hardware initialization control. Only writing 1 to this bit has
effect.
[1]

RW

init_req

0: Normal operating mode.
1: The initialization starts. When the initialization is complete, this
bit is cleared automatically.
Self-refresh request control.

[0]

RW

0: Normal operating mode or request to exit the self-refresh mode
when the DDRC is in self-refresh mode.

sr_req

1: Request to enter the self-refresh mode.

DDRC_EMRS01
DDRC_EMRS01 is DDRC mode configuration register 1.

Bits

Access Name

[31:23] RW

reserved

[22]

ddr_rtt1

RW

[21:19] RW

ddr_al

0

0

0 0 0

0

0

0

reserved

ddr_wr

7

ddr_dll_en

Reset 0 0 0 0 0 0 0 0 0

8

ddr_drv

reserved

16 15 14 13 12 11 10 9

ddr_rtt0

Name

17

ddr_al

31 30 29 28 27 26 25 24 23 22 21 20 19 18

0 0 0 0 0 0 0

6 5 4

3

ddr_bl

0x0000_0000

ddr_bt

DDRC_EMRS01

ddr_cas

0x08

ddr_tm

Total Reset Value

ddr_rst

Register Name

ddr_rtt1

Bit

Offset Address

2 1 0

0

0 0 0

0

0 0 0

Description
Reserved, fixed at 0.
DDR2 SDRAM matched impedance.
This bit works together with bit[ddr_rtt0].
Reserved, fixed at 0.
DDR2 SDRAM matched impedance.
This bit works together with bit[ddr_rtt0].
{ddr_rtt1,ddr_rtt0}:
00: Forbidden

[18]

RW

ddr_rtt0

01: 75 Ω
10: 150 Ω
11: 50 Ω
Configure this bit according to the instructions in the DDR2 SDRAM
manuals.
DDR2 SDRAM drive capability.

[17]

RW

ddr_drv

0: strong drive
1: weak drive

4-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

DDR2 SDRAM DLL enable.
[16]

RW

ddr_dll_en

0: enabled
1: disabled

[15:12] RW

reserved

Reserved, fixed at 0.
DDR2 SDRAM write recovery time.
010: 3 clock cycles

[11:9]

RW

ddr_wr

011: 4 clock cycles
100: 5 clock cycles
101: 6 clock cycles
Others: reserved
DDR2 SDRAM DLL reset control.

[8]

RW

ddr_rst

0: not reset
1: reset
DDR2 SDRAM test mode.

[7]

RW

ddr_tm

0: normal mode
1: test mode
DDR2 SDRAM CAS configuration.
011: 3 clock cycles
100: 4 clock cycles

[6:4]

RW

ddr_cas

101: 5 clock cycles
110: 6 clock cycles
Others: reserved
The CL cannot be set to 3. You must set the CL to a value greater
than 3.
DDR2 SDRAM burst type.

[3]

RW

ddr_bt

0: in sequence
1: reserved
DDR2 SDRAM burst length.

[2:0]

RW

ddr_bl

010: 4
011: 8
Others: reserved

DDRC_EMRS23
DDRC_EMRS23 is DDR mode configuration register 2.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-15

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x0C

DDRC_EMRS23

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

emrs3

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

2

1

0

emrs2
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RW

emrs3

Reserved, fixed at 0.

[15:0]

RW

emrs2

Reserved, fixed at 0.

0

0

0

0

0

0

0

DDRC_CONFIG

DDRC_CONFIG

0x0000_6022

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

1

1

0

0

0

0

0

0

6

5

4

0

1

3
reserved

0

mem_type

7

mem_row

0

reserved

0

pd_en

0

sr_cc

Reset 0

pr_prd

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name init_arefnum

8
mem_map

0x10

mem_bank

Total Reset Value

ap

Register Name

reserved

Bit

Offset Address

mem_col

DDRC_CONFIG is the DDR configuration register.

0

0

0

1

0

Description
Count of auto refreshes required for the hardware initialization.

[31:28]

RW

init_arefnum

0000–0010: 2
0011–1111: n clock cycles. The letter n indicates the
corresponding decimal value.
Count of wait CLKs for automatic power down. When the
controller does not receive any request for a period, it disables the
CKE of the DDR2 SDRAM.

[27:20]

RW

pr_prd

0x00: When pd_en is valid and the controller does not receive any
request at the next clock cycle, the DDR2 SDRAM enters the lowpower mode automatically.
0x01–0xn: When pd_en is valid and the controller does not receive
any request within n clock cycles, the DDR2 SDRAM enters the
low-power mode automatically.
For example, 0x03 indicates that the DDR2 SDRAM enters the
low-power mode automatically if it does not receive any request
within three clock cycles.

[19]

4-16

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Self-refresh clock enable.
[18]

RW

0: disabled

sr_cc

1: enabled
[17]

[16]

RO

RW

reserved

Reserved.

pd_en

Auto power-down enable. This signal is used to enable or disable
the CKE of the DDR2 SDRAM automatically. When no read or
write request is received within PD_PRD clock cycles, the CKE
input of the DDR2 SDRAM is disabled automatically.
0: Do not enter the power-down mode automatically.
1: Enter the power-down mode automatically.
External memory type.
0000: 16-bit mobile SDRAM
0001: 32-bit mobile SDRAM
0010: 16-bit mobile DDR

[15:12]

RW

mem_type

0011: 32-bit mobile DDR
0100: 16-bit DDRⅠ
0101: 32-bit DDRⅠ
0110: 16-bit DDRⅡ
0111: 32-bit DDRⅡ
Others: reserved

[11:10]

RO

reserved

Reserved.
Precharge all indicator.

[9]

RW

0: a10

ap

1: a8 (this value is used for early memories and rarely used for
current memories)
Translation mode of the memory address.

[8]

RW

mem_map

0: Row, Bank, Col, Dw
1: Bank, Row, Col, Dw
Number of memory banks.

[7]

RW

mem_bank

0: 4 banks
1: 8 banks
Bit width of the row address for a single SDRAM.
000: 11
001: 12

[6:4]

RW

mem_row

010: 13
011: 14
100: 15
101: 16
Others: reserved

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-17

Hi3515
Data Sheet

4 Memory Controller

[3]

RO

reserved

Reserved.
Bit width of the column address for a single SDRAM.
000: 8
001: 9

[2:0]

RW

010: 10

mem_col

011: 11
100: 12
Others: reserved

DDRC_TIMING0
DDRC_TIMING0 is DDRC timing register 0.
Total Reset Value

0x20

DDRC_TIMING0

0x7FFF_3F1F

Reset 0

1

1

1

1

1

1

trp

1

1

1

1

trcd

1

1

1

1

1

Bits

Access

Name

Description

[31]

RO

reserved

Reserved.

0

0

8

7

trc

1

1

1

6

5

4

3

reserved

trrd

reserved

tmrd

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

1

1

1

0

0

2

1

0

1

1

tras

0

1

1

1

Count of wait cycles of the command for loading the mode register
(LMR).
[30:28]

RW

tmrd

000–001: 1 clock cycle
011–111: n clock cycles. The letter n indicates the corresponding
decimal value.
For example, the value 010 indicates two clock cycles.
Count of wait cycles from ACT bank A to ACT bank B.
0000–0001: 1 clock cycle

[27:24]

RW

trrd

0010–1111: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, the value 1111 indicates 15 clock cycles.
Count of wait cycles of the disable command (PRE period).
0000–0001: 1 clock cycle

[23:20]

RW

trp

0010–1111: n clock cycles. The letter n indicates the
corresponding decimal value.
1111: Reserved.
For example, the value 0111 indicates seven clock cycles.

4-18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Count of wait cycles from the ACT bank command to the read or
write bank command.
[19:16]

RW

0000–0011: 3 clock cycles

trcd

0100–1111: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, the value 0011 indicates three clock cycles.

[15:14]

RO

reserved

Reserved.
Count of wait cycles from an ACT bank command to the next
ACT bank command.

[13:8]

RW

0x00–0x01: 1 clock cycle

trc

0x02–0x0F: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, 0x0F indicates 15 clock cycles.

[7:5]

RO

reserved

Reserved.
Count of wait cycles from the ACT bank command to the PRE
disable command.

[4:0]

RW

0x00–0x01: 1 clock cycle

tras

0x00–0x0F: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, 0x0F indicates 15 clock cycles.

DDRC_TIMING1
DDRC_TIMING1 is DDRC timing register 1.
Register Name

Total Reset Value

0x24

DDRC_TIMING1

0xFF01_23FF

Reset 1

1

Bits

1

1

1

Access

trdlat

1

1

1

0

Name

0

0

0

0

0

0

twl

1

0

0

1

0

0

8

7

6

5

tcl

tsre

trtw

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

1

4

3

2

1

0

1

1

1

trfc

1

1

1

1

1

1

Description
Count of wait cycles from the self-refresh exit command to the
read command.

[31:24]

RW

tsre

0x00–0xFF: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, 0xFF indicates 255 clock cycles.
In general, the DDR2 SDRAM requires 200 clock cycles.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-19

Hi3515
Data Sheet

4 Memory Controller

[23:20]

RW

Read data delay. This parameter depends on the length of the DQS
trace.

trdlat

0000–1111: n+1 clock cycles
For example, 0000 indicates the delay of one clock cycle.

[19]

RO

reserved

Reserved.

[18:16]

RW

trtw

Delay from the last obtained data segment to the first written data
segment.
000–110: n+1 clock cycles
Count of wait cycles from the write command to first data write
valid.

[15:12]

RW

0x0–0xF: n clock cycles. The letter n indicates the corresponding
decimal value.

twl

For example, 0x3 indicates three clock cycles.
In DDR2 mode, twl is set to (tcl – 1).
The value of twl must meet the following condition: twl - taond ≥
1

[11]

RO

reserved

Reserved.
DDR CL from the read command to read data start.
100: CL = 4

[10:8]

RW

tcl

101: CL = 5
110: CL = 6
Others: reserved
Count of wait cycles of the AREF period or AREF to the ACT
command.

[7:0]

RW

trfc

0x00–0x01: 1 clock cycle
0x02–0xFF: n clock cycles. The letter n indicates the
corresponding decimal value.
For example, 0x0F indicates 15 clock cycles.

DDRC_TIMING2
DDRC_TIMING2 is DDRC timing register 2.

4-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x28

DDRC_TIMING2

0x33F3_F7FF

Reset 0

0

1

1

0

0

1

twr

1

1

1

1

1

0

0

tfaw

1

1

Bits

Access

Name

Description

[31:30]

RO

reserved

Reserved.

1

1

8

7

6

reserved

reserved

twtr

tcke

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

4 Memory Controller

1

1

0

5

4

3

2

1

0

1

1

1

1

1

taref

1

1

1

1

1

1

Minimum period of maintaining the DDR low-power mode.
00–01: 1 clock cycle

[29:28]

RW

tcke

[27:26]

RO

reserved

10–11: n clock cycles. The letter n indicates the corresponding
decimal value.
Reserved.
Count of wait cycles of the last write-to-read command.
00-01: 1 clock cycle

[25:24]

RW

twtr

10–11: n clock cycles. The letter n indicates the corresponding
decimal value.
For example, the value 11 indicates three clock cycles.
Count of wait cycles of write recovery.
0x0–0x1: 1 clock cycle

[23:20]

RW

twr

0x2–0xF: n clock cycles. The letter n indicates the corresponding
decimal value.
For example, 0x7 indicates seven clock cycles.

[19:18]

RO

reserved

Reserved.
Count of clock cycles of four continuous ACT commands.

[17:12]

RW

tfaw

0x00-0x3F: n clock cycles
For example, 0x14 indicates 20 clock cycles.

[11]

RO

reserved

Reserved.
Auto-refresh cycle.
0x000: forbidden

[10:0]

RW

taref

0x001–0x7FF: The auto-refresh cycle of the SDRAM is 16 x n
clock cycles. Note: The letter n indicates the corresponding
decimal value.
For example, 0x008 indicates 128 clock cycles.
The value depends on the operating frequency of the SDRAM.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-21

Hi3515
Data Sheet

4 Memory Controller

DDRC_TIMING3
DDRC_TIMING3 is DDRC timing register 3.
Register Name

Total Reset Value

0x2C

DDRC_TIMING3

0x0000_0F02

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

reserved
0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

0

8

7

6

txard
0

0

0

1

1

1

5

4

3

2

0

0

reserved
1

0

0

0

0

1

0

trtp

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
taond

Bit

Offset Address

1

0

ODT enable/disable cycle (Taond/Taofd).
00: 2/2.5
[21:20]

RW

taond

01: 3/3.5
10: 4/4.5
11: 5/5.5

[19:12]

RO

reserved

Reserved.
Count of wait cycles of exiting the DDR2 SDRAM low-power
mode.

[11:8]

RW

0x0–0xF: n clock cycles. The letter n indicates the corresponding
decimal value.

txard

For example, 0x7 indicates seven clock cycles.
The maximum value between tXP, tXARD, and tXARDS is used.
[7:3]

RO

reserved

Reserved.
Wait delay from the read command to the disable command.
000–010: 2 clock cycles

[2:0]

RW

trtp

011–111: n clock cycles
The delay of DDR2 is calculated as follows:
AL + BL/2 + Max(trtp, 2) - 2

DDRC_DTR_CTRL
DDRC_DTR_CTRL is the DDRC data training control register.

4-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

DDRC_DTR_CTRL

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

dt_byte

Reset 0

0

Bits

0

0

0

8

7

6

5

0

0

0

0

reserved

0

Access

0

0

0

Name

0

0

0

0

0

0

0

0

0

4

0

0

0

0

0

0

3

2

1

0
itm_rst

0x3C

train_en

Total Reset Value

reserved

Register Name

track_en

Offset Address

dt_limit

Bit

4 Memory Controller

0

0

0

1

Description
Byte training enable.
0: disabled

[31:24]

RW

dt_byte

1: enabled
The least significant bit (LSB) maps to byte 0 of the DDR
SDRAM.

[23:6]

RO

reserved

Reserved.
DQS gating shift control.
00: shift 0°

[5:4]

RW

dt_limit

01: shift 90°
10: shift 180°
11: shift 270°

[3]

RO

reserved

Reserved.
Auto refresh enable for the gating position.

[2]

RW

track_en

0: disabled
1: enabled
Gating position training enable.

[1]

RW

train_en

0: disabled
1: enabled
ITM reset signal of the PHY.

[0]

RW

itm_rst

0: valid
1: invalid

DDRC_DTR_PRD
DDRC_DTR_PRD is the DDRC data training period register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-23

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x40

DDRC_DTR_PRD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

track_prd
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RW

reserved

Reserved.

0

0

0

0

0

0

0

Auto refresh cycle of the DQS gating. If there is no read operation
during the configured clock cycles, the controller automatically
initiates a read operation to refresh the DQS gating.
[19:0]

RW

0x0: The controller initiates a dummy read if there is no read
operation in one auto-refresh clock cycle.

track_prd

0x1: The controller initiates a dummy read if there is no read
operation in two auto-refresh clock cycles.
0x2–0x7FF: The controller initiates a dummy read if there is no
read operation in n+1 auto-refresh clock cycles.

DDRC_DTR_GATE
DDRC_DTR_GATE is the DDRC data training gating register.
Total Reset Value

0x44

DDRC_DTR_GATE

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

5

0

0

4

3

0

0

2

1

gate_sel1

6

gate_sel2

7

gate_sel3

8
gate_sel4

reserved

gate_sel5

Name

gate_sel6

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0
gate_sel0

Register Name

gate_sel7

Bit

Offset Address

0

0

Gating delay phase of DDR SDRAM byte 7.
00: 0°
[15:14]

RW

gate_sel7

01: 90°
10: 180°
11: 270°

4-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Gating delay phase of DDR SDRAM byte 6.
00: 0°
[13:12]

RW

gate_sel6

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 5.
00: 0°

[11:10]

RW

gate_sel5

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 4.
00: 0°

[9:8]

RW

gate_sel4

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 3.
00: 0°

[7:6]

RW

gate_sel3

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 2.
00: 0°

[5:4]

RW

gate_sel2

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 1.
00: 0°

[3:2]

RW

gate_sel1

01: 90°
10: 180°
11: 270°
Gating delay phase of DDR SDRAM byte 0.
00: 0°

[1:0]

RW

gate_sel0

01: 90°
10: 180°
11: 270°

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-25

Hi3515
Data Sheet

4 Memory Controller

DDRC_DTR_LAT
DDRC_DTR_LAT is the DDRC data training delay register.

0x48

DDRC_DTR_LAT

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31]

RO

reserved

Reserved.

0

0

0

0

0

0

0

6

0

5

4

0

0

0

3

2

reserved

thpy_rden1

7

reserved

tphy_rden2

reserved

tphy_rden3

reserved

tphy_rden4

reserved

tphy_rden5

reserved

tphy_rden6

reserved
0

8

0

0

1

0

tphy_rden0

Total Reset Value

tphy_rden7

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Bit

Offset Address

0

0

0

Gating delay cycle of DDR SDRAM byte 7.
000: 0 clock cycles
001: 1 clock cycle
[30:28]

RW

tphy_rden7

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[27]

RO

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 6.
000: 0 clock cycles
001: 1 clock cycle

[26:24]

RW

tphy_rden6

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[23]

RO

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 5.
000: 0 clock cycles
001: 1 clock cycle

[22:20]

RW

tphy_rden5

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

4-26

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[19]

RO

4 Memory Controller

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 4.
000: 0 clock cycles
001: 1 clock cycle

[18:16]

RW

tphy_rden4

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[15]

RO

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 3.
000: 0 clock cycles
001: 1 clock cycle

[14:12]

RW

tphy_rden3

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[11]

RO

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 2.
000: 0 clock cycles
001: 1 clock cycle

[10:8]

RW

tphy_rden2

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[7]

RO

reserved

Reserved.
Gating delay cycle of DDR SDRAM byte 1.
000: 0 clock cycles
001: 1 clock cycle

[6:4]

RW

thpy_rden1

010: 2 clock cycles
011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

[3]

RO

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-27

Hi3515
Data Sheet

4 Memory Controller

Gating delay cycle of DDR SDRAM byte 0.
000: 0 clock cycles
001: 1 clock cycle
[2:0]

RW

010: 2 clock cycles

tphy_rden0

011: 3 clock cycles
100: 4 clock cycles
101: 5 clock cycles
Others: reserved

DDRC_PHY_STATUS
DDRC_PHY_STATUS is the DDRC PHY status register.

Bit

Offset Address

Register Name

Total Reset Value

0x4C

DDRC_PHY_STATUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

dtr_status

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

8

7

6

5

dtr_err
0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

dtr_ok
0

0

0

0

0

0

0

0

Description
Phase shift status of the byte gating position.
00: shift 0°

[31:16]

RO

dtr_status

01: shift 90°
10: shift 180°
11: 270°
Auto tracking error status of the gating position.

[15:8]

RO

dtr_err

0: No error occurs during tracking.
1: An error occurs during tracking.
Gating training status.

[7:0]

RO

dtr_ok

0: An error occurs during training.
1: No error occurs during training.

DDRC_PHY_ADDR
DDRC_PHY_ADDR is the DDRC PHY training address register.

4-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x50

DDRC_PHY_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

train_row

Reset 0

0

0

0

0

0

0

0

0

8

train_bank

Bit

4 Memory Controller

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

0

train_col

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RW

train_row

Gating training position, the row address of the DDR2 SDRAM is
used. When the row address is less than 16 bits, the upper bits are
stuffed with 0s.

[15:13]

RW

train_bank

Gating training position, the bank address of the DDR2 SDRAM is
used. When the bank address is less than three bits, the upper bits
are stuffed with 0s.

[12:0]

RW

train_col

Gating training position, the column address of the DDR2
SDRAM is used. When the column address is less than 13 bits, the
upper bits are stuffed with 0s.

DDRC_PHY_DATA0
DDRC_PHY_DATA0 is DDRC PHY training data register 0.

Bit

Offset Address

Register Name

Total Reset Value

0x54

DDRC_PHY_DATA0

0xEE11_DD22

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

0

0

1

0

0

0

1

0

dt_data0

Reset 1

1

1

0

1

1

1

0

0

0

0

1

0

0

0

1

1

1

0

1

Bits

Access

Name

Description

[31:0]

RW

dt_data0

DQS gating training data 0.

1

1

0

DDRC_PHY_DATA1
DDRC_PHY_DATA1 is DDRC PHY training data register 1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-29

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x58

DDRC_PHY_DATA1

0xCC33_BB44

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

0

1

0

0

0

1

0

0

dt_data1

Reset 1

1

0

0

1

1

0

0

0

0

1

1

0

0

1

1

1

0

1

1

Bits

Access

Name

Description

[31:0]

RW

dt_data1

DQS gating training data 1.

1

0

1

DDRC_PHY_DATA2
DDRC_PHY_DATA2 is DDRC PHY training data register 2.

Bit

Offset Address

Register Name

Total Reset Value

0x5C

DDRC_PHY_DATA2

0x44BB_33CC

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

1

1

0

0

1

1

0

0

dt_data2

Reset 0

1

0

0

0

1

0

0

1

0

1

1

1

0

1

1

0

0

1

1

Bits

Access

Name

Description

[31:0]

RW

dt_data2

DQS gating training data 2.

0

0

1

DDRC_PHY_DATA3
DDRC_PHY_DATA3 is DDRC PHY training data register 3.

Bit

Offset Address

Register Name

Total Reset Value

0x60

DDRC_PHY_DATA3

0x22DD_11EE

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

1

1

1

1

0

1

1

1

0

dt_data3

Reset 0

4-30

8

0

1

0

0

0

1

0

1

1

0

1

1

1

0

1

0

0

0

1

Bits

Access

Name

Description

[31:0]

RW

dt_data3

DQS gating training data 3.

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

DDRC_IF_STATUS
DDRC_IF_STATUS is the DDRC interface status register.
Register Name

Total Reset Value

0x90

DDRC_IF_STATUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0
axistatus

Bit

Offset Address

0

0

0

0

0

0

0

0

Status indicator of the DDRC bus interface.
0: Idle.
[1:0]

RO

1: A command is being executed.

axistatus

Each bit indicates the status of a DDRC interface.
For example, 0x01 indicates that there is data in the buffer of the
ahb0 interface.

DDRC_ODT_CONFIG

Register Name

Total Reset Value

0x94

DDRC_ODT_CONFIG

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0

rodt

Bit

Offset Address

wodt

DDRC_ODT_CONFIG is the DDRC ODT configuration register.

0

1

Read ODT enable.
[1]

RW

rodt

0: disabled
1: enabled
Write ODT enable.

[0]

RW

wodt

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-31

Hi3515
Data Sheet

4 Memory Controller

DDRC_QOS_CTRL
DDRC_QOS_CTRL is the DDRC QoS control register.

Bit

Offset Address

Register Name

Total Reset Value

0x100

DDRC_QOS_CTRL

0x0000_0888

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

adp_cnt

0

0

0

0

0

0

0

0

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:27]

RO

reserved

Reserved.

0

0

0

0

8

7

6

5

4

3

2

1

0

dmc_fifo_lvl

axi1_fifo_lvl

axi0_fifo_lvl

1

1

1

0

0

0

0

0

0

0

0

0

Priority adaptation cycle.

[26:17]

RW

adp_cnt

This register is used to configure the cycle of changing the
priority. When each adp_cntT cycles after the command in the
DMC times out, the absolute priority of this command raises by
one level until the priority becomes the highest priority.
0x0: disabled
0x1–0x3FF: enabled

[16:12]

RO

reserved

Reserved.
Depth of the command register FIFO in the DMC.

[11:8]

RW

dmc_fifo_lvl

0x0-0x1: depth of one command
0x2-0x8: depths of n commands
Others: reserved
Full command threshold for AXI interface 1, used for controlling
the traffic of interface commands.

[7:4]

RW

axi1_fifo_lvl

0x0-0x1: depth of one command
0x2-0x8: depths of n commands
Others: reserved
Full command threshold for AXI interface 0, used for controlling
the traffic of interface commands.

[3:0]

RW

axi0_fifo_lvl

0x0-0x1: depth of one command
0x2-0x8: depths of n commands
Others: reserved

DDRC_QOS_CONFIG
DDRC_QOS_CONFIG is the DDRC QoS configuration register.

4-32

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

4 Memory Controller

Offset Address

Register Name

Total Reset Value

0x104

DDRC_QOS_CONFIG

0x0000_3210

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

1

0

0

0

0

id_map
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

1

1

0

0

1

0

0

QoS that is configured by selecting four bits based on the bus ID.
Bit[15:12]: configure bit[3] mapping to the ID
Bit[11:8]: configure bit[2] mapping to the ID
[15:0]

RW

Bit[7:4]: configure bit[1] mapping to the ID

id_map

Bit[3:0]: configure bit[0] mapping to the ID
For example, if ID_MAP is set to 0x5320, it indicates that ID[5],
ID[3], ID[2], and ID[0] of the bus ID are used for ID mapping and
QoS configuration.

DDRC_QOS
DDRC_QOS is the DDRC QoS register.

(n = 0–15)

Total Reset Value

DDRC_QOS

0x0000_0000

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
qos_en

Bit

Register Name

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

RO

reserved

Reserved.

0

0

8

7

6

5

4

0

0

0

0

qos

0

0

0

0

0

0

3

2

0

1

0

pri

0x108+nx4

reserved

Offset Address

0

0

0

QoS enable.
[16]

RW

qos_en

0: disabled
1: enabled

[15:14]

RO

reserved

Reserved.

[13:4]

RW

qos

Channel aging time. The recommended value ranges from 0x2 to
0x3FF.

[3]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-33

Hi3515
Data Sheet

4 Memory Controller

Channel priority.
000: highest priority
[2:0]

RW

001: higher priority

pri

…
111: lowest priority
Priority sequence: 000 > 001 > … > 111

DDRC_PHY_CONFIG

Total Reset Value

0x270

DDRC_PHY_CONFIG

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

0

Bits

Access

Name

Description

[31:4]

RW

reserved

Reserved.

0

0

0

0

0

0

0

0

1

0
ck0_dis

Register Name

ioodt

Bit

Offset Address

ck1_dis

DDRC_PHY_CONFIG is the DDRC_PHY configuration register.

0

0

ODT configuration in the DDR2 IO.
00: Disable the ODT function of the IO
[3:2]

RW

ioodt

01: 75 Ω
10: 150 Ω
11: reserved
DDR CK1 low-power control.

[1]

RW

ck1_dis

0: Do not disable the clock output of CK1
1: Disable the clock output of CK1
DDR CK0 low-power control.

[0]

RW

ck0_dis

0: Do not disable the clock output of CK0
1: Disable the clock output of CK0

DDRC_DLL_STATUS
DDRC_DLL_STATUS is the DDRC_DLL status register.

4-34

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Total Reset Value

0x274

DDRC_DLL_STATUS

0x0000_00F0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

1

1

0

dll_mdly_tap

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

2

0

1

0
locked

Register Name

overflow

Offset Address

reserved

Bit

4 Memory Controller

0

0

Bits

Access

Name

Description

[31:12]

RO

reserved

Reserved.

[11:4]

RO

dll_mdly_tap

Valid delay unit level of the master DLL. This register indicates
the DLL delay units required for delaying a clock cycle.

[3:2]

RO

reserved

Reserved.

[1]

RO

DLL overflow indicator. When the total delay of all the delay units
is less than a clock cycle, the DLL sends an overflow indicator.

overflow

0: DLL overflow does not occur.
1: DLL overflow occurs.
DLL lock indicator.

[0]

RO

locked

0: Unlocked.
1: Locked.

DDRC_DLL_CONFIG
DDRC_DLL_CONFIG is the DDRC_DLL configuration register.

DDRC_DLL_CONFIG

0x0000_0009

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

dll_slave_sel

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

stop

0x278

cali_en

Total Reset Value

dll_mode

Register Name

reserved

Bit

Offset Address

0

0

0

0

3

2

1

tune

1

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:8]

RW

dll_slave_sel

Delay level of the slave DLL. The maximum value is 2D. The
value is valid when DLL_MODE is 1.

[7]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

1

4-35

Hi3515
Data Sheet

4 Memory Controller

Operating mode of the slave DLL.
[6]

RW

0: The delay level of the slave DLL is controlled by the master
DLL automatically.

dll_mode

1: The delay level of the slave DLL is equal to the value of the
DLL_SDLY_SEL register.
DLL re-calibration enable (for frequency switching).
[5]

RW

cali_en

0: disabled
1: enabled
DLL stop tracking control.

[4]

RW

0: The DLL tracks dynamically.

stop

1: The DLL stops tracking.
DLL delay tune.
Bit[3]
0: Increase the DLL delay value.
1: Decrease the DLL delay value.
Bit[2:0]
[3:0]

RW

tune

000: 0 delay units
001: 1 delay unit
…
111: 7 delay units
By configuring this register, you can increase or decrease the DLL
delay.

DDRC_IO_CTRL
DDRC_IO_CTRL is the DDRC_IO_CTRL configuration register.
Total Reset Value

0x27C

DDRC_IO_CTRL

0x0001_0001

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:18]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

5

0

0

4

3

0

0

2

1

reserved

6

drv_cmd

7

reserved

8
drv_ck

1

reserved

0

lvcmos

reserved

reserved

Name

pwd_out

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0
drv_data

Register Name

pwd_inout

Bit

Offset Address

0

1

PWD control for the DDR IO (including DQ and DQS).
[17]

RW

pwd_inout

0: Power down is invalid.
1: Power down is valid.

4-36

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[16]

RW

4 Memory Controller

pwd_out

PWD control for the DDR output (including CK, CMD, ADDR,
and DM).
0: Power down is invalid.
1: Power down is valid.

[15:13]

RO

reserved

Reserved.
0: SSTL18 level, DDRII mode.

[12]

RW

lvcmos

[11:10]

RO

reserved

1: 1.8 V mobile DDR mode.
For the Hi3515, this bit must be set to 0. That is, the mobile DDR
mode is not supported.
Reserved.
Drive capability of the CK pin (S0, S1).
DDR2 mode

[9:8]

RW

drv_ck

00: SSTL18 full strength
01: SSTL18 half strength
Others: reserved

[7:6]

RO

reserved

Reserved.
Drive capability of the CMD and ADDR pins (S0, S1).
DDR2 mode (LVCMOS = 0)

[5:4]

RW

drv_cmd

00: SSTL18 full strength
01: SSTL18 half strength
Others: reserved

[3:2]

RO

reserved

Reserved.
Drive capability of the DQ, DM, and DQS pins (S0, S1).
DDR2 mode (LVCMOS = 0)

[1:0]

RW

drv_data

00: SSTL18 full strength
01: SSTL18 half strength
Others: reserved

4.2 SMI Controller
4.2.1 Overview
The static memory interface (SMI) controller provides asynchronous static memory interfaces,
which are connected to asynchronous static memories to boot the system and store data. The
asynchronous static memories include static random access memories (SRAMs), pseudo static
random access memories (PSRAMs), read-only memories (ROMs), and NOR flash memories.
The SMI controller can also be connected to the control chip with the asynchronous static
memory interface to implement the main control function.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-37

Hi3515
Data Sheet

4 Memory Controller

4.2.2 Features
The SMI controller has the following features:
z

Supports asynchronous static memories, including SRAMs, PSRAMs, ROMs, and NOR
flash memories.

z

Supports asynchronous page read operation.

z

Supports the configurable working clock.

z

Supports two individual memory interfaces: bank 0 and bank 1.

z

Supports the booting from bank 0 external memory.

z

Each memory interface supports an external memory with 8-bit data width.

z

Each memory interface supports the size of up to 256 Mbits when it is connected to an
external memory with 8-bit data width.

z

Supports configurable read wait cycle (TWSTRD), write wait cycle (TWSTWR), and
subsequent burst read wait cycle (TWSTBURSTRD). Up to 31 SMI working clock
cycles can be configured.

z

Supports configurable read (output) enable wait cycle (TWSTOEN) and write enable
wait cycle (TWSTWEN). Up to 15 SMI working clock cycles can be configured.

z

Supports configurable bus turnaround (idle) cycle TWSTIDLY between read and write
memory accesses. Up to 15 SMI working clock cycles can be configured.

z

Supports the input of asynchronous wait signals and configuration of the valid polarity of
these signals.

z

Supports clock gating.

4.2.3 Signal Description
Table 4-7 Interface signals of the SMI controller

4-38

Signal

Direction

Description

Pin

SMI_CS0

O

Bank 0 chip select signal, active
high or active low (the default is
active low).

EBICS0N

SMI_CS1

O

Bank 1 chip select signal, active
high or active low (the default is
active low). It is multiplexed
with the GPIO pin. For details
about the multiplexing
configuration information, see
"Pin Multiplexing" in section
4.2.5 "Operating Mode."

EBICS1N

SMI_OEN

O

Read enable signal, active low.

EBIOEN

SMI_WEN

O

Write enable signal, active low.

EBIWEN

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Signal

Direction

Description

Pin

SMI_ADDR[24:0]

O

Address bus.

EBIADR24 to
EBIADR0

SMI_ADDR[24:15] is
multiplexed with the BOOTSEL
pin, FUNSEL pin, and NF pin.
For details about the
multiplexing configuration
information, see "Pin
Multiplexing" in section 4.2.5
"Operating Mode."
SMI_DATA[7:0]

I/O

Bidirectional data bus.

EBIDQ7 to
EBIDQ0

SMI_WAIT

I

External input synchronous wait
signal, active high or active low
(the default is active low). The
pin is multiplexed with the
IRRCV pin. For details about the
multiplexing configuration
information, see "Pin
Multiplexing" in section 4.2.5
"Operating Mode."

EBIRDYN

4.2.4 Function Description
Application Block Diagram
The SMI controller controls data exchange between the internal system bus and the external
asynchronous static memory bus. It provides flexible configuration of timing parameters used
for connecting to various asynchronous static memories. See Figure 4-2.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-39

Hi3515
Data Sheet

4 Memory Controller

Figure 4-2 Connection between the SMI controller and the asynchronous static memory

Hi3515
SMI controller

Asynchronous
NOR flash

SMI_CS1
SMI_CS0

CE#

SMI_OEN

OE#

SMI_WEN

WE#

SMI_ADDR

ADDR

SMI_DATA

DQ

SMI_WAIT

Description:
The SMI controller outputs two individual chip select signals: SMI_CS0 and SMI_CS1. It also supports the
booting from the external memory (8-bit data width) that is connected to the SMI_CS0.
When the SMI controller is connected to an asynchronous static memory, the SMI_WAIT signal is not used.

In addition, the SMI controller provides the asynchronous wait mechanism that is used to
connect the control devices integrated with asynchronous static memory interfaces. See
Figure 4-3.
Figure 4-3 Connection between the SMI controller and the control devices integrated with
asynchronous static memory interfaces

Hi3515
SMI controller
SMI_CS0

Controller
with the
带异步静态存储器
asynchronous
接口的控制器
static memory
interface

SMI_CS1

CE#

SMI_OEN

OE#

SMI_WEN

WE#

SMI_ADDR

ADDR

SMI_DATA

DQ

SMI_WAIT

WAIT

Description:
The SMI controller outputs two individual chip select signals: SMI_CS0 and SMI_CS1. It also supports the
booting from the external memory (8-bit data width) that is connected to the SMI_CS0.
When the SMI controller is connected to the control devices integrated with asynchronous static memory
interfaces, the SMI_WAIT/WAIT signal is used for the handshake between them.

4-40

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Function Principle
The SMI controller transforms the interface timing according to the timing parameters of the
interconnected device. Through the change of the working clock of the SMI controller, the
compatibility of the SMI controller is enhanced. In this way, the SMI controller can be
compatible with as many static memories as possible. The configuration of timing parameters
varies from working clock to working clock. See Table 4-8.
Table 4-8 Configuration of timing parameters of the SMI controller (bus clock fBUSCLK = 200
MHz)
Timing Parameter

fSMICLK = 200 MHz

fSMICLK = 100
MHz

Read wait cycle TWSTRD(max)

155 ns

309 ns

Write wait cycle TWSTWR(max)

155 ns

309 ns

Subsequent burst read wait cycle
TWSTBURSTRD(max)

155 ns

309 ns

Read (output) enable wait cycle
TWSTOEN(max)

75 ns

150 ns

Write enable wait cycle TWSTWEN(max)

75 ns

150 ns

Bus turnaround (idle) cycle TWSTIDLY(max)
between read and write memory accesses

75 ns

150 ns

Note: The results in Table 4-8 are obtained after the time values are rounded towards minus infinity.

The SMI controller supports the booting from bank 0 only.
The asynchronous static memory interface is designed for universal use; therefore, the SMI
controller provides the following two operating modes to meet the diversified requirements of
interconnected devices:
z

Timing parameter mode
When the configuration of the timing configuration registers provided by the SMI
controller meets the timing requirements of interconnected devices, the SMI controller
works in this mode to transfer data to interconnection devices. By default, the SMI
controller works in timing parameter mode.

z

Asynchronous wait mode
When the configuration of the timing configuration register provided by the SMI
controller cannot meet the timing requirement of interconnected devices, or the timings
of interconnected devices are not definite, the SMI controller works in this mode to
transfer data to interconnected devices.
When the SMI controller works in asynchronous wait mode, the interconnected devices must have
corresponding asynchronous wait control signals.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-41

Hi3515
Data Sheet

4 Memory Controller

Figure 4-4 shows the typical timing in timing parameter mode. It shows the timing of the SMI
controller interface in a single read/write access.
Figure 4-4 Timing diagram (read/write) of the SMI controller in timing parameter mode
T_WSTIDLY
SMI_CS
T_WSTOEN
SMI_OEN
T_WSTWEN
T_WSTWR
SMI_WEN
T_WSTRD
SMI_DATA

D(B)

D(A)

Table 4-9 lists the read/write timing parameters of the SMI controller.
Table 4-9 Read/write timing parameters of the SMI controller
Symbol

Min

Typ

Max

Description

T_WSTOEN

0

-

TWSTOEN(max)

Chip select signal valid to read
enable signal valid

T_WSTRD

-

-

TWSTRD(max)

Chip select signal valid to read
data valid

T_WSTIDLY

0

-

TWSTIDLY(max)

Interval between two successive
read/write operations

T_WSTWEN

0

-

TWSTWEN(max)

Chip select signal valid to write
enable signal valid

T_WSTWR

0

-

TWSTWR(max)

Chip select signal valid to write
data valid

Figure 4-5 shows the timing of the SMI controller interface in page read mode. The page read
mode greatly improves the data read speed.
Figure 4-5 Timing diagram (page read) of the SMI controller in timing parameter mode
SMI_ADDR

A

A+4

A+8

A+C

SMI_CS
T_WSTOEN
SMI_OEN
T_WSTBURSTRD
T_WSTBURSTRD
T_WSTBURSTRD

T_WSTRD
SMI_DATA

4-42

D(A)

D(A+4)

D(A+8)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

D(A+C)

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Table 4-10 lists the timing parameters of the SMI controller in page read mode.
Table 4-10 Page read timing parameters of the SMI controller
Symbol

Min

Typ

Max

Description

T_WSTOEN

0

-

TWSTOEN(max)

Chip select signal valid to
read enable signal valid

T_WSTRD

-

-

TWSTRD(max)

Chip select signal valid to
read data valid

T_WSTBURSTRD

-

-

TWSTBURSTRD(
max)

Interval between two
successive read operations
in page read mode

Table 4-11 shows the typical timing in asynchronous wait mode.
Figure 4-6 shows the read/write timing when the SMI_WAIT signal is used for the handshake
between the SMI controller and the external control chips.
Figure 4-6 Timing diagram (wait read/write) of the SMI controller in asynchronous wait mode
wait read
A

SMI_ADDR

wait write
B

SMI_CS
SMI_OEN
SMI_WEN
SMI_DATA

D(A)

D(B)

SMI_WAIT

4.2.5 Operating Mode
Pin Multiplexing
The pins of the SMI controller are multiplexed with other pins. Therefore, before using SMI
controller, the system controller must be configured to enable the SMI function of the
corresponding pins. For details, see the configuration description of the I/O configuration
registers reg42 and reg45.

Clock Gating
When the current data transfer is complete and a new data transfer does not start, the software
can disable the clock of the SMI controller by writing 1 to SC_PERDIS[smiclkdis].
When the SMI controller is required for data transfer, the software can enable the clock of the
SMI controller by the writing 1 to SC_PEREN[smiclken].

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-43

Hi3515
Data Sheet

4 Memory Controller

For details about how to query the current clock status of the SMI controller, see the
descriptions of SC_PERCLKEN.

Clock Configuration

The clock ratio of the SMI_CR register must be configured same as that of
SC_PERCTRL9[ssmcclk_sel].
When the current data transfer is complete and a new data transfer does not start, the software
can configure the working clock of the SMI controller by controlling
SC_PERCTRL9[ssmcclk_sel]. The frequency of the working clock of the SMI controller can
be configured equal to that of the bus clock or equal to that of the bus clock divided by 2. By
default, the frequency of the working clock of the SMI controller is equal to that of the bus
clock.

Boot Configuration
The system can only boot from the external memory with 8-bit data width that is connected to
SMI bank 0.

When the system boots from the external memory connected to the SMI bank 0, the chip
select of the external memory must be active low.
Table 4-11 lists the memory address space supported by the SMI controller.
Table 4-11 Memory address space supported by the SMI controller
Bank ID

Address Space

Bank 0

0x8000_0000 to 0x83FF_FFFF

Bank 1

0x8400_0000 to 0x87FF_FFFF

Initialization Configuration of the SMI Controller in Timing Parameter Mode
The SMI controller needs to be configured properly according to the timing parameters and
features of the external memory of the SMI controller. For details about the description of the
timing parameters, see "Function " in 4.2.4 "Function Description."
To initialize the SMI controller in timing parameter mode (by taking bank 1 as an example),
do as follows:
Step 1 Configure SMI_CR to set the working clock ratio of the SMI controller.

4-44

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Step 2 Configure SMI_BIDCYR1[idcy] to set the bus turnaround (idle) cycle TWSTIDLY between
read and write memory accesses.
Step 3 Configure SMI_BWSTRDR1[wstrd] to set the read wait cycle TWSTRD.
Step 4 Configure SMI_BWSTWRR1[wstwr] to set the write wait cycle TWSTWR.
Step 5 Configure SMI_BWSTOENR1[wstoen] to set the read (output) enable wait cycle TWSTOEN.
Step 6 Configure SMI_BWSTWENR1[wstwen] to set the write enable wait cycle TWSTWEN.
Step 7 Configure SMI_BWSTBRDR1[wstbrdr] to set the subsequent burst read wait cycle
TWSTBURSTRD.
Step 8 Configure SMI_BCR1 to set memory bank control parameters.
---End
After the preceding steps are complete, the CPU can access the external memory through the
configured SMI controller.

z

When the SMI controller is connected to an external asynchronous static memory, the data
transfer between the controller and the memory can be enabled only if the clock ratio
SMI_CR[memclkratio] of the SMI register and the data width SMI_BCR1[mw] of the
external memory are configured.

z

When the software configures each of the memory banks, the following conditions must
be met: TWSTOEN ≤ TWSTRD and TWSTWEN ≤ TWSTWR.

Initialization Configuration of the SMI Controller in Asynchronous Wait Mode
When the SMI controller is connected to a storage chip or control chip with wait signal output,
the SMI controller can be switched to the asynchronous wait mode. In this case, data can be
transferred through the handshake between the SMI controller and the external chip.
To initialize the SMI controller in asynchronous wait mode (by taking bank 1 as an example),
do as follows:
Step 1 Configure the I/O configuration register (reg45) so that the EBIRDYN pin is used to input the
SMI_WAIT signal.
Step 2 Configure the SMI_CR register to set the working clock ratio of the SMI controller.
Step 3 Configure SMI_BCR1 to set memory bank control parameters.
Step 4 Configure SMI_BCR1[waitpol] according to the valid polarity of the wait signal output by the
external chip.
Step 5 Set SMI_BCR1[waiten] to 1 to enable the asynchronous wait mode of the SMI controller.
---End
After the preceding steps, the SMI controller can work in asynchronous wait mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-45

Hi3515
Data Sheet

4 Memory Controller

4.2.6 Register Summary
Table 4-12 Summary of SMI controller registers (base address: 0x1010_0000)
Offset
Address

Name

Description

Page

0x000

SMI_BIDCYR1

Idle cycle control register of SMI bank 1

4-47

0x004

SMI_BWSTRDR1

Read wait cycle control register of SMI
bank 1

4-47

0x008

SMI_BWSTWRR1

Write wait cycle control register of SMI
bank 1

4-48

0x00C

SMI_BWSTOENR1

Read enable assertion delay control
register of SMI bank 1

4-49

0x010

SMI_BWSTWENR1

Write enable assertion delay control
register of SMI bank 1

4-49

0x014

SMI_BCR1

Control register of SMI bank 1

4-50

0x018

SMI_BSR1

Status register of SMI bank 1

4-51

0x01C

SMI_BWSTBRDR1

Burst read wait delay control register of
SMI bank 1

4-52

0x020–
0x0DC

RESERVED

Reserved

-

0x0E0

SMI_BIDCYR0

Idle cycle control register of SMI bank 0

4-53

0x0E4

SMI_BWSTRDR0

Read wait cycle control register of SMI
bank 0

4-53

0x0E8

SMI_BWSTWRR0

Write wait cycle control register of SMI
bank 0

4-54

0x0EC

SMI_BWSTOENR0

Read enable assertion delay control
register of SMI bank 0

4-55

0x0F0

SMI_BWSTWENR0

Write enable assertion delay control
register of SMI bank 0

4-55

0x0F4

SMI_BCR0

Control register of SMI bank 0

4-56

0x0F8

SMI_BSR0

Status register of SMI bank 0

4-57

0x0FC

SMI_BWSTBRDR0

Burst read wait delay control register of
SMI bank 0

4-58

0x100–
0x1FC

RESERVED

Reserved

-

0x200

SMI_SR

SMI asynchronous wait status register

4-59

SMI_CR

SMI working clock configuration
register

4-59

0x204

4-46

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Offset
Address
0x208–
0xFFC

Name

Description

Page

RESERVED

Reserved

-

4.2.7 Register Description
SMI_BIDCYR1
SMI_BIDCYR1is the idle cycle control register of SMI bank 1. It controls the bus turnaround
(idle) cycle between read and write memory accesses.

Bit

Offset Address

Register Name

Total Reset Value

0x000

SMI_BIDCYR1

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

idcy
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

TWSTIDLY controls the idle cycle between read and write.

[3:0]

RW

idcy

⎛ 1
TWSTIDLY = idcy × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, idcy indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BWSTRDR1
SMI_BWSTRDR1 is the read wait cycle control register of SMI bank 1. It controls the read
wait cycle.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-47

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x004

SMI_BWSTRDR1

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

wstrd
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

TWSTRD controls the read wait cycle.
For non-burst read, it controls the read wait cycle.
For burst read, it controls the initial burst read wait cycle. The
subsequent read wait cycles are configured through
SMI_BWSTBRDR1.
[4:0]

RW

wstrd

⎛ 1
TWSTRD = wstrd × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstrd indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BWSTWRR1
SMI_BWSTWRR1 is the write wait cycle control register of SMI bank 1. It controls the write
wait cycle.

Bit

Offset Address

Register Name

Total Reset Value

0x008

SMI_BWSTWRR1

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

wstwr
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

TWSTWR controls the write wait cycle.

[4:0]

RW

wstwr

⎛ 1
TWSTWR = wstwr × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstwr indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

4-48

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

SMI_BWSTOENR1
SMI_BWSTOENR1 is the read enable assertion delay control register of SMI bank 1. It
controls the wait time from the output of the valid chip select signal to the output of the valid
read enable signal.

Bit

Offset Address

Register Name

Total Reset Value

0x00C

SMI_BWSTOENR1

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

wstoen
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

TWSTOEN controls the wait time from the output of the valid chip
select signal to the output of the valid read enable signal.
[3:0]

RW

⎛ 1
TWSTOEN = wstoen × ⎜⎜
⎝ f SMICLK

wstoen

⎞
⎟⎟
⎠

Where, wstoen indicates the number of working clock cycles of
the system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BWSTWENR1
SMI_BWSTWENR1 is the write enable assertion delay control register of SMI bank 1. It
controls the wait time from the output of the valid chip select to the output of the valid write
enable signal.

Bit

Offset Address

Register Name

Total Reset Value

0x010

SMI_BWSTWENR1

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

wstwen
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

Issue 02 (2010-04-20)

2

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

1

1

1

1

4-49

Hi3515
Data Sheet

4 Memory Controller

TWSTWEN controls the wait time from the output of the valid chip
select to the output of the valid write enable signal.
[3:0]

RW

⎛ 1
TWSTWEN = wstwen × ⎜⎜
⎝ f SMICLK

wstwen

⎞
⎟⎟
⎠

Where, wstwen indicates the number of working clock cycles of
the system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BCR1

0

0

0

0

0

0

0

0

1

0

0

0

0

burstlenread

1

reserved

0

0

1

1

Bits

Access

Name

Description

[31:22]

-

reserved

Reserved.

[21]

RW

reserved

Reserved bit set to 1 only.

[20]

RW

reserved

Reserved bit set to 1 only.

0

0

8

7

6

0

0

0

0

5

4

3

mw wp

1

0

0

2

1

0

waitpol

0

bmwrite

Reset 0

reserved

reserved

burstlenwrite

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

0x0030_3020

reserved

SMI_BCR1

bmread

0x014

reserved

Total Reset Value

reserved

Register Name

reserved

Bit

Offset Address

waiten

SMI_BCR1 is the control register of SMI bank 1. It configures the transfer parameters of
bank1.

0

0

0

Burst length that specifies the count of data transferred in a burst
write operation in burst mode.
[19:18]

RW

burstlenwrite

00: Burst 4.
01: Burst 8.
10 or 11: Reserved.

[17]

RW

reserved

Reserved bit set to 0 only.
Configuration bit of the write mode.

[16]

RW

bmwrite

0: Write to the external device in non-burst mode.
1: Write to the external device in burst mode.

4-50

[15]

-

reserved

Reserved.

[14]

RW

reserved

Reserved bit set to 0 only.

[13]

RW

reserved

Reserved bit set to 1 only.

[12]

RW

reserved

Reserved bit set to 1 only.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Burst length that specifies the count of data to be transferred in the
subsequent burst read in burst mode.
[11:10]

RW

burstlenread

00: Burst 4.
01: Burst 8.
10: Burst 16.
11: Reserved.

[9]

RW

reserved

Reserved bit set to 0 only.
Configuration bit of the read mode.

[8]

RW

bmread

0: Read the external device in non-burst mode.
1: Read the external device in burst mode.

[7]

-

reserved

Reserved.

[6]

RW

reserved

Reserved bit set to 0 only.
Data width of the SMI bank 1 external device.

[5:4]

RW

00: 8 bits.

mw

Others: Reserved
Write-protect bit of the external device. This bit controls whether
to write-protect the external device.
[3]

RW

0: The external device is not write-protected. For example, the
SRAM is writable.

wp

1: The external device is write-protected. for example, the ROM is
read-only.
SMI bank 1 wait signal enable bit.
[2]

RW

waiten

0: Disabled. The SMI bank 1 is not controlled by the externally
input wait signal. Data is transferred according to the configuration
parameters of the internal timing register.
1: Enabled. The SMI bank 1 transfers data according to the
externally input wait signal.
Polarity selection bit of the externally input wait signal.

[1]

RW

waitpol

0: Active low.
1: Active high.

[0]

RW

reserved

Reserved bit set to 0 only.

SMI_BSR1
SMI_BSR1 is the status register of SMI bank 1. It displays the current status of bank1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-51

Hi3515
Data Sheet

4 Memory Controller
Register Name

Total Reset Value

0x018

SMI_BSR1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

Reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
waittouterr

Bit

Offset Address

0

0

0

0

0

0

0

External wait timeout error flag.
In read operation:
0: No error occurs.
[0]

RW

waittouterr

1: An external wait timeout error occurs.
In write operation:
0: Invalid.
1: The external wait timeout error flag is cleared.

SMI_BWSTBRDR1
SMI_BWSTBRDR1 is the burst read wait delay control register of SMI bank 1. It controls the
subsequent burst read wait delay.

Bit

Offset Address

Register Name

Total Reset Value

0x01C

SMI_BWSTBRDR1

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

Reserved

Reset 0

4-52

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

3

2

1

0

wstbrd
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

1

1

1

1

1

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

TWSTBURSTRD controls the burst read wait cycle.
For non-burst read, this timing parameter is not used.
For burst read, this timing parameter controls the subsequent burst
read wait cycle.
[4:0]

RW

The initial burst read wait cycle is configured through
SMI_BWSTRDR1

wstbrd

⎛ 1
TWSTBURSTRD = wstbrd × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstbrd indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BIDCYR0
SMI_BIDCYR0 is the idle cycle control register of SMI bank 0. It controls the idle cycle
between read and write.

Bit

Offset Address

Register Name

Total Reset Value

0x0E0

SMI_BIDCYR0

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

idcy
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

TWSTIDLY controls the idle cycle between read and write.

[3:0]

RW

idcy

⎛ 1
TWSTTIDLY = idcy × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, idcy indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI.

SMI_BWSTRDR0
SMI_BWSTRDR0 is the read wait cycle control register of SMI bank 0. It controls the read
wait cycle.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-53

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x0E4

SMI_BWSTRDR0

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

1

1

wstrd
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

1

1

1

TWSTRD controls the read wait cycle.
For non-burst read, it controls the read wait cycle.
For burst read, it controls the initial burst read wait cycle. The
subsequent read wait cycles are configured through
SMI_BWSTBRDR0.
[4:0]

RW

wstrd

⎛ 1
TWSTRD = wstrd × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstrd indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BWSTWRR0
SMI_BWSTWRR0 is the write wait cycle control register of SMI bank 0. It controls the write
wait cycle.

Bit

Offset Address

Register Name

Total Reset Value

0x0E8

SMI_BWSTWRR0

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

1

1

wstwr
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

1

1

1

TWSTWR controls the write wait cycle.

[4:0]

RW

wstwr

⎛ 1
TWSTWR = wstwr × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstwr indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

4-54

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

SMI_BWSTOENR0
SMI_BWSTOENR0 is the read enable assertion delay control register of SMI bank 0. It
controls the wait time from the output of the valid chip select signal to the output of the valid
read enable signal.

Bit

Offset Address

Register Name

Total Reset Value

0x0EC

SMI_BWSTOENR0

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

wstoen
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

TWSTOEN controls the wait time from the output of the valid chip
select signal to the output of the valid read enable signal.
[3:0]

RW

⎛ 1
TWSTOEN = wstoen × ⎜⎜
⎝ f SMICLK

wstoen

⎞
⎟⎟
⎠

Where, wstoen indicates the number of working clock cycles of
the system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BWSTWENR0
SMI_BWSTWENR0 is the write enable assertion delay control register of SMI bank 0. It
controls the wait time from the output of the valid chip select to the output of the valid write
enable signal.

Bit

Offset Address

Register Name

Total Reset Value

0x0F0

SMI_BWSTWENR0

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

wstwen
0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

Issue 02 (2010-04-20)

2

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

1

1

1

1

4-55

Hi3515
Data Sheet

4 Memory Controller

TWSTWEN controls the wait time from the output of the valid chip
select to the output of the valid write enable signal.
[3:0]

RW

⎛ 1
TWSTWEN = wstwen × ⎜⎜
⎝ f SMICLK

wstwen

⎞
⎟⎟
⎠

Where, wstwen indicates the number of working clock cycles of
the system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_BCR0
SMI_BCR0 is the control register of SMI bank 0. It configures the transfer parameters of
bank0.

0

0

0

0

0

0

0

0

0

0

0

1

1

Bits

Access

Name

Description

[31:22]

-

reserved

Reserved.

[21]

RW

reserved

Reserved bit set to 1 only.

[20]

RW

reserved

Reserved bit set to 1 only.

0

0

0

0

0

0

5

4

mw

0

burstlenread

1

reserved

1

6

0

0

3

2

1

0

waitpol

0

7

reserved

0

8

wp

0

bmwrite

Reset 0

reserved

Reserved

burstlenwrite

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

waiten

0x0030_3000

reserved

SMI_BCR0

bmread

0x0F4

reserved

Total Reset Value

reserved

Register Name

reserved

Bit

Offset Address

0

0

0

0

Burst length that specifies the count of data to be transferred in a
burst write operation in burst mode (see Figure 4-5).
[19:18]

RW

burstlenwrite

00: Burst 4.
01: Burst 8.
10 or 11: Reserved.

[17]

RW

reserved

Reserved bit set to 0 only.
Configuration bit of the write mode.

[16]

RW

bmwrite

0: Write to the external device in non-burst mode.
1: Write to the external device in burst mode.

4-56

[15]

-

reserved

Reserved.

[14]

RW

reserved

Reserved bit set to 0 only.

[13]

RW

reserved

Reserved bit set to 1 only.

[12]

RW

reserved

Reserved bit set to 1 only.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Burst length that specifies the count of data to be transferred in the
subsequent burst read operation in burst mode.
[11:10]

RW

burstlenread

00: Burst 4.
01: Burst 8.
10: Burst 16.
11: Reserved.

[9]

RW

reserved

Reserved bit set to 0 only.
Configuration bit of the read mode.

[8]

RW

bmread

0: Read the external device in non-burst mode.
1: Read the external device in burst mode.

[7]

-

reserved

Reserved.

[6]

RW

reserved

Reserved bit set to 0 only.
Data width of the SMI bank 0 external device.

[5:4]

RW

00: 8 bits.

mw

Others: Reserved.
Write-protect bit of the external device. This bit controls whether
to write-protect the external device.
[3]

RW

0: The external device is not write-protected. For example, the
external SRAM is writable.

wp

1: The external device is write-protected. For example, the
external ROM is read-only.
SMI bank 0 wait signal enable bit.
[2]

RW

waiten

0: Disabled. The SMI bank 0 is not controlled by the externally
input wait signal. Data is transferred according to the configuration
parameters of the internal timing register.
1: Enabled. The SMI bank 0 transfers data according to the
externally input wait signal.
Polarity selection bit of the externally input wait signal.

[1]

RW

waitpol

0: Active low.
1: Active high.

[0]

RW

reserved

Reserved bit set to 0 only.

SMI_BSR0
SMI_BSR0 is the status register of SMI bank 0. It displays the current status of bank0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-57

Hi3515
Data Sheet

4 Memory Controller
Register Name

Total Reset Value

0x0F8

SMI_BSR0

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
waittouterr

Bit

Offset Address

0

0

0

0

0

0

0

External wait timeout error flag.
In read operation:
0: No error occurs.
[0]

RW

waittouterr

1: An external wait timeout error occurs.
In write operation:
0: Invalid.
1: The external wait timeout error flag is cleared.

SMI_BWSTBRDR0
SMI_BWSTBRDR0 is the burst read wait delay control register of SMI bank 0. It controls the
subsequent burst read wait delay.

Bit

Offset Address

Register Name

Total Reset Value

0x0FC

SMI_BWSTBRDR0

0x0000_001F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

reserved

Reset 0

4-58

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

3

2

1

0

wstbrd
0

Bits

Access

Name

Description

[31:5]

-

reserved

Reserved.

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

1

1

1

1

1

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

TWSTBURSTRD controls the burst read wait cycle.
For non-burst read, this timing parameter is not used.
For burst read, this timing parameter controls the subsequent burst
read wait cycles.
[4:0]

RW

The initial burst read wait cycle is configured through
SMI_BWSTRDR0.

wstbrd

⎛ 1
TWSTBURSTRD = wstbrd × ⎜⎜
⎝ f SMICLK

⎞
⎟⎟
⎠

Where, wstbrd indicates the number of working clock cycles of the
system configuration SMI controller; fSMICLK indicates the
frequency of the working clock of the SMI controller.

SMI_SR
SMI_SR is the SMI asynchronous wait status register that displays the asynchronous wait
status.
Register Name

Total Reset Value

0x200

SMI_SR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
waitstatus

Bit

Offset Address

0

0

0

0

0

0

0

SMI asynchronous wait status bit.
[0]

RO

waitstatus

0: The wait signal is invalid.
1: The wait signal is valid.

Note: This status register displays the asynchronous wait status in asynchronous wait mode only.

SMI_CR
SMI_CR is the SMI working clock configuration register that configures the relationship
between the working clock of the SMI controller and the bus clock of the system.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-59

Hi3515
Data Sheet
Register Name

Total Reset Value

0x204

SMI_CR

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

-

reserved

Reserved.

1
memclkratio

Bit

Offset Address

0

0

0

0

0

0

0

0

0
reserved

4 Memory Controller

1

Configuration bit of the working clock of the SMI controller.
[2:1]

RW

memclkratio

00: The frequency of the working clock of the SMI controller is
equal to that of the system bus clock.
01: The frequency of the working clock of the SMI controller is
equal to the frequency of the system bus clock divided by 2.
10 or 11: Reserved.

[0]

RW

reserved

Reserved bit set to 1 only.

4.3 NAND Flash Controller
4.3.1 Overview
The NAND flash controller (NANDC) connects to an external NAND flash to access data
through its memory controller interfaces.

4.3.2 Features
The NANDC has the following features:

4-60

z

Provide 2 KB (2048 bytes + 128 bytes) on-chip buffer to improve the read speed

z

Supports two chip select (CS) signals and one ready/busy signal

z

Supports 8-bit data-bus NAND flash interfaces

z

Supports the NAND boot function and the NAND flash with the page size of 2 KB or 4
KB. In addition, the NANDC can boot from the NAND flash corresponding to CS 0.

z

Supports 512-byte hamming error correcting code (ECC) check and 1-bit error
correction. For the MLC component, the NANDC supports 4-/8-byte (512 bytes) error
check and correction. It can also enable or disable ECC check and 1-bit error correction.

z

Reports interrupts when errors occur during reading, writing, erasing, programming, and
ECC checking

z

Reads and writes data with variable length

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

z

Flexibly configures the commands issued by the controller to support various NAND
flash command operations (including cache read and write)

z

Supports break in the process of reading and writing the NAND flash, thus releasing the
shared bus

z

Operates two NAND flash memories alternatively to improve the efficiency

z

Supports write protection for the NAND flash. The write-protected addresses are
configurable.

z

Supports lock and lock_down modes and enabling or disabling the functions of flash
lock and flash global lock. By default, the functions are enabled. The NANDC always
reports operation error interrupts if the locked addresses are written.

z

Reads data from the NAND flash in enhanced data out (EDO) mode

4.3.3 Description of NANDC Interfaces
4.3.3.1 Description of Interface Signals
Table 4-13 shows the signals of NANDC interfaces.
Table 4-13 Signals of NANDC interfaces
Signal

Direction

Description

Corresponding
Pin

NF_RB

I

NAND flash status indicator signal.

NFRB

1: idle
0: busy
NF_CSN0

O

First CS signal of the NAND flash,
active low.

NFCS0N

NF_CSN1

O

Second CS signal of the NAND
flash, active low.

NFCS1N

NF_REN

O

Read enable signal of the NAND
flash, active low.

NFOEN

NF_WEN

O

Write enable signal of the NAND
flash, active low.

EBIWEN

NF_CLE

O

Command latch signal of the
NAND flash.

NFCLE

NF_ALE

O

Address latch signal of the NAND
flash.

NFALE

NF_ADNUM[1:
0]

I

Number of addresses sent to the
NAND flash by the NANDC during
booting.

EBIADR18/EBIA
DR17

00: three address cycles
01: four address cycles
10: five address cycles
11: six address cycles

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-61

Hi3515
Data Sheet

4 Memory Controller

Signal

Direction

Description

Corresponding
Pin

NF_PAGE[1:0]

I

Page size of the NAND flash
during booting.

EBIADR20/EBIA
DR19

01: 2 KB
10: 4 KB
Others: reserved
NF_ECC0[1:0]

I

EBIADR16/EBIA
DR15

ECC mode during booting.
00: non-ECC mode
01: 1-bit ECC mode
10: 4-bit ECC mode
11: 8-bit ECC mode
By default, the 1-bit correction
mode is enabled.

EBI_DQ[7:0]

IO

Data address bus of the NAND
flash interface. When an 8-bit
NAND flash is accessed, only the
lower eight bits are valid.

EBI_DQ0–
EBI_DQ7

4.3.4 Function Description
4.3.4.1 Block Diagram of NANDC Interfaces
The Hi3515 provides two CS signals and one ready/busy signal, so it can connect to the
NAND flash conveniently. If there are two ready/busy signals, they are connected to NFRB in
wire-ANDed mode.
Figure 4-7 Block diagram of NANDC interfaces
NF_CSN[1:0]
NF_REN
NF_WEN

NAND
flash memory

NF_CLE
NF_ADNUM[1:0]

NF_ALE

NF_PAGE[1:0]
NF_ECC0[1:0]

NF_RB

EBI signal
EBI

4-62

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

EBI_DQ[7:0]

NANDC

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

4.3.4.2 Function Principle
The data of the NAND flash is stored by blocks or by pages. Each block contains several
pages. Before writing data to the NAND flash, you must erase the memory by blocks. Then,
you should read and write to the memory by pages.
The commands for operating the NAND flash vary according to manufacturers. That is, the
specific commands are subject to component manuals.
A typical read operation is performed as follows:
Step 1 Send the 0x00 command to the NAND flash.
Step 2 Send the read start address.
The start address consists of the internal page address, page address, and block address. For
details, see the NAND flash manuals provided by related manufacturers.
Step 3 Send the read acknowledgement command 0x30.
In this case, the NAND flash pulls the RB signal low. This indicates that the NAND flash is
being read. About 25 μs later, the RB signal becomes high. This indicates that data of the
NAND flash has been prepared.
Step 4 Read data from the NAND flash by enabling the NF_REN signal.
----End
Figure 4-8 shows the typical timing when the NANDC reads the data of a page size from the
NAND flash.
Figure 4-8 Typical timing when the NANDC reads the data of a page size from the NAND flash
NF_CSN0
NF_CLE
NF_ALE

NF_WEN
NF_REN
NF_RB
EBI_DQ[7:0]

00

ad0

ad1

ad2

ad3

ad4

30

data

data

data

data

data

data

A typical programming operation (writing data) is performed as follows:
Step 1 Send the programming command 0x80 to the NAND flash.
Step 2 Send the start address where data is written.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-63

Hi3515
Data Sheet

4 Memory Controller

The start address consists of the internal page address, page address, and block address. For
details, see the NAND flash manuals provided by related manufacturers.
Step 3 Write data to the internal buffer of the NAND flash.
Step 4 Send the programming acknowledgement command 0x10.
In this case, the NAND flash pulls the RB signal low. This indicates that the NAND flash is
being programmed. About 200 ms later, the RB signal becomes high. This indicates that the
programming operation is complete.
Step 5 Read the status data by sending the read status command 0x70.
The status data indicates whether the programming operation is successful.
----End
Figure 4-9 shows the timing when the NANDC starts to be programmed.
Figure 4-9 Timing when the NANDC starts to be programmed
NF_CSN_0
NF_CLE
NF_ALE
NF_WEN
NF_REN
NF_RB
EBI_DQ[7:0]

80

ad0

ad1

ad2

ad3

data

data

10

70

XX

4.3.5 Operating Mode
Pin Multiplexing Configuration
NFRB is multiplexed with GPIO0_7. If a peripheral has two ready/busy signals, they are
connected to NF_RB in wire-ANDed mode.
NFCS1N is multiplexed with GPIO0_6. If a peripheral has two CS signals, the IO config
register reg43 must be configured. That is, NFCS1N should be selected.

Clock Gating
When the NAND flash is not used, you can disable the working clock of the NANDC. To
disable the clock, do as follows:
Step 1 Read NFC_STATUS[nfc_ready] of the NANDC.

4-64

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Step 2 If NFC_STATUS[nfc_ready] is 1 and the NAND flash is not read and written by the software,
go to Step 3; otherwise, go to Step 1.
Step 3 Write 1 to the system register SC_PERDIS[nandcclkdis] to disable the clock.
----End

Soft Reset
After the NANDC is enabled by writing data to the NFC_OP, if NFC_STATUS[nfc_ready] is
changed to 0 and cannot be changed to 1 for a long period, it indicates that the NANDC is
abnormal and a soft reset operation is required. The maximum duration depends on the
NAND flash. For the single-level cell (SLC) flash memory, it is less than 4 ms; for the multilevel cell (MLC) memory, it is less than 11 ms.
To execute soft reset on the NANDC, write 1 to SC_PERCTRL10 [nadc_hrst]. After reset,
each configuration register is reset to its default value. Therefore, these registers must be
initialized again after reset. In addition, the reset command must be sent to the NAND flash
after soft reset (if it supports the reset operation), thus ensuring its reliability.
The NANDC provides the lock function. After this function is enabled, it can be disabled only after
hardware is reset.

Boot Configuration Pins
The NANDC supports the NAND boot function and the memory with the page size of 2 KB
or 4 KB. The NANDC can boot from the NAND flash corresponding to CS 0 only.
After reset, the boot mode of the NANDC depends on the levels of the NANDC boot
configuration pins. When the NANDC is reset, the levels of the boot configuration pins are
sampled. After sampling, the operating status of the NANCD is not affected by the levels.
Table 4-14 shows the boot configuration pins.
Table 4-14 Boot configuration pins
Pin

Direction

Description

NF_NUM[1:0]

I

Number of addresses sent to the NAND flash by the
NANDC during booting.
00: three address cycles
01: four address cycles
10: five address cycles
11: six address cycles

NF_PAGE[1:0]

I

Page size of the NAND flash during booting.
01: 2 KB
10: 4 KB
Others: reserved

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-65

Hi3515
Data Sheet

4 Memory Controller

Pin

Direction

Description

NF_ECC[1:0]

I

ECC mode during booting.
00: non-ECC mode
01: 1-bit ECC mode
10: 4-bit ECC mode
11: 8-bit ECC mode

Boot Mode
By default, the NANDC is in boot mode and can boot from the NAND flash corresponding to
CS 0 only. The features of the boot mode are as follows:
z

The data ranging from 0x00_0000 to 0x01_FFFF can be read through the CPU. The total
size of the address space is 128 KB.

z

When the NANDC boots from the NAND flash, the NANDC automatically sends a
command to read the corresponding page of the NAND flash based on the addresses read
by the CPU and then returns the corresponding data.

z

Data cannot be written to the internal buffer through the CPU.

z

The boot configuration pins must be configured properly according to the models of the
connected NAND flash.

Normal Mode
The NANDC is switched to the normal mode when NFC_CON[op_mode] is set to 1. In this
mode, the operations such as erasing, programming, and reading can be performed on the
NAND flash through the CPU.

Setting NAND Flash Addresses
The NANDC does not translate addresses. According to the number of addresses set by the
configuration register, the NANDC sends the values of low-bit and high-bit address registers
to NAND flash. Hence, the software should translate the address of the CPU into the address
of the NAND flash and then write it to the address register. The requirements for setting the
address of each flash memory are subject to the user manuals provided by the manufacturers
of NAND flash memories.
Table 4-15 lists the requirements for setting the addresses of the Samsung K9F2G08U0M
memory. Its capacity is 256 MB x 8 bits and its page size is 2 KB. A0 to A11 indicate internal
page addresses (column addresses) and A12 to A27 indicate page addresses (row addresses).
Table 4-15 K9F2G08U0M addresses

4-66

Cycle

IO0

IO1

IO2

IO3

IO4

IO5

IO6

IO7

1st cycle

A0

A1

A2

A3

A4

A5

A6

A7

2nd cycle

A8

A9

A10

A11

0

0

0

0

3rd cycle

A12

A13

A14

A15

A16

A17

A18

A19

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Cycle

IO0

IO1

IO2

IO3

IO4

IO5

IO6

IO7

4th cycle

A20

A21

A22

A23

A24

A25

A26

A27

Table 4-16 lists the requirements for setting the addresses of the Samsung K9GAG08X0M
memory. Its capacity is 2 GB x 8 bits and its page size is 4KB. A0 to A12 indicate internal
page addresses (column addresses) and A13 to A31 indicate page addresses (row addresses).
Table 4-16 K9GAG08X0M addresses
Cycle

IO0

IO1

IO2

IO3

IO4

IO5

IO6

IO7

1st cycle

A0

A1

A2

A3

A4

A5

A6

A7

2nd cycle

A8

A9

A10

A11

A12

0

0

0

3rd cycle

A13

A14

A15

A16

A17

A18

A19

A20

4th cycle

A21

A22

A23

A24

A25

A26

A27

A28

5th cycle

A29

A30

A31

0

0

0

0

0

Address Mapping
In normal mode, the address mapping of the NANDC is as follows:
z

The base address of the internal buffer of the NANDC is 0x7000_0000.

z

The base address of the internal register area of the NANDC is 0x1000_0000.

Operation Commands
The NAND flash memories provide certain advanced commands. Table 4-17 shows the
common commands for operating NAND flash memories.
Table 4-17 Common commands for operating the NAND flash memories
Function

1st Cycle

2nd Cycle

Remarks

READ

00H

30H

–

PROGRAM

80H

10H

–

BLOCK ERASE

60H

D0H

–

READ ID

90H

–

–

READ STATUS

70H

–

–

RESET

FFH

–

–

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-67

Hi3515
Data Sheet

4 Memory Controller

Data Storage Structure
The size of the internal buffer of the NANDC is (2048 + 128) bytes. This section describes the
data storage structures in the NANDC buffer. The data is read from or written to the NAND
flash.
z

1-bit ECC Mode
−

Page Size of (512 + 16) Bytes
The 512-byte valid data is stored in the addresses of the buffer ranging from 0x000 to
0x1FF; the data of the spare area is stored in the addresses ranging from 0x7FF to
0x83F, as shown in Figure 4-10.

−

Page Size of 2 KB (2048 + 64 Bytes)
The 2048-byte valid data is stored in the addresses of the buffer ranging from 0x000
to 0x7FF; the 64-byte spare data is stored in the addresses ranging from 0x800 to
0x80F.
The main areas of byte 0 to byte 511 map to the spare areas of the addresses ranging
from 0x800 to 0x80F. The rest may be deduced by analogy.
The data structures of spare areas are the same as those with the page size of (512 +
16) bytes, as shown in Figure 4-11.
When ECC mode is enabled, the data written to the NAND flash is automatically
stored in the format that each main area is located next to its corresponding spare area,
as shown in Figure 4-12.

−

Page Size of 4 KB (4096 + 128 Bytes)
For the memory with the page size of 4 KB, the operation must be performed twice.
The structures for reading and writing data each time are the same as those in Figure
4-11.

Figure 4-10 Data storage structure of the NAND flash with the page size of (512 + 16) bytes in 1bit ECC mode

Main area
(512 bytes)

RSV
(512 bytes)

RSV
(512 bytes)

ext_data (byte 0 to byte 10)

4-68

RSV
(512 bytes)

S_ECC0

Spare area
(16 bytes)

RSV
(112 bytes)

S_ECC1 ECC0 ECC1 ECC2

z

ECC0, ECC1, and ECC2: ECC code for main area data

z

S_ECC0 and S_ECC1: ECC code for RSV (byte 0 to byte 10) data

z

ext_data: extended data area

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Figure 4-11 Data storage structure of the NAND flash with the page size of 2 KB (2048 + 64)
bytes

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Spare
Spare
Spare
Spare
RSV
area
area
area
area
(64 bytes)
(16 bytes) (16 bytes) (16 bytes) (16 bytes)

Figure 4-12 Data structure after data is automatically stored in main areas and their corresponding
spare areas

Main area
(512 bytes)

Spare area
(16 bytes)

Main area
(512 bytes)

Spare area
(16 bytes)

Main area
(512 bytes)

Spare area
(16 bytes)

Main area
(512 bytes)

Spare area
(16 bytes)

In boot mode, if the 1-bit ECC function is enabled, the data must be stored in the NAND flash in the
structure as shown in Figure 4-11.
z

4-bit ECC Mode
−

Page Size of 2 KB (2048 + 64 Bytes)
The 2048-byte valid data is stored in the addresses of the buffer ranging from 0x000
to 0x7FF; the 64-byte spare data is stored in the addresses ranging from 0x800 to
0x83F, as shown in Figure 4-13.
The main areas of byte 0 to byte 511 map to the spare areas of byte 2048 to byte 2063.
The rest may be deduced by analogy.
When ECC check is enabled, the data written to the NAND flash is automatically
stored in the format that each main area is located next to its corresponding spare area,
as shown in Figure 4-12.

−

Page Size of 4KB (4096 + 128 Bytes)
For the memory with the page size of 4 KB, the operation must be performed twice.
The structures for reading and writing data each time are the same as those in Figure
4-13.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-69

Hi3515
Data Sheet

4 Memory Controller

Figure 4-13 Data storage structure of the NAND flash with the page size of 2 KB (2048 + 64)
bytes in 4-bit ECC mode

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Spare
Spare
Spare
Spare
RSV
area
area
area
area
(64 bytes)
(16 bytes) (16 bytes) (16 bytes) (16 bytes)

Spare area
(16 bytes)

ext_data (byte 0 to byte 5)

z

ECC CODE (byte 6 to byte15)

8-Bit ECC Mode
The following shows the storage structure of the data in the internal buffer of the
NANDC. The buffer size is (2048 + 26 x 4) bytes. For the memory with the page size of
4 KB, the operation must be performed twice, as shown in Figure 4-14.
When ECC check is enabled, the data written to the NAND flash is automatically stored
in the format that each main area is located next to its corresponding spare area, as
shown in Figure 4-12.
For the Toshiba memory, its storage space is (4096 + 218) bytes; therefore, 10 bytes
(byte 209 to byte 218) are left.

Figure 4-14 Data storage structure of the NAND flash with the page size of (2048 + 26 x 4) bytes
in 8-bit ECC mode

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Main area
(512 bytes)

Spare
Spare
area
area
(26 bytes) (26 bytes)

Spare
Spare
area
area
(26 bytes) (26 bytes)

RSV
(24 bytes)

Spare area
(26 bytes)

ext_data (byte 0 to byte 5)

4-70

ECC CODE (byte 6 to byte 25)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Initialization
The initialization operation is performed as follows:
Step 1 Write 1 to NFC_CON[op_mode] to enter the normal mode, set NFC_CON[page_size] based
on the page size of the connected memory, and then set check and correction modes based on
the number of CS signals and ready/busy signals of the connected memory and the
configuration of NFC_CON[ecc_type].
Step 2 Write to NFC_PWIDTH based on the timing requirements for the connected memory.
Step 3 In query mode, write to the interrupt enable register NFC_INTEN to mask all the interrupts;
in interrupt mode, enable the interrupt op_done only and mask other interrupts.
----End

Erasing the NAND Flash
The NAND flash is erased as follows:
Step 1 Write the programming page address to NFC_ADDRL and NFC_ADDRH and write the erase
command 0x0070_D060 to NFC_CMD.
Step 2 Write 0x369 to NFC_OP and enable the NANDC to erase the NAND flash. Assume that the
NAND flash chip needs three addresses and the operation is performed on CS 0.
Step 3 In query mode, check the value of NFC_STATUS[nfc_ready]. If it is 1, go to Step 4;
otherwise, continue to query. In interrupt mode, check the value of NFC_INTS[op_done]. If it
is 1, go to Step 4.
Step 4 Read NFC_STATUS[nf_status] to check whether the erase operation is successful.
----End

Programming the NAND Flash with the Page Size of 4 KB
The NAND flash is programmed as follows:
Step 1 Write the first half of 4-KB data (including 2048-byte data in main areas and 104-byte data in
spare areas) to the buffer of the NANDC through the CPU. If ecc_type is 2'b00, write to
NFC_DATA_NUM to set the number of data segments to be written.
Step 2 Write the page address of the NAND flash to NFC_ADDRL and NFC_ADDRH and write the
programming command 0x0070_1080 to NFC_CMD through the CPU.
Step 3 Write 0x570 to NFC_OP and enable the NANDC to write to the NAND flash through the
CPU. Assume that the NAND flash chip needs five addresses and the operation is performed
on CS 0.
Step 4 In query mode, check the value of NFC_STATUS[nfc_ready] until the flag is 1, and then go
to Step 5; in interrupt mode, check the value of NFC_INTS[op_done]. If the op_done
interrupt is generated, go to Step 5.
Step 5 Write the last half of 4-KB data (including 2048-byte data in main areas and 104-byte data in
spare areas) to the buffer of the NANDC through the CPU. Write 0x0d to NFC_OP and
enable the NANDC to send a programming command to the NAND flash.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-71

Hi3515
Data Sheet

4 Memory Controller

Step 6 In query mode, check the value of NFC_STATUS[nfc_ready] until the flag is 1, and then go
to Step 7; in interrupt mode, check the value of NFC_INTS[op_done]. If the op_done
interrupt is generated, go to Step 7.
Step 7 Read NFC_STATUS [nf_status] to check whether the programming operation is successful.
----End

Reading Page-Sized Data from the NAND Flash with the Page Size of 4 KB
Data is read as follows:
Step 1 Write the page address of the NAND flash to NFC_ADDRL and NFC_ADDRH and write the
read command 0x3000 to NFC_CMD through the CPU. If ecc_type is 2'b00, write to
NFC_CMD to set the number of data segments to be read.
Step 2 Write 0x56E to NFC_OP to enable the NANDC to read data. Assume that the NAND flash
chip needs five addresses and the operation is performed on CS 0.
Step 3 In query mode, check the value of NFC_STATUS[nfc_ready] until the flag is 1, and then go
to Step 4; in interrupt mode, check the value of NFC_INTS[op_done]. If the op_done
interrupt is generated, go to Step 4.
Step 4 Read NFC_STATUS through the CPU to check whether uncorrectable errors occur.
Step 5 Read data from the buffer of the NANDC through the CPU, and then write the data to the
memory.
Step 6 Write 0x02 to NFC_OP to enable the NANDC to continue to read the last half of data with
the page size of 4 KB.
Step 7 In query mode, check the value of NFC_STATUS[nfc_ready] until the flag is 1, and then go
to Step 8; in interrupt mode, check the value of NFC_INTS[op_done]. If the op_done
interrupt is generated, go to Step 8.
Step 8 Read NFC_STATUS through the CPU to check whether uncorrectable errors occur.
Step 9 Read data from the buffer of the NANDC through the CPU, and then write the data to the
memory.
----End

Other Precautions
Other precautions that should be taken are as follows:

4-72

z

Operation commands supported by the NAND flash memories vary according to
manufacturers. Therefore, the command register NFC_CMD must be configured
properly according to memory manuals. Also, the NAND flash memories with different
capacities require different number of address cycles. Thus the address_cycles field of
NFC_OP must be configured according to memory manuals. In addition, the timings
supported by memories are different. Hence, the read-write pulse width register
NFC_PWIDTH and operation interval register NFC_OPIDLE must be configured
according to memory manuals.

z

After configuring related registers and buffer, write to NFC_OP to enable the NANDC to
read and write to the flash memory. After that, do not write related registers; otherwise,
the NANDC or flash memory may work improperly.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
z

4 Memory Controller

After enabling the NAND flash to be read and written by writing NFC_STATUS, do not
read and write to the buffer of the NANDC when the flag NFC_STATUS[nfc_ready] is 0.
Otherwise, error data may be returned.

4.3.6 Register Summary
Table 4-18 lists the NANDC registers.
Table 4-18 Summary of NANDC registers (base address: 0x1000_0000)
Offset
Address

Register

Description

Page

0x00

NFC_CON

NANDC configuration register

4-74

0x04

NFC_PWIDTH

Read/Write pulse width configuration
register

4-75

0x08

NFC_OPIDLE

Operation interval configuration register

4-76

0x0C

NFC_CMD

Command word configuration register

4-76

0x10

NFC_ADDRL

Low-bit address configuration register

4-77

0x14

NFC_ADDRH

High-bit address configuration register

4-77

0x18

NFC_DATA_NUM

Configuration register for the number of
data segments to be read and written

4-77

0x1C

NFC_OP

Operation register

4-78

0x20

NFC_STATUS

Status register

4-80

0x24

NFC_INTEN

Interrupt enable register

4-81

0x28

NFC_INTS

Interrupt status register

4-82

0x2C

NFC_INTCLR

Interrupt clear register

4-83

0x30

NFC_LOCK

Lock address configuration register

4-85

0x34

NFC_LOCK_SA0

Configuration address of lock start address 0

4-85

0x38

NFC_LOCK_SA1

Configuration address of lock start address 1

4-86

0x3C

NFC_LOCK_SA2

Configuration address of lock start address 2

4-87

0x40

NFC_LOCK_SA3

Configuration address of lock start address 3

4-87

0x44

NFC_LOCK_EA0

Configuration address of lock end address 0

4-88

0x48

NFC_LOCK_EA1

Configuration address of lock end address 1

4-88

0x4C

NFC_LOCK_EA2

Configuration address of lock end address 2

4-89

0x50

NFC_LOCK_EA3

Configuration address of lock end address 3

4-90

0x54

NFC_EXPCMD

Extended page command register

4-90

0x58

NFC_EXBCMD

Extended block command register

4-91

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-73

Hi3515
Data Sheet

4 Memory Controller

Offset
Address

Register

Description

Page

0x5C

NFC_ECC_TEST

ECC test register

4-91

4.3.7 Register Description
NFC_CON
NFC_CON is the NANDC configuration register.

Reset

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:13]

-

reserved

Reserved.

?

?

?

0

0

0

5

0

0

1

0

1

4

3

2

?

?

1

0

0

0

op_mode

6

pagesize

7

reserved

reserved

?

ecc_type

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

ecc_en

-

cs_ctrl

NFC_CON

rb_sel

0x00

protection_en

Total Reset Value

ext_data_ecc_en

Register Name

edo_en

Bit

Offset Address

0

NAND flash data read/write enable in EDO mode.
0: normal mode
[12]

RW

edo_en

1: EDO mode
This function must be used according to the requirements for
specific memory.
ECC mode selection.
00: non-ECC mode

[11:10]

RW

ecc_type

01: 1-bit ECC mode
10: 4-bit ECC mode
11: 8-bit ECC mode
The reset value depends on the pins EBIADR16 and EBIADR15.
Check or correction enable for the extended data area.

[9]

RW

ext_data_ecc_en

0: disabled
1: enabled
Note: This bit is valid only when ecc_en is 1.
Register read- and write-protection enable.

[8]

RW

protection_en

0: disabled
1: enabled

4-74

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[7]

4 Memory Controller

-

reserved

Reserved.
CS control.

[6]

RW

0: When the NAND flash is busy, keep CS signal 0 unchanged.

cs_ctrl

1: When the NAND flash is busy, set the CS signal to 1.
This mode maps to the cs do not care mode of the NAND flash.
ECC enable.

[5]

RW

ecc_en

0: disabled
1: enabled

[4:3]

-

reserved

Reserved.
Page size of the NAND flash.
01: 2 KB

[2:1]

RW

pagesize

10: 4 KB
Others: reserved
The reset value depends on the pin NFC_PAGE_SIZE.
Operating mode of the NANDC.

[0]

RW

op_mode

0: boot mode
1: normal mode

NFC_PWIDTH
NFC_PWIDTH is the read/write pulse width configuration register.

Bit

Offset Address

Register Name

Total Reset Value

0x04

NFC_PWIDTH

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

reserved
?

?

?

?

?

?

?

?

?

?

?

7

rw_hcnt
?

?

?

?

?

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

[11:8]

RW

rw_hcnt

[7:4]

RW

r_lcnt

[3:0]

RW

w_lcnt

Issue 02 (2010-04-20)

8

?

?

?

?

0

1

0

6

5

4

3

r_lcnt
1

0

1

0

2

1

0

w_lcnt
1

0

1

0

1

High-level width of the read/write signal of the NAND flash.
0x0–0xF: 1–16 clock cycles
Low-level width of the read signal of the NAND flash.
0x0–0xF: 1–16 clock cycles
Low-level width of the write signal of the NAND flash.
0x0–0xF: 1–16 clock cycles

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-75

Hi3515
Data Sheet

4 Memory Controller

NFC_OPIDLE
NFC_OPIDLE is the operation interval configuration register.
Total Reset Value

0x08

NFC_OPIDLE

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

Register Name

reserved

?

?

?

?

?

frb_wait

?

?

?

1

1

1

cmd1_wait

1

1

1

1

1

addr_wait

1

1

1

8

write_data_wait

Bit

Offset Address

1

1

1

1

7

6

5

4

3

cmd2_wait

1

1

1

1

1

2

1

0

frb_idle

1

1

1

1

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:20]

RW

frb_wait

A period of delay later after a read/write command is sent, the read
signal is detected to check whether it becomes high. The number
of delay cycles is frb_wait x 8.

[19:16]

RW

cmd1_wait

[15:12]

RW

addr_wait

[11:8]

RW

write_data_wait

[7:4]

RW

cmd2_wait

[3:0]

RW

frb_idle

Number of wait cycles after command 1 is sent.
0x0–0xF: 1–16 clock cycles
Number of wait cycles after the address is sent.
0x0–0xF: 1–16 clock cycles
Number of wait cycles after data is written.
0x0–0xF: 1–16 clock cycles
Number of wait cycles after command 2 is sent.
0x0–0xF: 1–16 clock cycles
A read signal can be sent a period of delay later after the read
signal of the NAND flash becomes high.
The number of delay cycles is frb_idle x 8.

NFC_CMD
NFC_CMD is the command word configuration register.

Bit
Name

4-76

Offset Address

Register Name

Total Reset Value

0x0C

NFC_CMD

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

read_status_cmd

cmd2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

cmd1

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset

?

?

?

?

?

4 Memory Controller
?

?

?

0

1

1

1

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:16]

RW

read_status_cmd

Read status command word.

[15:8]

RW

cmd2

Command 2 that is sent to the NAND flash by the NANDC.

[7:0]

RW

cmd1

Command 1 that is sent to the NAND flash by the NANDC.

0

0

NFC_ADDRL
NFC_ADDRL is the low-bit address configuration register.

Bit

Offset Address

Register Name

Total Reset Value

0x10

NFC_ADDRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

addr_l

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

addr_l

Low 32-bit address of the NAND flash.

NFC_ADDRH
NFC_ADDRH is the high-bit address configuration register.

Bit

Offset Address

Register Name

Total Reset Value

0x14

NFC_ADDRH

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

reserved
?

?

?

?

?

?

?

?

?

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

addr_h
?

?

?

?

?

?

?

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

addr_h

High 16-bit address of the NAND flash.

0

NFC_DATA_NUM
NFC_DATA_NUM is the configuration register for the number of data segments to be read
and written.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-77

Hi3515
Data Sheet

4 Memory Controller

Bit

Offset Address

Register Name

Total Reset Value

0x18

NFC_DATA_NUM

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

8

reserved
?

?

?

?

?

?

?

?

?

?

?

7

6

5

4

3

2

1

0

0

0

0

0

nfc_data_num
?

?

?

?

?

?

?

?

?

1

0

0

0

0

1

0

0

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

nfc_data_num

Number of data segments to be read and written randomly by the
NANDC. The maximum value is 2152 (2048 + 26 x 4) bytes.

[11:0]

RW

Note: These bits are valid only when ecc_type is 1.

NFC_OP
NFC_OP is the operation register.

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

?

?

?

?

0

0

0

0

0

6

5

4

3

2

1

0

read_data_en

Reset

reserved

7

nf_cs

Name

8

read_status_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

cmd2_en

-

wait_ready_en

NFC_OP

addr_en

0x1C

write_data_en

Total Reset Value

cmd1_en

Register Name

address_cycles

Bit

Offset Address

0

0

0

0

0

0

0

Number of address cycles sent to the NAND flash.
[11:9]

RW

address_cycles

The reset value depends on the pins EBIADR17 and EBIADR18.
That is, the reset value is the values of EBIADR17 and
EBIADR17 plus 3.
NAND flash selection.

[8:7]

RW

00: CS 0

nf_cs

01: CS 1
Others: reserved
Command 1 send enable.

[6]

RW

cmd1_en

0: disabled
1: enabled

4-78

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Write address to the NAND flash enable.
[5]

RW

addr_en

0: disabled
1: enabled
Write data to the NAND flash enable.
0: disabled

[4]

RW

write_data_en

1: enabled
Note: read_data_en and write_data_en cannot be 1 at the same
time.
Command 2 send enable.

[3]

RW

cmd2_en

0: disabled
1: enabled
Wait ready/busy signal to be high enable.

[2]

RW

wait_ready_en

0: disabled
1: enabled
Enable bit of starting the read state machine to read data from the
NAND flash.

[1]

RW

read_data_en

0: disabled
1: enabled
Note: read_data_en and write_data_en cannot be 1 at the same
time.
When this bit is 1, enable the command 0x70 that is used to sent
the read status to the NAND flash, and then read status data from
the NAND flash. The returned data is written to the
NFC_STATUS field of the NANDC status register instead of the
internal buffer.

[0]

RW

read_status_en

When erasing and programming the NAND flash, you need to read
results to check whether operations are successful. If this bit is
enabled, the operations such as programming and erasing can be
complete at a time through the CPU and the data indicating
whether the operations are successful is returned by the NAND
flash. In this way, CPU intervention is reduced.
Note: When read_data_en is 1, this bit is invalid.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-79

Hi3515
Data Sheet

4 Memory Controller

NFC_STATUS

Total Reset Value

0x20

NFC_STATUS

-

Name

ecc_num

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

?

?

8

7

6

5

4

0

0

0

0

nf_status

?

0

0

0

0

0

3

2

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

1

0

ready

Register Name

reserved

Bit

Offset Address

nfc_ready

NFC_STATUS is the status register.

0

0

Description
When ecc_type is 10 or 11, it indicates the number of error bits for
each sector (including the extended data of six bytes if
ext_dta_ecc_en is 1).
bit[3:0]: number of error bits for sector_0
bit[7:4]: number of error bits for sector_1
bit[11:8]: number of error bits for sector_2
bit[15:12]: number of error bits for sector_3
When ecc_type is 01, it indicates the decoding result of each sector
and ext_data.
bit[1:0]: decoding result of sector_0
bit[3:2]: decoding result of sector_1

[31:16]

RO

ecc_num

bit[5:4]: decoding result of sector_2
bit[7:6]: decoding result of sector_3
bit[9:8]: decoding result of ext_data_0
bit[11:10]: decoding result of ext_data_1
bit[13:12]: decoding result of ext_data_2
bit[15:14]: decoding result of ext_data_3
The decoding result is defined as follows:
00: no error
01: 1-bit error
10: check code error but no data error
11: uncorrectable error (errors of two bits or more)

[15:13]

-

reserved

Reserved.
Status data when the NAND flash is read back.

4-80

[12:5]

RO

nf_status

These bits are valid only when read_status of NFC_OP is 1 and
nfc_ready of NFC_STATUS is 1.

[4:2]

-

reserved

Reserved.

[1]

RO

ready

Read_busy signal status of the NAND flash.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Read_busy signal status of the NANDC.
0: The NANDC is being used.
[0]

RO

1: The operation is complete and the next command can be
received.

nfc_ready

When the NANDC is enabled by writing NFC_OP, this bit is
cleared automatically.

NFC_INTEN

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

Name

reserved

0

0

0

0

Reset

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:9]

-

reserved

Reserved.

?

?

?

?

?

?

?

4

3

reserved

Bit

0

0

2

1

0

op_done_en

-

cs0_done_en

NFC_INTEN

err_valid

0x24

err_invalid

Total Reset Value

wr_buf_err_int_en

Register Name

wr_buf_busy_int_en

Offset Address

cs1_done_en

NFC_INTEN is the interrupt enable register.

0

0

0

Error interrupt enable bit for writing the lock address.
[8]

RW

wr_buf_err_int_en 0: disabled
1: enabled

[7]

RW

Error interrupt enable bit for reading and writing the NANDC
buffer through the CPU when the NANDC reads/writes data
wr_buf_busy_int_e from/to the NAND flash.
n
0: disabled
1: enabled

[6]

RW

err_invalid

Interrupt enable when uncorrectable errors occur.

[5]

RW

err_valid

Interrupt enable when correctable errors occur.

[4:3]

-

reserved

Reserved.

[2]

RW

cs1_done_en

Interrupt enable when the ready/busy signal changes from low to
high.
0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-81

Hi3515
Data Sheet

4 Memory Controller

[1]

RW

Interrupt enable when the ready/busy signal changes from low to
high.

cs0_done_en

0: disabled
1: enabled

[0]

RW

Interrupt enable when the current operation of the NANDC is
complete.

op_done_en

0: disabled
1: enabled

NFC_INTS

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

Name

reserved

0

0

0

0

Reset

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:9]

-

reserved

Reserved.

?

?

?

?

?

?

?

4

3

reserved

Bit

0

0

2

1

0

op_done

-

cs0_done

NFC_INTS

err_vavid

0x28

err_invalid

Total Reset Value

wr_buf_err_int

Register Name

wr_buf_busy_int

Offset Address

cs1_done

NFC_INTS is the interrupt status register.

0

0

0

Interrupt status when the lock address is written.
[8]

RO

wr_buf_err_int

0: No interrupt is generated.
1: An interrupt is generated.

[7]

RO

wr_buf_busy_int

Interrupt status when the CPU reads and writes the NANDC buffer
in the process of reading/writing data from/to the NAND flash by
the NANDC.
0: No interrupt is generated.
1: An interrupt is generated.

4-82

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

Interrupt status when uncorrectable errors occur.
0: No interrupt is generated.
1: An interrupt is generated.
[6]

RO

err_invalid

In 1-bit ECC mode, if two or more error bits occur in the checked
512-byte data, an interrupt is generated.
In 4-bit ECC mode, if five or more error bits occur in the checked
512-byte data, an interrupt is generated.
In 8-bit ECC mode, if eight or more error bits occur in the checked
512-byte data, an interrupt is generated.
Interrupt status when correctable errors occur.
0: No interrupt is generated.
1: An interrupt is generated.

[5]

RO

err_vavid

In 1-bit ECC mode, if 1-bit error occurs in the checked 512-byte
data, an interrupt is generated.
In 4-bit ECC mode, if 1-bit to 4-bit errors occur in the checked
512-byte data, an interrupt is generated.
In 8-bit ECC mode, if 1-bit to 8-bit errors occur in the checked
512-byte data, an interrupt is generated.

[4:3]

[2]

-

reserved

RO

cs1_done

Reserved.
Interrupt status when the ready/busy signal changes from low to
high.
0: No interrupt is generated.
1: An interrupt is generated.

[1]

RO

cs0_done

Interrupt status when the ready/busy signal changes from low to
high.
0: No interrupt is generated.
1: An interrupt is generated.
Interrupt status when the current operation of the NANDC is
complete.

[0]

RO

op_done

0: No interrupt is generated.
1: An interrupt is generated.
After NFC_OP is written, this bit is automatically cleared.

NFC_INTCLR
NFC_INTCLR is the interrupt clear register.

Bit

Offset Address

Register Name

Total Reset Value

0x2C

NFC_INTCLR

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

4-83

?

?

?

?

?

?

?

?

?

?

?

Bits

Access

Name

Description

[31:9]

-

reserved

Reserved.

?

?

?

?

?

?

?

0

0

0

0

0

0

op_done_clr

?

cs0_done_clr

?

cs1_done_clr

?

r_4bit_err_clr

?

r_5bit_err_clr

?

wr_buf_err_int_clr

Reset

reserved

wr_buf_busy_int_clr

Name

reserved

Hi3515
Data Sheet

4 Memory Controller

0

0

0

wr_buf_err_int interrupt clear.
[8]

WO

wr_buf_err_int_clr 0: do not clear
1: clear

[7]

WO

wr_buf_busy_int interrupt clear.
wr_buf_busy_int_c
0: do not clear
lr
1: clear
r_5bit_err interrupt clear.

[6]

WO

r_5bit_err_clr

0: do not clear
1: clear
r_4bit_err interrupt clear.

[5]

WO

r_4bit_err_clr

0: do not clear
1: clear

[4:3]

-

reserved

Reserved.
cs1_done interrupt clear.

[2]

WO

cs1_done_clr

0: do not clear
1: clear
cs0_done interrupt clear.

[1]

WO

cs0_done_clr

0: do not clear
1: clear
op_done interrupt clear.

[0]

WO

op_done_clr

0: do not clear
1: clear

4-84

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

NFC_LOCK
NFC_LOCK is the lock address configuration register.

NFC_LOCK

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

8

7

6

5

4

?

?

?

?

?

reserved

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

3

2

1

0

lock_down

0x30

global_lock_en

Total Reset Value

lock_en

Register Name

lock_excmd_en

Bit

Offset Address

0

0

0

0

Bits

Access

Name

Description

[31:4]

-

reserved

Reserved.

lock_excmd_en

Protection address write-protection enable according to the
extended write command (new commands may be added for new
memories).

[3]

RW

0: disabled
1: enabled

[2]

RW

lock_en

Flash lock enable. When this control bit is 1, if the erased or
programmed address is between the latch header address and the
latch end address, the erasing and programming operations are
invalid.
0: disabled
1: enabled

[1]

RW

global_lock_en

Flash global lock enable. When this bit is 1, erasing or
programming operation is forbidden for the NAND flash.
0: disabled
1: enabled
NAND flash lock mode.
0: lock mode

[0]

RW

lock_down

1: lock_down mode. After the value 1 is written, this bit cannot be
written any more. In addition, this bit can be cleared only when
hardware is reset.

NFC_LOCK_SA0
NFC_LOCK_SA0 is the configuration register of lock start address 0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-85

Hi3515
Data Sheet

4 Memory Controller
Register Name

Total Reset Value

0x34

NFC_LOCK_SA0

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_addr0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

00: CS 0

flash_lock_cs

01: CS 1
Others: reserved

[18:0]

RW

Latch header address 0. The least significant bit (LSB) maps to the
fifth row address of the NAND flash.

flash_lock_addr0

NFC_LOCK_SA1
NFC_LOCK_SA1 is the configuration register of lock start address 1.
Register Name

Total Reset Value

0x38

NFC_LOCK_SA1

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_addr1

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

flash_lock_cs

00: CS 0
01: CS 1
Others: reserved

4-86

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[18:0]

4 Memory Controller

RW

Latch header address 1. The LSB maps to the fifth row address of
the NAND flash.

flash_lock_addr1

NFC_LOCK_SA2
NFC_LOCK_SA2 is the configuration register of lock start address 2.
Register Name

Total Reset Value

0x3C

NFC_LOCK_SA2

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_addr2

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

flash_lock_cs

00: CS 0
01: CS 1
Others: reserved

[18:0]

RW

flash_lock_addr2

Latch header address 2. The LSB maps to the fifth row address of
the NAND flash.

NFC_LOCK_SA3
NFC_LOCK_SA3 is the configuration register of lock start address 3.

Name

Register Name

Total Reset Value

0x40

NFC_LOCK_SA3

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Issue 02 (2010-04-20)

flash_lock_cs

Bit

Offset Address

8

7

6

5

4

3

2

1

0

flash_lock_addr3

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-87

Hi3515
Data Sheet

4 Memory Controller
Reset

?

?

?

?

?

?

?

?

?

?

?

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

00: CS 0

flash_lock_cs

01: CS 1
Others: reserved

[18:0]

RW

Latch header address 3. The LSB maps to the fifth row address of
the NAND flash.

flash_lock_addr3

NFC_LOCK_EA0
NFC_LOCK_EA0 is the configuration register of lock end address 0.
Register Name

Total Reset Value

0x44

NFC_LOCK_EA0

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_eaddr0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

flash_lock_cs

00: CS 0
01: CS 1
Others: reserved

[18:0]

RW

flash_lock_eaddr0

Latch end address 0. The LSB maps to the fifth row address of the
NAND flash.

NFC_LOCK_EA1
NFC_LOCK_EA1 is the configuration register of lock end address 1.

4-88

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x48

NFC_LOCK_EA1

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

4 Memory Controller

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_eaddr1

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

00: CS 0

flash_lock_cs

01: CS 1
Others: reserved

[18:0]

RW

flash_lock_eaddr1

Latch end address 1. The LSB maps to the fifth row address of the
NAND flash.

NFC_LOCK_EA2
NFC_LOCK_EA2 is the configuration register of lock end address 2.
Register Name

Total Reset Value

0x4C

NFC_LOCK_EA2

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_eaddr2

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

flash_lock_cs

00: CS 0
01: CS 1
Others: reserved

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-89

Hi3515
Data Sheet

4 Memory Controller

[18:0]

RW

flash_lock_eaddr2

Latch end address 2. The LSB maps to the fifth row address of the
NAND flash.

NFC_LOCK_EA3
NFC_LOCK_EA3 is the configuration register of lock end address 3.
Register Name

Total Reset Value

0x50

NFC_LOCK_EA3

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset

flash_lock_cs

Bit

Offset Address

reserved

?

?

?

?

?

?

?

?

?

?

?

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flash_lock_eaddr3

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

NAND flash latch CS.
[20:19]

RW

00: CS 0

flash_lock_cs

01: CS 1
Others: reserved

[18:0]

RW

flash_lock_eaddr3

Latch end address 3. The LSB maps to the fifth row address of the
NAND flash.

NFC_EXPCMD
NFC_EXPCMD is the extended page command register.

Bit

Register Name

Total Reset Value

0x54

NFC_EXPCMD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

ex_pcmd3

Reset 0

4-90

Offset Address

0

0

0

0

ex_pcmd2
0

0

0

0

0

0

0

0

8

7

6

5

ex_pcmd1
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

ex_pcmd0
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RW

ex_pcmd3

Extended page write command 3 of the NAND flash.

[23:16]

RW

ex_pcmd2

Extended page write command 2 of the NAND flash.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

4 Memory Controller

[15:8]

RW

ex_pcmd1

Extended page write command 1 of the NAND flash.

[7:0]

RW

ex_pcmd0

Extended page write command 0 of the NAND flash.

NFC_EXBCMD

Total Reset Value

0x58

NFC_EXBCMD

-

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

reserved
?

?

?

?

?

?

?

?

?

8

7

6

5

ex_bcmd1
?

?

?

?

?

?

?

0

0

0

0

0

4

3

1

0

0

0

0

2

1

0
enc_only

Register Name

dec_only

Bit

Offset Address

ecc_mask

NFC_EXPCMD is the extended block command register.

2

0

0

1

ex_bcmd0
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:8]

RW

ex_bcmd1

Extended block write command 1 of the NAND flash.

[7:0]

RW

ex_bcmd0

Extended block write command 0 of the NAND flash.

0

NFC_ECC_TEST
NFC_ECC_TEST is the ECC test register.

Bit

Offset Address

Register Name

Total Reset Value

0x5C

NFC_ECC_TEST

0x0020_F001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

version

Reset 0

0

0

0

0

0

0

0

0

empty

0

1

0

0

0

1

0

1

1

1

8

7

6

5

4

3

0

0

0

reserved

1

Bits

Access

Name

Description

[31:16]

RO

version

NANDC version number.

0

0

0

0

0

0

Empty flag of the internal first-in-first-out (FIFO) of the NANDC.
bit[15]: empty flag of the ECC8 asynchronous FIFO
[15:12]

RO

empty

bit[14]: empty flag of the ECC synchronous FIFO
bit[13]: empty flag when the FIFO of the NAND flash is written
bit[12]: empty flag when the FIFO of the NAND flash is read

[11:3]

-

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4-91

Hi3515
Data Sheet

4 Memory Controller

ECC function mask.
[2]

RW

ecc_mask

When this bit is 0, ECC check and correction are performed
according to the value of ecc_type.
When this bit is 1, ECC check and correction are forbidden. The
structure of the data read from or written to the NAND flash is still
converted based on the format of ecc_type.
Decoding enable only.

[1]

RW

dec_only

When the value 1 is written to this bit, ECC decoding is enabled,
but the NAND flash is not read or written. When this bit is read,
the value 0 is returned.
Encoding enable only.

[0]

4-92

RW

enc_only

When the value 1 is written to this bit, ECC encoding is enabled,
but the NAND flash is not read or written. When this bit is read,
the return value 1 indicates that ECC encoding and decoding are
complete; the value 0 indicates that ECC encoding and decoding
are being performed.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
5 ETH ...............................................................................................................................................5-1
5.1 Overview.......................................................................................................................................................5-1
5.2 Function Description .....................................................................................................................................5-1
5.3 Signal Description.........................................................................................................................................5-2
5.4 Operating Mode ............................................................................................................................................5-3
5.4.1 Timings of Interfaces ...........................................................................................................................5-3
5.4.2 Process of Receiving Frames ...............................................................................................................5-6
5.4.3 Process of Transmitting a Frame..........................................................................................................5-9
5.4.4 Interrupt Management........................................................................................................................ 5-11
5.4.5 Traffic Control ................................................................................................................................... 5-11
5.4.6 MAC Forwarding............................................................................................................................... 5-11
5.4.7 Typical Application ............................................................................................................................5-12
5.5 Register Summary .......................................................................................................................................5-16
5.6 Register Description....................................................................................................................................5-22
5.6.1 Description of the MDIO Control Registers ......................................................................................5-22
5.6.2 Description of the MAC Control Registers........................................................................................5-27
5.6.3 Description of the Global Control Registers ......................................................................................5-32
5.6.4 Description of the Statistics Counter Control Registers.....................................................................5-58
5.6.5 Description of the Statistics Result Registers.....................................................................................5-60

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 5-1 Logic block diagram of the ETH module .........................................................................................5-2
Figure 5-2 100 Mbit/s receive timing of the MII interface.................................................................................5-3
Figure 5-3 100 Mbit/s transmit timing of the MII interface ...............................................................................5-3
Figure 5-4 10 Mbit/s receive timing of the MII interface...................................................................................5-4
Figure 5-5 10 Mbit/s transmit timing of the MII interface .................................................................................5-4
Figure 5-6 Receive timing parameters of the MII interface ...............................................................................5-4
Figure 5-7 Transmit timing parameters of the MII interface ..............................................................................5-4
Figure 5-8 Read timing of the MDIO interface ..................................................................................................5-5
Figure 5-9 Write timing of the MDIO interface .................................................................................................5-6
Figure 5-10 Receive timing parameters of the MDIO interface .........................................................................5-6
Figure 5-11 Process of receiving a frame in interrupt mode...............................................................................5-8
Figure 5-12 Process of receiving a frame in query mode ...................................................................................5-9
Figure 5-13 Process of transmitting a frame by the CPU .................................................................................5-10

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 5-1 MDIO interface signals ......................................................................................................................5-2
Table 5-2 MII interface signals...........................................................................................................................5-3
Table 5-3 Timing parameters of the MII interface..............................................................................................5-5
Table 5-4 Timing parameters of the MDIO interface .........................................................................................5-6
Table 5-5 Data structure of the frame descriptor received by the CPU ..............................................................5-7
Table 5-6 Data structure of the frame descriptor transmitted by the CPU........................................................5-10
Table 5-7 ETH pin multiplexing.......................................................................................................................5-13
Table 5-8 Summary of the MDIO control registers (base address: 0x1009_0000)...........................................5-16
Table 5-9 Summary of the MAC controller registers (base address: 0x1009_0000) ........................................5-17
Table 5-10 Summary of the global control registers (base address: 0x1009_0000) .........................................5-17
Table 5-11 Summary of the statistics counter control registers (base address: 0x1009_0000).........................5-19
Table 5-12 Summary of the statistics result registers (base address: 0x1009_0000) ........................................5-20

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

5 ETH

5

ETH

5.1 Overview
The Ethernet (ETH) module provides an ETH module interface that is used to receive data or
transmit data through the network interface at a speed of 10 Mbit/s or 100 Mbit/s. This
module also supports half-duplex or full-duplex operating mode and provides the media
independent interface (MII). With the eight configurable DMAC address filter tables, the ETH
module filters input frames received through the network interface, thus limiting the traffic of
the CPU port to protect the CPU against heavy traffic.

5.2 Function Description
The ETH module has the following features:
z

Supports one ETH module interface.

z

Supports the rate of 10 Mbit/s or 100 Mbit/s.

z

Supports full-duplex or half-duplex operating mode.

z

Supports the MII interface.

z

Supports collision back-off and retransmission and late collision in half-duplex mode.

z

Supports the transmission of flow control frames in full-duplex mode.

z

Supports detection of frame length validity and the discarding of extra-long and
extra-short frames.

z

Implements cyclic redundancy check (CRC) on the input frames. The frames with CRC
errors are discarded.

z

Implements CRC check on the output frames

z

Supports short-frame stuffing.

z

Supports the loopback to internal and loopback to external in full-duplex mode.

z

Supports auto-adaption to automatically query the working state of the physical layer
entity sublayer (PHY) chip.

z

Provides the management data input/output (MDIO) interfaces with configurable
frequency.

z

Provides 64 frame management queues for both data receive and data transmit.

z

Provides traffic limit to prevent the CPU against traffic attack.

z

Supports the count of received frames and transmitted frames.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-1

Hi3515
Data Sheet

5 ETH
z

Provides a receive buffer of 512 bytes and a transmit buffer of 2048 bytes.

z

Supports eight configurable DMAC address filter tables.

z

Controls whether to forward or discard broadcast frames, multicast frames, and unicast
frames.

Figure 5-1 shows the logic block diagram of the ETH module.

MDIO
interface

MACT
lookup

MDIO controller

A H B e xte nd b us

R xM A C

R x b uffe r

MAC

A H B b us interface

M II

MII
interface

P a cke t q ue u e bu ffe r

TxM A C

T x b uffer

Figure 5-1 Logic block diagram of the ETH module

Register

5.3 Signal Description
Table 5-1 and Table 5-2 list signals of the ETH interface.
Table 5-1 MDIO interface signals

5-2

Signal

Direction

Description

Pin

MDCK

O

Clock output of MDIO interface

MDCK

MDIO

I/O

Input/output signal of the MDIO
interface

MDIO

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Table 5-2 MII interface signals
Signal

Direction

Description

Pin

MII_TXCK

I

MII transmit data clock

ETXCK

MII_TXD[3:0]

O

MII transmit data

ETXD3–ETXD0

MII_TXEN

O

MII transmit data valid

ETXEN

MII_RXCK

I

MII receive data clock

ERXCK

MII_RXD[3:0]

I

MII receive data

ERXD3–ERXD0

MII_RXDV

I

MII receive data valid

ERXDV

MII_CRS

I

MII carrier valid

ECRS

MII_COL

I

MII collision

ECOL

5.4 Operating Mode
5.4.1 Timings of Interfaces
Timings of the MII Interface
The Hi3515 provides standard MII interfaces that comply with the MII interface timing
standard. These interfaces are used to connect to PHY chip.
Figure 5-2 shows the 100 Mbit/s receive timing of the MII interface.
Figure 5-2 100 Mbit/s receive timing of the MII interface
40ns
ETH_RXCK
ETH_RXDV
ETH_RXD

data

data

data

ETH_CRS

Figure 5-3 shows the 100 Mbit/s transmit timing of the MII interface.
Figure 5-3 100 Mbit/s transmit timing of the MII interface
40ns
ETH_TXCK
ETH_TXEN
ETH_TXD

data

data

data

ETH_CRS

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-3

Hi3515
Data Sheet

5 ETH

Figure 5-4 shows the 10 Mbit/s receive timing of the MII interface.
Figure 5-4 10 Mbit/s receive timing of the MII interface
ETH_RXCK

400ns

ETH_RXDV
ETH_RXD

data

data

data

ETH_CRS

Figure 5-5 shows the 10 Mbit/s transmit timing of the MII interface.
Figure 5-5 10 Mbit/s transmit timing of the MII interface
400ns
ETH_TXCK
ETH_TXEN
ETH_TXD

data

data

data

ETH_CRS

Figure 5-6 shows the receive timing parameters of the MII interface.
Figure 5-6 Receive timing parameters of the MII interface
T
T

ETH_RXCK
ETH_RXDV
Tsu

Thd

ETH_RXD

Figure 5-7 shows the transmit timing parameters of the MII interface.
Figure 5-7 Transmit timing parameters of the MII interface
T
T

ETH_TXCK
ETH_TXEN
Tov
ETH_TXD

Table 5-3 lists the timing parameters of the MII interface.

5-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Table 5-3 Timing parameters of the MII interface
Parameter

Symbol

Signal

Min

Max

Unit

MII clock cycle

T

ETH_RXCK,
ETH_TXCK

400(10Mbit/s)

400

ns

40(10Mbit/s)

40

ns

MII signal setup
time

Tsu(RX)

ETH_RXER,
ETH_RXDV,
ETH_RXD[3:0]

6

–

ns

MII signal hold
time

Thd(RX)

ETH_RXER,
ETH_RXDV,
ETH_RXD[3:0]

2

–

ns

MII output
signal delay

Tov(MIITX)

ETH_TXD[1:0]
, ETH_TXEN

2

8

ns

Timings of the MDIO Interface
The MDIO interface implements the read/write control for the PHY chip. During software
operation, the MDIO interface writes data, the address of the PHY chip, the address of the
register, and related control information to the MDIO_RWCTRL register. If
MDIO_RWCTRL[finish] is 1, it indicates that hardware has finished the read/write operation
on the PHY chip. Hardware converts addresses, data, and control information to the timings
of the MDIO interface. The read data is saved to MDIO_RO_DATA. After the CPU queried
that MDIO_RWCTRL[finish] is 1, it reads data from MDIO_RO_DATA.
Through the MDIO interface, the Hi3515 can automatically acquire the working status of the
PHY chip. If you want to enable the ETH module to work in auto-adaption mode, you need to
configure the information such as address about the related status registers in the
UD_MDIO_PHYADDR and UD_MDIO_ANEG_CTRL registers. The ETH module
automatically reads the status information from the related register of the specified PHY chip
through the MDIO interface and then stores the status information to the
UD_MDIO_RO_STAT register. For details about the address of the specific status register,
see the data sheet related to the PHY chip.
Figure 5-8 shows the read timing of the MDIO interface.
Figure 5-8 Read timing of the MDIO interface
MDC
MDIO
(Into Chip)
MDIO
(Out of Chip)
mdata

z

1

0

1

0

0

1

0

1

0

Figure 5-9 shows the write timing of the MDIO interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-5

Hi3515
Data Sheet

5 ETH

Figure 5-9 Write timing of the MDIO interface
MDC
MDIO
(Out of Chip)
mdata

z

0

1

0

1

0

1

0

1

z

0

Figure 5-10 shows the timing parameters of the MDIO interface.
Figure 5-10 Receive timing parameters of the MDIO interface
Tp
MDC
Tov
MDIO
(Into CHip)
Thd
Tsu

MDIO
(Out of Chip)

Table 5-4 lists the timing parameters of the MDIO interface.
Table 5-4 Timing parameters of the MDIO interface
Parameter

Symbol

Signal

Min

Max

Unit

MDIO data receive delay time

Tov

MDIO

166

20833

ns

MDIO clock cycle

Tp

MDC

333

41667

ns

MDIO data transmit setup time

Tsu

MDIO

10

–

ns

MDIO data transmit hold time

Thd

MDIO

10

–

ns

The MDC clock cycle Tp can be changed by adjusting the MDC frequency (MDIO_RWCTRL[frq_dv]). To
be specific, you can divide the frequency 150 MHz of the ETH module working clock by 100, 50, or other
values. Tov is related to the clock period Tp of the MDC and it is about Tmdc/2.

5.4.2 Process of Receiving Frames
During initialization, software needs to perform the following operations:
z

Software needs to request a certain number of buffers. The number is equal to the receive
queue depths and the size of each buffer is 2 KB. Then, software writes the header
addresses of the buffers to the frame receive queue one by one. The times of the write
operation is equal to the configured receive queue depth.

z

The configured buffers should not be released during frame receiving. If the configured
header address is not a word aligned address, the byte address corresponding to the
header address must be a writable address.

The CPU performs the following steps when it is informed that a frame needs to be received:

5-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Step 1 Read the frame descriptor (including the start address and frame length of the receive frame)
in the register UD_GLB_IQFRM_DES.
Step 2 Process the data and write 1 to clear GLB_IRQ_RAW[iraw_rx_up] (indicating that the CPU
completes the frame receiving).
----End
After receiving a frame of data, software needs to re-apply for a buffer of 2 KB and re-write
the header address to the frame descriptor of the current receive queue. Otherwise, the
available depth of receive queues equals to the number of buffers assigned to the CPU rather
than the value configured by the CPU.
Table 5-5 describes the data structure of the frame descriptor received by the CPU.
Table 5-5 Data structure of the frame descriptor received by the CPU
Bits

Name

Description

[63:32]

rxfrm_saddr

Start address for receiving frames.

[31:18]

reserved

Reserved.

[17:12]

fd_in_addr

Relative address of the frame to be received in the intput queue
(IQ). It serves as the index (0 to iq_len - 1) of the absolute
addresses for storing frames.

[11:0]

fd_in_len

Length of the frame to be received in the IQ.

The length of the receive queue can be obtained by querying UD_GLB_ADDRQ_STAT.

The CPU can receive a frame in interrupt or query mode.
1.

Receiving a frame in interrupt mode
When the CPU enables the frame receive interrupt, depending on the frames to be
received, hardware generates frame receive interrupts (single-packet interrupt and
multi-packet interrupt) int_rx_up and int_rxd_up.
int_rx_up indicates that an interrupt is reported each time a packet is received.
int_rxd_up indicates that an interrupt is reported each time a number of specified packets
are received. Figure 5-11 shows the process of receiving a frame in interrupt mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-7

Hi3515
Data Sheet

5 ETH

Figure 5-11 Process of receiving a frame in interrupt mode
Start

Mask the Ethernet interrupt

Check the
interrupt status to see
whether a packet
receive interrupt
exists

No

Process it according to other interrupts

Yes
Read the frame descriptor

Clear the raw interrupt status of single-packet
interrupt

Software determines
whether to configure a new address
for packet receiving according to the
number of the available addresses
maintained by itself

Yes

No

Yes

Whether the raw interrupt of
packet receive interrupt is still
valid and does not exceed the
number of received packets
limited by software

Check whether a new
address for packet receiving can be
configured

No

Yes

Software configures a new buffer address for
the receive queue

No
Unmask the interrupt

End

2.

Receiving a frame in query mode
In this mode, the CPU does not enable the frame receive interrupt bit, namely,
GLB_IRQ_ENA[ien_rx_up], but automatically queries GLB_IRQ_RAW[iraw_rx_up]. If
GLB_IRQ_RAW[iraw_rx_up] is 1, it indicates that there is a frame to be received by the
CPU. Figure 5-12 shows the process of receiving a frame in query mode.

5-8

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Figure 5-12 Process of receiving a frame in query mode

5.4.3 Process of Transmitting a Frame
When a frame is transmitted, the CPU checks whether the current queue has any available
space. If the space is sufficient, the CPU writes the header address of the buffer and then the
length of the transmit frame to the frame descriptor of the transmit queue. The frame length
trigger hardware for writing the transmit frame writes the header address and frame length of
the transmit frame to the transmit queue. Each time after a write is performed on the register,
a data packet is transmitted. Therefore, software must control the write to the frame length
register so that the frame length register is not written arbitrarily.
The frame format is as follows:
Destination
MAC

Source MAC

Type

Data

FCS

Figure 5-13 shows the process of transmitting a frame by the CPU.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-9

Hi3515
Data Sheet

5 ETH

Figure 5-13 Process of transmitting a frame by the CPU

When the frame transmitted by the CPU is buffered in the SDRAM, the frame descriptor is
not included. The frame descriptor is written to UD_GLB_EQ_ADDR and
UD_GLB_EQFRM_LEN to notify the ETH module of adding the frame (descriptor) to the
queue. Table 5-6 describes the data structure of the frame descriptor transmitted by the CPU.
Table 5-6 Data structure of the frame descriptor transmitted by the CPU
Bits

Name

Description

[42:11]

start_addr_eq

Header address of a frame.

[10:0]

fm_len

Frame length in the unit of byte.

Note: The frames whose fm_len is less than 20 bytes or greater than 1,900 bytes are discarded. In other words,
the allowed range is from 20 bytes to 1900 bytes.

The usage of the transmit queues for the current CPU can be obtained by querying
UD_GLB_ADDRQ_STAT.

The CPU can transmit a frame in interrupt or query mode.
1.

Transmitting a frame in interrupt mode
The CPU enables the nonempty-to-empty interrupt (int_freeeq_up) of the transmit queue
of the ETH module and allows the interrupt to be notified to the CPU. If the transmit
queue of the ETH module changes from nonempty to empty, it indicates the ETH
module can transmit a frame. Then, hardware generates an interrupt to notify the CPU of
transmitting the frame.

5-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

If software needs to transmit a frame but the current transmit queue is full, software
enables the interrupt. After the transmit queue is empty, an interrupt occurs to notify
software of transmitting the waiting frame. Software uses the interrupt to send a group of
frames at a time and then releases the buffers for storing the previously transmitted group
of frames when the interrupt is valid.
2.

Transmitting a frame in query mode
Software queries the count of the transmit frames. If the count is less than the configured
depth of transmit queue, it notifies the ETH module of the to-be transmitted frame
directly. At the same time, it creates a corresponding transmit frame index table whose
content is the header address of the frame that is written to the transmit queue of the
Ethernet MAC. After transmitting a frame, the ETH module notifies the CPU of
releasing the corresponding transmit buffer through the address of the transmit queue.
After that, the CPU queries the corresponding transmit buffer through the address of the
transmit queue and releases the buffer.

5.4.4 Interrupt Management
Interrupt Status Register
This register indicates the generated interrupt type. For details, see GLB_IRQ_STAT in
section 5.6.3 "Description of the Global Control Registers."

Interrupt Enable Register
This register controls whether to generate the related interrupts. For details, see
GLB_IRQ_ENA in section 5.6.3 "Description of the Global Control Registers." If an interrupt
is enabled, the interrupt status is written to the related interrupt status register.

Raw Interrupt Status Register
This register can read the raw interrupt of a type and transmit it to the CPU. For details, see
GLB_IRQ_RAW in section 5.6.3 "Description of the Global Control Registers." To clear the
interrupt status, the raw interrupt of the interrupt must be cleared. After the raw interrupt is
cleared, the interrupt status is cleared automatically.

5.4.5 Traffic Control
When the number of frames received at a certain interval exceeds the upper limit configured
by software, the subsequently received frames are selectively discarded. Through the
configuration of UD_GLB_FC_DROPCTRL, the broadcast frames, multicast frames, or
unicast frames are discarded if the traffic limit is exceeded. The traffic limit is configured
through UD_GLB_FC_RXLIMIT.
Software configures the time interval of traffic restriction through UD_GLB_FC_TIMECTRL.
For a 10-bit time interval register, the time slot can be set to up to 1,023. A 17-bit counter is
used for counting the time slots of the main clock. The default count is 100,000. For a
100-MHz main clock, the time slot is 1 ms. Software can configure the upper traffic limit of a
20-bit register. If the traffic limit is set to 0, it indicates that traffic is not limited.

5.4.6 MAC Forwarding
For the receive frames whose destination MAC address is the same as the local MAC address,
the logic directly forwards the frame to the CPU port.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-11

Hi3515
Data Sheet

5 ETH

For the receive frames whose destination MAC address is not the same as the local MAC
address, the logic performs the following operations:
Step 1 Determine whether the receive frame is a broadcast frame. If the receive frame is a broadcast
frame, perform the operations related to the broadcast frame. Otherwise, go to step 2.
Step 2 Determine whether the function of querying the MAC forward control table (controlled by
GLB_MACTCTRL bit[15] and GLB_MACTCTRL bit[7]) is enabled. If the function is
enabled, go to step 3. Otherwise, go to step 4.
Step 3 Determine whether the receive frame matches the MAC forward control table. If the receive
frame matches the MAC forward control table, forward the receive frame according to the
entry configuration. Otherwise, go to step 4.
Step 4 Determine whether the receive frame is a multicast frame or unicast frame. If the receive
frame is a multicast frame or unicast frame, perform the operations related to multicast frames
or unicast frames. Otherwise, discard the receive frame.
----End
The MAC forward control table can be configured through the addresses (GLB_MAC0_L32
to GLB_MAC7_H16). The method of configuring the MAC forward control table is as
follows:
z

The local MAC address is configured through the addresses GLB_HOSTMAC_L32 and
GLB_HOSTMAC_H16.

z

The MAC0 entry is configured through the addresses GLB_MAC0_L32 and
GLB_MAC0_H16.

z

The MAC1 entry is configured through the addresses GLB_MAC1_L32 and
GLB_MAC1_H16.

z

The MAC2 entry is configured through the addresses GLB_MAC2_L32 and
GLB_MAC2_H16.

z

The MAC3 entry is configured through the addresses GLB_MAC3_L32 and
GLB_MAC3_H16.

z

The MAC4 entry is configured through the addresses GLB_MAC4_L32 and
GLB_MAC4_H16.

z

The MAC5 entry is configured through the addresses GLB_MAC5_L32 and
GLB_MAC5_H16.

z

The MAC6 entry is configured through the addresses GLB_MAC6_L32 and
GLB_MAC6_H16.

z

The MAC7 entry is configured through the addresses GLB_MAC7_L32 and
GLB_MAC7_H16.

5.4.7 Typical Application
Pin Multiplexing Configuration
Table 5-7 describes the ETH pin multiplexing.

5-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Table 5-7 ETH pin multiplexing
Signal

Enable
Configuration

Multiplexing Description

ECOL

reg46

Multiplexed with GPIO1_1

ECRS

reg47

Multiplexed with GPIO1_2

Clock Gating
When the ETH module is not used, its clocks can be disabled to reduce the power consumption.

To disable the ETH clocks, the following steps take place:
Step 1 Disable the link status of the ETH interface so that the ETH module cannot transmit or
receive packets.
Step 2 Clear the receive queues of ETH interface so that the ETH module cannot report the packet
receive interrupt.
Step 3 Software delivers a logic command to reset the ETH module and holds the reset status.
Step 4 Set SC_PERDIS[ethclkdis] to 1 to disable the ETH clocks.
----End
To enable the ETH clocks, the following steps take place:
Step 1 Hold the reset status. Set SC_PEREN[ethclken] to 1 to enable the ETH clocks.
Step 2 Set SC_PERCTRL8[eth_srst] to 1 to clear the reset status.
Step 3 Enable the link status of the ETH interface to ensure that the ETH module works properly.
----End

Soft Reset
To perform global soft reset on the ETH module, the following steps take place:
Step 1 Disable the link status of the ETH interface and the packet receive interrupt so that software
cannot receive or transmit packets.
Step 2 After processing the current received and transmitted packets on the ETH interface, software
clears the receive and transmit queues and keeps the queue length the same as the value
before soft reset. That is, the count values of the related pointers and queues return to 0.
Step 3 Set SC_PERCTRL8[eth_srst] to 0 to deliver the soft reset command for the ETH module.
Step 4 Set SC_PERCTRL8[eth_srst] to 1 to clear the soft reset on the ETH module.
Step 5 If packets need to be transmitted and received again, software also needs to initialize the
receive and transmit queues of the ETH interface.
Step 6 Enable the link status of the ETH interface to ensure that the ETH module works properly.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-13

Hi3515
Data Sheet

5 ETH

----End

Initialization
To initialize the ETH interface, the following steps take place:
Step 1 Configure the mode for obtaining the interface status.
The status of the ETH interface can be that of the PHY chip by means of auto-adaption or can
be configued by the software. During initialization, select the mode for obtaining the interface
status by configuring UD_MAC_PORTSEL[stat_ctrl]:
z

If UD_MAC_PORTSEL[stat_ctrl] is set to 1, it indicates that the status of the ETH
interface is configured by the software. In this case, go to Step 2.

z

If UD_MAC_PORTSEL[stat_ctrl] is set to 0, it indicates that the status of the ETH
interface is that of the PHY chip by means of auto-adaption. In this case, go to Step 3.

During reset, software configures the working status of the ETH interface.
Step 2 Configure the working status of the PHY chip.
z

If UD_MAC_PORTSEL is set to 1, software needs to configure the rate, connection
status, and duplex status in UD_MAC_PORTSET according to the actual application
environment, and configures the information to the related registers of the PHY chip.

z

The ETH module provides a MDIO interface to implement the read/write control for the
PHY chip. During software operation, the MDIO interface writes the address of the PHY
chip, the address of the register, and related control information to the MDIO_RWCTRL
register. When MDIO_RWCTRL[finish] is 1, it indicates the read/write operation on the
PHY chip has been finished by hardware. For details about configuration information,
see the data sheet related to the PHY chip.

After the configuration is complete, go to Step 4.
Step 3 Configure the working status in auto-adaption mode.
If UD_MAC_PORTSEL[stat_ctrl] is set to 0, you must specify the rate of the PHY chip,
duplex mode, address of the connection register, and offset addresses of the registers of such
status bits. The information is configured through UD_MDIO_ANEG_CTRL.
Step 4 Set the depth of receive and transmit queues.
Set the receive queue depth and transmit queue depth in the register UD_GLB_QLEN_SET:
z

The receive queue depth indicates the maximum number of buffered frames when data is
received.

z

The transmit queue depth indicates the maximum number of buffered frames when data
is transmitted.

The receive and transmit queues share 64 management spaces, so the sum of the receive
queue depth and the transmit queue depth cannot exceed 64. Additionally, either the receive
queue depth or the transmit queue depth must be more than or equal to 1. If the sum exceeds
64, the depth of the receive queue remains unchanged and the depth of the transmit queue is
changed to 64 minus the depth of the receive queue.
Software can set the multi-packet interrupt configuration register. By configuring the register
UD_GLB_IRQN_SET[int_frm_cnt], software controls how many packets need to be received
before a multi-packet interrupt is reported. In addition, software can set the aging time register
UD_GLB_IRQN_SET[int_timer].

5-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Step 5 Initialize the buffer of the receive frame queue.
After the reset, software needs to apply for a certain number of buffers that is equal to the
configured depth of receive queues. The size of each buffer is 2 KB. Then, software writes the
header addresses of the buffers to the receive queue. The number of times of the write
operation must be equal to the configured depth of receive queues.
Step 6 Execute the soft reset on the ETH module.
Through the soft reset, the logic circuits and frame management queues inside the ETH
module are reset, so that the ETH module returns to the initial status. However, the registers
inside the ETH module keep the original values. After clearing the reset, software re-applies
for a packet receive buffer and initializes the receive queue. Otherwise, the ETH module
cannot receive network packets.

After the soft reset of the ETH module, the registers configured by software remain unchanged. For
details about these registers, see the register description.

----End

Process of Receiving a Frame in Interrupt Mode
To receive a frame in interrupt mode, the following steps take place:
Step 1 Mask the Ethernet interrupt after entering the interrupt handling program.
Step 2 View the interrupt status bit GLB_IRQ_STAT[int_rx_up] to check whether a frame receive
interrupt occurs. If a frame receive interrupt occurs, go to Step 2. Otherwise, continue to
process other Ethernet interrupts.
Step 3 Read the frame descriptor UD_GLB_IQFRM_DES. Read the frame data of the related length
(fd_in_len) according to the header address of the frame that corresponds to fd_in_addr.
Step 4 Return the raw interrupt signal bit GLB_IRQ_RAW[iraw_rx_up] of the single-packet
interrupt to 0 and notify hardware of the completion of packet receiving.
Step 5 According to the number of the remaining available addresses maintained by itself, software
determines whether to configure a new address for packet receiving. If a new address for
packet receiving does not need to be configured, go to Step 7. Receiving a packet is complete.
Step 6 Read UD_GLB_QSTAT[cpu_addr_in_rdy] to check whether a new address for packet
receiving can be configured. If a new address for packet receiving cannot be configured,
return to Step 4.
Step 7 Software allocates a new buffer address to the receive queue through the register
UD_GLB_IQ_ADDR. Return to Step 4.
Step 8 Read and check the raw interrupt signal bit GLB_IRQ_RAW[iraw_rx_up] of the
single-packet interrupt. If the bit is valid and software can continue to receive packets (the
upper limit of received packets is not exceeded), return to Step 2.
Step 9 Unmask the Ethernet interrupt.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-15

Hi3515
Data Sheet

5 ETH

Process of Receiving a Frame in Query Mode
If the frame receive interrupt GLB_IRQ_ENA[ien_cpu_rx] is disabled, the CPU
automatically queries the raw interrupt signal bit GLB_IRQ_RAW[iraw_rx_up] of the
single-packet interrupt. If the bit is set to 1, it indicates that a frame needs to be received.
Receive a frame in query mode as follows:
Step 1 Read the raw interrupt signal bit GLB_IRQ_RAW[iraw_rx_up] of the single-packet interrupt.
If this bit is invalid, the process ends.
Step 2 Read the frame descriptor UD_GLB_IQFRM_DES. Read the frame data of the related length
(fd_in_len) according to the header address of the frame that corresponds to fd_in_addr.
Step 3 Write 1 to clear the raw interrupt signal bit GLB_IRQ_RAW[iraw_rx_up] of the
single-packet interrupt and notify hardware of the completion of packet receiving.
Step 4 Read UD_GLB_QSTAT[cpu_addr_in_rdy] to check whether a new address for packet
receiving can be configured. If a new address for packet receiving cannot be configured, the
process ends.
Step 5 Software allocates a new buffer address to the receive queue through the register
UD_GLB_IQ_ADDR.
----End

Process of Transmitting a Frame
Transmit a frame as follows:
Step 1 Read UD_GLB_ADDRQ_STAT[eq_in_rdy] and check whether the transmit queue of the
ETH module has free space for receiving new transmit frames. If the transmit queue of the
ETH module has no free space, continue to wait and query for a free space.
Step 2 Configure the header address UD_GLB_EQ_ADDR of the frame to be transmitted.
Step 3 Configure the length UD_GLB_EQFRM_LEN of the frame to be transmitted. The
configuration for transmitting a frame is complete.
----End

5.5 Register Summary
MDIO Control Registers
Table 5-8 lists the MDIO control registers.
Table 5-8 Summary of the MDIO control registers (base address: 0x1009_0000)

5-16

Offset Address

Name

Description

Page

0x1100

MDIO_RWCTRL

MDIO command word
register

5-22

0x1104

MDIO_RO_DATA

MDIO read data register

5-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Offset Address

Name

Description

Page

0x0108

UD_MDIO_PHYADDR

PHY physical address
register

5-24

0x010C

UD_MDIO_RO_STAT

PHY chip status register

5-24

0x0110

UD_MDIO_ANEG_CTRL

Offset address
configuration register for
the PHY chip status

5-25

0x0114

UD_MDIO_IRQENA

Scan mask register for
MDIO status changes

5-26

MAC Control Registers
Table 5-9 lists the MAC control registers.
Table 5-9 Summary of the MAC controller registers (base address: 0x1009_0000)
Offset Address

Name

Description

Page

0x0200, 0x2200

UD_MAC_PORTSEL

Port working status control
register

5-27

0x0204, 0x2204

UD_MAC_RO_STAT

Port status register

5-28

0x0208, 0x2208

UD_MAC_PORTSET

Port working status
configuration register

5-28

0x020C, 0x220C

UD_MAC_STAT_CHANGE

Port status change indicator
register for the MAC

5-29

0x0210, 0x2210

UD_MAC_SET

MAC function
configuration register

5-30

Global Control Registers
Table 5-10 lists the Ethernet global control registers.
Table 5-10 Summary of the global control registers (base address: 0x1009_0000)
Offset
Address

Name

Description

Page

0x1300

GLB_HOSTMAC_L32

Lower 32-bit register for
the local MAC address.

5-32

0x1304

GLB_HOSTMAC_H16

Upper 16-bit register for
the local MAC address.

5-32

0x1308

GLB_SOFT_RESET

Internal soft reset
register.

5-32

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-17

Hi3515
Data Sheet

5 ETH

5-18

Offset
Address

Name

Description

Page

0x1310

GLB_FWCTRL

Forward control register.

5-33

0x1314

GLB_MACTCTRL

MAC filter table control
register.

5-34

0x1318

GLB_ENDIAN_MOD

Endian control register.

5-35

0x1330

GLB_IRQ_STAT

Interrupt status register.

5-35

0x1334

GLB_IRQ_ENA

Interrupt enable register.

5-37

0x1338

GLB_IRQ_RAW

Raw interrupt register.

5-39

0x1400

GLB_MAC0_L32

MAC filter 0.

5-40

0x1404

GLB_MAC0_H16

MAC filter 0.

5-41

0x1408

GLB_MAC1_L32

MAC filter 1.

5-41

0x140C

GLB_MAC1_H16

MAC filter 1.

5-42

0x1410

GLB_MAC2_L32

MAC filter 2.

5-42

0x1414

GLB_MAC2_H16

MAC filter 2.

5-43

0x1418

GLB_MAC3_L32

MAC filter 3.

5-43

0x141C

GLB_MAC3_H16

MAC filter 3.

5-44

0x1420

GLB_MAC4_L32

MAC filter 4.

5-45

0x1424

GLB_MAC4_H16

MAC filter 4.

5-45

0x1428

GLB_MAC5_L32

MAC filter 5.

5-46

0x142C

GLB_MAC5_H16

MAC filter 5.

5-46

0x1430

GLB_MAC6_L32

MAC filter 6.

5-47

0x1434

GLB_MAC6_H16

MAC filter 6.

5-47

0x1438

GLB_MAC7_L32

MAC filter 7.

5-48

0x143C

GLB_MAC7_H16

MAC filter 7.

5-48

0x0340

UD_GLB_IRQN_SET

Multi-packet interrupt
configuration register.

5-49

0x0344

UD_GLB_QLEN_SET

Queue length
configuration register.

5-49

0x0348

UD_GLB_FC_LEVEL

Traffic control register.

5-50

0x034C

UD_GLB_CAUSE

Cause register for the
CPU to which the packet
is transmitted.

5-51

0x0350

UD_GLB_RXFRM_SADDR

Receive frame start
address register.

5-51

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Offset
Address

Name

Description

Page

0x0354

UD_GLB_IQFRM_DES

Receive frame
descriptor register.

5-52

0x0358

UD_GLB_IQ_ADDR

Receive frame header
address register.

5-52

0x035C

UD_GLB_BFC_STAT

Counter for traffic
control status of forward
buffer and aging time of
multi-packet interrupt.

5-53

0x0360

UD_GLB_EQ_ADDR

Transmit queue header
address register.

5-53

0x0364

UD_GLB_EQFRM_LEN

Transmit queue frame
length configuration
register.

5-54

0x0368

UD_GLB_QSTAT

Queue status register.

5-55

0x036C

UD_GLB_ADDRQ_STAT

Address queue status
register.

5-55

0x0370

UD_GLB_FC_TIMECTRL

Traffic control time
configuration register.

5-56

0x0374

UD_GLB_FC_RXLIMIT

Traffic control limit
configuration register.

5-57

0x0378

UD_GLB_FC_DROPCTRL

Packet drop control
register for traffic
control.

5-57

Statistics Counter Control Registers
Table 5-11 lists the statistics counter control registers.
Table 5-11 Summary of the statistics counter control registers (base address: 0x1009_0000)
Offset Address

Name

Description

Page

0x0584

UD_STS_PORTCNT

Port status counter.

5-58

0x05A0

UD_PORT2CPU_PKTS

Register for the total number
of packets received by the
CPU from the uplink or
downlink port.

5-59

0x05A4

UD_CPU2IQ_ADDRCNT

Register for the count of
configuring packet receiving
address queue by the CPU.

5-59

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-19

Hi3515
Data Sheet

5 ETH

Offset Address

Name

Description

Page

0x05A8

UD_RX_IRQCNT

Register for the count of
reporting single-packet
interrupt by the uplink or
downlink port.

5-59

0x05AC

UD_CPU2EQ_PKTS

Register for the total number
of packets transmitted by the
CPU to the uplink or
downlink port.

5-60

Statistics Result Registers
Table 5-12 lists the statistics result registers.
Table 5-12 Summary of the statistics result registers (base address: 0x1009_0000)

5-20

Offset Address

Name

Description

Page

0x0600

UD_RX_DVCNT

RXDV rising edge count
register.

5-60

0x0604

UD_RX_OCTS

Register for the total number
of received bytes.

5-61

0x0608

UD_RX_RIGHTOCTS

Register for the total number
of bytes of received correct
packets.

5-61

0x060C

UD_HOSTMAC_PKTS

Register for the number of
packets matching the local
MAC address.

5-62

0x0610

UD_RX_RIGHTPKTS

Register for the total number
of packets received by the
port.

5-62

0x0614

UD_RX_BROADPKTS

Register for the number of
correct broadcast packets.

5-62

0x0618

UD_RX_MULTPKTS

Register for the number of
correct multicast packets.

5-63

0x061C

UD_RX_UNIPKTS

Register for the number of
correct unicast packets.

5-63

0x0620

UD_RX_ERRPKTS

Register for the total number
of incorrect packets.

5-64

0x0624

UD_RX_CRCERR_PKTS

Register for the count of
CRC errors.

5-64

0x0628

UD_RX_LENERR_PKTS

Register for the number of
packets with invalid length.

5-64

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Offset Address

Name

Description

Page

0x062C

UD_RX_OCRCERR_PKTS

Register for the number of
packets with odd nibbles
and CRC errors.

5-65

0x0630

UD_RX_PAUSE_PKTS

Register for the number of
received pause packets.

5-65

0x0634

UD_RF_OVERCNT

Register for the count of
RXFIFO overflow events.

5-65

0x0638

UD_FLUX_TOL_IPKTS

Register for the total number
of received packets allowed
by the traffic limit.

5-66

0x063C

UD_FLUX_TOL_DPKTS

Register for the total number
of packets discarded due to
traffic limit.

5-66

0x0640

UD_VN2OTH_PKTS

Register for the number of
packets not forwarded to
another port due to VLAN
limit.

5-67

0x0644

UD_VN2CPU_PKTS

Register for the number of
packets not forwarded to the
CPU port due to VLAN
limit.

5-67

0x0648

UD_MN2OTH_PKTS

Register for the number of
packets not forwarded to
another port due to MAC
limit.

5-67

0x064C

UD_MN2CPU_PKTS

Register for the number of
packets not forwarded to the
CPU port due to MAC limit.

5-68

0x0780

UD_TX_PKTS

Register for the total number
of packets transmitted
successfully.

5-68

0x0784

UD_TX_BROADPKTS

Register for the number of
broadcast packets
transmitted successfully.

5-69

0x0788

UD_TX_MULTPKTS

Register for the number of
multicast packets
transmitted successfully.

5-69

0x078C

UD_TX_UNIPKTS

Register for the number of
unicast packets transmitted
successfully.

5-69

0x0790

UD_TX_OCTS

Register for the total number
of transmitted bytes.

5-70

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-21

Hi3515
Data Sheet

5 ETH

Offset Address

Name

Description

Page

0x0794

UD_TX_PAUSE_PKTS

Register for the number of
transmitted pause frames.

5-70

0x0798

UD_TX_RETRYCNT

Register for the total count
of retransmission.

5-70

0x079C

UD_TX_COLCNT

Register for the total count
of collisions.

5-71

0x07A0

UD_TX_LC_PKTS

Register for the number of
packets with late collision.

5-71

0x07A4

UD_TX_COLOK_PKTS

Register for the number of
packets transmitted
successfully with collisions.

5-71

0x07A8

UD_TX_RETRY15_PKTS

Register for the number of
packets discarded due to
more than 15 times of
retransmission.

5-72

0x07AC

UD_TX_RETRYN_PKTS

Register for the number of
packets with the count of
collisions being equal to the
threshold.

5-72

5.6 Register Description
5.6.1 Description of the MDIO Control Registers
MDIO_RWCTRL
MDIO_RWCTRL is the MDIO command word register.
The register does not support soft reset.
Register Name

Total Reset Value

0x1100

MDIO_RWCTRL

0x0000_8000

reserved

Reset 0

0

Bits

5-22

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

rw

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
finish

Bit

Offset Address

1

0

0

8

phy_exaddr

0

0

0

0

7

6

5

4

frq_dv

0

0

0

0

3

2

1

0

phy_inaddr

0

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[31:16]

RW

5 ETH

cpu_data_in

Data used by the MDIO module to perform write operation on the
PHY chip.
During write operation, the CPU first writes the 16-bit data to be
written to the MDIO to this register.
PHY read/write operation complete.
0: Not complete.

[15]

RW

finish

1: Complete.
When the read/write operation is required for the second time, the
CPU must clear this bit first.

[14]

RO

reserved

Reserved.
PHY read or write access control.

[13]

RW

rw

0: Read operation.
1: Write operation.
Physical address of the external PHY chip.

[12:8]

RW

phy_exaddr

One MDIO can perform read/write operation on multiple external
PHY chips. Each PHY chip has one corresponding address. When
the MDIO connects to only one external PHY chip, this bit is
equivalent to UD_MDIO_PHYADDR[phy0_addr] or
UD_MDIO_PHYADDR[phy1_addr].
Frequency division factor for the MDC (the MDIO interface
clock) when the MDIO performs the read/write operation on
external PHY chips.
Take the frequency 100 MHz of the main clock as an example to
describe the matching relations between frq_dv and MDC
frequency.
000: The frequency of the working main clock is divided by 50
and thus the obtained frequency is 2 MHz.
001: The frequency of the working main clock is divided by 100
and thus the obtained frequency is 1 MHz.

[7:5]

RW

frq_dv

010: The frequency of the working main clock is divided by 200
and thus the obtained frequency is 512 kHz.
011: The frequency of the working main clock is divided by 400
and thus the obtained frequency is 256 kHz.
100: The frequency of the working main clock is divided by 800
and thus the obtained frequency is 128 kHz.
101: The frequency of the working main clock is divided by 1600
and thus the obtained frequency is 64 kHz.
110: The frequency of the working main clock is divided by 3200
and thus the obtained frequency is 32 kHz.
111: The frequency of the working main clock is divided by 6400
and thus the obtained frequency is 16 kHz.

[4:0]

RW

Issue 02 (2010-04-20)

phy_inaddr

Internal register address of the external PHY chip. This address is
presented by a 5-bit binary number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-23

Hi3515
Data Sheet

5 ETH

MDIO_RO_DATA
MDIO_RO_DATAMDIO is the read data register. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x1104

MDIO_RO_DATA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

cpu_data_out
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

RO

cpu_data_out

Data register used by the MDIO module to perform read operation
on the PHY chip. The MDIO module first writes the 16-bit data
read from the PHY chip to this register.

UD_MDIO_PHYADDR
UD_MDIO_PHYADDR is the PHY physical address register. The register does not support
soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0108

UD_MDIO_PHYADDR

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

3

2

1

0

phy_addr
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:5]

RO

reserved

Reserved.

[4:0]

RW

phy_addr

Physical address of the external PHY chip.

0

0

0

0

0

0

1

UD_MDIO_RO_STAT
UD_MDIO_RO_STAT is the PHY status register. The register does not support soft reset.

Bit

5-24

Offset Address

Register Name

Total Reset Value

0x010C

UD_MDIO_RO_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

link_mdio2mac

reserved

duplex_mdio2mac

Name

speed_mdio2mac

5 ETH

0

0

0

Port speed working status obtained from the MDIO interface,
which is in either 10 Mbit/s or 100 Mbit/s working mode.
[2]

RO

speed_mdio2mac

0: 10 Mbit/s working mode.
1: 100 Mbit/s working mode.
Port link status obtained from the MDIO interface.

[1]

RO

0: No link exists.

link_mdio2mac

1: A link exists.
Port duplex working status obtained from the MDIO interface.
[0]

RO

duplex_mdio2mac 0: Half-duplex.
1: Full-duplex.

UD_MDIO_ANEG_CTRL
UD_MDIO_ANEG_CTRLPHY is the offset address configuration register for the PHY status.
The register does not support soft reset.
The PHY speed status is indicated by bit[14] of the register with the address of 17, internal_addr_speed
is set to 0x11 and speed_index is set to 0xE. In this case, the ETH module reads the bit value as the
current working speed mode of the PHY through the MDIO interface.
Register Name

Total Reset Value

0x0110

UD_MDIO_ANEG_CTRL

0x0463_1EA9

reserved

Reset 0

0

0

0

0

1

0

internal_addr_link

Name

internal_addr_duplex

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
internal_addr_speed

Bit

Offset Address

0

0

1

1

0

0

0

1

1

Bits

Access

Name

Description

[31:27]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

0

0

8

speed_index

0

1

1

1

1

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

7

6

5

4

link_index

1

0

1

0

3

2

1

0

duplex_index

1

0

0

1

5-25

Hi3515
Data Sheet

5 ETH

[26:22]

RW

Address of the register in the PHY chip to store the status
internal_addr_spee
information (speed). The default value is set according to Intel
d
9785.

[21:17]

RW

internal_addr_link

[16:12]

RW

Address of the register in the PHY chip to store the status
internal_addr_dupl
information (duplex). The default value is set according to Intel
ex
9785.

[11:8]

RW

speed_index

Offset address in the PHY status register that is used to store the
speed information. The default value is set according to Intel 9785.

[7:4]

RW

link_index

Offset address in the PHY status register that is used to store the
link information. The default value is set according to Intel 9785.

[3:0]

RW

duplex_index

Offset address in the PHY status register that is used to store the
duplex information. The default value is set according to Intel
9785.

Address of the register in the PHY chip to store the status
information (link). The default value is set according to Intel 9785.

UD_MDIO_IRQENA
UD_MDIO_IRQENA is the scan mask register for MDIO status changes. The register does
not support soft reset.
If the status information about the PHY chip connecting to the port cannot be scanned and obtained
by configuring UD_MDIO_ANEG_CTRL, you can scan the PHY status register by using
MDIO_RWCTRL to check whether the port status changes and generate an interrupt to notify
software of processing the interrupt.

z

link_partner status change refers to the change of any bit of link, speed, and duplex for the PHY
status.

0x0114

UD_MDIO_IRQENA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

0

0

0

0

0

reserved

Reset 0

5-26

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:4]

RO

reserved

Reserved.

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

3

2

1

0

link_ch_mask

Total Reset Value

duplex_ch_mask

Register Name

speed_ch_mask

Offset Address

link_partner_ch_mask

Bit

z

0

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[3]

5 ETH

Port link partner status scan change interrupt mask.
link_partner_ch_m
0: Mask.
ask
1: Unmask.

RW

Port speed mode scan change interrupt mask.
[2]

RW

speed_ch_mask

0: Mask.
1: Unmask.
Port link mode scan change interrupt mask.

[1]

RW

0: Mask.

link_ch_mask

1: Unmask.
Port duplex mode scan change interrupt mask.
[0]

RW

0: Mask.

duplex_ch_mask

1: Unmask.

5.6.2 Description of the MAC Control Registers
MAC control registers are registers for port control. When the port status is valid, after
configuring MAC control registers, you need to perform one soft reset on them.

UD_MAC_PORTSEL

Register Name

Total Reset Value

0x0200

UD_MAC_PORTSEL

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0
stat_ctrl

Bit

Offset Address

mii_rmii

UD_MAC_PORTSEL is the port working status control register. The register does not support
soft reset.

0

1

Port interface mode selection.
[1]

RW

mii_rmii

0: MII interface.
1: RMII interface.
Port working status information select control register.

[0]

RW

stat_ctrl

0: Use the status information obtained from the MDIO interface.
1: Use the status information set by the CPU.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-27

Hi3515
Data Sheet

5 ETH

UD_MAC_RO_STAT

Total Reset Value

0x0204

UD_MAC_RO_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

0

0

0

0

0

0

0

2

1

0

link_stat

Register Name

duplex_stat

Bit

Offset Address

peed_stat

UD_MAC_RO_STAT is the port status register. The register does not support soft reset.

0

0

0

Port current speed mode.
[2]

RO

0: 10 Mbit/s mode.

speed_stat

1: 100 Mbit/s mode.
Port current link status.
[1]

RO

0: No link exists.

link_stat

1: A link exists.
Port current duplex status.
[0]

RO

duplex_stat

0: Half-duplex.
1: Full-duplex.

UD_MAC_PORTSET

Total Reset Value

0x0208

UD_MAC_PORTSET

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

Bits

5-28

8

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

1

0

link_stat_dio

Register Name

duplex_stat_dio

Bit

Offset Address

speed_stat_dio

UD_MAC_PORTSET is the port working status configuration register. The register does not
support soft reset.

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[31:3]

5 ETH

RO

reserved

Reserved.
Port speed mode set by the CPU.

[2]

RW

speed_stat_dio

0: 10 Mbit/s mode.
1: 100 Mbit/s mode.
Port link status set by the CPU.

[1]

RW

link_stat_dio

0: No link exists.
1: A link exists.
Port duplex mode set by the CPU.

[0]

RW

0: Half-duplex.

duplex_stat_dio

1: Full-duplex.

UD_MAC_STAT_CHANGE

Total Reset Value

0x020C

UD_MAC_STAT_CHANGE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

0

0

0

0

0

0

0

2

1

0

link_stat_ch

Register Name

duplex_stat_ch

Bit

Offset Address

speed_stat_ch

UD_MAC_STAT_CHANGE is the port status change indicator register. The register does not
support soft reset.

0

0

0

Port speed mode change indicator.
[2]

WC

speed_stat_ch

0: No change occurs.
1: A change occurs.
Writing 1 clears this register.
Port link status change indicator.

[1]

WC

link_stat_ch

0: No change occurs.
1: A change occurs.
Writing 1 clears this register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-29

Hi3515
Data Sheet

5 ETH

Port duplex mode change indicator.
[0]

WC

0: No change occurs.

duplex_stat_ch

1: A change occurs.
Writing 1 clears this register.

UD_MAC_SET
UD_MAC_SET is the MAC function configuration register.
The register does not support soft reset.
Register Name

Total Reset Value

0x0210

UD_MAC_SET

0x2027_55EE

0

0

0

0

0

0

1

pause_en

0

rx_shframe_en

1

ex_loop_en

cntr_roll_dis

colthreshold

in_loop_en

cntr_clr_all

0

cntr_rdclr_en

Reset 0

crcgen_dis

Name

add_pad_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Bit

Offset Address

0

0

1

1

8

7

rx_min_thr

1

Bits

Access

Name

Description

[31:30]

RO

reversed

Reserved.

0

1

0

1

6

5

4

3

2

1

0

1

1

1

0

len_max

0

1

0

1

1

1

1

0

Port auto add PAD enable during transmission.
[29]

RW

add_pad_en

0: Disabled.
1: Enabled.
Port CRC generation disable control.

[28]

RW

crcgen_dis

0: Transmit frame recalculate CRC.
1: Transmit frame not recalculate CRC.
Port statistics counter read clear enable.

[27]

RW

cntr_rdclr_en

0: Disabled.
1: Enabled.
Port statistics counter clear control.
0: Not clear.

[26]

RW

cntr_clr_all

1: Clear.
Note: If cntr_clr_all is set to 1, the next clear all operation can be
performed only after this bit is set to 0 and then to 1.
Port statistics acyclic counter enable.

[25]

RW

cntr_roll_dis

0: Disabled.
1: Enabled.

5-30

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Port collision count statistics threshold.
[24:21]

RW

colthreshold

The default value is 0x1, which indicates the count of frames with
one collision.
Port loopback to internal enable.
0: Disabled.
1: Enabled.

[20]

RW

in_loop_en

Note: Loopback to internal enable and loopback to external enable
cannot be configured at the same time. When the network interface
is in normal state, you need to perform soft reset on the module
after loopback to internal enable is configured instead of loopback
to external enable and vice versa.
Port loopback to external enable.
0: Disabled.
1: Enabled.

[19]

RW

ex_loop_en

Note: Loopback to internal enable and loopback to external enable
cannot be configured at the same time. When the network interface
is in normal state, you need to perform soft reset on the module
after loopback to internal enable is configured instead of loopback
to external enable and vice versa.
Port pause frame transmit enable.

[18]

RW

pause_en

0: Disabled.
1: Enabled.
Port short frame receive enable.
0: Disabled.
1: Enabled.

[17]

RW

rx_shframe_en

Note: If rx_shframe_en is set to 1, the minimum receive frame
length allowed by the port is that set by rx_min_thr. If
rx_shframe_en is set to 0, the minimum receive frame length
allowed by the port is 64 bytes (including CRC) by default.
Minimum receive frame length allowed by the port.

[16:11]

RW

rx_min_thr

The value range is from 42 bytes to 63 bytes. The default value is
42 bytes.
Note: If rx_min_thr is set to a value smaller than 42, 42 is used
instead of the value.
Maximum receive frame length allowed by the port. The default
value is 1518 bytes.

[10:0]

RW

len_max

The value is in a range of 1518 bytes to 1535 bytes.
Note: If len_max is set to a value greater than 2000, 2000 is used
instead of the value. If len_max is set to a value smaller than 256,
256 is used instead of the value.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-31

Hi3515
Data Sheet

5 ETH

5.6.3 Description of the Global Control Registers
GLB_HOSTMAC_L32
GLB_HOSTMAC_L32 is the lower 32-bit register for the local MAC address.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x1300

GLB_HOSTMAC_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

local_mac

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

local_mac

Lower 32 bits of the local MAC address.

GLB_HOSTMAC_H16
GLB_HOSTMAC_H16 is the upper 16-bit register for the local MAC address.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x1304

GLB_HOSTMAC_H16

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

local_mac[47:32]
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

RW

local_mac[47:32]

Upper 16 bits of the local MAC address.

0

GLB_SOFT_RESET
GLB_SOFT_RESET is the internal soft reset register.
The register does not support soft reset.
The time for each soft reset must remain for more than 2 ms.

5-32

Offset Address

Register Name

Total Reset Value

0x1308

GLB_SOFT_RESET

0x0000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4

Name

3

2

1

0

0

0

0
soft_reset

Bit

5 ETH

reserved

Reset 0 0 0

0

0

0

0

0

0

0

0

0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bits

Access Name

Description

[31:1]

RO

Reserved.

reserved

0

Internal soft reset.
[0]

RW

0: Not reset.

soft_reset

1: Reset.
In soft reset state, this bit must be set to 0to clear soft reset.

GLB_FWCTRL
GLB_FWCTRL is the forward control register.
The register does not support soft reset.

0x1310

GLB_FWCTRL

0x0000_0020

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

7

6

5

0

0

1

4

3

2

0

0

0

1

0

0

0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

fw2cpu_ena_up

Total Reset Value

reserved

Register Name

fwall2cpu_up

Bit

Offset Address

Indicates whether to forcibly forward all valid input frames to the
CPU port.
[7]

RW

fwall2cpu_up

0: no
0: yes

[6]

RO

reserved

Reserved.
Function enable of forwarding the input frames to the CPU port.

[5]

RW

fw2cpu_ena_up

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-33

Hi3515
Data Sheet

5 ETH

[4:0]

RO

reserved

Reserved.

GLB_MACTCTRL
GLB_MACTCTRL is the MAC filter table control register.
The register does not support soft reset.
If the highest byte of the destination MAC address is even, the frame is a unicast frame.

z

If the highest byte of the destination MAC address is odd, the frame is a multicast frame.

z

If all bytes of the destination MAC address are 0xFF, the frame is a broadcast frame.

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:8]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

uni2cpu_up

0x0000_0020

reserved

GLB_MACTCTRL

multi2cpu_up

0x1314

reserved

Total Reset Value

broad2cpu_up

Register Name

reserved

Offset Address

mact_ena_up

Bit

z

0

0

1

0

0

0

0

0

Enable bit of all MAC filters of the port.
[7]

RW

mact_ena_up

0: Disabled (no MAC filter is used).
1: Enabled (MAC filters are used).

[6]

RO

reserved

Reserved.
Indicates whether to forward the input broadcast frames to the
CPU port.

[5]

RW

broad2cpu_up

0: no
1: yes

[4]

RO

reserved

Reserved.
Indicates whether to forward the input multicast frames that are not
listed in the filter table to the CPU port.

[3]

RW

multi2cpu_up

0: no
1: yes

[2]

5-34

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Indicates whether to forward the input unicast frames that are not
listed in the filter table to the CPU port.
[1]

RW

uni2cpu_up

0: no
1: yes

[0]

RO

reserved

Reserved.

GLB_ENDIAN_MOD
GLB_ENDIAN_MOD is the endian control register.

Register Name

Total Reset Value

0x1318

GLB_ENDIAN_MOD

0x0000_0003

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

2

1

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0

in_edian

Bit

Offset Address

out_edian

The register does not support soft reset.

1

1

Receive packet write SDRAM endian configuration.
[1]

RW

in_edian

0: Big-endian mode.
1: Little-endian mode.
Data consists of bytes.
Transmit packet read SDRAM endian configuration.

[0]

RW

out_edian

0: Big-endian mode.
1: Little-endian mode.

GLB_IRQ_STAT
GLB_IRQ_STAT is the interrupt status register.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x1330

GLB_IRQ_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

5-35

Hi3515
Data Sheet

5 ETH

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:13]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

int_tx_up

0

int_rx_up

0

int_link_up

0

int_speed_up

0

int_stat_up

0

int_duplex_up

Reset 0

reserved

int_freeeq_up

reserved

int_rxd_up

int_mdio_finish

Name

0

0

0

0

0

0

Interrupt status indicates whether the MDIO interface completes
the operation required by the CPU.
0: Not completed.
[12]

RO

int_mdio_finish

1: Completed and An interrupt occurs.
After this interrupt is generated, software determines whether the
MDIO completes the operation by querying
MDIO_RWCTRL[finish].

[11:8]

RO

reserved

Reserved.
Interrupt status (multi-packet interrupt) for a frame (frames) on the
port to be received by the CPU.
0: The interrupt is invalid.

[7]

RO

int_rxd_up

1: The interrupt is valid. There are frames to be received by the
CPU in the receive queue.
After this interrupt is generated, software determines whether there
are frames to be received by querying
GLB_IRQ_RAW[iraw_rxd_up].
Interrupt status indicates that the status of the port output queue is
changed from nonempty to empty, that is, the status of the transmit
queue buffer is changed from nonempty to empty, that is, the status
of the transmit queue buffer is changed from nonempty to empty.
In this case, the CPU can write a group of new frames to be
transmitted.

[6]

RO

int_freeeq_up

0: No interrupt occurs.
1: An interrupt occurs.
After this interrupt is generated, software determines whether the
current transmit queue is empty by querying
UD_GLB_ADDRQ_STAT[eq_cnt]. If the current transmit queue
is not empty, it indicates that the interrupt is invalid.
Interrupt status for port status changes, indicating that an interrupt
is generated when the MDIO obtains the speed change, duplex
mode change, and link status change of the PHY chip in
auto-adaption mode.

[5]

RO

int_stat_up

0: The interrupt is invalid.
1: The interrupt is valid. The port status changes.
After this interrupt is generated, software determines which status
changes according to the configuration of UD_MDIO_IRQENA.

5-36

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Interrupt status for port duplex mode changes.
0: The interrupt is invalid.
[4]

RO

int_duplex_up

1: The interrupt is valid. The duplex mode changes.
After this interrupt is generated, software determines whether the
duplex mode changes by querying
UD_MAC_STAT_CHANGE[duplex_stat_ch].
Interrupt status for ort speed mode changes.
0: The interrupt is invalid.

[3]

RO

int_speed_up

1: The interrupt is valid. The speed mode changes.
After this interrupt is generated, software determines whether the
speed mode changes by querying
UD_MAC_STAT_CHANGE[speed_stat_ch].
Interrupt status for port link status changes.
0: The interrupt is invalid.

[2]

RO

int_link_up

1: The interrupt is valid. The link status changes.
After this interrupt is generated, software determines whether the
link status changes by querying
UD_MAC_STAT_CHANGE[link_stat_ch].
Interrupt status for the completion of transmitting a frame from the
CPU by the port.
0: Not completed.

[1]

RO

int_tx_up

1: Completed and An interrupt occurs.
After this interrupt is generated, software determines whether to
release the buffer of the transmit frames by querying the current
transmit queue address eq_out_index in UD_GLB_QSTAT.
Interrupt status for frames on the port to be received by the CPU.
0: The interrupt is invalid.

[0]

RO

int_rx_up

1: The interrupt is valid. There are frames to be received by the
CPU in the receive queue.
After this interrupt program is started, software determines
whether frames are received by querying the
GLB_IRQ_RAW[iraw_rxd_up] signal.

GLB_IRQ_ENA
GLB_IRQ_ENA is the interrupt enable register.
The register does not support soft reset.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-37

Hi3515
Data Sheet

5 ETH
Offset Address

Register Name

Total Reset Value

0x1334

GLB_IRQ_ENA

0x0000_0000

Bits

Access Name

[31:20] RO

4

3

2

1

0

reserved

ien_stat_up

ien_duplex_up

ien_speed_up

ien_link_up

ien_tx_up

ien_rx_up

0 0 0 0 0

Reset 0 0 0 0 0 0 0 0 0 0 0 0

5

ien_freeeq_up

reserved

0

reserved

6

ien_rxd_up

ien_up

0

Nam
e

7

ien_mdio_finish

18

ien_all

1
16151413 12 11 10 9 8
7

Bit 31 30 29 28 27 26 25 24 23 22 21 20 19

0

0 0 0 0

0

0

0

0

0

0

0

0

Description

reserved

Reserved.
All interrupts enable.

[19]

RW

ien_all

0: Disabled (none of the interrupt can be reported).
1: Enabled (all interrupts are reported according to the configuration).
All uplink port interrupts enable.

[18]

RW

0: Disabled (none of the uplink port interrupt can be reported).

ien_up

1: Enabled (all uplink port interrupts are reported according to the
configuration).
[17:13] RO

reserved

Reserved.
Indicator enable for the MDIO to complete the operation required by the
CPU.

[12]

RW

ien_mdio_finish

0: Disabled.
1: Enabled.

[11:8] RO

reserved

Reserved.
Interrupt enable (multi-packet interrupt) for a frame (frames) on the uplink
port to be received by the CPU.

[7]

RW

ien_rxd_up

0: Disabled.
1: Enabled.
Interrupt signal enable for the transmit queue of the uplink port to change
from nonempty to empty.

[6]

RW

ien_freeeq_up

0: Disabled.
1: Enabled.
Interrupt signal enable for uplink port status changes.

[5]

RW

ien_stat_up

0: Disabled.
1: Enabled.

5-38

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Interrupt enable for uplink port duplex mode changes.
[4]

RW

ien_duplex_up 0: Disabled.
1: Enabled.
Interrupt enable for uplink port speed mode changes.

[3]

RW

ien_speed_up

0: Disabled.
1: Enabled.
Interrupt enable for uplink port link status changes.

[2]

RW

0: Disabled.

ien_link_up

1: Enabled.
Indicator enable for the completion of transmitting a frame from the CPU
by the uplink port.
[1]

RW

ien_tx_up

0: Disabled.
1: Enabled.
Interrupt enable for frames on the uplink port to be received by the CPU.

[0]

RW

0: Disabled.

ien_rx_up

1: Enabled.

GLB_IRQ_RAW
GLB_IRQ_RAW is the raw interrupt register. The register does not support soft reset. Writing
1 clears this register.
Offset Address

Register Name

Total Reset Value

0x1338

GLB_IRQ_RAW

0x0000_0000

Bits

Access Name

[31:13] RO

4

3

2

1

0

reserved

iraw_stat_up

iraw_duplex_up

iraw_speed_up

iraw_link_up

iraw_tx_up

iraw_rx_up

Reset 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

5

iraw_freeeq_up

reserved

6

iraw_rxd_up

Name

7

iraw_mdio_finish

Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8

0

0 0 0 0

0

0

0

0

0

0

0

0

Description

reserved

Reserved.
Raw interrupt status for the MDIO to complete the operation required by
the CPU.

[12]

WC

iraw_mdio_finish

0: No interrupt occurs.
1: An interrupt occurs.

[11:8] RO

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-39

Hi3515
Data Sheet

5 ETH

Raw interrupt status (multi-packet interrupt) for a frame (frames) on the
uplink port to be received by the CPU.
[7]

WC

iraw_rxd_up

0: No interrupt occurs.
1: An interrupt occurs.

[6]

WC

iraw_freeeq_up

Raw interrupt status for the transmit queue of the uplink port to change
from nonempty to empty, indicating that the transmit queue buffer
changes from nonempty to empty and the CPU can write a group of new
frames to be transmitted.
0: No interrupt occurs.
1: An interrupt occurs.

[5]

WC

iraw_stat_up

Raw interrupt status for uplink port status changes, indicating that an
interrupt is generated when the MDIO obtains the speed change, duplex
mode change, and link status change of the PHY chip in auto-adaption
mode.
0: No interrupt occurs.
1: An interrupt occurs.
Raw interrupt status for uplink port duplex mode changes.

[4]

WC

iraw_duplex_up 0: No interrupt occurs.
1: An interrupt occurs.
Raw interrupt status for uplink port speed mode changes.

[3]

WC

iraw_speed_up

0: The interrupt is invalid.
1: The interrupt is valid. The speed mode changes.
Writing 1 clears this register.
Raw interrupt status for uplink port link status changes.

[2]

WC

iraw_link_up

0: No interrupt occurs.
1: An interrupt occurs.
Raw interrupt status for the completion of transmitting a frame from the
CPU by the uplink port.

[1]

WC

iraw_tx_up

0: No interrupt occurs.
1: An interrupt occurs.
Raw interrupt status for frames on the uplink port to be received by the
CPU.

[0]

WC

iraw_rx_up

0: No interrupt occurs.
1: An interrupt occurs.

GLB_MAC0_L32
GLB_MAC0_L32 is the lower 32-bit register for the filter table MAC0.

5-40

Offset Address

Register Name

Total Reset Value

0x1400

GLB_MAC0_L32

0x0000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Bit

5 ETH

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac0

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac0

Lower 32 bits of the filter table MAC0.

GLB_MAC0_H16
GLB_MAC0_H16 is the upper 16-bit register for the filter table MAC0.
Register Name

Total Reset Value

0x1404

GLB_MAC0_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac0_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac0_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac0

Upper 16 bits of the filter table MAC0.

GLB_MAC1_L32
GLB_MAC1_L32 is the lower 32-bit register for the filter table MAC1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-41

Hi3515
Data Sheet

5 ETH

Bit

Offset Address

Register Name

Total Reset Value

0x1408

GLB_MAC1_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac1

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac1

Lower 32 bits of the filter table MAC1.

GLB_MAC1_H16
GLB_MAC1_H16 is the upper 16-bit register for the filter table MAC1.
Register Name

Total Reset Value

0x140C

GLB_MAC1_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac1_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac1

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac1_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac1

Upper 16 bits of the filter table MAC1.

GLB_MAC2_L32
GLB_MAC2_L32 is the lower 32-bit register for the filter table MAC2.

5-42

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

5 ETH

Offset Address

Register Name

Total Reset Value

0x1410

GLB_MAC2_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac2

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac2

Lower 32 bits of the filter table MAC2.

GLB_MAC2_H16
GLB_MAC2_H16 is the upper 16-bit register for the filter table MAC2.
Register Name

Total Reset Value

0x1414

GLB_MAC2_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac2_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac2

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac2_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac2

Upper 16 bits of the filter table MAC2.

GLB_MAC3_L32
GLB_MAC3_L32 is the lower 32-bit register for the filter table MAC3.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-43

Hi3515
Data Sheet

5 ETH

Bit

Offset Address

Register Name

Total Reset Value

0x1418

GLB_MAC3_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac3

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac3

Lower 32 bits of the filter table MAC3.

GLB_MAC3_H16
GLB_MAC3_H16 is the upper 16-bit register for the filter table MAC3.
Register Name

Total Reset Value

0x141C

GLB_MAC3_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac3_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac3

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

[17]

RO

RW

reserved

Reserved.

mac3_up

Indicates whether to forward the frames received by the downlink
port that match this filter to the CPU port when the downlink port
enables this filter.
0: Do not forward the frames.
1: Forward the frames.

5-44

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac3

Upper 16 bits of the filter table MAC3.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

GLB_MAC4_L32
GLB_MAC4_L32 is the lower 32-bit register for the filter table MAC4.

Bit

Offset Address

Register Name

Total Reset Value

0x1420

GLB_MAC4_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac4

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac4

Lower 32 bits of the filter table MAC4.

GLB_MAC4_H16
GLB_MAC4_H16 is the upper 16-bit register for the filter table MAC4.
Register Name

Total Reset Value

0x1424

GLB_MAC4_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac4_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac4

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac4_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac4

Upper 16 bits of the filter table MAC4.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-45

Hi3515
Data Sheet

5 ETH

GLB_MAC5_L32
GLB_MAC5_L32 is the lower 32-bit register for the filter table MAC5.

Bit

Offset Address

Register Name

Total Reset Value

0x1428

GLB_MAC5_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac5

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac5

Lower 32 bits of the filter table MAC5.

GLB_MAC5_H16
GLB_MAC5_H16 is the upper 16-bit register for the filter table MAC5.
Register Name

Total Reset Value

0x142C

GLB_MAC5_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac5_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac5

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac5_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

5-46

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac5

Upper 16 bits of the filter table MAC5.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

GLB_MAC6_L32
GLB_MAC6_L32 is the lower 32-bit register for the filter table MAC6.

Bit

Offset Address

Register Name

Total Reset Value

0x1430

GLB_MAC6_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac6

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac6

Lower 32 bits of the filter table MAC6.

GLB_MAC6_H16
GLB_MAC6_H16 is the upper 16-bit register for the filter table MAC6.
Register Name

Total Reset Value

0x1434

GLB_MAC6_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac6_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac6

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac6_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac6

Upper 16 bits of the filter table MAC6.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-47

Hi3515
Data Sheet

5 ETH

GLB_MAC7_L32
GLB_MAC7_L32 is the lower 32-bit register for the filter table MAC7.

Bit

Offset Address

Register Name

Total Reset Value

0x1438

GLB_MAC7_L32

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flt_mac7

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

flt_mac7

Lower 32 bits of the filter table MAC7.

GLB_MAC7_H16
GLB_MAC7_H16 is the upper 16-bit register for the filter table MAC7.
Register Name

Total Reset Value

0x143C

GLB_MAC7_H16

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

reserved

reserved

Name

mac7_up

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
fw2cpu_up

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

flt_mac7

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

fw2cpu_up

Indicates whether to forward the frames received by the uplink
port that match this filter to the CPU port when the uplink port
enables this filter.

[21]

RW

0: no
1: yes
[20:18]

RO

reserved

Reserved.
Control for setting this filter to be used by the uplink port.

[17]

RW

mac7_up

0: The uplink port does not use this filter.
1: The uplink port uses this filter.

5-48

[16]

RO

reserved

Reserved.

[15:0]

RW

flt_mac7

Upper 16 bits of the filter table MAC7.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

UD_GLB_IRQN_SET
UD_GLB_IRQN_SET is the multi-packet interrupt configuration register.
The register does not support soft reset.

Bit
Name

Offset Address

Register Name

Total Reset Value

0x0340

UD_GLB_IRQN_SET

0x0800_003A

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Reset 0

0

0

int_frm_cnt
0

0

0

0

reserved
0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

1

1

1

0

1

0

age_timer
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:29]

RO

reserved

Reserved.

int_frm_cnt

These bits are used to set the multi-packet interrupt function. That
is, how many packets must be received before a multi-packet
interrupt can be reported.

[28:24]

RW

Note: The minimum value of int_frm_cnt can be set to 1. In this
case, multi-packet interrupt is equivalent to single-packet interrupt.
[23:16]

RO

[15:0]

reserved

RW

Reserved.
After the multi-packet interrupt function is enabled, if the number
of received packets cannot reach the specified number of packets
required for reporting the multi-packet interrupt after a period, this
period is defined as the aging time for generating the multi-packet
interrupt.

age_timer

Note: age_timer is counted in the unit of the main clock cycle
divided by 256.

UD_GLB_QLEN_SET
UD_GLB_QLEN_SET is the queue length configuration register.
The register does not support soft reset.
Register Name

Total Reset Value

0x0344

UD_GLB_QLEN_SET

0x0000_2020

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

7

iq_len

0

0

0

0

0

0

Bits

Access

Name

Description

[31:14]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

1

0

0

0

6

5

4

reserved

Bit

Offset Address

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

3

2

1

0

0

0

eq_len

1

0

0

0

5-49

Hi3515
Data Sheet

5 ETH

Receive (packet receive) queue length configuration.
Note: iq_len cannot be set to 0. Otherwise, it is forcibly set to 1.
The sum of the set values of iq_len and eq_len cannot be greater
than 64. Otherwise, the value (non-zero) of iq_len is firstly
assigned and the value of eq_len is calculated by the formula: 64 –
iq_len.

[13:8]

RW

iq_len

[7:6]

RO

reserved

[5:0]

RW

eq_len

Reserved.
Transmit (packet transmit) queue length configuration.
Note: eq_len cannot be set to 0. Otherwise, it is forcibly set to 1.

UD_GLB_FC_LEVEL
UD_GLB_FC_LEVEL is the traffic control register.
The register does not support soft reset.
Register Name

Total Reset Value

0x0348

UD_GLB_FC_LEVEL

0x3018_0508

Name

Reset 0

0

1

1

0

0

0

0

0

0

0

1

1

0

0

0

Bits

Access

Name

Description

[31:15]

RO

reserved

Reserved.

0

0

8

7

qlimit_up

0

0

0

1

6

5

reserved

qlimit_ena

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

1

0

0

4

3

2

1

0

qlimit_down

0

0

1

0

0

0

Traffic control enable for receive queue.
[14]

RW

qlimit_ena

0: Disabled (do not transmit the traffic control message according
to the status of receive queue).
1: Enabled (transmit the traffic control message according to the
status of receive queue).
Upper limit of traffic control for receive queue. When the free
space of the receive queue is less than the upper limit, if traffic
control for receive queue is enabled, the traffic control message is
transmitted to the peer end.

[13:8]

RW

qlimit_up

Note: If the upper limit qlimit_up is set to 0, the receive queue
fails to enter the traffic control status.
The upper limit qlimit_up must be greater than the lower limit
qlimit_down.

[7:6]

5-50

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[5:0]

5 ETH

RW

Lower limit of traffic control for receive queue. When the free
space of the receive queue is equal to or greater than the upper
limit, if the receive queue is in traffic control state, the current
traffic control is stopped.

qlimit_down

UD_GLB_CAUSE
UD_GLB_CAUSE is the cause register for the CPU to which the packet is transmitted.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x034C

UD_GLB_CAUSE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

2

1

0

mact_cause

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Packet matching result types by querying the MAC table.
000: Forced forwarding.
001: Packet whose destination MAC address is the local MAC
address.
[2:0]

RO

mact_cause

010: Broadcast packet.
011: Packet matching the MAC table.
100: Multicast packet not matching the MAC table.
101: Unicast packet not matching the MAC table.
Others: Reserved.

UD_GLB_RXFRM_SADDR
UD_GLB_RXFRM_SADDR is the receive frame start address register.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0350

UD_GLB_RXFRM_SADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Issue 02 (2010-04-20)

8

7

6

5

4

3

2

1

0

rxfrm_saddr

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-51

Hi3515
Data Sheet

5 ETH
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rxfrm_saddr

Start address of the receive frame.

0

0

0

0

0

0

0

0

0

0

UD_GLB_IQFRM_DES
UD_GLB_IQFRM_DES is the receive frame descriptor register.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0354

UD_GLB_IQFRM_DES

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

fd_vlanid

Reset 0

0

0

0

0

0

0

0

8

7

fd_in_addr

0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

fd_in_len

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:18]

RO

reserved

Reserved.

[17:12]

RO

fd_in_addr

Relative address of the first frame to be received in the input queue
(IQ). It serves as the index (0 to iq_len-1) of the absolute address
for storing the frames.

[11:0]

RO

fd_in_len

Length of the frame to be received in the receive queue.

UD_GLB_IQ_ADDR
UD_GLB_IQ_ADDR is the receive frame header address register.
The register does not support soft reset.
If the address assigned by software is not word aligned, the logic writes data according to the word
aligned address. In this case, the previously written data is invalid. For example, if the configured header
address of a frame is 0xF000_8002 (non-word-aligned address), the logic writes 0x00 or other data to
both the 0xF000_8000 and 0xF000_8001 addresses. Then, the logic writes the first byte (valid data) of
the receive frame to the 0xF000_8002 address, writes the second byte (valid data) of the receive frame
to the 0xF000_8003 address. Subsequent data is written to the buffer in sequence. If the configured
header address of the receive frame is other non-word-aligned address, the logic writes data in a similar
way.

5-52

Offset Address

Register Name

Total Reset Value

0x0358

UD_GLB_IQ_ADDR

0x0000_0000

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Bit

5 ETH

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

startaddr_iq

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

startaddr_iq

Header address (configured by the CPU) of the storage space
corresponding to the receive frame. The receive frame requests the
bus according to this address.

UD_GLB_BFC_STAT
UD_GLB_BFC_STAT is the counter for traffic control status of forward buffer and aging
time of multi-packet interrupt.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x035C

UD_GLB_BFC_STAT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

timerover_cnt

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

flowctrl_cnt
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Register for the count of multi-packet interrupt aging time counter
overflow events (the count reaches the configured value).

[31:16]

RO

timerover_cnt

Note: If the value of timerover_cnt is too large in a unit of time, it
indicates that UD_GLB_IRQN_SET[int_frm_cnt] is set
improperly. Multi-packet interrupt is triggered by the aging time.
Therefore, the configured value must be reduced.
Register for the count of the forward buffer of the uplink or
downlink port entering the traffic control status.

[15:0]

RO

flowctrl_cnt

Note: If the value of flowctrl_cnt is too large in a unit of time, it
indicates that UD_GLB_FC_LEVEL[blimit_up] or
UD_GLB_FC_LEVEL[blimit_down] is set to a too small value, or
the external network condition is worsened. In this case, the
configured value may be reduced.

UD_GLB_EQ_ADDR
UD_GLB_EQ_ADDR is the transmit queue header address register.
The register does not support soft reset.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-53

Hi3515
Data Sheet

5 ETH

If the header address of the transmit frame is not word aligned, the logic reads data according to the
word aligned address. In this case, the previously read data is invalid and discarded. For example, if the
configured header address of the transmit frame is 0xF000_8102 (non-word-aligned address), the logic
directly discards the byte data read from the 0xF000_8100 and 0xF000_8101 addresses. Then, the logic
considers the data read from the 0xF000_8102 address as the first byte (valid data) of the transmit frame
and considers the data read from the 0xF000_8103 address as the second byte (valid data) of the transmit
frame. All subsequent data is valid (until the data of the specified frame length is read). If the configured
header address of the transmit frame is other non-word-aligned address, the logic reads data in a similar
way.

Bit

Offset Address

Register Name

Total Reset Value

0x0360

UD_GLB_EQ_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

add_fd_addr_out

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

add_fd_addr_out

Header address of the transmit frame added by the CPU to the
transmit queue.

UD_GLB_EQFRM_LEN
UD_GLB_EQFRM_LEN is the transmit queue frame length configuration register.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0364

UD_GLB_EQFRM_LEN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

add_fd_len_out
0

0

0

0

Bits

Access

Name

Description

[31:11]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Length of the transmit frame added by the CPU to the transmit
queue.

[10:0]

RW

add_fd_len_out

Configure this register to trigger hardware so that software can
write the header address and length of the transmit frame to the
transmit queue for transmission. When transmitting a frame,
software must write the header address of the frame before the
length of the frame.
Note: The frames whose add_fd_len_out is less than 20 bytes or
greater than 1600 bytes are discarded. In other words, the allowed
range is from 20 bytes to 1600 bytes.

5-54

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

UD_GLB_QSTAT
UD_GLB_QSTAT is the queue status register.
The register does not support soft reset.
Register Name

Total Reset Value

0x0368

UD_GLB_QSTAT

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

cpuw_index

0

0

0

0

0

0

0

0

8

7

eq_in_index

0

0

0

0

0

6

5

reserved

iq_in_index

reserved

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

0

0

4

3

2

1

0

eq_out_index

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

RO

reserved

Reserved.

[29:24]

RO

iq_in_index

Receive index of the receive (packet receive) queue.

[23:22]

RO

reserved

Reserved.

[21:16]

RO

cpuw_index

Receive index of frame header address of the receive (packet
receive) queue.

[15:14]

RO

reserved

Reserved.

[13:8]

RO

eq_in_index

Receive index of frame descriptor of the transmit (packet transmit)
queue.

[7:6]

RO

reserved

Reserved.

[5:0]

RO

eq_out_index

Transmit index of frame descriptor of the transmit (packet
transmit) queue.

UD_GLB_ADDRQ_STAT
UD_GLB_ADDRQ_STAT is the address queue status register.
The register does not support soft reset.
Register Name

Total Reset Value

0x036C

UD_GLB_ADDRQ_STAT

0x0300_0000

Reset 0

0

0

0

0

Issue 02 (2010-04-20)

0

1

0

0

cpu_cnt

0

0

0

0

0

0

0

0

8

7

iq_cnt

0

0

0

0

6

5

4

reserved

1

reserved

reserved

reserved

Name

eq_in_rdy

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
cpuaddr_in_rdy

Bit

Offset Address

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

3

2

1

0

0

0

eq_cnt

0

0

0

0

5-55

Hi3515
Data Sheet

5 ETH

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.
Indicates whether the CPU can configure the frame header address
of the receive queue.
0: The CPU cannot configure the frame header address of the
receive queue.

[25]

RO

1: The CPU can configure the frame header address of the receive
queue.

cpuaddr_in_rdy

Note: The values of cpuaddr_in_rdy and eq_in_rdy are set to 0
during reset. The values, however, are set to 1 by the circuit
immediately after reset. In other words, after reset, the iq address
queue and eq descriptor queue are configurable.
Indicates whether the CPU can configure the frame descriptor
(header address and length) of the transmit queue.
[24]

RO

0: The CPU cannot configure the frame descriptor (header address
and length) of the transmit queue.

eq_in_rdy

1: The CPU can configure the frame descriptor (header address
and length) of the transmit queue.
[23:22]

RO

reserved

Reserved.

[21:16]

RO

cpu_cnt

Header address count for available frames assigned by the CPU to
the receive queue.

[15:14]

RO

reserved

Reserved.

[13:8]

RO

iq_cnt

Used length of the receive queue (0 to iq_len).

[7:6]

RO

reserved

Reserved.

[5:0]

RO

eq_cnt

Used length of the transmit queue (0 to eq_len).

UD_GLB_FC_TIMECTRL
UD_GLB_FC_TIMECTRL is the traffic control time configuration register.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0370

UD_GLB_FC_TIMECTRL

0x07FF_86A0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

5-56

0

0

flux_timer_cfg
0

1

1

1

1

1

1

1

8

7

6

5

4

3

2

1

0

1

0

0

0

0

0

flux_timer_inter
1

1

1

1

Bits

Access

Name

Description

[31:27]

RO

reserved

Reserved.

1

0

0

0

0

1

1

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

1

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

[26:17]

RW

flux_timer_cfg

Traffic limit time interval counter, which is used to count the
frequency division clock generated by flux_timer_inter. If this
counter is set to 0, traffic limit is not performed.

[16:0]

RW

flux_timer_inter

Traffic limit time slot counter, which is used to count the main
clock. The default count is 100,000. For a 100-MHz main clock,
the time slot is 1 ms.

UD_GLB_FC_RXLIMIT
UD_GLB_FC_RXLIMIT is the traffic control limit configuration register.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0374

UD_GLB_FC_RXLIMIT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flux_cfg
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RO

reserved

Reserved.

flux_cfg

Traffic limit upper threshold register. This group of bits is used to
limit the number of frames received by software in the traffic limit
time interval. The frames received after the configured upper
threshold is exceeded are selectively discarded or received
according to the configuration. When this group of bits is all set to
0, it indicates that traffic limit is not performed.

[19:0]

RW

UD_GLB_FC_DROPCTRL
UD_GLB_FC_DROPCTRL is the packet drop control register for traffic limit.
The register does not support soft reset.
Register Name

Total Reset Value

0x0378

UD_GLB_FC_DROPCTRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

2

1

0

flux_
uni
flux_
multi_
broa

Bit

offset Address

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

5-57

Hi3515
Data Sheet

5 ETH

Indicates whether unicast packets are discarded when the upper
threshold of traffic limit is exceeded.
[2]

RW

flux_uni

0: Do not discard unicast packets.
1: Discard unicast packets.
Indicates whether multicast packets are discarded when the upper
threshold of traffic limit is exceeded.

[1]

RW

flux_multi

0: Do not discard multicast packets.
1: Discard multicast packets.
Indicates whether broadcast packets are discarded when the upper
threshold of traffic limit is exceeded.

[0]

RW

flux_broad

0: Do not discard broadcast packets.
1: Discard broadcast packets.

5.6.4 Description of the Statistics Counter Control Registers
UD_STS_PORTCNT
UD_STS_PORTCNT is the port status counter.
The register does not support soft reset.

Bit

Register Name

Total Reset Value

0x0584

UD_STS_PORTCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

rxsof_cnt

Reset 0

5-58

offset Address

0

0

rxeof_cnt
0

0

0

0

0

rxcrcok_cnt

rxcrcbad_cnt

0

0

0

0

0

0

0

0

txsof_cnt
0

0

0

8

txeof_cnt
0

0

0

0

0

7

6

5

4

3

2

1

txcrcok_cnt

txcrcbad_cnt

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RO

rxsof_cnt

Count of the frame headers received by the port.

[27:24]

RO

rxeof_cnt

Count of the frame trailers received by the port.

[23:20]

RO

rxcrcok_cnt

Count of the frames without CRC errors received by the port.

[19:16]

RO

rxcrcbad_cnt

Count of the frames with CRC errors received by the port.

[15:12]

RO

txsof_cnt

Count of the frame headers transmitted by the port.

[11:8]

RO

txeof_cnt

Count of the frame trailers transmitted by the port.

[7:4]

RO

txcrcok_cnt

Count of the frames without CRC errors transmitted by the port.

[3:0]

RO

txcrcbad_cnt

Count of the frames with CRC errors transmitted by the port.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

UD_PORT2CPU_PKTS
UD_PORT2CPU_PKTS is the register for the total number of packets received by the CPU
from the uplink or downlink port.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x05A0

UD_PORT2CPU_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

pkts_cpu
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

WC

pkts_cpu

Total number of the packets received by the CPU port from the
uplink or downlink port. Writing 0 clears this register. Writing 1
has no effect.

UD_CPU2IQ_ADDRCNT
UD_CPU2IQ_ADDRCNT is the register for the count of configuring packet receiving
address queue by the CPU.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x05A4

UD_CPU2IQ_ADDRCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

addr_cpu
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

WC

addr_cpu

Count of configuring packet receiving address queue by the CPU
successfully. Writing 0 clears this register. Writing 1 has no effect.

UD_RX_IRQCNT
UD_RX_IRQCNT is the register for the count of reporting single-packet interrupt by the
uplink or downlink port.
The register does not support soft reset.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-59

Hi3515
Data Sheet

5 ETH

Bit

Offset Address

Register Name

Total Reset Value

0x05A8

UD_RX_IRQCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

pkts_port
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

WC

pkts_port

Count of the frame receive interrupts reported by the uplink or
downlink port. Writing 0 clears this register. Writing 1 has no
effect.

UD_CPU2EQ_PKTS
UD_CPU2EQ_PKTS is the register for the total number of packets transmitted by the CPU to
the uplink or downlink port.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x05AC

UD_CPU2EQ_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

pkts_cpu2tx
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

WC

pkts_cpu2tx

Total number of packets transmitted by the CPU to the uplink or
downlink port. Writing 0 clears this register. Writing 1 has no
effect.

5.6.5 Description of the Statistics Result Registers
Statistics result registers can be configured in two modes: read only and read clear. If
UD_MAC_SET[cntr_rdclr_en] is set to 1, it indicates the read clear mode. If
UD_MAC_SET[cntr_rdclr_en] is set to 0, it indicates the read only mode. The following
registers are described only in read only mode.

UD_RX_DVCNT
UD_RX_DVCNT is the RXDV rising edge count register.
The register does not support soft reset.

5-60

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

5 ETH

offset Address

Register Name

Total Reset Value

0x0600

UD_rx_DVCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rxdvrise
0

0 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rxdvrise

Count of all RXDV rising edges.

0

UD_RX_OCTS
UD_RX_OCTS is the register for the total number of bytes received.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0604

UD_RX_OCTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

ifinoctets

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

ifinoctets

Count of all received bytes, including the bytes in correct frames,
error frames, and preambles. The frames without valid start of
frame delimiters (SFDs) are not counted.

UD_RX_RIGHTOCTS
UD_RX_RIGHTOCTS is the register for the total number of bytes of received correct
packets.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0608

UD_RX_RIGHTOCTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

octets_rx

Reset 0

0

Bits

0

0

0

Access

Issue 02 (2010-04-20)

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-61

Hi3515
Data Sheet

5 ETH

[31:0]

RO

Count of the received bytes, including the bytes in correct frames
and error frames but excluding the bytes in preambles. The frames
without valid SFDs are not counted.

octets_rx

UD_HOSTMAC_PKTS
UD_HOSTMAC_PKTS is the register for the number of packets matching the local MAC
address.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x060C

UD_HOSTMAC_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

local_mac_match

Reset 0

0

0

Bits

0

0

0

Access

[31:0]

RO

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Name

Description

local_mac_match

Count of correct receive frames whose destination MAC address is
the same as the local MAC address, excluding short frames, long
frames, frames with CRC errors, pause frames, and error transmit
frames.

UD_RX_RIGHTPKTS
UD_RX_RIGHTPKTS is the register for the total number of packets received by the port.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0610

UD_RX_RIGHTPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

pkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

pkts

Count of all frames.

0

0

0

0

0

UD_RX_BROADPKTS
UD_RX_BROADPKTS is the register for the number of correct broadcast packets.
The register does not support soft reset.

5-62

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

5 ETH

offset Address

Register Name

Total Reset Value

0x0614

UD_RX_broadpkts

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

broadcastpkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

broadcastpkts

Count of broadcast frames with valid length and without CRC
errors, excluding pause frames and error transmit frames.

UD_RX_MULTPKTS
UD_RX_MULTPKTS is the register for the number of correct multicast packets.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0618

UD_RX_multpkts

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

multicastpkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

multicastpkts

Count of multicast frames with valid length and without CRC
errors, excluding pause frames and error transmit frames.

UD_RX_UNIPKTS
UD_RX_UNIPKTS is the register for the number of correct unicast packets.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x061C

UD_RX_UNIpkts

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

ifinucastpkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

ifinucastpkts

Count of unicast frames with valid length and without CRC errors,
excluding pause frames and error transmit frames.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-63

Hi3515
Data Sheet

5 ETH

UD_RX_ERRPKTS
UD_RX_ERRPKTS is the register for the total number of incorrect packets.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0620

UD_RX_ERRPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

ifinerrors

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

ifinerrors

Count of all error frames, including frames with CRC errors, short
frames, long frames, and error transmit frames.

UD_RX_CRCERR_PKTS
UD_RX_CRCERR_PKTS is the register for the count of CRC errors.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0624

UD_RX_crcerr_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

crcerr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

crcerr

Count of receive frames with valid length (non short and long
frames) but with CRC or alignment errors.

UD_RX_LENERR_PKTS
UD_RX_LENERR_PKTS is the register for the number of packets with invalid length.
The register does not support soft reset.

Bit
Name

5-64

offset Address

Register Name

Total Reset Value

0x0628

UD_RX_LENERR_pkts

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

4

3

2

1

0

abnormalsizepkts

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset 0

0

0

0

0

5 ETH
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

abnormalsizepkts

Count of frames (short frames and long frames) with invalid length
(less than the set minimum valid length or greater than the set
maximum valid length).

UD_RX_OCRCERR_PKTS
UD_RX_OCRCERR_PKTS is the register for the number of packets with odd nibbles and
CRC errors.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x062C

UD_RX_OCRCERR_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3alignmenterr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3alignmenterr

Received frames with odd nibbles and CRC errors.

UD_RX_PAUSE_PKTS
UD_RX_PAUSE_PKTS is the register for the number of received pause packets.
The register does not support soft reset.

Bit

offset Address

Register Name

Total Reset Value

0x0630

UD_RX_PAUSE_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3pause

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3pause

Count of received pause frames.

0

UD_RF_OVERCNT
UD_RF_OVERCNT is the register for the count of RXFIFO overflow events.
The register does not support soft reset.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-65

Hi3515
Data Sheet

5 ETH

Bit

offset Address

Register Name

Total Reset Value

0x0634

UD_RF_OVERCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dropevents

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dropevents

Accumulative count of RXFIFO overflow events during the
reception of frames.

UD_FLUX_TOL_IPKTS
UD_FLUX_TOL_IPKTS is the register for the total number of received packets allowed by
the traffic limit.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0638

UD_flux_TOL_IPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flux_frame_cnt

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

flux_frame_cnt

Total count of correct receive frames allowed by the traffic limit,
excluding short frames, long frames, frames with CRC errors,
pause frames, and error transmit frames.

UD_FLUX_TOL_DPKTS
UD_FLUX_TOL_DPKTS is the register for the total number of packets discarded due to
traffic limit. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x063C

UD_flux_TOL_DPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

flux_drop_cnt

Reset 0

0

Bits

5-66

8

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[31:0]

5 ETH

RO

Count of correct frames discarded due to traffic limit, excluding
short frames, long frames, frames with CRC errors, pause frames,
and error transmit frames.

flux_drop_cnt

UD_VN2OTH_PKTS
UD_VN2OTH_PKTS is the register for the number of packets not forwarded to another port
due to VLAN limit. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0640

UD_VN2OTH_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vlan_not2oth_pkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

vlan_not2oth_pkts

Number of packets not forwarded to another port due to VLAN
limit.

UD_VN2CPU_PKTS
UD_VN2CPU_PKTS is the register for the number of packets not forwarded to the CPU port
due to VLAN limit. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0644

UD_VN2CPU_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vlan_not2cpu_pkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

vlan_not2cpu_pkts

Number of packets not forwarded to the CPU port due to VLAN
limit.

UD_MN2OTH_PKTS
UD_MN2OTH_PKTS is the register for the number of packets not forwarded to another port
due to MAC limit. The register does not support soft reset.
Offset Address

Register Name

Total Reset Value

0x0648

UD_MN2OTH_PKTS

0x0000_0000

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-67

Hi3515
Data Sheet

5 ETH
Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

mac_not2oth_pkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

mac_not2oth_pkts

Number of packets not forwarded to another port due to MAC
limit.

UD_MN2CPU_PKTS
UD_MN2CPU_PKTS is the register for the number of packets not forwarded to the CPU port
due to MAC limit. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x064C

UD_MN2CPU_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

mac_not2cpu_pkts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

mac_not2cpu_pkts

Number of packets not forwarded to the CPU port due to MAC
limit.

UD_TX_PKTS
UD_TX_PKTS is the register for the total number of packets transmitted successfully. The
register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0780

UD_TX_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

pkts_tx

Reset 0

5-68

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

pkts_tx

Count of all configured transmit frames, excluding the frames
discarded due to timeout and the transmit frames whose length of
UD_GLB_EQFRM_LEN is not within valid range.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

UD_TX_BROADPKTS
UD_TX_BROADPKTS is the register for the number of broadcast packets transmitted
successfully. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0784

UD_TX_BROADPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

broadcastpkts_tx

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

broadcastpkts_tx

Count of broadcast frames transmitted successfully (excluding
retransmission).

UD_TX_MULTPKTS
UD_TX_MULTPKTS is the register for the number of multicast packets transmitted
successfully. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0788

UD_TX_MULTPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

multicastpkts_tx

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

multicastpkts_tx

Count of multicast frames transmitted successfully (excluding
retransmission).

UD_TX_UNIPKTS
UD_TX_UNIPKTS is the register for the number of unicast packets transmitted successfully.
The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x078C

UD_TX_UNIPKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

ifoutucastpkts_tx

Reset 0

0

Bits

0

0

0

Access

Issue 02 (2010-04-20)

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-69

Hi3515
Data Sheet

5 ETH

[31:0]

RO

Count of unicast frames transmitted successfully (excluding
retransmission).

ifoutucastpkts_tx

UD_TX_OCTS
UD_TX_OCTS is the register for the total number of transmitted bytes. The register does not
support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0790

UD_TX_OCTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

octets_tx

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

octets_tx

Total count of transmitted bytes, including the bytes of retransmit
frames, correct frames, and error frames, but excluding the
preamble bytes.

UD_TX_PAUSE_PKTS
UD_TX_PAUSE_PKTS is the register for the number of transmitted pause frames. The
register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x0794

UD_TX_PAUSE_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3outpause

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3outpause

Count of transmitted pause frames.

UD_TX_RETRYCNT
UD_TX_RETRYCNT is the register for the total count of retransmission. The register does
not support soft reset.

Bit

5-70

Offset Address

Register Name

Total Reset Value

0x0798

UD_TX_RETRYCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

5 ETH

Name

retry_times_tx

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

retry_times_tx

Total count of retransmissions of transmit frames.

0

0

0

0

0

UD_TX_COLCNT
UD_TX_COLCNT is the register for the total count of collisions. The register does not
support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x079C

UD_TX_COLCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

collisions

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

collisions

Count of collisions.

0

0

0

0

0

UD_TX_LC_PKTS
UD_TX_LC_PKTS is the register for the number of packets with late collision. The register
does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x07A0

UD_TX_LC_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3latecol

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3latecol

Count of packets with late collision.

UD_TX_COLOK_PKTS
UD_TX_COLOK_PKTS is the register for the number of packets transmitted successfully
with collisions. The register does not support soft reset.
Offset Address

Register Name

Total Reset Value

0x07A4

UD_TX_COLOK_PKTS

0x0000_0000

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5-71

Hi3515
Data Sheet

5 ETH
Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3col_ok

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3col_ok

Count of packets transmitted successfully with collisions.

UD_TX_RETRY15_PKTS
UD_TX_RETRY15_PKTS is the register for the number of packets discarded due to more
than 15 times of retransmission. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x07A8

UD_TX_RETRY15_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3excessivecol

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3excessivecol

Count of the packets discarded due to more than 15 times of
retransmission.

UD_TX_RETRYN_PKTS
UD_TX_RETRYN_PKTS is the register for the number of packets with the count of
collisions being equal to the threshold. The register does not support soft reset.

Bit

Offset Address

Register Name

Total Reset Value

0x07AC

UD_TX_RETRYN_PKTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dot3colcnt

Reset 0

5-72

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

dot3colcnt

Count of packets with the count of collisions being equal to the
threshold. This register is set by UD_MAC_SET[colthreshold].

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
6 Video Interface ...........................................................................................................................6-1
6.1 VIU................................................................................................................................................................6-1
6.1.1 Overview..............................................................................................................................................6-1
6.1.2 Features................................................................................................................................................6-1
6.1.3 Signal Description................................................................................................................................6-2
6.1.4 Function Description............................................................................................................................6-4
6.1.5 Operating Mode .................................................................................................................................6-19
6.1.6 Register Summary..............................................................................................................................6-23
6.1.7 Register Description...........................................................................................................................6-26
6.2 VOU ............................................................................................................................................................6-74
6.2.1 Overview............................................................................................................................................6-74
6.2.2 Features..............................................................................................................................................6-74
6.2.3 Signal Description..............................................................................................................................6-75
6.2.4 Function Description..........................................................................................................................6-76
6.2.5 Operating Mode .................................................................................................................................6-81
6.2.6 Register Summary..............................................................................................................................6-85
6.2.7 Register Description...........................................................................................................................6-98

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 6-1 Functional block diagram of the VIU ...............................................................................................6-1
Figure 6-2 Typical application of the VIU..........................................................................................................6-4
Figure 6-3 Vertical timing of the 525-line 60 fields/s video system...................................................................6-7
Figure 6-4 Vertical timing of the 625-line 50 fields/s video system...................................................................6-7
Figure 6-5 2-Path BT.656 TDM timing ..............................................................................................................6-8
Figure 6-6 4-Path BT.656 TDM timing ..............................................................................................................6-8
Figure 6-7 Horizontal input timing of the HD interface.....................................................................................6-9
Figure 6-8 Vertical input timing of the HD interface..........................................................................................6-9
Figure 6-9 ITU-R BT.601 horizontal timing ....................................................................................................6-10
Figure 6-10 NTSC vertical sync timings..........................................................................................................6-10
Figure 6-11 PAL vertical sync timings ............................................................................................................. 6-11
Figure 6-12 DC horizontal timing ....................................................................................................................6-12
Figure 6-13 DC vertical pulse timing ...............................................................................................................6-12
Figure 6-14 DC vertical line valid timing ........................................................................................................6-12
Figure 6-15 Horizontal sync timing of the 16-bit sync parallel interface.........................................................6-13
Figure 6-16 Vertical sync timing of the 16-bit sync parallel interface..............................................................6-13
Figure 6-17 Relationships between the active video area and the horizontal/vertical blanking areas..............6-14
Figure 6-18 YCbCr 4:2:2 co-sited sampling format .........................................................................................6-14
Figure 6-19 YCbCr 4:2:2 interspersed sampling format ..................................................................................6-15
Figure 6-20 YCbCr4:2:2 storage mode ............................................................................................................6-16
Figure 6-21 Big endian and little endian storage modes ..................................................................................6-16
Figure 6-22 Package storage mode...................................................................................................................6-17
Figure 6-23 8-bit raw data storage mode..........................................................................................................6-17
Figure 6-24 Position of the data of blanking areas ...........................................................................................6-18
Figure 6-25 Mappings between the external ports and internal channels of the VIU.......................................6-19
Figure 6-26 Clock configuration of the VIU ....................................................................................................6-20

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Figures

Figure 6-27 Workflow of the VIU ....................................................................................................................6-21
Figure 6-28 Software configuration process ....................................................................................................6-22
Figure 6-29 Process of reading the luminance statistical value through software............................................6-23
Figure 6-30 Parameter diagram of the captured image.....................................................................................6-35
Figure 6-31 Sequence of storing blanking area data in registers ......................................................................6-63
Figure 6-32 Multiplexing relationship between VOU interfaces .....................................................................6-77
Figure 6-33 Processing the pixel alpha data of a graphics layer.......................................................................6-79
Figure 6-34 Three sets of coordinates of a video layer.....................................................................................6-80
Figure 6-35 Process of configuring surface registers (recommended) .............................................................6-82
Figure 6-36 Frame update mode of surface registers .......................................................................................6-83
Figure 6-37 Field update mode of surface registers .........................................................................................6-83
Figure 6-38 Updating the on-chip coefficients .................................................................................................6-85

iv

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Tables

Tables
Table 6-1 Signals of the VI interface ..................................................................................................................6-2
Table 6-2 Format of the ITU-R BT.656 YCbCr 4:2:2 line data ..........................................................................6-5
Table 6-3 Formats of SAV and EAV...................................................................................................................6-5
Table 6-4 Valid values of SAV and EAV ............................................................................................................6-5
Table 6-5 ITU-R BT.656 error-correcting codes.................................................................................................6-6
Table 6-6 Formats of SAV and EAV with channel IDs.......................................................................................6-9
Table 6-7 Summary of VIU registers (base address: 0x1010_0000) ................................................................6-23
Table 6-8 Signals of the VOU digital output interface .....................................................................................6-76
Table 6-9 Signals of the VOU analog output interface .....................................................................................6-76
Table 6-10 Summary of VOU registers (base address: 0x2013_0000).............................................................6-85
Table 6-11 Variables in the offset addresses of VOU registers .........................................................................6-97

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

6 Video Interface

6

Video Interface

6.1 VIU
6.1.1 Overview
The video input unit (VIU) of the Hi3515 receives video data through the BT.656/601
interface and the digital camera (DC) interface, and then stores the data in a specified memory.
During this process, the VIU supports the 1/2 horizontal down scaling and chrominance
resampling for the video graphic data. Figure 6-1 shows the functional block diagram of the
VIU.
Figure 6-1 Functional block diagram of the VIU
BT.656

Horizontal
filtering

FIFO
buffer

Data
output
control

Bus interface

Digital
camera

Input interface

BT.601

6.1.2 Features
The features of the VIU are as follows:
z

Supports four external video ports.

z

Processes the videos of eight channels inside.

z

Each port supports standard BT.656 video inputs.

z

Port 0 and port 2 support 2-channel or 4-channel time-division-multiplexed (TDM) video
inputs.

z

Port 1 and port 3 support 2-channel TDM video inputs (note that port 0 and port 2 must
be in non-4-channel TDM mode in this case).

z

Each port supports interlaced and progressive input modes.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-1

Hi3515
Data Sheet

6 Video Interface
z

Port 0 and port 2 support BT.601 video inputs.

z

Port 0 and port 2 support the connection to the DC interface (up to 3 megapixels).

z

Ports 0–3 support the BT1120 high-definition (HD) interface timing.

z

Ports 0–3 support the 16-bit synchronous interface in HD mode.

z

Receives data by fields or by frames.

z

Supports input data in four sequences: CbYCrY, CrYCbY, YCbYCr, and YCrYCb4.

z

Supports 1/2 horizontal down scaling.

z

Supports the conversion from the co-sited format to interspersed format during
horizontal chrominance resampling.

z

Supports configurable level-2 bus priorities for each channel.

z

Obtains data in a specified window.

z

Supports image block masking.

z

Supports the following output storage modes:
−

package YCbCr 4:2:2 mode

−

SPYCbCr 4:2:0 and SPYCbCr 4:2:2 mode

z

Supports the raw data storage mode during data output, for the HD Y/C separation input
mode only.

z

Supports statistics on image luminance and luminance stretch.

z

Provides an advance high-performance bus (AHB) master interface through which the
data is written to the double data-rate (DDR) directly.

z

Provides an AHB slave interface through which the configuration and status information
about VIU registers is read.

6.1.3 Signal Description
Table 6-1 shows the external input or output signals of the VI interface.
Table 6-1 Signals of the VI interface

6-2

Signal Name

Direction

Description

Related
Pins

VI_DATAIN_P0[7:0]

I

Input data of video port 0

VI0DAT7–
VI0DAT0

VI_DATAIN_P1[7:0]

I

Input data of video port 1

VI1DAT7–
VI1DAT0

VI_DATAIN_P2[7:0]

I

Input data of video port 2

VI2DAT7–
VI2DAT0

VI_DATAIN_P3[7:0]

I

Input data of video port 3

VI3DAT7–
VI3DAT0

CLK_VI_P0

I

Input clock of video port 0

VI0CK

CLK_VI_P1

I

Input clock of video port 1

VI1CK

CLK_VI_P2

I

Input clock of video port 2

VI2CK

CLK_VI_P3

I

Input clock of video port 3

VI3CK

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Signal Name

Direction

Description

Related
Pins

VI_P0_HSYNC_VD

I

Horizontal sync pulse or data
valid signal of port 0. The register
VIn_PORT_CFG[port_hsync]
controls whether this signal is a
sync pulse signal or a data valid
signal.

VI0HS

port_hsync = 0: data valid level.
VIn_PORT_CFG[port_hsync_ne
g] controls whether the level is
active high or active low.
port_hsync = 1: sync pulse.
VIn_PORT_CFG[port_hsync_ne
g] controls whether the pulse is
positive or negative.
VI_P2_HSYNC_VD

I

Horizontal sync pulse or data
valid signal of port 2. The register
VIn_PORT_CFG[port_hsync]
controls whether this signal is
sync pulse signal or a data valid
signal.

VI2HS

port_hsync = 0: data valid level.
VIn_PORT_CFG[port_hsync_ne
g] controls whether the level is
active high or active low.
port_hsync = 1: sync pulse.
VIn_PORT_CFG[port_hsync_ne
g] controls whether the pulse is
positive or negative.
VI_P0_VSYNC_FIELD

I

Vertical sync pulse or field
indicator signal of port 0. The
register
VIn_PORT_CFG[port_vsync]
controls whether this signal is a
sync pulse signal or a field
indicator signal.

VI0VS

port_vsync = 0: field indicator
signal.
VIn_PORT_CFG[port_vsync_ne
g] controls whether the level is
active high or active high. Both
high level and low level can
indicate odd field or even field.
port_hsync = 1: sync pulse.
VIn_PORT_CFG[port_vsync_ne
g] controls whether the pulse is
positive or negative.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-3

Hi3515
Data Sheet

6 Video Interface

Signal Name

Direction

Description

Related
Pins

VI_P2_VSYNC_FIELD

I

Vertical sync pulse or field
indicator signal of port 2. The
register
VIn_PORT_CFG[port_vsync]
controls whether this signal is a
sync pulse signal or a field
indicator signal.

VI2VS

port_vsync = 0: field indicator
signal.
VIn_PORT_CFG[port_vsync_ne
g] controls whether the level is
active high or active high. Both
high level and low level can
indicate odd field or even field.
port_hsync = 1: sync pulse.
VIn_PORT_CFG[port_vsync_ne
g] controls whether the pulse is
positive or negative.

6.1.4 Function Description
6.1.4.1 Typical Application
Figure 6-2 shows the typical application of the VIU.
Figure 6-2 Typical application of the VIU
ARM

DDRC
ARM AHB
AXI
Slave

Master

Video input

The VIU is a unit that collects video inputs in multiple timings and then stores video data in
the DDR. By using different function modes configured by the system, the VIU can be
connected to different external VI interfaces, thus supporting multiple external input devices.

6-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

6.1.4.2 Function Principle
ITU-R BT. 656 YCbCr4:2:2
1.

Horizontal timings

Based on the ITU-R BT.656 Recommendation, sync signals are integrated in data streams.
The special bytes start of active video (SAV) and end of active video (EAV) indicate the start
and end of valid line data respectively. In a video stream, the timing reference code consisting
of FF 00 00 (FF and 00 are the reserved values of encoded image data instead of image data)
indicates whether its adjacent byte is SAV or EAV. Table 6-2 shows the format of the line data
stream in the ITU-R BT.656 Recommendation.
Table 6-2 Format of the ITU-R BT.656 YCbCr 4:2:2 line data
Timing Reference
Code

Line Blanking
Area

FF

80

00

00

EAV

10

…

80

Timing
Reference Code

YCbCr 4:2:2 with 720 Valid Pixels

FF

Cb0

10

00

00

SAV

Y0

Cr0

Y1

…

Cr718

Y719

The difference between the SAV and EAV depends on the special bit H. Both the SAV and
EAV include vertical blanking bit V and field indicator bit F. For details about the SAV and
EAV, see Table 6-3.
Table 6-3 Formats of SAV and EAV
Bit7

Bit6(F)

Bit5(V)

Bit4(H)

Bit[3:0](P3–P0)

Fixed
value 1

Field indicator
bits

Vertical blanking bits

SAV: H = 0

Check bits

VBI: V = 1

EAV: H = 1

1st field: F = 0

Active video: V = 0

2nd field: F = 1

The ITU-R BT.656 Recommendation defines valid SAV and EAV by using eight valid
reserved bits. Four check bits are used to correct 1-bit error and detect 2-bit errors. Table 6-4
shows the valid values of SAV and EAV.
Table 6-4 Valid values of SAV and EAV
Code

Binary Value

Field Number

Vertical Blanking
Interval

SAV

10000000

1

–

EAV

10011101

1

–

SAV

10101011

1

Yes

EAV

10110110

1

Yes

SAV

11000111

2

–

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-5

Hi3515
Data Sheet

6 Video Interface

Code

Binary Value

Field Number

Vertical Blanking
Interval

EAV

11011010

2

–

SAV

11101100

2

Yes

EAV

11110001

2

Yes

The four valid reserved bits P0, P1, P2, and P3 are used to correct errors. They are determined
by the bits F, V, and H. Table 6-5 shows the ITU-R BT.656 error-correcting codes.
Table 6-5 ITU-R BT.656 error-correcting codes
F

V

H

P3

P2

P1

P0

0

0

0

0

0

0

0

0

0

1

1

1

0

1

0

1

0

1

0

1

1

0

1

1

0

1

1

0

1

0

0

0

1

1

1

1

0

1

1

0

1

0

1

1

0

1

1

0

0

1

1

1

0

0

0

1

Where,
P0 = F^V^H
P1 = F^V
P2 = F^H
P3 = V^H

2.

Vertical timings

The positions of the vertical timings are determined by bit F and bit V of the timing reference
codes SAV and EAV. Figure 6-3 shows the vertical timing of the 525-line video system and
Figure 6-4 shows the vertical timing of the 625-line video system.

6-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-3 Vertical timing of the 525-line 60 fields/s video system
Line 4
Blanking

Field 1
F=0
odd

Line 1
(V = 1)

Line 21
(V = 0)
Field 1 active video

Line 264
(V = 1)

Line 266
Blanking

Field 2
F=1
even

Line 283
(V = 0)
Field 2 active video

Line 525
(V = 0)

Line 3
H=1
EAV

H=0
SAV

Figure 6-4 Vertical timing of the 625-line 50 fields/s video system
Line 1
Blanking

Line 1
(V = 1)
Line 23
(V = 1)

Field 1
F=0
odd

Field 1 active video
Line 311
(V = 1)

Line 313
Blanking

Line 336
(V = 1)

Field 2
F=1
even

Field 2 active video
Line 624
(V = 1)
Blanking

Line 625
H=1
EAV

H=0
SAV

Line 625
(V = 1)

The VIU identifies vertical timings based on SAV and EAV regardless of the lines.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-7

Hi3515
Data Sheet

6 Video Interface

Multiple-Path BT.656 TDM Timings
Besides the standard 1-path BT.656 timing, the VIU also supports the 2-path or 4-path BT.656
timing in which data is transferred through one port. See Figure 6-5 and Figure 6-6. The data
of each path is independent, but the data is time-division-multiplexed and then transmitted to
the VIU through a port.
Figure 6-5 2-Path BT.656 TDM timing

CLK_VI
(54MHz)
CH0

FF
Cb40

CH1
VI_DATAIN

FF

CLK_VI
(54MHz)
CH0

Y1

Cb40

Y40
Y40

00

Y1

XY
Cr40

00

Cr40

Y2

Cb2

CH1
VI_DATAIN

00

00

Y43

Cb44

Y43

Cb2 Cb44

XY

Y2

Y41

Cb42

Y41

Cb0 Cb42

Cr2
Y44
Y44

Cr44

Y42
Y0

Y45
Y3

Cr0
Cr42

Y42

Cr0

Cb4

Y3
Cr44

Cr2

Y0

Cb0

Y45

Y4
Cb46

Cb4

Cr42

Cb46

Y46
Y4

Y46

Figure 6-6 4-Path BT.656 TDM timing
CLK_VI
(54/108MHz)
CH0

FF

CH1

00
Cb38

CH2

Y38
Cr20

FF

Cb0
Cr38

Y22
Y82

CH3
VI_DATAIN

00

Cb38 Cr20 Y82

Y40
Cb24

Cb84
00

Y38

Y22

Cb84

Y84
00

Cr38 Cb24 Y84

Cb0

Y40

CLK_VI
(54/108MHz)
CH0

Y0

CH1
CH2

Cb42
Y24

6-8

Y24

Cb1
Y42

Cr24
Cr84

CH3
VI_DATAIN

Cr0

Cr84

Cb42 Cr24

Cb28

Y26
Y86

Y0

Cr42

Y86

Cb88
Cr0

Y42

Y26 Cb88

Y88
Cb1 Cr42 Cb28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Y88

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

When the input data is in the TDM format, the two low error-correcting bits of SAV and EAV
indicate that the bit VI_CH_CFG[correct_en] must be set to 0 during input of the IDs of data
channels. Table 6-6 shows the formats of SAV and EAV with channel IDs.
Table 6-6 Formats of SAV and EAV with channel IDs
Bit[7]

Bit[6]

Bit[5]

Bit[4]

Bit[3]

Bit[2]

Bit[1:0]

1

F

V

H

x

x

Channel
ID.

BT 1120 (HD) Interface Timings
The VIU supports the HD interface timings with Y/C separation inputs. In this case, two ports
are required. One is used to transfer luminance and the other is used to transfer chrominance,
as shown in Figure 6-7 and Figure 6-8.
Figure 6-7 Horizontal input timing of the HD interface
CLK_VI_P0
(74.25MHz)
VI_DATA
IN_P0(Y)

FF

00

00

XY

Y0

Y1

Y2

Y3

Y4

VI_DATA
IN_P0(C)

FF

00

00

XY

Cb0

Cr0

Cb2

Cr2

Cb4

Figure 6-8 Vertical input timing of the HD interface
Line 0
(V = 1)
Blanking

Line 30
(V = 0)

Active video

H=1
EAV

Issue 02 (2010-04-20)

H=0
SAV

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Line 749
(V = 0)

6-9

Hi3515
Data Sheet

6 Video Interface

ITU-R BT.601 YCbCr4:2:2
1.

Horizontal timings

The horizontal pulse indicates the start of a new line, as shown in Figure 6-9. After hoff clock
cycles, an input signal passes the line front blanking area and goes to the line valid data area.
The value of hoff is configurable, that is, it is 122 x 2 in phase alternating line (PAL) 525-line
system and 132 x 2 in National Television Systems Committee (NTSC) 625-line system. After
act_width clock cycles, the input signal passes the line valid data area and goes to the line
back blanking area. The value of act_width is also configurable, that is, its typical value is 720
or 704. In addition, the horizontal sync polarity is configurable.
Figure 6-9 ITU-R BT.601 horizontal timing
VI_HYSNC_VD
hoff
VI_DATAIN_
PX[7:0]

Cb0

Y0

Cr0

Y1

...

Cb718 Y718 Cr718 Y719

act_width

2.

Vertical timings

Based on the ITU-R BT.601 recommendation, the signals VSYNC and FIELD are vertical
sync signals. The VSYNC pulse or FIELD transition indicates the start of the odd field or
even field. The VIU supports two types of vertical synchronization.
Figure 6-10 shows the NTSC vertical sync timing of the VIU (625 lines) and Figure 6-11
shows the PAL vertical sync timing of the VIU (525 lines). VI_HSYNC_VD indicates the
horizontal sync pulse. When VSYNC = 1, VI_VSYNC_FIELD indicates the vertical sync
pulse; when VSYNC = 0, VI_VSYNC_FIELD indicates the field sync signal.NTSC vertical
sync timings
3

4

5

6

7

8

9

VI_HSYNC_VD
VI_VSYNC_FILED
(VSYNC=1)
VI_VSYNC_FILED
(VSYNC=0)

NTSC vertical sync timing (odd field)

264

265

266

267

268

269

270

VI_HSYNC_VD
VI_VSYNC_FILED
(VSYNC=1)
VI_VSYNC_FILED
(VSYNC=0)

6-10

NTSC vertical sync timing (even field)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

In NTSC interlaced scanning mode, the level of the vertical sync signal in field 1 becomes
low at the start of line 4, remains low for three consecutive lines, and then becomes high at
the start of line 7. The VIU receives 240-line data from line 22 to line 261. The level of the
vertical sync signal in the second field becomes low in the middle of line 266, remains low for
three consecutive lines, and then becomes high in the middle of line 269. The VIU receives
240-line data from line 285 to line 524.
Figure 6-11 PAL vertical sync timings
625

1

2

3

4

5

6

VIHS
VIVS
(VSYNC=1)
VIVS
(VSYNC=0)

PAL vertical sync timing (odd field)
311

312

313

314

315

316

317

VIHS
VIVS
(VSYNC=1)
VIVS
(VSYNC=0)

PAL vertical sync timing (even field)

In PAL interlaced scanning mode, the level of the vertical sync signal in field 1 becomes low
at the start of line 1, remains low for 2.5 consecutive lines, and then becomes high in the
middle of line 3. The VIU receives 288-line data from line 24 to line 310. The level of the
vertical sync signal in the second field becomes low in the middle of line 313, remains low for
2.5 consecutive lines, and then becomes high at the start of line 316. The VIU receives 288line data from line 336 to line 623.
The preceding timings are typical BT.601 vertical timings. The following parameters are
configurable: the number of lines from the start of the field to the valid line, the number of
field valid lines, and the polarity of the vertical sync timing.

DC Interface Timings
The VIU supports the DC data transfer of up to QXGA (2048 x 1536) resolution.
1.

Horizontal timing

When a DC is connected to the VIU, VI_HSYNC_VD indicates the data valid signal. The
polarity of this signal is configurable. Figure 6-12 shows the horizontal timing.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-11

Hi3515
Data Sheet

6 Video Interface

Figure 6-12 DC horizontal timing
VI_HSYNC_VD
VI_DATAI
N_Px[7:0]

INVALID DATA

2.

Cb0

Y0

Cr0

...

Y1

Yn

INVALID DATA

Cb0

Y0

Vertical timing

The VIU supports the pulse vertical timing and line valid vertical timing, as shown in Figure
6-13 and Figure 6-14. In addition, the vertical sync polarity is configurable.
Figure 6-13 DC vertical pulse timing
One frame
VI_VSYNC_FILED
VI_HSYNC_VD

VI_DATAI
N_Px[7:0]

row0

row1

last row

Frame timing diagram

Figure 6-14 DC vertical line valid timing
One frame
VI_VSYNC_FILED
VI_HSYNC_VD
VI_DATAI
N_Px[7:0]

row0

row1

last row

Frame timing diagram

The VIU processes the preceding two timings in the same way. To be specific, the VIU
considers the start of a frame after it detects a rising edge or a falling edge, and then detects
the data valid signal to check whether the current data is valid.

16-Bit Sync Interface
The VIU supports the 16-bit parallel interface with Y/C separate inputs and separate sync
signals. Port 0 and port 1 belong to the same group and sync signals are from port 0. Port 2
and port 3 also belong to the same group and sync signals are from port 2.
1.

6-12

Horizontal timing

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-15 shows the horizontal sync timing of the 16-bit sync parallel interface.
Figure 6-15 Horizontal sync timing of the 16-bit sync parallel interface
act_hoff

act_width

CLK_VI
VI_HSYNC_VD
act_hoff and act_width are configurable. For details, see the description of VI_Px_HSYNC. vi_px_hsync_vd is also configurable.
For details, see the description of VIn_PORT_CFG.

2.

Vertical timing

Figure 6-16 shows the vertical sync timing of the 16-bit sync parallel interface.
Figure 6-16 Vertical sync timing of the 16-bit sync parallel interface
act1_voff

act_height

VI_HSYNC_VD
VI_VSYNC_FILED

act1_voff and act1_height are configurable. For details, see the description of the register VI_Px_VSYNC1. vi_px_vsync_field is
also configurable. For details, see the description of the register VIn_PORT_CFG.

Active Video Range
As shown in Figure 6-17, an active video starts from the end of the horizontal blanking area
and the vertical blanking area. The actual view range, however, is within the active video
range. That is, compared with the boundary of the active video, the boundary of the actual
view is shrunk; therefore, the boundary effect is avoided.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-13

Hi3515
Data Sheet

6 Video Interface

Figure 6-17 Relationships between the active video area and the horizontal/vertical blanking areas

frame_oddline_load

odd_line_start
start_y

pixel_start

Active video

Captured video

height

start_x

Field 1

frame_evenline_load

even_line_start

Field 2

frame_height

width

Active video
Captured video

frame_width

For the definitions of related parameters, see the description of the register VIn_CAP_START.

Image Data Collection
The VIU is mainly used to collect video data streams and store the streams in the DDR. In
addition, the VIU supports the chrominance conversion from the co-sited format to
interspersed format in the horizontal direction and 1/2 down scaling of luminance and
chrominance.
1.

Two types of YCbCr 4:2:2 chrominance sampling modes

Figure 6-18 and Figure 6-19 show the horizontal chrominance relationship in co-sited and
interspersed formats respectively.
Figure 6-18 YCbCr 4:2:2 co-sited sampling format

Chrominance (CbCr)
sample points

6-14

Luminance (Y)
sample points

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-19 YCbCr 4:2:2 interspersed sampling format

Chrominance (CbCr)
sample points

2.

Luminance (Y)
sample points

Conversion from the co-sited format to the interspersed format

The inputs of the BT.656/601 and YCbCr 4:2:2 standard interface are co-sited data. The VIU
supports data collection and storage in the co-sited format and data storage in the interspersed
format.
z

Co-sited sampling
In this format, chrominance and luminance components of input images are written to
the memory, but the sampling positions of chrominance and luminance components are
not changed. Therefore, the sampling chrominance and luminance components of
buffered images are the same as those in Figure 6-18. That is, the sampling format is still
the YCbCr 4:2:2 co-sited format.

z

Interspersed sampling

In this format, chrominance signals are resampled, which causes the sampling chrominance
component to be located in the middle of the chrominance components, as shown in Figure 619.
3.

Horizontal 1/2 down scaling

When an input image is 1/2 scaled-down in the horizontal direction, the VIU reduces the
horizontal resolution (Y, Cb, and Cr) of the image by half.
z

For the chrominance component (Y), 8-order FIR filter is used to carry out interpolation
filtering.

z

For the luminance components (Cb and Cr), 4-order FIR filter is used to carry out
interpolation filtering.

During the process of horizontal 1/2 down scaling, the sampling format can be converted from
the co-sited format into the interspersed format at the same time.

Image Storage Modes
The image storage modes are as follows:
z

Semi-planar YCbCr storage mode

z

Package storage mode

z

Raw data storage mode

1.

Semi-planar YCbCr storage mode

After setting a view area, the system stores the read data in semi-planar mode. That is, the
luminance component and the chrominance component are stored in the luminance space and
chrominance space of the DDR respectively.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-15

Hi3515
Data Sheet

6 Video Interface
z

For one line, the luminance component and chrominance component are stored
continuously.

z

For two continuous lines, the components are stored based on the value of the parameter
offset. This parameter defines the storage stride between the start of two lines. The
storage locations in the DDR of the luminance component and chrominance component
depend on the start address base_addr. Figure 6-20 shows the mode of storing the
YCbCr4:2:2 data captured by the VIU.

Figure 6-20 YCbCr4:2:2 storage mode
Width
luma_base_addr

Y0

Y1

....

Y2

Yw

Yw-1

luma_line_offset
Height

....
Width
chroma_base_addr
Cr0

Cb0

....

Cr2

Crw-1 Cbw-1

chroma_line_offset
Height

....
In the DDR, data is stored in the unit of word (32 bits). A 32-bit word consists of four 8-bit
pixels in big endian mode or little endian mode. Figure 6-21 shows the big endian and little
endian storage modes by taking the luminance component and chrominance component as
examples.
Figure 6-21 Big endian and little endian storage modes
31
Little endian

Y3

Y2

Y1

Big endian

Y0

Y1

Y2

word
Luminance

6-16

0
Y0
Y3

31

0

Cb1

Cr1

Cb0

Cr0

Cr0

Cb0

Cr1

Cb1

word
Chrominance

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

The VIU supports the DDR that stores data in little endian mode only.
2.

Package storage mode

Figure 6-22 shows how to store 4:2:2 Y/Cb/Cr data in package storage mode.
Figure 6-22 Package storage mode
Width
base_addr
Cb0

Y0

Cr0

....

Y1

Crw-1 Yw

line_offset
Height

....

3.

Raw data storage mode

In raw data storage mode, data is stored in a word in sequence. In the DDR, a word consists of
four 8-bit pixels. Figure 6-23 shows the storage mode of 8-bit data.
Figure 6-23 8-bit raw data storage mode
Width
base_addr
D0

D1

D2

....

Dw-1

Dw

line_offset
Height

....

Luminance Statistics
In the VIU, the luminance statistics refers to the estimation of the average luminance of the
current image, which is used to check whether the cameras are shielded. The luminance
statistics is collected as follows: The input luminance components are accumulated through a
32-bit up counter. After an image is received, the accumulated value is output.

Capturing the Data of Blanking Areas
In most cases, the VIU provides data value-added services by transferring 1-line or 2-line data
through blanking areas. For example, the VIU provides the function of capturing the data of
blanking areas. Users need to configure the position of the data of blanking areas, as shown in
Figure 6-24.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-17

Hi3515
Data Sheet

6 Video Interface

Figure 6-24 Position of the data of blanking areas

anc_vos

anc_hos

anc_size

anc_loc=2'b00
Front blanking area

Active image area

Odd field

anc_loc=2'b01
Back blanking area

anc_hos
anc_vos

Horizontal
front
blanking

anc_size

Horizontal
back
blanking

anc_loc=2'b10
Front blanking area

Active image area

Even field

anc_loc=2'b11
Back blanking area

Mappings Between External Ports and Internal Channels
The VIU provides four external ports and eight internal data processing channels. The ports
are used to receive data and the channels are used to process the input data of the ports. Figure
6-25 shows the relationships between the external ports and internal channels.

6-18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-25 Mappings between the external ports and internal channels of the VIU
PORT0

CH0

CH1
MCHD
CH2

PORT2

CH4

Bus interface

PORT1

CH3

CH5
MCHD
CH6
PORT3

CH7

When the video data of ports is input in non-TDM mode, the data is processed through the
uppermost channels. To be specific, the input data of port 0 is processed through channel 0;
the input data of port 1 is processed through channel 2; the input data of port 2 is processed
through channel 4; the input data of port 3 is processed through channel 6. When the video
data is input in TDM mode, the MCHD module demultiplexes the data of ports to
corresponding channels based on the TDM mode of the port and channel IDs. Port 0 and port
2 support 2-channel or 4-channel TDM video inputs; port 1 and port 3 support 2-channel
TDM video inputs. When port 0 works in 4-channel TDM mode, port 1 is invalid; when port
2 works in 4-channel TDM mode, port 3 is invalid. When the data is input in Y/C separation
mode, the data of port 0 is processed through channel 0, the data of port 1 is processed
through channel 2, the data of port 2 is processed through channel 4, and the data of port 3 is
processed through channel 6.

6.1.5 Operating Mode
6.1.5.1 Pin Multiplexing Configuration
VI pins are multiplexed with video output (VO) and general-purpose input/output (GPIO)
pins. You can set the pins to VI pins by configuring the IO config registers reg0 to reg27.

6.1.5.2 Soft Reset
The soft reset of port 0 to port 3 of the VIU is controlled through SC_PERCTRL8 bit[25:22],

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-19

Hi3515
Data Sheet

6 Video Interface

whereas the soft reset of the VIU bus is controlled through SC_PERCTRL8 bit[21]. For
details, see the description of SC_PERCTRL8 in chapter 3 "System Controller."

6.1.5.3 Clock Configuration
1.

The VIU clocks are configured through SC_PERCTRL9 bit[13:4]. This section describes
the definitions of the bits of SC_PERCTRL9 and the way of configuring the bits:

z

vi1_vi0_sel and vi3_vi2_sel are port clock select bits that are used to select the clock
sources of port 1 and port 3. When port 0 and port 1 work in Y/C separation input mode
or port 0 works in 4-channel TDM mode, you need to set the clock source of port 1 to
port 0, that is, set vi1_vi0_sel to 1. When port 2 and port 3 work in Y/C separation input
mode or port 2 works in 4-channel TDM mode, you need to set the clock source of port 3
to port 2, that is, set vi3_vi2_sel to 1

z

vi0div_sel, vi1div_sel, vi2div_sel, and vi3div_sel are frequency-division clock control
bits. When the input mode of corresponding ports is TDM input mode, these bits are
used to configure frequency dividers for internal channels. In 4-channel TDM mode, set
the frequency divider to 4; in 2-channel TDM mode, set the frequency divider to 2.

2.

Figure 6-26 shows the clock configuration of the VIU.

Figure 6-26 Clock configuration of the VIU
vi0div_sel
clk for port0

CLK_VI_PO

clk for ch0 and
ch1
vi1div_sel

vi1_vi0_sel
clk for port1

clk for ch2 and
ch3

CLK_VI_P1
vi2div_sel
clk for port2

CLK_VI_P2

vi3_vi2_sel

clk for ch4
and ch5
vi3div_sel

clk for port3

clk for ch6
and ch7

CLK_VI_P3

6.1.5.4 Interrupt
The interrupt ID of the VIU in the system is 17. In the VIU, each internal channel has eight
interrupt sources. In addition, each channel has an interrupt enable register VIn_INT_EN and
an interrupt status register VIn_INT_STATUS.

6.1.5.5 Usage Guide
Function of the reg_newer Bit of the VIU
z

6-20

Before enabling a channel of the VIU through software, do as follows:

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

z

z

6 Video Interface
−

Perform write operation on the image register VIn_REG_NEWER of the VIU.

−

Write 1 to the reg_newer bit to inform the VIU that the current register is ready.

After the VIU is enabled, the VIU logic starts to work. When a field or a frame arrives,
the following cases may occur:
−

If reg_newer is 0, the VIU does not receive data, sets the hardware status to snooze,
and then waits the arrival of the next field or frame.

−

If reg_newer is 1, the VIU starts to receive data. At the same time, the register update
interrupt reg_update_int is generated and the hardware status is set to busy.

After all the current data is received, the busy status of the hardware is cleared. When the
next field or frame arrives, the following cases may occur:
−

If reg_newer is 0, the data of the next field or frame is dropped.

−

If reg_newer is 1, the data of the next field or frame is received.

Workflow of the VIU
Figure 6-27 shows the workflow of the VIU.
Figure 6-27 Workflow of the VIU
Enable the VIU

Set the status of the VIU to
snooze

Does a field or frame
pulse arrive?

No

Yes
No
Is reg_newer set to 1?
Yes
Start to receive data
(vi_busy=10)

Is all the data
received?

No

Yes
image done=1
vi_busy=0

In BT.656/601 and DC modes, after the data of a specified field or frame is received, the VIU
checks the reg_newer bit before the next field or frame arrives. If the reg_newer bit is 1, it
indicates that software is updated or the register is a VIU confirmation register. In this case,
the VIU automatically loads the register values configured through software to the working
register (the software of this register is inaccessible), clears the reg_newer bit, and starts to

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-21

Hi3515
Data Sheet

6 Video Interface

receive the data of the next field or frame. Otherwise, the VIU starts to receive data only when
the reg_newer bit is 1 and the next field or frame arrives.

Software Configuration Process
Figure 6-28 shows the software configuration process in interrupt mode.
Figure 6-28 Software configuration process
Start

Configure the required registers

Set reg_newer to 1

Generate the interrupts frame_pulse and
reg_update that indicate the start of a new field

Configure the attributes of the received image of
the next field or frame and set reg_newer to 1

Generate a cc interrupt that indicates that the
current image is received

In BT.656 and DC modes, you do not need to configure timing registers. That is, you need to
configure the following registers only: VIn_CAP_SIZE, VIn_LINE_OFFSET,
VIn_YBASE_ADDR, VIn_UBASE_ADDR, VIn_VBASE_ADDR, VIn_CH_CTRL, and
VIn_CAP_START.
In BT.601 mode, you need to configure the timing registers VI_Px_VSYNC1,
VI_Px_VSYNC2, and VI_Px_HSYNC1. For example, the values of timing registers are the
default values of registers in the PAL standard.
Timing registers include vertical sync registers and horizontal sync registers.

Process of Reading the Luminance Statistical Value Through Software
Figure 6-29 shows the process of reading the luminance statistical value through software.

6-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-29 Process of reading the luminance statistical value through software
Start

Configure registers

Set reg_newer to 1

No
Is a field start interrupt generated?

Yes

Read the luminance value of the images of
the previous field

6.1.6 Register Summary
Table 6-7 shows the VIU registers.
Table 6-7 Summary of VIU registers (base address: 0x1010_0000)
Offset Address

Register

Description

Page

0x0000+nx0x1000

VIn_PORT_CFG

Port configuration register

6-26

0x0004+nx0x1000

VIn_CH_CFG

Channel configuration
register

6-28

0x0008+nx0x1000

VIn_CH_CTRL

Channel control register

6-32

0x000C+nx0x1000

VIn_REG_NEWER

Channel register
configuration completion
register

6-34

0x0010+nx0x1000

VIn_CAP_START

Image capture start
position Register

6-35

0x0014+nx0x1000

VIn_CAP_SIZE

Image capture size register

6-36

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-23

Hi3515
Data Sheet

6 Video Interface

6-24

Offset Address

Register

Description

Page

0x0018+nx0x1000

VIn_Y_STORESIZE

Storage size register of the
Y component data

6-36

0x001C+nx0x1000

VIn_U_STORESIZE

Storage size register of the
Cb component data

6-37

0x0020+nx0x1000

VIn_V_STORESIZE

Storage size register of the
Cr component data

6-37

0x0024+nx0x1000

VIn_LINE_OFFSET

Image storage line stride
register

6-40

0x0028+nx0x1000

VIn_YBASE_ADDR

Base address register of
the Y component

6-41

0x002C+nx0x1000

VIn_UBASE_ADDR

Base address register of
the Cb component

6-42

0x0030+nx0x1000

VIn_VBASE_ADDR

Base address register of
the Cr component

6-43

0x0034

VI_INT_DLY_CNT

Interrupt delay counter
register

6-43

0x0038+nx0x1000

VIn_INT_EN

Interrupt enable register

6-43

0x003C+nx0x1000

VIn_INT_STATUS

Interrupt status register

6-45

0x0040+nx0x1000

VIn_RAW_INT

Raw interrupt status
register

6-46

0x0044

VI_INT_INDICATOR

Interrupt indicator register

6-47

0x0048+nx0x1000

VI_RAW_INT_INDICATO
R

Raw interrupt indicator
register

6-49

0x004C+nx0x1000

VIn_STATUS

Status register

6-51

0x0050+nx0x1000

VIn_LUM_ADDER

Luminance adder register

6-52

0x0054+nx0x1000

VIn_LUM_STRH

Luminance stretch register

6-52

0x0058+nx0x1000

VIn_LUM_DIFF_ADDER

Luminance difference
adder register

6-54

0x005C+nx0x1000

VIn_BLOCK0_START

Start position register of
image block 0

6-55

0x0060+nx0x1000

VIn_BLOCK1_START

Start position register of
image block 1

6-55

0x0064+nx0x1000

VIn_BLOCK2_START

Start position register of
image block 2

6-55

0x0068+nx0x1000

VIn_BLOCK3_START

Start position register of
image block 3

6-56

0x006C+nx0x1000

VIn_BLOCK0_SIZE

Block 0 size register

6-56

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0070+nx0x1000

VIn_BLOCK1_SIZE

Block 1 size register

6-57

0x0074+nx0x1000

VIn_BLOCK2_SIZE

Block 2 size register

6-57

0x0078+nx0x1000

VIn_BLOCK3_SIZE

Block 3 size register

6-57

0x007C+nx0x1000

VIn_BLOCK0_COLOR

Filling color register of
image block 0

6-58

0x0080+nx0x1000

VIn_BLOCK1_COLOR

Filling color register of
image block 1

6-58

0x0084+nx0x1000

VIn_BLOCK2_COLOR

Filling color register of
image block 2

6-59

0x0088+nx0x1000

VIn_BLOCK3_COLOR

Filling color register of
image block 3

6-59

0x009C+nx0x1000

VIn_ANC0_START

Start position register of
blanking area data block 0

6-60

0x00A0+nx0x1000

VIn_ANC0_SIZE

Size register of blanking
area data block 0

6-61

0x00A4+nx0x1000

VIn_ANC1_START

Start position register of
blanking area data block 1

6-61

0x00A8+nx0x1000

VIn_ANC1_SIZE

Size register of blanking
area data block 1

6-62

0x00AC+nx0x1000

VIn_ANC0_WORD

Blanking area data register

6-62

0x00CC+nx0x1000

VIn_ANC1_WORD

Blanking area data register

6-63

0x00EC

VI_P0_VSYNC1

Odd field vertical sync
register of port 0

6-64

0x80EC

VI_P2_VSYNC1

Odd field vertical sync
register of port 2

6-64

0x00F0

VI_P0_VSYNC2

Even field vertical sync
register of port 0

6-65

0x80F0

VI_P2_VSYNC2

Even field vertical sync
register of port 2

6-66

0x00F4

VI_P0_HSYNC

Horizontal sync register of
port 0

6-66

0x80F4

VI_P2_HSYNC

Horizontal sync register of
port 2

6-67

0x00F8

VI_PRIO_CONFIG

Bus priority control
register.

6-67

0x00FC+nx0x1000

VIn_LUM_COEF0

Luminance filtering
coefficient register 0

6-70

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-25

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0100+nx0x1000

VIn_LUM_COEF1

Luminance filtering
coefficient register 1

6-71

0x0104+nx0x1000

VIn_LUM_COEF2

Luminance filtering
coefficient register 2

6-71

0x0108+nx0x1000

VIn_LUM_COEF3

Luminance filtering
coefficient register 3

6-72

0x010C+nx0x1000

VIn_CHROMA_COEF0

Chrominance filtering
coefficient register 0

6-72

0x0110+nx0x1000

VIn_CHROMA_COEF1

Chrominance filtering
coefficient register 1

6-73

The letter n in the register VIn_ABC indicates the ID of a VI channel. In addition, n is an integer and
ranges from 0 to 7.

6.1.7 Register Description
VIn_PORT_CFG
VIn_PORT_CFG is the port configuration register that is used to configure the parameters of
each external port.
This register is valid only when n is 0, 2, 4, or 6.

6-26

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

reserved

Reset 0

0

0

0 0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access Name

Description

[31:12]

RO

Reserved.

reserved

0

0

0

0

0

0

7

port_cap_mode

Name

8

0

0

6
port_mux_mode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

5

4

3

2

1

0

port_en

0x0000_0000

port_hsync_neg

VI_PORT_CFG

port_hsync

0x0000+nx0x1000

port_vsync_neg

Total Reset Value

reserved

Register Name

port_vsync

Offset Address

port_scan_mode

Bit

6 Video Interface

0

0

0

0

0

0

Port data input mode.
Scan_mode[1]=0: Y/C composite input mode
[11:10]

RW

port_scan_mode

Scan_mode[1]=1: Y/C separation input mode
Scan_mode[0]=0: interlaced input mode
Scan_mode[0]=1: progressive input mode
Port data receive mode.
00: BT.656 mode
01: BT.601 mode

[9:8]

RW

port_cap_mode

10: DC mode
Others: reserved
Note: When port 1 and port 3 work in non-HD mode, the port data
receive mode must be BT.656 mode.
Port multi-channel TDM input working mode.
00: 1-channel D1 data

[7:6]

RW

port_mux_mode

01: 2-channel D1 TDM data
01: 4-channel D1 or half D1 TDM data
Others: reserved
Note: Port 1 and port 3 do not support the 4-channel TDM mode.

[5]

RO

reserved

Reserved.
Configuration signal of the pin VI_P_VSYNC_FIELD.
0: field number (odd field or even field) or line valid signal

[4]

RW

port_vsync

z

In BT.601 mode, this signal indicates the field number.

z

In DC mode, this signal indicates the line valid signal.

1: vertical sync pulse
Note: You do not need to configure this bit for the 16-bit interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-27

Hi3515
Data Sheet

6 Video Interface

Polarity configuration signal of the pin VI_P_VSYNC_FIELD.
0: active high
In pulse mode (port_vsync = 1), positive pulse indicates sync
pulse.
In field number mode (port_vsync = 0), the high level indicates
even field and the low level indicates odd field.
[3]

RW

port_vsync_neg

In line valid mode, high level indicates line valid.
1: active low
In pulse mode (port_vsync = 1), negative pulse indicates sync
pulse.
In field number mode (port_vsync = 0), the low level indicates
even field and the low level indicates odd field.
In line valid mode, the low level indicates line valid.
Configuration signal of the pin VI_P_HSYNC_VD.

[2]

RW

port_hsync

0: data valid signal
1: horizontal sync pulse signal
Note: Set this bit to 1 for the 16-bit interface.
Polarity configuration signal of the pin VI_P_HSYNC_VD.
0: active high
In pulse mode (port_hsync = 1), the positive pulse indicates the
sync pulse signal.

[1]

RW

port_hsync_neg

In data valid mode (port_hsync = 0), the high level indicates the
data valid signal.
1: active low
In pulse mode (port_hsync = 1), the negative pulse indicates the
sync pulse signal.
In data valid mode (port_hsync = 0), the low level indicates the
data valid signal.
Port enable.

[0]

RW

port_en

0: disabled
1: enabled

VIn_CH_CFG
VIn_CH_CFG is the channel configuration register that is used to configure the parameters of
each external channel.

6-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

0

0

0

0

0

0

Bits

Access

Name

Description

[31:27]

RO

reserved

Reserved.

[26]

RW

fix_code

0

0 0 0

1

0

1

0

0

0

6

5

1

0

4

cap_seq

0

7

cap_sel

0

8
store_method

0

15 14 13 12 11 10 9

even_line_sel

0

reserved

0

16

0

0

3

2

data_width

0

ch_id

0

ch_id_en

Reset 0

chrom_swap

reserved

seav_f_neg

Name

yc_channel

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17

reserved

0x0000_1480

store_mode

VIn_CH_CFG

down_scaling

0x0004+nx0x1000

chroma_resample

Total Reset Value

correct_en

Register Name

odd_line_sel

Offset Address

fix_code

Bit

6 Video Interface

1 0

0

0

0 0

Configuration of the most significant bit (MSB) of the BT.656
timing reference code.
0: fixed at 1
1: fixed at 0
Y/C configuration of the current channel.

[25]

RW

yc_channel

0: The current channel is the luminance Y channel.
1: The current channel is the Chrominance C channel.
Note: This register is valid only in Y/C separation mode.

[24]

RW

seav_f_neg

Polarity of the field indication bit (F) of the BT.656 timing
reference code.
0: 1st field:F = 0 and 2nd field:F = 1 (standard)
1: 1st field:F = 1 and 2nd field:F = 0 (non-standard)
Channel data swap enable.
0: output in normal way
1: byte reverse in halfword

[23]

RW

chrom_swap

Note: This function is available in HD Y/C separation input mode
only. Channel 4 and channel 12 are used to transfer chrominance.
The sequence of storing chrominance can be set as follows:
0: Cr1Cb1Cr0Cb0
1: Cb1Cr1Cb0Cr0
Channel ID detect enable.
0: disabled

[22]

RW

ch_id_en

1: enabled
Note: This function is available only when ports work in 2-channel
or 4-channel TDM mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-29

Hi3515
Data Sheet

6 Video Interface

Channel ID.
00: data with the channel ID 00
01: data with the channel ID 01
[21:20]

RW

10: data with the channel ID 10

ch_id

11: data with the channel ID 11
Note: If the channel ID detect function is enabled, a channel
allows data to pass only when the channel ID in the data is the
same as its channel ID.
[19]

RO

reserved

Reserved.
Line selection for collecting chrominance data of the images of
even fields.
000: collect the data of odd lines only
001 collect the data of even lines only
010 collect the data of both odd and even lines
011: collect the data of line 0 and line 3 every four line. This data
collection method is used only in field storage mode (store_mode
= 0).

[18:16]

RW

even_line_sel

100 collect the data of line 1 and line 2 every four line. This data
collection method is used only in field storage mode (store_mode
= 0).
Note: The line number starts from 0. The interlaced capture
function is used to obtain YCbCr 4:2:0 data, but is available for the
chrominance component only. The luminance data of both odd and
even lines is collected. In frame input mode (DC mode and
progressive HD mode), even_line_sel controls whether to drop
chrominance lines. In frame storage mode, it is not allowed to
configure the collect mode to collect odd-line data only in odd
fields or collect even-line data only in even fields. It is
recommended to configure the collect mode to collect even-line
data only in odd field or collect odd-line data only in odd fields. In
HD mode, only channel 2 or channel 6 needs to be configured.
Line selection for collecting chrominance data of the images of
odd fields.
000: collect the data of odd lines only
001 collect the data of even lines only
010 collect the data of both odd and even lines

[15:13]

RW

odd_line_sel

011: collect the data of line 0 and line 3 every four line. This data
collection method is used only in field storage mode (store_mode
= 0).
100 collect the data of line 1 and line 2 every four line. This data
collection method is used only in field storage mode (store_mode
= 0).
Note: The line number starts from 0. The interlaced capture
function is used to obtain YCbCr 4:2:0 data, but is available for the
chrominance component only. The luminance data of both odd and
even lines is collected. In frame input mode (DC mode and
progressive HD mode), odd_line_sel is invalid. In frame storage

6-30

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

mode, it is not allowed to configure the collect mode to collect
odd-line data only in odd fields or collect even-line data only in
even fields. It is recommended to configure the collect mode to
collect even-line data only in odd field or collect odd-line data
only in odd fields. In HD mode, only channel 2 or channel 6 needs
to be configured.
SAV and EAV data check enable.
[12]

RW

correct_en

0: disabled
1: enabled
Horizontal 1/2 down scaling.
0: disabled

[11]

RW

down_scaling

1: enabled
Note: This function is not supported in HD Y/C separation input
mode.
Chrominance resampling.
0: disabled

[10]

RW

chroma_resample

1: enabled The sampling format is converted from co-sited into
interspersed.
Note: During the process of chrominance resampling, the sampling
format can be converted from co-sited into interspersed only. In
addition, this function is not supported in HD Y/C separation input
mode.
Storage method.
00: planar Y/Cb/Cr

[9:8]

RW

store_method

01: semi-planar YCbCr
10: package YCbCr4:2:2
11: raw data, for HD Y/C separation input mode only
Field selection for collection image data.
00: collect the data of odd fields (top fields) only

[7:6]

RW

cap_sel

01: collect the data of even fields (bottom fields) only
10: collect the data of both odd and even fields
Others: reserved
YCbCr input sequence bit.
00: CbYCrY

[5:4]

RW

cap_seq

01: CrYCbY
10: YCbYCr
11: YCrYCb

[3]

RO

reserved

Reserved.
Storage mode.

[2]

RW

store_mode

0: field storage mode
1: frame storage mode
Note: If ports work in progressive input mode, the storage mode of

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-31

Hi3515
Data Sheet

6 Video Interface

this register must be set to field storage mode.
Data width.
[1:0]

RW

data_width

00: 8 bits
10: 10 bits
Others: reserved

VIn_CH_CTRL
VIn_CH_CTRL is the control register that controls the start time and end time of capturing
data. In addition, VIn_CH_CTRL can enable the VIU and control the reg_newer interrupt.

6-32

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

anc0_en

reserved

anc1_en

Name

lum_strh_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

8

reserved

0

0

0

0

7

6

5

4

3

reserved

ch_en

VIn_CH_CTRL

block0_en

0x0008+nx0x1000

block1_en

Total Reset Value

block2_en

Register Name

block3_en

Offset Address

debug_en

Bit

6 Video Interface

2

0

0

0

0

0

0

0

1

0

0

Debug mode enable.
0: disabled
[15]

RW

debug_en

1: enabled
If the debug mode is not enabled, the value 0 is returned when
debug registers are read.
Luminance stretch enable.
0: do not stretch the luminance

[14]

RW

lum_strh_en

1: stretch the luminance
Note: The luminance stretch function is not supported in Y/C
separation input mode.
Capture enable of data block 1 in the blanking area.

[13]

RW

anc1_en

0: do not capture
1: capture
Capture enable of data block 0 in the blanking area.

[12]

RW

anc0_en

0: do not capture
1: capture

[11:8]

RO

reserved

Reserved.
Block 3 mask enable.

[7]

RW

block3_en

0: disabled
1: enabled
Block 2 mask enable.

[6]

RW

block2_en

0: disabled
1: enabled
Block 1 mask enable.

[5]

RW

block1_en

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-33

Hi3515
Data Sheet

6 Video Interface

Block 0 mask enable.
[4]

RW

blcok0_en

0: disabled
1: enabled

[3:1]

RO

reserved

Reserved.
VIU channel enable.
0: disabled

[0]

RW

1: enabled

ch_en

Note: To switch the mode (such as multi-channel switch or the
switch from the BT.656 mode to the BT.601 mode), you must set
this bit to 0 before switching and set this bit to 1 after switching.

VIn_REG_NEWER
VIn_REG_NEWER is the channel register configuration completion register. It is used to
notify the channel whether the register for receiving the next field or frame is configured.
Register Name

Total Reset Value

0x000C+nx0x1000

VIn_REG_NEWER

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0

reg_newer

Bit

Offset Address

0

0

0

0

0

0

0

Indicates whether the register for receiving the next field or frame
is ready.
0: The register is not ready, so the hardware drops the next field or
frame.
[0]

RW

reg_newer

1: The register is ready, so the hardware starts to receive the next
field or frame when the hardware detects the start of the next field
or frame.
Note: The VIU hardware clears this bit automatically after
updating its internal registers.

6-34

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VIn_CAP_START
VIn_CAP_START is the image capture start position register that is used to configure the start
position of capturing an image.
VIn_CAP_SIZE is the image capture size register that is used to configure the size of a
captured image.
The registers VIn_CAP_START and VIn_CAP_SIZE show how to capture a rectangle image
from a VI image, as shown in Figure 6-30.
z

VIn_CAP_START describes the start coordinates start_x and start_y of the captured
image from the VI image.

z

VIn_CAP_SIZE describes the size, width, and height of the captured image.

Width and start_x are in the unit of input pixel (namely, luminance pixel). When the captured
image is in the YUV4:2:2 format, height and start_y are in the unit of line.
Figure 6-30 Parameter diagram of the captured image

Pixel 0

Pixel M-1
Line 0
start_y

VI image

start_x

Captured image

Height

Width
Line N-1

Bit

z

start_x and start_y occupy 12 bits respectively in VIn_CAP_START.

z

Width and height occupy 12 bits respectively in VIn_CAP_SIZE.

Offset Address

Register Name

Total Reset Value

0x0010+nx0x1000

VIn_CAP_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

start_y
0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

start_x
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

start_y

Number of the line from which images start to be captured.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-35

Hi3515
Data Sheet

6 Video Interface

[11:0]

RW

start_x

Number of the pixel from which images start to be captured.

VIn_CAP_SIZE
VIn_CAP_SIZE is the image capture size register.

Bit

Offset Address

Register Name

Total Reset Value

0x0014+nx0x1000

VIn_CAP_SIZE

0x0012_02d0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

height
0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

1

0

0

0

0

width
1

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

1

0

0

0

1

0

1

1

0

Height of a captured image (in lines).
[23:12]

RW

In frame storage mode, the height of a captured image is half of
the actual height of the frame image. The VIU captures two fields
to form a frame.

height

The minimum height of a captured image supported by the VIU is
one line.
Width of a line of a captured image (in pixels).
[11:0]

RW

width

The minimum width of a capture image supported by the VIU is
four pixels.

VIn_Y_STORESIZE
VI_Y_STORESIZE is the storage size register of the Y component data.

Bit

Offset Address

Register Name

Total Reset Value

0x0018+nx1000

VIn_Y_STORESIZE

0x000F_00A0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

y_height
0

0

0

0

0

0

0

1

1

1

6

5

4

3

2

1

0

0

0

0

0

0

y_width
1

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

1

0

1

Height of storing the Y component data (in lines).
[23:12]

6-36

RW

y_height

Note: In Y/C separation mode, if the chrominance channel outputs
YCbCr4:2:0 data, the chrominance height must be set to half of the
luminance height.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[11:0]

RW

6 Video Interface

Value of subtracting 1 from the width of storing the Y component
data. The line width is on the basis of 128 bits. If the line tail is
less than 128 bits, the value of 128 bits is considered.

y_width

VIn_U_STORESIZE
VIn_U_STORESIZE is the storage size register of the Cb component data. In package storage
mode, this register is unavailable. In the semi-planar YCbCr data format, this register
indicates the chrominance storage size; in the planar YCbCr data format, this register
indicates the Cb component storage size.

Bit

Offset Address

Register Name

Total Reset Value

0x001C+nx0x1000

VIn_U_STORESIZE

0x000F_00A0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

c_height
0

0

0

0

0

0

0

1

1

1

6

5

4

3

2

1

0

0

0

0

0

0

c_width
1

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

1

0

1

In semi-planar YCbCr mode, c_height indicates the height of
storing the chrominance component data (in lines).
[23:12]

RW

c_height

In planar YCbCr mode, c_height indicates the height of storing the
Cb component data (in lines).
c_height is invalid in package storage mode and raw data receive
mode.
In semi-planar YCbCr mode, c_width indicates the value of
subtracting 1 from the width of storing the Y component data. The
line width is on the basis of 128 bits. If the line tail is less than 128
bits, the value of 128 bits is considered.

[11:0]

RW

c_width

In planar YCbCr mode, c_width indicates the width of storing the
Cb component data. The width is in the unit of word. If the width
is less than a word, a complete word is considered.
c_width is invalid in package storage mode and raw data receive
mode.

VIn_V_STORESIZE
VIn_V_STORESIZE is the storage size register of the Cr component data.

Bit

Offset Address

Register Name

Total Reset Value

0x0020+nx0x1000

VIn_V_STORESIZE

0x000F00A0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

6-37

Hi3515
Data Sheet

6 Video Interface
Name

reserved

Reset 0

0

0

0

0

v_height
0

0

0

0

0

0

0

1

1

1

v_width
1

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

v_height

Height of storing the Cr component data (in lines).

v_width

Value of subtracting 1 from the width of storing the Cr component
data. The line width is on the basis of 128 bits. If the line tail is
less than 128 bits, the value of 128 bits is considered.

[11:0]

RW

v_width is invalid in semi-planar YCbCr storage mode, package
YCbCr storage mode, and raw data receive mode.

To calculate the size of the stored data when YCbCr4:2:2 data is being received, do as follows:
Step 1 Check the parity of cap_width. If cap_width is an even, the data size keeps unchanged; if
cap_width is an odd, the data size must be subtracted from 1.
cap_width=cap_width-cap_width%2

Step 2 Check whether 1/2 down scaling is performed.
down_scaling?
yes:cap_width=cap_width/2
no:cap_width=cap_width

Step 3 Calculate the sizes of the stored data in different storage modes.
1.

Y/Cb/Cr planar storage mode
The data bit width is 8 bits.
y_width=if(cap_width%16==0)
cap_width/16
else
cap_width/16+1
c_width = if(cap_width%32==0)
cap_width/32
else
cap_width/32+1
v_width=if(cap_width%32==0)
cap_width/32
else
cap_width/32+1

The data bit width is 10 bits.
y_width=if(cap_width%8==0)
cap_width/8
else
cap_width/8+1
c_width=if(cap_width%16==0)

6-38

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface
cap_width/16
else
cap_width/16+1

v_width=if(cap_width%16==0)
cap_width/16
else
cap_width/16+1

2.

Planar Y/C storage mode
The data bit width is 8 bits.
y_width=if(cap_width%16==0)
cap_width/16
else
cap_width/16+1
c_width=if(cap_width%16==0)
cap_width/16
else
cap_width/16+1

The data bit width is 10 bits.
y_width=if(cap_width%8==0)
cap_width/8
else
cap_width/8+1
c_width=if(cap_width%8==0)
cap_width/8
else
cap_width/8+1

3.

Package storage mode
The data bit width is 8 bits.
y_width=if(cap_width%8==0)
cap_width/8
else
cap_width/8+1

The data bit width is 10 bits.
y_width=if(cap_width%4==0)
cap_width/4
else
cap_width/4+1

4.

Raw data storage mode
The data bit width is 8 bits.
y_width=if(cap_width%16==0)
cap_width/16
else
cap_width/16+1

The data bit width is 10 bits.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-39

Hi3515
Data Sheet

6 Video Interface
y_width=if(cap_width%8==0)
cap_width/8
else
cap_width/8+1

Step 4 Subtract 1 from the preceding values.
y_width=y_width-1
c_width=c_width-1
v_width=v_width-1

----End

VIn_LINE_OFFSET
VIn_LINE_OFFSET is the image storage line stride register that is used to configure the
stride of data storage lines. This stride is in the unit of word and the register of each channel is
controlled separately.

Bit

Offset Address

Register Name

Total Reset Value

0x0024+nx0x1000

VIn_LINE_OFFSET

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

yline_offset

Reset 0

0

Bits

0

0

0

Access

0

0

0

8

7

uline_offset
0

0

Name

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

vline_offset
0

0

0

0

0

0

0

0

0

0

Description

The stride is on the basis of 128 bits, that is, the actual stride is the
value obtained after yline_offset is moved four bits left.
[31:20]

RW

yline_offset

z

In raw data storage mode, only this stride is valid.

z

In package YCbCr4:2:2 storage mode, only this stride is valid.

z

In planar Y/C or Y/Cb/Cr storage mode, yline_offset indicates
the line stride of the Y component.

The stride is on the basis of 128 bits, that is, the actual stride is the
value obtained after uline_offset is moved four bits left.

[19:10]

RW

uline_offset

z

In raw data storage mode, uline_offset is invalid.

z

In package YCbCr4:2:2 storage mode, uline_offset is invalid.

z

In planar Y/C storage mode, uline_offset indicates the line stride
of the C component.

z

In planar Y/Cb/Cr storage mode, uline_offset indicates the line
stride of the Cb component.

The stride is on the basis of 128 bits, that is, the actual stride is the
value obtained after vline_offset is moved four bits left.
[9:0]

6-40

RW

vline_offset

z

In raw data storage mode, vline_offset is invalid.

z

In package YCbCr4:2:2 storage mode, vline_offset is invalid.

z

In planar Y/C storage mode, vline_offset is invalid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface
z

In planar Y/Cb/Cr storage mode, vline_offset indicates the line
stride of the Cr component.

VIn_YBASE_ADDR
VIn_YBASE_ADDR0 is the base address 0 register of the Y component. This register is used
to configure the start address for storing the Y component.
The last three bits of this register are set to 0s.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-41

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0028+nx0x1000

VIn_YBASE_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vi_ybase_addr

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description

Base address of the Y channel.
The four least significant bits (LSBs) are set to 0s and the base
address is 128-bit aligned.
[31:0]

RW

vi_ybase_addr

z

In raw data storage mode, only this base address is valid.

z

In package YCbCr4:2:2 storage mode, only this base address is
valid.

z

In planar Y/C or Y/Cb/Cr storage mode, vi_ybase_addr indicates
the header address of the Y component.

VIn_UBASE_ADDR
VIn_UBASE_ADDR is the base address 0 register of the Cb component. This register is used
to configure the start address for storing the Cb component. The last three bits of this register
are set to 0s.

Bit

Offset Address

Register Name

Total Reset Value

0x002C+nx0x1000

VIn_UBASE_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vi_ubase_addr

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

Description

Base address of the Cb channel.
The four LSBs are set to 0s and the base address is 128-bit aligned.
[31:0]

6-42

RW

vi_ubase_addr

z

In raw data storage mode, vi_ubase_addr is invalid.

z

In package YCbCr4:2:2 storage mode, vi_ubase_addr is invalid.

z

In planar Y/C storage mode, vi_ubase_addr indicates the header
address of the Cr component.

z

In planar Y/C or Y/Cb/Cr storage mode, vi_ubase_addr indicates
the header address of the Cb component.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VIn_VBASE_ADDR
VIn_VBASE_ADDR0 is the base address 0 register of the Cr component. This register is
used to configure the start address for storing the Cr component. The last three bits of this
register are set to 0s.

Bit

Offset Address

Register Name

Total Reset Value

0x0030+nx0x1000

VIn_VBASE_ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vi_vbase_addr

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description

Base address of the Cr channel.
The four LSBs are set to 0s and the base address is 128-bit aligned.
[31:0]

RW

vi_vbase_addr

z

In raw data storage mode, vi_vbase_addr is invalid.

z

In package YCbCr4:2:2 storage mode, vi_vbase_addr is invalid.

z

In planar Y/C storage mode, vi_vbase_addr is invalid.

z

In planar Y/Cb/Cr storage mode, vi_vbase_addr indicates the
header address of the Cr component.

VI_INT_DLY_CNT
VI_INT_DLY_CNT is the interrupt delay counter register.

Bit

Offset Address

Register Name

Total Reset Value

0x0034

VI_INT_DLY_CNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

int_dly_cnt

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

Description

Interrupt delay counter.
[31:0]

RW

int_dly_cnt

The counter counts bus clocks. If the counted value reaches the
value of this register and there are interrupts in any of the 16
channel, the VIU reports an interrupt.

VIn_INT_EN
VIn_INT_EN is the interrupt enable register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-43

Hi3515
Data Sheet

6 Video Interface

Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

4

3

2

1

0

Name

reserved

err_int_en

field_throw_int_en

buf_ovf_int_en

cc_int_en

0x0000_0000

proc_err_int_en

VIn_INT_EN

reg_update_int_en

0x0038+nx0x1000

frame_pulse_int_en

Total Reset Value

chdiv_err_int_en

Register Name

ntsc_pal_trans_int_en

Offset Address

0

0

0

0

0

0

0

0

0

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:9]

RO

reserved

Reserved.

0

0

0

0

0

0

0

Channel allocation error indicator interrupt enable.
[8]

RW

chdiv_err_int_en

0: disabled
1: enabled

[7]

RW

Standard conversion interrupt enable.
ntsc_pal_trans_int_
0: disabled
en
1: enabled
Field start interrupt enable.

[6]

RW

frame_pulse_int_en 0: disabled
1: enabled
Register update interrupt enable.

[5]

RW

reg_update_int_en 0: disabled
1: enabled
Protection bit error interrupt enable in BT.656 mode.

[4]

RW

proc_err_int_en

0: disabled
1: enabled
BUS error interrupt enable.

[3]

RW

err_int_en

0: disabled
1: enabled
Field or frame loss interrupt enable.

[2]

RW

field_throw_int_en 0: disabled
1: enabled
Internal FIFO overflow interrupt error interrupt enable.

[1]

RW

buf_ovf_int_en

0: disabled
1: enabled

[0]

6-44

RW

cc_int_en

Data capture completion interrupt enable.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

0: field image capture completion interrupt
1: frame image capture completion interrupt

VIn_INT_STATUS
VIn_INT_STATUS is the interrupt status register. When the value 1 is written to the
corresponding bit of this register, the interrupt bit is cleared. The register of each channel is
controlled separately and can be masked.

Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

4

3

2

1

0

Name

reserved

error_int

field_throw_int

buf_ovf_int

cc_int

0x0000_0000

proc_err_int

VIn_INT_STATUS

reg_update_int

0x003C+nx0x1000

frame_pulse_int

Total Reset Value

chdiv_err_int

Register Name

ntsc_pal_trans_int

Offset Address

0

0

0

0

0

0

0

0

0

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:9]

RO

reserved

Reserved.

0

0

0

0

0

0

0

Channel allocation error indicator interrupt status.
[8]

WC

chdiv_err_int

0: No interrupt is generated.
1: An interrupt is generated.
Standard conversion interrupt status.
0: No interrupt is generated.

[7]

WC

ntsc_pal_trans_int

1: An interrupt is generated.
Note: The standard conversion interrupt is reported if the standard
is changed. If the number of valid data lines is changed, the
standard conversion is considered. That is, the standard conversion
is not limited to the conversion of NTSC and PAL standards.
Field start interrupt status.

[6]

WC

frame_pulse_int

0: No interrupt is generated.
1: An interrupt is generated.
Working register update interrupt status.
0: No interrupt is generated.
1: An interrupt is generated.

[5]

WC

reg_update_int

When VIn_CH_CFG[store_mode] is 1, this bit indicates the frame
image capture completion interrupt.
When VIn_CH_CFG[store_mode] is 0, this bit indicates the field
image capture completion interrupt.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-45

Hi3515
Data Sheet

6 Video Interface

Protection bit error interrupt status (in BT.656 mode).
[4]

WC

proc_err_int

0: No interrupt is generated.
1: An interrupt is generated.
AHB bus error interrupt status.

[3]

WC

0: No interrupt is generated.

error_int

1: An interrupt is generated.
Field data loss interrupt status.
0: No interrupt is generated.
[2]

WC

field_throw_int

1: An interrupt is generated.
Note: If the capture mode is set to odd field only or even field
only, hardware does not report the field data loss interrupt.
Internal buffer FIFO overflow interrupt status.

[1]

WC

buf_ovf_int

0: No interrupt is generated.
1: An interrupt is generated.
Current image capture completion interrupt status.
0: No interrupt is generated.
1: An interrupt is generated.

[0]

WC

cc_int

When VIn_CH_CFG[store_mode] is 0, this bit indicates the field
image capture completion interrupt.
When VIn_CH_CFG[store_mode] is 1, this bit indicates the frame
image capture completion interrupt.

VIn_RAW_INT
VIn_RAW_INT is the raw interrupt status register. If the value 1 is written to the
corresponding bit of this register, its interrupt bit is cleared. The register of each channel is
controlled separately. In addition, the registers are for debugging and cannot be masked.

Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

4

3

2

1

0

Name

reserved

error_raw_int

field_throw_raw_int

buf_ovf_raw_int

cc_raw_int

0x0000_0000

proc_err_raw_int

VIn_RAW_INT

reg_update_raw_int

0x0040+nx0x1000

frame_pulse_raw_int

Total Reset Value

chdiv_err_raw_int

Register Name

ntsc_pal_trans_raw_int

Offset Address

0

0

0

0

0

0

0

0

0

Reset 0

6-46

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:9]

RO

reserved

Reserved.

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Channel allocation error indicator raw interrupt status.
[8]

RO

chdiv_err_raw_int 0: No interrupt is generated.
1: An interrupt is generated.
Standard conversion raw interrupt status.
0: No raw interrupt is generated.

[7]

[6]

RO

RO

ntsc_pal_trans_raw 1: A raw interrupt is generated.
_int
Note: The standard conversion interrupt is reported if the standard
is changed. If the number of valid data lines is changed, the
standard conversion is considered. That is, the standard conversion
is not limited to the conversion of NTSC and PAL standards.
Field start raw interrupt status.
frame_pulse_raw_i
0: No interrupt is generated.
nt
1: An interrupt is generated.
Working register update raw interrupt status.

[5]

RO

reg_update_raw_int 0: No interrupt is generated.
1: An interrupt is generated.
Protection bit error raw interrupt status (in BT.656 mode).

[4]

RO

proc_err_raw_int

0: No interrupt is generated.
1: An interrupt is generated.
AHB bus error raw interrupt status.

[3]

RO

error_raw_int

0: No interrupt is generated.
1: An interrupt is generated.

[2]

RO

Field data loss raw interrupt status.
field_throw_raw_in
0: No interrupt is generated.
t
1: An interrupt is generated.
Internal buffer FIFO overflow raw interrupt status.

[1]

RO

buf_ovf_raw_int

0: No interrupt is generated.
1: An interrupt is generated.
Current image capture completion raw interrupt status.
0: field image capture completion raw interrupt
1: frame image capture completion raw interrupt

[0]

RO

cc_raw_int

When store_mode is 0, this bit indicates the field image capture
completion interrupt.
When store_mode is 1, this bit indicates the frame image capture
completion interrupt.

VI_INT_INDICATOR
VI_INT_INDICATOR is the interrupt indicator register. This register indicates the channels
(16 channels) in which interrupts are generated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-47

Hi3515
Data Sheet

6 Video Interface
Register Name

Total Reset Value

0x0044+nx0x1000

VI_INT_INDICATOR

0x0000_0000

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

ch0_int_indicator

0

ch1_int_indicator

0

ch2_int_indicator

0

ch3_int_indicator

0

ch4_int_indicator

0

ch5_int_indicator

0

0

ch6_int_indicator

0

1

ch7_int_indicator

0

2

ch8_int_indicator

0

3

ch9_int_indicator

0

4

ch10_int_indicator

0

5

ch11_int_indicator

Reset 0

6

ch12_int_indicator

reserved

7

ch13_int_indicator

Name

8

ch14_int_indicator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

ch15_int_indicator

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Interrupt indicator bit of channel 15.
[15]

RO

ch15_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 14.

[14]

RO

ch14_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 13.

[13]

RO

ch13_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 12.

[12]

RO

ch12_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 11.

[11]

RO

ch11_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 10.

[10]

RO

ch10_int_indicator 0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 9.

[9]

RO

ch9_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 8.

[8]

RO

ch8_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.

[7]

6-48

RO

ch7_int_indicator

Interrupt indicator bit of channel 7.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 6.
[6]

RO

ch6_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 5.

[5]

RO

ch5_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 4.

[4]

RO

ch4_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 3.

[3]

RO

ch3_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 2.

[2]

RO

ch2_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 1.

[1]

RO

ch1_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt indicator bit of channel 0.

[0]

RO

ch0_int_indicator

0: No interrupt is generated.
1: An interrupt is generated.

VI_RAW_INT_INDICATOR
VI_RAW_INT_INDICATOR is the raw interrupt indicator register. This register indicates the
channels (16 channels) in which raw interrupts are generated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

ch3_raw_int_indicator

ch2_raw_int_indicator

ch1_raw_int_indicator

ch0_raw_int_indicator

ch9_raw_int_indicator

ch10_raw_int_indicator

ch11_raw_int_indicator

ch12_raw_int_indicator

reserved

ch13_raw_int_indicator

Name

ch14_raw_int_indicator

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

ch4_raw_int_indicator

0x0000_0000

ch5_raw_int_indicator

VI_RAW_INT_INDICATOR

ch6_raw_int_indicator

0x0048+nx0x1000

ch7_raw_int_indicator

Total Reset Value

ch8_raw_int_indicator

Register Name

ch15_raw_int_indicator

Bit

Offset Address

6-49

Hi3515
Data Sheet

6 Video Interface
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

RO

Interrupt indicator bit of channel 15.
ch15_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 14.
ch14_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 13.
ch13_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 12.
ch12_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 11.
ch11_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 10.
ch10_raw_int_indic
0: No interrupt is generated.
ator
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 9.
ch9_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 8.
ch8_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 7.
ch7_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 6.
ch6_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

[5]

RO

Interrupt indicator bit of channel 5.
ch5_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

[4]

RO

ch4_raw_int_indica Interrupt indicator bit of channel 4.

[15]

[14]

[13]

[12]

[11]

[10]

[9]

[8]

[7]

[6]

6-50

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

0

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

tor

0: No interrupt is generated.
1: An interrupt is generated.

[3]

[2]

[1]

[0]

RO

Interrupt indicator bit of channel 3.
ch3_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 2.
ch2_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 1.
ch1_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

RO

Interrupt indicator bit of channel 0.
ch0_raw_int_indica
0: No interrupt is generated.
tor
1: An interrupt is generated.

VIn_STATUS
VIn_STATUS is the status register.

reserved

Reset 0

0

0

0

0

0

0

act_height

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

buf_ovf

Name

8

image_done

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

bus_err

0x0000_0020

frame_loss

VIn_STATUS

snooze

0x004C+nx0x1000

proc_err

Total Reset Value

field2

Register Name

vi_busy

Bit

Offset Address

0

0

1

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RO

reserved

Reserved.

[19:8]

RO

act_height

Number of lines of detected valid pixel data in a field.
Current working status of the VIU.

[7]

RO

vi_busy

0: idle
1: busy.
Indicates whether even fields are received currently.

[6]

RO

field2

0: odd field
1: even field

[5]

RO

Issue 02 (2010-04-20)

snooze

Indicates whether the VIU is in the snooze state.
0: non-snooze

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-51

Hi3515
Data Sheet

6 Video Interface

1: snooze
Protection bit error status
[4]

RO

proc_err

0: correct
1: incorrect
Bus error status.

[3]

RO

bus_err

0: correct
1: incorrect
Indicates whether the VIU loses a field of data.

[2]

RO

0: not lost

frame_loss

1: lost
VIU internal buffer overflow.
[1]

RO

buf_ovf

0: not overflow
1: overflow
Indicates whether the receiving of current field of data is complete.

[0]

RO

image_done

0: not complete
1: complete

VIn_LUM_ADDER
VIn_LUM_ADDER is the luminance adder register that is used to collect statistics on the
luminance of all the active images instead of the luminance of the captured image.

Bit

Offset Address

Register Name

Total Reset Value

0x0050+nx0x1000

VIn_LUM_ADDER

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vi_lum_adder

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

vi_lum_adder

Accumulated luminance value.

0

0

If the image block mask function is enabled, the luminance of the masked image block is insensitive to
this register. In other words, when this register collects statistics on the luminance of the masked area,
the statistics on the luminance of the masked image instead of the masked block is collected.

VIn_LUM_STRH
VIn_LUM_STRH is the luminance stretch register that is used to adjust the luminance of
input images. The formula is as follows:

6-52

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

luma _ out = ( sign(luma _ in − m0) * (k * | luma _ in − m0 | +64) >> 7) + m0
Where, m0 indicates the average luminance of the previous frame or field. It is calculated by
dividing the accumulated luminance value (register VIn_LUM_ADDER) by the number of
pixels of input images. The number of pixels refers to the number of received pixels instead of
the number of pixels of the captured images.
The letter k indicates the stretch factor and ranges from 64 to 196. The value 128 indicates
that the luminance difference between adjacent pixels keeps unchanged. If the value of k
ranges from 64 to 128, the luminance difference between adjacent pixels is decreased; if the
value of k ranges from 128 to 196, the luminance difference between adjacent pixels is
increased.
It is recommended to set m1 and m0 to a same value.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-53

Hi3515
Data Sheet

6 Video Interface
Register Name

Total Reset Value

0x0054+nx0x1000

VIn_LUM_STRH

0x0000_0000

Name

Reset 0

0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

m1

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6

5

4

m0

0

0

0

0

0

0

3

2

1

0

0

0

0

0

k

0

Bits

Access

Name

Description

[31:30]

RO

reserved

Reserved.

[29:20]

RW

m1

Average luminance value 1.

[19:18]

RO

reserved

Reserved.

[17:8]

RW

m0

Average luminance value 0.

[7:0]

RW

k

Luminance stretch factor.

0

0

0

0

0

0

0

VIn_LUM_DIFF_ADDER
VIn_LUM_DIFF_ADDER is the luminance difference adder register. Its value is the sum of
the absolute values of the differences between the luminance value of each input image and
the average value m1 of VIn_LUM_STRH. VIn_LUM_DIFF_ADDER collects statistics on
the luminance of all the active images but not only the luminance of the captured image. In
frame storage mode, this register collects statistics by frames; in field storage mode, this
register collects statistics by fields. The luminance of an input image refers to the luminance
before down scaling. You can determine whether to enable the luminance stretch function
based on this register.

Bit

z

If the value of this register is large, it indicates that the luminance difference between the
adjacent pixels of the previous frame or field is great. In this case, if you want to
decrease the luminance difference, set the factor k of VIn_LUM_STRH to a value less
than 128.

z

If the value of this register is small, it indicates that the luminance difference is small. In
this case, if you want to increase it, you can set the factor k of VIn_LUM_STRH to a
value greater than 128.

Offset Address

Register Name

Total Reset Value

0x0058+nx0x1000

VIn_LUM_DIFF_ADDER

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

lum_diff_adder

Reset 0

6-54

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

lum_diff_adder

Accumulated luminance difference value. In 720p HD mode, the
accumulated luminance difference value of channel 0 is equal to

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

that of input images. The accumulated value of channel 4 is
invalid. In addition, the value of this register can be written only
when the next frame or field occurs.

VIn_BLOCK0_START
VIn_BLOCK0_START is the start position register of image block 0.

Bit

Offset Address

Register Name

Total Reset Value

0x005C+nx0x1000

VIn_BLOCK0_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block0_starty
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block0_startx
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block0_starty

Number of the line from which image block 0 starts to be filled.

[11:0]

RW

block0_startx

Number of the pixel from which image block 0 starts to be filled.

VIn_BLOCK1_START
VIn_BLOCK1_START is the start position register of image block 1.

Bit

Offset Address

Register Name

Total Reset Value

0x0060+nx0x1000

VIn_BLOCK1 _START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block1_starty
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block1_startx
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block1_starty

Number of the line from which image block 1 starts to be filled.

[11:0]

RW

block1_startx

Number of the pixel from which image block 1 starts to be filled.

VIn_BLOCK2_START
VIn_BLOCK2_START is the start position register of image block 2.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-55

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0064+nx0x1000

VIn_BLOCK2 _START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block2_starty
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block2_startx
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

name

description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block2_starty

Number of the line from which image block 2 starts to be filled.

[11:0]

RW

block2_startx

Number of the pixel from which image block 2 starts to be filled.

VIn_BLOCK3_START
VIn_BLOCK3_START is the start position register of image block 3.

Bit

Offset Address

Register Name

Total Reset Value

0x0068+nx0x1000

VIn_BLOCK3_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block3_starty
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block3_startx
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

name

description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block3_starty

Number of the line from which image block 3 starts to be filled.

[11:0]

RW

block3_startx

Number of the pixel from which image block 3 starts to be filled.

VIn_BLOCK0_SIZE
VIn_BLOCK0_SIZE is the size register of image block 0.

Bit

Register Name

Total Reset Value

0x006C+nx0x1000

VIn_BLOCK0_SIZE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0
Bits

6-56

Offset Address

0

0

0

0

Access

8

block0_height
0

0

0

Name

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block0_width
0

0

0

0

0

0

0

0

0

0

0

0

description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block0_height

Height of image block 0 to be filled (in lines).

[11:0]

RW

block0_width

Width of image block 0 to be filled (in pixels).

VIn_BLOCK1_SIZE
VIn_BLOCK1_SIZE is the size register of image block 1.

Bit

Offset Address

Register Name

Total Reset Value

0x0070+nx0x1000

VIn_BLOCK1_SIZE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block1_height
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

3

2

1

0

0

0

0

0

block1_width
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block1_height

Height of image block 1 to be filled (in lines).

[11:0]

RW

block1_width

Width of image block 1 to be filled (in pixels).

0

0

VIn_BLOCK2_SIZE
VIn_BLOCK2_SIZE is the size register of image block 2.

Bit

Offset Address

Register Name

Total Reset Value

0x0074+nx0x1000

VIn_BLOCK2_SIZE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block2_height
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

block2_width
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block2_height

Height of image block 2 to be filled (in lines).

[11:0]

RW

block2_width

Width of image block 2 to be filled (in pixels).

0

0

VIn_BLOCK3_SIZE
VIn_BLOCK3_SIZE is the size register of image block 3.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-57

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0078+nx0x1000

VIn_BLOCK3_SIZE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

block3_height
0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

block3_width
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:12]

RW

block3_height

Height of image block 3 to be filled (in lines).

[11:0]

RW

block3_width

Width of image block 3 to be filled (in pixels).

0

0

VIn_BLOCK0_COLOR
VIn_BLOCK0_COLOR is the filling color register of image block 0.
Note the following points when filling colors:

Bit

z

The colors for filling images must be in the format of YCbCr.

z

If multiple mask blocks are configured for the VIU and the blocks are overlapped with
each other, the colors of the overlapped part are blended based on the priorities 0–3 in
sequence. That is, blending block 0 takes the highest priority, whereas blending block 3
takes the lowest priority.

Offset Address

Register Name

Total Reset Value

0x007C+nx0x1000

VIn_BLOCK0_COLOR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

block0_y
0

0

0

0

0

0

0

0

8

7

6

5

block0_u
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

block0_v
0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:16]

RW

block0_y

Y component of the filling color of image block 0.

[15:8]

RW

block0_u

Cb component of the filling color of image block 0.

[7:0]

RW

block0_v

Cr component of the filling color of image block 0.

0

0

VIn_BLOCK1_COLOR
VIn_BLOCK0_COLOR is the filling color register of image block 1.
Offset Address

6-58

Register Name

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Total Reset Value

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

0x0080+nx0x1000
Bit

VIn_BLOCK1_COLOR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

block1_y
0

0

0

0

0

0

0

0

8

7

6

5

block1_u
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

2

1

0

0

0

0

block1_v
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:16]

RW

block1_y

Y component of the filling color of image block 1.

[15:8]

RW

block1_u

Cb component of the filling color of image block 1.

[7:0]

RW

block1_v

Cr component of the filling color of image block 1.

0

VIn_BLOCK2_COLOR
VIn_BLOCK2_COLOR is the filling color register of image block 2.

Bit

Offset Address

Register Name

Total Reset Value

0x0084+nx0x1000

VIn_BLOCK2_COLOR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

block2_y
0

0

0

0

0

0

0

0

8

7

6

5

block2_u
0

0

0

0

0

0

0

0

4

3

block2_v
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:16]

RW

block2_y

Y component of the filling color of image block 2.

[15:8]

RW

block2_u

Cb component of the filling color of image block 2.

[7:0]

RW

block2_v

Cr component of the filling color of image block 2.

0

VIn_BLOCK3_COLOR
VIn_BLOCK3_COLOR is the filling color register of image block 3.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-59

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0088+nx0x1000

VIn_BLOCK3_COLOR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

block3_y
0

0

0

0

0

0

0

0

8

7

6

5

block3_u
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

block3_v
0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

[23:16]

RW

block3_y

Y component of the filling color of image block 3.

[15:8]

RW

block3_u

Cb component of the filling color of image block 3.

[7:0]

RW

block3_v

Cr component of the filling color of image block 3.

0

0

VIn_ANC0_START
VIn_ANC0_START is the start position register of blanking area data block 0.
Register Name

Total Reset Value

0x009C+nx0x1000

VI_ANC0_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

anc0_loc

Bit

Offset Address

reserved

Reset 0

0

0

0

0

0

0

0

8

7

anc0_vos

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

anc0_hos

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

Blanking area containing data.
00: odd front blanking area
01: odd back blanking area
[25:24]

RW

anc0_loc

10: even front blanking area
11: even back blanking area
Note: In progressive mode, there is only the odd front blanking
area. In DC mode, the blanking area data cannot be received.

[23:12]
[11:0]

6-60

RW

anc0_vos

RW

anc0_hos

Distance from the start of the blanking area to the line containing
the blanking area data (in lines).
Horizontal offset from the start of the line valid data to the start of
the blanking area data (in clock cycles).

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VIn_ANC0_SIZE
VIn_ANC0_SIZE is the size register of blanking area data block 0.

Bit

Offset Address

Register Name

Total Reset Value

0x00A0+nx0x1000

VIn_ANC0_SIZE

0x0000_0020

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

Reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

anc0_size
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:12]

RO

Reserved

Reserved.

[11:0]

RW

anc0_size

Size of the blanking area data block (in clock).

1

VIn_ANC1_START
VIn_ANC1_START is the start position register of blanking area data block 1.
Register Name

Total Reset Value

0x00A4+nx0x1000

VIn_ANC1_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

anc1_loc

Bit

Offset Address

reserved

Reset 0

0

0

0

0

0

0

0

8

7

anc1_vos

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

anc1_hos

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

Blanking area containing data.
00: odd front blanking area
01: odd back blanking area
[25:24]

RW

anc1_loc

10: even front blanking area
11: even back blanking area
Note: In progressive mode, there is only the odd front blanking
area. In DC mode, the blanking area data cannot be received.

[23:12]
[11:0]

RW

anc1_vos

Distance from the start of the blanking area to the line containing
the blanking area data (in lines).

RW

anc1_hos

Horizontal offset from the start of the line valid data to the start of
the blanking area data (in clock cycles).

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-61

Hi3515
Data Sheet

6 Video Interface

VIn_ANC1_SIZE
VIn_ANC1_SIZE is the size register of blanking area data block 1.

Bit

Offset Address

Register Name

Total Reset Value

0x00A8+nx0x1000

VIn_ANC1_SIZE

0x0000_0020

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

Reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

anc1_size
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

Bits

Access

Name

Description

[31:12]

RO

Reserved

Reserved.

[11:0]

RW

anc1_size

Size of the blanking area data block (in clock cycles).

VIn_ANC0_WORD
VIn_ANC0_WORD is register group 1 that is used to store the obtained 16-word blanking
area data. Register group 1 contains eight 32-bit registers. Data is stored in the registers
starting from VIn_ANC0_WORD0. The offset address of each register is as follows:
z

0x00AC: VIn_ANC0_WORD0

z

0x00B0: VIn_ANC0_WORD1

z

0x00B4: VIn_ANC0_WORD2

z

0x00B8: VIn_ANC0_WORD3

z

0x00BC: VIn_ANC0_WORD4

z

0x00C0: VIn_ANC0_WORD5

z

0x00C4: VIn_ANC0_WORD6

z

0x00C8: VIn_ANC0_WORD7

The following table describes the registers by taking VIn_ANC0_WORD0 as an example.
The rest may be deduced by analogy.

Bit

Offset Address

Register Name

Total Reset Value

0x00AC+nx0x1000

VIn_ANC0_WORD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

1

0

0

0

0

0

vin_anc0_word

Reset 0

6-62

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

vin_anc0_word

Register for storing the first word blanking area data, which
belongs to register group 1.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VIn_ANC1_WORD
VIn_ANC1_WORD is register group 2 that is used to store the obtained 16-word blanking
area data. Register group 2 contains eight 32-bit registers. Data is stored in the registers
starting from VIn_ANC1_WORD0. The offset address of each register is as follows:
z

0x00CC: VIn_ANC1_WORD0

z

0x00D0: VIn_ANC1_WORD1

z

0x00D4: VIn_ANC1_WORD2

z

0x00D8: VIn_ANC1_WORD3

z

0x00DC: VIn_ANC1_WORD4

z

0x00E0: VIn_ANC1_WORD5

z

0x00E4: VIn_ANC1_WORD6

z

0x00E8: VIn_ANC1_WORD7

The following table describes the registers by taking VIn_ANC1_WORD0 as an example.
The rest may be deduced by analogy.

Bit

Offset Address

Register Name

Total Reset Value

0x00CC+nx0x1000

VIn_ANC1_WORD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

1

0

0

0

0

0

vin_anc1_word

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

vin_anc1_word

Register for storing the first word blanking area data, which
belongs to register group 2.

Figure 6-31 shows the sequence of storing blanking area data in registers.
Figure 6-31 Sequence of storing blanking area data in registers
Blanking
area data

Byte0

Byte1

Byte2

bit31
Sequence of
storing blanking
area data in
registers

Byte31

bit0

Byte0

Byte1

Byte2

Byte3

ANC_WORD0

Byte4

Byte5

Byte6

Byte7

ANC_WORD1

Byte30

Byte31 ANC_WORD7

... ...
Byte28

Issue 02 (2010-04-20)

... ...

Byte29

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-63

Hi3515
Data Sheet

6 Video Interface

VI_P0_VSYNC1
When port 0 works in BT.601 mode, VI_P0_VSYNC1 is the vertical sync configuration
register of field 1 and is valid for channel 0 only. When port 0 is connected to the 16-bit
parallel interface and horizontal synchronization is performed in pulse mode,
VI_P0_VSYNC1 is the vertical sync configuration register and is valid for channel 0 and
channel 4.

Bit

Offset Address

Register Name

Total Reset Value

0x00EC

VI_P0_VSYNC1

0x0001_511F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

act1_voff
0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

1

1

1

1

act1_height
1

0

1

0

1

0

0

0

1

0

0

0

1

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

act1_voff

In BT.601 mode, act1_voff indicates the vertical distance from the
start of field 1 to the active image; in 16-bit parallel interface
mode, act1_voff indicates the vertical distance from the start of the
frame to the active image. The distance is in the unit of line and its
default value is 21. It is set to the value of subtracting 1 from the
number of actual lines.

act1_height

In BT.601 mode, act1_height indicates the height of active image
of field 1; in 16-bit parallel interface mode, act1_height indicates
the height of the active image. The height is in the unit of line and
its default value is 287. It is set to the value of subtracting 1 from
the number of actual lines.

[23:12]

RW

[11:0]

RW

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

VI_P2_VSYNC1
When port 2 works in BT.601 mode, VI_P2_VSYNC1 is the vertical sync configuration
register of field 1and is valid for channel 8 only. When port 2 is connected to the 16-bit
parallel interface and horizontal synchronization is performed in pulse mode,
VI_P2_VSYNC1 is the vertical sync configuration register and is valid for channel 8 and
channel 12.

Bit

Register Name

Total Reset Value

0x80EC

VI_P0_VSYNC1

0x0001_511F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name
Reset 0

6-64

Offset Address

reserved
0

0

0

0

8

act1_voff
0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

1

1

1

1

act1_height
1

0

1

0

1

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

0

0

0

1

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

act1_voff

In BT.601 mode, act1_voff indicates the vertical distance from the
start of the active image of field 1; in 16-bit parallel interface
mode, act1_voff indicates the vertical distance from the start of the
frame to the active image. The distance is in the unit of line and its
default value is 21. It is set to the value of subtracting 1 from the
number of actual lines.

act1_height

In BT.601 mode, act1_height indicates the height of the active
image of field 1; in 16-bit parallel interface mode, act1_height
indicates the height of the active image. The height is in the unit of
line and its default value is 287. It is set to the value of subtracting
1 from the number of actual lines.

[23:12]

RW

[11:0]

RW

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

VI_P0_VSYNC2
When port 0 works in BT.601 mode, VI_P0_VSYNC2 is the vertical sync configuration
register of field 2 and is valid for channel 0 only.

Bit

Offset Address

Register Name

Total Reset Value

0x00F0

VI_P0_VSYNC2

0x0001_611F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

1

0

act2_voff
1

1

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:24]

RO

reserved

Reserved.

RW

act2_voff

7

6

5

4

3

2

1

0

1

1

1

1

act2_height

Bits

[23:12]

8

1

0

0

0

0

0

0

1

0

0

0

1

act2_voff indicates the vertical distance from the start of field 2 to
the active image.
The distance is in the unit of line and its default value is 22. It is
set to the value of subtracting 1 from the number of actual lines
act2_height indicates the height of the active image of field 2.

[11:0]

RW

act2_height

The height is in the unit of line and its default value is 287. It is set
to the value of subtracting 1 from the number of actual lines

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-65

Hi3515
Data Sheet

6 Video Interface

VI_P2_VSYNC2
When port 2 works in BT.601 mode, VI_P2_VSYNC2 is the vertical sync configuration
register of field 2 and is valid for channel 8 only.

Bit

Offset Address

Register Name

Total Reset Value

0x80F0

VI_P0_VSYNC2

0x0001_611F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

1

0

act2_voff
1

1

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:24]

RO

reserved

Reserved.

RW

7

6

5

4

3

2

1

0

1

1

1

1

act2_height

Bits

[23:12]

8

1

0

0

0

0

0

0

1

0

0

0

1

act2_voff indicates the vertical distance from the start of field 2 to
the active image.

act2_voff

The distance is in the unit of line and its default value is 22. It is
set to the value of subtracting 1 from the number of actual lines
act2_height indicates the height of the active image of field 2.

[11:0]

RW

act2_height

The height is in the unit of line and its default value is 287. It is set
to the value of subtracting 1 from the number of actual lines

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

VI_P0_HSYNC
VI_P0_HSYNC is the horizontal sync configuration register. When port 0 works in
BT.601mode, this register is valid for channel 0 only; when port 0 is connected to the 16-bit
parallel interface and horizontal synchronization is performed in pulse mode, this register is
valid for channel 0 and channel 4.

Bit

Register Name

Total Reset Value

0x00F4

VI_P0_HSYNC

0x0004_159F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

6-66

Offset Address

0

0

0

0

8

7

act_hoff
0

0

0

0

0

0

0

0

1

0

6

5

4

3

2

1

0

1

1

1

1

1

act_width
0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

0

1

0

1

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

1

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Distance from the end of the previous line to the active data area
of the current line (in clock cycles).
[23:12]

RW

In BT.601 mode, the distance is 263 by default and can be set to
the value of subtracting 1 from two times of the number of pixels.

act_hoff

In 16-bit parallel interface mode, the distance can be set to the
value of subtracting 1 from the number of pixels.
Width of the active image (in clock cycles).
[11:0]

RW

In BT.601 mode, the width is 1439 (720 pixels) by default and can
be set to the value of subtracting 1 from two times of the number
of pixels.

act_width

In 16-bit parallel interface mode, the distance can be set to the
value of subtracting 1 from the number of pixels.

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

VI_P2_HSYNC
VI_P2_HSYNC is the horizontal sync configuration register. When port 2 works in
BT.601mode, this register is valid for channel 8 only; when port 2 is connected to the 16-bit
parallel interface and horizontal synchronization is performed in pulse mode, this register is
valid for channel 8 and channel 12.

Bit

Offset Address

Register Name

Total Reset Value

0x80F4

VI_P2_HSYNC

0x0004_159F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

act_hoff
0

0

0

0

0

0

0

0

1

0

6

5

4

3

2

1

0

1

1

1

1

1

act_width
0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

0

1

0

1

0

1

1

0

0

Distance from the end of the previous line to the active data area
of the current line (in clock cycles).
[23:12]

RW

act_hoff

In BT.601 mode, the distance is 263 by default and can be set to
the value of subtracting 1 from two times of the number of pixels.
In 16-bit parallel interface mode, the distance can be set to the
value of subtracting 1 from the number of pixels.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-67

Hi3515
Data Sheet

6 Video Interface

Width of the active image (in clock cycles).
[11:0]

RW

act_width

In BT.601 mode, the width is 1439 (720 pixels) by default and can
be set to the value of subtracting 1 from two times of the number
of pixels.
In 16-bit parallel interface mode, the distance can be set to the
value of subtracting 1 from the number of pixels.

When the 16-bit parallel interface is used, the timing registers of the luminance channel and
chrominance channel need to be configured and the configured values must be the same.

VI_PRIO_CFG
VI_PRIO_CFG is the channel priority configuration register that is used to configure the
priorities of the 16 internal channels of the VIU. Each channel supports two priorities.

6-68

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x00F8

VI_PRIO_CFG

0x0004_0000

1

0

0

vi0_prio_ctrl

0

vi1_prio_ctrl

0

vi2_prio_ctrl

0

vi3_prio_ctrl

0

vi4_prio_ctrl

0

vi5_prio_ctrl

0

vi6_prio_ctrl

0

0

vi7_prio_ctrl

0

1

vi8_prio_ctrl

0

2

vi9_prio_ctrl

0

3

vi10_prio_ctrl

0

4

vi11_prio_ctrl

0

5

vi12_prio_ctrl

Reset 0

6

vi13_prio_ctrl

reserved

7

vi14_prio_ctrl

Name

8

vi15_prio_ctrl

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
outstanding_max

Bit

6 Video Interface

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RO

reserved

Reserved.

[19:16]

RW

outstanding_max

Maximum outstanding value of the AXI bus.
Priority control bit of channel 15.

[15]

RW

vi15_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 14.

[14]

RW

vi14_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 13.

[13]

RW

vi13_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 12.

[12]

RW

vi12_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 11.

[11]

RW

vi11_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 10.

[10]

RW

vi10_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 9.

[9]

RW

vi9_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 8.

[8]

RW

vi8_prio_ctrl

0: normal priority
1: high priority

[7]

RW

Issue 02 (2010-04-20)

vi7_prio_ctrl

Priority control bit of channel 7.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-69

Hi3515
Data Sheet

6 Video Interface

0: normal priority
1: high priority
Priority control bit of channel 6.
[6]

RW

vi6_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 5.

[5]

RW

vi5_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 4.

[4]

RW

vi4_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 3.

[3]

RW

vi3_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 2.

[2]

RW

vi2_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 1.

[1]

RW

vi1_prio_ctrl

0: normal priority
1: high priority
Priority control bit of channel 0.

[0]

RW

vi0_prio_ctrl

0: normal priority
1: high priority

VIn_LUM_COEF0
VIn_LUM_COEF0 is the luminance filtering coefficient register 0
The format of a filtering coefficient is as follows: The MSB is the sign bit and nine lower bits
are the absolute values of the coefficient.
The sum of lum_coef0–lum_coef7 is 512.
During 1/2 down scaling, the recommended values of lum_coef0–lum_coef7 are –16, 0, 145,
254, 145, 0, –16, and 0 respectively.

6-70

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x00FC+nx0x1000

VIn_LUM_COEF0

0x0000_0210

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

lum_coef1
0

0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

2

1

0

0

0

1

lum_coef0
0

0

1

0

0

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

lum_coef1

Luminance filtering coefficient 1. Its default value is 0.

[15:10]

RO

reserved

Reserved.

[9:0]

RW

lum_coef0

Luminance filtering coefficient 0. Its default value is –16.

VIn_LUM_COEF1
VIn_LUM_COEF1 is the luminance filtering coefficient register 1
The filtering coefficient is in the form of complement code and the MSB is sign bit.

Bit

Offset Address

Register Name

Total Reset Value

0x0100+nx0x1000

VIn_LUM_COEF1

0x00FE_0091

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

lum_coef3
0

0

0

0

1

1

1

1

1

8

7

reserved
1

1

0

0

0

0

0

6

5

4

3

lum_coef2
0

0

0

0

1

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

lum_coef3

Luminance filtering coefficient 3. Its default value is 254.

[15:10]

RO

reserved

Reserved.

[9:0]

RW

lum_coef2

Luminance filtering coefficient 2. Its default value is 145.

VIn_LUM_COEF2
VIn_LUM_COEF2 is the luminance filtering coefficient register 2
The filtering coefficient is in the form of complement code and the MSB is sign bit.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-71

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0104+nx0x1000

VIn_LUM_COEF2

0x0000_0091

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

lum_coef5
0

0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

1

2

1

0

0

0

0

lum_coef4
0

0

0

0

1

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

lum_coef5

Luminance filtering coefficient 5. Its default value is 0.

[15:10]

RO

reserved

Reserved.

[9:0]

RW

lum_coef4

Luminance filtering coefficient 4. Its default value is 145.

VIn_LUM_COEF3
VIn_LUM_COEF3 is the luminance filtering coefficient register 3.
The filtering coefficient is in the form of complement code and the MSB is sign bit.

Bit

Offset Address

Register Name

Total Reset Value

0x0108+nx0x1000

VIn_LUM_COEF3

0x0000_0210

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

lum_coef7
0

0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

6

5

4

3

lum_coef6
0

0

1

0

0

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

lum_coef7

Luminance filtering coefficient 7. Its default value is 0.

[15:10]

RO

reserved

Reserved.

[9:0]

RW

lum_coef6

Luminance filtering coefficient 6. Its default value is –16.

VIn_CHROMA_COEF0
VIn_CHROMA_COEF0 is the chrominance filtering coefficient register 0.
The format of a filtering coefficient is as follows: The MSB is the sign bit and the nine lower
bits are the absolute values of the coefficient.
The sum of chroma_coef0–chroma_coef3 is 512.

6-72

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

During 1/2 down scaling, the recommended values of chroma_coef0–chroma_coef3 are 148,
171, 148, and 45 respectively.
During chrominance resampling, the recommended values of chroma_coef0–chroma_coef3
are –32, 416, 160, and –32 respectively.

Bit

Offset Address

Register Name

Total Reset Value

0x010C+nx0x1000

VIn_CHROMA_COEF0

0x00AB_0094

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

chroma_coef1
0

0

0

0

1

0

1

0

1

8

7

reserved
0

1

1

0

0

0

0

6

5

4

3

2

1

0

1

0

0

2

1

0

1

0

0

chroma_coef0
0

0

0

0

1

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

chroma_coef1

Chrominance filtering coefficient 1. Its default value is 171.

[15:10]

RO

reserved

Reserved.

[9:0]

RW

chroma_coef0

Chrominance filtering coefficient 0. Its default value is 148.

VIn_CHROMA_COEF1
VIn_CHROMA_COEF1 is the chrominance filtering coefficient register 1.
The filtering coefficient is in the form of complement code and the MSB is sign bit.

Bit

Offset Address

Register Name

Total Reset Value

0x0110+nx0x1000

VIn_CHROMA_COEF1

0x002D_0094

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

chroma_coef3
0

0

0

0

0

0

1

0

8

7

reserved
1

1

0

1

0

0

0

0

6

5

4

3

chroma_coef2
0

0

0

0

1

0

0

1

0

Bits

Access

Name

Description

[31:26]

RO

reserved

Reserved.

[25:16]

RW

chroma_coef3

Chrominance filtering coefficient 3. Its default value is 45.

[15:10]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-73

Hi3515
Data Sheet

6 Video Interface

[9:0]

RW

chroma_coef2

Chrominance filtering coefficient 2. Its default value is 148.

6.2 VOU
6.2.1 Overview
The video output unit (VOU) reads the video data and graphic data from the specific positions
of a memory, and then outputs the data through two display channels including the highdefinition (HD) display channel and standard-definition (SD) display channel. It can process
the graphic data of six layers at the same time including two video layers, three graphics
layers, and one hardware cursor (HC) layer. In addition, the VOU supports various output
interfaces through two display channels. Such output interfaces include BT.656 digital
interface, composite video broadcast signal (CVBS) interface, and red-green-blue (RGB)
analog interface.

6.2.2 Features
The VOU has the following features:
1.

Supports two types of output interfaces
Digital interfaces:
−

8-bit ITU-R BT.656/YCbCr 4:2:2 standard output interface (PAL/NTSC standard
@27 MHz)

Analog interfaces:

z

−

M-NTSC or NTSC-J output interface

−

(B, D, G, H, I) PAL, (N) PAL, (Nc) PAL, or (M) PAL output interface

−

Video graphics array (VGA) output interface

Processes the data of six layers at the same time
HD video layer:

6-74

−

Supports three data read modes that can be configured through software: interlaced
mode, progressive mode, and bottom field only mode

−

Supports two input pixel formats: semi-planar YCbCr4:2:2 and semi-planar
YCbCr4:2:0

−

Supports the global alpha value

−

Supports horizontal and vertical scaling, that is, up to 2 x scaling down and 4 x
scaling up

−

Supports 8-order horizontal luminance filtering and 4-order horizontal chrominance
filtering in the formats of YCbCr4:2:2 and YCbCr4:2:0. For each filtering mode,
there are 32 groups of configurable filtering coefficients.

−

Supports 4-order vertical luminance filtering and 4-order vertical chrominance
filtering in the format of YCbCr4:2:2. For each filtering mode, there are 32 groups of
configurable filtering coefficients.

−

Supports 4-order vertical luminance filtering and 2-order vertical chrominance
filtering in the format of YCbCr4:2:0. For each filtering mode, there are 32 groups of
configurable filtering coefficients.

−

Supports two de-interlace modes: 2-field median filtering and 4-field modes

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface
−

Supports the maximum input resolution of 1440 x 900 and the minimum input
resolution of 32 x 32

SD video layer:
−

Supports three data read modes that can be configured through software: interlaced
mode, progressive mode, and bottom field only mode

−

Supports two input pixel formats: semi-planar YCbCr4:2:2 and semi-planar
YCbCr4:2:0

−

Supports the global alpha value

−

Supports the maximum input resolution of 720 x 576 and the minimum input
resolution of 32 x 32

Graphics layer 0:
−

Supports the 16-bit pixel formats ARGB1555, ARGB8888, and ARGB4444

−

Supports the premultiplied pixel format

−

Supports colorkey processing

−

Supports global alpha and pixel alpha values

−

Supporting BT.601 and BT.709 color space conversion

Graphics layer 1: Its features are the same as those of graphics layer 0.
Graphics layer 2: Its features are the same as those of graphics layer 0.
HC layer: Its features are the same as those of graphics layer 0.
z

z

Supports blending functions
−

Supports two mixers: mixer 1 (for the HD display channel) and mixer 2 (for the SD
display channel)

−

Mixer 1 supports the following blended layers: 24-bit background color layer, HD
video layer, graphics layer 0, graphics layer 1, and HC layer. The background color
layer has the lowest priority and the HC layer has the highest priority. The priorities
of other layers are configurable.

−

Mixer 2 supports the following blended layers: 24-bit background color layer, SD
video layer, graphics layer 1, graphics layer 2, and HC layer. The background color
layer has the lowest priority and the HC layer has the highest priority. The priorities
of other layers are configurable.

Supports two display channels
HD display channel
−

Supports the VGA analog interface, up to 1440 x 900@60Hz

−

Supports the conversion from YCbCr to RGB. The conversion coefficient is
configurable.

−

Supports the adjustable contrast, luminance, and saturation

−

Supports dynamic gamma adjust

SD display channel
−

Supports CVBS analog output (NTSC/PAL)

−

Supports the conversion from YCbCr to RGB. The conversion coefficient is
configurable.

−

Supports the adjustable contrast, luminance, and saturation

6.2.3 Signal Description
Table 6-8 lists the signals of the VOU digital output interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-75

Hi3515
Data Sheet

6 Video Interface

Table 6-8 Signals of the VOU digital output interface
Signal

Direction

Description

Pin

clk_vo0out

O

BT.656 associated clock output. The
normal phase output mode and reverse
phase output mode are configurable.

VOCK

vo_vga0_hsync

O

Horizontal sync signal output of the HD
channel

VGAHS

vo_vga0_vsync

O

Vertical sync signal output of the HD
channel

VGAVS

vo_656[0]

O

BT.656 data output

VODAT0

vo_656[1]

VODAT1

vo_656[2]

VODAT2

vo_656[3]

VODAT3

vo_656[4]

VODAT4

vo_656[5]

VODAT5

vo_656[6]

VODAT6

vo_656[7]

VODAT7

Table 6-9 lists the signals of the VOU analog output interface.
Table 6-9 Signals of the VOU analog output interface
Signal

Direction

Description

Pin

vo_dac0

O

R component of the VGA, connected to
DAC1 output

DACVGA1R

vo_dac1

O

G component of the VGA, connected to
DAC1 output

DACVGA1G

vo_dac2

O

B component of the VGA, connected to
DAC1 output

DACVGA1B

vo_dac3

O

CVBS, connected to DAC0 output

DACVGA0R

6.2.4 Function Description
VOU Output Interfaces
Figure 6-32 shows the multiplexing relationship between VOU interfaces. The interface
multiplexing is controlled by configuring the VOMUX register.

6-76

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-32 Multiplexing relationship between VOU interfaces
VOU

VOU_CORE
VGA sync signal
DHD

vo_dac0
pdata_hd[29:0]

HD VGA output

vo_dac1
vo_dac2

DSD

DATE
pdata_sd[9:2]

vo_dac3

CVBS_SD output

vo_656

BT.656 output

Functions of Video Layers
1.

De-interlace

The de-interlace algorithm is classified into two modes based on the requirements on the
image quality:
z

2-field median filtering mode

z

4-field mode (motion estimation, time-domain filtering, spatio-temporal weight, and
edge detection)

The 4-field mode involves full-bandwidth mode and half-width mode. The time-domain
filtering is supported in full-bandwidth mode only.
The consumed system bandwidth varies according to the data amount to be processed. When
a frame is output, 2-field data needs to be read in 2-field median filtering mode and 4-field
data needs to be read in 4-field mode.
2.

Scaling

The scaling unit of the VOU uses the 8-order, 4-order, and 2-order finite impulse response
(FIR) filters with 32 phases. All filter coefficients are configurable.
z

The horizontal luminance is scaled by using the 8-order FIR filter with 32 phases.

z

The horizontal chrominance and vertical luminance are scaled by using the 4-order FIR
filter with 32 phases.

z

The vertical chrominance in the YCbCr4:2:2 format is scaled by using the 4-order FIR
filter with 32 phases.

z

The vertical chrominance in the YCbCr4:2:0 format is scaled by using the 2-order FIR
filter with 32 phases.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-77

Hi3515
Data Sheet

6 Video Interface

Functions of the Graphics Layers
1.

Alpha processing

The VOU has four graphics layers: graphics layer 0, graphics layer 1, graphics layer 2, and
HC layer. The layers are blended according to their priorities. The blending alpha value has
129 levels and the sources of the alpha value is related to layers.
z

The alpha value of video layers originates from only the global alpha value configured
by registers.

z

The alpha value of graphics layers can originate from the following two sources:
−

Pixel alpha value: blending attribute of a pixel.

−

Global alpha value: blending attribute of a layer.

When n (n ≥ 2) layers are blended, the preceding two attributes are considered at the same
time. The alpha value of n blended layers is equal to the product of n alpha values. The global
alpha value is obtained according to the configuration. When there is no pixel alpha value, its
value is the maximum value 1 by default.
There is a special case for the pixel alpha value. In the RGB1555 format, the alpha value is
only one bit. This bit is not the actual alpha value. It is the index of the alpha value that is
used to select the actual alpha value from the alpha register. That is, the actual alpha value is
selected based on the values of alpha0 and alpha1.

When a pixel is the colorkey, this pixel cannot be blended.
Figure 6-33 shows how to process the pixel alpha data of a graphics layer.

6-78

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-33 Processing the pixel alpha data of a graphics layer
Parse the data format

No
Is there any alpha
value?
Yes
Is the alpha value only
one bit?

No
pixel_alpha = 1

Yes
Query the alpha register

No
Is the colorkey is enabled
and does the pixel belong
to the keycolor?
Yes
Yes
pixel_alpha = key_alpha = 0
alpha = pixel_alpha x galpha

Output the alpha value

pixel_alpha: pixel alpha value
galpha: global alpha value
key_alpha: alpha value of the colorkey

2.

Colorkey processing

At graphics layers, the color that is the same as the selected color is called the colorkey. The
colorkey is configured by registers. When the colorkey is enabled, the hardware matches
colors at corresponding layers. When the hardware finds the colorkey, the hardware replaces
the alpha value of the color with 0. The part with the colorkey is processed as a transparent
part.

Coordinates of Video Layers
Each video layer has three sets of coordinates, as shown in Figure 6-34. The coordinates are
as follows:
z

Issue 02 (2010-04-20)

Source start coordinates of the data to be read
HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-79

Hi3515
Data Sheet

6 Video Interface
z

Start and end coordinates of the video to be displayed

z

Start and end coordinates of the video displayed on the screen

z

The source start coordinates must be set to (0, 0).

z

The start and end coordinates of the video to be displayed and the start and end
coordinates of the video displayed on the screen must be the same.

Figure 6-34 Three sets of coordinates of a video layer
Display screen

Start address of the
source map (vhdladdr)
Original picture

VHDDFPOS

Display position
of the video layer

Actual display position
of the video layer

Picture to be read

VHDSFPOS

ih
(source height)

VHDVFPOS
VHDVLPOS

oh
(source
height)

vact
(height of the
valid display
area)

iw (source width)

Stride
ow (source width)
hact
(width of the valid display area)

VHDDLPOS

Color Space Conversion
The VOU supports color space conversion from YCbCr to RGB or from RGB to YCbCr and
color enhancement.
z

Conversion from YCbCr to RGB
The data format is YCbCr during blending. If the data is displayed in VGA, the format
needs to be converted from YCbCr to RGB.

z

Conversion from RGB to YCbCr
If a RGB graphics layer is displayed on TV, its format needs to be converted into YCbCr
4:2:2.

The matrix of conversion from YCbCr to RGB is as follows:

⎡ R'255⎤ ⎡coef 00 coef 01 coef 02⎤ ⎡ Y '−in _ dc0 ⎤
⎢G '255⎥ = ⎢ coef 10 coef 11 coef 12 ⎥ • ⎢ Cb − in _ dc1⎥
⎥ ⎢
⎥
⎢
⎥ ⎢
⎢⎣ B'255⎥⎦ ⎢⎣coef 20 coef 21 coef 22⎥⎦ ⎢⎣Cr − in _ dc 2⎥⎦
The matrix of conversion from RGB to YCbCr is as follows:

6-80

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

⎡ Y ' ⎤ ⎡out _ dc0⎤ ⎡coef 00 coef 01 coef 02⎤ ⎡ R'255⎤
⎢Cb⎥ = ⎢ out _ dc1⎥ + ⎢ coef 10 coef 11 coef 12 ⎥ • ⎢G '255⎥
⎥
⎥ ⎢
⎥ ⎢
⎢ ⎥ ⎢
⎢⎣Cr ⎥⎦ ⎢⎣out _ dc 2⎥⎦ ⎢⎣coef 20 coef 21 coef 22⎥⎦ ⎢⎣ B'255⎥⎦

Interrupt
The VOU has 17 interrupt sources, one interrupt status register, and one interrupt mask
register. When an interrupt source is masked, the interrupt status register still records the
interrupt status, but does not report the interrupt.
The VOU supports the following interrupts:
z

Register update interrupts of the HD video layer, SD video layer, graphics layer 0,
graphics layer 1, graphics layer 2, and HC layer

z

Write bus low-bandwidth interrupts of the HD video layer

z

Bus error interrupt

z

Low-bandwidth alarm interrupts of the HD display channel and SD display channel

z

Vertical timing interrupts of the HD display channel and SD display channel

6.2.5 Operating Mode
Updates of Surface Registers
Figure 6-35 shows the updates of surface registers (non-instant registers).

z

Each surface must be connected to a display channel.

z

After all the surface parameters are configured, the register update bit regup must be
configured.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-81

Hi3515
Data Sheet

6 Video Interface

Figure 6-35 Process of configuring surface registers (recommended)
Start

Software prepares to configure surface 0

Enable surfaces

Configure the address, update mode, field
attribute, data format, overlay attribute,
resolution, and algorithm parameter

Connect surface 0 to display channel 0

Configure the surface register update bit
regup

Wait form the vtthdint interrupt of display
channel 0

End

After surface 0 is connected to display channel 0, surface 0 updates its register based on the
timing interrupt of display channel 0. Therefore, software can check whether update time of
the register is reached based on the vtthdint interrupt of display channel 0.
Hardware has two types of surface registers:
z

Working register: the register configuration of the current data channel

z

buffered register

The register values configured by software are buffered in the buffered register. After the
register update time is reached, the register values are imported to the working register. Figure
6-36 shows the frame update mode of surface registers.

6-82

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-36 Frame update mode of surface registers
ffc
Display timing

frame1

ffc

frame1

Buffered register

frame2

ffc

frame2

Working register

frame3

ffc

frame3

frame1

frame2

frame3

Software configuration Software configuration Software configuration
parameters and regup parameters and regup parameters and regup

The video layers support not only the frame update mode, but also the field update mode for
interlaced output, as shown in Figure 6-37.
In interlaced output mode, you need to set the update modes of video layers to the field update
mode by configuring the regup_rate bits of channel control registers. In Figure 6-37, ffc
indicates the point of switching between frame and fields.
Figure 6-37 Field update mode of surface registers
ffc
Display timing
Bufferred register

Tfield1

ffc

Tfield1

Working register

Bfield1
Bfield1
Tfield1

ffc

Tfield2

ffc

Tfield2
Bfield1

Tfield2

Software configuration Software configuration Software configuration
parameters and regup parameters and regup parameters and regup

Updata of Display Channel Registers
The display channel registers (instant registers) are classified into two types:
z

Operation-related registers, including the registers that are related to CSC, CLIP,
background color, and gamma. You can configure such registers at any time as required.
To avoid the display exception of any pixel, you are recommended to configure them in
the blanking area.

z

Timing-control-related registers. To configure such registers, you must disable display
channels before configuring the registers and then enable the channels after
configuration.

Configuration Mode of Blending Registers
Six surfaces are allowed to connect to mixer 1 and mixer 2. A surface cannot drive two mixers
at the same time. The mixer driven by a surface is configurable, but the mixer cannot be
changed in real time. Before changing the mixer driven by a surface, you must disable all the
related VO interface and surfaces. The configuration process is as follows:
Step 1 Disable related VO interfaces.
Step 2 Configure CBCFG bit[29:24] to query the mapping between each surface and mixer.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-83

Hi3515
Data Sheet

6 Video Interface

Step 3 Configure the registers of each surface.
Step 4 Configure the priority of each surface.
Step 5 Enable all the VO interface.
----End
You can configure the priorities of the surfaces that drive mixer 1 and mixer 2 by configuring
CBCFG bit[14:0]. It is recommended to set a lower priority for the surface of mixer 1 and set
a higher priority for the surface of mixer 2, because a surface cannot drive two mixers at the
same time.
For example, the surfaces for driving mixer 1 include VDC_HD, GDC_G0, GDC_G2 that
have the priorities from low to high. The surfaces for driving mixer 2 include VDC_SD and
GDC_G1 that also have the priorities from low to high. You can configure the priorities as
follows:
z

VDC_HD, GDC_G0, and GDC_G2 drive mixer 1.
sur_attr0 = 0; sur_attr2 = 0; sur_attr4 = 0;

z

VDC_SD and GDC_G1 drive mixer 2.
sur_attr1 = 1; sur_attr3 = 1;

z

Configure priorities.
mixer_prio0 = 1; mixer_prio1 = 3; mixer_prio2 =5; mixer_prio3 =
2;mixer_prio4 =4;

Storage and Updates of On-Chip Coefficients
The data amount of on-chip coefficients is large. To avoid additional CPU usage, the software
does not configure the coefficients through the advanced peripheral bus (APB) slave. Before
the hardware automatically updates the coefficients by reading the AXI master, the software
needs to configure the coefficient update enable bits and coefficient storage addresses. After
updates, the software adds the addresses and update commands to the coefficient update
queue. Then AXI master updates the addresses and commands. Therefore, the software can
configure multiple coefficient update commands continuously. Figure 6-38 shows how to
update the on-chip coefficients. The on-chip coefficients can be read through the APB slave.

6-84

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Figure 6-38 Updating the on-chip coefficients
Start

Software prepares coefficients

Wait for update interrupts

Configure the coefficient storage
addresses of VHDHCOEFAD and
VHDVCOEFAD

Configure the update enable bits
VO_PARAUP[vhd_hcoef_upd] and
VO_PARAUP[vhd_vcoef_upd]

Configure other coefficients

End

Disabling of the Clock
Before disabling the VOU bus clock, you must disable all the interfaces. Otherwise, the
interrupt status cannot be cleared after the bus is disabled.

6.2.6 Register Summary
Table 6-10 shows the VOU registers.
Table 6-10 Summary of VOU registers (base address: 0x2013_0000)
Offset Address

Register

Description

Page

0x0000

VO_CTRL

VO control register

6-98

0x0004

VO_INTSTA

VO interrupt status register

6-98

0x0008

VO_INTMSK

VO interrupt mask register

6-100

0x000C

VO_VERSION1

VO version register 1

6-102

0x0010

VO_VERSION2

VO version register 2

6-102

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-85

Hi3515
Data Sheet

6 Video Interface

6-86

Offset Address

Register

Description

Page

0x002C

VO_PARAUP

Scaling and gamma coefficient
update enable register

6-102

0x0030

VHDHCOEFAD

Horizontal luminance and
chrominance filtering coefficient
address register of the VHD
channel

6-103

0x0034

VHDVCOEFAD

Vertical luminance and
horizontal chrominance filtering
coefficient address register of the
VHD channel

6-104

0x0040

DHDACCAD

ACC coefficient lookup table
address register of the DHD
channel

6-104

0x0100

VHDCTRL

VHD channel control register

6-105

0x0104

VHDUPD

VHD channel update enable
register

6-106

0x0108

VHDLADDR

Address register of the previous
de-interlace frame of the VHD
channel

6-106

0x010C

VHDLCADDR

Chrominance address register of
the previous de-interlace frame
of the VHD channel

6-107

0x0110

VHDCADDR

Address register of the current
de-interlace frame of the VHD
channel

6-107

0x0114

VHDCCADDR

Chrominance address register of
the current de-interlace frame of
the VHD channel

6-107

0x0118

VHDNADDR

Address register of the next deinterlace frame of the VHD
channel

6-108

0x011C

VHDNCADDR

Chrominance address register of
the next de-interlace frame of the
VHD channel

6-108

0x0120

VHDSTRIDE

Line stride register of the VHD
channel

6-109

0x0124

VHDCBMPARA

Blending parameter register of
the VHD channel (non-instant
register)

6-109

0x0128

VHDORESO

Output resolution register of the
VHD channel (non-instant
register)

6-109

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x012C

VHDIRESO

Input resolution register of the
VHD channel (non-instant
register)

6-110

0x0130

VHDSFPOS

Source bitmap start position
register of the VHD channel
(non-instant register)

6-111

0x0134

VHDDFPOS

Display window start position
register of the VHD channel
(non-instant register, in pixels)

6-111

0x0138

VHDDLPOS

Display window end position
register of the VHD channel
(non-instant register, in pixels)

6-112

0x013C

VHDVFPOS

Video start position register in
the display window of the VHD
channel (non-instant register, in
pixels)

6-112

0x0140

VHDVLPOS

Video end position register in the
display window of the VHD
channel (non-instant register, in
pixels)

6-113

0x0144

VHDBK

Video layer background color
register of the VHD channel

6-113

0x0150

VHDLMSP

Luminance scaling parameter
configuration register of the
VHD channel

6-114

0x0154

VHDCHMSP

Chrominance scaling parameter
configuration register of the
VHD channel

6-115

0x0158

VHDLMHSP

Luminance horizontal scaling
parameter configuration register
of the VHD channel (non-instant
register)

6-116

0x015C

VHDLMVSP

Luminance vertical scaling
parameter configuration register
of the VHD channel (non-instant
register)

6-116

0x0160

VHDCHMHSP

Chrominance horizontal scaling
parameter configuration register
of the VHD channel

6-117

0x0164

VHDCHMVSP

Chrominance vertical scaling
parameter configuration register
of the VHD channel

6-117

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-87

Hi3515
Data Sheet

6 Video Interface

6-88

Offset Address

Register

Description

Page

0x0170

VHDDIECTRL

De-interlace operation control
register of the VHD channel
(non-instant register)

6-118

0x0174

VHDDIETHD

De-interlace operation threshold
register of the VHD channel
(non-instant register)

6-120

0x0178

VHDDIEADDR

De-interlace history buffer
address register of the VHD
channel (non-instant register)

6-120

0x0180+n1×0x4

VHDDIETSMIX

De-interlace spatio-temporal
weight coefficient register of the
VHD channel (instant register)

6-121

0x0190+n2×0x4

VHDDIETFLT

De-interlace time-domain
filtering coefficient register of
the VHD channel (instant
register)

6-121

0x01A0+n3×0x4

VHDDIEVFLT

De-interlace vertical filtering
weight coefficient register of the
VHD channel (instant register)

6-122

0x01F0

VHDSTATUS

Video layer status register of the
VHD channel

6-123

0x0300

VSDCTRL

VSD channel control register

6-123

0x0304

VSDUPD

VSD channel update enable
register

6-125

0x0310

VSDADDR

Address register of the current
frame of the VSD channel

6-125

0x0314

VSDCADDR

Chrominance address register of
the current frame of the VSD
channel

6-125

0x0320

VSDSTRIDE

Line stride register of the VSD
channel

6-126

0x0324

VSDCBMPARA

Blending parameter register of
the VSD channel (non-instant
register)

6-126

0x0328

VSDORESO

Output resolution register of the
VSD channel (non-instant
register)

6-127

0x032C

VSDIRESO

Input resolution register of the
VSD channel (non-instant
register)

6-128

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0330

VSDSFPOS

Source bitmap start position
register of the VSD channel
(non-instant register)

6-128

0x0334

VSDDFPOS

Display window start position
register of the VSD channel
(non-instant register, in pixels)

6-129

0x0338

VSDDLPOS

Display window end position
register of the VSD channel
(non-instant register, in pixels)

6-129

0x033C

VSDVFPOS

Video start position register in
the display window of the VSD
channel (non-instant register, in
pixels)

6-130

0x0340

VSDVLPOS

Video end position register in the
display window of the VSD
channel (non-instant register, in
pixels)

6-130

0x0344

VSDBK

Video layer background color
register of the VSD channel

6-131

0x0400

G0CTRL

Graphics layer 0 (G0) channel
control register (non-instant
register)

6-131

0x0404

G0UPD

G0 channel update enable
register

6-132

0x0408

G0ADDR

Frame address register of the G0
channel

6-133

0x040C

G0STRIDE

Frame stride register of the G0
channel

6-133

0x0410

G0CBMPARA

Blending parameter register of
the G0 channel (non-instant
register)

6-134

0x0414

G0CKEYMAX

Maximum colorkey value
register of the G0 channel (noninstant register)

6-135

0x0418

G0CKEYMIN

Minimum colorkey value register
of the G0 channel (non-instant
register)

6-135

0x041C

G0IRESO

Input resolution register of the
G0 channel (non-instant register)

6-136

0x0420

G0ORESO

Output resolution register of the
G0 channel (non-instant register)

6-137

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-89

Hi3515
Data Sheet

6 Video Interface

6-90

Offset Address

Register

Description

Page

0x0424

G0SFPOS

Source bitmap start position
register of the G0 channel (noninstant register)

6-137

0x0428

G0DFPOS

Display window start position
register of the G0 channel (noninstant register, in pixels)

6-138

0x042C

G0DLPOS

Display window end position
register of the G0 channel (noninstant register, in pixels)

6-138

0x0500

G1CTRL

Graphics layer 1 (G1) channel
control register (non-instant
register)

6-139

0x0504

G1UPD

G1 channel update enable
register

6-139

0x0508

G1ADDR

Frame address register of the G1
channel

6-140

0x050C

G1STRIDE

Frame stride register of the G1
channel

6-140

0x0510

G1CBMPARA

Blending parameter register of
the G1 channel (non-instant
register)

6-141

0x0514

G1CKEYMAX

Maximum colorkey value
register of the G1 channel (noninstant register)

6-142

0x0518

G1CKEYMIN

Minimum colorkey value register
of the G1 channel (non-instant
register)

6-142

0x051C

G1IRESO

Input resolution register of the
G1 channel (non-instant register)

6-143

0x0520

G1ORESO

Output resolution register of the
G1 channel (non-instant register)

6-144

0x0524

G1SFPOS

Source bitmap start position
register of the G1 channel (noninstant register)

6-144

0x0528

G1DFPOS

Display window start position
register of the G1 channel (noninstant register, in pixels)

6-145

0x052C

G1DLPOS

Display window end position
register of the G1 channel (noninstant register, in pixels)

6-145

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0600

G2CTRL

Graphics layer 2 (G2) channel
control register (non-instant
register)

6-146

0x0604

G2UPD

G2 channel update enable
register

6-146

0x0608

G2ADDR

Frame address register of the G2
channel

6-147

0x060C

G2STRIDE

Frame stride register of the G2
channel

6-147

0x0610

G2CBMPARA

Blending parameter register of
the G2 channel (non-instant
register)

6-148

0x0614

G2CKEYMAX

Maximum colorkey value
register of the G2 channel (noninstant register)

6-149

0x0618

G2CKEYMIN

Minimum colorkey value register
of the G2 channel (non-instant
register)

6-149

0x061C

G2IRESO

Input resolution register of the
G2 channel (non-instant register)

6-150

0x0620

G2ORESO

Output resolution register of the
G2 channel (non-instant register)

6-151

0x0624

G2SFPOS

Source bitmap start position
register of the G2 channel (noninstant register)

6-151

0x0628

G2DFPOS

Display window start position
register of the G2 channel (noninstant register, in pixels)

6-152

0x062C

G2DLPOS

Display window end position
register of the G2 channel (noninstant register, in pixels)

6-152

0x0800

HCCTRL

HC channel control register (noninstant register)

6-153

0x0804

HCUPD

HC channel update enable
register

6-153

0x0808

HCADDR

Frame address register of the HC
channel

6-154

0x080C

HCSTRIDE

Frame stride register of the HC
channel

6-154

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-91

Hi3515
Data Sheet

6 Video Interface

6-92

Offset Address

Register

Description

Page

0x0810

HCCBMPARA

Blending parameter register of
the HC channel (non-instant
register)

6-155

0x0814

HCCKEYMAX

Maximum colorkey value
register of the HC channel (noninstant register)

6-156

0x0818

HCCKEYMIN

Minimum colorkey value register
of the HC channel (non-instant
register)

6-156

0x081C

HCIRESO

Input resolution register of the
HC channel (non-instant register)

6-157

0x0820

HCORESO

Output resolution register of the
HC channel (non-instant register)

6-158

0x0824

HCSFPOS

Source bitmap start position
register of the HC channel (noninstant register)

6-158

0x0828

HCFPOS

Display window start position
register of the HC channel (noninstant register, in pixels)

6-159

0x082C

HCDLPOS

Display window end position
register of the HC channel (noninstant register, in pixels)

6-159

0x0B00

CBMBKG1

Blending background color
register of mixer 1 (instant
register)

6-160

0x0B04

CBMBKG2

Blending background color
register of mixer 2 (instant
register)

6-160

0x0B0C

CBCFG

Color bar configuration register
(instant register)

6-160

0x0C00

DHDCTRL

HD display channel control
register (instant register)

6-163

0x0C04

DHDVSYNC

Vertical sync timing register of
the HD display channel (instant
register)

6-165

0x0C08

DHDHSYNC1

Horizontal sync timing register 1
of the HD display channel
(instant register)

6-165

0x0C0C

DHDHSYNC2

Horizontal sync timing register 2
of the HD display channel
(instant register)

6-166

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0C10

DHDVPLUS

Vertical sync plus timing register
of the HD display channel
(instant register)

6-166

0x0C14

DHDPWR

Sync pulse width register of the
HD display channel (instant
register)

6-167

0x0C18

DHDFIFOTHD

Async FIFO threshold
configuration register of the HD
display channel (instant register)

6-167

0x0C1C

DHDVTTHD

Vertical timing threshold register
of the HD display channel
(instant register)

6-167

0x0C20

DHDCSCIDC

Input DC component for color
space conversion register of the
HD display channel (instant
register)

6-168

0x0C24

DHDCSCODC

Output DC component for color
space conversion register of the
HD display channel (instant
register)

6-169

0x0C28

DHDCSCP0

Color space conversion
parameter 0 register of the HD
display channel (instant register)

6-169

0x0C2C

DHDCSCP1

Color space conversion
parameter 1 register of the HD
display channel (instant register)

6-170

0x0C30

DHDCSCP2

Color space conversion
parameter 2 register of the HD
display channel (instant register)

6-170

0x0C34

DHDCSCP3

Color space conversion
parameter 3 register of the HD
display channel (instant register)

6-171

0x0C38

DHDCSCP4

Color space conversion
parameter 4 register of the HD
display channel (instant register)

6-171

0x0C3C

DHDCLIPL

Minimum threshold clip bit
processing register of the HD
display channel (instant register)

6-172

0x0C40

DHDCLIPH

Maximum threshold clip bit
processing register of the HD
display channel (instant register)

6-172

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-93

Hi3515
Data Sheet

6 Video Interface

6-94

Offset Address

Register

Description

Page

0x0C44

DHDGMMTHD1

Gamma operation threshold 1
register of the HD display
channel (instant register)

6-173

0x0C48

DHDGMMTHD2

Gamma operation threshold 2
register of the HD display
channel (instant register)

6-173

0x0C50+t1×0x4

DHDGMMLOWt

Low-luminance gamma lookup
table register of the HD display
channel (instant register)

6-173

0x0C60+t2×0x4

DHDGMMMEDt

Medium-luminance gamma
lookup table register of the HD
display channel (instant register)

6-174

0x0C70+t3×0x4

DHDGMMHIGHt

High-luminance gamma lookup
table register of the HD display
channel (instant register)

6-174

0x0C80+t4×0x4

DHDGMMMLt

Middle_low-luminance gamma
lookup table register of the HD
display channel (instant register)

6-175

0x0CA0+t5×0x4

DHDGMMMHt

Middle_high-luminance gamma
lookup table register of the HD
display channel (instant register)

6-175

0x0CB0

DHDGMM3LOW

Low-threshold luminance
statistics register of three gamma
areas of the HD display channel

6-176

0x0CB4

DHDGMM3MED

Medium-threshold luminance
statistics register of three gamma
areas of the HD display channel

6-176

0x0CB8

DHDGMM3HIGH

High-threshold luminance
statistics register of three gamma
areas of the HD display channel

6-177

0x0CC0

DHDGMM8MLOW

Low-threshold luminance
statistics register after the middle
gamma area of the HD display
channel is divided into eight
segments

6-177

0x0CC4

DHDGMM8MHIGH

High-threshold luminance
statistics register after the middle
gamma area of the HD display
channel is divided into eight
segments

6-178

0x0CF0

DHDSTATE

HD display channel status
register

6-178

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x0E00

DSDCTRL

SD display channel control
register (instant register)

6-179

0x0E04

DSDVSYNC

Vertical sync timing register of
the SD display channel (instant
register)

6-180

0x0E08

DSDHSYNC1

Horizontal sync timing register 1
of the SD display channel
(instant register)

6-181

0x0E0C

DSDHSYNC2

Horizontal sync timing register 2
of the SD display channel
(instant register)

6-181

0x0E10

DSDVPLUS

Vertical sync plus timing register
of the SD display channel
(instant register)

6-182

0x0E14

DSDPWR

Sync pulse width register of the
SD display channel (instant
register)

6-182

0x0E18

DSDFIFOTHD

Async FIFO threshold
configuration register of the SD
display channel (instant register)

6-183

0x0E1C

DSDVTTHD

Vertical timing threshold register
of the SD display channel
(instant register)

6-183

0x0E20

DSDCSCIDC

Input DC component for color
space conversion register of the
SD display channel (instant
register)

6-184

0x0E24

DSDCSCODC

Output DC component for color
space conversion register of the
SD display channel (instant
register)

6-185

0x0E28

DSDCSCP0

Color space conversion
parameter 0 register of the SD
display channel (instant register)

6-185

0x0E2C

DSDCSCP1

Color space conversion
parameter 1 register of the SD
display channel (instant register)

6-186

0x0E30

DSDCSCP2

Color space conversion
parameter 2 register of the SD
display channel (instant register)

6-186

0x0E34

DSDCSCP3

Color space conversion
parameter 3 register of the SD
display channel (instant register)

6-187

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-95

Hi3515
Data Sheet

6 Video Interface

6-96

Offset Address

Register

Description

Page

0x0E38

DSDCSCP4

Color space conversion
parameter 4 register of the SD
display channel (instant register)

6-187

0x0E3C

DSDCLIPL

Minimum threshold clip bit
processing register of the SD
display channel (instant register)

6-188

0x0E40

DSDCLIPH

Maximum threshold clip bit
processing register of the SD
display channel (instant register)

6-188

0x0EF0

DSDSTATE

SD display channel status
register

6-189

0x1000–0x111C

VHDHLCOEF

Luminance horizontal scaling
and filtering coefficient register
of the VHD channel

6-189

0x1200–0x128C

VHDHCCOEF

Chrominance horizontal scaling
and filtering coefficient register
of the VHD channel

6-190

0x1300–0x138C

VHDVLCOEF

Luminance vertical scaling and
filtering coefficient register of
the VHD channel

6-191

0x1400–0x148C

VHDVCCOEF

Chrominance vertical scaling and
filtering coefficient register of
the VHD channel

6-191

0x2300–0x237C

VHDMIMGSPOSp

Start position and valid flag
register of subimage p in the deinterlace partition of the VHD
channel

6-192

0x2380–0x23FC

VHDMIMGFPOSp

End position register of subimage
p in the de-interlace partition of
the VHD channel

6-193

0x2600

DHDVBISPOS1

Position and start coordinate
register of VBI information 1 of
the DHD channel

6-193

0x2604

DHDVBISPOS2

Position and start coordinate
register of VBI information 2 of
the DHD channel

6-194

0x2610–0x262C

DHDVBIF1n

Content register of VBI
information 1 of the DHD
channel

6-195

0x2630–0x264C

DHDVBIF2n

Content register of VBI
information 2 of the DHD
channel

6-196

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Offset Address

Register

Description

Page

0x2700

DSDVBISPOS1

Position and start coordinate
register of VBI information 1 of
the DSD channel

6-196

0x2704

DSDVBISPOS2

Position and start coordinate
register of VBI information 2 of
the DSD channel

6-197

0x2710–0x272C

DSDVBIF1n

Content register of VBI
information 1 of the DSD
channel

6-198

0x2730–0x274C

DSDVBIF2n

Content register of VBI
information 2 of the DSD
channel

6-199

Table 6-11 lists the value range and meaning of the variables in the offset addresses of VOU
registers.
Table 6-11 Variables in the offset addresses of VOU registers
Variable

Value Range

Description

n1

0–3

Indicates the group ID of de-interlace
spatio-temporal weight coefficients

n2

0–3

Indicates the group ID of de-interlace
time-domain filtering coefficients

n3

0–3

Indicates the group ID of de-interlace
operation parameters

t1

0–2

Indicates the number of low-luminance
lookup table data segments

t2

0–2

Indicates the number of mediumluminance lookup table data segments

t3

0–2

Indicates the number of high-luminance
lookup table data segments

t4

0–2

Indicates the number of middle_lowluminance lookup table data segments

t5

0–2

Indicates the number of middle_highluminance lookup table data segments

m

0–31

Indicates the number of cascaded
subimages

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-97

Hi3515
Data Sheet

6 Video Interface

6.2.7 Register Description
VO_CTRL
VO_CTRL is the VO control register.

Bit

Offset Address

Register Name

Total Reset Value

0x0000

VO_CTRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

outstd_wid0
0

0

0

0

0

0

0

0

0

reserved
0

0

0

8

7

outstd_rid0
0

0

0

0

0

6

5

4

3

reserved
0

Bits

Access

Name

Description

[31:20]

-

reserved

Reserved.

[19:16]

RW

outstd_wid0

Outstanding of ID0 written by the AXI bus.

[15:12]

-

reserved

Reserved.

[11:8]

RW

outstd_rid0

Outstanding of ID0 read by the AXI bus.

[7:4]

-

reserved

Reserved.

0

0

2

1

0

arb_mode
0

0

0

0

0

Arbitration mode of the data requests from each internal surface
bus of the VOU.
[3:0]

-

arb_mode

0x0: polling mode
0x1: graphics layers first
Others: reserved

VO_INTSTA
VO_INTSTA is the VO interrupt status register. Writing 1 to an interrupt status bit clears the
corresponding interrupt.

6-98

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

0x0000_0000

Bits

0

0

0

0

Access

Name

0

0

7

6

0

0

0

reserved

0

0

0

0

0

0

0

0

0

0

0

5

4

0

0

3

2

resereved

g0rr_int

vhdrr_int

0

vsdrr_int

g1rr_int

0

resereved

g2rr_int

0

hcrr_int

resereved

0

resereved

reserved
0

Reset 0

8

0

0

1

0

dsduf_int

VO_INTSTA

dsdvtthd_int

0x0004

dhduf_int

Total Reset Value

dhdvtthd_int

Register Name

vhd_st_wr_int

Name

Offset Address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

be_int

Bit

6 Video Interface

0

0

Description
Bus (AXI_Master) error interrupt status.

[31]

WC

be_int

0: No interrupt is generated.
1: An interrupt is generated.

[30]

-

reserved

Reserved.
VHD write bus low-bandwidth interrupt status.

[29]

WC

vhd_st_wr_int

0: No interrupt is generated.
1: An interrupt is generated.

[28]

-

reserved

Reserved.
HC register update complete interrupt status.

[27]

WC

hcrr_int

0: No interrupt is generated.
1: An interrupt is generated.

[26]

-

reserved

Reserved.
G2 register update complete interrupt status.

[25]

WC

g2rr_int

0: No interrupt is generated.
1: An interrupt is generated.
G1 register update complete interrupt status.

[24]

WC

g1rr_int

0: No interrupt is generated.
1: An interrupt is generated.
G0 register update complete interrupt status.

[23]

WC

g0rr_int

0: No interrupt is generated.
1: An interrupt is generated.
VDC_HD register update complete interrupt status.

[22]

WC

vhdrr_int

0: No interrupt is generated.
1: An interrupt is generated.

[21]

-

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-99

Hi3515
Data Sheet

6 Video Interface

VDC_SD register update complete interrupt status.
[20]

WC

vsdrr_int

0: No interrupt is generated.
1: An interrupt is generated.

[19:6]

-

reserved

Reserved.
Low-bandwidth alarm interrupt status of the HD channel.

[5]

WC

0: No interrupt is generated.

dhduf_int

1: An interrupt is generated.
Vertical timing interrupt status of the HD channel.
[4]

WC

dhdvtthd_int

0: No interrupt is generated.
1: An interrupt is generated.

[3]

-

reserved

Reserved.

[2]

-

reserved

Reserved.
Low-bandwidth alarm interrupt status of the SD channel.

[1]

WC

0: No interrupt is generated.

dsduf_int

1: An interrupt is generated.
Vertical timing interrupt status of the SD channel.
[0]

WC

dsdvtthd_int

0: No interrupt is generated.
1: An interrupt is generated.

VO_INTMSK

0x0008

VO_INTMSK

0x0000_0000

Bits

Access

vsdrr_intmsk

0

0

0

0

0

0

Name

8

7

6

0

0

0

reserved

0

0

0

0

0

0

0

0

0

0

0

5

4

0

0

3

2

resereved

vadrr_intmsk

0

resereved

0

g0rr_intmsk

0

g1rr_intmsk

hcrr_intmsk

0

g2rr_intmsk

resereved

0

Reset 0

resereved

reserved

Name

vhd_st_wr_intmask

be_intmsk

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

1

0

dsduf_intmsk

Total Reset Value

dhduf_intmsk

Register Name

dhdvtthd_intmsk

Bit

Offset Address

dsdvtthd_intmsk

VO_INTMSK is the VO interrupt mask register. It is related to VO_INTSTA.

0

0

Description
Bus (AXI_Master) error interrupt mask.

[31]

RW

be_intmsk

0: masked
1: not masked

6-100

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[30]

-

6 Video Interface

reserved

Reserved.
VHD write bus low-bandwidth interrupt mask.

[29]

RW

vhd_st_wr_intmask 0: masked
1: not masked

[28]

-

reserved

Reserved.
HC register update complete interrupt mask.

[27]

RW

hcrr_intmsk

0: masked
1: not masked

[26]

-

reserved

Reserved.
G2 register update complete interrupt mask.

[25]

RW

g2rr_intmsk

0: masked
1: not masked
G1 register update complete interrupt mask.

[24]

RW

g1rr_intmsk

0: masked
1: not masked
G0 register update complete interrupt mask.

[23]

RW

g0rr_intmsk

0: masked
1: not masked
VDC_HD register update complete interrupt mask.

[22]

RW

vhdrr_intmsk

0: masked
1: not masked

[21]

-

reserved

Reserved.
VDC_SD register update complete interrupt mask.

[20]

RW

vsdrr_intmsk

0: masked
1: not masked

[19:6]

-

reserved

Reserved.
Low-bandwidth alarm interrupt mask of the HD channel.

[5]

RW

dhduf_intmsk

0: masked
1: not masked
Timing threshold interrupt mask of the HD channel.

[4]

RW

dhdvtthd_intmsk

0: masked
1: not masked

[3]

-

reserved

Reserved.

[2]

-

reserved

Reserved.
Low-bandwidth alarm interrupt mask of the SD channel.

[1]

RW

dsduf_intmsk

0: masked
1: not masked

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-101

Hi3515
Data Sheet

6 Video Interface

Timing threshold interrupt mask of the SD channel.
[0]

RW

dsdvtthd_intmsk

0: masked
1: not masked

VO_VERSION1
VO_VERSION1 is VO version register 1.

Bit

Offset Address

Register Name

Total Reset Value

0x000C

VO_VERSION1

0x7675_6F76

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

0

1

1

1

0

1

1

0

voversion0

Reset 0

1

1

1

0

1

1

0

0

1

1

1

0

1

0

1

0

1

Bits

Access

Name

Description

[31:0]

RO

voversion0

VO version register.

1

0

1

1

1

VO_VERSION2
VO_VERSION2 is VO version register 2.

Bit

Offset Address

Register Name

Total Reset Value

0x0010

VO_VERSION2

0x3031_3034

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

1

1

0

1

0

0

voversion1

Reset 0

0

1

1

0

0

0

0

0

0

1

1

0

0

0

1

0

0

Bits

Access

Name

Description

[31:0]

RO

voversion1

VO version register.

1

1

0

0

0

VO_PARAUP
VO_PARAUP is the scaling and gamma coefficient update enable register. The VO scaling
coefficients are configured by the AXI master. The flags, which indicate whether the start
addresses and parameters need to be updated, are configured by the APB slave.

6-102

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Total Reset Value

0x002C

VO_PARAUP

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7

6

5

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

0

0

0

0

0

0

0

0

0

2

resereved

Name

8

0

0

1

0
vhd_hcoef_upd

Register Name

vhd_vcoef_upd

Offset Address

dhd_acc_upd

Bit

6 Video Interface

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

[5]

-

reserved

Reserved.

dhd_acc_upd

Indicates whether the DHD ACC operation lookup table needs to
be updated. This bit is cleared automatically after the hardware
updates the lookup table.

[4]

RW

0: not updated
1: updated
[3]

-

reserved

Reserved.

[2]

-

reserved

Reserved.

vhd_vcoef_upd

Indicates whether the VHD vertical luminance and chrominance
filtering coefficients need to be updated. This bit is cleared
automatically after the hardware updates the coefficients.

[1]

RW

0: not updated
1: updated

[0]

RW

vhd_hcoef_upd

Indicates whether the VHD horizontal luminance and chrominance
filtering coefficients need to be updated. This bit is cleared
automatically after the hardware updates the coefficients.
0: not updated
1: updated

VHDHCOEFAD
VHDHCOEFAD is the horizontal luminance and chrominance filtering coefficient address
register of the VHD channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-103

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0030

VHDHCOEFAD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

coef_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

coef_addr

Start address of the coefficients stored in the local memory.

VHDVCOEFAD
VHDVCOEFAD is the vertical luminance and horizontal chrominance filtering coefficient
address register of the VHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0034

VHDVCOEFAD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

coef_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

coef_addr

Start address of the coefficients stored in the local memory.

DHDACCAD
DHDACCAD is the ACC coefficient lookup table address register of the DHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0040

DHDACCAD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

coef_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

coef_addr

Start address of the coefficients stored in the local memory.

6-104

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VHDCTRL
VHDCTRL is the VHD channel control register.
Total Reset Value

0x0100

VHDCTRL

0x0000_0000

Reset 0

0

Bits

0

0

0 0

0

0

0

0

Access Name

0

0

0

0

0

chm_rmode

0

lm_rmode

reserved

bfield_first

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
regup_rate

Name

Register Name

vhd_en

Bit

Offset Address

0

0

0

0

8

7

6

5

4

3

2

reserved

0

0

0

0

0

1

0

ifmt

0

0

0

0

0

0

0

Description
Surface enable.

[31]

RW

vhd_en

0: disabled
1: enabled

[30:18]

-

reserved

Reserved.
Frequency of updating surface registers in interlaced output mode.

[17]

RW

regup_rate

0: once for a frame
1: once for a field
Bottom field first.
0: top field first, T0B0T1B1 (T0B0 is regarded as a frame)

[16]

RW

bfield_first

1: bottom field first, B0T0B1T1 (B0T0 is regarded as a frame)
Note: The letter T indicates top field and the letter B indicates
bottom field.
Luminance read mode.
00: Reads the frame data buffer in interlaced mode and reads the
top fields and bottom fields based on the timing sequence.

[15:14]

RW

lm_rmode

01: Reads the frame data buffer in progressive mode.
10: Reads only top fields when each frame is displayed in
interlaced mode.
11: Reads only bottom fields when each frame is displayed in
interlaced mode.
Chrominance read mode.
00: Reads the frame data buffer in interlaced mode and reads the
top fields and bottom fields based on the timing sequence.

[13:12]

RW

chm_rmode

01: Reads the frame data buffer in progressive mode.
10: Reads only top fields when each frame is displayed in
interlaced mode.
11: Reads only bottom fields when each frame is displayed in
interlaced mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-105

Hi3515
Data Sheet

6 Video Interface

[11:4]

-

reserved

Reserved.
Input data format.

[3:0]

RW

0x3: SPYCbCr4:2:0

ifmt

0x4: SPYCbCr4:2:2 (in the format of 1x2)
Others: reserved

VHDUPD
VHDUPD is the VHD channel update enable register.

Bit

Offset Address

Register Name

Total Reset Value

0x0104

VHDUPD

0x0000_0000

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at the HD video layer are configured, the
registers are updated when the value 1 is written to this bit. After
updates, this bit is cleared automatically by the hardware.

regup

VHDLADDR
VHDLADDR is the address register of the previous de-interlace frame of the VHD channel
For the package pixel, the address is the address of the frame buffer; for the semi-planar pixel,
the address is the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x0108

VHDLADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdladdr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdladdr

Address of the previous de-interlace frame.

6-106

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VHDLCADDR
VHDLCADDR is the chrominance address register of the previous de-interlace frame of the
VHD channel. For the package pixel, the address is invalid; for the semi-planar pixel, the
address is the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x010C

VHDLCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdlcaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdlcaddr

Chrominance address of the previous de-interlace frame.

VHDCADDR
VHDCADDR is the address register of the current de-interlace frame of the VHD channel.
For the package pixel, the address is the address of the frame buffer; for the semi-planar pixel,
the address is the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x0110

VHDCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdcaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdcaddr

Address of the current de-interlace frame.

VHDCCADDR
VHDCCADDR is the chrominance address register of the current de-interlace frame of the
VHD channel. For the package pixel, the address is invalid; for the semi-planar pixel, the
address is the address of the luminance frame buffer.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-107

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0114

VHDCCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdccaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdccaddr

Chrominance address of the current de-interlace frame.

VHDNADDR
VHDNADDR is the address register of the next de-interlace frame of the VHD channel. For
the package pixel, the address is the address of the frame buffer; for the semi-planar pixel, the
address is the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x0118

VHDNADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdnaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdnaddr

Address of the next de-interlace frame.

VHDNCADDR
VHDNCADDR is the chrominance address register of the current de-interlace frame of the
VHD channel. For the package pixel, the address is invalid; for the semi-planar pixel, the
address is the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x011C

VHDNCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vhdncaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vhdncaddr

Chrominance address of the next de-interlace frame.

6-108

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VHDSTRIDE
VHDSTRIDE is the line stride register of the VHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0120

VHDSTRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

vhdcstride

Reset 0

0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

vhdstride
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RW

vhdcstride

Stride of the chrominance frame buffer (in the format of semiplanar), in the unit of word.

[15:0]

RW

vhdstride

Stride of the luminance frame buffer (in the format of semiplanar), in the unit of word.

VHDCBMPARA
VHDCBMPARA is the blending parameter register of the VHD channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0124

VHDCBMPARA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

galpha
0

0

0

Bits

Access

Name

Description

[31:8]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Global blending alpha value.
[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

VHDORESO
VHDORESO is the output resolution register of the VHD channel. This register is a noninstant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-109

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0128

VHDORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output video image, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of an output
image at a video layer must be an even number. There is no such
restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an output video image, in the unit of pixel.

[11:0]

RW

ow

The configured value is equal to the actual width minus 1.
Note: The actual width of an output image at a video layer must be
an even number.

VHDIRESO
VHDIRESO is the input resolution register of the VHD channel. This register is a non-instant
register.

6-110

z

In interlaced output mode, the actual height of an input image must be an even number.
When the input data format is YCbCr4:2:0, the image height must be an integer multiple
of 4.

z

In progressive output mode, when the input data format is YCbCr4:2:0, the image height
must be an integer multiple of 2. In addition, the actual width of an input image at a video
layer must be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x012C

VHDIRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

ih

[15:12]

-

reserved

[11:0]

RW

iw

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input video image, in the unit of row.
The configured value is equal to the actual height minus 1.
Reserved.
Width of an input video image, in the unit of pixel.
The configured value is equal to the actual width minus 1.

VHDSFPOS
VHDSFPOS is the source bitmap start position register of the VHD channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0130

VHDSFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Y coordinate of the source start coordinates.
[27:16]

RW

src_yfpos

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

[15:12]

-

reserved

Reserved.

[11:0]

RW

src_xfpos

X coordinate of the source start coordinates.
The value 0 indicates the first pixel in the first row.

VHDDFPOS
VHDDFPOS is the display window start position register of the VHD channel (in pixels).
This register is a non-instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-111

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0134

VHDDFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xfpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_yfpos

Start coordinates of the display column.

[15:12]

RW

reserved

Reserved.

[11:0]

RW

disp_xfpos

Start coordinates of the display row.

0

0

0

0

VHDDLPOS
VHDDLPOS is the display window end position register of the VHD channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0138

VHDDLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_ylpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xlpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_ylpos

End coordinates of the display column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xlpos

End coordinates of the display row.

0

0

0

0

VHDVFPOS
VHDVFPOS is the video start position register in the display window of the VHD channel (in
pixels). This register is a non-instant register.

6-112

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x013C

VHDVFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

video_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

video_xfpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

video_yfpos

Start coordinates of the video column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

video_xfpos

Start coordinates of the video row.

0

0

0

0

VHDVLPOS
VHDVLPOS is the video end position register in the display window of the VHD channel (in
pixels). This register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0140

VHDVLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

video_ylpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

video_xlpos
0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

video_ylpos

End coordinates of the video column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

video_xlpos

End coordinates of the video row.

0

0

0

0

0

VHDBK
VHDBK is the video layer background color register of the VHD channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-113

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0144

VHDBK

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

vbk_alpha

Reset 0

0

0

0

0

vbk_y
0

0

0

0

0

0

0

0

8

7

6

5

vbk_cb
0

0

0

0

Bits

Access

Name

[31:24]

RW

vbk_alpha

[23:16]

RW

vbk_y

Component Y

[15:8]

RW

vbk_cb

Component Cb

[7:0]

RW

vbk_cr

Component Cr

0

0

0

0

4

3

2

1

0

0

0

0

vbk_cr
0

0

0

0

0

0

0

0

Description
Background filling color of a video layer.
Its value ranges from 0 to 128.

VHDLMSP
VHDLMSP is the luminance scaling parameter configuration register of the VHD channel.
Total Reset Value

0x0150

VHDLMSP

0x0000_0000

hlmid_en

vlmid_en

0

0

0

Reset 0

Bits

shift_field

vlmsc_en

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

hlmsc_en

Bit

Offset Address

reserved

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

fld_offset

0

0

0

0

0

0

0

0

0

Description
Luminance horizontal scaling enable.

[31]

RW

hlmsc_en

0: disabled
1: enabled
Luminance vertical scaling enable.

[30]

RW

vlmsc_en

0: disabled
1: enabled
Luminance horizontal scaling and median filtering enable.

[29]

RW

hlmid_en

0: disabled
1: enabled

6-114

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Luminance vertical scaling and median filtering enable.
[28]

RW

0: disabled

vlmid_en

1: enabled
[27:17]

-

reserved

Reserved.
Field affected due to shift.

[16]

RW

shift_field

0: bottom field
1: top field
Field shift.

[15:0]

RW

The value is expressed as a complementary code and is in the
format of 4.12. The most significant bit (MSB) is the sign bit.

fld_offset

Note: This value is related to the scaling ratio.

VHDCHMSP
VHDCHMSP is the chrominance scaling parameter configuration register of the VHD
channel.
Total Reset Value

0x0154

VHDCHMSP

0x0000_0000

hlmid_en

vlmid_en

0

0

0

Reset 0

Bits

shift_field

vchmsc_en

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
hchmsc_en

Bit

Offset Address

reserved

0

Access

0

0

0

0

0

Name

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

fld_offset

0

0

0

0

0

0

0

0

0

Description
Chrominance horizontal scaling enable.

[31]

RW

hchmsc_en

0: disabled
1: enabled
Chrominance vertical scaling enable.

[30]

RW

vchmsc_en

0: disabled
1: enabled
Chrominance horizontal scaling and median filtering enable.

[29]

RW

hlmid_en

0: disabled
1: enabled
Chrominance vertical scaling and median filtering enable.

[28]

RW

vlmid_en

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-115

Hi3515
Data Sheet

6 Video Interface

[27:17]

-

reserved

Reserved.
Field affected due to shift.

[16]

RW

0: bottom field

shift_field

1: top field
Field shift.
[15:0]

RW

The value is expressed as a complementary code and is in the
format of 4.12. The MSB is the sign bit.

fld_offset

Note: This value is related to the scaling ratio.

VHDLMHSP
VHDLMHSP is the luminance horizontal scaling parameter configuration register of the VHD
channel. This register is a non-instant register.
Horizontal scaling ratio of the luminance = input image width/output image width

Bit

Offset Address

Register Name

Total Reset Value

0x0158

VHDLMHSP

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

lm_hphase
0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

lm_hratio
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

lm_hphase

Horizontal scaling initial phase of the luminance, in the format of
0.12.

[15:0]

RW

lm_hratio

Horizontal scaling ratio of the luminance, in the format of 4.12.

VHDLMVSP
VHDLMVSP is the luminance vertical scaling parameter configuration register of the VHD
channel. This register is a non-instant register.
Vertical scaling ratio of the luminance = input image height/output image height

6-116

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x015C

VHDLMVSP

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

lm_vphase
0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

lm_vratio
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

lm_vphase

Vertical scaling initial phase of the luminance, in the format of
0.12.

[15:0]

RW

lm_vratio

Vertical scaling ratio of the luminance, in the format of 4.12.

VHDCHMHSP
VHDCHMHSP is the chrominance horizontal scaling parameter configuration register of the
VHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0160

VHDCHMHSP

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

chm_hphase
0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

chm_hratio
0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

chm_hphase

Horizontal scaling initial phase of the chrominance, in the format
of 0.12

[15:0]

RW

chm_hratio

Horizontal scaling ratio of the chrominance, in the format of 4.12.

VHDCHMVSP
VHDCHMVSP is the chrominance vertical scaling parameter configuration register of the
VHD channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-117

Hi3515
Data Sheet

6 Video Interface
Register Name

Total Reset Value

0x0164

VHDCHMVSP

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Bit

Offset Address

Reset 0

0

chm_hphase

0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

chm_vratio

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

chm_hphase

Vertical scaling initial phase of the chrominance, in the format of
1.12. The MSB is a sign bit.

[15:0]

RW

chm_vratio

Vertical scaling ratio of the chrominance, in the format of 4.12.

VHDDIECTRL

0x0170

VHDDIECTRL

0x0000_0000

Bits

Access

reserved

lm_mov_tsmix_en

lm_st_tsmix_en

lm_tflt_en

chm_tsmix_en

stinfo_rst

0

0

0

0

0

0

0

0

0

Name

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

die_rf_mode

0

reserved

0

die_chmmode

0

reserved

die_frt

0

die_lmmode

reserved

0

Reset 0

8

0

0

0

0

0

0

0

0

1

0

die_reff_cfg

Total Reset Value

die_chroma_en

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
die_luma_en

Bit

Offset Address

die_reff_cfg_en

VHDDIECTRL is the de-interlace operation control register of the VHD channel. This
register is a non-instant register.

0

0

Description
De-interlace luminance enable.

[31]

RW

die_luma_en

0: disabled
1: enabled
De-interlace chrominance enable.

[30]

RW

die_chroma_en

0: disabled
1: enabled

[29]

6-118

-

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

De-interlace ratio of the input field rate to the output frame rate.
[28]

RW

die_frt

0: input field rate = output frame rate
1: input field rate = 2 x output frame rate

[27]

-

reserved

Reserved.
De-interlace luminance operation mode.

[26]

RW

die_lmmode

0: 4-field mode
1: 2-field median mode

[25]

-

reserved

Reserved.
De-interlace chrominance operation mode.

[24]

RW

die_chmmode

0: 4-field mode
1: 2-field median mode

[23]

RW

die_rf_mode

Bandwidth-saving control for the reference field in de-interlace 4field mode.
0: The reference field reads the data of the full field.
1: The reference field reads the data of half the field.

[22]

-

reserved

Reserved.
Luminance spatio-temporal weight enable (motion part).

[21]

RW

lm_mov_tsmix_en 0: disabled
1: enabled
Luminance spatio-temporal weight enable (still part).

[20]

RW

lm_st_tsmix_en

0: disabled
1: enabled
Luminance time-domain filtering enable.

[19]

RW

lm_tflt_en

0: disabled
1: enabled
Chrominance spatio-temporal weight enable.

[18]

RW

chm_tsmix_en

0: disabled
1: enabled
Still times reset control.

[17]

RW

stinfo_rst

0: The still times are updated properly.
1: The still times are cleared.

[16]

-

reserved

Reserved.

[15:2]

-

reserved

Reserved.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-119

Hi3515
Data Sheet

6 Video Interface

Reference field configuration control.
0: The reference fields configured by the hardware are used during
de-interlace.
[1]

RW

die_reff_cfg_en

1: The reference fields configured by the software are used during
de-interlace, that is, the die_reff_cfg configuration is valid.
Note: In de-interlace mode, this bit is valid when
VHDCTRL[regup_date] is set to 1.
Indicates which field in the reference fields configured by the
software is de-interlaced (reserved field).

[0]

RW

0: The top field is reserved.

die_reff_cfg

1: The bottom field is reserved.
Note: This bit is valid when die_reff_cfg_en is set to 1.

VHDDIETHD
VHDDIETHD is the de-interlace operation threshold register of the VHD channel. This
register is a non-instant register.
Register Name

Total Reset Value

0x0174

VHDDIETHD

0x0000_0000

reserved

Reset 0

0

0

0

0

0

fld_diff_thd

0

0

0

0

0

0

0

0

0

med_thd

0

0

0

0

0

0

8

7

st_thd

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

6

5

4

reserved

Bit

Offset Address

0

0

0

3

2

1

0

md_thd

0

0

0

0

0

Bits

Access

Name

Description

[31:22]

-

reserved

Reserved.

[21:16]

RW

fld_diff_thd

Field differential threshold, for selecting the coefficient of the
spatio-temporal weight.

[15:12]

RW

med_thd

Median detection threshold.

[11]

-

reserved

Reserved.

[10:8]

RW

st_thd

Still times threshold.

[7:5]

-

reserved

Reserved.

[4:0]

RW

md_thd

Motion/still decision threshold.

0

VHDDIEADDR
VHDDIEADDR is the de-interlace history buffer address register of the VHD channel. This
register is a non-instant register.

6-120

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0178

VHDDIEADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

dieaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

dieaddr

Buffer address for storing the de-interlace history information.

VHDDIETSMIX
VHDDIETSMIX is the de-interlace spatio-temporal weight coefficient register of the VHD
channel. This register is an instant register. There are four groups of spatio-temporal weight
coefficients and each group consists of eight coefficients.

Bit

Offset Address

Register Name

Total Reset Value

0x0180+n1×0x4

VHDDIETSMIX

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

tsmix_n7

Reset 0

0

0

tsmix_n6
0

0

0

0

tsmix_n5
0

0

0

0

tsmix_n4
0

0

0

0

tsmix_n3
0

0

0

0

8

7

tsmix_n2
0

0

0

0

6

5

4

3

tsmix_n1
0

0

0

0

2

1

0

tsmix_n0
0

0

0

0

Bits

Access

Name

Description

[31:28]

RW

tsmix_n7

Spatio-temporal weight coefficient 7 of group n1 (n1 = 0–3).

[27:24]

RW

tsmix_n6

Spatio-temporal weight coefficient 6 of group n1 (n1 = 0–3).

[23:20]

RW

tsmix_n5

Spatio-temporal weight coefficient 5 of group n1 (n1 = 0–3).

[19:16]

RW

tsmix_n4

Spatio-temporal weight coefficient 4 of group n1 (n1 = 0–3).

[15:12]

RW

tsmix_n3

Spatio-temporal weight coefficient 3 of group n1 (n1 = 0–3).

[11:8]

RW

tsmix_n2

Spatio-temporal weight coefficient 2 of group n1 (n1 = 0–3).

[7:4]

RW

tsmix_n1

Spatio-temporal weight coefficient 1 of group n1 (n1 = 0–3).

[3:0]

RW

tsmix_n0

Spatio-temporal weight coefficient 0 of group n1 (n1 = 0–3).

0

VHDDIETFLT
VHDDIETFLT is the de-interlace time-domain filtering coefficient register of the VHD
channel. This register is an instant register. There are four groups of time-domain filtering
coefficients and each group consists of eight coefficients.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-121

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0190+n2×0x4

VHDDIETFLT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

tflt_n7

Reset 0

0

0

tflt_n6
0

0

0

0

tflt_n5
0

0

0

0

tflt_n4
0

0

0

0

tflt_n3
0

0

0

0

8

7

tflt_n2
0

0

0

0

6

5

4

3

tflt_n1
0

0

0

0

2

1

0

tflt_n0
0

0

0

Bits

Access

Name

Description

[31:28]

RW

tflt_n7

Time-domain filtering coefficient 7 of group n2 (n2 = 0–3).

[27:24]

RW

tflt_n6

Time-domain filtering coefficient 6 of group n2 (n2 = 0–3).

[23:20]

RW

tflt_n5

Time-domain filtering coefficient 5 of group n2 (n2 = 0–3).

[19:16]

RW

tflt_n4

Time-domain filtering coefficient 4 of group n2 (n2 = 0–3).

[15:12]

RW

tflt_n3

Time-domain filtering coefficient 3 of group n2 (n2 = 0–3).

[11:8]

RW

tflt_n2

Time-domain filtering coefficient 2 of group n2 (n2 = 0–3).

[7:4]

RW

tflt_n1

Time-domain filtering coefficient 1 of group n2 (n2 = 0–3).

[3:0]

RW

tflt_n0

Time-domain filtering coefficient 0 of group n2 (n2 = 0–3).

0

0

VHDDIEVFLT
VHDDIEVFLT is the de-interlace vertical filtering weight coefficient register of the VHD
channel. This register t is an instant register. There are four groups of operation parameters
and each group consists of eight coefficients.

Bit

Offset Address

Register Name

Total Reset Value

0x01A0+n3×0x4

VHDDIEVFLT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

vflt_n7

Reset 0

0

0

vflt_n6
0

0

0

0

vflt_n5
0

0

0

0

vflt_n4
0

0

0

0

vflt_n3
0

0

0

0

8

7

vflt_n2
0

0

0

0

6

5

4

3

vflt_n1
0

0

0

0

2

1

0

vflt_n0
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RW

vflt_n7

De-interlace vertical filtering weight coefficient 7 of group n3 (n3
= 0–3).

[27:24]

RW

vflt_n6

De-interlace vertical filtering weight coefficient 6 of group n3 (n3
= 0–3).

[23:20]

RW

vflt_n5

De-interlace vertical filtering weight coefficient 5 of group n3 (n3
= 0–3).

[19:16]

RW

vflt_n4

De-interlace vertical filtering weight coefficient 4 of group n3 (n3
= 0–3).

6-122

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

[15:12]

RW

vflt_n3

De-interlace vertical filtering weight coefficient 3 of group n3 (n3
= 0–3).

[11:8]

RW

vflt_n2

De-interlace vertical filtering weight coefficient 2 of group n3 (n3
= 0–3).

[7:4]

RW

vflt_n1

De-interlace vertical filtering weight coefficient 1 of group n3 (n3
= 0–3).

[3:0]

RW

vflt_n0

De-interlace vertical filtering weight coefficient 0 of group n3 (n3
= 0–3).

VHDSTATUS
VHDSTATUS is the video layer status register of the VHD channel.
Register Name

Total Reset Value

0x01F0

VHDSTATUS

0x0800_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

[0]

RO

die_ref_field

0

0

die_ref_field

Bit

Offset Address

0

0

0

0

0

0

1

Reference field of the de-interlace operation. When the deinterlace function is disabled, the value of this register is 0.
0: The top field is referenced.
1: The bottom field is referenced.

VSDCTRL
VSDCTRL is the VSD channel control register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-123

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0300

VSDCTRL

0x0000_0000

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

0

Name

0

0

0

0

0

chm_rmode

0

lm_rmode

reserved

bfield_first

Name

regup_rate

vsd_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

8

7

6

5

4

3

2

reserved

0

0

0

0

0

1

0

ifmt

0

0

0

0

0

0

0

Description
Surface enable.

[31]

RW

vsd_en

0: disabled
1: enabled

[30:18]

-

reserved

Reserved.
Frequency of updating surface registers in interlaced output mode.

[17]

RW

regup_rate

0: once for a frame
1: once for a field
Bottom field first.

[16]

RW

bfield_first

0: top field first, T0B0T1B1 (T0B0 is regarded as a frame)
1: bottom field first, B0T0B1T1 (B0T0 is regarded as a frame)
Luminance read mode.
00: Reads the frame data buffer in interlaced mode and reads the
top fields and bottom fields based on the timing sequence.

[15:14]

RW

lm_rmode

01: Reads the frame data buffer in progressive mode.
10: Reads only top fields when each frame is displayed in
interlaced mode.
11: Reads only bottom fields when each frame is displayed in
interlaced mode.
Chrominance read mode.
00: Reads the frame data buffer in interlaced mode and reads the
top fields and bottom fields based on the timing sequence.

[13:12]

RW

chm_rmode

01: Reads the frame data buffer in progressive mode.
10: Reads only top fields when each frame is displayed in
interlaced mode.
11: Reads only bottom fields when each frame is displayed in
interlaced mode.

[11:4]

-

reserved

Reserved.
Input data format.

[3:0]

RW

ifmt

0x3: SPYCbCr4:2:0
0x4: SPYCbCr4:2:2 (in the format of 1x2)
Others: reserved

6-124

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

VSDUPD
VSDUPD is the VSD channel update enable register.
Register Name

Total Reset Value

0x0304

VSDUPD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

Bit

Offset Address

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at the SD video layer are configured, the
registers are updated when the value 1 is written to this bit. After
updates, this bit is cleared automatically by the hardware.

regup

VSDADDR
VSDADDR is the address register of the current frame of the VSD channel For the package
pixel, the address is the address of the frame buffer; for the semi-planar pixel, the address is
the address of the luminance frame buffer.

Bit

Offset Address

Register Name

Total Reset Value

0x0310

VSDADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vsdaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vsdaddr

Buffer address for storing surface frames.

VSDCADDR
VSDCADDR is the chrominance address register of the current frame of the VSD channel.
For the package pixel, the address is invalid; for the semi-planar pixel, the address is the
address of the luminance frame buffer.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-125

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0314

VSDCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

vsdcaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

vsdcaddr

Address of the surface chrominance frame buffer, in the unit of
word.

VSDSTRIDE
VSDSTRIDE is the line stride register of the VSD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0320

VSDSTRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

vsdcstride

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

vsdstride
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RW

vsdcstride

Stride of the chrominance frame buffer (in the format of semiplanar), in the unit of word.

[15:0]

RW

vsdstride

Stride of the luminance frame buffer (in the format of semiplanar), in the unit of word.

VSDCBMPARA
VSDCBMPARA is the blending parameter register of the VSD channel. This register is a noninstant register.

6-126

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0324

VSDCBMPARA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

galpha
0

0

0

Bits

Access

Name

Description

[31:8]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

Global blending alpha value.
[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

VSDORESO
VSDORESO is the output resolution register of the VSD channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0328

VSDORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output video image, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of an output
image at a video layer must be an even number. There is no
restriction in progressive mode.

[15:12]

RW

reserved

Reserved.
Width of an output video image, in the unit of pixel.

[11:0]

RW

Issue 02 (2010-04-20)

ow

The configured value is equal to the actual width minus 1.
Note: The actual width of an output image at a video layer must be
an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-127

Hi3515
Data Sheet

6 Video Interface

VSDIRESO
VSDIRESO is the input resolution register of the VSD channel. This register is a non-instant
register.

Bit

z

In interlaced output mode, the actual height of an input image must be an even number.
When the input data format is YCbCr4:2:0, the height must an integer multiple of 4.

z

In progressive output mode, when the input data format is YCbCr4:2:0, the image height
must be an integer multiple of 2. In addition, the actual image width of an input image at a
video layer must be an even number.

Offset Address

Register Name

Total Reset Value

0x032C

VSDIRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

ih

[15:12]

-

reserved

[11:0]

RW

iw

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input video image, in the unit of row.
The configured value is equal to the actual height minus 1.
Reserved.
Width of an input video image, in the unit of pixel.
The configured value is equal to the actual width minus 1.

VSDSFPOS
VSDSFPOS is the source bitmap start position register of the VSD channel. This register is a
non-instant register.

6-128

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0330

VSDSFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Y coordinate of the source start coordinates.
[27:16]

RW

src_yfpos

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

[15:12]

RW

reserved

Reserved.

[11:0]

RW

src_xfpos

X coordinate of the source start coordinates.
The value 0 indicates the first pixel in the first row.

VSDDFPOS
VSDDFPOS is the display window start position register of the VSD channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0334

VSDDFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xfpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_yfpos

Start coordinates of the display column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xfpos

Start coordinates of the display row.

0

0

0

0

VSDDLPOS
VSDDLPO is the display window end position register of the VSD channel (in pixels). This
register is a non-instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-129

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0338

VSDDLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_ylpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xlpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_ylpos

End coordinates of the display column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xlpos

End coordinates of the display row.

0

0

0

0

VSDVFPOS
VSDVFPOS is the video start position register in the display window of the VSD channel (in
pixels). This register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x033C

VSDVFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

video_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

video_xfpos
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

video_yfpos

Start coordinates of the video column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

video_xfpos

Start coordinates of the video row.

0

0

0

0

VSDVLPOS
VSDVLPOS is the video end position register in the display window of the VSD channel (in
pixels). This register is a non-instant register.

6-130

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0340

VSDVLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

video_ylpos
0

0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

2

1

0

0

0

0

video_xlpos
0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

video_ylpos

End coordinates of the video column.

[15:12]

-

reserved

Reserved.

[11:0]

RW

video_xlpos

End coordinates of the video row.

0

0

0

0

0

VSDBK
VSDBK is the video layer background color register of the VSD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0344

VSDBK

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

vbk_alpha

Reset 0

0

0

0

0

vbk_y
0

0

0

0

0

0

0

0

8

7

6

5

vbk_cb
0

0

0

0

Bits

Access

Name

[31:24]

RW

vbk_alpha

[23:16]

RW

vbk_y

Component Y.

[15:8]

RW

vbk_cb

Component Cb.

[7:0]

RW

vbk_cr

Component Cr.

0

0

0

0

4

3

vbk_cr
0

0

0

0

0

0

0

0

Description
Background filling color of a video layer.
Its value ranges from 0 to 128.

G0CTRL
G0CTRL is the G0 channel control register. It is a non-instant register. It is used to configure
the information about graphics layers.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-131

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0400

G0CTRL

0x0000_0000

p
r
e

0

0

Reset 0

Bits

0

resereved
0

Access

0

0

0

0

Name

0

0

0

0

0

8

7

6

5

bitext

Name

csc_en
csc_mo
de

g0_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

ifmt
0

0

0

0

0

Description
Surface enable.

[31]

RW

g0_en

0: disabled
1: enabled
Color space conversion enable.

[30]

RW

csc_en

0: disabled
1: enabled
Color space conversion standard.

[29]

RW

csc_mode

0: BT.601
1: BT.709
Data format premultiplied enable.

[28]

RW

pre_en

0: disabled
1: enabled

[27:10]

-

reserved

Reserved.
Bit extend mode of the surface input bitmap.

[9:8]

RW

bitext

0X: extend 0s to lower bits
10: extend the value of the MSB to lower bits
11: extend the values of upper bits to lower bits
Input data format.

[7:0]

RW

ifmt

0x49: aRGB1555
Others: reserved

G0UPD
G0UPD is the G0 channel update enable register.

6-132

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0404

G0UPD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

Bit

6 Video Interface

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at graphics layer 0 are configured, the registers
are updated when the value 1 is written to this bit. After updates,
this bit is cleared automatically by the hardware.

regup

G0ADDR
G0ADDR is the frame address register of the G0 channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0408

G0ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

g0addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

g0addr

Buffer address for storing surface frames.

G0STRIDE
G0STRIDE is the frame stride register of the G0 channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-133

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x040C

G0STRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

g0stride
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

g0stride

Row stride of the frame buffer.

0

0

0

G0CBMPARA
G0CBMPARA is the blending parameter register of the G0 channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0410

G0CBMPARA

0x0000_0000

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

8

7

6

5

palpha_range

0

reserved

0

palpha_en

Reset 0

key_en

reserved

reserved

Name

key_mode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

4

3

2

1

0

0

0

0

galpha

0

0

0

0

0

Colorkey mode.
[15]

RW

key_mode

0: If Keymin ≤ Pixel ≤ Keymax, the color is regarded as the
colorkey.
1: If Pixel ≤ Keymin or Pixel ≥ Keymax, the color is regarded as
the colorkey.
Colorkey enable.

[14]

RW

key_en

0: disabled
1: enabled

[13]

-

reserved

Reserved.
Pixel alpha enable.

[12]

RW

palpha_en

0: disabled
1: enabled

6-134

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[11:9]

-

6 Video Interface

reserved

Reserved.
Range of the pixel alpha.

[8]

RW

palpha_range

0: 0–128
1: 0–255
Global blending alpha value.

[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

G0CKEYMAX
G0CKEYMAX is the maximum colorkey value register of the G0 channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0414

G0CKEYMAX

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va0

Reset 0

0

Bits

0

0

0

Access

keyr_max
0

0

0

0

Name

0

0

0

0

8

7

6

5

keyg_max
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

keyb_max
0

0

0

0

0

0

0

0

0

Description
Alpha0 value.

[31:24]

RW

va0

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha0.

[23:16]

RW

keyr_max

Maximum value of component R of the colorkey.

[15:8]

RW

keyg_max

Maximum value of component G of the colorkey.

[7:0]

RW

keyb_max

Maximum value of component B of the colorkey.

G0CKEYMIN
G0CKEYMIN is the minimum colorkey value register of the G0 channel. This register is a
non-instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-135

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0418

G0CKEYMIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va1

Reset 0

0

0

Bits

0

0

keyr_min
0

Access

0

0

0

0

0

0

Name

0

8

7

6

5

keyg_min
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

keyb_min
0

0

0

0

0

0

0

0

Description
Alpha1 value.

[31:24]

RW

va1

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha1.

[23:16]

RW

keyr_min

Minimum value of component R of the colorkey.

[15:8]

RW

keyg_min

Minimum value of component G of the colorkey.

[7:0]

RW

keyb_min

Minimum value of component B of the colorkey.

G0IRESO
G0IRESO is the input resolution register of the G0 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x041C

G0IRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

ih

Note: In interlaced output mode, the actual height of an input
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode

[15:12]

-

reserved

Reserved.
Width of an input image at a graphics layer, in the unit of pixel.

[11:0]

6-136

RW

iw

The configured value is equal to the actual width minus 1.
Note: The actual width of an input image at a graphics layer must
be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

G0ORESO
G0ORESO is the output resolution register of the G0 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0420

G0ORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of an output
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an output image at a graphics layer, in the unit of pixel.

[11:0]

RW

The configured value is equal to the actual width minus 1.

ow

Note: The actual width of an output image at a graphics layer must
be an even number.

G0SFPOS
G0SFPOS is the source bitmap start position register of the G0 channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0424

G0SFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Y coordinate of the source start coordinates.
[27:16]

RW

Issue 02 (2010-04-20)

src_yfpos

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-137

Hi3515
Data Sheet

6 Video Interface

[15:12]

-

reserved

Reserved.

[11:0]

RW

src_xfpos

X coordinate of the source start coordinates.
The value 0 indicates the first pixel in the first row.

G0DFPOS
G0DFPOS is the display window start position register of the G0 channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0428

G0DFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xfpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_yfpos

Column start coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xfpos

Row start coordinates.

0

0

0

0

0

0

0

0

G0DLPOS
G0DLPOS is the display window end position register of the G0 channel (in pixels). This
register is a non-instant register.
Offset Addresss0x042C
Bit

Register Name

Total Reset Value

G0DLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_ylpos
0

0

0

0

0

0

0

0

0

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xlpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_ylpos

Column end coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xlpos

Row end coordinates.

6-138

8

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

G1CTRL
G1CTRL is the G1 channel control register. It is a non-instant register. It is used to configure
the information about graphics layers.
Total Reset Value

0x0500

G1CTRL

0x0000_0000

p
r
e

0

0

Reset 0

Bits

0

resereved
0

Access

0

0

0

0

Name

0

0

0

0

0

8

7

6

5

bitext

csc_en
csc_mo
de

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
g1_en

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

ifmt
0

0

0

0

0

Description
Surface enable.

[31]

RW

g1_en

0: disabled
1: enabled
Color space conversion enable.

[30]

RW

csc_en

0: disabled
1: enabled
Color space conversion standard.

[29]

RW

csc_mode

0: BT.601
1: BT.709
Data format premultiplied enable.

[28]

RW

pre_en

0: disabled
1: enabled

[27:10]

-

reserved

Reserved.
Bit extend mode of the surface input bitmap.

[9:8]

RW

bitext

0X: extend 0s to lower bits
10: extend the value of the MSB to a lower bit
11: extend the values of upper bits to lower bits
Input data format.

[7:0]

RW

ifmt

0x49: aRGB1555
Others: reserved

G1UPD
G1UPD is the G1 channel update enable register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-139

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0504

G1UPD

0x0000_0000

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at graphics layer 1 are configured, the registers
are updated when the value 1 is written to this bit. After updates,
this bit is cleared automatically by the hardware.

regup

G1ADDR
G1ADDR is the frame address register of the G1 channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0508

G1ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

g1addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

g1addr

Buffer address for storing surface frames.

G1STRIDE
G1STRIDE is the frame stride register of the G1 channel.

6-140

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x050C

G1STRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

g1stride
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

g1stride

Row stride of the frame buffer.

0

0

0

G1CBMPARA
G1CBMPARA is the blending parameter register of the G1 channel. This register is a noninstant register.
Register Name

Total Reset Value

0x0510

G1CBMPARA

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

8

7

6

5

palpha_range

0

reserved

0

palpha_en

reserved

key_en

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

key_mode

Bit

Offset Address

0

0

4

3

2

1

0

0

0

0

galpha

0

0

0

0

0

Colorkey mode.
[15]

RW

key_mode

0: If Keymin ≤ Pixel ≤ Keymax, the color is regarded as the
colorkey.
1: If Pixel ≤ Keymin or Pixel ≥ Keymax, the color is regarded as
the colorkey.
Colorkey enable.

[14]

RW

key_en

0: disabled
1: enabled

[13]

-

reserved

Reserved.
Pixel alpha enable.

[12]

RW

palpha_en

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-141

Hi3515
Data Sheet

6 Video Interface

[11:9]

RW

reserved

Reserved.
Range of the pixel alpha.

[8]

RW

0: 0–128

palpha_range

1: 0–255
Global blending alpha value.
[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

G1CKEYMAX
G1CKEYMAX is the maximum colorkey value register of the G1 channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0514

G1CKEYMAX

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va0

Reset 0

0

0

0

0

keyr_max
0

0

0

0

0

0

0

0

8

7

6

5

keyg_max
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

keyb_max
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RW

va0

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha0.

[23:16]

RW

keyr_max

Maximum value of component R of the colorkey.

[15:8]

RW

keyg_max

Maximum value of component G of the colorkey.

[7:0]

RW

keyb_max

Maximum value of component B of the colorkey.

Alpha0 value.

G1CKEYMIN
G1CKEYMIN is the minimum colorkey value register of the G1 channel. This register is a
non-instant register.

6-142

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0518

G1CKEYMIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va1

Reset 0

0

0

Bits

0

0

keyr_min
0

Access

0

0

0

0

0

0

Name

0

8

7

6

5

keyg_min
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

keyb_min
0

0

0

0

0

0

0

0

Description
Alpha1 value.

[31:24]

RW

va1

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha1.

[23:16]

RW

keyr_min

Minimum value of component R of the colorkey.

[15:8]

RW

keyg_min

Minimum value of component G of the colorkey.

[7:0]

RW

keyb_min

Minimum value of component B of the colorkey.

G1IRESO
G1IRESO is the input resolution register of the G1 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x051C

G1IRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

ih

Note: In interlaced output mode, the actual height of an input
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an input image at a graphics layer, in the unit of pixel.

[11:0]

RW

Issue 02 (2010-04-20)

iw

The configured value is equal to the actual width minus 1.
Note: The actual width of an input image at a graphics layer must
be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-143

Hi3515
Data Sheet

6 Video Interface

G1ORESO
G1ORESO is the output resolution register of the G1 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0520

G1ORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of an output
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an output image at a graphics layer, in the unit of pixel.

[11:0]

RW

The configured value is equal to the actual width minus 1.

ow

Note: The actual width of an output image at a graphics layer must
be an even number.

G1SFPOS
G1SFPOS is the source bitmap start position register of the G1 channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0524

G1SFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

src_yfpos

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Y coordinate of the source start coordinates.

6-144

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

[15:12]

-

reserved

[11:0]

RW

src_xfpos

Reserved.
X coordinate of the source start coordinates.
The value 0 indicates the first pixel in the first row.

G1DFPOS
G1DFPOS is the display window start position register of the G1 channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0528

G1DFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

xfpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

yfpos

Column start coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

xfpos

Row start coordinates.

0

0

0

0

0

0

0

G1DLPOS
G1DLPOS is the display window end position register of the G1 channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x052C

G1DLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ylpos
0

0

0

0

0

0

0

0

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

xlpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

ylpos

Column end coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

xlpos

Row end coordinates.

Issue 02 (2010-04-20)

8

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

6-145

Hi3515
Data Sheet

6 Video Interface

G2CTRL
G2CTRL is the G2 channel control register. It is a non-instant register. It is used to configure
the information about graphics layers.

Bit

Offset Address

Register Name

Total Reset Value

0x0600

G2CTRL

0x0000_0000

p
r
e

0

0

Reset 0

Bits

0

resereved
0

Access

0

0

0

0

Name

0

0

0

0

0

8

7

6

5

bitext

Name

csc_en
csc_mo
de

g2_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

ifmt
0

0

0

0

0

Description
Surface enable.

[31]

RW

0: disabled

g2_en

1: enabled
Color space conversion enable.
[30]

RW

csc_en

0: disabled
1: enabled
Color space conversion standard.

[29]

RW

csc_mode

0: BT.601
1: BT.709
Data format premultiplied enable.

[28]

RW

pre_en

0: disabled
1: enabled

[27:10]

-

reserved

Reserved.
Bit extend mode of the surface input bitmap.

[9:8]

RW

bitext

0X: extend 0s to lower bits
10: extend the value of the MSB to a lower bit
11: extend the values of upper bits to lower bits
Input data format.

[7:0]

RW

ifmt

0x49: aRGB1555
Others: reserved

G2UPD
G2UPD is the G2 channel update enable register.

6-146

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0604

G2UPD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

Bit

6 Video Interface

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at graphics layer 2 are configured, the registers
are updated when the value 1 is written to this bit. After updates,
this bit is cleared automatically by the hardware.

regup

G2ADDR
G2ADDR is the frame address register of the G2 channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0608

G2ADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

g2addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

g2addr

Buffer address for storing surface frames.

G2STRIDE
G2STRIDE is the frame stride register of the G2 channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-147

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x060C

G2STRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

g2stride
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

g2stride

Row stride of the frame buffer.

0

0

0

G2CBMPARA
G2CBMPARA is the blending parameter register of the G2 channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0610

G2CBMPARA

0x0000_0000

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

8

7

6

5

palpha_range

0

reserved

0

palpha_en

Reset 0

key_en

reserved

reserved

Name

key_mode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

4

3

2

1

0

0

0

0

galpha

0

0

0

0

0

Colorkey mode.
[15]

RW

key_mode

0: If Keymin ≤ Pixel ≤ Keymax, the color is regarded as the
colorkey.
1: If Pixel ≤ Keymin or Pixel ≥ Keymax, the color is regarded as
the colorkey.
Colorkey enable.

[14]

RW

key_en

0: disabled
1: enabled

[13]

-

reserved

Reserved.
Pixel alpha enable.

[12]

RW

palpha_en

0: disabled
1: enabled

6-148

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[11:9]

-

6 Video Interface

reserved

Reserved.
Range of the pixel alpha.

[8]

RW

palpha_range

0: 0–128
1: 0–255
Global blending alpha value.

[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

G2CKEYMAX
G2CKEYMAX is the maximum colorkey value register of the G2 channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0614

G2CKEYMAX

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va0

Reset 0

0

Bits

0

0

0

Access

keyr_max
0

0

0

0

Name

0

0

0

0

8

7

6

5

keyg_max
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

keyb_max
0

0

0

0

0

0

0

0

0

Description
Alpha0 value.

[31:24]

RW

va0

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha0.

[23:16]

RW

keyr_max

Maximum value of component R of the colorkey.

[15:8]

RW

keyg_max

Maximum value of component G of the colorkey.

[7:0]

RW

keyb_max

Maximum value of component B of the colorkey.

G2CKEYMIN
G2CKEYMIN is the minimum colorkey value register of the G2 channel. This register is a
non-instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-149

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0618

G2CKEYMIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va1

Reset 0

0

0

Bits

0

0

keyr_min
0

Access

0

0

0

0

0

0

Name

0

8

7

6

5

keyg_min
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

keyb_min
0

0

0

0

0

0

0

0

Description
Alpha1 value.

[31:24]

RW

va1

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha1.

[23:16]

RW

keyr_min

Minimum value of component R of the colorkey.

[15:8]

RW

keyg_min

Minimum value of component G of the colorkey.

[7:0]

RW

keyb_min

Minimum value of component B of the colorkey.

G2IRESO
G2IRESO is the input resolution register of the G2 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x061C

G2IRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

ih

Note: In interlaced output mode, the actual height of an input
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an input image at a graphics layer, in the unit of pixel.

[11:0]

6-150

RW

iw

The configured value is equal to the actual width minus 1.
Note: The actual width of an input image at a graphics layer must
be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

G2ORESO
G2ORESO is the output resolution register of the G2 channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0620

G2ORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output image at a graphics layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of an output
image at a graphics layer must be an even number. There is no
such restriction in progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an output image at a graphics layer, in the unit of pixel.

[11:0]

RW

The configured value is equal to the actual width minus 1.

ow

Note: The actual width of an output image at a graphics layer must
be an even number.

G2SFPOS
G2SFPOS is the source bitmap start position register of the G2 channel. This register is a noninstant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0624

G2SFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Y coordinate of the source start coordinates.
[27:16]

RW

Issue 02 (2010-04-20)

src_yfpos

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-151

Hi3515
Data Sheet

6 Video Interface

[15:12]

-

reserved

[11:0]

RW

src_xfpos

Reserved.
X coordinate of the source start coordinates.
The value 0 indicates the first pixel in the first row.

G2DFPOS
G2DFPOS is the display window start position register of the G2 channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0628

G2DFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

xfpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

yfpos

Column start coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

xfpos

Row start coordinates.

0

0

0

0

0

0

0

G2DLPOS
G2DLPOS is the display window end position register of the G2 channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x062C

G2DLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ylpos
0

0

0

0

0

0

0

0

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

xlpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

ylpos

Column end coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

xlpos

Row end coordinates.

6-152

8

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

HCCTRL
HCCTRL is the HC channel control register. It is a non-instant register. It is used to configure
the information about the HC layer.
Total Reset Value

0x0800

HCCTRL

0x0000_0000

Reset 0

0

Bits

0

reserved
0

0

Access

0

0

0

0

Name

0

0

0

0

0

8

7

6

5

bitext

csc_en
csc_mo
de

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
hc_en

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

ifmt
0

0

0

0

0

Description
Surface enable.

[31]

RW

hc_en

0: disabled
1: enabled
Color space conversion enable.

[30]

RW

csc_en

0: disabled
1: enabled
Color space conversion standard.

[29]

RW

csc_mode

0: BT.601
1: BT.709

[28:10]

-

reserved

Reserved.
Bit extend mode of the surface input bitmap.

[9:8]

RW

bitext

0X: extend 0s to lower bits
10: extend the value of the MSB to a lower bit
11: extend the values of upper bits to lower bits
Input data format.

[7:0]

RW

ifmt

0x49: aRGB1555
Others: reserved

HCUPD
HCUPD is the HC channel update enable register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-153

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0804

HCUPD

0x0000_0000

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
regup

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

Register update bit of surfaces.
[0]

RW

After the registers at the HC layer are configured, the registers are
updated when the value 1 is written to this bit. After updates, this
bit is cleared automatically by the hardware.

regup

HCADDR
HCADDR is the frame address register of the HC channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0808

HCADDR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

hcaddr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

hcaddr

Buffer address for storing surface frames.

HCSTRIDE
HCSTRIDE is the frame stride address register of the HC channel.

6-154

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x080C

HCSTRIDE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

hcstride
0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

hcstride

Row stride of the frame buffer.

0

0

0

HCCBMPARA
HCCBMPARA is the blending parameter register of the HC channel. This register is a noninstant register.
Register Name

Total Reset Value

0x0810

HCCBMPARA

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

8

7

6

5

palpha_range

0

reserved

0

palpha_en

reserved

key_en

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

key_mode

Bit

Offset Address

0

0

4

3

2

1

0

0

0

0

galpha

0

0

0

0

0

Colorkey mode.
[15]

RW

key_mode

0: If Keymin ≤ Pixel ≤ Keymax, the color is regarded as the
colorkey.
1: If Pixel ≤ Keymin or Pixel ≥ Keymax, the color is regarded as
the colorkey.
Colorkey enable.

[14]

RW

key_en

0: disabled
1: enabled

[13]

-

reserved

Reserved.
Pixel alpha enable.

[12]

RW

palpha_en

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-155

Hi3515
Data Sheet

6 Video Interface

[11:9]

-

reserved

Reserved.
Range of the pixel alpha.

[8]

RW

0: 0–128

palpha_range

1: 0–255
Global blending alpha value.
[7:0]

RW

galpha

This value ranges from 0 to 127. The value 0 indicates full
transparent and the value 127 indicates opaque.

HCCKEYMAX
HCCKEYMAX is the maximum colorkey value register of the HC channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0814

HCCKEYMAX

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va0

Reset 0

0

0

0

0

keyr_max
0

0

0

0

0

0

0

0

8

7

6

5

keyg_max
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

keyb_max
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RW

va0

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha0.

[23:16]

RW

keyr_max

Maximum value of component R of the colorkey.

[15:8]

RW

keyg_max

Maximum value of component G of the colorkey.

[7:0]

RW

keyb_max

Maximum value of component B of the colorkey.

Alpha0 value.

HCCKEYMIN
HCCKEYMIN is the maximum colorkey value register of the HC channel. This register is a
non-instant register.

6-156

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0818

HCCKEYMIN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

va1

Reset 0

0

0

Bits

0

0

keyr_min
0

Access

0

0

0

0

0

0

Name

0

8

7

6

5

keyg_min
0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

keyb_min
0

0

0

0

0

0

0

0

Description
Alpha1 value.

[31:24]

RW

va1

When the data format is alpha RGB1555 and the value of the MSB
is 0, the alpha value is replaced with the value of alpha1.

[23:16]

RW

keyr_min

Minimum value of component R of the colorkey.

[15:8]

RW

keyg_min

Minimum value of component G of the colorkey.

[7:0]

RW

keyb_min

Minimum value of component B of the colorkey.

HCIRESO
HCIRESO is the input resolution register of the HC channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x081C

HCIRESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

ih
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

iw
0

0

0

0

0

0

0

0

Height of an input image of the HC layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

ih

Note: In interlaced output mode, the actual height of the HC layer
must be an even number. There is no such restriction in
progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an input image of the HC layer, in the unit of pixel.

[11:0]

RW

iw

The configured value is equal to the actual width minus 1.
Note: The actual width of the HC layer must be an even number.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-157

Hi3515
Data Sheet

6 Video Interface

HCORESO
HCORESO is the input resolution register of the HC channel. This register is a non-instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0820

HCORESO

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

oh
0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

0

0

0

5

4

3

2

1

0

0

0

0

0

0

ow
0

0

0

0

0

0

0

0

Height of an output image of the HC layer, in the unit of row.
The configured value is equal to the actual height minus 1.
[27:16]

RW

oh

Note: In interlaced output mode, the actual height of the HC layer
must be an even number. There is no such restriction in
progressive output mode.

[15:12]

-

reserved

Reserved.
Width of an output image of the HC layer, in the unit of pixel.

[11:0]

RW

ow

The configured value is equal to the actual width minus 1.
Note: The actual width of the HC layer must be an even number.

HCSFPOS
HCSFPOS is the source bitmap start position register of the HC channel. This register is a
non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0824

HCSFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

src_yfpos
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

src_xfpos
0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

src_yfpos

The value 0 indicates the first row. In interlaced output mode, the
configured value must be an even number.

[15:12]

-

reserved

Reserved.

Y coordinate of the source start coordinates.

6-158

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[11:0]

RW

6 Video Interface

X coordinate of the source start coordinates.

src_xfpos

The value 0 indicates the first pixel in the first row.

HCFPOS
HCFPOS is the display window start position register of the HC channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0828

HCFPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_yfpos
0

0

0

0

0

0

0

0

0

8

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xfpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_yfpos

Column start coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xfpos

Row start coordinates.

0

0

0

0

0

0

0

0

HCDLPOS
HCDLPOS is the display window end position register of the HC channel (in pixels). This
register is a non-instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x082C

HCDLPOS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

disp_ylpos
0

0

0

0

0

0

0

0

0

reserved
0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

disp_xlpos
0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:16]

RW

disp_ylpos

Column end coordinates.

[15:12]

-

reserved

Reserved.

[11:0]

RW

disp_xlpos

Row end coordinates.

Issue 02 (2010-04-20)

8

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

6-159

Hi3515
Data Sheet

6 Video Interface

CBMBKG1
CBMBKG1 is the blending background color register of mixer 1. This register is an instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0B00

CBMBKG1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

cbm_bkgcr1
0

0

0

0

0

0

0

0

0

8

7

6

cbm_bkgcb1
0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

cbm_bkgy1
0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:16]

RW

cbm_bkgcr1

Blending background color of mixer 1, component Y.

[15:8]

RW

cbm_bkgcb1

Blending background color of mixer 1, component Cb.

[7:0]

RW

cbm_bkgy1

Blending background color of mixer 1, component Cr.

0

0

CBMBKG2
CBMBKG2 is the blending background color register of mixer 2. This register is an instant
register.

Bit

Offset Address

Register Name

Total Reset Value

0x0B04

CBMBKG2

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

cbm_bkgcr2
0

0

0

0

0

0

0

0

0

8

7

6

cbm_bkgcb2
0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

cbm_bkgy2
0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:16]

RW

cbm_bkgcr2

Blending background color of mixer 2, component Y.

[15:8]

RW

cbm_bkgcb2

Blending background color of mixer 2, component Cb.

[7:0]

RW

cbm_bkgy2

Blending background color of mixer 2, component Cr.

0

0

CBCFG
CBCFG is the color bar configuration register. It is an instant register.

6-160

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0B0C

CBCFG

0x0000_0000

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

0

0

0

0

0

0

5

0

0

0

0

0

4

3

2

0

0

0

1

0

mixer_prio0

0

6

mixer_prio1

0

7
mixer_prio2

sur_attr0

0

8

mixer_prio3

sur_attr1

0

reserved

mixer_prio4

sur_attr2

0

0

mixer3_prio

sur_attr3

Reset 0

sur_attr4

Name

sur_attr5

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Bit

6 Video Interface

0

0

GDC_HC link.
[29]

RW

sur_attr5

0: mixer 1
1: mixer 2
GDC_G2 link.

[28]

RW

sur_attr4

0: mixer 1
1: mixer 2
GDC_G1 link.

[27]

RW

sur_attr3

0: mixer 1
1: mixer 2
GDC_G0 link.

[26]

RW

sur_attr2

0: mixer 1
1: reserved
VDC_AD link.

[25]

RW

sur_attr1

0: mixer 1
1: mixer 2
VDC_HD link.

[24]

RW

sur_attr0

0: mixer 1
1: reserved

[23:16]

-

reserved

Reserved.
Blending layer priority of mixer 3.

[15]

RW

mixer3_prio

0: The priority of G3 is higher than that of VSD.
1: The priority of VSD is higher than that of G3.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-161

Hi3515
Data Sheet

6 Video Interface

Blended layer priority configuration of mixer 1 and mixer 2. It
indicates the drive layer of priority 4 (the highest priority).
000: no drive layer
001: vdc_hd
[14:12]

RW

mixer_prio4

010: vdc_ad
011: gdc_g0
100: gdc_g1
101: gdc_g2
Others: reserved
Blended layer priority configuration of mixer 1 and mixer 2. It
indicates the drive layer of priority 3.
000: no drive layer
001: vdc_hd

[11:9]

RW

mixer_prio3

010: vdc_ad
011: gdc_g0
100: gdc_g1
101: gdc_g2
Others: reserved
Blended layer priority configuration of mixer 1 and mixer 2. It
indicates the drive layer of priority 2.
000: no drive layer
001: vdc_hd

[8:6]

RW

mixer_prio2

010: vdc_ad
011: gdc_g0
100: gdc_g1
101: gdc_g2
Others: reserved
Blended layer priority configuration of mixer 1 and mixer 2. It
indicates the drive layer of priority 1.
000: no drive layer
001: vdc_hd

[5:3]

RW

mixer_prio1

010: vdc_ad
011: gdc_g0
100: gdc_g1
101: gdc_g2
Others: reserved

6-162

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Blended layer priority configuration of mixer 1 and mixer 2. It
indicates the drive layer of priority 0 (the lowest priority).
000: no drive layer
001: vdc_hd
[2:0]

RW

010: vdc_ad

mixer_prio0

011: gdc_g0
100: gdc_g1
101: gdc_g2
Others: reserved

DHDCTRL
DHDCTRL is the HD display channel control register. It is an instant register.

0x0C00

DHDCTRL

0x0000_00EC

Bits

Access

0

0

0

Name

0

0

0

0

0

0

0

0

1

0

0

0

1

5

4

3

intfb

0

reserved

0

0

ivs

0

iop

0

6

ihs

0

7

idv

0

gmmen
gmmmod
e

0

cscen

0

clipen

Reset 0

reserved

8

synm

Total Reset Value

cbar_sel

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
intf_en
slave_mo
de

Bit

Offset Address

1

0

2

1

0

intfdm

1

1

0

0

Description
Display interface enable.
0: disabled

[31]

RW

intf_en

1: enabled
Note: Data is output through the HD interface only when this
interface is enabled.
Slave mode enable of the display interface.

[30]

RW

slave_mode

0: disabled (master mode)
1: enabled (driven by the input BT.1120 capture timing)
Color space control for the color bar.

[29:28]

RW

cbar_sel

00 and 01: RGB space
10: YUV space
11: RGB space

[27:17]

-

reserved

Reserved.
Clip bit output enable.

[16]

RW

clipen

0: disabled
1: enabled

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-163

Hi3515
Data Sheet

6 Video Interface

Color space conversion enable.
[15]

RW

cscen

0: disabled
1: enabled
Output gamma correction enable.

[14]

RW

gmmen

0: disabled
1: enabled
Output gamma correction mode.

[13]

RW

gmmmode

0: The gamma table is generated by the hardware.
1: The gamma table is configured by the software.

[12:11]

-

reserved

Reserved.
Reverse phase output enable of the data valid signal.

[10]

RW

idv

0: disabled
1: enabled
Reverse phase output enable of the horizontal sync pulse.

[9]

RW

0: disabled

ihs

1: enabled
Reverse phase output enable of the vertical sync pulse.
[8]

RW

ivs

0: disabled
1: enabled
Interlaced or progressive display.

[7]

RW

iop

0: interlaced display
1: progressive display
Synchronization mode.

[6]

RW

0: timing label mode (such as BT.656)

synm

1: sync signal mode (such as LCD display)
Bit width mode of the output interface.
00: single-component mode (each clock outputs one component)
[5:4]

RW

intfb

01: 2-component mode (each clock outputs two components)
10: 3-component mode (each clock outputs three components)
11: reserved
Interface data format.

[3:0]

RW

intfdm

0x0: YCbCr4:2:2
0xC: RGB888/YCbCr4:4:4 output
Others: reserved

6-164

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHDVSYNC
DHDVSYNC is the vertical sync timing register of the HD display channel. This register is an
instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C04

DHDVSYNC

0x0010_A257

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

vfb
0

0

0

0

0

0

0

0

1

0

0

0

0

Access

Name

Description

[31:28]

-

reserved

Reserved.

RW

[19:12]

1

6

5

4

3

2

1

0

1

0

1

1

1

vact
0

1

0

0

0

1

0

0

1

0

In interlaced output mode, it indicates the top vertical blanking
front porch.

vfb

RW

7

vbb

Bits

[27:20]

8

In progressive output mode, it indicates the vertical blanking front
porch.
In interlaced output mode, it indicates the top vertical blanking
back porch.

vbb

In progressive output mode, it indicates the vertical blanking back
porch plus the vertical pulse width.
In interlaced output mode, it indicates the height of an active
image in a top field.

[11:0]

RW

vact

In progressive output mode, it indicates the height of an active
image in a frame.
The configured value is equal to the actual value minus 1.

DHDHSYNC1
DHDHSYNC1 is the horizontal sync timing register 1 of the HD display channel. This
register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C08

DHDHSYNC1

0x00D7_031F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

hbb

Reset 0

0

0

0

0

0

0

0

1

8

7

6

5

4

3

2

1

0

0

0

1

1

1

1

1

hact
1

0

1

0

1

1

1

0

0

0

0

0

0

1

1

0

Bits

Access

Name

Description

[31:16]

RW

hbb

Horizontal blanking back porch, in the unit of pixel.

[15:0]

RW

hact

Number of horizontal pixels in the active area.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-165

Hi3515
Data Sheet

6 Video Interface

DHDHSYNC2
DHDHSYNC2 is the horizontal sync timing register 2 of the HD display channel. This
register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C0C

DHDHSYNC2

0x0000_0027

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

1

0

0

1

1

1

hfb
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

hfb

Horizontal blanking front porch, in the unit of pixel.

DHDVPLUS
DHDVPLUS is the vertical sync plus timing register of the HD display channel. This register
is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C10

DHDVPLUS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

bvfb
0

0

0

0

0

0

8

7

bvbb
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

bvact
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:20]

RW

bvfb

In interlaced output mode, it indicates the bottom vertical blanking
front porch.

[19:12]

RW

bvbb

In interlaced output mode, it indicates the bottom vertical blanking
back porch and the vertical pulse width.

[11:0]

RW

bvact

In interlaced output mode, it indicates the height of an active
image in a bottom field.
The configured value is equal to the actual value minus 1.

6-166

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHDPWR
DHDPWR is the sync pulse width register of the HD display channel. This register is an
instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C14

DHDPWR

0x0003_007F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

vpw
0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

1

1

1

1

1

1

1

hpw
0

1

1

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:16]

RW

vpw

The configured value is equal to the vertical pulse width minus 1.

[15:0]

RW

hpw

The configured value is equal to the horizontal pulse width minus
1.

DHDFIFOTHD
DHDFIFOTHD is the async FIFO threshold configuration register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C18

DHDFIFOTHD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

aalmthd
0

0

0

0

0

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

Data alarm threshold.
[11:0]

RW

aalmthd

When the data amount in the async FIFO is below the threshold,
an alarm is raised.

DHDVTTHD
DHDVTTHD is the vertical timing threshold register of the HD display channel. This register
is an instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-167

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0C1C

DHDVTTHD

0x0000_0001

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

8

reserved

Name

thd_mode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

7

6

5

4

3

2

1

0

0

0

0

0

1

vtmgthd

0

0

0

0

0

0

0

0

0

Threshold interrupt generation mode.
0: frame mode. The threshold count is in the unit of frame.

[16]

RW

thd_mode

[15:13]

-

reserved

Reserved.

[12:0]

RW

vtmgthd

Vertical timing threshold. When the vertical timing counter
reaches this threshold, an HD channel vertical timing interrupt is
triggered.

1: field mode. The threshold count is in the unit of field during
interlace display.

DHDCSCIDC
DHDCSCIDC is the input DC component for color space conversion register of the HD
display channel. This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C20

DHDCSCIDC

0x07C3_0180

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

cscidc2
0

1

1

1

1

1

0

8

7

6

cscidc1
0

0

0

1

1

0

0

0

0

5

4

3

2

1

0

0

0

0

cscidc0
0

0

0

1

1

0

0

0

0

Bits

Access

Name

Description

[31:27]

-

reserved

Reserved.

[26:18]

RW

cscidc2

DC parameter of input component 2. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

[17:9]

RW

cscidc1

DC parameter of input component 1. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

[8:0]

RW

cscidc0

DC parameter of input component 0. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

6-168

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHDCSCODC
DHDCSCODC is the output DC component for color space conversion register of the HD
display channel. This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C24

DHDCSCODC

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

cscodc2

0

0

0

0

0

0

0

0

8

7

6

5

cscodc1
0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

cscodc0
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:27]

-

reserved

Reserved.

[26:18]

RW

cscodc2

DC parameter of output component 2. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

[17:9]

RW

cscodc1

DC parameter of output component 1. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

[8:0]

RW

cscodc0

DC parameter of output component 0. The parameter value is
expressed as a complementary code and the MSB is the sign bit.

DHDCSCP0
DHDCSCP0 is the color space conversion parameter 0 register of the HD display channel.
This register is an instant register.
Register Name

Total Reset Value

0x0C28

DHDCSCP0

0x0000_012A

Name

Reset 0

0

cscp01

0

0

0

0

0

0

0

0

0

8

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

1

0

1

0

cscp00

0

0

0

0

0

1

0

0

1

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp01

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp00

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-169

Hi3515
Data Sheet

6 Video Interface

DHDCSCP1
DHDCSCP1 is the color space conversion parameter 1 register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C2C

DHDCSCP1

0x012A_01CB

Reset 0

0

cscp10

0

0

0

0

0

1

0

0

1

8

reserved

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

1

0

1

0

0

0

7

6

5

4

3

2

1

0

0

1

0

1

1

cscp02

0

0

0

0

0

1

1

1

0

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp10

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp02

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

DHDCSCP2
DHDCSCP2 is the color space conversion parameter 2 register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C30

DHDCSCP2

0x1F77_1FC9

Reset 0

0

cscp12

0

1

1

1

1

1

0

1

1

8

reserved

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

1

0

1

1

1

0

0

7

6

5

4

3

2

1

0

0

1

0

0

1

cscp11

0

1

1

1

1

1

1

1

0

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp12

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp11

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

6-170

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHDCSCP3
DHDCSCP3 is the color space conversion parameter 3 register of the HD display channel.
This register is an instant register.
Register Name

Total Reset Value

0x0C34

DHDCSCP3

0x021D_012A

Name

Reset 0

0

cscp21

0

0

0

0

1

0

0

0

0

8

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

1

1

1

0

1

0

0

7

6

5

4

3

2

1

0

0

1

0

1

0

cscp20

0

0

0

0

0

1

0

0

1

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp21

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp20

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

DHDCSCP4
DHDCSCP4 is the color space conversion parameter 4 register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C38

DHDCSCP4

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

0

cscp22
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:13]

-

reserved

Reserved.

[12:0]

RW

cscp22

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-171

Hi3515
Data Sheet

6 Video Interface

DHDCLIPL
DHDCLIPL is the minimum threshold clip bit processing register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C3C

DHDCLIPL

0x0401_0040

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

clipcl2

0

0

0

1

0

8

7

6

clipcl1

0

0

0

0

0

0

0

0

1

0

0

5

4

3

2

1

0

0

0

0

0

clipcl0

0

0

0

0

0

0

0

1

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:20]

RW

clipcl2

Minimum threshold Y/R of component 2, unsigned integer.

[19:10]

RW

clipcl1

Minimum threshold Cb/G of component 1, unsigned integer.

[9:0]

RW

clipcl0

Minimum threshold Cr/B of component 0, unsigned integer.

DHDCLIPH
DHDCLIPH is the maximum threshold clip bit processing register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C40

DHDCLIPH

0x3ACF_03C0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

clipch2

1

1

1

0 1

8

7

6

clipch1

0

1

1

1

0

1

1

1

1

0

0

5

4

3

2

1

0

0

0

0

0

clipch0

0

0

0

0

1

1

1

1

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:20]

RW

clipch2

Maximum threshold Y/R of component 2, unsigned integer.

[19:10]

RW

clipch1

Maximum threshold Cb/G of component 1, unsigned integer.

[9:0]

RW

clipch0

Maximum threshold Cr/B of component 0, unsigned integer.

6-172

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHDGMMTHD1
DHDGMMTHD1 is the gamma operation threshold 1 register of the HD display channel.
This register is an instant register.
Register Name

Total Reset Value

0x0C44

DHDGMMTHD1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

Name

Reset 0

0

thd_med_low

0

0

0

0

0

0

0

8

7

6

thd_high

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

thd_low

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:20]

RW

thd_med_low

Threshold with med_low luminance.

[19:10]

RW

thd_high

Threshold with high luminance.

[9:0]

RW

thd_low

Threshold with low luminance.

0

0

0

0

0

DHDGMMTHD2
DHDGMMTHD2 is the gamma operation threshold 2 register of the HD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C48

DHDGMMTHD2

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

8

7

gmm_multiple
0

0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

thd_med_high
0

0

0

Bits

Access

Name

Description

[31:18]

-

reserved

Reserved.

[17:10]

RW

gmm_multiple

Gamma operation multiplier.

[9:0]

RW

thd_med_high

Threshold with med_high luminance.

0

0

0

0

0

0

DHDGMMLOWt
DHDGMMLOWt is the low-luminance gamma lookup table register of the HD display
channel. This register is an instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-173

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0C50+t1×0x4

DHDGMMLOWt

0x0000_0000

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

table_datat

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:0]

RW

table_datat

Gamma lookup table data t1.

0

0

DHDGMMMEDt
DHDGMMMEDt is the medium-luminance gamma lookup table register of the HD display
channel. This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0C60+t2×0x4

DHDGMMMEDt

0x0000_0000

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

table_datat

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:0]

RW

table_datat

Gamma lookup table data t2.

0

0

DHDGMMHIGHt
DHDGMMHIGHt is the high-luminance gamma lookup table register of the HD display
channel. This register is an instant register.

6-174

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x0C70+t3×0x4

DHDGMMHIGHt

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

6 Video Interface

Name

Reset 0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

table_datat

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:0]

RW

table_datat

Gamma lookup table data t3.

0

0

DHDGMMMLt
DHDGMMMLt is the middle_low-luminance gamma lookup table register of the HD display
channel. This register is an instant register.
Register Name

Total Reset Value

0x0C80+t4×0x4

DHDGMMMLt

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

Name

Reset 0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

table_datat

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:0]

RW

table_datat

Gamma lookup table data t4.

0

0

DHDGMMMHt
DHDGMMMHt is the middle_high-luminance gamma lookup table register of the HD display
channel. This register is an instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-175

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0CA0+t5×0x4

DHDGMMMHt

0x0000_0000

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

table_datat

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:0]

RW

table_datat

Gamma lookup table data t5.

0

0

DHDGMM3LOW
DHDGMM3LOW is the low-threshold luminance statistics register of three gamma areas of
the HD display channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0CB0

DHDGMM3LOW

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cnt3_low
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

[20:0]

RO

cnt3_low

Low-threshold luminance statistics on three areas.

DHDGMM3MED
DHDGMM3MED is the medium-threshold luminance statistics register of three gamma areas
of the HD display channel.

6-176

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0CB4

DHDGMM3MED

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cnt3_med
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

[20:0]

RO

cnt3_med

Medium-threshold luminance statistics on three areas.

DHDGMM3HIGH
DHDGMM3HIGH is the high-threshold luminance statistics register of three gamma areas of
the HD display channel.

Bit

Offset Address

Register Name

Total Reset Value

0x0CB8

DHDGMM3HIGH

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cnt3_high
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

[20:0]

RO

cnt3_high

High-threshold luminance statistics on three areas.

DHDGMM8MLOW
DHDGMM8MLOW is the low-threshold luminance statistics register after the middle gamma
area of the HD display channel is divided into eight segments.

Bit

Offset Address

Register Name

Total Reset Value

0x0CC0

DHDGMM8MLOW

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

cnt8_med_low
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

6-177

Hi3515
Data Sheet

6 Video Interface

[20:0]

RO

cnt8_med_low

Low-threshold luminance statistics on the middle area.

DHDGMM8MHIGH
DHDGMM8MHIGH is the high-threshold luminance statistics register after the middle
gamma area of the HD display channel is divided into eight segments.

0x0CC4

DHDGMM8MHIGH

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

2

1

0

vblank

Total Reset Value

vback_blank

Register Name

bottom_field

Bit

Offset Address

1

1

0

cnt8_med_high
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:21]

-

reserved

Reserved.

[20:0]

RO

cnt8_med_high

High-threshold luminance statistics on the middle area.

DHDSTATE
DHDSTATE is the HD display channel status register.

Bit

Offset Address

Register Name

Total Reset Value

0x0CF0

DHDSTATE

0x0000_0006

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

-

reserved

Reserved.

0

0

0

0

0

0

0

DHD top/bottom field display flag.
[2]

RO

bottom_field

0: top field
1: bottom field.
DHD blanking area display flag.

[1]

RO

vblank

0: valid area
1: blanking area

6-178

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DHD back blanking area display flag.
[0]

RO

0: non-back blanking area

vback_blank

1: blanking area

DSDCTRL
DSDCTRL is the SD display channel control register. It is an instant register.

0x0E00

DSDCTRL

0x0000_0000

Bits

Access

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

intfb

0

0

ivs

0

iop

0

6

ihs

0

reserved

7

idv

0

cscen

0

clipen

Reset 0

reserved

8

synm

Total Reset Value

cbar_sel

reserved

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
intf_en

Bit

Offset Address

0

0

2

1

0

intfdm

0

0

0

0

Description
Display interface enable.
0: disabled

[31]

RW

intf_en

1: enabled
Note: Data is output through the SD interface only when this
interface is enabled.

[30]

-

reserved

Reserved.
Color space control for the color bar.

[29:28]

RW

cbar_sel

00 and 01: YUV space
10: YUV space
11: RGB space

[27:17]

-

reserved

Reserved.
Clip bit output enable.

[16]

RW

0: disabled

clipen

1: enabled
Color space conversion enable.
[15]

RW

0: disabled

cscen

1: enabled
[14:11]

-

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-179

Hi3515
Data Sheet

6 Video Interface

Reverse phase output enable of the data valid signal.
[10]

RW

idv

0: disabled
1: enabled
Reverse phase output enable of the horizontal sync pulse.

[9]

RW

0: disabled

ihs

1: enabled
Reverse phase output enable of the vertical sync pulse.
[8]

RW

ivs

0: disabled
1: enabled
Interlaced or progressive display.

[7]

RW

iop

0: interlaced display
1: progressive display
Synchronization mode.

[6]

RW

0: timing label mode (such as BT.656)

synm

1: sync signal mode (such as LCD display)
Bit width mode of the output interface.
00: single-component mode (each clock outputs one component)
[5:4]

RW

intfb

01: 2-component mode (each clock outputs two components)
10: 3-component mode (each clock outputs three components)
11: reserved
Interface data format.

[3:0]

RW

0x0: YCbCr4:2:2

intfdm

0xC: RGB888/YCbCr4:4:4 output
Others: reserved

DSDVSYNC
DSDVSYNC is the vertical sync timing register of the SD display channel. This register is an
instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E04

DSDVSYNC

0x0011_511F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

vfb
0

0

0

0

0

0

7

vbb
0

0

1

0

0

0

1

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

6-180

8

0

6

5

4

3

2

1

0

1

1

1

1

1

vact
1

0

1

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[27:20]

RW

[19:12]

6 Video Interface

In interlaced output mode, it indicates the top vertical blanking
front porch.

vfb

RW

In progressive output mode, it indicates the vertical blanking front
porch.
In interlaced output mode, it indicates the top vertical blanking
back porch.

vbb

In progressive output mode, it indicates the vertical blanking back
porch plus the vertical pulse width.
In interlaced output mode, it indicates the height of an active
image in a top field.

[11:0]

RW

vact

In progressive output mode, it indicates the height of an active
image in a frame.
The configured value is equal to the actual height minus 1.

DSDHSYNC1
DSDHSYNC1 is the horizontal sync timing register 1 of the SD display channel. This register
is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E08

DSDHSYNC1

0x0107_02CF

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

hbb

Reset 0

0

0

0

0

0

0

1

0

8

7

6

5

4

3

2

1

0

1

0

0

1

1

1

1

hact
0

0

0

0

1

1

1

0

0

0

0

0

0

1

0

1

Bits

Access

Name

Description

[31:16]

RW

hbb

Horizontal blanking back porch, in the unit of pixel.

[15:0]

RW

hact

Number of horizontal pixels in the active area.

DSDHSYNC2
DSDHSYNC2 is the horizontal sync timing register 2 of the SD display channel. This register
is an instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-181

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0E0C

DSDHSYNC2

0x0000_0017

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

1

0

1

1

1

hfb
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

hfb

Horizontal blanking front porch, in the unit of pixel.

DSDVPLUS
DSDVPLUS is the vertical sync plus timing register of the SD display channel. This register
is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E10

DSDVPLUS

0x0011_611F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

bvfb
0

0

0

0

0

0

8

7

bvbb
0

0

1

0

0

0

1

0

6

5

4

3

2

1

0

1

1

1

1

1

bvact
1

1

0

0

0

0

1

0

0

0

Bits

Access

Name

Description

[31:28]

-

reserved

Reserved.

[27:20]

RW

bvfb

In interlaced output mode, it indicates the bottom vertical blanking
front porch.

[19:12]

RW

bvbb

In interlaced output mode, it indicates the bottom vertical blanking
back porch and the vertical pulse width.

[11:0]

RW

bvact

In interlaced output mode, it indicates the height of an active
image in a bottom field.
The configured value is equal to the actual height minus 1.

DSDPWR
DSDPWR is the sync pulse width register of the SD display channel. This register is an
instant register.

6-182

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

6 Video Interface

Offset Address

Register Name

Total Reset Value

0x0E14

DSDPWR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

vpw
0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

hpw
0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

-

reserved

Reserved.

[23:16]

RW

vpw

The configured value is equal to the vertical pulse width minus 1.

[15:0]

RW

hpw

The configured value is equal to the horizontal pulse width minus
1.

DSDFIFOTHD
DSDFIFOTHD is the async FIFO threshold configuration register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E18

DSDFIFOTHD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

aalmthd
0

0

0

0

0

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

Data alarm threshold.
[11:0]

RW

aalmthd

When the data amount in the async FIFO is below the threshold,
an alarm is raised.

DSDVTTHD
DSDVTTHD is the vertical timing threshold register of the SD display channel. This register
is an instant register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-183

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x0E1C

DSDVTTHD

0x0000_0001

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

8

reserved

Name

thd_mode

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

7

6

5

4

3

2

1

0

0

0

0

0

1

vtmgthd

0

0

0

0

0

0

0

0

0

Threshold interrupt generation mode.
0: frame mode. The threshold count is in the unit of frame.

[16]

RW

thd_mode

[15:13]

-

reserved

Reserved.

[12:0]

RW

vtmgthd

Vertical timing threshold. When the vertical timing counter
reaches this threshold, an SD channel vertical timing interrupt is
triggered.

1: field mode. The threshold count is in the unit of field during
interlace display.

DSDCSCIDC
DSDCSCIDC is the input DC component for color space conversion register of the SD
display channel. This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E20

DSDCSCIDC

0x07C3_0180

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

cscidc2
0

1

1

1

1

1

0

8

7

6

cscidc1
0

0

0

1

1

0

0

0

0

5

4

3

2

1

0

0

0

0

cscidc0
0

0

0

1

1

0

0

0

0

Bits

Access

Name

Description

[31:27]

-

reserved

Reserved.

[26:18]

RW

cscidc2

DC parameter of input component 2. The MSB is the sign bit. The
parameter value is expressed as a complementary code.

[17:9]

RW

cscidc1

DC parameter of input component 1. The MSB is the sign bit. The
parameter value is expressed as a complementary code.

[8:0]

RW

cscidc0

DC parameter of input component 0. The MSB is the sign bit. The
parameter value is expressed as a complementary code.

6-184

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DSDCSCODC
DSDCSCODC is the output DC component for color space conversion register of the SD
display channel. This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E24

DSDCSCODC

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

cscodc2

0

0

0

0

0

0

0

0

8

7

6

5

cscodc1
0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

cscodc0
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:27]

-

reserved

Reserved.

[26:18]

RW

cscodc2

DC parameter of output component 2. The MSB is the sign bit.
The parameter value is expressed as a complementary code.

[17:9]

RW

cscodc1

DC parameter of output component 1. The MSB is the sign bit.
The parameter value is expressed as a complementary code.

[8:0]

RW

cscodc0

DC parameter of output component 0. The MSB is the sign bit.
The parameter value is expressed as a complementary code.

DSDCSCP0
DSDCSCP0 is the color space conversion parameter 0 register of the SD display channel.
This register is an instant register.
Register Name

Total Reset Value

0x0E28

DSDCSCP0

0x0000_012A

Name

Reset 0

0

cscp01

0

0

0

0

0

0

0

0

0

8

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

1

0

1

0

cscp00

0

0

0

0

0

1

0

0

1

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp01

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp00

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-185

Hi3515
Data Sheet

6 Video Interface

DSDCSCP1
DSDCSCP1 is the color space conversion parameter 1 register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E2C

DSDCSCP1

0x012A_01CB

Reset 0

0

cscp10

0

0

0

0

0

1

0

0

1

8

reserved

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

1

0

1

0

0

0

7

6

5

4

3

2

1

0

0

1

0

1

1

cscp02

0

0

0

0

0

1

1

1

0

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp10

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp02

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

DSDCSCP2
DSDCSCP2 is the color space conversion parameter 2 register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E30

DSDCSCP2

0x1F77_1FC9

Reset 0

0

cscp12

0

1

1

1

1

1

0

1

1

8

reserved

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

1

0

1

1

1

0

0

7

6

5

4

3

2

1

0

0

1

0

0

1

cscp11

0

1

1

1

1

1

1

1

0

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp12

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp11

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

6-186

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DSDCSCP3
DSDCSCP3 is the color space conversion parameter 3 register of the SD display channel.
This register is an instant register.
Register Name

Total Reset Value

0x0E34

DSDCSCP3

0x021D_012A

Name

Reset 0

0

cscp21

0

0

0

0

1

0

0

0

0

8

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

1

1

1

0

1

0

0

7

6

5

4

3

2

1

0

0

1

0

1

0

cscp20

0

0

0

0

0

1

0

0

1

Bits

Access

Name

Description

[31:29]

-

reserved

Reserved.

[28:16]

RW

cscp21

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

[15:13]

-

reserved

Reserved.

[12:0]

RW

cscp20

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

DSDCSCP4
DSDCSCP4 is the color space conversion parameter 4 register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E38

DSDCSCP4

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

0

cscp22
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:13]

-

reserved

Reserved.

[12:0]

RW

cscp22

5.8 data format: 1-bit sign bit, 4-bit integer bit, and 8-bit decimal
bit. The value is expressed as a complementary code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-187

Hi3515
Data Sheet

6 Video Interface

DSDCLIPL
DSDCLIPL is the minimum threshold clip bit processing register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E3C

DSDCLIPL

0x0401_0040

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

clipcl2

0

0

0

1

0

8

7

6

clipcl1

0

0

0

0

0

0

0

0

1

0

0

5

4

3

2

1

0

0

0

0

0

clipcl0

0

0

0

0

0

0

0

1

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:20]

RW

clipcl2

Minimum threshold Y/R of component 2, unsigned integer.

[19:10]

RW

clipcl1

Minimum threshold Cb/G of component 1, unsigned integer.

[9:0]

RW

clipcl0

Minimum threshold Cr/B of component 0, unsigned integer.

DSDCLIPH
DSDCLIPH is the maximum threshold clip bit processing register of the SD display channel.
This register is an instant register.

Bit

Offset Address

Register Name

Total Reset Value

0x0E40

DSDCLIPH

0x3ACF_03C0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Reset 0

0

clipch2

1

1

1

0

1

8

7

6

clipch1

0

1

1

0

0

1

1

1

1

0

0

5

4

3

2

1

0

0

0

0

0

clipch0

0

0

0

0

1

1

1

1

0

0

Bits

Access

Name

Description

[31:30]

-

reserved

Reserved.

[29:20]

RW

clipch2

Maximum threshold Y/R of component 2, unsigned integer.

[19:10]

RW

clipch1

Maximum threshold Cb/G of component 1, unsigned integer.

[9:0]

RW

clipch0

Maximum threshold Cr/B of component 0, unsigned integer.

6-188

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

DSDSTATE

Total Reset Value

0x0EF0

DSDSTATE

0x0000_0006

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

-

reserved

Reserved.

0

0

0

0

0

0

0

2

1

0

vblank

Register Name

vback_blank

Bit

Offset Address

bottom_field

DSDSTATE is the SD display channel status register.

1

1

0

DSD top/bottom field display flag.
[2]

RW

0: top field

bottom_field

1: bottom field.
DSD blanking area display flag.
[1]

RW

0: valid area

vblank

1: blanking area
DSD back blanking area display flag.
[0]

RW

vback_blank

0: non-back blanking area
1: blanking area

VHDHLCOEF
VHDHLCOEF is the luminance horizontal scaling and filtering coefficient register of the
VHD channel. There are 18 groups of registers and each group consists of four registers. The
lower 4-bit addresses of the four registers are 0x0, 0x4, 0x8, and 0xC respectively. The
register value indicates 8-order coefficients.

Bit

Offset Address

Register Name

Total Reset Value

0x1000–0x111C

VHDHLCOEF

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

hlcoefn2
0

0

0

0

0

0

0

0

7

6

reserved
0

0

0

0

Bits

Access

Name

Description

[31:26]

-

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

0

0

5

4

3

2

1

0

0

0

0

0

hlcoefn1
0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

0

0

6-189

Hi3515
Data Sheet

6 Video Interface

Luminance horizontal scaling and filtering coefficient.
Indicate the second order coefficients when bit[3:0] of the register
address are 0x0.
[25:16]

RW

Indicate the fourth order coefficients when bit[3:0] of the register
address are 0x4.

hlcoefn2

Indicate the sixth order coefficients when bit[3:0] of the register
address are 0x8.
Indicate the eighth order coefficients when bit[3:0] of the register
address are 0xC.
[15:10]

-

reserved

Reserved.
Luminance horizontal scaling and filtering coefficient.
Indicate the first order coefficients when bit[3:0] of the register
address is 0x0.

[9:0]

RW

Indicate the third order coefficients when bit[3:0] of the register
address are 0x4.

hlcoefn1

Indicate the fifth order coefficients when bit[3:0] of the register
address are 0x8.
Indicate the seventh order coefficients when bit[3:0] of the register
address are 0xC.

VHDHCCOEF
VHDHCCOEF is the chrominance horizontal scaling and filtering coefficient register of the
VHD channel. There are 18 groups of registers and each group consists of two registers. The
lower 4-bit addresses of the two registers are 0x0 and 0x4 or 0x8 and 0xC respectively. The
register value indicate 4-order coefficients.

Bit

Offset Address

Register Name

Total Reset Value

0x1200–0x128C

VHDHCCOEF

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

hccoefn2
0

0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

Bits

Access

Name

Description

[31:26]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

0

0

0

0

hccoefn1
0

0

0

0

0

0

0

0

Chrominance horizontal scaling and filtering coefficient.
[25:16]

RW

hccoefn2

Indicate the second order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.
Indicate the fourth order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.

[15:10]

6-190

-

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

Chrominance horizontal scaling and filtering coefficient.
[9:0]

RW

Indicate the first order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.

hccoefn1

Indicate the third order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.

VHDVLCOEF
VHDVLCOEF is the luminance vertical scaling and filtering coefficient register of the VHD
channel. There are 18 groups of registers and each group consists of two registers. The lower
4-bit addresses of the two registers are 0x0 and 0x4 or 0x8 and 0xC respectively. The register
value indicate 4-order coefficients.

Bit

Offset Address

Register Name

Total Reset Value

0x1300–0x138C

VHDVLCOEF

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

vlcoefn2
0

0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

Bits

Access

Name

Description

[31:26]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

0

0

0

0

vlcoefn1
0

0

0

0

0

0

0

0

Luminance vertical scaling and filtering coefficient.
[25:16]

RW

vlcoefn2

Indicate the second order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.
Indicate the fourth order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.

[15:10]

-

reserved

Reserved.
Luminance vertical scaling and filtering coefficient.

[9:0]

RW

vlcoefn1

Indicate the first order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.
Indicate the third order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.

VHDVCCOEF
VHDVCCOEF is the chrominance vertical scaling and filtering coefficient register of the
VHD channel. There are 18 groups of registers and each group consists of two registers. The
lower 4-bit addresses of the two registers are 0x0 and 0x4 or 0x8 and 0xC respectively. The
register value indicate 4-order coefficients.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-191

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x1400–0x148C

VHDVCCOEF

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

vccoefn2
0

0

0

0

0

0

0

0

8

7

6

reserved
0

0

0

0

Bits

Access

Name

Description

[31:26]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

0

0

0

0

vccoefn1
0

0

0

0

0

0

0

0

Luminance vertical scaling and filtering coefficient.
[25:16]

RW

Indicate the second order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.

vccoefn2

Indicate the fourth order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.
[15:10]

-

reserved

Reserved.
Luminance vertical scaling and filtering coefficient.

[9:0]

RW

Indicate the first order coefficients when bit[3:0] of the register
address are 0x0 or 0x8.

vccoefn1

Indicate the third order coefficients when bit[3:0] of the register
address are 0x4 or 0xC.

VHDMIMGSPOSp
VHDMIMGSPOSp is the start position and valid flag register of subimage p in the deinterlace partition of the VHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x2300–0x237C

VHDMIMGSPOSp

0x0000_0000

die_valid

reserved

Name

die_mode

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

Reset 0

spos_y

0

0

0

0

0

0

0

8

7

reserved

0

0

0

0

0

Bits

Access

Name

Description

[31]

-

reserved

Reserved.

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

spos_x

0

0

0

0

0

0

0

0

De-interlace valid flag of subimage p.
[30]

RW

die_valid

0: invalid.
1: valid

6-192

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

6 Video Interface

De-interlace mode of subimage p.
[29]

RW

0: The subimage p is processed based on the configuration of the
VHDDIECTRL register

die_mode

1: The subimage p is processed in 2-field median mode.
[28]

-

reserved

Reserved.

[27:16]

RW

spos_y

Note: In interlaced output mode, the actual coordinates must be
even numbers. There is no restriction in progressive output mode.

[15:12]

-

reserved

Reserved.

[11:0]

RW

spos_x

Vertical start coordinates, in the unit of row.

Horizontal start coordinates, in the unit of pixel.
Note: The actual coordinates must be even numbers.

VHDMIMGFPOSp
VHDMIMGFPOSp is the end position register of sub image p in the de-interlace partition of
the VHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x2380–0x23FC

VHDMIMGFPOSp

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

fpos_y
0

0

0

0

0

0

0

0

8

7

reserved
0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

fpos_x
0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RW

reserved

Reserved.

[27:16]

RW

fpos_y

Note: In interlaced output mode, the actual coordinates must be
odd numbers. There is no restriction in progressive output mode.

[15:12]

-

reserved

Reserved.

[11:0]

RW

fpos_x

Vertical end coordinates, in the unit of row.

Horizontal end coordinates, in the unit of pixel.
Note: The actual coordinates must be odd numbers.

DHDVBIPOS1
DHDVBIPOS1 is the position and start coordinate register of VBI information 1 of the DHD
channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-193

Hi3515
Data Sheet

6 Video Interface
Register Name

Total Reset Value

0x2600

DHDVBISPOS1

0x0000_0000

Bits

0

0

0

0

0

0

0

Access Name

0

0

0

8

7

6

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

0

spos_x

resereved

0

spos_y

0

Reset 0

resereved

vbb_region

Name

top_filed

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vbi_en

Bit

Offset Address

0

0

0

0

0

Description
VBI information 1 output enable.

[31]

RW

vbi_en

0: disabled
1: enabled

[30]

RW

top_filed

Top/bottom flag bit in the VBI information. This bit is invalid in
progressive display mode.
0: bottom field
1: top field
Front blanking flag bit in the VBI information.

[29]

RW

Vbb_region

0: VFB
1: VBB

[28:24]

-

reserved

Reserved.

[23:16]

RW

spos_y

Vertical start coordinates, in the unit of row. The value is the
actual height minus 1.

[15:11]

-

reserved

Reserved.

[10:0]

RW

spos_x

Horizontal start coordinates, in the unit of clock. The value is the
actual clock width minus 1.

DHDVBIPOS2
DHDVBIPOS2 is the position and start coordinate register of VBI information 2 of the DHD
channel.

6-194

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x2604

DHDVBISPOS2

0x0000_0000

Bits

0

0

0

0

0

0

0

Access Name

0

0

0

8

7

6

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

0

spos_x

resereved

0

spos_y

vbb_region

0

Reset 0

resereved

top_filed

Name

Offset Address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vbi_en

Bit

6 Video Interface

0

0

0

0

0

Description
VBI information 2 output enable.

[31]

RW

vbi_en

0: disabled
1: enabled

[30]

RW

top_filed

Top/bottom flag bit in the VBI information. This bit is invalid in
progressive display mode.
0: bottom field
1: top field
Front blanking flag bit in the VBI information.

[29]

RW

vbb_region

0: VFB
1: VBB

[28:24]

-

reserved

Reserved.

[23:16]

RW

spos_y

Vertical start coordinates, in the unit of row. The value is the
actual height minus 1.

[15:11]

-

reserved

Reserved.

[10:0]

RW

spos_x

Horizontal start coordinates, in the unit of clock. The value is the
actual clock width minus 1.

DHDVBIF1n
DHDVBIF1n is the content register of VBI information 1 of the DHD channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-195

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x2610–262C

DHDVBI1F0–DHDVBI1F7

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

0

0

0

0

0

0

0

0

0

0

0

0

0

3

2

1

0

0

0

0

2

1

0

0

0

0

vbi1_fn0

8

vbi1_fn1

Name

vbi1_fn2

vbi1_fn3

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

Bits

Access

Name

Description

[31:24]

RW

Vbi1_fn3

Content n0 of VBI information 1.

[23:16]

RW

Vbi1_fn2

Content n1 of VBI information 1.

[15:8]

RW

Vbi1_fn1

Content n2 of VBI information 1.

[7:0]

RW

Vbi1_fn0

Content n3 of VBI information 1.

0

0

DHDVBIF2n
DHDVBIF2n is the content register of VBI information 2 of the DHD channel.

Bit

Offset Address

Register Name

Total Reset Value

0x2630–264C

DHDVBI2F0–DHDVBI2F7

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

0

0

0

0

0

0

0

0

0

0

0

0

0

3
vbi2_fn0

8

vbi2_fn1

Name

vbi2_fn2

vbi2_fn3

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

Bits

Access

Name

Description

[31:24]

RW

vbi2_fn3

Content n0 of VBI information 2.

[23:16]

RW

vbi2_fn2

Content n1 of VBI information 2.

[15:8]

RW

vbi2_fn1

Content n2 of VBI information 2.

[7:0]

RW

vbi2_fn0

Content n3 of VBI information 2.

0

0

DSDVBIPOS1
DSDVBIPOS1 is the position and start coordinate register of VBI information 1 of the DSD
channel.

6-196

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x2700

DSDVBISPOS1

0x0000_0000

Bits

0

0

0

0

0

0

0

Access Name

0

0

0

8

7

6

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

0

spos_x

resereved

0

spos_y

vbb_region

0

Reset 0

resereved

top_filed

Name

Offset Address

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vbi_en

Bit

6 Video Interface

0

0

0

0

0

Description
VBI information 1 output enable.

[31]

RW

vbi_en

0: disabled
1: enabled

[30]

RW

top_filed

Top/bottom flag bit in the VBI information. This bit is invalid in
progressive display mode.
0: bottom field
1: top field
Front blanking flag bit in the VBI information.

[29]

RW

Vbb_region

0: VFB
1: VBB

[28:24]

-

reserved

Reserved.

[23:16]

RW

spos_y

Vertical start coordinates, in the unit of row. The value is the
actual height minus 1.

[15:11]

-

reserved

Reserved.

[10:0]

RW

spos_x

Horizontal start coordinates, in the unit of clock. The value is the
actual clock width minus 1.

DSDVBIPOS2
DSDVBIPOS2 is the position and start coordinate register of VBI information 2 of the DSD
channel.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6-197

Hi3515
Data Sheet

6 Video Interface

Bit

Offset Address

Register Name

Total Reset Value

0x2704

DSDVBISPOS2

0x0000_0000

Bits

0

0

0

0

0

0

0

Access Name

0

0

0

8

7

6

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

0

spos_x

resereved

0

spos_y

0

Reset 0

resereved

vbb_region

Name

top_filed

vbi_en

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

Description
VBI information 2 output enable.

[31]

RW

vbi_en

0: disabled
1: enabled

[30]

RW

top_filed

Top/bottom flag bit in the VBI information. This bit is invalid in
progressive display mode.
0: bottom field
1: top field
Front blanking flag bit in the VBI information.

[29]

RW

Vbb_region

0: VFB
1: VBB

[28:24]

-

reserved

Reserved.

[23:16]

RW

spos_y

Vertical start coordinates, in the unit of row. The value is the
actual height minus 1.

[15:11]

-

reserved

Reserved.

[10:0]

RW

spos_x

Horizontal start coordinates, in the unit of clock. The value is the
actual clock width minus 1.

DSDVBIF1n
DSDVBIF1n is the content register of VBI information 1 of the DSD channel.

6-198

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x2710–272c

DSDVBI1F0–DSDVBI1F7

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

0

0

0

0

0

0

0

0

0

0

0

0

0

3

2

1

0

0

0

0

2

1

0

0

0

0

vbi_fn1

8

vbi_fn1

Name

vbi_fn2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vbi_fn3

Bit

6 Video Interface

0

Bits

Access

Name

Description

[31:24]

RW

vbi1_fn3

Content n0 of VBI information 1.

[23:16]

RW

vbi1_fn2

Content n1 of VBI information 1.

[15:8]

RW

vbi1_fn1

Content n2 of VBI information 1.

[7:0]

RW

vbi1_fn0

Content n3 of VBI information 1.

0

0

DSDVBIF2n
DSDVBIF2n is the content register of VBI information 2 of the DSD channel.
Register Name

Total Reset Value

0x2730–274C

DSDVBI2F0–DSDVBI2F7

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

7

6

5

4

0

0

0

0

0

3
vbi2_fn0

0

Bits

Access

Name

Description

[31:24]

RW

vbi2_fn3

Content n0 of VBI information 2.

[23:16]

RW

vbi2_fn2

Content n1 of VBI information 2.

[15:8]

RW

vbi2_fn1

Content n2 of VBI information 2.

[7:0]

RW

vbi2_fn0

Content n3 of VBI information 2.

Issue 02 (2010-04-20)

8

vbi2_fn1

Name

vbi2_fn2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vbi2_fn3

Bit

Offset Address

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

6-199

Hi3515
Data Sheet

Contents

Contents
7 Audio Interface...........................................................................................................................7-1
7.1 Overview.......................................................................................................................................................7-1
7.2 Features .........................................................................................................................................................7-1
7.2.1 Features of the PCM Interface .............................................................................................................7-1
7.2.2 Features of the I2S Interface.................................................................................................................7-1
7.3 Signal Description.........................................................................................................................................7-2
7.4 Function Description .....................................................................................................................................7-3
7.5 Operating Mode ............................................................................................................................................7-8
7.6 Register Summary ....................................................................................................................................... 7-11
7.7 Register Description....................................................................................................................................7-12

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 7-1 Connection diagram of the I2S interface in master mode..................................................................7-4
Figure 7-2 Connections diagram of the I2S interface in slave mode ..................................................................7-4
Figure 7-3 Connections of the I2S/PCM interface used for audio recording in master mode.............................7-5
Figure 7-4 Connections of the I2S/PCM interface used for audio recording in slave mode ...............................7-5
Figure 7-5 Timing diagram of the I2S interface .................................................................................................7-6
Figure 7-6 Timing diagram of the PCM interface in standard mode..................................................................7-6
Figure 7-7 Timing diagram of the PCM interface in customized mode .............................................................7-6
Figure 7-8 Receiving 2-/4-/8-/16-channel data through the I2S interface...........................................................7-7
Figure 7-9 Receiving 2-/4-/8-/16-channel data through the PCM interface .......................................................7-7

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 7-1 SIO interface signals...........................................................................................................................7-2
Table 7-2 Pin multiplexing .................................................................................................................................7-8
Table 7-3 Summary of the SIO registers........................................................................................................... 7-11

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

7 Audio Interface

7

Audio Interface

7.1 Overview
The sonic input/output (SIO) interface is used to connect to the off-chip audio codec to play
and record the music (voice). The Hi3515 provides two SIO interfaces: SIO0 and SIO1. SIO0
is used to input or output audios to implement talkback voice communication, whereas SIO1
is used to input the audios of multiple channels.

7.2 Features
The SIO interface supports both the pulse code modulation (PCM) interface and I2S interfaces.
The PCM interface is mainly used for voice channels, such as the VOIP phone; the I2S
interface is used to work with the audio codec to play and record music. The SIO interface
also supports the directory memory access (DMA) operation.

7.2.1 Features of the PCM Interface
The PCM interface has the following features:
z

Supports the master/slave mode.

z

Transmits/receives the single-channel 8-/16-bit linear PCM code.

z

Receives 2-/4-/8-/16-channel 8-/16-bit data.

z

The bit clock and frame sync signal can be internally generated or externally supplied.

z

The frame sync signals of the PCM interface are short pulse sync signals (referring to
those sync signals with one clock cycle duration) only. The PCM interface can work in
both standard mode and customized mode.

z

Supports the function of enabling the transmit channel and the receive channel
independently.

z

Provides separate FIFOs for the receive channel and transmit channel. Each of them is
16-location deep.

7.2.2 Features of the I2S Interface
The I2S interface has the following features:
z

Issue 02 (2010-04-20)

Supports the master/slave mode.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-1

Hi3515
Data Sheet

7 Audio Interface
z

Transmits or receives the left-/right-channel 16-/18-/20-/24-/32-bit data.

z

Receives 2-/4-/8-/16-channel 8-/16-bit data.

z

Supports the sampling rate ranging from 8 kHz to 192 kHz.

z

Provides separate FIFOs for the I2S transmit and receive channels and separate FIFOs for
the left and right audio channels. Each of the FIFO is 16-location deep and the FIFO
threshold is adjustable.

z

Supports the function of enabling the transmit channel and the receive channel
independently.

z

For the 16-bit data transfer through the I2S interface, the received left-channel and
right-channel data can be merged into 32-bit wide and then stored in the receive FIFO
(RX_FIFO). Additionally, the transmitted left-channel and right-channel data can be
merged into 32-bit wide and then written into the transmit FIFO (TX_FIFO). Therefore,
the buffer capacity of the FIFO is increased. The merging function is not supported when
2-/4-/8-/16-channel 8-/16-bit data is received.

7.3 Signal Description
The SIO module provides two SIO interfaces: SIO0 and SIO1. Table 7-1 describes the signals
of the two SIO interfaces.
Table 7-1 SIO interface signals
Signal
Name

Dire
ction

Description

Correspon
ding Pin

SIO0_DI

I

Data input.

SIO0DI

SIO0_DO

O

Data output.

SIO0DO

SIO0_XFS

I/O

I2S transmit audio channel select signal (when
connected to the DAC interface) or PCM frame
sync signal. The signal is multiplexed with the
GPIO pins. For details about the multiplexing
configuration, see "Pin Multiplexing" in section
7.5 .

SIO0XFS

SIO0_RFS

I/O

I2S receive audio channel select signal (when
connected to the ADC interface) or PCM frame
sync signal.

SIO0RFS

SIO0_XCK

I/O

I2S or PCM transmit bit stream clock. The signal
is multiplexed with the GPIO pins. For details
about the multiplexing configuration, see "Pin
Multiplexing" in section 7.5 .

SIO0XCK

SIO0_RCK

I/O

I2S or PCM receive bit stream clock.

SIO0RCK

SIO_MCLK

O

Main clock of the I2S or PCM interface. It acts as
the working clock of the codec.

ACKOUT

The signal is multiplexed with the GPIO pins.
For details about the multiplexing configuration,
see "Pin Multiplexing" in section 7.5 .

7-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

Signal
Name

Dire
ction

Description

Correspon
ding Pin

SIO1_DI

I

Data input.

SIO1DI

SIO1_RFS

I/O

I2S receive audio channel select signal (when
connected to the ADC interface) or PCM frame
sync signal.

SIO1RFS

SIO1_RCK

I/O

I2S or PCM receive bit stream clock.

SIO1RCK

For certain audio codecs, the transmit audio channel select signal and the receive audio
channel select signal are the same. In this case, when such codecs are connected, only
SIO0_RFS needs to be connected. The internal XFS signal of SIO0 is obtained through the
RFS by setting the system controller register SC_PERCTRL12[sio0_xfs] to 0b1. In this way,
SIO0_XFS can be used as a GPIO pin. The bit clock can be configured through
SC_PERCTRL12[sio0_xck].

7.4 Function Description
Typical Application
SIO0 is used to input or output audios to implement talkback voice communication. The
following describes the typical connections of the I2S interface.

In master mode, the working clock of the audio codec uses the main clock (SIO_MCLK)
signal provided by the Hi3515 rather than the external crystal oscillator. Otherwise, sound
distortion may occur.
Figure 7-1 shows the typical connections of the I2S interface in master mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-3

Hi3515
Data Sheet

7 Audio Interface

Figure 7-1 Connection diagram of the I2S interface in master mode
SIO0_RCK
SIO0_XCK
SIO0_XFS
SIO0

SIO0_RFS

Audio codec

SIO0_DO
SIO0_DI

In master mode, the bit stream clock and audio channel select signal are sent to the audio
codec by the SIO. In slave mode, the bit stream clock and audio channel select signal are sent
to the SIO by the audio codec.
Figure 7-2 shows the typical connections of the I2S interface in slave mode.
Figure 7-2 Connections diagram of the I2S interface in slave mode
SIO0_RCK
SIO0_XCK
SIO0_XFS
Audio codec

SIO0
SIO0_RFS
SIO0_DO
SIO0_DI

In slave mode, the main working clock of the audio codec can use both the main clock signal
(SIO_MCLK) provided by the Hi3515 and the external crystal oscillator
Figure 7-3 shows the typical connections of the PCM interface when the SIO provides the
clock and sync signals. The working clock of the audio codec uses the SIO_MCLK signal
provided by the Hi3515 rather than the external crystal oscillator. Otherwise, the sound
distortion may occur.
Figure 7-1 shows the connections of the PCM interface when the SIO provides the clock and
sync signals in master mode. The PCM interface is connected in the same manner as the I2S
interface.

7-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

Figure 7-2 shows the connections of the PCM interface when the audio codec provides the
clock and sync signals in slave mode. The PCM interface is connected in the same manner as
the I2S interface.
When the clock and sync signals are provided by the audio codec, the main work clock of the
audio codec can use both the main clock (SIO_MCLK) signal provided by the Hi3515 and the
external crystal oscillator.
SIO1 is used to record 8-/16-channel 16-bit audio data. Figure 7-3 shows the connections of
the I2S/PCM interface used for audio recording in master mode. Figure 7-4 shows the
connections of the I2S/PCM interface used for audio recording in slave mode.
Figure 7-3 Connections of the I2S/PCM interface used for audio recording in master mode

SIO1_RCK

SIO1

Audio codec
SIO1_RFS

SIO1_DI

Figure 7-4 Connections of the I2S/PCM interface used for audio recording in slave mode

SIO1_RCK

SIO1

Audio codec
SIO1_RFS

SIO1_DI

In audio recording, the function of receiving multi-channel audios is supported. That is,
8-/16-bit data of 2-/4-/8-/16-channel can be received.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-5

Hi3515
Data Sheet

7 Audio Interface

Function Principle
An SIO interface receives the audio data from the internal bus, and then sends the audio data
to the interconnected audio codec through the I2S or PCM interface at a specified sampling
rate. After that, the audio codec performs digital-to-analog (DA) conversion on the audio data
and then plays the audio. At the same time, the SIO interface receives the audio data that has
experienced the AD conversion performed by the audio codec through the I2S and PCM
interface, and stores the data into the internal FIFO. Then, the CPU takes the data and stores it.
In this way, audio recording is implemented.
The data transferred through the I2S interface consists of the right-channel data and the
left-channel data, which are distinguished from the levels of the XFS (RFS) signal. See Figure
7-5. According to the related protocol, data is sampled on the rising edge of the XCK/RCK
clock. The most significant bit (MSB) is valid in the next XFS/RFS clock cycle. The data is
transferred in the sequence from the MSB to the least significant bit (LSB).
Figure 7-5 shows the timing diagram of the I2S interface.
Figure 7-5 Timing diagram of the I2S interface

The data transferred through the PCM interface is single-channel data. XFS identifies the start
of the data. The MSB is transmitted or received first and data is sampled on the falling edge.
In standard timing mode, the MSB is valid in the next cycle after the high-level pulse of XFS;
in customized timing mode, the MSB is aligned with the high-level pulse of XFS.
Figure 7-6 shows the timing diagram of the PCM interface in standard mode.
Figure 7-6 Timing diagram of the PCM interface in standard mode
XCK
XFS
DI/DO

MSB

MSB

Figure 7-7 shows the timing diagram of the PCM interface in customized mode.
Figure 7-7 Timing diagram of the PCM interface in customized mode
XCK
XFS
DI/DO

7-6

MSB

MSB

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

When receiving 2-/4-/8-/16-channel 8-/16 bit data, the I2S interface stores the data into the left
and right audio channels respectively. See Figure 7-8.
Figure 7-8 Receiving 2-/4-/8-/16-channel data through the I2S interface
1/fs
ASYNR
ACLKR
16-channel

0

1

2

3

8-channel

0

1

2

3

4-channel

0

1

2-channel

0

4

5

6

7

8

9

A

B

4

5

6

7

2

3

C

D

E

F

1

MSB

LSB
8/16 bits

Figure 7-9 shows how data is received in PCM mode. Both the standard and customized PCM
modes are supported. Unlike the single-channel mode, the SIO interface can receive data on
the rising edge or falling edging optionally. Figure 7-9 shows how the SIO interface receives
data on the rising edge in PCM mode.
Figure 7-9 Receiving 2-/4-/8-/16-channel data through the PCM interface
1/fs
ASYNR
ACLKR
16-channel

0

1

2

3

4

5

6

7

8-channel

0

1

2

3

4

5

6

7

4-channel

0

1

2

3

2-channel

0

1

MSB

8

9

A

B

C

D

E

F

LSB
8/16 bits

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-7

Hi3515
Data Sheet

7 Audio Interface

7.5 Operating Mode
Pin Multiplexing
The SIO pins can be multiplexed by configuring IO config registers reg39 to reg41. For
details about pin multiplexing, see Table 7-2.
Table 7-2 Pin multiplexing
Signal Name

Multiplex Signal

SIO0XFS

GPIO0_2

SIO0XCK

GPIO0_3

ACKOUT

GPIO0_4

Clock Gating
If no audio recording or playing is required after SIO_CT_SET[rx_enable] and
SIO_CT_SET[tx_enable] of SIO0 or SIO1 are set to 0, you can disable the SIO clocks by
writing 1 to the related bits of the write-only SC_PERDIS register. Writing 0 has no effect.
You can disable the clocks of SIO0 and SIO1 as follows:
z

Write 1 to SC_PERDIS[sio0_clkdis] to disable the clock of SIO0.

z

Write 1 to SC_PERDIS[sio1_clkdis] to disable the clock of SIO1.

You can enable the clocks of SIO0 and SIO1 by writing 1 to the related bits of the
SC_PEREN register as follows:
z

Write 1 to SC_PEREN[sio0clken] to enable the clock of SIO0.

z

Write 1 to SC_PEREN[sio1clken] to enable the clock of SIO1.

Whether the clocks of the SIO interfaces are enabled can be checked by reading the related
bits of the SC_PERCLKEN register. The value 0 indicates that the related clock is disabled;
the value 1 indicates that the related clock is enabled.

Clock Configuration
The two SIO interfaces work independently, but their clocks are configured in the same
manner.
If SIO0 or SIO1 is required to work in master mode, you need to set
SC_PERIPHCTRL12[sio0_master] or SC_PERIPHCTRL12[sio1_master] to 1. After that,
you need to select the frequency ratio of the bit clock and sync clock by configuring
SC_PERIPHCTRL13 and SC_PERIPHCTRL14.

Soft Reset
SIO0 and SIO1 can be independently reset by setting SC_PERIPHCTRL8[sio0_srst] and
SC_PERIPHCTRL8[sio1_srst] to 1. After the reset, each configuration register is restored to
its default value. Therefore, these registers must be reinitialized.

7-8

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

Audio Playing and Recording in Interrupt/Query Mode
1.

Initialization

The initialization procedure is as follows:
Step 1 Set SIO_CT_SET/SIO_CT_CLR[rx_enable] and SIO_CT_SET/SIO_CT_CLR[tx_enable] to
0 to disable the SIO.
Step 2 Select the I2S or PCM mode by setting SIO_MODE[sio_mode]. If you choose the PCM mode,
select the timing type by setting SIO_MODE[pcm_mode]. If multi-channel audio recording is
required, set SIO_MODE[ext_rec_en], SIO_MODE[chn_num], and SIO_MODE[clk_edge].
Step 3 If the SIO works in master mode, configure the clock frequency. If the SIO works in slave
mode, no configuration is required.
Step 4 Set the bit width by configuring SIO_DATA_WIDTH_SET and SIO_SIGNED_EXT.
Step 5 Set the thresholds for the RX_FIFO and TX_FIFO by configuring
SIO_CT_SET[rx_fifo_threshold] and SIO_CT_SET[tx_fifo_threshold].
Step 6 In I2S mode, configure SIO_I2S_POS_MERGE_EN and SIO_I2S_START_POS according to
how data is read from or written into the FIFO. At the same time, configure
SIO_CT_SET[tx_data_merge_en] and SIO_CT_SET[rx_data_merge_en]. For multi-channel
audio recording, skip this step.
Step 7 Set the SIO interrupt mask register SIO_INTMASK and SIO_CT_SET[intr_en] as required.
Step 8 Configure the external audio codecs.
----End
2.

Audio Playing

To play audios, do as follows:
Step 1 Set SIO_CT_SET[tx_fifo_disable] to 1 and then to 0 to clear the data remained in the
TX_FIFO.
Step 2 Write the data to be transmitted to the TX_FIFO, and then write 1 to SIO_CT_SET[tx_enable]
to start data transmit.
Step 3 In query mode, check the status of TX_FIFO by reading SIO_TX_STA; in interrupt mode,
report an interrupt according to the interrupt status indicated by SIO_INTSTATUS[tx_intr].
When the data depth of the TX_FIFO is detected below the threshold, write data into the
TX_FIFO until data is transmitted completely. When data is transmitted completely, go to
Step 4. Ensure that data underflow does not occur in the TX_FIFO before data is transmitted
completely. Otherwise, the sound may be discontinuous.
Step 4 Set SIO_CT_SET[tx_enable] to 0.
----End
3.

Audio Recording

To record audios, do as follows:
Step 1 Set SIO_CT_SET[rx_fifo_disable] to 1 and then to 0 to clear the data remained in the
RX_FIFO.
Step 2 Set SIO_CT_SET[rx_enable] to 1 to start data receive.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-9

Hi3515
Data Sheet

7 Audio Interface

Step 3 In query mode, check the status of the RX_FIFO by reading SIO_RX_STA; in interrupt mode,
check the status of the RX_FIFO through the related interrupt status bit. When the data depth
of the RX_FIFO is detected above the threshold, read data from the RX_FIFO until data is
received completely. When data is received completely, go to Step 4. Ensure that data
overflow does not occur in the RX_FIFO before data is transmitted completely. Otherwise,
data loss occurs.
Step 4 Set SIO_CT_SET[rx_enable] to 0 to read all the data remained in the RX_FIFO.
----End

Audio Playing and Recording in DMA Mode
1.

Initialization

The audio playing and recording in DMA mode is performed in the same way as that in
interrupt/query mode.
2.

Audio Playing

To play audios, do as follows:
Step 1 Set the interrupt mask register SIO_INTMASK[tx_intr] to 1 to mask transmit interrupts.
Step 2 Configure the DMA data channel, including the data transmission source, destination address,
amount of data to be transmitted, and transmission type. For details, see the configuration
description of DMA.
Step 3 Set SIO_CT_SET[tx_fifo_disable] to 1 and then to 0 to clear the data remained in the
TX_FIFO.
Step 4 Write the initial data into the TX_FIFO to enable the depth to be above the FIFO threshold.
For example, you can write the data 0x0, which indicates mute. If no initial data is written
into the FIFO, the SIO reports a FIFO underflow but the DMA does not write data into the
FIFO yet when audio playing is enabled. If the initial data is written into the FIFO, the FIFO
underflow upon the start of the audio playing can be prevented.
Step 5 Set SIO_CT_SET[tx_enable] to 1 to start audio playing.
Step 6 Check whether the data is transmitted completely according to the DMA interrupt. If yes, set
SIO_CT_SET[tx_enable] to 0.
----End
3.

Audio Recording

To record audios, do as follows:
Step 1 Configure the DMA data channel, including the data transmission source, destination address,
amount of data to be transmitted, and transmission type. For details, see the configuration
description of DMA.
Step 2 Set SIO_CT_SET[rx_fifo_disable] to 1 and then to 0 to clear the data remained in the
RX_FIFO.
Step 3 Set SIO_CT_SET[rx_enable] to 1 to start data receive.
Step 4 If you want to stop audio recording, set SIO_CT_SET[rx_enable] to 0.
----End

7-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

7.6 Register Summary
The register base addresses of the SIO module are as follows:
z

SIO0: 0x1004_0000

z

SIO1: 0x1005_0000

Table 7-3 lists the SIO registers.
Table 7-3 Summary of the SIO registers
Offset
Address

Register

Description

Page

0x03C

SIO_VERSION

SIO version register

7-12

0x040

SIO_MODE

SIO mode register

7-13

0x044

SIO_INTSTATUS

SIO interrupt status register

7-14

0x048

SIO_INTCLR

SIO interrupt clear register

7-16

0x04C

SIO_I2S_LEFT_XD

I2S left channel data transmit
register

7-17

0x050

SIO_I2S_RIGHT_XD

I2S right channel data transmit
register

7-17

0x050

SIO_PCM_XD

PCM data transmit register

7-18

0x054

SIO_I2S_LEFT_RD

I2S left channel data receive
register

7-18

0x058

SIO_I2S_RIGHT_RD

I2S right channel data receive
register

7-19

0x058

SIO_PCM_RD

PCM data receive register

7-20

0x05C

SIO_CT_SET

I2S/PCM control set register

7-20

0x060

SIO_CT_CLR

I2S/PCM control clear register

7-22

0x064

RESERVED

Reserved

-

0x068

SIO_RX_STA

SIO receive status register

7-24

0x06C

SIO_TX_STA

SIO transmit status register

7-25

0x070–0x074

RESERVED

Reserved

-

0x078

SIO_DATA_WIDTH_SE
T

I2S/PCM data width set register

7-25

0x07C

SIO_I2S_START_POS

Data access start position control
register of I2S left and right
channels

7-26

0x080

I2S_POS_FLAG

Current position status register of
I2S left and right channels

7-27

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-11

Hi3515
Data Sheet

7 Audio Interface

Offset
Address

Register

Description

Page

0x084

SIO_SIGNED_EXT

Upper-bit sign extend enable
register

7-28

0x088

SIO_I2S_POS_MERGE_
EN

Access position merging enable
register of I2S left and right
channels

7-28

0x08C

SIO_INTMASK

SIO interrupt mask register

7-29

0x090–0x09C

RESERVED

Reserved

-

0x0A0

SIO_I2S_DUAL_RX_C
HN

Data receive register after the
enabling of I2S left and right
channel data access position
merging

7-30

0x0C0

SIO_I2S_DUAL_TX_C
HN

Data transmit register after the
enabling of I2S left and right
channel data access position
merging

7-31

7.7 Register Description
SIO_VERSION
SIO_VERSION is the SIO version register. It is used to record the SIO version number and
perform the SIO self-test.
Register Name

Total Reset Value

0x03C

SIO_VERSION

0x0000_0013

Bit

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

Name

reserved

sio_loop

offset Address

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:9]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

7

6

5

4

3

2

1

0

0

1

1

version

0

0

0

1

0

SIO loop or normal mode select.
0: Normal mode.
[8]

7-12

RW

sio_loop

1: Data transmit and receive loop mode. It is used for the self-test
of the SIO. In the mode, the SIO receive serial data line is directly
connected to the SIO transmit serial data line at the external
interface of the SIO.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[7:0]

7 Audio Interface

RO

version

Version number of the SIO.

SIO_MODE
SIO_MODE is the SIO mode register. It is used to select the basic operating mode of the SIO
as follows:
z

In master mode, the clock and sync signals to the codec and SIO are sent by the clock
reset generation (CRG) module.

z

In slave mode, the clock and sync signals are sent to the SIO by the external codec.

The master or salve mode of the I2S/PCM interface can be selected through the system control
register SC_PERCTRL12. For details, see the description of SC_PERCTRL12 in section
3.10.5.

0x040

SIO_MODE

0x0000_0000

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access Name

Description

[31:7]

-

Reserved.

[6]

RW

reserved

clk_edge

6

0

0

0

0

0

0

0

0

5

4

chn_num

7

clk_edge

Name

8

0

0

3

2

1

0

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

sio_mode

Total Reset Value

pcm_mode

Register Name

ext_rec_en

Bit

offset Address

0

0

0

0

Clock edge on which data is sampled during multi-channel data
receive in PCM mode.
0: Falling edge.
1: Rising edge.
Number of channels during multi-channel data receive.
00: 2 channels

[5:4]

RW

chn_num

01: 4 channels
10: 8 channels
11: 16 channels
In standard data receive mode, the I2S interface receives both the
left-channel and right-channel data. The PCM interface, however,
receives either the right-channel data or left-channel data.

[3]

RW

ext_rec_en

For the I2S/PCM interface in multi-channel data receive mode, the
number of channels is configurable. Additionally, the bit width of
the channels must be 8 bits or 16 bits.
0: Standard data receive mode of the I2S/PCM interface.
1: Extended multi-channel data receive mode of the I2S/PCM
interface.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-13

Hi3515
Data Sheet

7 Audio Interface

[2]

-

reserved

Reserved. This bit must be set to 0.
PCM timing mode.

[1]

RW

pcm_mode

0: Standard mode.
1: Customized mode.
PCM/I2S mode select.

[0]

RW

sio_mode

0: I2S mode.
1: PCM mode.

SIO_INTSTATUS
SIO_INTSTATUS is the SIO interrupt status register.
Take the receive interrupt as an example. When the data depth of the RX_FIFO is above the
threshold, the high level is always latched to the interrupt status register and the interrupts are
generated continuously. That is, even the CPU clears the interrupt, the interrupt status register
is set to 1 in the next clock cycle. Therefore, it is recommended to perform the following steps
through the CPU:
Step 1 Write 1 to SIO_CT_CLR[intr_en] to disable the global interrupt enable bit.
Step 2 Read the interrupt status register SIO_INTSTATUS.
Step 3 Perform relevant operations according to the interrupt source.
Step 4 Write 1 to the related bit of SIO_INTCLR to clear the interrupt.
Step 5 Write 1 to SIO_CT_SET[intr_en] to enable the global interrupt enable bit.
----End
The transmit interrupt and receive interrupt are generated in the same manner. Therefore, it is
recommended to process the transmit interrupt by following the preceding steps.
This register is a raw interrupt status register. If the related interrupt bit is masked and the
interrupt condition is met, the related interrupt status bit is set to 1 but no interrupt is
triggered.

7-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

[5]

RO

tx_left_fifo_under

0

0

0

0

0

0

0

5

4

3

2

1

0

tx_intr

SIO_INTSTATUS

rx_intr

0x044

rx_left_fifo_over

Total Reset Value

rx_right_fifo_over

Register Name

tx_left_fifo_under

Offset Address

tx_right_fifo_under

Bit

7 Audio Interface

0

0

0

0

0

0

In I2S mode, this bit indicates the left channel TX_FIFO underflow
interrupt status. In PCM mode, this bit is invalid.
0: No interrupt is generated.
1: An interrupt is generated.

[4]

RO

In I2S mode, this bit indicates the right channel TX_FIFO
underflow interrupt status. In PCM mode, this bit indicates the
tx_right_fifo_under PCM TX_FIFO underflow flag.
0: No interrupt is generated.
1: An interrupt is generated.

[3]

RO

rx_left_fifo_over

In I2S mode, this bit indicates the left channel RX_FIFO overflow
interrupt status. In PCM mode, this bit is invalid.
0: No interrupt is generated.
1: An interrupt is generated.

[2]

RO

In I2S mode, this bit indicates the right channel RX_FIFO
overflow interrupt status. In PCM mode, this bit indicates the PCM
rx_right_fifo_over RX_FIFO underflow flag.
0: No interrupt is generated.
1: An interrupt is generated.
Interrupt status when the TX_FIFO level is below the threshold.

[1]

RO

tx_intr

0: No interrupt is generated.
1: An interrupt is generated.
Interrupt status when the RX_FIFO level is above the threshold.

[0]

RO

rx_intr

0: No interrupt is generated.
1: An interrupt is generated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-15

Hi3515
Data Sheet

7 Audio Interface

SIO_INTCLR
SIO_INTCLR is the SIO interrupt clear register. It can be cleared bit by bit.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

[5]

WO

tx_left_fifo_under

0

0

0

0

0

0

0

5

4

3

2

1

0

tx_intr

0x0000_0000

rx_intr

SIO_INTCLR

rx_left_fifo_over

0x048

rx_right_fifo_over

Total Reset Value

tx_left_fifo_under

Register Name

tx_right_fifo_under

Bit

Offset Address

0

0

0

0

0

0

In I2S mode, this bit controls whether the left channel TX_FIFO
underflow interrupt is cleared. In PCM mode, this bit is invalid.
0: Not cleared.
1: Cleared.

[4]

WO

In I2S mode, this bit controls whether the right channel TX_FIFO
underflow interrupt is cleared. In PCM mode, this bit indicates
tx_right_fifo_under PCM TX_FIFO underflow interrupt clear.
0: Not cleared.
1: Cleared.

[3]

WO

rx_left_fifo_over

In I2S mode, it controls whether the left channel RX_FIFO
overflow interrupt is cleared. In PCM mode, this bit is invalid.
0: Not cleared.
1: Cleared.

[2]

WO

In I2S mode, this bit controls whether the right channel RX_FIFO
overflow interrupt is cleared. In PCM mode, this bit indicates the
rx_right_fifo_over PCM RX_FIFO overflow interrupt clear.
0: Not cleared.
1: Cleared.

[1]

WO

tx_intr

This bit controls whether the TX_FIFO level below the threshold
interrupt is cleared.
0: Not cleared.
1: Cleared.

[0]

WO

rx_intr

This bit controls whether the RX_FIFO level above the threshold
interrupt is cleared.
0: Not cleared.

7-16

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

1: Cleared.

SIO_I2S_LEFT_XD
SIO_I2S_LEFT_XD is the I2S left channel data transmit register.
The SIO module places the valid data in the lower-bit area when writing data into the register.
For example, when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid; when
the data width is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond the
valid data width are automatically set to 0s by the SIO module.

Bit

offset Address

Register Name

Total Reset Value

0x04C

SIO_I2S_LEFT_XD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

tx_left_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

WO

tx_left_data

Left channel transmit data.

0

0

0

SIO_I2S_RIGHT_XD
SIO_I2S_RIGHT_XD is the I2S right channel data transmit register. The PCM data transmit
register is multiplexed with SIO_I2S_RIGHT_XD.
The SIO module places the valid data in the lower-bit area when writing data into the register.
For example, when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid; when
the data width is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond the
valid data width are automatically set to 0s by the SIO module.

Bit

Offset Address

Register Name

Total Reset Value

0x050

SIO_I2S_RIGHT_XD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

tx_right_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

WO

tx_right_data

Right channel transmit data.

Issue 02 (2010-04-20)

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-17

Hi3515
Data Sheet

7 Audio Interface

SIO_PCM_XD
SIO_PCM_XD is the PCM data transmit register. The PCM data transmit register is
multiplexed with SIO_I2S_RIGHT_XD.
The SIO module places the valid data in the lower-bit area when writing the valid data to the
register. For example, when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid.
When the data width is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond
the valid data width are automatically set to 0s by the SIO module.

Bit

Offset Address

Register Name

Total Reset Value

0x050

SIO_PCM_XD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

tx__data
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

WO

tx_data

PCM transmit data.

0

0

0

0

0

0

0

SIO_I2S_LEFT_RD
SIO_I2S_LEFT_RD is the I2S left channel data receive register.
The SIO module places the received valid data in the low-bit area of the register. For example,
when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid; when the data width
is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond the valid data width
are automatically set to 0s by the SIO module.

Bit

Offset Address

Register Name

Total Reset Value

0x054

SIO_I2S_LEFT_RD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rx_left_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rx_left_data

I2S left channel receive data.

0

0

Note: When data receive is disabled in I2S mode , the right-channel data may not be written into the FIFO. In this case, the number of
data items in the left-channel FIFO may be greater than that in the right-channel FIFO by 1. Therefore, the data in the left-channel
and right-channel FIFOs must be cleared before the CPU enables the next data receive.

7-18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

SIO_I2S_RIGHT_RD
SIO_I2S_RIGHT_RD is the I2S right channel data receive register. The PCM data receive
register is multiplexed with SIO_I2S_RIGHT_RD.
The SIO module places the received valid data in the low-bit area of the register. For example,
when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid; when the data width
is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond the valid data width
are automatically set to 0s by the SIO module.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-19

Hi3515
Data Sheet

7 Audio Interface

Bit

Offset Address

Register Name

Total Reset Value

0x058

SIO_I2S_RIGHT_RD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rx_right_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rx_right_data

I2S right channel receive data.

0

0

Note: When data receive is disabled in I2S mode , the right-channel data may not be written into the FIFO. In this case, the number of
data items in the left-channel FIFO may be greater than that in the right-channel FIFO by 1. Therefore, the data in the left-channel
and right-channel FIFOs must be cleared before the CPU enables the next data receive.

SIO_PCM_RD
SIO_PCM_RD is the PCM data receive register, which is multiplexed with
SIO_I2S_RIGHT_RD.
The SIO module places the received valid data in the low-bit area of the register. For example,
when the data width is 8 bits, bit[7:0] are valid and bit[31:8] are invalid; when the data width
is 16 bits, bit[15:0] are valid and bit[31:16] are invalid. The bits beyond the valid data width
are automatically set to 0s by the SIO module.

Bit

Offset Address

Register Name

Total Reset Value

0x058

SIO_PCM_RD

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

rx__data
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RO

rx_data

PCM receive data.

0

0

0

0

0

0

0

SIO_CT_SET
To facilitate the bit operation on the SIO control register, the SIO_CT_SET register with the
address of 0x05C is provided. When 1 is written to the related bit of the register, the bit is set
to 1. Writing 0 has no effect. This is a read/write register.

7-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x05C/0x060

SIO_CT_SET

0x0000_8000

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

0

0

6

0

0

5

4

3

2

0

0

0

0

1

0

tx_fifo_threshold

0

7

rx_fifo_threshold

1

tx_data_merge_en

0

tx_fifo_disable

0

8

rx_data_merge_en

0

tx_enable

Reset 0

rx_fifo_disable

reserved

intr_en

Name

rx_enable

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

rst_n

Bit

7 Audio Interface

0

0

I2S/PCM channel reset, active low.
[15]

RW

This bit is used to reset the transmit and receive modules
(including the FIFOs) in I2S/PCM mode, and thus the RX_FIFO
and TX_FIFO status registers are changed to 0. This bit does not
reset the CPU interface register module.

rst_n

Global interrupt enable.
[14]

RW

intr_en

0: Disabled.
1: Enabled.
Receive channel enable.

[13]

RW

rx_enable

0: Disabled.
1: Enabled.
Transmit channel enable.

[12]

RW

tx_enable

0: Disabled.
1: Enabled.
RX_FIFO disable.

[11]

RW

rx_fifo_disable

0: Enabled.
1: Disabled.
TX_FIFO disable.

[10]

RW

tx_fifo_disable

0: Enabled.
1: Disabled.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-21

Hi3515
Data Sheet

7 Audio Interface

Data receive merging enable. This bit is valid only when the data
width is 16 bits in I2S mode.
0: Disabled.
1: Enabled.

[9]

RW

If this bit is 1, the left-channel and right-channel data is merged
into a 32-bit data and then is stored in the FIFO. The left-channel
16 bits occupy the 16 MSBs, and the right-channel 16 bits occupy
rx_data_merge_en the 16 LSBs. Therefore, the utilization and buffer capacity of the
FIFO is improved.
The CPU reads data from the RX_FIFO in the following order.
That is, reads the 32-bit data (formed by merging the16-bit
left-channel data and 16-bit right-channel data) from the
left-channel FIFO, and then reads the 32-bit data from the
right-channel FIFO. The CPU reads data in this manner
repeatedly.
Data transmit merging enable. It is valid only when the data bit
width is 16 bits in I2S mode
0: Disabled.
1: Enabled.

[8]

RW

If this bit is 1, the left-channel and right-channel data is merged
into a 32-bit data and then is stored in the FIFO. The left-channel
tx_data_merge_en 16 bits occupy the 16 MSBs, and the right-channel 16 bits occupy
the 16 LSBs. Therefore, the utilization and buffer capacity of the
FIFO is improved.
The CPU writes data into the TX_FIFO in the following order.
That is, writes the 32-bit data (formed by merging the16-bit
left-channel data and 16-bit right-channel data) to the left-channel
FIFO, and then writes the 32-bit data to the right-channel FIFO.
The CPU writes data in this manner repeatedly.
RX_FIFO threshold.

[7:4]

RW

rx_fifo_threshold

When rx_right_depth ≥ (rx_fifo_threshold + 1), the receive
interrupt and DMA request are reported.
TX_FIFO threshold.

[3:0]

RW

tx_fifo_threshold

When the tx_right_depth < (tx_fifo_threshold + 1), the transmit
interrupt and DMA request are reported.

SIO_CT_CLR
To facilitate the bit operation on the SIO control register, the SIO_CT_CLR register with the
address of 0x06 is provided. When 1 is written to the related bit of the register, the bit is set to
1. Writing 0 has no effect. This is a write-only register.

7-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x05C/0x060

SIO_CT_SET

0x0000_8000

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

0

0

0

0

0

0

6

0

0

5

4

3

2

0

0

0

0

1

0

tx_fifo_threshold

0

7

rx_fifo_threshold

1

tx_data_merge_en

0

tx_fifo_disable

0

8

rx_data_merge_en

0

tx_enable

Reset 0

rx_fifo_disable

reserved

intr_en

Name

rx_enable

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

rst_n

Bit

7 Audio Interface

0

0

I2S/PCM channel reset, active low.
[15]

RW

This bit is used to reset the transmit and receive modules
(including the FIFOs) in I2S/PCM mode, and thus the RX_FIFO
and TX_FIFO status registers are changed to 0. This bit does not
reset the CPU interface register module.

rst_n

Global interrupt enable.
[14]

RW

intr_en

0: Disabled.
1: Enabled.
Receive channel enable.

[13]

RW

rx_enable

0: Disabled.
1: Enabled.
Transmit channel enable.

[12]

RW

tx_enable

0: Disabled.
1: Enabled.
RX_FIFO disable.

[11]

RW

rx_fifo_disable

0: Enabled.
1: Disabled.
TX_FIFO disable.

[10]

RW

tx_fifo_disable

0: Enabled.
1: Disabled.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-23

Hi3515
Data Sheet

7 Audio Interface

Data receive merging enable. This bit is valid only when the data
width is 16 bits in I2S mode.
0: Disabled.
1: Enabled.

[9]

RW

If this bit is 1, the left-channel and right-channel data is merged
into a 32-bit data and then is stored in the FIFO. The left-channel
16 bits occupy the 16 MSBs, and the right-channel 16 bits occupy
rx_data_merge_en the 16 LSBs. Therefore, the usage and buffer capacity of the FIFO
is improved.
The CPU reads data from the RX_FIFO in the following order.
That is, reads the 32-bit data (formed by merging the16-bit
left-channel data and 16-bit right-channel data) from the
left-channel FIFO, and then reads the 32-bit data from the
right-channel FIFO. The CPU reads data in this manner
repeatedly.
Data transmit merging enable. It is valid only when the data bit
width is 16 bits in I2S mode
0: Disabled.
1: Enabled.

[8]

RW

If this bit is 1, the left-channel and right-channel data is merged
into a 32-bit data and then is stored in the FIFO. The left-channel
tx_data_merge_en 16 bits occupy the 16 MSBs, and the right-channel 16 bits occupy
the 16 LSBs. Therefore, the usage and buffer capacity of the FIFO
is improved.
The CPU writes data into the TX_FIFO in the following order.
That is, writes the 32-bit data (formed by merging the16-bit
left-channel data and 16-bit right-channel data) to the left-channel
FIFO, and then writes the 32-bit data to the right-channel FIFO.
The CPU writes data in this manner repeatedly.
RX_FIFO threshold.

[7:4]

RW

rx_fifo_threshold

When rx_right_depth ≥ (rx_fifo_threshold + 1), the receive
interrupt and DMA request are reported.
TX_FIFO threshold.

[3:0]

RW

tx_fifo_threshold

When the tx_right_depth < (tx_fifo_threshold + 1), the transmit
interrupt and DMA request are reported.

SIO_RX_STA
SIO_RX_STA is the SIO receive status register.

7-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x068

SIO_RX_STA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:10]

-

reserved

Reserved.

[9:5]

RO

rx_left_depth

RO

7

6

5

4

3

0

0

0

rx_left_depth

Bits

[4:0]

8

0

0

0

0

0

0

0

0

0

0

2

1

0

0

0

rx_right_depth

Bit

7 Audio Interface

0

Left channel RX_FIFO depth indicator.
These bits are valid only in I2S mode.
In I2S mode, it indicates the right channel RX_FIFO depth
indicator.

rx_right_depth

In PCM mode, it indicates the PCM RX_FIFO depth indicator.

SIO_TX_STA
SIO_TX_STA is the SIO transmit status register.

Bit

Offset Address

Register Name

Total Reset Value

0x06C

SIO_TX_STA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31:10]

RO

reserved

Reserved.

[9:5]

RO

tx_left_depth

RO

tx_right_depth

7

6

5

tx_left_depth

Bits

[4:0]

8

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

tx_right_depth
0

0

0

0

0

0

Left channel TX_FIFO depth indicator.
These bits are valid only in I2S mode.
In I2S mode, it indicates the right channel TX_FIFO depth
indicator.
In PCM mode, it indicates the PCM TX_FIFO depth indicator

SIO_DATA_WIDTH_SET
SIO_DATA_WIDTH_SET is the I2S/PCM data width set register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-25

Hi3515
Data Sheet

7 Audio Interface
Register Name

Total Reset Value

0x078

SIO_DATA_WIDTH_SET

0x0000_0009

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

6
reserved

Bit

Offset Address

0

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

rx_mode

tx_mode

0

0

0

1

0

1

Configuration bits of the length of the data to be received.
000: 8 bits
001: 16 bits
010: 18 bits
011: 20 bits
100: 24 bits
[5:3]

RW

rx_mode

101: 32 bits
110–111: reserved
The data length of 16 bits, 18 bits, 20 bits, 24 bits, and 32 bits is
supported in I2S mode.
The data length of 8 bits and 16 bits is supported in PCM mode.
For multi-channel data receive, only the data length of 8 bits and
16 bits is supported in I2S/PCM mode.
Configuration bits of the length of the data to be transmitted.
000: 8 bits
001: 16 bits
010: 18 bits
011: 20 bits

[2:0]

RW

tx_mode

100: 24 bits
101: 32 bits
110–111: reserved
The data length of 16 bits, 18 bits, 20 bits, 24 bits, and 32 bits is
supported in I2S mode.
The data length of 8 bits and 16 bits is supported in PCM mode.

SIO_I2S_START_POS
SIO_I2S_START_POS is the data access start position control register of I2S left and right
channels.
This register controls whether the initial access starts from the left channel or right channel
after the left-channel and right-channel data access address merging is enabled.

7-26

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x07C

SIO_I2S_START_POS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

-

reserved

Reserved.

0

0

0

0

0

0

0

1

0
start_pos_read

Offset Address

start_pos_write

Bit

7 Audio Interface

0

0

When writing data into the TX_FIFO:
[1]

RW

start_pos_write

0: Start the access from the left channel.
1: Start the access from the right channel.
When reading data from the RX_FIFO:

[0]

RW

0: Start the access from the left channel.

start_pos_read

1: Start the access from the right channel.

I2S_POS_FLAG
I2S_POS_FLAG is the current position status register of I2S left and right channels.

Register Name

Total Reset Value

0x080

I2S_POS_FLAG

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

-

reserved

Reserved.

[1]

RO

start_pos_write

Issue 02 (2010-04-20)

0

0

0

0

0

0

0

1

0
start_pos_read

Bit

Offset Address

start_pos_write

This register controls whether the subsequent access starts from the left channel or the right
channel after the left-channel and right-channel data access address merging is enabled.

0

0

When writing data into the TX_FIFO:
0: Start the subsequent access from the left channel.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-27

Hi3515
Data Sheet

7 Audio Interface

1: Start the subsequent access from the right channel.
When reading data from the RX_FIFO:
[0]

RO

0: Start the subsequent access from the left channel.

start_pos_read

1: Start the subsequent access from the right channel.

SIO_SIGNED_EXT
SIO_SIGNED_EXT is the upper-bit sign extend enable register. This upper-bit sign extend
enable bit is valid only for the received data rather than the transmitted data. The sign
extension function is supported by the received data in PCM and I2S modes.
Assume that the received valid data width is 8 bits, 16 bits, 18 bits, 20 bits, or 24 bits and the
upper-bit sign extend enable bit is enabled. When the receive data is converted into a 32-bit
data, the invalid upper bit of the 32 bits are set to the value corresponding to the MSBs of the
receive data and then written into the RX_FIFO.
The following example is based on the data width of 16 bits:
if(data_rx[15]==1)
data_rx[31:16]=0xffff;
else
data_rx[31:16]=0x0000;
Register Name

Total Reset Value

0x084

SIO_SIGNED_EXT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
signed_ext_en

Bit

Offset Address

0

0

0

0

0

0

0

Upper-bit sign extend enable.
[0]

RW

signed_ext_en

0: Disabled..
1: Enabled.

SIO_I2S_POS_MERGE_EN
SIO_I2S_POS_MERGE_EN is the access position merging enable register of I2S left and
right channels.

7-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

When the FIFOs of the SIO are read/written in DMA mode in I2S mode, the CPU needs to
continuously configure the DMA operation addresses because the left-channel and
right-channel data addresses are different. This reduces the CPU efficiency. To improve the
CPU efficiency, the access position merging bit of the left-channel and right-channel is used.
When the access position merging bit is enabled, both the right-channel and left-channel data
is read through SIO_I2S_DUAL_RX_CHN register and written through the
SIO_I2S_DUAL_TX_CHN register.
Register Name

Total Reset Value

0x088

SIO_I2S_POS_MERGE_EN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

[0]

RW

0

0
merge_en

Bit

Offset Address

0

0

0

0

0

0

Data access position merging enable of the I2S left and right
channels.

merge_en

0: Disabled.
1: Enabled.

SIO_INTMASK
SIO_INTMASK is the SIO interrupt mask register.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

Issue 02 (2010-04-20)

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5

4

3

2

1

0

tx_intr

0x0000_0000

rx_intr

SIO_INTMASK

rx_left_fifo_over

0x08C

rx_right_fifo_over

Total Reset Value

tx_right_fifo_under

Register Name

tx_left_fifo_under

Bit

Offset Address

1

1

1

1

1

1

7-29

Hi3515
Data Sheet

7 Audio Interface

[5]

RW

tx_left_fifo_under

In I2S mode, this bit indicates left channel TX_FIFO underflow
interrupt mask. In PCM mode, this bit is invalid.
0: Not masked.
1: Masked.

[4]

In I2S mode, this bit indicates right channel TX_FIFO underflow
interrupt mask. In PCM mode, this bit indicates PCM TX_FIFO
tx_right_fifo_under underflow interrupt mask.

RW

0: Not masked.
1: Masked.

[3]

RW

In I2S mode, this bit indicates left channel RX_FIFO overflow
interrupt mask. In PCM mode, this bit is invalid.

rx_left_fifo_over

0: Not masked.
1: Masked.

[2]

In I2S mode, this bit indicates right channel RX_FIFO overflow
interrupt mask. In PCM mode, this bit indicates PCM RX_FIFO
rx_right_fifo_over underflow interrupt mask.
0: Not masked.

RW

1: Masked.
Interrupt mask when the TX_FIFO level is below the threshold.
[1]

RW

0: Not masked.

tx_intr

1: Masked.
Interrupt mask when the RX_FIFO level is above the threshold.
[0]

RW

rx_intr

0: Not masked.
1: Masked.

SIO_I2S_DUAL_RX_CHN
SIO_I2S_DUAL_RX_CHN is the data receive register after the enabling of I2S left and right
channel data access position merging.

Bit

Offset Address

Register Name

Total Reset Value

0x0A0

SIO_I2S_DUAL_RX_CHN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rx_data

Reset 0

7-30

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

rx_data

Received data.

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

7 Audio Interface

SIO_I2S_DUAL_TX_CHN
SIO_I2S_DUAL_TX_CHN is the data transmit register after the enabling of I2S left and right
channel data access position merging.

Bit

Offset Address

Register Name

Total Reset Value

0x0C0

SIO_I2S_DUAL_TX_CHN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

tx_data

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

WO

tx_data

Transmitted data.

Issue 02 (2010-04-20)

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7-31

Hi3515
Data Sheet

Contents

Contents
8 MMC/SD/SDIO Controller ......................................................................................................8-1
8.1 Overview.......................................................................................................................................................8-1
8.2 Features .........................................................................................................................................................8-1
8.3 Signal Description.........................................................................................................................................8-2
8.4 Function Description .....................................................................................................................................8-3
8.5 Operating Mode ............................................................................................................................................8-8
8.5.1 Pin Multiplexing ..................................................................................................................................8-8
8.5.2 Clock Gating ........................................................................................................................................8-8
8.5.3 Soft Reset.............................................................................................................................................8-9
8.5.4 Clock Configuration.............................................................................................................................8-9
8.5.5 Initialization .......................................................................................................................................8-10
8.5.6 Non-Data Transfer Commands .......................................................................................................... 8-11
8.5.7 Reading Single-Block or Multiple-Block Data ..................................................................................8-12
8.5.8 Writing Single-Block or Multiple-Block Data ...................................................................................8-13
8.5.9 Reading and Writing Stream Data......................................................................................................8-15
8.5.10 Transferring Data in DMA Mode.....................................................................................................8-15
8.5.11 Auto-Stop Configuration ..................................................................................................................8-16
8.5.12 Stopping or Pausing Data Transfer...................................................................................................8-16
8.5.13 Suspend and Resume Operations .....................................................................................................8-16
8.5.14 Read Wait Operation ........................................................................................................................8-18
8.6 Register Summary .......................................................................................................................................8-18
8.7 Register Description....................................................................................................................................8-19

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 8-1 Typical application circuit of the MMC............................................................................................8-3
Figure 8-2 Functional block diagram of the MMC ............................................................................................8-4
Figure 8-3 Non-data transfer commands of the MMC .......................................................................................8-5
Figure 8-4 Command format of the MMC .........................................................................................................8-5
Figure 8-5 Response format of the card device ..................................................................................................8-6
Figure 8-6 Single-block and multiple-block read operations .............................................................................8-7
Figure 8-7 Single-block and multiple-block write operations ............................................................................8-7
Figure 8-8 Block data format in 1-bit transfer mode ..........................................................................................8-8
Figure 8-9 Block data format in 4-bit transfer mode ..........................................................................................8-8

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 8-1 MMC interface signals .......................................................................................................................8-2
Table 8-2 Load parameters of signal lines ..........................................................................................................8-3
Table 8-3 Reference configuration of MMC_CMD for non-data transfer command ....................................... 8-11
Table 8-4 Reference configuration of MMC_CMD during the process of reading single-block or multiple-block
data....................................................................................................................................................................8-13
Table 8-5 Reference configuration of MMC_CMD during the process of writing single-block or multiple-block
data....................................................................................................................................................................8-14
Table 8-6 Reference configuration of MMC_CMDARG during a resume operation.......................................8-18
Table 8-7 Summary of the MMC registers (base address: 0x1003_0000)........................................................8-18

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

8

MMC/SD/SDIO Controller

8.1 Overview
The MMC/SD/SDIO controller (hereinafter referred to as MMC) processes read/write
operations on the secure digital (SD) card and multi-media card (MMC) card and supports
various extended devices such as Bluetooth and WiFi devices through the Secure Digital
Input/Output (SDIO) protocol. The MMC controls the devices complying with the following
protocols and are downward compatible with the protocols of earlier versions:
z

SD mem-version 2.00

z

SDIO-version 1.10

z

MMC-version 4.2

8.2 Features
The MMC has the following features:
z

Supports data transfer in direct memory access (DMA) mode

z

Supports two transmit first-in-first-outs (FIFOs) and two receive FIFOs. The size of each
FIFO is 16 x 32 bits.

z

Supports configurable FIFO threshold. In DMA transfer mode, the burst length is also
configurable.

z

Supports interrupt alarms in case of FIFO overflow and underflow. In this way, data can
be transferred without any errors.

z

Supports the cyclic redundancy check (CRC) generation and check for data and
commands

z

Supports programmable interface clock frequency

z

Disables the MMC clock in low-power mode

z

Disables the interface clock in low-power mode

z

Supports 1- or 4-bit data transfer

z

Supports read and write operations on the data blocks with the size of 1 byte to 65535
bytes

z

Reads/writes stream data from/to the MMC card

z

Supports the SDIO interrupt detection in 1- and 4-bit data transfer modes.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-1

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller
z

Supports SDIO suspend and resume operations

z

Supports the SDIO read wait operation

8.3 Signal Description
Table 8-1 lists the MMC interface signals.
Table 8-1 MMC interface signals

8-2

Signal

Direction

Description

Corresponding
Pin

SDIOCK

O

Output interface clock signal. The
signal is multiplexed with the video
output (VO) pin. For details about the
multiplexing configuration
information, see section 8.5.1 "Pin
Multiplexing."

VOCK

SDIOCMD

I/O

Bidirectional command signal. The
signal is multiplexed with the VO pin.
For details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT0

SDIODAT0

I/O

Bidirectional data signal 0. The signal
is multiplexed with the VO pin. For
details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT1

SDIODAT1

I/O

Bidirectional data signal 1. The signal
is multiplexed with the VO pin. For
details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT2

SDIODAT2

I/O

Bidirectional data signal 2. The signal
is multiplexed with the VO pin. For
details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT3

SDIODAT3

I/O

Bidirectional data signal 3. The signal
is multiplexed with the VO pin. For
details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT4

SDIODETC

I

SDIO/MMC card detection signal.
The signal is multiplexed with the VO
pin. For details about the multiplexing
configuration information, see section
8.5.1 "Pin Multiplexing."

VODAT5

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

MMC_CCLK, MMC_CMD, and MMC_DAT0–MMC_DAT3 map to the signals CLK, CMD, and
DAT0–DAT3 respectively. Those signals are described later.

8.4 Function Description
Typical Application
Figure 8-1 shows the typical application circuit of the MMC.
Figure 8-1 Typical application circuit of the MMC
RDAT

RCMD

CMD
DAT0-3
CLK
MMC
C1 C2 C3

91 2 3 4 5 678

Besides the signal lines shown in Figure 8-1, the card slot also provides a mechanical write-protection
signal line and a card detection signal line. By detecting the levels of the two signal lines through the
general-purpose input/output (GPIO) pin, the system can implement mechanical write protection and
card detection during hot plugging.

By interconnecting with the card device through a clock signal line, a bidirectional command
signal line, and four bidirectional data signal lines, the MMC exchanges commands and data
with the card device. The command signals and data signals work in pull-up mode. Table 8-2
lists the parameters of the pull-up resistors and the load capacitance of each signal line.
Table 8-2 Load parameters of signal lines
Parameter

Min

Max

Description

RDAT, RCMD

10 kΩ

100 kΩ

Pull-up resistors

Load
capacitance
Cx

–

40 pF

Load capacitance Cx = Cmmchost + Cbus + Ccard. The
maximum load capacitance (Ccard) of each card is
10 pF. Hence, Cmmchost + Cbus ≤ 30 pF.

Inductance of
each signal
line

–

16 nH

Fpp ≤ 20 MHz

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-3

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Functional Principle
Figure 8-2 shows the functional block diagram of the MMC.
Figure 8-2 Functional block diagram of the MMC
MMC
cmd
reg
resp
reg
Bus

CPU
CPU
if

cmd
path

CMD
DAT0-3

divider & clk cntrl

CLK

MMC/SD/
SDIO card

DMA
txfifo

Data
path

rxfifo

The MMC connects to the system through its internal bus. The MMC consists of the
command path, data path, and interface clock control unit. Their functions are as follows:
z

Command path
It is used to transmit commands and receive responses.

z

Data path
It is used to perform data read and write operations by working with the command path.

z

Interface clock control unit
It is used to change the frequency of the interface clock as required and enable or disable
the interface clock.

Command and Response
All interactions between the MMC and the card device, including card initialization sequence,
register read/write, status query, and data transfer, are implemented through commands.
Commands are classified into the following two types according to whether data is transferred:
z

Non-data transfer command
Based on the command signal line CMD, the controller transmits commands and
receives responses in serial mode.

z

Data transfer command
Besides the interaction on the command line, data is also transferred through the data
lines DAT0 to DAT3.

Commands can also be classified into the following three types according to the response
types:

8-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
z

8 MMC/SD/SDIO Controller

Command without response
For example, the card reset command.

z

Short response command
For example, the data transfer command and card status query command.

z

Long response command
This type of commands are only used to read the information about the card
identification (CID) and card specific data (CSD) registers of a card.

Figure 8-3 shows the non-data transfer commands between the MMC and the card device. For
details about data transfer commands, see Figure 8-6 and Figure 8-7.
Figure 8-3 Non-data transfer commands of the MMC
From MMC
to card
CMD

From MMC
to card

From card
to MMC
Response

Command

Command

DAT
Operation (no response)

Operation (long/short
response)

Both the non-data transfer command and the data transfer command are 48-bit serial data.
Each command consists of a start bit, a transfer bit, a command serial number, a command
parameter, a CRC bit, and an end bit. After receiving a command, the card returns a 48-bit or
a 136-bit response according to the command type. Figure 8-4 shows the command format of
the MMC and Figure 8-5 shows the response format of the card device.
Figure 8-4 Command format of the MMC
Command content: command and
address information or parameter,
protected by 7-bit CRC checksum

Transfer bit
'1'= mmc command

End bit
always '1'

Start bit
always '0'
0

1

CONTENT

CRC

1

Total length = 48 bits

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-5

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Figure 8-5 Response format of the card device
Response content: mirrored command and
status information (R1 response),OCR
register (R3 response) or RCA (R6),
protected by 7-bit CRC checksum

Transfer bit
'0'= card response

End bit
always '1'

Start bit
always '0'
Short response

0

0

CONTENT

1

Total length = 48 bits
Long response

0

0

CONTENT=CID or CSD

CRC

1

Total length = 136 bits

Data Transfer Command
The MMC, SD card, and SDIO card support the following data read/write modes:
z

Stream read/write command mode
Only the MMC card supports this mode. In this mode, only one data line, namely DAT0,
is used for data transfer and no CRC check is performed.

z

Single-block read/write command mode
In this mode, a single block of data is read and written during each data transfer. No stop
command is required for stopping each data transfer.

z

Multiple-block read/write command mode
−

Predefined block count mode
Before the multiple block read/write command is executed, the block count command
is sent to specify the number of data blocks to be transferred.

−

Open ended mode
After a read/write command is sent, a stop command is required for stopping data
transfer at the end of data transfer.

The difference between the two modes lies on how the MMC notifies the card of the end
of each data transfer. The SD card supports the open-ended mode only, whereas the
MMC card supports both modes.
The multiple block read/write command of the SDIO card is different from the preceding
two modes. To be specific, the command parameter contains the number of data blocks
to be transferred when the read/write command is sent.
The single-block read/write command mode and the multiple-block read/write command
mode are widely used in data transfer. For the data transfer of the SD card and MMC card, a
data block is 512 bytes; for the data transfer of the SDIO card, the block size can be
customized.
In the data transfer through the block read/write command, the total amount of transferred data must be
an integer multiple of the block size.

All data transfer commands are short response commands with data transferred through data
lines. Figure 8-6 and Figure 8-7 show the relationships between the commands, responses,
and timings of data lines.

8-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Figure 8-6 Single-block and multiple-block read operations
From MMC
to card

CMD

From card
to MMC

Command

DAT

Stop command
for stopping data transfer

Data from
card to MMC

Command

Response
Data block

Data block

Data block CRC

CRC

Single-block read operation

Response

CRC
Data stop operation

Multiple-block read operation

The MMC sends a single-block or a multiple-block read command to the card. When
receiving the response from the card, the MMC starts to receive data block by block. Each
block of data contains a CRC bit that ensures the integrity of data transfer. When sending a
single-block read command, the MMC completes a data transfer after a block of data is
received. When sending a multiple-block read command in open-ended mode, the MMC
completes a data transfer after multiple blocks of data is received and a stop command is sent.
Figure 8-7 Single-block and multiple-block write operations
From MMC
to card

CMD

From card
to MMC

Command

Data from
MMC to card

Stop command
for stopping data transfer

Response

Command
Data block

DAT

CRC ok response
and busy from
card to MMC

CRC

Busy

Data block CRC

Single-block write operation

Response
Busy

Data stop operation

Multiple-block write operation

The MMC sends a single-block or a multiple-block write command to the card. After
receiving the response, the MMC starts to transmit data to the card block by block. Each data
block contains a CRC bit. Therefore, the card performs CRC on each data block and sends the
CRC status to the MMC, thus ensuring that data is transferred properly. For the single-block
write operation, the MMC completes a data transfer after a block of data is received. For the
multiple-block write operation in open-ended mode, the MMC completes a data transfer after
multiple blocks of data is received and a stop command is sent. After a write operation, the
card may be busy in programming the flash memory. In this case, the MMC can perform the
next operation on the card only after it confirms that the card is not busy by querying the
status of the signal line DAT0.
During the block read/write operations, the 1- or 4-bit data line can be used to transfer data
between the controller and the card.
Before a data transfer command is sent, the data transfer widths for the MMC and card must
be set to the same value such as 1 bit or 4 bits. You can set the data bit width of the MMC by
configuring MMC_CTYPE and set the data bit width of the card by sending the

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-7

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

corresponding command. Figure 8-8 shows the block data format in 1-bit transfer mode and
Figure 8-9 shows the block data format in 4-bit transfer mode.
Figure 8-8 Block data format in 1-bit transfer mode
Start bit

DAT0

End bit
1st byte
data

0

b7

b6

b5

2nd byte
data

b4

b3

b2

3rd byte
data

b1

nth byte
data

...

b0

b7

b6

b5

b4

b3

b2

CRC

b1

1

b0

Figure 8-9 Block data format in 4-bit transfer mode
Start bit

End bit

DAT3

0

b7

b3

b7

b3

b7

b3

...

b7

b3

CRC

1

DAT2

0

b6

b2

b6

b2

b6

b2

...

b6

b2

CRC

1

DAT1

0

b5

b1

b5

b1

b5

b1

...

b5

b1

CRC

1

DAT0

0

b4

b0

b4

b0

b4

b0

...

b4

b0

CRC

1

8.5 Operating Mode
8.5.1 Pin Multiplexing
The external pins of the MMC are multiplexed with the GPIO. Therefore, before using the
MMC, you need to enable the MMC function of the corresponding pins by configuring IO
config registers. For details, see the configuration description of reg28 to reg34.

8.5.2 Clock Gating
When the software completes the current command or data transfer and does not start a new
data transfer, the MMC clock can be disabled if the MMC is idle.
To disable the MMC clock, do as follows:
Step 1 Read the MMC_STATUS register.
Step 2 If MMC_STATUS[7:4] and MMC_STATUS[10] are 0, write 0 to MMC_CTRL to mask the
controller interrupt and the DMA request enable interrupt, and then go to Step 3. If either
MMC_STATUS[7:4] or MMC_STATUS[10] is not 0, wait and then go to Step 1.

8-8

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Step 3 Set SC_PERDIS[mmcclkdis] to 1 to disable the controller clock.
Step 4 If you want to enable the clock again, write 1 to SC_PEREN[mmcclken].
----End

8.5.3 Soft Reset
When the MMC fails to return to the idle state due to the exception occurred during data
transfer, you can soft-reset the MMC by configuring SC_PERCTRL8[mmc_srst]. By default,
the reset value 1 indicates that soft reset is cleared. In addition, you can query
MMC_STATUS[data_fsm_busy] to check whether the MMC is idle. It is recommended to
soft-reset the MMC after a card is inserted during hot-plugging.

8.5.4 Clock Configuration
Configuring the Working Clock
Before the MMC is used, a proper working clock frequency needs to be configured. The
working clock of the MMC is generated by dividing the frequency of the PLL clock. The
frequency relationship between working clock of the MMC and the PLL output clock is as
follows:
FMMMCLK = FPLL/[(2 x mmcclk_sel) + 8]
Where, mmcclk_sel indicates the frequency divider that is equal to the configured value of
SC_PERCTRL9[mmcclk_sel]; FMMMCLK indicates the frequency of MMMCLK that must be
less than 50 MHz.

Configuring the Interface Clock
The clock frequencies vary according to the status of cards that comply with different
protocols. Therefore, the MMC provides an internal even frequency-division device that
generates proper interface clock frequencies by dividing the frequency of the working clock.
The frequency relationship between the working clock MMMCLK and the interface clock
MMC_CCLK of the MMC is as follows:
FMMC_CCLK = FMMCCLK/(2 x clk_divider)
Where, clk_divider indicates the frequency divider that it is equal to the configured value of
MMC_CLKDIV[clk_divider].
Before changing the clock frequency of a card, ensure that no data or command is being
transferred for any program. To guarantee a glitch-free output clock for the MMC, do as
follows when changing the clock frequency of the card:
Step 1 Disable the interface clock.
Set the MMC_CLKENA register to 0x0000_0000, set MMC_CMD[start_cmd],
MMC_CMD[update_clk_regs_only], and MMC_CMD[wait_prvdata_complete] to 1, and
then wait until MMC_CMD[start_cmd] is cleared automatically.
Step 2 Configure the divider.
Configure the MMC_CLKDIV register according to the required clock frequency, set
MMC_CMD[start_cmd] and MMC_CMD[update_clk_regs_only] to 1, and then wait until
MMC_CMD[start_cmd] is cleared automatically.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-9

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Step 3 Enable the interface clock again.
Set the MMC_CLKENA register to 0x0000_0001, set MMC_CMD[start_cmd] and
MMC_CMD[update_clk_regs_only] to 1, and then wait until MMC_CMD[start_cmd] is
cleared automatically.
----End

z

The values of the clock configuration registers MMC_CLKDIV and MMC_CLKENA are
loaded only when MMC_CMD[start_cmd] and MMC_CMD[update_clk_only] are set to 1.
After the values are loaded successfully, the MMC clears MMC_CMD[start_cmd]
automatically. In this case, if a command is being executed, a hardware locked error (HLE)
interrupt is generated. If an HLE interrupt is generated, repeat the preceding operations.

z

Note that when a command is being executed or data is being transferred, the clock
parameters of the card cannot be changed.

8.5.5 Initialization
Before exchanging commands and data between the MMC and the card, you must initialize
the MMC. To initialize the MMC, do as follows:
Step 1 Configure the IO config registers to enable the MMC function of the corresponding pins. For
details, see section 8.5.1 "Pin Multiplexing."
Step 2 Configure the frequency of the MMC working clock. For details, see the description of
Configuring the Working Clock in section 8.5.4 "Clock Configuration."
Step 3 After the card is powered on and the command and data signal lines are pulled up and become
stable, soft-reset the MMC. For details, see section 8.5.3 "Soft Reset."
Step 4 Clear interrupts. Set all bits of the MMC_RINTSTS register to 1 to clear the raw interrupt
status bit.
Step 5 Configure the interrupt mask register. Set all bits of MMC_INTMASK to 1 to enable all the
interrupt sources. If data is transferred in DMA mode, set MMC_INTMASK[txdr_int_mask]
and MMC_INTMASK[rxdr_int_mask] to 0 to mask the transmit FIFO data request (TXDR)
interrupt and receive FIFO data request (RXDR) interrupt.
Step 6 Set MMC_CTRL[int_enable] to 1 to enable the interrupt function of the MMC. If data is
transferred in DMA mode, set MMC_CTRL[dma_enable] to 1 to enable the DMA request
function of the MMC.
Step 7 Configure the timeout parameter register MMC_TMOUT.
Step 8 Configure the FIFO parameter register MMC_FIFOTH, including the burst size, receive
threshold rx_wmark, and transmit threshold tx_wmark during DMA transfer.
----End
After the preceding steps, the interface clock can be configured and commands can be sent to
the card.

8-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

8.5.6 Non-Data Transfer Commands
After sending a command, the MMC sets MMC_RINTSTS[cmd_done] to 1 if it receives any
response such as the error response, valid response, and response timeout (RTO). Generally,
short responses are stored in the MMC_RESP0 register and long responses are stored in the
registers MMC_RESP0 to MMC_RESP3. MMC_RESP3[31] is the most significant bit
(MSB), whereas MMC_RESP0[0] is the least significant bit (LSB). After a command is sent,
its error status is reflected by the response command and the corresponding error bit of the
MMC_RINTSTS register.
To send a non-data transfer command, do as follows:
Step 1 Configure the corresponding command parameters of MMC_CMDARG.
Step 2 Configure the MMC_CMD register. For details, see Table 8-3.
Step 3 Wait for the execution of the command by the MMC. If the command is executed
successfully, the MMC clears MMC_CMD[start_cmd] automatically.
Step 4 Query MMC_RINTSTS[hle_int_status] to check whether an HLE interrupt is generated.
Step 5 Wait until the command is executed. The MMC sets MMC_RINTSTS[cmd_done] to 1
regardless of whether the MMC receives a response or the response times out.
Step 6 Check whether there is any response exception and read the response value if necessary. Read
the registers MMC_RINTSTS[rto_int_status], MMC_RINTSTS[rcrc_int_status], and
MMC_RINTSTS[re_int_status] to check for RTO, response CRC error (RCRC), or response
error (RE).
----End

The values of the command registers MMC_BYTCNT, MMC_BLKSIZ, MMC_CMDARG,
and MMC_CMD can be loaded only when MMC_CMD[start_cmd] is set to 1 and
MMC_CMD[update_clk_only] is set to 0. After the values are loaded successfully, the MMC
clears MMC_CMD[start_cmd] automatically. If a command is being executed, an HLE
interrupt is generated. In this case, repeat the preceding operations. When a non-data transfer
command is executed, the values of MMC_BYTCNT and MMC_BLKSIZ are ignored.
Table 8-3 Reference configuration of MMC_CMD for non-data transfer command
Parameter

Value

Description

start_cmd

1

Command transmit start bit

update_clk_regs_only

0

Non-clock parameter update command

data_expected

0

Non-data transfer command

cmd_index

Cmd index

Command index

send_initialization

0

This bit is set to 1 when the command is a card
reset command, for example, CMD0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-11

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Parameter

Value

Description

stop_abort_cmd

0

This bit is set to 1 when the command is a data
transfer stop command, for example, CMD12.

rsponse_length

0

This bit is set to 1 when the response is a long
response.

rsponse_expect

1

This bit is set to 0 when a command is not
responded, for example, CMD0, CMD4, and
CMD15.

wait_prvdata_complete

0 or 1

Before sending a command, the MMC must wait
until the current data transfer command is
executed. It is recommended to set this bit to the
fixed value 1 except that the command is used for
querying the card status or stopping the current
data transfer during data transfer.

check_response_crc

0 or 1

CRC bit that indicates whether the MMC checks
responses

8.5.7 Reading Single-Block or Multiple-Block Data
To read single-block or multiple-block data, do as follows:
Step 1 Write 1 to MMC_CTRL[fifo_reset] to reset the FIFO pointer, and then query and wait until
this bit is cleared automatically.
Step 2 Write the count of bytes to be transmitted to the MMC_BYTCNT register.
Step 3 Write the block size to the MMC_BLKSIZ register.
Step 4 Write the start address for reading data to the MMC_CMDARG register.
Step 5 Configure the MMC_CMD register according to the parameters listed in Table 8-4. For the
SD card and MMC card, run CMD17 or CMD18 to read single-block or multiple-block data;
for the SDIO card, run CMD53 to read single-block or multiple-block data. After the
MMC_CMD register is configured, the MMC starts to run the command. After the command
is sent to the bus, a cmd_done interrupt is generated.
Step 6 Check MMC_RINTSTS[rxdr_int_status] and MMC_RINTSTS[hto_int_status]. If both or
either of them is 1, read data from the FIFO by reading the MMC_DATA register, so the
MMC can receive the subsequent data. In addition, check data error interrupts by querying
MMC_RINTSTS[7], MMC_RINTSTS[9], MMC_RINTSTS[13], and MMC_RINTSTS[15].
If necessary, send a stop command to stop the data transfer through the program.
Step 7 When MMC_RINTSTS[dto_int_status] is 1, it indicates that data transfer is complete. In this
case, read the remaining data from the FIFO by reading the MMC_DATA register.
Step 8 If MMC_CMD[send_auto_stop] is set to 1 when the command is executed, the MMC
automatically sends a stop command to stop the data transfer. For details, see section 8.5.11
"Auto-Stop Configuration."
----End

8-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Table 8-4 Reference configuration of MMC_CMD during the process of reading single-block or
multiple-block data
Parameter

Value

Description

start_cmd

1

Command transmit start bit

update_clk_regs_only

0

Non-clock parameter update command.

card_number

0

–

send_initialization

0

This bit is set to 1 when the command is a card
reset command, for example, CMD0.

stop_abort_cmd

0

This bit is set to 1 when the command is a data
transfer stop command, for example, CMD12.

send_auto_stop

0 or 1

For details, see section 8.5.11 "Auto-Stop
Configuration."

transfer_mode

0

Transfer by blocks

read_write

0

Read data from the card

rsponse_length

0

All the responses to data commands are short
responses.

data_expected

1

Data transfer command

rsponse_expect

1

This bit is set to 0 when a command is not
responded, for example, CMD0, CMD4, and
CMD15.

cmd_index

Cmd index

Command index

wait_prvdata_complete

0 or 1

Before sending a command, the host must wait
until the current data transfer command is
executed. It is recommended to set this bit to the
fixed value 1 except that the command is used
for querying the card status or stopping the
current data transfer.

check_response_crc

0 or 1

CRC bit that indicates whether the MMC checks
responses

Default

8.5.8 Writing Single-Block or Multiple-Block Data
To write single-block or multiple-block data, do as follows:
Step 1 Write 1 to MMC_CTRL[fifo_reset] to reset the FIFO pointer, and then query and wait until
this bit is cleared automatically.
Step 2 Write the count of bytes to be transmitted to the MMC_BYTCNT register.
Step 3 Write the block size to the MMC_BLKSIZ register.
Step 4 Write the start address for storing data to the MMC_CMDARG register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-13

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Step 5 Write data to the FIFO by writing the MMC_DATA register. The FIFO should be written to
full at the very beginning.
Step 6 Configure the MMC_CMD register according to the parameters listed in Table 8-5. For the
SD and MMC cards, run CMD24 or CMD25 to write single-block or multiple-block data; for
the SDIO card, run CMD53 to write single-block or multiple-block data.
Step 7 Check MMC_RINTSTS[txdr_int_status] and MMC_RINTSTS[hto_int_status]. If both or
either of them is 1, write to MMC_DATA to fill data to the FIFO. In addition, detect the data
error interrupt by querying MMC_RINTSTS[7], MMC_RINTSTS[9], MMC_RINTSTS[13],
and MMC_RINTSTS[15]. If necessary, send a stop command to stop the data transfer through
the program. When MMC_RINTSTS[dto_int_status] is 1, it indicates that the data transfer is
complete.
Step 8 If MMC_CMD[send_auto_stop] is set to 1 when the command is executed, the MMC
automatically sends a stop command to stop the data transfer. For details, see section 8.5.11
"Auto-Stop Configuration."
Step 9 Query and wait until the value of MMC_STATUS[data_busy] is changed from 1 to 0.
----End
Table 8-5 Reference configuration of MMC_CMD during the process of writing single-block or
multiple-block data
Parameter

Value

Description

start_cmd

1

Command transmit start bit

update_clk_regs_only

0

Non-clock parameter update command.

card_number

0

–

send_initialization

0

This bit is set to 1 when the command is a
card reset command, for example, CMD0.

stop_abort_cmd

0

This bit is set to 1 when the command is a
data transfer stop command, for example,
CMD12.

send_auto_stop

0 or 1

For details, see section 8.5.11 "Auto-Stop
Configuration."

transfer_mode

0

Transfer by blocks

read_write

1

Write data to the card.

rsponse_length

0

All the responses to data commands are short
responses.

data_expected

1

Data transfer command

rsponse_expect

1

This bit is set to 0 when a command is not
responded, for example, CMD0, CMD4, and
CMD15.

cmd_index

Cmd index

–

Default

8-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Parameter

Value

Description

wait_prvdata_complete

0 or 1

Before sending a command, the host must
wait until the current data transfer command
is executed. It is recommended to set this bit
to the fixed value 1 except that the command
is used for querying the card status or
stopping the current data transfer.

check_response_crc

0 or 1

CRC bit that indicates whether the MMC
checks responses

8.5.9 Reading and Writing Stream Data
The processes of reading and writing stream data are the same as those of reading and writing
block data, except that the MMC_CMD[transfer_mode] needs to be set to 1. During stream
data transfer, the auto-stop function of the MMC is required..

8.5.10 Transferring Data in DMA Mode
Before the data is transferred in DMA mode, MMC_CMD[dma_enable] must be set to 1 to
enable the DMA function of the MMC. In addition, MMC_INTMASK[txdr_int_mask] and
MMC_INTMASK[txdr_int_mask] must be set to 0 to mask the RXDR interrupt and TXDR
interrupt of the MMC.
To transfer data in DMA mode, do as follows:
Step 1 Reset the FIFO pointer.
Step 2 Configure MMC_BYTCNT, MMC_BLKSIZ, MMC_CMDARG, and MMC_CMD to start
the data transfer command.
Step 3 Allocate a DMA channel and configure the registers DMAC_CX_SRC_ADDR,
DMAC_CX_DEST_ADDR, DMAC_CX_CONTROL, and DMAC_CX_CONFIG of the
channel. If a DMA linked list is used, configure DMAC_CX_LLI of the channel and then
enable the channel for data transfer.
Step 4 Query and wait until the DMA interrupt is reported. If a DMA interrupt is reported, it
indicates that the data transfer is complete.
Step 5 Check for the data transfer error interrupt and data transfer over (DTO) interrupt.
Step 6 Run the stop command and query MMC_STATUS[data_busy].
----End
Take the following precautions during data transfer:
z

When the card is read in non-DMA mode, the DTO interrupt is generated only when the
data transfer is complete. When all the data in the card is transmitted, some data may still
remain in the FIFO. The generation of the Rx_wmark interrupt depends on the count of
bytes remained in the FIFO. After a DTO interrupt is detected through software, read all
the data remained in the FIFO.

z

When the card is read in DMA mode, the DTO interrupt is generated only when the data
in all the FIFOs is written to the memory through the DMA module.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-15

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller
z

During data transfer, the data amount must be an integer multiple of the data bit width of
the FIFO. For example, if the data amount to be written to the card is 15 bytes, 16 bytes
need to be transmitted to the FIFO. Or, when the DMA mode is enabled, the DMA
module needs to be programmed for the 16-byte data transfer. MMC_BYTCNT, however,
can still be set to 15 through the program. In this case, only 15-byte data is transmitted to
the card. Similarly, when 15-bit data is read from the card, the host reads 16-byte data
from the FIFO.

8.5.11 Auto-Stop Configuration
When multiple-block data is read or written, a stop command is required to stop each data
transfer. The stop command can be sent in xx mode or through the auto-stop function of the
MMC. The auto-stop function is configured as follows:
During block data transfer, if MMC_CMD[send_auto_stop] is set to 1, the MMC
automatically sends a stop command after all the data is transferred, so the card can be
resumed to a specific state. The interrupt bit MMC_RINTSTS[auto_cmd_done] indicates
whether the stop command is executed. The corresponding response is stored in the
MMC_RESP1 register.
The auto-stop function is applied to the following scenarios:
z

SD card
Multiple block read/write, such as CMD18 and CMD25.

z

z

MMC card
−

Stream data read/write.

−

Multiple block read/write in open-ended mode, such as CMD18 and CMD25.

−

The auto-stop function is not required during multiple block read/write in predefined
block count mode. Before CMD18 and CMD25 are sent, CMD23 is sent to specify
the number of blocks to be transferred.

SDIO card
The auto-stop function is not required.

8.5.12 Stopping or Pausing Data Transfer
The stop command is used to break the data transfer between the MMC and the card. The
abort command is used to break the I/O data transfer (for SDIO_IOONLY or SDIO_COMBO
only). The two commands are used as follows:
z

Stop command
This command can be sent any time during data transfer, because it is used to stop the
data transfer. Therefore, you need to set MMC_CMD[5:0] to CMD12, set
MMC_CMD[14] to 1, and set MMC_CMD[13] to 0.

z

Abort command
This command is available for SDIO_IOONLY or SDIO_COMBO only. To abort the
data transfer, you need to configure the CCCR[ASx] bit of the SDIO card by running the
CMD52 command.

8.5.13 Suspend and Resume Operations
An SDIO card can contain up to seven functional devices. The MMC can suspend the data
transfer of a device by performing the suspend operation. Thus, the SD bus can be spared for

8-16

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

another device with higher priority. After the device with higher priority transfers data, the
MMC can resume the suspended data transfer of the previous device.
The suspend and resume operations are enabled by configuring the corresponding bits of the
CCCR register of the SDIO card. Additionally, the CCCR register is written or read by
running the CMD52 command.
To perform a suspend operation, do as follows:
Step 1 Query the SBS bit of the CCCR register to check whether the SDIO card supports suspend
and resume operations.
Step 2 Query the FSx and bus status (BS) bits of the CCCR register to check whether the functional
device to be suspended is transferring data. Note: If the BS bit is 1, it indicates that the device
specified by the FSx bit is transferring data.
Step 3 Set the bus release (BR) bit of the CCCR register to 1 to suspend the current data transfer.
Step 4 Check whether the BS bit and BR bit of the CCCR register are cleared. The BS bit is 1 when
the data bus is being used, whereas the BR bit is always 1 before the bus is released
completely. When both the BR bit and BS bit are 0, the data transfer of the selected device is
suspended successfully.
Step 5 If a read operation is suspended, set MMC_CTRL[abort_read_data] to 1 to reset the data
transfer function of the MMC after the suspend operation is performed successfully. After
reset, the MMC_CTRL[abort_read_data] bit is cleared automatically.
Step 6 Read MMC_TCBCNT to query the number of transferred bytes.
----End
To perform a resume operation, do as follows:
Step 1 Query the transfer status of the card to check whether the bus is idle.
Step 2 If the card is disconnected, run the CMD7 command to select it. The card status can be
queried by running the CMD52 or CMD53 command.
Step 3 Check whether the device to be resumed is ready for data transfer. If the RFx bit of the CCCR
register is 1, it indicates that the device is ready.
Step 4 Run the CMD52 command to write the device ID to the FSx bit of the CCCR register to
resume the data transfer. Enable the controller to start data transfer when sending the CMD52
command. To be specific, write the block size to the MMC_BLKSIZ register and write the
amount of remaining data to be transferred to the MMC_BYTCNT register. Table 8-6 shows
the configuration of the MMC_CMDARG register. The configuration of the MMC_CMD
register is similar to that in block transfer.
Step 5 The data transfer is resumed after the CMD52 command is sent successfully. Read the resume
data flag (DF) bit. If this bit is 1, it indicates that data transfer starts when the transfer function
is resumed. If this bit is 0, it indicates that no data is ready for transferring.
Step 6 If the DF bit is 0, the MMC generates a data timeout error interrupt a period of time later
during the data read operation.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-17

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Table 8-6 Reference configuration of MMC_CMDARG during a resume operation
MMC_CMDARG

Value

Description

bit[31]

1

Read/Write flag

bit[30:28]

0, for CCCR access

Functional device ID

bit[27]

1, read after write

Real-time flag

bit[26]

–

–

bit[25:9]

0x0D

Register address

bit[8]

–

–

bit[7:0]

ID of the functional device
that is resumed

Write data

8.5.14 Read Wait Operation
The read wait operation is designed for the SDIO card to abort the data transfer of the current
functional device by sending related commands. The MMC can determine how long the data
transfer is paused as required. To perform the read wait operation, do as follows:
Step 1 Check whether the card supports the read wait operation and read the SRW bit of the CCCR
register by running the CMD52 command. If the SRW bit is 1, it indicates that all the
functional devices of the card support the read wait operation.
Step 2 If the card supports this operation, set MMC_CTRL[read_wait] to 1.
Step 3 If you want to resume the data transfer, clear MMC_CTRL[read_wait].
----End

8.6 Register Summary
Table 8-7 lists the MMC registers.
Table 8-7 Summary of the MMC registers (base address: 0x1003_0000)

8-18

Offset Address

Register

Description

Page

0x000

MMC_CTRL

Control register

8-19

0x004

RESERVED

Reserved

–

0x008

MMC_CLKDIV

Clock divider register

8-21

0x00C

RESERVED

Reserved

–

0x010

MMC_CLKENA

Clock enable register

8-21

0x014

MMC_TMOUT

Timeout parameter register

8-22

0x018

MMC_CTYPE

Interface bit width register

8-23

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Offset Address

Register

Description

Page

0x01C

MMC_BLKSIZ

Block size register

8-23

0x020

MMC_BYTCNT

Transfer data byte count register

8-23

0x024

MMC_INTMASK

Interrupt mask register

8-24

0x028

MMC_CMDARG

Command parameter register

8-26

0x02C

MMC_CMD

Command register

8-26

0x030

MMC_RESP0

Command response register 0

8-28

0x034

MMC_RESP1

Command response register 1

8-28

0x038

MMC_RESP2

Command response register 2

8-29

0x03C

MMC_RESP3

Command response register 3

8-29

0x040

MMC_MINTSTS

Interrupt status register

8-30

0x044

MMC_RINTSTS

Raw interrupt status register

8-31

0x048

MMC_STATUS

Status register

8-34

0x04C

MMC_FIFOTH

FIFO parameter register

8-35

0x050

MMC_CARDSTATUS

Card detection status register

8-37

0x054–0x058

RESERVED

Reserved

–

0x05C

MMC_TCBCNT

Interface transfer count register

8-37

0x060

MMC_TBBCNT

FIFO transfer count register

8-38

0x064–0xFF

RESERVED

Reserved

–

0x100

MMC_DATA

Data register

8-38

8.7 Register Description
MMC_CTRL
MMC_CTRL is the MMC control register. It controls the MMC globally, including interrupt
global enable control and DMA enable control.

Bit

Offset Address

Register Name

Total Reset Value

0x000

MMC_CTRL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

8-19

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

reserved

0

fifo_reset

0

reserved

0

int_enable

0

dma_enable

0

read_wait

Reset 0

abort_read_data

reserved

send_irq_response

Name

dma_reset

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

0

0

0

0

Bits

Access

Name

Description

[31:9]

-

reserved

Reserved. These bits are 0 by default. The value 1 cannot be
written to these bits.
Reset control bit by reading the state machine.
0: default hold value

[8]

RW

abort_read_data

1: If the suspend operation is performed to suspend the ongoing
data read transfer, this bit is enabled through software after the
suspend operation is complete. In this way, the MMC is restored to
the idle state from the data transfer state (waiting for the next data
block). After the MMC is restored to the idle state, this bit is
cleared automatically.
0: default hold value
1: An auto interrupt request (IRQ) response is sent.
This bit is automatically cleared after the response is sent.

[7]

RW

send_irq_response To wait for the MMC interrupt, the MMC sends the CMD40
response and waits for the interrupt response from the MMC. In
addition, if you do not want the MMC to keep in the interrupt wait
state, enable this bit to send the CMD40 response. Then, the MMC
is restored to the idle state.
0: clear read wait

[6]

RW

read_wait

1: enable read wait
This bit indicates that a read wait command is sent to the SDIO
card.
DMA transfer mode enable bit.
0: disabled

[5]

RW

dma_enable

1: enabled
Even if the DMA mode is enabled, the CPU can still read or write
to the FIFO. In practice, this situation should be avoided, because
if the DMA and CPU read and write to the FIFO at the same time,
the MMC cannot arbitrate their priorities.
Global interrupt enable bit.
0: disabled

[4]

RW

int_enable

1: enabled
The interrupt output is valid only when this bit is valid and the
interrupt source is enabled.

[3]

8-20

-

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

Function reset control bit of the DMA interface.
0: not reset
[2]

RW

dma_reset

1: reset
Write 1 to enable reset. After reset, this bit is cleared
automatically.
FIFO reset control bit.
0: Do not reset the FIFO read/write pointer.

[1]

RW

fifo_reset

1: Reset the FIFO read/write pointer.
Write 1 to enable reset. After reset, this bit is cleared
automatically.

[0]

-

Reserved. This bit is 0 by default. The value 1 cannot be written to
this bit.

reserved

MMC_CLKDIV
MMC_CLKDIV is the divider register of the interface clock. It controls the frequency of the
interface clock. The frequency relationship between the working clock MMMCLK and the
interface clock MMC_CCLK of the MMC is as follows: FMMC_CCLK = FMMMCLK/(2 x
clk_divider). The value of this register is loaded only when MMC_CMD[start_cmd] and
MMC_CMD[update_clk_only] are set to 1.

Bit

Offset Address

Register Name

Total Reset Value

0x008

MMC_CLKDIV

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

clk_divider
0

0

0

Bits

Access

Name

Description

[31:8]

-

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Even frequency divider of the interface clock.
[7:0]

RW

clk_divider

For example, 0x0 indicates no frequency division, 0x1 indicates
that the frequency divider is 2 and 0xFF indicates that the
frequency divider is 510.

MMC_CLKENA
MMC_CLKENA is the MMC interface clock enable register. The value of this register is
loaded only when MMC_CMD[start_cmd] and MMC_CMD[update_clk_only] are set to 1.

Bit

Offset Address

Register Name

Total Reset Value

0x010

MMC_CLKENA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0

8-21

cclk_low_power

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

cclk_enable

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

reserved

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Low-power control of the card.
0: non-lower-power mode
[16]

RW

cclk_low_power

[15:1]

-

reserved

1: low-power mode. When the card is idle, the MMC disables the
interface clock automatically. This function, however, is only
applicable to the MMC card and SD card. For the SDIO card, the
interface clock cannot be disabled; otherwise, the SIDO interrupt
cannot be detected.
Reserved.
Clock enable control of the card.

[0]

RW

cclk_enable

0: disabled
1: enabled

MMC_TMOUT
MMC_TMOUT is the timeout parameter register. It is used to configure the timeout
parameters during the data read operation and command response.

Bit

Offset Address

Register Name

Total Reset Value

0x014

MMC_TMOUT

0xFFFF_FF40

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

data_timeout

Reset 1

8-22

8

1

1

1

1

1

1

1

1

1

1

1

1

1

5

4

3

2

1

0

0

0

response_timeout
1

1

1

1

1

1

1

1

1

1

0

1

0

0

0

0

Bits

Access

Name

Description

[31:8]

RW

data_timeout

Read data timeout parameter. It also functions as the data
starvation interrupt timeout parameter. It is in the unit of clock
cycle and the recommended value is 0xFF_FFFF.

[7:0]

RW

response_timeout

Response timeout parameter. It is in the unit of clock cycle and the
recommended value is 0xFF.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

MMC_CTYPE
MMC_CTYPE is the interface bit width register. It is used to configure the working bit width
mode of the MMC, that is, 1-bit or 4-bit mode. The bit widths of the controller and the card
must be the same.
Register Name

Total Reset Value

0x018

MMC_CTYPE

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
card_width

Bit

Offset Address

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved. Note that the value 1 cannot be written to bit 16.

0

Bus width of the card interface.
[0]

RW

card_width

0: 1 bit
1: 4 bits

MMC_BLKSIZ
MMC_BLKSIZ is the block size register. The block size of the SD card or MMC card is 512
bytes, whereas the block size of the SDIO card is customized.

Bit

Offset Address

Register Name

Total Reset Value

0x01C

MMC_BLKSIZ

0x0000_0200

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

block_size
0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

Bits

Access

Name

Description

[31:16]

-

reserved

Reserved.

[15:0]

RW

block_size

Block size configuration. For example, if these bits are set to
0x0200, it indicates that the block size is 512 bytes.

MMC_BYTCNT
MMC_BYTCNT is the transfer data byte count register. If the count of transferred data bytes
is equal to the block size, the data transfer is single-block transfer. If the count of transferred
data bytes is equal to an integer multiple n (n ≥ 2) of the block size, the data transfer is

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-23

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

multiple-block transfer. Note that the count of transferred data bytes must be an integer
multiple of the block size.

Bit

Offset Address

Register Name

Total Reset Value

0x020

MMC_BYTCNT

0x0000_0200

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

byte_count

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

Bits

Access

Name

Description

[31:0]

RW

byte_count

Count of the transferred data bytes. If the bits are set to 0x0200, it
indicates that the transferred data is 512 bytes. In block transfer,
the value must be set to an integer multiple of the block size.

MMC_INTMASK
MMC_INTMASK is the interrupt mask register. It is used to mask the interrupt requests of
the corresponding bits of the MMC_RINTSTS register.

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

reserved

0

6

re_int_mask

0

7

cd_int_mask

0

8

dto_int_mask

0

hto_int_mask

0

drto_int_mask

0

hle_int_mask

0

frun_int_mask

Reset 0

sbe_int_mask

reserved

acd_int_mask

Name

ebe_int_mask

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

txdr_int_mask

0x0000_0000

rxdr_int_mask

MMC_INTMASK

rcrc_int_mask

0x024

rto_int_mask

Total Reset Value

dcrc_int_mask

Register Name

sdio_int_mask

Bit

Offset Address

0

0

0

0

0

0

0

0

0

SDIO interrupt mask.
[16]

RW

sdio_int_mask

0: masked
1: not masked
End-bit error (EBE) interrupt mask.

[15]

RW

ebe_int_mask

0: masked
1: not masked
Auto command done (ACD) interrupt mask.

[14]

RW

acd_int_mask

0: masked
1: not masked

[13]

8-24

RW

sbe_int_mask

Start-bit error (SBE) interrupt mask.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

0: masked
1: not masked
HLE interrupt mask.
[12]

RW

hle_int_mask

0: masked
1: not masked
FIFO underrun/overrun error (FRUN) interrupt mask.

[11]

RW

frun_int_mask

0: masked
1: not masked
Data starvation-by-host timeout (HTO) interrupt mask.

[10]

RW

hto_int_mask

0: masked
1: not masked
Data Read Timeout (DRTO) interrupt mask.

[9]

RW

drto_int_mask

0: masked
1: not masked
RTO interrupt mask.

[8]

RW

rto_int_mask

0: masked
1: not masked
Data CRC error (DCRC) interrupt mask

[7]

RW

dcrc_int_mask

0: masked
1: not masked
RCRC interrupt mask.

[6]

RW

rcrc_int_mask

0: masked
1: not masked
RXDR interrupt mask.

[5]

RW

rxdr_int_mask

0: masked
1: not masked
TXDR interrupt mask.

[4]

RW

txdr_int_mask

0: masked
1: not masked
DTO interrupt mask.

[3]

RW

dto_int_mask

0: masked
1: not masked
Command done (CD) interrupt mask.

[2]

RW

cd_int_mask

0: masked
1: not masked
RE interrupt mask.

[1]

RW

re_int_mask

0: masked
1: not masked

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-25

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

[0]

-

reserved

Reserved.

MMC_CMDARG
MMC_CMDARG is the command parameter register. MMC_CMD[5:0] specify the
command parameters corresponding to command indexes. For example, during the CMD17
single-block data read operation, MMC_CMD[5:0] = 17 indicates that the MMC_CMDARG
register must be set to the card space address. For details about the command parameter
corresponding to each command index, see the SD, MMC, and SDIO protocols.

Bit

Offset Address

Register Name

Total Reset Value

0x028

MMC_CMDARG

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

cmd_arg

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

31:0

RW

cmd_arg

Configuration of command parameters.

MMC_CMD
MMC_CMD is the command register. It is used to specify the command features, including
the command index, response type, whether to perform data transfer, direction of data transfer,
and transfer mode.

0x0000_0000

Bits

Access

0

0

0

Name

0

0

0

0

0

0

0

0

read/write

0

data_transfer_expected

0

transfer_mode

0

send_auto_stop

0

stop_abort_cmd

0

card_number

wait_prvdata_complete

Reset 0

reserved

send_initialization

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

8

7

6

response_expect

MMC_CMD

response_length

0x02C

check_repsonse_crc

Total Reset Value

update_clk_reg_only

Name

Register Name

start_cmd

Bit

Offset Address

0

0

0

5

4

3

2

1

0

cmd_index

0

0

0

0

0

0

Description

Start bit of command execution or interface clock parameter load.
[31]

8-26

RW

start_cmd

This bit is used together with the update_clk_reg_only bit. When
update_clk_reg_only is 0, this bit is set to 1 to start to run
commands. When update_clk_reg_only is 1, this bit is set to 0 to
start to load interface clock parameters.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

When commands are executed or clock parameters are loaded, this
bit is cleared automatically. When the bit is 1, the registers related
to the clock and command are not allowed to modify. Otherwise,
the HLE interrupt is generated.
[30:22]

-

reserved

Reserved. The value 1 cannot be written to these bits.
0: normal command sequence
1: Do not send any command but reload the values of the registers
MMC_CLKDIV and MMC_CLKENA that are controlled by the
interface clock. If it is not required to send commands to the card,
this bit is used to adjust the frequency of the interface clock and
disable or enable the interface clock.

[21]

RW

update_clk_reg_onl
In normal command sequence, that is, when this bit is set to 0, the
y
values of the following registers are loaded by the MMC:
MMC_CMD, MMC_CMDARG, MMC_TMOUT,
MMC_CTYPE, MMC_BLKSIZ, and MMC_BYTCNT., Then, the
MMC adds the new register values to new commands.
If this bit is set to 1, commands are not sent to the card and no CD
interrupt is generated.

[20:16]

RW

card_number

Number of the card that is in use. These bits should be set to 0.
0: Do not transmit the initialization sequence before transmitting a
command.

[15]

RW

1: Transmit the initialization sequence before transmitting a
send_initialization command (80 clock cycles).
After the card is powered on, it takes 80 clock cycles to initialize.
Therefore, this bit must be configured when the first command is
sent to the card.
Reset control bit by reading and writing the state machine.
0: no impact

[14]

RW

stop_abort_cmd

1: When the stop command is sent to abort the ongoing data
transfer abnormally, the MMC is restored from the data transfer
state to the idle state if this bit is set to 1.
0: Send a command immediately even if the previous data transfer
is not complete.

[13]

RW

1: Send a command only when the previous data transfer is
wait_prvdata_comp
complete.
lete
If this bit is set to 0 during the transmission of a command, the
card state can be read or the data transfer can be aborted during
data transfer.
0: Do not send the stop command after the data transfer is
complete.
1: Send the stop command after the data transfer is complete.

[12]

RW

send_auto_stop

After the MMC is enabled, it sends the stop command
automatically at the end of each data transfer.
The stop command is not required in predefined block count mode
and cmd53 mode.
In open-ended transfer mode, however, the stop command is

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-27

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

necessary.
In non-data transfer mode, this bit is ignored.
0: This bit is used for the block read/write command.
[11]

RW

transfer_mode

1: This bit is used for stream data read/write command.
In non-data transfer mode, this bit is ignored.
0: Read data from the card.

[10]

RW

1: Write data to the card.

read/write

In non-data transfer mode, this bit is ignored.
[9]

data_transfer_expec 0: non-data command
ted
1: data command

RW

0: Do not check the command response CRC.
[8]

1: Check the command response CRC
check_repsonse_crc No valid CRC is returned after some commands are responded. To

RW

forbid the MMC to perform CRC, the software needs to disable
this function for the preceding commands.
[7]

RW

response_length

[6]

RW

response_expect

[5:0]

RW

cmd_index

0: short response command
1: long response command
0: command without response
1: command with response
Command index

MMC_RESP0
MMC_RESP0 is the command response register 0.

Bit

Offset Address

Register Name

Total Reset Value

0x030

MMC_RESP0

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

response0

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

response 0

bit[39:8] of a 48-bit short response or bit[31:0] of a 136-bit long
response.

MMC_RESP1
MMC_RESP1 is command response register 1.

8-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

8 MMC/SD/SDIO Controller

Offset Address

Register Name

Total Reset Value

0x034

MMC_RESP1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

response1

Reset 0

0

0

Bits

0

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

Description

Bit[63:32] of a long response or the response to the auto-stop
command.
[31:0]

RO

When the MMC transmits the auto-stop command, bit[39:8] of the
response are stored in this register. The response to the previous
command is still stored in the MMC_RESP0 register. The autostop command is used only for data transfer and the corresponding
responses are always short responses.

response1

MMC_RESP2
MMC_RESP2 is command response register 2.

Bit

Offset Address

Register Name

Total Reset Value

0x038

MMC_RESP2

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

response2

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

response2

Bit[95:64] of a long response.

0

0

MMC_RESP3
MMC_RESP3 is command response register 3.

Bit

Offset Address

Register Name

Total Reset Value

0x03C

MMC_RESP3

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

response3

Reset 0
Bits

0

0

0

0

Access

Issue 02 (2010-04-20)

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-29

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

[31:0]

RO

response3

Bit[127:96] of a long command response.

MMC_MINTSTS
MMC_MINTSTS is the masked interrupt status register.MMC_MINTSTS =
MMC_RINTSTS & MMC_INTMASK
An interrupt is reported only when MMC_RINTSTS, its corresponding bits, and
MMC_CTRL[int_enable] are 1.

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

re_int

0

6

reserved

0

7

cd_int

0

8

dto_int

0

hto_int

0

drto_int

0

hle_int

0

frun_int

Reset 0

sbe_int

reserved

acd_int

Name

ebe_int

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

txdr_int

0x0000_0000

rxdr_int

MMC_MINTSTS

rcrc_int

0x040

rto_int

Total Reset Value

dcrc_int

Register Name

sdio_int

Bit

Offset Address

0

0

0

0

0

0

0

0

0

Masked SDIO interrupt.
[16]

RO

sdio_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked EBE interrupt or write no CRC interrupt.

[15]

RO

ebe_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked ACD interrupt.

[14]

RO

acd_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked SBE interrupt.

[13]

RO

sbe_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked HLE interrupt.

[12]

RO

hle_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked FRUN interrupt.

[11]

RO

frun_int

0: No interrupt is generated.
1: An interrupt is generated.

[10]

8-30

RO

hto_int

Masked HTO interrupt.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

0: No interrupt is generated.
1: An interrupt is generated.
Masked DRTO interrupt.
[9]

RO

drto_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked RTO interrupt.

[8]

RO

rto_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked DCRC interrupt.

[7]

RO

dcrc_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked RCRC interrupt.

[6]

RO

rcrc_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked RXDR interrupt.

[5]

RO

rxdr_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked TXDR interrupt.

[4]

RO

txdr_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked DTO interrupt.

[3]

RO

dto_int

0: No interrupt is generated.
1: An interrupt is generated.
Masked CD interrupt.

[2]

RO

0: No interrupt is generated.

cd_int

1: An interrupt is generated.
Masked RE interrupt.
[1]

RO

re_int

0: No interrupt is generated.
1: An interrupt is generated.

[0]

-

reserved

Reserved.

MMC_RINTSTS
MMC_RINTSTS is the raw interrupt status register. Writing 1 clears the corresponding bits
and writing 0 has no effect. That is, writing 1 clears interrupts.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-31

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:17]

-

reserved

Reserved.

0

0

0

0

5

4

3

2

1

0

reserved

0

6

re_int_status

0

7

cd_int_status

0

8

dto_int_status

0

hto_int_status

0

drto_int_status

0

hle_int_status

0

frun_int_status

Reset 0

sbe_int_status

reserved

acd_int_status

Name

ebe_int_status

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

txdr_int_status

0x0000_0000

rxdr_int_status

MMC_RINTSTS

rcrc_int_stattus

0x044

rto_int_status

Total Reset Value

dcrc_int_status

Register Name

sdio_int_status

Bit

Offset Address

0

0

0

0

0

0

0

0

0

Raw SDIO interrupt.
[16]

RW

sdio_int_status

0: No interrupt is generated.
1: An interrupt is generated.
Raw EBE interrupt.
0: No interrupt is generated.

[15]

RW

ebe_int_status

1: An interrupt is generated if an EBE error occurs during the read
operation or no data CRC state or a negative CRC state is returned
during the write operation.
Raw ACD interrupt.

[14]

RW

acd_int_status

0: No interrupt is generated.
1: An interrupt is generated when the MMC sends the auto-stop
command automatically.
Raw SBE interrupt.

[13]

RW

sbe_int_status

0: No interrupt is generated.
1: SBE interrupt when data is read from the card. In 4-bit mode, if
data does not contain a start bit, this interrupt is generated.
Raw HLE interrupt.

[12]

RW

hle_int_status

0: No interrupt is generated.
1: When hardware locks the values of certain registers, the MMC
still attempts to write to these registers.
Raw FRUN interrupt.

[11]

RW

frun_int_status

0: No interrupt is generated.
1: An interrupt is generated when the system writes data to a full
FIFO or the system reads data from an empty FIFO.
Raw HTO interrupt.
0: No interrupt is generated.

[10]

8-32

RW

hto_int_status

1: To avoid data loss, the output clock MMC_CCLK of the MMC
is disabled if the FIFO is empty when data is transmitted to the
card or the FIFO is full when data is received from the card. After
the clock is disabled, the data-starvation counter is enabled. If

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

counter overflows and the system does not write data to an empty
FIFO or read data from a full FIFO, an interrupt is generated. In
this case, the output clock is enabled again only when the system
reads and writes to the FIFO.
Raw DRTO interrupt.
[9]

RW

drto_int_status

0: No interrupt is generated.
1: data receive timeout interrupt.
Raw RTO interrupt.

[8]

RW

rto_int_status

0: No interrupt is generated.
1: command response timeout interrupt ( no response)
Raw DCRC interrupt.

[7]

RW

dcrc_int_status

0: No interrupt is generated.
1: data receive CRC error interrupt
Raw RCRC interrupt.

[6]

RW

rcrc_int_status

0: No interrupt is generated.
1: command response CRC error interrupt
Raw RXDR interrupt.
0: No interrupt is generated.

[5]

RW

rxdr_int_status

1: An interrupt is generated if the data amount in the FIFO is
above the read threshold rx_wmark of the FIFO when data is read
from the card. In DMA data transfer mode, this interrupt must be
masked.
Raw TXDR interrupt.
0: No interrupt is generated.

[4]

RW

txdr_int_status

1: An interrupt is generated if the data amount in the FIFO is equal
to or below the write threshold tx_wmark of the FIFO when data is
written to the card. In DMA data transfer mode, this interrupt must
be masked.
Raw DTO interrupt.

[3]

RW

dto_int_status

0: No interrupt is generated.
1: data transfer complete interrupt. This interrupt is generated even
if an SBE error, a CRC error, or a read data timeout error occurs.
Raw CD interrupt.
0: No interrupt is generated.

[2]

RW

cd_int_status

1: An interrupt is generated after a command is executed and a
response is received. This interrupt is generated even if a RE error,
an RCRC error, or an RTO error occurs.
Raw RE interrupt.

[1]

RW

re_int_status

[0]

-

reserved

Issue 02 (2010-04-20)

0: No interrupt is generated.
1: An interrupt is generated when an error occurs in the received
command response.
Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-33

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

MMC_STATUS
MMC_STATUS is the MMC status register. It reflects the working status of the MMC.

Bits

0

0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

data_3_status

0

data_busy

0

resp_index

data_fsm_busy

Reset 0

fifo_count

8

0

0

0

7

6

5

4

cmd_fsm_state

0

0

0

0

3

2

1

0

fifo_tx_watermark

0x0000_0000

fifo_rx_watermark

MMC_STATUS

fifo_full

0x048

fifo_empty

Total Reset Value

dma_ack

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

dma_req

Bit

Offset Address

0

0

0

0

Description

DMA request status bit.
[31]

RO

dma_req

0: The MMC does not request for DMA transfer.
1: The controller is requesting for DMA transfer.
DMA acknowledge status bit.

[30]

RO

dma_ack

0: The DMAC does not clear the MMC request.
1: The DMAC clears the MMC request.

[29:17]

RO

fifo_count

Count of existing data in the FIFO, in words.

[16:11]

RO

resp_index

Index of previous response, including the response to the auto-stop
command.
Status bit of the data transmit/receive state machine.

[10]

RO

data_fsm_busy

0: The data receive/transmit state machine is idle.
1: The data receive/transmit state machine is busy.
0: The card is idle.
1: The card is busy after data is written or erased.

[9]

RO

data_busy

This status bit reflects the inversion of the signal of card data line
data[0]. After data is written or erased, query this bit through
software. The next operation is allowed only after this bit is
changed from 1 to 0.

[8]

RO

data_3_status

The bit reflects the status of the signal of card data line data[3].
Status bit of the command state machine of the MMC.
0000: idle
0001: send init sequence

[7:4]

RO

cmd_fsm_state

0010: Tx cmd start bit
0011: Tx cmd tx bit
0100: Tx cmd index + arg
0101: Tx cmd crc7

8-34

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

0110: Tx cmd end bit
0111: Rx resp start bit
1000: Rx resp IRQ response
1001: Rx resp tx bit
1010: Rx resp cmd idx
1011: Rx resp data
1100: Rx resp crc7
1101: Rx resp end bit
1110: Cmd path wait NCC
1111: wait, CMD-to-response turnaround
FIFO full flag bit.
[3]

RO

0: not full

fifo_full

1: full
FIFO empty flag bit.
[2]

RO

0: not empty

fifo_empty

1: empty
[1]

RO

fifo_tx_watermark The count of data in the FIFO is below the threshold tx_wmark.

[0]

RO

fifo_rx_watermark

The count of data in the FIFI is equal to or above threshold
rx_wmark.

MMC_FIFOTH
MMC_FIFOTH is the MMC FIFO parameter register. Its recommended value is
0x2007_0008. In DMA data transfer mode, the burst sizes of the DMA and the MMC must be
the same. During DMA data transfer, the value of this register cannot be changed.

Name

Register Name

Total Reset Value

0x04C

MMC_FIFOTH

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

burst_size

Reset 0

0

0

0

rx_wmark

0

0

0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[31]

-

reserved

Reserved.

RW

burst_size

7

resevered

Bits

[30:28]

8

0

0

0

6

5

4

3

2

1

0

0

0

0

0

0

tx_wmark

0

0

0

0

0

0

0

0

Burst size for a DMA data transfer, in words. The value must be
the same as that in DMAC mode.
000: 1
001: 4

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-35

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

010: 8
Others: reserved
The supported combinations of the values of burst_size and
tx_wmark are as follows:
burst_size = 1, tx_wmark = 1 to 15
burst_size = 4, tx_wmark = 4
burst_size = 4, tx_wmark = 4
burst_size = 4, tx_wmark = 12
burst_size = 8, tx_wmark = 8
burst_size = 8, tx_wmark = 4
The supported combinations of the values of burst_size and
rx_wmark are as follows:
burst_size = 1, rx_wmark = 0 to 14
burst_size = 4, rx_wmark = 3
burst_size = 4, rx_wmark = 7
burst_size = 4, rx_wmark = 11
burst_size = 8, rx_wmark = 7
burst_size = 8, rx_wmark = 11
FIFO threshold during the data read operation. When the count of
the existing data in the FIFO is above the threshold, a DMA
request is raised. If the interrupt is enabled, an interrupt request is
generated.

[27:16]

RW

rx_wmark

In non-DMA mode, the RXDR interrupt is enabled and an
interrupt request is raised. If the data count in the FIFI is not above
the threshold at the end of the data transfer, no interrupt is
generated. If a DTO interrupt is generated, the remaining data is
read through software.
In DMA mode, if the count of the remaining data is below the
threshold at the end of the data transfer, the DMA still reads data
in burst mode before the DTO interrupt is generated.
The following equation must be met:
Tx_wmark ≤ FIFO_DEPTH - 2
The recommended value is (FIFO_DEPTH/2) - 1. That is, a
request is raised when the value is greater than [(FIFO_DEPTH/2)
– 1].

[15:12]

-

resevered

Reserved.
FIFO threshold during the data transmit operation. When the count
of the existing data in the FIFO is equal to or below the threshold,
a DMA request is raised. If the interrupt is enabled, an interrupt
request is generated.

[11:0]

RW

tx_wmark

In non-DMA mode, the TXDR interrupt is enabled and an
interrupt request is raised. If the interrupt is generated at the end of
the data transfer, the remaining bytes are transmitted through
software.
In DMA mode, if the remaining data count is less than the burst

8-36

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

size at the end of the data transfer, the DMA still transmits the
remaining data in burst mode.
The following equation must be met:
Tx_wmark ≥ 1
The recommended value is FIFO_DEPTH/2. That is, a request is
raised when the value is equal to or less than FIFO_DEPTH/2.

MMC_CARDSTATUS
MMC_CARDSTATUS is the card detection status register.
Register Name

Total Reset Value

0x050

MMC_CARDSTATUS

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
card_detctor

Bit

Offset Address

0

0

0

0

0

0

1

Card detection status of the MMC interface.
[0]

RO

card_detctor

0: A card is already inserted.
1: No card is inserted.

MMC_TCBCNT
MMC_TCBCNT is the interface transfer count register. It counts the bytes transferred through
the interface during a data transfer. During data transfer, the register returns 0. After the data
transfer, the register shows the count of bytes transferred between the MMC and the card.
When a new data transfer command starts, the register is cleared.

Bit

Offset Address

Register Name

Total Reset Value

0x05C

MMC_TCBCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

trans_card_byte_coun

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

[31: 0]

RO

trans_card_byte_co
Count of bytes transferred between the MMC and card.
unt

Issue 02 (2010-04-20)

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8-37

Hi3515
Data Sheet

8 MMC/SD/SDIO Controller

MMC_TBBCNT
MMC_TBBCNT is the FIFO transfer count register. This register counts the bytes transferred
between the CPU/DMA and the MMC FIFO in real time when the data transfer command is
executed. The byte count is changed dynamically during data transfer. When a new data
transfer command starts, the register is cleared.

Bit

Offset Address

Register Name

Total Reset Value

0x060

MMC_TBBCNT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

trans_fifo_byte_count

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31: 0]

RO

trans_fifo_byte_co Count of bytes transferred between the CPU/DMA and the MMC
unt
FIFO.

MMC_DATA
MMC_DATA is the data register for storing the FIFO entrance address. Before the FIFO is
read or written, MMC_STATUS[fifo_count] must be read to query the remaining space of the
FIFO. Thus, the data bytes to be read or written are determined based on the remaining space.
In this way, FIFO overflow is avoided.

Bit

Offset Address

Register Name

Total Reset Value

0x100

MMC_DATA

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

fifo_entrance

Reset 0

8-38

8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RW

fifo_entrance

FIFO entrance address.

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
9 SATA ............................................................................................................................................9-1
9.1 Oveview ........................................................................................................................................................9-1
9.2 Features .........................................................................................................................................................9-1
9.3 Signal Description.........................................................................................................................................9-2
9.4 Function Description .....................................................................................................................................9-2
9.5 Operating Mode ............................................................................................................................................9-5
9.5.1 Clock Gating ........................................................................................................................................9-5
9.5.2 Clock Configuration.............................................................................................................................9-5
9.5.3 Soft Reset.............................................................................................................................................9-5
9.5.4 Configuration of the Operating Mode..................................................................................................9-6
9.6 Register Summary .........................................................................................................................................9-8
9.6.1 Summary of the SATA Registers..........................................................................................................9-8
9.6.2 Summary of the SATA_PORT_CFG Registers....................................................................................9-9
9.7 Register Description....................................................................................................................................9-10
9.7.1 Description of the SATA Registers.....................................................................................................9-10
9.7.2 Description of the SATA_PORT_CFG Registers...............................................................................9-24
9.8 Appendix A Formats of the SATA Command Lists .....................................................................................9-47

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 9-1 Typical application mode 1...............................................................................................................9-3
Figure 9-2 Typical application mode 2...............................................................................................................9-3
Figure 9-3 Typical application mode 3...............................................................................................................9-4
Figure 9-4 Architecture of the Hi3515 SATA module ........................................................................................9-4
Figure 9-5 Structure of the linked list...............................................................................................................9-48
Figure 9-6 Structures of the command list and data list ...................................................................................9-49

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 9-1 Signals of the SATA interface.............................................................................................................9-2
Table 9-2 Variables in the offset address of registers..........................................................................................9-8
Table 9-3 Summary of the SATA registers (base address: 0x5202_0000) ..........................................................9-8
Table 9-4 Summary of the SATA_PORT_CFG registers (base address: 0x5202_0100) ....................................9-9

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

9 SATA

9

SATA

9.1 Oveview
The serial advanced technology attachment (SATA) interface of the Hi3515 is an advanced
high-performance bus (AHB) interface that complies with advanced microcontroller bus
architecture (AMBA) Spec 2.0. This interface is used to implement rapid integration on the
system-on-chip (SOC) system. With the drivers developed in Linux, the SATA interface helps
software engineers customize and develop the drivers of the SOC subsystem rapidly. The
Hi3515 provides two SATA instance interfaces. At the controller layer, the SATA interface
supports native command queuing (NCQ), hot-plugging, port multiplier, eSATA, and power
supply management.

9.2 Features
The SATA module of the Hi3515 provides the following features:
z

Provides the slave interface of the ARM AHB system bus that complies with AMBA
Spec 2.0. Only the 32-bit access mode is supported.

z

Provides the master interface of the ARM AHB system bus that complies with AMBA
Spec 2.0. Only the 32-bit access mode is supported.

z

Provides a standard signal interface for connecting to the PHY.

z

Supports the protocols SATA2.5 and Advanced Host Controller Interface 1.2 (AHCI1.2).

z

Supports programmable input/output (PIO), legacy direct memory access (DMA), NCQ,
and advanced technology attachment packet interface (ATAPI) operations.

z

Supports power supply management.

z

Supports the port multiplier.

z

Provides up to two SATA instance ports.

z

Supports automatic rate negotiation: 1.5 Gbps or 3.0 Gbps.

z

Supports the interrupt report mechanism.

z

Meets the requirement for the AMBA bus clock (hclk): 75 MHz ≤ hclk ≤ 200 MHz.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-1

Hi3515
Data Sheet

9 SATA

9.3 Signal Description
Table 9-1 lists the signals of the SATA interface.
Table 9-1 Signals of the SATA interface
Signal

Direction

Description

Pin

SREFCKM

I

SATA negative differential clock input

SREFCKM

SREFCKP

I

SATA positive differential clock input

SREFCKP

I/O

SATA extended resistor pin, connected to
external extended resistors

SRESREF

I

Negative differential data input of SATA
port 0

SRXM0

I

Negative differential data input of SATA
port 1

SRXM1

I

Positive differential data input of SATA
port 0

SRXP0

I

Positive differential data input of SATA
port 1

SRXP1

O

Negative differential data output of
SATA port 0

STXM0

O

Negative differential data output of
SATA port 1

STXM1

O

Positive differential data output of SATA
port 0

STXP0

O

Positive differential data output of SATA
port 1

STXP1

SRESREF
SRXM0
SRXM1
SRXP0
SRXP1
STXM0
STXM1
STXP0
STXP1

9.4 Function Description
Typical Applications
Figure 9-1, Figure 9-2, and Figure 9-3 show the typical application modes of the SATA
interface.

9-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Figure 9-1 Typical application mode 1

SATA Host
port0

port1

Device

Device

Figure 9-2 Typical application mode 2

SATA Host
port0

port1

port multiplier

Device

Device_0

Issue 02 (2010-04-20)

Device_n

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-3

Hi3515
Data Sheet

9 SATA

Figure 9-3 Typical application mode 3

SATA Host
port0

port1

port multiplier_0

port multiplier_1

Device_0

Device_n

Device_0

Device_n

The SATA Host can be directly connected to up to two devices such as the hard disk and
driver. In addition, any of the port of the SATA Host can be connected to the port multiplier.
The number of connected external devices depends on the expansion capability of the port
multiplier.

Function Principle
Figure 9-4 shows the architecture of the Hi3515 SATA module.
Figure 9-4 Architecture of the Hi3515 SATA module
AHB master
interface

FIFO & DMA
engine
BIU
master

Transaction
management

Transport

Port 0 register
SATA PHY
interface X

FIFO & DMA
rngine
AHB slave
interface

Transport

Link

Port X register
BIU
slave

AHCI
register
control

Global register

Intrerupt
signal

9-4

Link

SATA PHY
interface 0

SATA

Activity LED
signal

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

The AHB master and AHB slave interfaces are mounted on the system bus AHB that complies
with ARM AMBA2.0. The ARM CPU and system memory controller are also located on the
system bus. The software configures the SATA module through the AHB slave interface.
Through the AHB master interface, the dynamic random access memory (DRAM) of the
system memory controller is accessed to read commands and data and write data.
The SATA Host supports the PIO, legacy DMA, NCQ, and ATAPI operations.
The interrupt signal is connected to the system interrupt controller.
In the Hi3515, the SATA PHY interface is connected to the SATA PHY. The SATA PHY can
be connected to the external hard disk or drive with the SATA interface. The SATA PHY can
also be connected to the SATA port multiplier for connecting multiple ports.
The activity light emitting diode (LED) signal can be directly transferred from the Hi3515.
You can choose this function as required.

9.5 Operating Mode
9.5.1 Clock Gating
You can set SC_PEREN[sataclkgate] to 1 to enable the clock of the SATA module and set
SC_PERDIS[sataclkdis] to 1 to disable the clock of the SATA module.

9.5.2 Clock Configuration
You can configure the internal control register SATA_PHY0_CTLH bit[13] of the SATA Host
to choose the reference clock source of the SATA PHY. That is, you can control whether the
clock of the SATA PHY is generated in the Hi3515 or supplied by the external clock source.
The details are as follows:
z

When SATA_PHY0_CTLH bit[13] is set to 1, the clocks SREFCKM and SREFCKP are
generated in the Hi3515.

z

When SATA_PHY0_CTLH bit[13] is set to 0, the clocks SREFCKM and SREFCKP are
supplied by the external clock source.

The reference clock supported by the SATA PHY ranges from 25 MHz to 156.25 MHz. The
input clock supported by the internal multiplying phase-locked loop (MPLL) of the PHY
ranges from 50 MHz to 78.125 MHz. Therefore, when the reference clock is changed, you
must configure SATA_PHY0_CTLL bit[31:30] of the SATA Host to meet the clock
requirement of the internal MPLL of the SATA PHY. For details, see the description of
SATA_PHY0_CTLL bit[31:30].

9.5.3 Soft Reset
The following shows multiple soft reset control modes of the SATA Host:
z

Set SC_PERCTRL10 bit[24] to 0 to soft-reset only the sata_alive clock domain.

z

Set SC_PERCTRL10 bit[23] to 0 to soft-reset only the sata_rx clock domain of port1.

z

Set SC_PERCTRL10 bit[22] to 0 to soft-reset only the sata_rx clock domain of port0.

z

Set SC_PERCTRL10 bit[21] to 0 to soft-reset only the sata_tx clock domain of port1.

z

Set SC_PERCTRL10 bit[20] to 0 to soft-reset only the sata_tx clock domain of port0.

z

Set SC_PERCTRL10 bit[19] to 0 to soft-reset only the SATA PHY.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-5

Hi3515
Data Sheet

9 SATA
z

Set SC_PERCTRL10 bit[18] to 0 to soft-reset only the HCLK clock domain.

z

Set SC_PERCTRL10 bit[17] to 0 to soft-reset the SATA PHY.

The SATA Host controller also provides the following two synchronous reset policies:
z

When SATA_GHC_GHC bit[0] of the SATA Host controller is set to 1, the SATA Host
switches to the reset mode. In this case, the logics of all internal modules are restored to
initial values. After reset, SATA_GHC_GHC bit[0] is cleared automatically.

z

When the value of SATA_PORT_CMD bit[0] corresponding to port0 or port1 is changed
from 1 to 0, port 0 or port1 enters the reset mode.

9.5.4 Configuration of the Operating Mode
Before starting the SATA Host, you must initialize the SATA PHY to ensure proper running of
the SATA PHY and perform initialization negotiation between the SATA Host and SATA
Device.

Initializing the SATA PHY
By taking the 125 MHz on-chip reference clock and 1.5 Gbps port0 as examples, initialize the
SATA PHY as follows:
Step 1 Set SC_PERCTRL9 bit[1] to 1 to select the 125 MHz CRG output reference clock.
Step 2 Set SC_PERCTRL10 bit[18] to 1 to cancel the soft reset on the SATA controller bus.
Step 3 Set SC_PERCTRL10 bit[19] to 1 to cancel the soft reset on the SATA PHY.
Step 4 Set SATA_PHY0_CTLH bit[12] to 1 to disable the reference clock provided to the PHY.
Step 5 Set SATA_PHY0_CTLL to 0x840E_C788.
Step 6 Set SATA_PHY0_CTLH to 0x2121.
Step 7 Set SATA_OOB_CTL to 0x8406_0C15.
Step 8 Set SATA_PORT_PHYCTL to 0x0E26_2709.
Step 9 Set SC_PERCTRL10 bit[19] to 0 to soft-reset the SATA PHY.
Step 10 Set SC_PERCTRL10 bit[19] to 1 to cancel the soft reset on the SATA PHY.
Step 11 Set SC_PERCTRL10 bit[17] to 1 to cancel the soft reset on the SATA controller interface.
Step 12 Set SC_PERCTRL10 bit[20] to 1 to cancel the soft reset on the clock domain tx0 of the
SATA controller.
Step 13 Set SC_PERCTRL10 bit[22] to 1 to cancel the soft reset on the clock domain rx0 of the
SATA controller.
Step 14 Set SC_PERCTRL10 bit[24] to 1 to cancel the soft reset on the clock domain alive of the
SATA controller.
----End

Initialization Negotiation
After the PLL of the SATA PHY works properly, initialization negotiation is performed
between the SATA Host and SATA Device as follows:

9-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Step 1 Set SATA_PORT_CMD[cmd_sud] to 1.
Step 2 Wait until the indication signal phyrdy from the SATA PHY is valid. Then check whether
SATA_PORT_SSTS[pxssts_det] is set to 3. If yes, it indicates that the corresponding port
works properly and initialization is successful.
----End

Running Services
After initialization negotiation, run services as follows:
Step 1 Clear interrupts (skip this step after reset or if services are started initially). To be specific, set
the values of SATA_PORT_SERR, SATA_PORT_IS, and SATA_GHC_IS to 0xFFFFFFFF.
Step 2 Configure the interrupt mask register SATA_PORT_IE to mask the interrupts that do not need
to be reported.
Step 3 Enable the global interrupt by setting SATA_GHC_GHC to 0x80000002.
Step 4 Set up a linked list according to the description in section 9.8 "Appendix A Formats of the
SATA Command Lists."
Step 5 Set the base address of the port command lists in the memory by configuring
SATA_PORT_CLB[port_clb] and notify the transmit DMAC of the position for storing the
commands and data to be read. The configured base address is the memory base address
allocated for the port command lists.
Step 6 Set the base address in the memory for storing the frames received through the port by
configuring SATA_PORT_FB[port_fb] and notify the receive DMAC of the position for
storing the received frame information structures (FISs). The configured base address is the
memory base address allocated for the port receive frames.
Step 7 Set SATA_PORT_CMD[st] to 1 to enable the transmit DMAC to transmit commands and
data; set SATA_PORT_CMD[fre] to 1 to enable the receive DMAC to receive FISs and write
them to the system memory.
Step 8 Configure the port command transmit register SATA_PORT_CI to indicate the command to
be transmitted.
Step 9 Transmit the command and data.
Step 10 Check whether the current command is complete through the interrupt bit and command
execution status. When interrupts are received, check whether all the CI bits are cleared for
the PIO or DMA operation and check the CI and SACT bits are cleared for the NCQ
operation.
Step 11 Repeat Step 1 to Step 10 for the next transfer if necessary.
----End

Issue 02 (2010-04-20)

z

Perform the operations of legacy DMA, PIO, and ATAPI according to the preceding steps. The
linked lists (such as the command codes and flag bits), however, are different for theses operations.

z

For the NCQ operation, besides a different linked list, SATA_PORT_SACT also needs to be
configured to indicate the number of executed commands during the NCQ operation. To be specific,
configure SATA_PORT_SACT after Step 7 and ensure that the position of the commands configured
by SATA_PORT_SACT map to those of the commands in SATA_PORT_CI.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-7

Hi3515
Data Sheet

9 SATA

9.6 Register Summary
Table 9-2 lists the value ranges and meanings of the variables in the offset addresses of
registers.
Table 9-2 Variables in the offset address of registers
Variable

Value Range

Description

n

0 or 1

Indicates the two ports of a controller

9.6.1 Summary of the SATA Registers
Table 9-3 lists the SATA registers.
Table 9-3 Summary of the SATA registers (base address: 0x5202_0000)

9-8

Offset
Address

Register

Description

Page

0x0000

SATA_GHC_CAP1

Feature support register 1

9-10

0x0004

SATA_GHC_GHC

Global control register

9-12

0x0008

SATA_GHC_IS

Interrupt status register

9-12

0x000C

SATA_GHC_PI

Port implementation register

9-13

0x0010

SATA_GHC_VS

AHCI version identifier register

9-14

0x0014

SATA_GHC_CCC_CTL

Command completion coalescing
(CCC) control register

9-14

0x0018

SATA_GHC_CCC_PORTS

CCC port enable register

9-15

0x0024

SATA_GHC_CAP2

Feature support register 2

9-16

0x0028

SATA_GHC_BOHC

Basic input/output system
(BIOS)/operating system (OS)
handoff control register

9-16

0x0050

SATA_GHC_TM

TM test status register

9-17

0x0054

SATA_PHY0_CTLL

PHY0 global control register for
lower bits

9-18

0x0058

SATA_PHY0_CTLH

PHY0 global control register for
upper bits

9-19

0x005C

SATA_PHY0_STS

PHY0 global status register

9-21

0x0060–
0x0068

RESERVED

Reserved

–

0x006C

SATA_OOB_CTL

PHY out of band (OOB) control
register

9-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

9.6.2 Summary of the SATA_PORT_CFG Registers
Table 9-4 lists the SATA_PORT_CFG registers.
Table 9-4 Summary of the SATA_PORT_CFG registers (base address: 0x5202_0100)
Offset
Address

Register

Description

Page

0x000+n×
0x80

SATA_PORT_CLB

Command list base address register

9-24

0x008+n×
0x80

SATA_PORT_FB

Receive FIS base address register

9-25

0x010+n×
0x80

SATA_PORT_IS

Port interrupt status register

9-25

0x014+n×
0x80

SATA_PORT_IE

Port interrupt mask register

9-27

0x018+n×
0x80

SATA_PORT_CMD

Port command and status register

9-29

0x20+n×0
x80

SATA_PORT_TFD

Port task file register

9-31

0x24+n×0
x80

SATA_PORT_SIG

Port signature register

9-32

0x028+n×
0x80

SATA_PORT_SSTS

Port status register

9-32

0x02C+n×
0x80

SATA_PORT_SCTL

Port control register

9-33

0x30+n×0
x80

SATA_PORT_SERR

Error diagnosis status register

9-34

0x034+n×
0x80

SATA_PORT_SACT

NCQ command identifier control register

9-36

0x38+n×0
x80

SATA_PORT_CI

Command transmit control register

9-36

0x3C+n×0
x80

SATA_PORT_SNTF

Async notification event indication register

9-37

0x044+n×
0x80

SATA_PORT_FIFOT
H

Receive first in first out (FIFO) threshold
register

9-37

0x050+n×
0x80

SATA_PORT_HBA

Host bus adapter (HBA) test status register

9-38

0x054+n×
0x80

SATA_PORT_LINK

Link test status register

9-39

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-9

Hi3515
Data Sheet

9 SATA

Offset
Address

Register

Description

Page

0x058+n×
0x80

SATA_PORT_DMA
1

DMAC test status register 1

9-40

0x05C+n×
0x80

SATA_PORT_DMA
2

DMAC test status register 2

9-41

0x060+n×
0x80

SATA_PORT_DMA
3

DMAC test status register 3

9-41

0x064+n×
0x80

SATA_PORT_DMA
4

DMAC test status register 4

9-41

0x068+n×
0x80

SATAf_PORT_DMA
5

DMAC test status register 5

9-42

0x6C+n×0
x80

SATA_PORT_DMA
6

DMAC test status register 6

9-43

0x070+n×
0x80

SATA_PORT_DMA
7

DMAC test status register 7

9-43

0x074+n×
0x80

SATA_PORT_PHYC
TL

PHY control register

9-44

0x078+n×
0x80

SATA_PORT_PHYS
TS

PHY test status register

9-46

9.7 Register Description
9.7.1 Description of the SATA Registers
SATA_GHC_CAP1
SATA_GHC_CAP1 is feature support register 1.

1

0

0

1

1

ssc

0

psc

0

fbss

1

pmd

1

sam

1

spm

1

reserved

sal

sclo

0

sss

1

salp

smps

1

iss

0

1

1

1

8

ncs

1

1

1

1

1

7

6

5
sxs

0x6F26_FFA3

ems

SATA_GHC_CAP1

cccs

0x0000

sncq

Reset 0

9-10

Total Reset Value

ssntf

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
s64a

Bit

Offset Address

1

0

1

4

3

2

0

1

1

np

0

0

0

Bits

Access

Name

Description

[31]

RO

s64a

Fixed at 0, it indicates that the 64-bit data structure cannot be
accessed.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

[30]

RO

sncq

Fixed at 1, it indicates that NCQ is supported.

[29]

RO

ssntf

Fixed at 1, it indicates that the port serial ATA notification (SNTF)
register is supported.

[28]

RO

smps

Fixed at 0, it indicates that mechanical hot-plugging is not
supported.

[27]

RO

sss

Fixed at 1, it indicates that staggered spin-up is supported.

[26]

RO

salp

Fixed at 1, it indicates that power supply management is
supported.

[25]

RO

sal

Fixed at 1, it indicates that the LED pin is supported.

[24]

RO

sclo

Fixed at 1, it indicates that command list override is supported.

[23:20]

RO

iss

Fixed at 0x2, it indicates that the maximum rate of 3 Gbps is
supported.

[19]

RO

reserved

Reserved.

[18]

RO

sam

Fixed at 1, it indicates that only the AHCI mode is supported.

[17]

RO

spm

Fixed at 1, it indicates that the port multiplier is supported.

[16]

RO

fbss

Fixed at 0, it indicates that FIS-based switching is not supported.

[15]

RO

pmd

Fixed at 1, it indicates that multiple DRQ blocks cannot be
transferred in PIO mode.

[14]

RO

ssc

Fixed at 1, it indicates that the transition to the slumber state is
supported.

[13]

RO

psc

Fixed at 1, it indicates that the transition to the partial state is
supported.

[12:8]

RO

ncs

Fixed at 0x1F, it indicates that 32 command slots are supported.

[7]

RO

cccs

Fixed at 1, it indicates that the CCC function is supported.

[6]

RO

ems

Fixed at 0, it indicates that enclose management is not supported.

[5]

RO

sxs

Fixed at 1, it indicates that the external SATA interface is
supported.

[4:0]

RO

np

Fixed at 0x03, it indicates that up to two ports are supported.

SATA_GHC_GHC
SATA_GHC_GHC is the global control register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-11

Total Reset Value

0x0004

SATA_GHC_GHC

0x8000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Reset 1

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31]

RO

ahci_en

Fixed at 1, it indicates that the software can interact with the
controller through the AHCI mechanism only.

[30:2]

RO

reserved

Reserved.

1

0
hba_rst

Name

Register Name

ahci_en

Bit

Offset Address

int_enable

Hi3515
Data Sheet

9 SATA

0

0

Controller interrupt enable.
[1]

RW

0: disabled

int_enable

1: enabled
Soft reset control for the controller.
0: not reset
1: reset
[0]

RW

hba_rst

Writing 1 resets the controller and this bit is cleared after reset;
writing 0 has no effect. In addition, reset has no effect on the
registers SATA_GHC_BOHC, SATA_PORT_FB, and
SATA_PORT_CLB.

SATA_GHC_IS

Total Reset Value

0x0008

SATA_GHC_IS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Reset 0

8

7

6

5

4

3

2

0

0

0

0

0

0

0

reserved

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0
ips_port0

Name

Register Name

ips_ccc

Bit

Offset Address

ips_port1

SATA_GHC_IS is the interrupt status register.

0

0

Description
CCC interrupt status.

[31]

WC

ips_ccc

0: No CCC interrupt is generated.
1: A CCC interrupt is generated.

9-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

[30:2]

RO

9 SATA

reserved

Reserved.
Interrupt status of port 1.

[1]

WC

ips_port1

0: No interrupt is reported.
1: An interrupt is reported.
Interrupt status of port 0.

[0]

WC

ips_port0

0: No interrupt is reported.
1: An interrupt is reported.

SATA_GHC_PI
SATA_GHC_PI is the port implementation register.
Register Name

Total Reset Value

0x000C

SATA_GHC_PI

0x0000_000F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

1

1

1

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access Name

Description

[31:2]

RO

Reserved.

reserved

0
port_imp

Bit

Offset Address

0

0

0

0

0

0

0

1

Port validity indication. bit[1] maps to port 1 and bit[0] maps to
port 0.
[1:0]

RO

port_imp

0: The ports are invalid.
1: The ports are valid.

SATA_GHC_VS
SATA_GHC_VS is the AHCI version identifier register.

Bit

Offset Address

Register Name

Total Reset Value

0x0010

SATA_GHC_VS

0x0001_0200

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Issue 02 (2010-04-20)

8

7

6

5

4

3

2

1

0

ahci_vs

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-13

Hi3515
Data Sheet

9 SATA
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

Bits

Access

Name

Description

[31:0]

RO

ahci_vs

The supported AHCI version is V1.2.

0

0

0

0

0

0

0

0

0

3

2

1

0

1

0

SATA_GHC_CCC_CTL

Register Name

Total Reset Value

0x0014

SATA_GHC_CCC_CTL

0x0001_01F8

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

ccc_tv

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

8

7

6

ccc_cc

0

0

0

0

0

0

1

0

0

0

0

0

5

4

reserved

Bit

Offset Address

ccc_int

0

0

1

1

1

1

1

0

ccc_en

SATA_GHC_CCC_CTL is the CCC control register.

0

Description
CCC timeout parameter, in the unit of ms.

[31:16]

RW

When the CCC function is enabled, the timeout counter loads this
parameter value. If a command is executed on a port involved in
CCC counting, the counter decreases by 1 every 1 ms until a CCC
interrupt is generated when the counter reaches 0. Then the
counter reloads the parameter value for the next counting.

ccc_tv

Note that these bits cannot be set to 0s.
CCC command completion upper threshold.

[15:8]

RW

ccc_cc

When the CCC function is enabled, the counter is cleared after
commands are executed. Then the counter starts to count the
number of completed commands on the ports involved in CCC
counting. If the count value is equal to or greater than the
parameter value, a CCC interrupt is generated. In this case, the
counter is cleared again for the next counting.
If the value 0 is written, the command completion interrupt is
disabled and the CCC interrupt is generated in case of timeout
only.

[7:3]

RO

ccc_int

CCC interrupt vector ID. If the value is 0x1F (31),
SATA_GHC_IS bit[31] indicates the CCC interrupt status.

[2:1]

RO

reserved

Reserved.
CCC function enable.
0: disabled

[0]

RW

ccc_en

1: enabled
When the CCC function is enabled, the values of ccc_tv and
ccc_cc cannot be changed.

9-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

SATA_GHC_CCC_PORTS
SATA_GHC_CCC_PORTS is the CCC port enable register.
Register Name

Total Reset Value

0x0018

SATA_GHC_CCC_PORTS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:2]

RO

reserved

Reserved.

0
ccc_prt

Bit

Offset Address

0

0

0

0

0

0

0

0

Specifies the port that is involved in CCC counting. bit[1] maps to
port 1 and bit[0] maps to port 0.
[1:0]

RW

1: The port is involved in CCC counting.

ccc_prt

0: The port is not involved in CCC counting.
The value of this register can be changed at any time and the
changed value takes effect immediately.

SATA_GHC_CAP2
SATA_GHC_CAP2 is feature support register 2.
Register Name

Total Reset Value

0x0024

SATA_GHC_CAP2

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0
cap_boh

Bit

Offset Address

0

0

0

0

0

0

1

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

[0]

RO

cap_boh

Fixed at 1, it indicates that BIOS/OS handoff control is supported.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-15

Hi3515
Data Sheet

9 SATA

SATA_GHC_BOHC
SATA_GHC_BOHC is the BIOS/OS handoff control register.

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:5]

RO

reserved

Reserved.

0

0

0

0

0

0

0

4

3

2

1

0
bohc_bos

SATA_GHC_BOHC

bohc_oos

0x0028

bohc_ooc

Total Reset Value

bohc_sooe

Register Name

bohc_bb

Bit

Offset Address

0

0

0

0

0

BIOS status indication.
[4]

RW

bohc_bb

0: The BIOS is not busy.
1: The BIOS is busy performing certain operations and is ready to
hand the control rights off to the OS.

[3]

WC

bohc_ooc

When the value of bohc_oos is changed from 0 to 1, this bit is
fixed at 1. Writing 1 clears this bit and writing 0 has no effect.
Message interrupt enable.

[2]

RW

bohc_sooe

0: No message interrupt is generated.
1: When bohc_ooc is set to 1, a message interrupt is generated.
Request applied by the OS for controlling the controller.
0: The OS does not apply for the control rights to the controller.

[1]

RW

bohc_oos

1: The OS applies for the control rights to the controller. If
bohc_oos is 1 and bios_bos is 0, it indicates that the OS has
obtained the control rights to the SATA controller. Resetting the
SATA controller through SATA_GHC_GHC[hab_rst] has no
effect on this bit.
Flag that indicates that the BIOS has the control rights to the
controller.
0: The BIOS does not have the control rights to the controller.

[0]

RW

bohc_bos

1: The BIOS has the control rights to the controller. If the OS
applies for the controller right of the controller, the BIOS clears
this bit. Resetting the SATA controller through
SATA_GHC_GHC[hab_rst] has no effect on this bit.

SATA_GHC_TM
SATA_GHC_TM is the TM test status register.

9-16

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Register Name

Total Reset Value

0x0050

SATA_GHC_TM

0x0000_0000

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

2

1

0

1

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:3]

RO

reserved

Reserved.

0

req_sel

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

pddq_h

Offset Address

reserved

Bit

9 SATA

0

0

0

0

0

0

0

Current DMAC that has the right to use the AHB master.
0x0: transmit DMAC of port 0
[2:0]

RO

0x1: receive DMAC of port 0

req_sel

0x2: transmit DMAC of port 1
0x3: receive DMAC of port 1
Others: reserved

SATA_PHY0_CTLL
SATA_PHY0_CTLL is the PHY0 global control register for lower bits.
Register Name

Total Reset Value

0x0054

SATA_PHY0_CTLL

0x8D0E_C88A

Reset 1

0

Bits

mpll_ncy

0

0

1

Access

1

mpll_int_ctl

mpll_ncy5

Name

0

1

0

mpll_prop_ctl

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
mpll_prescale

Bit

Offset Address

0

Name

0

0

1

1

tx_lvl

1

0

1

1

8

7

6

los_lvl

0

0

1

0

0

0

5

4

3

acjt_lvl

1

0

0

0

1

0

Description
When the reference clock is changed, this value also needs to be
changed.
00: ref_clk is used as it is.

[31:30]

RW

mpll_prescale

01: ref_clk is multiplied by 2.
10: ref_clk is divided by 2
11: Reserved.

[29:25]

RW

Issue 02 (2010-04-20)

mpll_ncy

Operating parameter of the internal MPLL of the PHY. These bits
need to be used with mpll_ncy5 and indicate the used multiplier.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-17

Hi3515
Data Sheet

9 SATA

[24:23]

RW

mpll_ncy5

Operating parameter of the internal MPLL of the PHY. These bits
need to be used with mpll_ncy and indicate the used multiplier.

[22:20]

RW

mpll_int_ctl

Internal bandwidth control and select signal of the MPLL. These
bits must be set to 0b000.

[19:17]

RW

mpll_prop_ctl

Internal proportional bandwidth control signal of the MPLL. These
bits must be set to 0b111 and can be written only when the register
is reset or the MPLL is invalid.

[16:12]

RW

tx_lvl

Transmit level parameter that is relevant to the selected SATA
protocol. These bits must be set to 0b01100.
Loss of signal (LOS) detection level control signal.

[11:7]

RW

When the rate of the SATA port is 1.5 Gbps, set these bits to
0b01111.

los_lvl

When the rate of the SATA port is 3 Gbps, set these bits to
0b10001.
[6:2]

RW

acjt_lvl

ACJTAG receiver comparator level control signal. These bits must
be set to 0b00010.

[1]

RO

reserved

Reserved.

[0]

RW

pddq_h

IDDQ test signal. To perform an IDDQ test, all the lanes and
support blocks must be powered off before pddq_h is valid. In
normal mode, this bit must be set to 0.

SATA_PHY0_CTLH

Total Reset Value

0x0058

SATA_PHY0_CTLH

0x0000_2125

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:14]

RO

reserved

Reserved.

0

0

0

0

1

0

0

5

1

4

3

0

2

reserved

0

6

rtune_do_tune

0

7

cko_alive_con

1

8
cko_word_con

mpll_ss_en

reserved

mpll_pwron

Name

mpll_ck_off

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

1

1

0

reset_n

Register Name

use_refclk_alt

Bit

Offset Address

wide_xface

SATA_PHY0_CTLH is the PHY0 global control register for upper bits.

0

1

Select signal of the PHY reference clock.
[13]

RW

use_refclk_alt

0: refclk differential signals
1: refclk_alt differential signals

9-18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Power-on control signal of the MPLL. Control this signal by
conforming to the following rules:
1 Before providing refclk to the MPLL, set mpll_ck_off to 0.
[12]

RW

mpll_ck_off

2 Before setting mpll_ck_off to 0, set mpll_ncy, mpll_ncy5, and,
pll_prescale to proper values.
3 If refclk is paused or switched or the values of mpll_ncy,
mpll_ncy5, and mpll_prescale need to be changed, set mpll_ck_off
to 1 first.
Power-on of the MPLL.
0: The cko_word clock is invalid.

[11]

RW

mpll_pwron

1: The internal MPLL is reset and the cko_word clock is generated
based on the frequency of refclk.
Before the MPLL is disabled, tx_en must be OFF or in the CM
state and rx_en and rx_pll_pwron must be set to 0.
Spread spectrum enable signal.
0: disabled

[10]

RW

mpll_ss_en

1: enabled
If refclk is processed through the spread spectrum technology, this
bit must be set to 0.

[9:7]

RW

cko_word_con

cko_word output select signal.
cko_alive output select signal.
0: Invalid.

[6:5]

RW

cko_alive_con

01: Remain the output frequency of the prescaler.
10: Low-frequency output, that is, 1/16 of the prescaler.
11: Reserved.
Resistor tune enable signal.

[4]

RW

rtune_do_tune

0: Do not tune the resistor.
1: Re-tune the resistor.

[3:2]

RW

reserved

Reserved.

[1]

RW

reset_n

Reset signal. This signal must be remained for 5 ns at least.
Interface bit width control signal.

[0]

RW

wide_xface

0: 10 bits
1: 20 bits

SATA_PHY0_STS
SATA_PHY0_STS is the PHY0 global status register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-19

Hi3515
Data Sheet

9 SATA

Bit

Offset Address

Register Name

Total Reset Value

0x005C

SATA_PHY0_STS

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

2

1

0

0

1

phy0_sts

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

phy0_sts

SATA PHY0 common status register.

SATA_OOB_CTL
SATA_OOB_CTL is the PHY OOB control register.

Name

Register Name

Total Reset Value

0x006C

SATA_OOB_CTL

0x8406_0C15

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

oob_ctrl_valid

Bit

Offset Address

Reset 1

min_comiwake

0

0

0

0

1

0

max_comwake

0

0

0

0

0

0

1

8

7

6

min_cominit

1

0

0

0

0

0

1

1

5

4

3

max_cominit

0

0

0

0

0

1

0

1

Bits

Access

Name

Description

[31]

RW

oob_ctrl_valid

Configuration bit of the OOB detection parameter. For high level,
this bit is used to select the parameter of this register to be
configured.

[30:24]

RW

min_comiwake

Minimum space required for the COMWAKE space detection.

[23:16]

RW

max_comwake

Maximum space required for the COMWAKE space detection.

[15:8]

RW

min_cominit

Minimum space required for the COMINIT space detection.

[7:0]

RW

max_cominit

Maximum space required for the COMINIT space detection.

9.7.2 Description of the SATA_PORT_CFG Registers
SATA_PORT_CLB
SATA_PORT_CLB is the command list base address register.

9-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

9 SATA

Offset Address

Register Name

Total Reset Value

0x000+nx0x80

SATA_PORT_CLB

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

port_clb

Reset 0

0

0

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

0

0

0

0

reserved
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:10]

RW

port_clb

Base address for storing the port command list in the memory.
Resetting the SATA controller through
SATA_GHC_GHC[hab_rst] has no effect on these bits.

[9:0]

RO

reserved

Reserved.

SATA_PORT_FB
SATA_PORT_FB is the receive FIS base address register.

Bit

Offset Address

Register Name

Total Reset Value

0x008+nx0x80

SATA_PORT_FB

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

port_fb

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

4

3

2

1

0

0

0

0

reserved
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:8]

RW

port_fb

Base address in the memory for storing the frames received
through the port. Resetting the SATA controller through
SATA_GHC_GHC[hab_rst] has no effect on these bits.

[7:0]

RO

reserved

Reserved.

SATA_PORT_IS
SATA_PORT_IS is the port interrupt status register.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

6

5

4

3

2

1

0

pxis_pss

pxis_drhs

7

pxis_dss

pxis_prcs

pxis_ipms

pxis_ofs

reserved

pxis_infs

pxis_ifs

Issue 02 (2010-04-20)

reserved

8

pxis_sdbs

0x0000_0000

pxis_ufs

SATA_PORT_IS

pxis_dps

0x010+nx0x80

pxis_pcs

Total Reset Value

pxis_hbds

reserved

pxis_tfes

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

9-21

Hi3515
Data Sheet

9 SATA
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Task file data (TFD) error interrupt status.
[30]

WC

pxis_tfes

0: The value of SATA_PORT_TFD[tfd_sts] ERR is not 1.
1: The value of SATA_PORT_TFD[tfd_sts] ERR is 1.

[29]

RO

reserved

Reserved.
Internal bus error interrupt.

[28]

WC

pxis_hbds

0: The DMAC accesses the memory properly.
1: An error occurs when the DMAC accesses the memory.
Fatal error interrupt status.

[27]

WC

pxis_ifs

0: No error occurs during the data frame transfer.
1: An error occurs during the data frame transfer.
Non-fatal error interrupt status.

[26]

WC

pxis_infs

0: No error occurs during the non-data frame transfer.
1: An error occurs during the non-data frame transfer.

[25]

RO

reserved

Reserved.
Data transfer overflow interrupt status.
0: No overflow is detected.

[24]

WC

pxis_ofs

1: During the data frame transfer, if the size of the data memory
occupied by commands is smaller than the actual data amount, an
interrupt is reported at the end of the data transfer.
PM port number error interrupt status.

[23]

WC

pxis_ipms

0: No PM port number error is detected during data receive.
1: A PM port number error is detected during data receive.
PHY state change interrupt status.
0: No changes of the phyrdy signals are detected.

[22]

RO

pxis_prcs

1: Changes of the phyrdy signals are detected.
This bit directly reflects the value of
SATA_PORT_SERR[diag_n].

[21:7]

RO

reserved

Reserved.
Port connection change interrupt status.

[6]

RO

pxis_pcs

0: No COMINIT signal transmitted from the device is detected.
1: A COMINIT signal transmitted from the device is detected.
This bit directly reflects the value of SATA_PORT_SERR[diag.x].

9-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Linked list transfer completion interrupt status.
[5]

WC

0: The transfer of the linked list data is complete when no I bit in
the PRD is 1.

pxis_dps

1: The transfer of the linked list data is complete when an I bit in
the PRD is 1.
Unknown FIS interrupt status.
[4]

RO

0: No unknown FIS is received.

pxis_ufs

1: An unknown FIS is received.
Set device bits FIS interrupt status.
[3]

WC

pxis_sdbs

0: No effect.
1: A set device bits FIS is received and the I bit is 1.
DMA setup FIS interrupt status.

[2]

WC

pxis_dss

0: No effect.
1: A DMA setup FIS is received and the I bit is 1.
PIO setup FIS interrupt status.

[1]

WC

0: No effect.

pxis_pss

1: A PIO setup FIS is received and the I bit is 1.
D2H register FIS interrupt status.
[0]

WC

pxis_drhs

0: No effect.
1: A D2H register FIS is received and the I bit is 1.

SATA_PORT_IE
SATA_PORT_IE is the port interrupt mask register.

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

5

4

3

2

1

0

pxie_pse

0

reserved

6

pxie_drhe

0

7

pxie_dse

pxie_prce

0

pxie_ipme

0

reserved

0

pxie_ofe

0

pxie_ife

pxie_hbde

0

pxie_infe

reserved

Reset 0

8

pxie_sdbe

0x0000_0000

pxie_ufe

SATA_PORT_IE

pxie_dpe

0x014+nx0x80

pxie_pce

Total Reset Value

pxie_tfee

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

Bit

Offset Address

0

0

0

0

0

0

0

TFD error interrupt mask.
[30]

RW

pxie_tfee

0: masked
1: not masked

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-23

Hi3515
Data Sheet

9 SATA

[29]

RO

reserved

Reserved.
Internal bus error interrupt mask.

[28]

RW

pxie_hbde

0: masked
1: not masked
Fatal error interrupt mask.

[27]

RW

pxie_ife

0: masked
1: not masked
Non-fatal error interrupt mask.

[26]

RW

pxie_infe

0: masked
1: not masked

[25]

RO

reserved

Reserved.
Data transfer overflow interrupt mask.

[24]

RW

pxie_ofe

0: masked
1: not masked
PM port error interrupt mask.

[23]

RW

pxie_ipme

0: masked
1: not masked
PHY state change interrupt mask.

[22]

RW

pxie_prce

0: masked
1: not masked

[21:7]

RO

reserved

Reserved.
Port connection change interrupt mask.

[6]

RW

pxie_pce

0: masked
1: not masked
Linked list transfer completion interrupt mask.

[5]

RW

pxie_dpe

0: masked
1: not masked
Unknown FIS interrupt mask.

[4]

RW

pxie_ufe

0: masked
1: not masked
Set device bits FIS interrupt mask.

[3]

RW

pxie_sdbe

0: masked
1: not masked
DMA setup FIS interrupt mask.

[2]

RW

pxie_dse

0: masked
1: not masked

9-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

PIO setup FIS interrupt mask.
[1]

RW

0: masked

pxie_pse

1: not masked
D2H register FIS interrupt mask.
[0]

RW

pxie_drhe

0: masked
1: not masked

SATA_PORT_CMD
SATA_PORT_CMD is the port command and status register.

Bits

Access

0

Name

0

1

0

0

0

0

0

0

0

0

8

7

0

0

cmd_ccs

0

0

0

0

6

5

reserved

cmd_fr

0

reserved

0

cmd_esp

0

reserved

0

reserved

0

cmd_cr

0

reserved

0

cmd_pma

Reset 0

cmd_dlae

cmd_icc

cmd_atapi

Name

cmd_asp

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

4

3

2

1

0
cmd_st

0x0020_0004

cmd_sud

SATA_PORT_CMD

reserved

0x018+nx0x80

cmd_clo

Total Reset Value

cmd_fre

Register Name

cmd_alpe

Bit

Offset Address

0

0

1

0

0

Description
Port communications control signal.
0x0: No operation. It indicates that the next port state request is
allowed.
0x1: Request to enable the port to be in the active state.
0x2: Request to enable the port to be in the partial state.
0x6: Request to enable the port to be in the slumber state.

[31:28]

RW

cmd_icc

Others: Reserved.
When the software writes any of the preceding values rather than
the reserved values, the controller clears the cmd_icc bit after
performing related operations. When the software requests the
current state of the port, the controller clears the cmd_icc bit
directly. If the software requests the port state change from a lowpower state to another lower-power state, such as from the partial
state to the slumber state, it needs to request the state change from
the partial state, the active state, and then to the slumber state.
Slumber or partial state select for power management.

[27]

RW

cmd_asp

0: Actively enter the partial state.
1: Actively enter the slumber state.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-25

Hi3515
Data Sheet

9 SATA

Automatic power management enable.
0: Disabled
[26]

RW

cmd_alpe

1: Enabled. If SATA_PORT_CI and SATA_PORT_SACT are
cleared, the controller enters the power-management state
automatically. To be specific, if cmd_asp is 1, the controller enters
the partial state; if cmd_asp is 0, the controller enters the slumber
state.
LED drive enable in ATAPI mode.

[25]

RW

cmd_dlae

0: The LED pin can be driven when cmd_atapi is 0 and commands
are being executed.
1: The LED pin can be driven when commands are being
executed.
ATAPI device indication.

[24]

RW

cmd_atapi

0: The current device is not an ATAPI device.
1: The current device is an ATAPI device.

[23:22]

RO

reserved

Reserved.

[21]

RO

cmd_esp

Fixed at 1, it indicates that the external SATA device is supported.

[20:18]

RO

reserved

Reserved.
Port multiplier detection indication.

[17]

RW

cmd_pma

0: No port multiplier is connected to the port.
1: A port multiplier is connected to the port.

[16]

RO

reserved

Reserved.
Command list processing indication.

[15]

RO

cmd_cr

0: No command is being executed.
1: A command is being executed.
FIS receive processing indication.

[14]

RO

cmd_fr

0: No FIS is being received.
1: An FIS is being received.

[13]

RO

reserved

Reserved.

[12:8]

RO

cmd_ccs

These bits are valid when cmd_st is 1 and are cleared when cmd_st
is 0.

[7:5]

RO

reserved

Reserved.

Slot number of the current command.

FIS receive enable control.
0: Forbid to write the received FISs to the system memory.
[4]

RW

cmd_fre

1: Enable the received FISs and write them to the system memory.
The software needs to set the receive FIS base address register
SATA_PORT_FB before enabling this bit to receive FISs. When
cmd_st is 1, this bit must be set to 1.

9-26

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

BSY/DQR clear control. The software can forcibly clear the BSY
and DRQ bits through the cmd_clo bit and transmit commands to
the device.
0: No effect.
[3]

RW

1: Clear the BSY and DRQ bits of SATA_PORT_TFD[tfd_sts].
After the BSY and DRQ bits are 0, the cmd_clo bit is cleared
automatically.

cmd_clo

The cmd_clo bit can be written as 1 only before the value of
cmd_st is changed from 0 to 1. In addition, the software must write
cmd_st as 1 after the cmd_clo bit is cleared.
[2]

RO

reserved

Reserved.
Spin-up device control.

[1]

RW

0: When SATA_PORT_SCTL[det] is 0, the controller enters the
listen mode.

cmd_sud

1: After the system is powered on or the HBA is reset, the
controller is enabled to transmit a COMRESET sequence to
initialize the hardware device.
Command list processing enable.
0: The controller becomes idle.
[0]

RW

cmd_st

1: The controller processes the commands from slot 0 that are
identified as valid slots by SATA_PORT_CI.
Note: The cmd_st bit can be set to 1 only after cmd_fre is 1.

SATA_PORT_TFD
SATA_PORT_TFD is the port task file register.

Bit

Offset Address

Register Name

Total Reset Value

0x20+nx0x80

SATA_PORT_TFD

0x0000_007F

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

tfd_err
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:8]

RO

tfd_err

0

0

0

0

0

4

3

2

1

0

1

1

1

tfd_sts
0

0

0

0

1

1

1

1

Task file error register value.

Issue 02 (2010-04-20)

The controller updates these bits after receiving a D2H register
FIS, a PIO setup FIS, or a set device bits (SDB) FIS.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-27

Hi3515
Data Sheet

9 SATA

Task file status register value.
bit[7]: BSY bit. It indicates that the device is busy.
bit[6:4]: The meaning of these bits varies according to commands.
[7:0]

RO

bit[3]: DRQ bit. It indicates that there is the data to be transferred
in the device.

tfd_sts

bit[2:1]: The meaning of these bits varies according to commands.
bit[0]: ERR bit. It indicates that an error occurs during the data
transfer.
The controller updates these bits after receiving a D2H register
FIS, a PIO setup FIS, or an SDB FIS.

SATA_PORT_SIG
SATA_PORT_SIG is the port signature register.

Bit

Offset Address

Register Name

Total Reset Value

0x24+nx0x80

SATA_PORT_SIG

0xFFFF_FFFF

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

1

1

1

1

1

1

1

1

1

signature

Reset 1

1

Bits

1

1

1

Access

1

1

1

1

1

1

Name

1

1

1

1

1

1

1

1

1

1

1

1

Description
LBA address and sector addressing. The allocated addresses are as
follows:
bit[31:24]: LBA upper-bit address

[31:0]

RO

bit[23:16]: LBA middle address

signature

bit[15:8]: LBA lower-bit address
bit[7:0]: number of sectors
The controller updates this register when receiving the first D2H
register FIS after the hardware device is reset.

SATA_PORT_SSTS
SATA_PORT_SSTS is the port status register.

Bit
Name

9-28

Offset Address

Register Name

Total Reset Value

0x028+nx0x80

SATA_PORT_SSTS

0x0000_0100

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
reserved

8

pxssts_ipm

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

7

6

5

4

pxssts_spd

3

2

1

0

pxssts_det

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset 0

0

0

0

0

9 SATA
0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:12]

RO

reserved

Reserved.

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

Current port status.
0x0: No devices or no communications are set up.
[11:8]

RO

0x1: Active.

pxssts_ipm

0x2: Partial.
0x6: Slumber.
Others: Reserved.
Port negotiation speed status.
0x0: No devices or no communications are set up.

[7:4]

RO

0x1: Negotiation to rate 1 for communications.

pxssts_spd

0x2: Negotiation to rate 2 for communications.
0x3: Negotiation to rate 3 for communications.
Others: Reserved.
Device detection and PHY status.
0x0: No device is detected and no PHY communications are set
up.

[3:0]

RO

0x0: A device is detected but no PHY communications are set up.

pxssts_det

0x0: A device is detected but the PHY communications are set up.
0x4: The PHY is offline or in the built-in self test (BIST) state.
Others: Reserved.

SATA_PORT_SCTL
SATA_PORT_SCTL is the port control register.

Bit

Offset Address

Register Name

Total Reset Value

0x02C+nx0x80

SATA_PORT_SCTL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

pxsctl_ipm
0

0

0

0

0

Bits

Access

Name

Description

[31:12]

RO

reserved

Reserved.

Issue 02 (2010-04-20)

8

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

7

6

5

4

3

pxsctl_spd
0

0

0

0

2

1

0

pxsctl_det
0

0

0

0

9-29

Hi3515
Data Sheet

9 SATA

Port power management status control.
0x0: No requirements.
[11:8]

RW

0x1: Forbid to enter the partial state.

pxsctl_ipm

0x2: Forbid to enter the slumber state.
0x3: Forbid to enter the partial or slumber state.
Others: Reserved.
Port communications speed control.
0x0: No requirements.

[7:4]

RW

0x1: Limit the communications speed to rate 1.

pxsctl_spd

0x2: Limit the communications speed to rate 2.
0x3: Limit the communications speed to rate 3.
Others: Reserved.
Device detection and port initialization control.
0x0: No device detection or initialization request.
0x1: Request the port to reset the initialization sequence
COMRESET.

[3:0]

RW

0x4: Force the port to be offline.

pxsctl_det

Others: Reserved.
When pxsctl_det is set to 1, the controller transmits the
COMRESET sequence to the device. In this case, to ensure that
the device receives the COMRESET sequence, the software must
remain the value of pxsctl_det for at least 1 ms.

SATA_PORT_SERR
SATA_PORT_SERR is the error diagnosis status register.
Register Name

Total Reset Value

0x30+nx0x80

SATA_PORT_SERR

0x0000_0000

0

0

0

0

0

0

Bits

Access

Name

Description

[31:27]

RO

reserved

Reserved.

0

0

0

0

0

err_t

0

err_p

0

reserved

8

reserved

0

diag_n

0

diag_i

0

diag_w

0

diag_b

0

diag_c

0

reserved

0

diag_s

Reset 0

diag_h

reserved

diag_f

Name

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
diag_x

Bit

Offset Address

0

0

0

7

6

5

4

3

2

1

0

0

0

0

reserved

0

0

0

0

0

Device detection status.
[26]

WC

diag_x

0: No COMINIT signal transmitted from the device is detected.
1: A COMINIT signal transmitted from the device is detected.

9-30

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Detection status of the unknown FIS.
[25]

WC

0: No unknown FIS is received.

diag_f

1: An unknown FIS is received and this bit is set to 1 when the
cyclic redundancy check (CRC) is correct.
[24]

RO

reserved

Reserved.
Link layer error status.

[23]

WC

diag_s

0: No state transition error occurs at the link layer.
1: A state transition error occurs at the link layer.
Handshake error status.

[22]

WC

diag_h

0: No R_ERR primitive transmitted from the device is received.
1: One or more R_ERR primitives transmitted from the device are
received.
CRC error status.

[21]

WC

diag_c

0: No CRC error occurs during FIS receiving.
1: A CRC error occurs during FIS receiving.

[20]

RO

reserved

Reserved.
Decoding error status.

[19]

WC

diag_b

0: No 8b/10b decoding error is detected.
1: An 8b/10b decoding error is detected.
COMWAKE status.

[18]

WC

diag_w

0: No COMWAKE signal transmitted from the device is detected.
1: A COMWAKE signal transmitted from the device is detected.
PHY internal error status.

[17]

WC

diag_i

0: No PHY internal error is detected.
1: A PHY internal error is detected.
PhyRdy signal change status.
0: The PhyRdy signal is not changed.

[16]

WC

diag_n

1: The PhyRdy signal is changed.
This bit is set to 1 when the value of the PhyRdy signal is changed
from 1 to 0 or from 0 to 1.

[15:11]

RO

reserved

Reserved.
SATA protocol incompliance error status.

[10]

WC

0: No device behaviors do not comply with the SATA protocol.

err_p

1: Certain device behaviors do not comply with the SATA
protocol.
[9]

RO

Issue 02 (2010-04-20)

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-31

Hi3515
Data Sheet

9 SATA

Data integrity error status.
[8]

WC

err_t

0: No data integrity error is detected.
1: A data integrity error is detected.

[7:0]

RO

reserved

Reserved.

SATA_PORT_SACT
SATA_PORT_SACT is the NCQ command identifier control register.

Bit

Offset Address

Register Name

Total Reset Value

0x034+nx0x80

SATA_PORT_SACT

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

port_sact

Reset 0

0

Bits

0

0

0

Access

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
NCQ command identifier control.
Each bit of this register maps to a tag ID and an NCQ command in
the memory. To be specific, bit[31:0] map to the commands of slot
31–0 and tag 31–0 respectively. The following describes the
meaning of each bit by taking bit[3] as an example:
0: The slot 3 command is a non-NCQ command.

[31:0]

RW

port_sact

1: The slot 3 command is an NCQ command. Before setting
SATA_PORT_SACT bit[3] to 1, the software must clear
SATA_PORT_CI bit[3]. After the command data transfer, the
device transmits an SDB FIS. Then, the controller clears
SATA_PORT_SACT bit[3] based on the SActive in the FIS.
The software can set SATA_PORT_SACT only when cmd_st is 1.
When cmd_st is 0, all bits of SATA_PORT_SACT are cleared.

SATA_PORT_CI
SATA_PORT_CI is the command transmit control register.

Bit
Name

9-32

Offset Address

Register Name

Total Reset Value

0x38+nx0x80

SATA_PORT_CI

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

8

7

6

5

4

3

2

1

0

port_ci

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset 0

0

0

Bits

0

0

9 SATA
0

Access

0

0

0

0

0

0

Name

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Description
Control for the commands to be transmitted.
Each bit of this register maps to a command in the memory. To be
specific, bit[31:0] map to the commands of slot 31–0 respectively.
The following describes the meaning of each bit by taking bit[3] as
an example:
0: There is no slot 3 command to be transmitted and executed.

[31:0]

RW

port_ci

1: A slot 3 command is created in the memory. Then the controller
can transmit this command. After running this command and
receiving a corresponding FIS, the controller clears
SATA_PORT_CI bit[3] and the BSY, DRQ, and ERR bits of
SATA_PORT_TFD.
The bits of SATA_PORT_CI can be set to 1 only when cmd_st is
1 and all bits of SATA_PORT_CI are cleared when cmd_st is 0.

SATA_PORT_SNTF
SATA_PORT_SNTF is the async notification event indication register.

Bit

Offset Address

Register Name

Total Reset Value

0x3C+nx0x80

SATA_PORT_SNTF

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

pxsntf_pmn
0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

Async notification event status.
If the controller receives an SDB FIS from the device on the PM
port and the N bit of this FIS is 1, the controller sets the bit of this
register corresponding to this port number to 1.
[15:0]

WC

pxsntf_pmn

The following describes the meaning of each bit by taking bit[3] as
an example:
0: No async notification event occurs on the device whose PM port
number is 3.
1: An async notification event occurs on the device whose PM port
number is 3.

SATA_PORT_FIFOTH
SATA_PORT_FIFOTH is the receive FIFO threshold register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-33

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x044+nx0x80

SATA_PORT_FIFOTH

0x0000_010C

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

dmac_rxfifo_th

rxfifo_th_sel

Bit

1

1

0

0

0

0

2

1

1

0

0

link_rxfifo_th

9 SATA

Bits

Access

Name

Description

[31:9]

RW

reserved

Reserved.

[8:4]

RW

dmac_rxfifo_th

Flow control threshold of the DMAC receive FIFO. During data
receiving, if the data amount in the DMAC FIFO is above the
threshold, the controller starts to control the data flow.

0

Flow control FIFO select.
[3]

RW

0: The flow control for the link receive FIFO is valid.

rxfifo_th_sel

1: The flow control for the DMAC receive FIFO is valid.
[2:0]

RW

Flow control threshold of the link receive FIFO. During data
receiving, if the data amount in the DMAC FIFO is above the
threshold, the controller starts to control the data flow.

link_rxfifo_th

SATA_PORT_HBA
SATA_PORT_HBA is the HBA test status register.

0x050+nx0x80

SATA_PORT_HBA

0x0100_0000

Reset 0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5

4

0

0

3

0

0

Bits

Access

Name

Description

[31:28]

RO

reserved

Reserved.

[27:24]

RO

p_curr_st

Current state of the HBA_PINIT_STATE state machine.

[23:21]

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

2

1

0

0

reserved

0

6

pm_curr_st

cfis_curr_st

7

reserved

ndr_curr_st

pio_curr_st

p_curr_st

reserved

reserved

8

0

err_curr_st

Total Reset Value

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

9-34

Register Name

reserved

Bit

Offset Address

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

[20:16]

RO

ndr_curr_st

Current state of the HBA_NDR_STATE state machine.

[15:12]

RO

cfis_curr_st

Current state of the HBA_CFIS_STATE state machine.

[11]

RO

reserved

Reserved.

[10:8]

RO

pio_curr_st

Current state of the HBA_PIO_STATE state machine.

[7]

RO

reserved

Reserved.

[6:4]

RO

pm_curr_st

Current state of the HBA_PM_STATE state machine.

[3]

RO

reserved

Reserved.

[2:0]

RO

err_curr_st

Current state of the HBA_ERR_STATE state machine.

SATA_PORT_LINK
SATA_PORT_LINK is the link test status register.

SATA_PORT_LINK

0x0320_2020

0

1

1

0

0

1

0

0

0

0

0

link_rx_fifo_full

0

link_rx_fifo_empty

0

link_df_fifo_count

reserved

0

link_df_fifo_empty

0

reserved

Reset 0

link_curr_st

link_df_fifo_full

Name

0

0

1

8

link_rx_fifo_count

0

0

0

0

0

7

6

5
link_tx_fifo_empty

0x054+nx0x80

link_tx_fifo_full

Total Reset Value

reserved

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Bit

Offset Address

0

0

1

4

3

2

1

0

link_tx_fifo_count

0

0

Bits

Access

Name

Description

[31:29]

RO

reserved

Reserved.

[28:24]

RO

link_curr_st

Current state of the LINK_CTL_STATE state machine.

[23]

RO

reserved

Reserved.

0

0

0

Full flag of the link frequency difference FIFO.
[22]

RO

link_df_fifo_full

0: not full
1: full
Empty flag of the link frequency difference FIFO.

[21]

RO

link_df_fifo_empty 0: not empty
1: empty

[20:16]

RO

link_df_fifo_count Data amount in the link frequency difference FIFO.

[15]

RO

reserved

Issue 02 (2010-04-20)

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-35

Hi3515
Data Sheet

9 SATA

Full flag of the link receive FIFO.
[14]

RO

link_rx_fifo_full

0: not full
1: full
Empty flag of the link receive FIFO.

[13]

link_rx_fifo_empty 0: not empty

RO

1: empty
[12:8]

RO

link_rx_fifo_count Data amount in the link receive FIFO.

[7]

RO

reserved

Reserved.
Full flag of the link transmit FIFO.

[6]

RO

link_tx_fifo_full

0: not full
1: full
Empty flag of the link transmit FIFO.

[5]

link_tx_fifo_empty 0: not empty

RO

1: empty
[4:0]

RO

link_tx_fifo_count Data amount in the link transmit FIFO.

SATA_PORT_DMA1
SATA_PORT_DMA1 is DMAC test status register 1.
Total Reset Value

0x058+nx0x80

SATA_PORT_DMA1

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Reset 0

0

0

0

0

0

0

txdmac_prd_i

Name

9-36

Register Name

txdmac_cur_state

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

tx_entry_dbc_cnt

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RO

reserved

Reserved.

[27:24]

RO

txdmac_cur_state

Current state of the SATA_TX_DMAC state machine.

[23]

RO

txdmac_prd_i

I bit in the entry of the PRD linked list of SATA_TX_DAMC.

[22:0]

RO

tx_entry_dbc_cnt

Down counter in SATA_TX_DMAC. It indicates the number of
data bytes in the current entry.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

SATA_PORT_DMA2
SATA_PORT_DMA2 is DMAC test status register 2.

Bit

Offset Address

Register Name

Total Reset Value

0x05C+nx0x80

SATA_PORT_DMA2

0x0020_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

8

7

6

tx_data_fis_cnt
0

0

0

0

0

1

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

5

4

3

2

1

0

0

0

tx_cmdh_prdtl
0

0

0

0

0

0

0

0

0

0

0

0

[23:8]

RO

tx_data_fis_cnt

Down counter in SATA_TX_DMAC. It indicates the number of
data FIS bytes during the operation of PIO, legacy DMA, or first
party DMA. For the PIO operation, the initial value is equal to the
value of transcount in the PIO setup FIS; for the legacy DMA or
first party DMA operation, the initial value is 16'h2000 (2048
DWORD).

[7:0]

RO

tx_cmdh_prdtl

Down counter in SATA_TX_DMAC. The parameter in the
command header indicates the number of entries in the physical
region descriptor table (PRDT).

SATA_PORT_DMA3
SATA_PORT_DMA3 is DMAC test status register 3.

Bit

Offset Address

Register Name

Total Reset Value

0x060+nx0x80

SATA_PORT_DMA3

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

tx_fpdma_tran_cnt

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

Down counter in SATA_TX_DMAC. It indicates the number of
tx_fpdma_tran_cnt data FIS bytes during the first party DMA operation. The initial
value is equal to the value of transcount in the DMA setup FIS.

SATA_PORT_DMA4
SATA_PORT_DMA4 is DMAC test status register 4.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-37

Hi3515
Data Sheet

9 SATA
Register Name

Total Reset Value

0x064+nx0x80

SATA_PORT_DMA4

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Reset 0

0

0

0

0

0

0

rxdmac_prd_i

Name

rxdmac_cur_state

Bit

Offset Address

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rx_entry_dbc_cnt

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:28]

RO

reserved

Reserved.

[27:24]

RO

rxdmac_cur_state Current state of the SATA_RX_DMAC state machine.

[23]

RO

rxdmac_prd_i

I bit in the entry of the PRD linked list of SATA_RX_DAMC.

[22:0]

RO

rx_entry_dbc_cnt

Down counter in SATA_RX_DMAC. It indicates the number of
data bytes in the current entry.

SATA_PORT_DMA5
SATA_PORT_DMA5 is DMAC test status register 5.

Bit

Register Name

Total Reset Value

0x068+nx0x80

SATA_PORT_DMA5

0x0020_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

9-38

Offset Address

0

0

0

0

8

7

6

rx_data_fis_cnt
0

0

0

0

0

1

0

0

0

0

0

Bits

Access

Name

Description

[31:24]

RO

reserved

Reserved.

0

0

5

4

3

2

1

0

0

0

rx_cmdh_prdtl
0

0

0

0

0

0

0

0

0

0

0

0

[23:8]

RO

rx_data_fis_cnt

Down counter in SATA_RX_DMAC. It indicates the number of
data FIS bytes during the operation of PIO, legacy DMA, or first
party DMA. For the PIO operation, the initial value is equal to the
value of transcount in the PIO setup FIS; for the legacy DMA or
first party DMA operation, the initial value is 0x2000 (2048
DWORD).

[7:0]

RO

rx_cmdh_prdtl

Down counter in SATA_RX_DMAC. The parameter in the
command header indicates the number of entries in the PRDT.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

SATA_PORT_DMA6
SATA_PORT_DMA6 is DMAC test status register 6.

Bit

Offset Address

Register Name

Total Reset Value

0x6C+nx0x80

SATA_PORT_DMA6

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

rx_fpdma_tran_cnt

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

Down counter in SATA_RX_DMAC. It indicates the number of
rx_fpdma_tran_cnt data FIS bytes during the first party DMA operation. The initial
value is equal to the value of transcount in the DMA setup FIS.

SATA_PORT_DMA7
SATA_PORT_DMA7 is DMAC test status register 7.
Register Name

Total Reset Value

0x070+nx0x80

SATA_PORT_DMA7

0x0005_0000

0

0

0

0

0

0

0

0

dmac_tx_fifo_empty

0

dmac_tx_fifo_full

Reset 0

dmac_rx_fifo_empty

reserved

dmac_rx_fifo_full

Name

pio_op

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

fpdma_op

Bit

Offset Address

0

0

0

1

0

1

Bits

Access

Name

Description

[31:22]

RO

reserved

Reserved.

8

7

6

dmac_rx_fifo_cnt

0

0

0

0

0

0

5

4

3

2

1

0

0

0

dmac_tx_fifo_cnt

0

0

0

0

0

0

0

0

PIO operation indication.
[21]

RO

pio_op

0: The current command is not used for the PIO operation.
1: The current command is for the PIO operation.
First party DMA operation indication.

[20]

RO

fpdma_op

0: The current command is not used for the first party DMA
operation.
1: The current command is for the first party DMA operation.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-39

Hi3515
Data Sheet

9 SATA

Full status of SATA_DMAC_RX_FIFO.
[19]

RO

dmac_rx_fifo_full 0: not full
1: full

[18]

Empty status of SATA_DMAC_RX_FIFO.
dmac_rx_fifo_empt
0: not empty
y
1: empty

RO

Full status of SATA_DMAC_TX_FIFO.
[17]

RO

dmac_tx_fifo_full 0: not full
1: full

[16]

RO

Empty status of SATA_DMAC_TX_FIFO.
dmac_tx_fifo_empt
0: not empty
y
1: empty

[15:8]

RO

dmac_rx_fifo_cnt

Number of data segments in SATA_DMAC_RX_FIFO (in
DWORD).

[7:0]

RO

dmac_tx_fifo_cnt

Number of data segments in SATA_DMAC_TX_FIFO (in
DWORD).

SATA_PORT_PHYCTL
SATA_PORT_PHYCTL is the PHY control register.

SATA_PORT_PHYCTL

0x0E63_6159

1

0

0

0

1

1

Bits

Access

Name

Description

[31:29]

RO

reserved

Reserved.

0

1

0

0

0

7

0

1

0

6

5

4

3

tx_atten

1

tx_edgerate

tx_calc

1

rx_term_en

0

rx_eq_val

0

rx_dpll_mode

1

los_ctl

gen2_en

1

neg_mode_b

1

dp_rdy

0

bist_tx_fspd

0

phy_calibrated

0

spd_change_ack

Reset 0

phy_disable

Name

8
rx_align_en

0x074+nx0x80

tx_clk_align

Total Reset Value

tx_cko_en

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

reserved

Bit

Offset Address

1

0

2

1

0

tx_boost

1

1

0

0

1

Whether to use the PHY.
[28]

RW

phy_disable

0: used
1: not used
Whether to calibrate the PHY.

[27]

RW

phy_calibrated

0: not calibrated
1: calibrated

9-40

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Whether the rate is allowed to switch.
[26]

RW

spd_change_ack

0: not allowed
1: allowed
Whether the PHY is ready to transmit data.

[25]

RW

dp_rdy

0: not ready
1: ready
Whether the clock frequency is forced to transmit in BIST mode.

[24]

RW

bist_tx_fspd

0: not forced
1: forced
Negotiation mode B select.

[23]

RW

neg_mode_b

0: not supported
1: supported
Transmit control signal. It indicates whether to support the 3G
mode.

[22]

RW

gen2_en

0: not supported
1: supported
LOS detection control.
00: The LOS detection is disabled.

[21:20]

RW

los_ctl

01: Reserved.
10: The OOB signal is being detected.
11: Reserved.
Control mode of the receive DPLL.
000: indicates PHUG is 1 and FRUG is 1.

[19:17]

RW

rx_dpll_mode

001: indicates PHUG is 2 and FRUG is 2.
010: indicates PHUG is 1 and FRUG is 4.
011: indicates PHUG is 2 and FRUG is 4.
Others: Reserved.

[16:14]

RW

rx_eq_val

Receive balancing control. The internal balancing value is ~
(rx_eq_val + 1) x 0.5 dB.
Receive termination enable.

[13]

RW

rx_term_en

0: disabled
1: enabled

[12]

RW

tx_calc

Reserved, fixed at 0.
Edge control for the transmitted signal.

[11:10]

RW

tx_edgerate

When the rate of the SATA port is 1.5 Gbps, set these bits to 0b01.
When the rate of the SATA port is 3 Gbps, set these bits to 0b00.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-41

Hi3515
Data Sheet

9 SATA

tx_cko_clk clock enable.
[9]

RW

tx_cko_en

0: disabled
1: enabled
Received data alignment.

[8]

RW

0: not supported

rx_align_en

1: supported
Transmit clock alignment.
[7]

RW

tx_clk_align

0: not aligned
1: aligned
Transmit attenuation control.
000: 16/16
001: 14/16

[6:4]

RW

010: 12/16

tx_atten

011: 10/16
100: 9/16
101: 8/16
11X: reserved

[3:0]

RW

Transmit boost control. The value is –20log [1- (tx_boost[3:0] +
0.5)/32]dB.

tx_boost

SATA_PORT_PHYSTS
SATA_PORT_PHYSTS is the PHY test status register.

9-42

0

0

0

0

0

0

0

0

0

0

0

0

0

0

tx_en

0

7

0

0

0

6

5

4

3

2

1

0

los

0

8

op_done

0

rx_en

0

pwr_state

0

rx_pll_pwron

0

link_rdy

0

init_compl

Reset 0

tx_done

reserved

spd_change

Name

tx_rxpres

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

phyrdy

0x0000_0000

half_rate

SATA_PORT_PHYSTS

phy_cominit

0x078+nx0x80

phy_comwake

Total Reset Value

mpll_pwron

Register Name

tx_cko_word

Bit

Offset Address

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:19]

RO

reserved

Reserved.

[18]

RW

tx_cko_word

Indicates the word receive clock of each lane, reserved currently.

[17]

RW

tx_rxpres

Indicates the receive detection, reserved currently.

[16]

RW

tx_done

Indicates that the operation of transmitting part of requests is
complete, active high and reserved currently.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

[15]

RW

spd_change

Indicates the rate change

[14]

RW

link_rdy

Indicates that sufficient D10.2 is transmitted in high level.

[13]

RW

init_compl

Indicates that non-align primitive is received in high level and
initialization is complete.

[12]

RW

pwr_state

Indicates the low-power mode (partial or slumber state) when the
bit is 1; indicates the active state in other cases.

[11]

RW

rx_pll_pwron

Indicates the power-on reset signal of the receive PLL.

[10]

RW

rx_en

Indicates the control status of the rx_en signal.

[9:7]

RW

tx_en

Indicates the control status of the tx_en signal.

[6]

RW

mpll_pwron

Indicates the power-on control signal of the MPLL.

[5]

RW

phy_comwake

Indicates that the PHY detects the COMWAKE signal, active
high.

[4]

RW

phy_cominit

Indicates that the PHY detects the COMINIT signal, active high.

[3]

RW

half_rate

Indicates the rate of 1.5 Gbps when the bit is 1.

[2]

RW

phyrdy

Indicates that the PHY is initialized and then the PHY can
communicate with the link layer.

[1]

RW

los

Indicates the loss of signal output, active high.

[0]

RW

op_done

Indicates that the operations requested by the MPLL are complete,
active high.

9.8 Appendix A Formats of the SATA Command Lists
Figure 9-5 shows the structure of the FIS linked list. The linked list refers to the areas that are
created in the system memory by the software. The base address of the linked list is stored in
the PxFB and PxFBU registers in the AHCI register group. The DMAC uses this base address
as its destination address and copies the received frames to different areas.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-43

Hi3515
Data Sheet

9 SATA

Figure 9-5 Structure of the linked list
00h

PxFB

DSFIS:
DMA Setup FIS
1Ch
20h
PSFIS:
PIO Setup FIS
34h
40h
RFIS:
D2H Register FIS

SDBFIS:
Set Device Bits FIS
UFIS:
Unknown FIS
(up to 64 bytes)

54h
58h
60h

A0h

Reserved
FFh

Figure 9-6 shows the structures of a command list and a data list. Such lists refer to the areas
that are created in the system memory by the software. A command list contains up to 32
commands and its base address is specified by the PxCLB and PxCLBU registers in the AHCI
register group. Each command has a command header in which the CTBA0 part specifies the
base address of the command table. The command table contains the commands to be read
and the data space linked list to be read and written.

9-44

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

9 SATA

Figure 9-6 Structures of the command list and data list

Command list
Command 00h
header 0
Command 20h
header 1
Command 40h
header 2

PxCLB

60h
...

31
DW
0
DW
1
DW
2
DW

15
PRDTL

PMP

7

0

R C B R P W A CFL

PRDBC: PRD byte count
CTBA0: Command table base address Reserved

3 CTBA_U0: Command table base adr upper 32-bits
DW
Reserved
4
DW
Reserved
5
DW
Reserved
6
DW
Reserved
7

Command 3C0h
header 30
Command 3E0h
header 31
400h

Command Table
00h

40h

CFIS:command
FIS
(up to 64 bytes)

Data table
(<=4MB)
DATA 0
DATA 1

ACMD:ATAPI
command
(12 or 16 bytes)

DATA 2
DATA 3

50h
Reserved

80h
PRDT:physical region
descriptor table
(up to 65535 entries)

Item 0
Item 1

31

23
15
7
0
DBA:data base address
0
DBAU:data base addr upper 32bits
Reserved
I

Reserved

DBC:Byte count

...

1
DATA n

Item
CHz[PRDTL]-1

Each time before a command is executed, the preceding two lists must be created in the
memory. For details about the meaning of the lists, see the AHCI1.2 protocol. In Figure 9-6 ,
the CFIS area is used to store the H2D register FISs. For details, see the SATA2.5 protocol.
The ACMD area is used to store the commands relevant to the ATAPI operation. For details,
see the protocols about the DVD devices and CD-ROMs provided by the Small Form Factor
(SSF) Committee.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

9-45

Hi3515
Data Sheet

Contents

Contents
10 USB 2.0 Host............................................................................................................................10-1
10.1 Overview ...................................................................................................................................................10-1
10.2 Function Description .................................................................................................................................10-1
10.3 Operating Mode ........................................................................................................................................10-3
10.3.1 Interface Signals...............................................................................................................................10-3
10.3.2 Typical Application ..........................................................................................................................10-4
10.3.3 Clock Gating ....................................................................................................................................10-4
10.3.4 Soft Reset.........................................................................................................................................10-5
10.4 Register Summary .....................................................................................................................................10-5
10.5 Register Description..................................................................................................................................10-5

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 10-1 Logic block diagram of the USB module .....................................................................................10-2
Figure 10-2 Reference design of the USB 2.0 host ..........................................................................................10-4

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 10-1 Interface signals of the USB 2.0 host .............................................................................................10-3
Table 10-2 Summary of the USB registers (base address: 0x100B_0000) .......................................................10-5

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

10 USB 2.0 Host

10

USB 2.0 Host

10.1 Overview
The USB 2.0 host controller supports the high-speed (480 Mbit/s), full-speed (12 Mbit/s), and
low-speed (1.5 Mbit/s) data transfer modes. It also fully complies with the USB 2.0, open host
controller interface (OHCI) Rev 1.0a, and enhanced host controller interface (EHCI) Rev 1.0
protocols. The USB 2.0 host controller consists of a root hub that is a part of the USB system
and is used to extend the USB interface. Most of the hardware logics in the controller is used
to:
z

Control and process the data transfer.

z

Parse data packets and packetize the data.

z

Encode and decode the signals transmitted through the USB interface.

z

Provide interfaces (such as the interrupt vector interface) for the driver.

10.2 Function Description
Features
The USB 2.0 host controller has the following features:
z

Supports the USB 2.0 protocol.

z

Supports the OHCI Rev 1.0a and EHCI Rev 1.0 protocols.

z

Supports the high-speed, full-speed, and low-speed data transfer modes.

z

Supports the low-power consumption solution.

z

Supports four basic data transfer modes including control transfer, interrupt transfer, bulk
transfer, and isochronous transfer.

z

Supports the connections to up to 127 devices through USB hubs.

Figure 10-1 shows the logic block diagram of the USB module.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

10-1

Hi3515
Data Sheet

10 USB 2.0 Host

Figure 10-1 Logic block diagram of the USB module

CPU

DP0

UTMI+

USB2.0 Host Controller

Serial Interface

Memory

AHB BUS

DM0

PHY
DP1
DM1

UTMI: USB2.0 transceiver macrocell interface

Function Principle
The USB 2.0 host supports the following four standard transfer modes:
z

Control transfer
This mode applies to the data transfer between the USB host and the USB device
endpoint 0. For the USB device with specific models, other endpoints can be used in
control transfer mode. The control transfer is bi-directional, and the transferred data
volume is small. Depending on the device and transfer speed, the 8-byte data, 16-byte
data, 32-byte data, or 64-byte data can be transferred.

z

Bulk transfer
This mode applies to the data transfer in bulk when there is no limit on the bandwidth
and time interval. The device in this mode is the best choice when the transfer speed is
low and many data transfers are delayed. In this case, bulk transfer is performed after all
other types of data transfers are complete. This mode features in the error-free data
transfer between the USB host and the device through error detection and
re-transmission mechanism.

z

Isochronous transfer
This mode applies to the stream data transfer with the strict time requirement and strong
error tolerance or the instant data transfer at a constant data rate. This mode provides a
fixed bandwidth and time interval.

z

Interrupt transfer
This mode is designed to support those devices that do not need to send or receive data
frequently but with bounded service periods. An interrupt pipe is a stream pipe and is
therefore always uni-directional. An endpoint descriptor identifies whether the
communication flow in a given interrupt pipe flows into or out of the host.

10.3 Operating Mode
10.3.1 Interface Signals
Table 10-1 lists the interface signals of the USB 2.0 host integrated with the USB physical
layer entity sublayer (PHY).

10-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

10 USB 2.0 Host

Table 10-1 Interface signals of the USB 2.0 host
Signal Name

Direction

Function Description

Corresponding
Pin

USBDP0

I/O

D+ data line of USB port 0

USBDP0

USBDM0

I/O

D- data line of USB port 0

USBDM0

USBDP1

I/O

D+ data line of USB port 1

USBDP1

USBDM1

I/O

D- data line of USB port 1

USBDM1

USBREXT

I/O

External resistor. The external
reference impedance is 3.4 KΩ ±
1% and the external resistor is
placed as close as possible to the
USBREXT pin.

USBREXT

USBVDDA33T0_0

I/O

Analog power supply, 3.3 V ±
5%.

USBVDDA33T0_0

USBVDDA33T0_1

I/O

Analog power supply, 3.3 V ±
5%.

USBVDDA33T0_1

USBVSSA33T0_0

I/O

Analog ground.

USBVSSA33T0_0

USBVSSA33T0_1

I/O

Analog ground.

USBVSSA33T0_1

USBVSSA33T0_2

I/O

Analog ground.

USBVSSA33T0_2

USBVDDA33C

I/O

Analog power supply, 3.3 V ±
5%.

USBVDDA33C

USBVSSA33C

I/O

Analog ground.

USBVSSA33C

USBVDDA33T1_0

I/O

Analog power supply, 3.3 V ±
5%.

USBVDDA33T1_0

USBVDDA33T1_1

I/O

Analog power supply, 3.3 V ±
5%.

USBVDDA33T1_1

USBVSSA33T1_0

I/O

Analog ground.

USBVSSA33T1_0

USBVSSA33T1_1

I/O

Analog ground.

USBVSSA33T1_1

USBVSSA33T1_2

I/O

Analog ground.

USBVSSA33T1_2

USBVDD0

I/O

Digital power supply, 1.0 V ±
5%.

USBVDD0

USBVSS0

I/O

Digital ground.

USBVSS0

USBVDD1

I/O

Digital power supply, 1.0 V ±
5%.

USBVDD1

USBVSS1

I/O

Digital ground.

USBVSS1

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

10-3

Hi3515
Data Sheet

10 USB 2.0 Host

10.3.2 Typical Application
Figure 10-2 shows the reference design of the USB 2.0 host integrated with the PHY.

To ensure high signal quality, pay attention to the following points when designing the printed
circuit board (PCB):
z

A 45 Ω match resistor is configured for each of the DP and DM data line at the USB 2.0
host side. Therefore, no resistor needs to be connected externally.

z

The capacitance of the external electrostatic discharge (ESD) device is about 1 pF.

z

The EN signal and overcurrent protection of the voltage pump are controlled through the
GPIO.

Figure 10-2 Reference design of the USB 2.0 host
Voltage pump

IN
FLG
OUT
EN

5V
GPIO

DM
Standard
socket A

DP

USB 2.0
host
REXT
3.4 k

GND
GND

10.3.3 Clock Gating
To enable the working clock of the controller, you need to write 1 to SC_PEREN[usb_clken].
To disable the working clock, you need to write 1 to SC_PERDIS[usb_clkdis]. After clock
reset, the working clock is enabled by default.

10.3.4 Soft Reset
By default, the USB 2.0 host is always in reset state. To start the USB 2.0 host, you need to
set the system controller SC_PERCTRL8[usb_srst] to 1 to clear the reset at the USB PHY
side, and then set SC_PERCTRL8[usb_hrst] to 1 to clear the reset at the USB bus side. You
also need to adjust the values of SC_PERCTRL12[usb_tune0] and
SC_PERCTRL12[usb_tune1]. The recommended values are the standard level.

10-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

10 USB 2.0 Host

10.4 Register Summary
The USB module is a standard USB 2.0 host and the internal registers are the standard EHCI and OHCI
registers which are described in the EHCI and OHCI protocols. For details, see the related protocols.
The following descriptions are related to the registers specially defined by the vendors.

Table 10-2 lists the USB registers.
Table 10-2 Summary of the USB registers (base address: 0x100B_0000)
Offset
Address

Register

Description

Page

0x90

INTNREG00

Micro-frame length configuration
register

10-5

0x94

INTNREG01

FIFO OUT/IN threshold register

10-6

0x98

INTNREG02

FIFO depth configuration register

10-6

0x9C

INTNREG03

Interrupt memory transfer enable
register

10-7

0xA0

INTNREG04

Debug register

10-7

0xA4

INTNREG05

Control and status register

10-8

0xA8

INTNREG06

AHB error status register

10-10

0xAC

INTNREG07

AHB error address register

10-10

Note: The base address of the EHCI register is 0x100B_0000. The base address of the OHCI register is
0x100A_0000. The base address of the register listed in Table 10-2 is the same as that of the EHCI register.

10.5 Register Description
INTNREG00
INTNREG00 is the micro-frame length configuration register.

Bit

Offset Address

Register Name

Total Reset Value

0x90

INTNREG00

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

reserved

Reset 0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

val
0

0

0

0

0

0

Bits

Access

Name

Description

[31:14]

-

reserved

Reserved.

Issue 02 (2010-04-20)

7

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0
en

0

0

0

0

0

0

0

10-5

Hi3515
Data Sheet

10 USB 2.0 Host

[13:1]

RW

Micro-frame counter value. This register is used for emulation
only. In normal state, the micro-frame length is 125 μs as the
protocol specifies. In emulation, you can change the micro-frame
length by configuring this register as required to reduce the
emulation time.

val

Register enable.
[0]

RW

en

0: Disabled.
1: Enabled.

INTNREG01
INTNREG01 is the FIFO OUT/IN threshold register.

Bit

Offset Address

Register Name

Total Reset Value

0x94

INTNREG01

0x0020_0020

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

out_threshold

Reset 0

0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

1

0

0

0

0

0

in_threshold
1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RW

out_threshold

Transmit threshold. During data transmit, when the data amount in
the FIFO is above the transmit threshold, data is transmitted.

[15:0]

RW

in_threshold

Receive threshold. During data receive, when the data amount in
the FIFO is above the receive threshold, data is read from the
FIFO.

INTNREG02
INTNREG02 is the FIFO depth configuration register.

Bit

Offset Address

Register Name

Total Reset Value

0x98

INTNREG02

0x0000_0080

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

7

reserved

Reset 0

10-6

8

0

0

0

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

0

fifo_depth
0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

Bits

Access

Name

Description

[31:12]

-

reserved

Reserved.

[11:0]

RW

fifo_depth

FIFO depth. The value defined here is 32 bits.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

10 USB 2.0 Host

INTNREG03
INTNREG03 is the interrupt memory transfer enable register.
Register Name

Total Reset Value

0x9C

INTNREG03

0x0000_0001

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

1

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

-

reserved

Reserved.

0

0
brk_en

Bit

Offset Address

0

0

0

0

0

0

Interrupt memory transfer enable.
[0]

RO

brk_en

0: Disabled.
1: Enabled.

INTNREG04
INTNREG04 is the debug register.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:6]

-

reserved

Reserved.

Issue 02 (2010-04-20)

0

0

0

0

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

5

4

3

2

1

0

hcsparam_en

0x0000_0000

hccparam_en

INTNREG04

reserved

0xA0

scaledwn_enum_time

Total Reset Value

auto_en

Register Name

nak_reldfix_en

Bit

Offset Address

0

0

0

0

0

0

10-7

Hi3515
Data Sheet

10 USB 2.0 Host

Automatic feature enable.

[5]

RW

0: The automatic feature is enabled. The suspend signal is
deasserted when the run/stop bit is reset by software, but the
hchalted bit is not set.

auto_en

1: The automatic feature is disabled. The port is not suspended
when software clears the run/stop bit.
The default value is 0.
NAK reload enable.
[4]

RW

0: Enabled.

nak_reldfix_en

1: Disabled.
[3]
[2]

-

reserved

Reserved.

RW

Port enumeration time scale down enable.
scaledwn_enum_ti
0: Disabled.
me
1: Enabled.
Write enable of the HCCPARAMS write register.

[1]

RW

hccparam_en

0: Disabled.
1: Enabled.
Write enable of the HCSPARAMS register.

[0]

RW

0: Disabled.

hcsparam_en

1: Enabled.

INTNREG05
INTNREG05 is the control and status register. It is used to read/write the PHY register.
The USB host interface can be configured as the UTMI or UTMI+ low pin interface (ULPI).
The register descriptions vary according to interface types.
When the interface is a UTMI, the description is as follows.
Register Name

Total Reset Value

0xA4

INTNREG05

0x0000_1000

Name

reserved

Reset 0

10-8

0

0

0

0

0

0

0

0

0

0

0

0

0

0

vcontrol_loadm

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

vbusy

Bit

Offset Address

vport

0

Bits

Access

Name

Description

[31:18]

-

reserved

Reserved.

0

0

0

1

8

7

6

5

vcontrol

0

0

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4

3

2

1

0

0

0

0

vstatus

0

0

0

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

10 USB 2.0 Host

[17]

RO

vbusy

The value 1 indicates that hardware is writing data. This bit is
cleared only when the process is complete.

[16:13]

RW

vport

Port ID which cannot exceed the supported number of ports.
Load enable.

[12]

RW

0: Enabled.

vcontrol_loadm

1: Disabled.
[11:8]

RW

vcontrol

Port control signal.

[7:0]

RO

vstatus

Port status signal.

When the interface is a ULPI, the description is as follows.
Total Reset Value

0xA4

INTNREG05

0x0000_0000

Reset 0

reserved

Name

Register Name

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
vendor control

Bit

Offset Address

0

vport

0

0

0

0

0

access

0

0

0

immidiate address

0

0

0

0

0

8

7

6

5

extend address

0

0

0

0

1

0

0

4

3

2

1

0

0

0

0

value

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31]

R/W

vendor control

The register can be read/written by writing 1 to this bit. After the
operation is complete, this bit is cleared automatically.

[30:28]

-

reserved

Reserved.

[27:24]

RW

vport

Port ID which cannot exceed the supported number of ports.
Read/write access to the register.
00: Reserved.

[23:22]

RW

access

01: Reserved.
10: Write access to the register.
11: Read access to the register.

[21:16]

RW

immidiate address Register address.

[15:8]

RW

extend address

Extended register address.
Register value.

[7:0]

RW

Issue 02 (2010-04-20)

value

This value is written to the register during the write operation.
This value is read from the register during the read operation after
bit[31] is cleared.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

10-9

Hi3515
Data Sheet

10 USB 2.0 Host

INTNREG06
INTNREG06 is the AHB error status register.

Bit

Offset Address

Register Name

Total Reset Value

0xA8

INTNREG06

0x0000_0000

Name

Reset 0

reserved

0

0

0

0

0

0

0

0

0

0

0

8

hbusrt_err

err_capture

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

0

0

0

0

0

0

0

0

0

0

7

6

5

4

num_beat_err

0

0

0

0

0

3

2

1

0

num_beat_ok

0

0

0

0

0

Bits

Access

Name

Description

[31]

RW

err_capture

Indicates that an AHB error is captured.

[30:12]

-

reserved

Reserved.

[11:9]

RO

hbusrt_err

Indicates the hbrust value during a control transfer when an AHB
error occurs.

[8:4]

RO

Indicates the number of beats during a burst transfer when an AHB
error occurs. The maximum number of beats is 16.

num_beat_err

0x00–0x10: Valid.
0x11–0x1F: Reserved.

[3:0]

RO

Indicates the number of beats that are complete successfully
during a burst transfer when an AHB error occurs.

num_beat_ok

INTNREG07
INTNREG07 is the AHB error address register.

Bit

Offset Address

Register Name

Total Reset Value

0xAC

INTNREG07

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

err_addr

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

err_addr

Indicates the address during a control transfer when an AHB error
occurs.

10-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Contents

Contents
11 Other Peripheral Interfaces..................................................................................................11-1
11.1 I2C Interface .............................................................................................................................................. 11-1
11.1.1 Overview.......................................................................................................................................... 11-1
11.1.2 Features ............................................................................................................................................ 11-1
11.1.3 Signal Description............................................................................................................................ 11-1
11.1.4 Function Description........................................................................................................................ 11-2
11.1.5 Operating Mode ............................................................................................................................... 11-4
11.1.6 Register Summary............................................................................................................................ 11-8
11.1.7 Register Description......................................................................................................................... 11-9
11.2 UART ...................................................................................................................................................... 11-31
11.2.1 Overview........................................................................................................................................ 11-31
11.2.2 Features .......................................................................................................................................... 11-31
11.2.3 Signal Description.......................................................................................................................... 11-31
11.2.4 Function Description...................................................................................................................... 11-33
11.2.5 Operating Mode ............................................................................................................................. 11-35
11.2.6 Register Summary.......................................................................................................................... 11-38
11.2.7 Register Description....................................................................................................................... 11-39
11.3 SPI ........................................................................................................................................................... 11-52
11.3.1 Overview........................................................................................................................................ 11-52
11.3.2 Features .......................................................................................................................................... 11-52
11.3.3 Signal Description.......................................................................................................................... 11-53
11.3.4 Function Description...................................................................................................................... 11-53
11.3.5 Operating Mode ............................................................................................................................. 11-62
11.3.6 Register Summary.......................................................................................................................... 11-65
11.3.7 Register Description....................................................................................................................... 11-65
11.4 IR............................................................................................................................................................. 11-73
11.4.1 Overview........................................................................................................................................ 11-73
11.4.2 Features .......................................................................................................................................... 11-73
11.4.3 Signal Description.......................................................................................................................... 11-73
11.4.4 Function Description...................................................................................................................... 11-73
11.4.5 Operating Mode ............................................................................................................................. 11-82
11.4.6 Register Summary.......................................................................................................................... 11-85

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Contents

11.4.7 Register Description....................................................................................................................... 11-85
11.5 GPIO ....................................................................................................................................................... 11-98
11.5.1 Overview........................................................................................................................................ 11-98
11.5.2 Features .......................................................................................................................................... 11-98
11.5.3 Signal Description.......................................................................................................................... 11-98
11.5.4 Function Description.................................................................................................................... 11-101
11.5.5 Operating Mode ........................................................................................................................... 11-101
11.5.6 Register Summary........................................................................................................................ 11-104
11.5.7 Register Description..................................................................................................................... 11-105

ii

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Figures

Figures
Figure 11-1 Circuit diagram of the typical I2C application............................................................................... 11-2
Figure 11-2 Timing for I2C data transfer .......................................................................................................... 11-2
Figure 11-3 Frame format for I2C data transfer ................................................................................................ 11-3
Figure 11-4 Typical application block diagram 1 of the UART ..................................................................... 11-33
Figure 11-5 Typical application block diagram 2 of the UART ..................................................................... 11-34
Figure 11-6 Block diagram of the RTS signal output mode ........................................................................... 11-34
Figure 11-7 Frame format of the UART......................................................................................................... 11-35
Figure 11-8 Application block diagram when the SPI is connected to a single slave device ......................... 11-54
Figure 11-9 Application block diagram when the SPI is connected to two slave devices .............................. 11-54
Figure 11-10 Application block diagram of the SPI acting as a slave device ................................................. 11-55
Figure 11-11 Motorola SPI single frame format (spo = 0, sph = 0)................................................................ 11-55
Figure 11-12 Motorola SPI continuous frame format (spo = 0, sph = 0)........................................................ 11-56
Figure 11-13 Motorola SPI single frame format (spo = 0, sph = 1)................................................................ 11-56
Figure 11-14 Motorola SPI continuous frame format (spo = 0, sph = 1)........................................................ 11-57
Figure 11-15 Motorola SPI single frame format (spo = 1, sph = 0)................................................................ 11-57
Figure 11-16 Motorola SPI continuous frame format (spo = 1, sph = 0)........................................................ 11-58
Figure 11-17 Motorola SPI single frame format (spo = 1, sph = 1)................................................................ 11-58
Figure 11-18 Motorola SPI continuous frame format (spo = 1, sph = 1)........................................................ 11-59
Figure 11-19 TI synchronous serial single frame format................................................................................ 11-59
Figure 11-20 TI synchronous serial continuous frame format........................................................................ 11-60
Figure 11-21 National Semiconductor Microwire single frame format.......................................................... 11-60
Figure 11-22 National Semiconductor Microwire continuous frame format.................................................. 11-61
Figure 11-23 Functional block diagram of the IR module.............................................................................. 11-74
Figure 11-24 Frame format for transmitting a single NEC with simple repeat code...................................... 11-76
Figure 11-25 Frame format for transmitting continuous NEC with simple repeat codes by holding the key down
......................................................................................................................................................................... 11-77
Figure 11-26 Definitions of bit0 and bit1 in the NEC with simple repeat code ............................................. 11-77

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Figures

Figure 11-27 Code format for transmitting a single NEC with simple repeat code........................................ 11-77
Figure 11-28 Code format for transmitting continuous NEC with simple repeat codes by holding the key down
......................................................................................................................................................................... 11-77
Figure 11-29 Frame format for transmitting a single NEC with full repeat code ........................................... 11-78
Figure 11-30 Frame format for transmitting continuous NEC with full repeat codes by holding the key down
......................................................................................................................................................................... 11-78
Figure 11-31 Definitions of bit0 and bit1 in the NEC with full repeat code................................................... 11-78
Figure 11-32 Code format for transmitting a single NEC with full repeat code............................................. 11-79
Figure 11-33 Frame format for transmitting a single TC9012 code ............................................................... 11-79
Figure 11-34 Frame format for transmitting continuous TC9012 code by holding the key down.................. 11-80
Figure 11-35 Definitions of bit0 and bit1 of the TC9012 code....................................................................... 11-80
Figure 11-36 Code format for transmitting a single TC9012 code ................................................................. 11-80
Figure 11-37 Code format for transmitting continuous TC9012 codes (C0 = 1)............................................ 11-80
Figure 11-38 Code format for transmitting continuous TC9012 codes (C0 = 0)............................................ 11-81
Figure 11-39 Frame format for transmitting a single SONY code ................................................................. 11-81
Figure 11-40 Frame format for transmitting continuous SONY codes by holding the key down .................. 11-81
Figure 11-41 Definitions of bit0 and bit1 ....................................................................................................... 11-82
Figure 11-42 Process of initializing the IR module ........................................................................................ 11-83
Figure 11-43 Process of reading the decoded data ......................................................................................... 11-84

iv

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Tables

Tables
Table 11-1 Signals of the I2C interface ............................................................................................................. 11-2
Table 11-2 Typical values of I2C_SS_SCL_HCNT.......................................................................................... 11-4
Table 11-3 Typical values of I2C_SS_SCL_LCNT .......................................................................................... 11-4
Table 11-4 Typical values of I2C_FS_SCL_HCNT.......................................................................................... 11-5
Table 11-5 Typical values of I2C_FS_SCL_LCNT .......................................................................................... 11-5
Table 11-6 Summary of the I2C registers (base address: 0x200D_0000).......................................................... 11-8
Table 11-7 Signals of the UART0 interface.................................................................................................... 11-31
Table 11-8 Signals of the UART1 interface.................................................................................................... 11-32
Table 11-9 Signals of the UART2 interface.................................................................................................... 11-32
Table 11-10 Signals of the UART3 interface .................................................................................................. 11-32
Table 11-11 Summary of the UART registers................................................................................................. 11-38
Table 11-12 SPI interface signals.................................................................................................................... 11-53
Table 11-13 Typical configuration of the SPI clock dividers.......................................................................... 11-62
Table 11-14 Summary of the SPI registers (base address: 0x200E_0000) ..................................................... 11-65
Table 11-15 IR interface signals ..................................................................................................................... 11-73
Table 11-16 Statistics on the code formats of the infrared receive data (NEC with simple repeat code) ....... 11-74
Table 11-17 Statistics on the code formats of the infrared receive data (NEC with full repeat code)............. 11-75
Table 11-18 Statistics on the code formats of the infrared receive data (TC9012 and SONY)....................... 11-76
Table 11-19 Summary of the IR registers (base address: 0x2007_0000)........................................................ 11-85
Table 11-20 GPIO interface signals ................................................................................................................ 11-99
Table 11-21 Configuration of pin multiplexing ............................................................................................ 11-101
Table 11-22 Base addresses of the six sets of GPIO pins ............................................................................. 11-105
Table 11-23 Summary of the GPIO registers................................................................................................ 11-105

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11

Other Peripheral Interfaces

11.1 I2C Interface
11.1.1 Overview
The inter-integrated circuit (I2C) interface implements the standard I2C master/slave functions
and complies with the Philips I2C bus protocol. It can serve as a master to receive/transmit
data from/to the slave on the I2C bus or serve as a slave to respond to the data transmit/receive
request sent from the master. The I2C interface is mainly used for controlling external I2C
devices, such as analog-to-digital converter (ADC) and digital-to-analog converter (DAC).

11.1.2 Features
The I2C interface has the following features:
z

Supports the standard I2C bus protocol.

z

Supports master and slave operations.

z

Supports 7-bit and 10-bit device addresses.

z

Supports the programmable clock that controls the communication rate.

z

Supports the directory memory access (DMA) interface.

z

Supports the interrupt and query operation modes.

11.1.3 Signal Description
Table 11-1 lists the signals of the I2C interface.

The serial data (SDA) and serial clock (SCL) I2C pins comply with the I2C specification in
OD (open drain) connection mode.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-1

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-1 Signals of the I2C interface
Signal
Name

Direction

Description

Corresponding
Pin

I2C_SDA

I/O

I2C bidirectional data signal, multiplexed
with the GPIO. For details about the
multiplexing configuration information,
see section 11.1.5 "Pin Multiplexing."

SDA

I2C_SCL

I/O

I2C clock signal, multiplexed with the
GPIO. For details about the multiplexing
configuration information, see section
11.1.5 "Pin Multiplexing."

SDL

11.1.4 Function Description
Typical Application
Figure 11-1 shows the circuit diagram of the typical I2C bus application.
Figure 11-1 Circuit diagram of the typical I2C application

The I2C bus is a two-wire and bidirectional serial bus that implements a simple and effective
data transfer. This bus simplifies the connections between devices and is applicable to the
transfer of a small amount of data between multiple short-distance devices. With the
flexibility of the I2C bus, system development and device extension are implemented easily.

Function Principle
A typical I2C data transfer involves the start signal, slave address transmit, data transfer, and
stop signal. Figure 11-2 shows the timing and Figure 11-3 shows the data frame format.
Figure 11-2 Timing for I2C data transfer

11-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-3 Frame format for I2C data transfer
Master-Transmitter
Protcol
For 7-bit slave address
S

Slave
address

R/W A DATA

A

..
. DATA

A/NA P

‘0’(Write)
For 10-bit slave address
S

Slave address
first 7 bits

R/W A

Slave address
second byte

A DATA

A

..
.

DATA

A/ NA P

‘11110 xx ’‘0’(Write)
Master-Receiver Protcol
For 7-bit slave address
S

Slave
address

R/W A DATA A

..
. DATA

NA P

‘1'(Read)
For 10-bit slave address
S

Slave address
first 7 bits

R/W A

Slave address
second byte

A Sr

..
Slave address
.
first 7 bits

‘11110xx ’ ‘0’(Write)

..
. DATA

NA P

‘1’(Read)

From master to slave

A
NA
S
Sr
P

R/W A DATA A

From slave to master

Acknowledge (SDA low)
No acknowledge (SDA high)
Start condition
Repeated start condition
Stop condition

According to the standard I2C protocol, the start signal (Start) is a special signal sent by the
master on the bus to wake up all the slaves and indicate the start of the data transfer.
The slave address transmit (slave address + W/R) refers to the first data packet sent by the
master after the start condition. It consists of seven slave address bits and one read/write bit. If
it is a 10-bit slave address, two data packets need to be transmitted. In addition, other bits
(except the 10 bits of address) are reserved according to the protocol. Based on the address
information, each slave determines whether to transmit or receive data. After the slave address
is successfully received, the corresponding slave pulls down the SDA at the ninth SCL cycle
and returns an acknowledge signal (ACK) to the master. Then, the subsequent data transfer is
started.
The data transfer (DATA) refers to data receive or transmit according to read and write
commands after the master successfully receives the slave address ACK signal. During the
data transfer, the SDA changes its state only when the SCL is low. The SDA holds when the
SCL is high. Each time the receiver receives one byte, it must send an ACK signal to the

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-3

Hi3515
Data Sheet

11 Other Peripheral Interfaces

transmitter. If the transmitter does not successfully receive the ACK signal, it stops the data
transfer or starts the transfer again.
The stop signal (Stop) is a special signal sent by the master to indicate the end of the data
transfer according to the I2C protocol when the current data transfer is complete and no
subsequent data transfer needs to be initiated yet. When the master sends the stop signal, the
slave must release the bus.

11.1.5 Operating Mode
Pin Multiplexing
The SDA I2C pin is multiplexed with GPIO0_0 and the SCL I2C pin is multiplexed with
GPIO0_1. You can select the pin by configuring the IO Config registers reg37 and reg38.

Clock Configuration
In I2C master mode, the high and low level widths of the SCL I2C bus signal at standard mode
and high-speed mode, namely, the number of cycles relative to the I2C working clock, can be
set through the registers such as I2C_SS_SCL_HCNT, I2C_SS_SCL_LCNT,
I2C_FS_SCL_HCNT, and I2C_FS_SCL_LCNT can be respectively calculated by the
formulas:

* _ HCNT = Tscl _ h × FI 2C − 8 and * _ LCNT = Tscl _ l × FI 2C − 1
z

Tscl_h indicates the high level width of the SCL signal (in cycle).

z

Tscl_l indicates the low level width of the SCL signal (in μs).

z

FI2C indicates the frequency of the I2C working clock (in MHz).

z

In I2C slave mode, the configurations of the registers I2C_SS_SCL_HCNT, I2C_SS_SCL_LCNT,
I2C_FS_SCL_HCNT and I2C_FS_SCL_LCNT are not required.

Table 11-2 to Table 11-5 list the typical values of I2C_SS_SCL_HCNT, I2C_SS_SCL_LCNT,
I2C_FS_SCL_HCNT and I2C_FS_SCL_LCNT.
Table 11-2 Typical values of I2C_SS_SCL_HCNT
I2C Bus Rate
(kbit/s)

I2C Working
Clock (MHz)

SCL High Level
Width (μs)

I2C_SS_SCL_HCN
T (Cycle)

100

100

4

400

Table 11-3 Typical values of I2C_SS_SCL_LCNT

11-4

I2C Bus Rate
(kbit/s)

I2C Working
Clock (MHz)

SCL Low Level
Width (μs)

I2C_SS_SCL_LCNT
(Cycle)

100

100

4.7

470

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-4 Typical values of I2C_FS_SCL_HCNT
I2C Bus Rate
(kbit/s)

I2C Working
Clock (MHz)

SCL High Level
Width (μs)

I2C_FS_SCL_HCN
T (Cycle)

400

100

0.6

60

Table 11-5 Typical values of I2C_FS_SCL_LCNT
I2C Bus Rate
(kbit/s)

I2C Working
Clock (MHz)

SCL Low Level
Width (μs)

I2C_FS_SCL_LCNT
(Cycle)

400

100

1.3

130

Soft Reset
The I2C controller can be reset separately by configuring SC_PERCTRL8[i2c_srst]. After the
reset, the configuration registers are set to the default values. Therefore, these registers must
be initialized again.

Data Transfer in Interrupt or Query Mode
The initialization process in master mode is as follows:
Step 1 Set the timeout flag and detect I2C_STATUS[activity] to check whether the I2C controller is
idle. If I2C_STATUS[activity] is 1, wait and continue the detection until
I2C_STATUS[activity] becomes 0 or the timeout occurs. Then set I2C_ENABLE[enable] to
0 to disable the I2C controller.
Step 2 Write corresponding values to I2C_CON to configure the parameters such as the master mode
and transfer rate.
Step 3 Write the slave address of the interconnected device to I2C_TAR[i2c_tar].
Step 4 Configure I2C_SS_SCL_HCNT and I2C_SS_SCL_LCNT to set the I2C bus clock cycles.
Step 5 Configure I2C_RX_TL and I2C_TX_TL to set the thresholds of TX_FIFO and RX_FIFO.
Step 6 If the driver runs in interrupt mode, set I2C_INTR_MASK to enable the corresponding
interrupts. If in query mode, disable the corresponding interrupts.
Step 7 Write 1 to I2C_ENABLE[enable] to enable the I2C. The initialization configuration is
complete.
----End
The initialization process in slave mode is as follows:
Step 1 Set the timeout flag and detect I2C_STATUS[activity] to check whether the I2C controller is
idle. If I2C_STATUS[activity] is 1, wait and continue the detection until
I2C_STATUS[activity] becomes 0 or the timeout occurs. Then, write 0 to
I2C_STATUS[enable] to disable the I2C controller.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-5

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Step 2 Write corresponding values to I2C_CON to configure the parameters such as the slave mode
and transfer rate.
Step 3 Write the responded slave address in slave mode to I2C_SAR[i2c_sar].
Step 4 Configure I2C_RX_TL and I2C_TX_TL to set the thresholds of TX_FIFO and RX_FIFO.
Step 5 If the driver runs in interrupt mode, set I2C_INTR_MASK to enable the corresponding
interrupts. If in query mode, disable the corresponding interrupts.
Step 6 Write 1 to I2C_ENABLE[enable] to enable the I2C. The initialization configuration is
complete.
----End
To transmit data in master mode, do as follows:
Step 1 Write the data to be transmitted to I2C_DATA_CMD and start data transmit.
Step 2 In query mode, check the TX_FIFO status by reading I2C_STATUS and I2C_TXFLR during
continuous data transmit. In interrupt mode, check the corresponding interrupt status bits.
Before data transmit is complete, ensure that the data in the TX_FIFO does not overflow
(otherwise, data is lost) or is not empty (otherwise, the I2C considers that the transfer ends and
sends the stop signal).
Step 3 Check whether I2C_STATUS[tfe] is 1. If it is 1, it indicates that data transmit is complete. If
it is 0, it indicates that data transmit is not complete and detection continues until 1 is
detected.
----End
To transmit data in slave mode, do as follows:
Step 1 When other masters on the I2C bus start to receive data and the address matches the value of
I2C_SAR, the I2C enables I2C_RAW_INTR_STAT[r_rd_req]. Then, the interrupt is enabled
in interrupt mode.
Step 2 In query mode, if software detects that I2C_RAW_INTR_STAT[r_rd_req] is valid, it writes
the data to be transmitted to I2C_DATA_CMD. In interrupt mode, if the raw interrupt
RD_REQ is found through the detection of corresponding interrupt status bit, then the data to
be transmitted is written to I2C_DATA_CMD.
Step 3 Check whether I2C_STATUS[tfe] is 1. If it is 1, it indicates that data transmit is complete. If
it is 0, it indicates that data transmit is not complete and detection continues until 1 is
detected.
----End
To receive data in master mode, do as follows:
Step 1 Write the read command (0x0100) to I2C_DATA_CMD to start data receive.
Step 2 When receiving data continuously, send the read command (0x0100) to I2C_DATA_CMD
for several times. The send times must be equal to the number of data segments to be received.
For example, to receive three data segments, send the read command to the
I2C_DATA_CMD register for three times. Before data receive is complete, ensure that the
data (namely, the read command 0x100) in TX_FIFO does not overflow or the FIFO is not
empty. In addition, the RX_FIFO status must be detected during continuous data receive to

11-6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

avoid RX_FIFO overflow. In interrupt mode, the RX_FIFO status can be queried by detecting
the interrupt status bit.
Step 3 Check whether I2C_STATUS[activity] is 0. If it is 0, it indicates that data receive is complete.
If it is 1, it indicates that data receive is not complete and detection continues until 0 is
detected.
----End
To receive data in slave mode, do as follows:
Step 4 Other masters on the I2C bus start to receive data and the operation address matches with the
value of I2C_SAR.
Step 5 The I2C interface receives data and stores it in RX_FIFO. During continuous data receive, the
RX_FIFO status must be detected to avoid RX_FIFO overflow. In interrupt mode, the
RX_FIFO status can be queried by detecting the interrupt status bit.
Step 6 Check whether I2C_RAW_INTR_STAT[r_rx_done] is 1. If it is 1, it indicates that data
receive is complete. If it is 0, it indicates that data receive is not complete and detection
continues until 1 is detected.
----End

Data Transfer in DMA Mode
The initialization process is as follows:
Step 1 Set the timeout flag and detect I2C_STATUS[activity] to check whether the I2C controller is
idle. If I2C_STATUS[activity] is 1, wait and continue the detection until
I2C_STATUS[activity] becomes 0 or the timeout occurs. Then, write 0 to
I2C_STATUS[enable] to disable the I2C controller.
Step 2 Write corresponding values to I2C_CON to configure the parameters such as the master mode
and transfer rate.
Step 3 Write the slave address of the interconnected device to I2C_TAR[i2c_tar] in master mode.
Step 4 Configure I2C_SS_SCL_HCNT and I2C_SS_SCL_LCNT to set the I2C bus clock cycles.
Step 5 Configure I2C_DMA_TDLR and I2C_DMA_RDLR to set the thresholds of the DMA
TX_FIFO and RX_FIFO.
Step 6 Write 1 to I2C_ENABLE[enable] to enable the I2C. The initialization configuration is
complete.
----End
To transmit data, do as follows:
Step 1 Configure the DMA data channel, including the source and destination addresses, number of
data segments to be transmitted, and transfer type.
Step 2 Set I2C_DMA_CR to 0x2 to enable the DMA transmit function of the I2C.
Step 3 Check whether the data is transmitted completely by querying the DMA interrupt status. If
data transmit is complete, disable the DMA transmit function of the I2C.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-7

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Data receive consists involves two steps: data transmit and data receive. That is, send the read
command to the I2C controller and then read data from RX_FIFO. To receive data, do as
follows:
Step 1 Configure the DMA data channel, including the parameters of data transfer source (containing
the read command 0x100) and destination address, address of data receive area, number of
data segments to be transferred, and transfer type.
Step 2 Set I2C_DMA_CR to 0x0003 to enable DMA transmit and receive functions of the I2C. The
DMA transmit function needs to be enabled because the read command 0x100 must be sent to
I2C_DATA_CMD before data is received.
Step 3 Check whether the data is received completely by querying the DMA interrupt status. If data
receive is complete, disable the DMA receive function of the I2C.
----End

11.1.6 Register Summary
Table 11-6 Summary of the I2C registers (base address: 0x200D_0000)

11-8

Offset
Address

Register

Description

Page

0x0000

I2C_CON

I2C control register

11-9

0x0004

I2C_TAR

I2C access slave address register

11-10

0x0008

I2C_SAR

Slave I2C address register

11-11

0x0010

I2C_DATA_CMD

I2C data channel register

11-12

0x0014

I2C_SS_SCL_HCNT

High level width configuration register
for the SCL clock at standard speed

11-12

0x0018

I2C_SS_SCL_LCNT

Low level width configuration register
for the SCL clock at standard speed

11-13

0x001C

I2C_FS_SCL_HCNT

High level width configuration register
for the SCL clock at a high speed

11-14

0x0020

I2C_FS_SCL_LCNT

Low level width configuration register
for the SCL clock at a high speed

11-14

0x002C

I2C_INTR_STAT

Interrupt status register

11-15

0x0030

I2C_INTR_MASK

Interrupt mask register

11-17

0x0034

I2C_RAW_INTR_STAT

Raw interrupt status register

11-18

0x0038

I2C_RX_TL

RX_FIFO threshold configuration
register

11-19

0x003C

I2C_TX_TL

TX_FIFO threshold configuration
register

11-20

0x0040

I2C_CLR_INTR

Combined and independent interrupt
clear register

11-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Offset
Address

Register

Description

Page

0x0044

I2C_CLR_RX_UNDER

RX_UNDER interrupt clear register

11-21

0x0048

I2C_CLR_RX_OVER

RX_OVER interrupt clear register

11-21

0x004C

I2C_CLR_TX_OVER

TX_OVER interrupt clear register

11-22

0x0054

I2C_CLR_TX_ABRT

ABRT interrupt clear register

11-22

0x005C

I2C_CLR_ACTIVITY

ACTIVITY status register

11-23

0x0060

I2C_CLR_STOP_DET

STOP_DET interrupt clear register

11-23

0x0064

I2C_CLR_START_DET

START_DET interrupt clear register

11-24

0x0068

I2C_CLR_GEN_CALL

GEN_CALL interrupt clear register

11-24

0x006C

I2C_ENABLE

I2C enable register

11-25

0x0070

I2C_STATUS

I2C status register

11-25

0x0074

I2C_TXFLR

TX_FIFO data count indication register

11-26

0x0078

I2C_RXFLR

RX_FIFO data count indication
register

11-27

0x0080

I2C_TX_ABRT_SOUR
CE

TX_ABRT source interrupt register

11-27

0x0088

I2C_DMA_CR

I2C DMA channel enable control
register

11-29

0x008C

I2C_DMA_TDLR

TX_FIFO threshold configuration
register for DMA operation

11-30

0x0090

I2C_DMA_RDLR

RX_FIFO threshold configuration
register for DMA operation

11-30

11.1.7 Register Description
I2C_CON
I2C_CON is the I2C control register.

I2C_CON can be configured only when the I2C is disabled, that is, I2C_ENABLE[enable] is
0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-9

Hi3515
Data Sheet

I2C_CON

0x0075

14

13

12

Name

Reset

11

10

9

8

7

reserved

0

0

0

0

0

0

0

0

0

6

5

4

3

reserved

0x0000

i2c_10bitaddr_master

Total Reset Value

i2c_restart_en

15

Register Name

reserved

Bit

Offset Address

1

1

1

0

Bits

Access

Name

Description

[15:7]

RO

reserved

Reserved.

[6]

RW

reserved

Reserved. The bit must be 1.

2

1

Speed

1

0

0

master_mode

11 Other Peripheral Interfaces

1

Restart condition enable.
[5]

RW

i2c_restart_en

0: The restart condition is disabled.
1: The restart condition is enabled.

[4]

RW

7-bit or 10-bit address select.
i2c_10bitaddr_ma
0: The 7-bit address is selected.
ster
1: The 10-bit address is selected.

[3]

RO

reserved

Reserved.
I2C operation speed select.
00: Invalid speed.
01: Standard speed, namely, 100 kbit/s.

[2:1]

RW

speed

10: High speed, namely, 400kbit/s.
11: Reserved.
Note that if the bit is set to 00 or 11, it assumes
that the bit is set to 10.
Master mode enable.

[0]

RW

master_mode

0: The master mode is disabled.
1: The Master mode is enabled.

I2C_TAR
I2C_TAR is the I2C access slave address register.

11-10

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

I2C_TAR can be configured only when the I2C is disabled, that is, I2C_ENABLE[enable] is
0.

Name

Reset

Total Reset Value

0x0004

I2C_TAR

0x009C

14

13

12

reserved

0

Bits

0

0

0

11

10
gc_or_start

15

Register Name

special

Bit

Offset Address

0

0

9

7

6

5

4

3

2

1

0

1

1

0

0

i2c_tar

0

Access Name

[15:12] RO

8

reserved

0

1

0

0

1

Description
Reserved.
General call and start byte functions enable.

[11]

RW

special

0: The functions are disabled.
1: The function are enabled.

[10]

RW

gc_or_start

This bit determines whether the function to be
implemented is general call or start byte when
bit[11] is 1.
0: The function to be implemented is general
call.
1: The function to be implemented is start byte.

[9:0]

RW

i2c_tar

Slave address that is accessed by the I2C when
I2C acts as a master.

I2C_SAR
I2C_SAR is the Slave I2C address register.

I2C_SAR can be configured only when the I2C is disabled, that is, I2C_ENABLE[enable] is
0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-11

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Bit

15

Offset Address

Register Name

Total Reset Value

0x0008

I2C_SAR

0x0055

14

13

Name

12

11

10

9

8

7

6

reserved

Reset

0

0

Bits

0

5

4

2

1

0

0

1

0

1

i2c_sar

0

0

0

0

Access Name

0

0

1

0

1

Description

[15:10] RO

reserved

Reserved.

[9:0]

i2c_sar

Address of the slave I2C.

RW

3

I2C_DATA_CMD
I2C_DATA_CMD is the I2C data channel register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0010

I2C_DATA_CMD

0x0000

14

13

Name

12

11

10

9

reserved

Reset

0

0

0

0

8

7

6

5

4

cmd
0

0

0

0

3

2

1

0

0

0

0

0

dat
0

0

Bits

Access

Name

Description

[15:9]

RO

reserved

Reserved.

0

0

Read/write control bit.

[8]

RW

cmd

0: Write operation. It indicates that the I2C
controller will transmit data to the I2C bus. In
this case, the eight LSBs (DAT) are to be
transmitted to the I2C bus by the I2C controller.
1: Read operation. It indicates that the I2C
controller will read data from the I2C bus.
Data to be transmitted or received through the
I2C bus.

[7:0]

RW

dat

In read operation, the eight bits are the data
received on the I2C bus; in write operation, the
eight bits are the data transmitted on the I2C bus.

I2C_SS_SCL_HCNT
I2C_SS_SCL_HCNT is the high level width configuration register for the SCL clock at
standard speed.

11-12

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

I2C_SS_SCL_HCNT can be configured only when the I2C is disabled, that is,
I2C_ENABLE[enable] is 0.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0014

I2C_SS_SCL_HCNT

0x007A

14

13

12

11

10

9

Name

8

7

6

5

4

3

2

1

0

1

1

1

1

0

1

0

i2c_ss_scl_hcnt

Reset

0

0

Bits

0

Access

[15:0]

RW

0

0

0

0

0

0

Name

Description

i2c_ss_scl_hcnt

For details about how to calculate the high level
width of the SCL clock at standard speed, see
11.1.5 "Clock Configuration."
Note that the minimum value is 6 and any
written value less than 6 is regarded as 6.

I2C_SS_SCL_LCNT
I2C_SS_SCL_LCNT is the low level width configuration register for the SCL clock at
standard speed.

I2C_SS_SCL_HCNT can be configured only when the I2C is disabled, that is,
I2C_ENABLE[enable] is 0.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0018

I2C_SS_SCL_LCNT

0x008F

14

13

12

11

10

9

Name
Reset

8

7

6

5

4

3

2

1

0

0

0

0

1

1

1

1

i2c_ss_scl_lcnt
0

Bits

[15:0]

0

0

Access

RW

0

0

0

0

0

1

Name

Description

i2c_ss_scl_lcnt

For details about how to calculate the low level
width of the SCL clock at standard speed, see
11.1.5 "Clock Configuration."
Note that the minimum value is 8 and any
written value less than 8 is regarded as 8.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-13

Hi3515
Data Sheet

11 Other Peripheral Interfaces

I2C_FS_SCL_HCNT
I2C_FS_SCL_HCNT is the high level width configuration register for the SCL clock at a high
speed.

I2C_FS_SCL_HCNT can be configured only when the I2C is disabled, that is,
I2C_ENABLE[enable] is 0.

Bit

15

Offset Address

Register Name

Total Reset Value

0x001C

I2C_FS_SCL_HCNT

0x0013

14

13

12

11

10

9

Name

8

7

6

5

4

3

2

1

0

0

0

1

0

0

1

1

i2c_fs_scl_hcnt

Reset

0

Bits

[15:0]

0

0

Access

RW

0

0

0

0

0

0

Name

Description

i2c_fs_scl_hcnt

For details about how to calculate the high level
width of the SCL clock at a high speed, see
11.1.5 "Clock Configuration."
Note that the minimum value is 6 and any
written value less than 6 is regarded as 6.

I2C_FS_SCL_LCNT
I2C_FS_SCL_LCNT is the low level width configuration register for the SCL clock at a high
speed.

I2C_FS_SCL_LCNT can be configured only when the I2C is disabled, that is,
I2C_ENABLE[enable] is 0.

11-14

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

Bit

11 Other Peripheral Interfaces

15

Offset Address

Register Name

Total Reset Value

0x0020

I2C_FS_SCL_LCNT

0x0028

14

13

12

11

10

9

Name
Reset

8

7

6

5

4

3

2

1

0

0

1

0

1

0

0

0

i2c_fs_scl_lcnt
0

0

Bits

0

Access

[15:0]

RW

0

0

0

0

0

0

Name

Description

i2c_fs_scl_lcnt

For details about how to calculate the low level
width of the SCL clock at a high speed, see
11.1.5 "Clock Configuration."
Note that the minimum value is 8 and any
written value less than 8 is regarded as 8.

I2C_INTR_STAT
I2C_INTR_STAT is the interrupt status register.

Bits

0

0

8

7

6

5

4

3

2

1

0
rx_under

0

9

rx_over

0

10

rx_full

reserved

11

tx_over

12

tx_empty

13

rd_req

14

tx_abrt

0x0000

rx_done

I2C_INTR_STAT

activity

Reset

0x002C

stop_det

Name

Total Reset Value

tart_det

15

Register Name

gen_call

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

0

0

Access Name

[15:12] RO

reserved

Description
Reserved.
GEN_CALL interrupt. It indicates whether a
general call request is received.

[11]

RO

gen_call

0: No general call request is received.
1: A general call request is received.
The I2C stores the received data in the RX
buffer.

[10]

RO

start_det

START_DET interrupt. It indicates whether the
start condition is met on the I2C bus.
0: The start condition is not met on the I2C bus.
1: The start condition is met on the I2C bus.

[9]

RO

stop_det

STOP_DET interrupt. It indicates whether the
stop condition is met on the I2C bus.
0: The stop condition is not met on the I2C bus.
1: The stop condition is met on the I2C bus.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-15

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[8]

RO

activity

ACTIVITY interrupt. It indicates the activity
status of the I2C.
0: The I2C is idle.
1: The I2C is busy.

[7]

RO

rx_done

RX_DONE interrupt. When the I2C acts as the
slave, this bit indicates whether data receive is
complete.
0: Data receive is not complete.
1: Data receive is complete.

[6]

[5]

RO

RO

tx_abrt

rd_req

TX_ABRT interrupt. The interrupt can be
triggered in multiple cases. For details, see
I2C_TX_ABRT_SOURCE.
RD_REQ interrupt. When the I2C acts as the
slave, this bit indicates whether a data read
request is initiated by a master.
0: No data read request is initiated by a master.
1: A data read request is initiated by a master.
ITX_EMPTY interrupt. It indicates whether the
data in the TX_FIFO reaches or is below the
threshold.

[4]

RO

tx_empty

0: The data in the TX_FIFO is above the
threshold.
1: The data in the TX_FIFO reaches or is below
the threshold.

[3]

RO

tx_over

TX_OVER interrupt. It indicates whether the
data in TX_FIFO overflows.
0: The data in TX_FIFO does not overflow.
1: The data in TX_FIFO overflows.

[2]

RO

rx_full

RX_FULL interrupt. It indicates whether the
data in RX_FIF reaches or is below the
threshold.
0: The data in RX_FIF is below the threshold
1: The data in RX_FIF reaches or is above the
threshold.

[1]

RO

rx_over

RX_OVER interrupt. It indicates whether the
data in RX_FIFO overflows.
0: The data in RX_FIFO does not overflow.
1: The data in RX_FIFO overflows.

11-16

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[0]

RO

RX_UNDER interrupt. When RX_FIFO is
empty, the internal bus interface initiates a
request for reading I2C_DATA_CMD.

rx_under

0: Meaningless.
1: When RX_FIFO is empty, the CPU reads
I2C_DATA_CMD.

I2C_INTR_MASK
I2C_INTR_MASK is the interrupt mask register.

Bits

0

Access

[15:12] RO

0

8

7

6

5

4

3

2

1

0
m_rx_under

0

9

m_rx_over

0

10

m_rx_full

reserved

11

m_tx_over

12

m_tx_empty

13

m_rd_req

14

m_tx_abrt

0x08FF

m_rx_done

I2C_INTR_MASK

m_activity

Reset

0x0030

m_stop_det

Name

Total Reset Value

m_start_det

15

Register Name

m_gen_call

Bit

Offset Address

1

0

0

0

1

1

1

1

1

1

1

1

Name

Description

reserved

Reserved.
GEN_CALL interrupt mask.

[11]

RW

m_gen_call

0: The GEN_CALL interrupt is masked.
1: The GEN_CALL interrupt is not masked.
START_DET interrupt mask.

[10]

RW

m_start_det

0: The START_DET interrupt is masked.
1: The START_DET interrupt is not masked.
STOP_DET interrupt mask.

[9]

RW

m_stop_det

0: The STOP_DET interrupt is masked.
1: The STOP_DET interrupt is not masked.
ACTIVITY interrupt mask.

[8]

RW

m_activity

0: The ACTIVITY interrupt is masked.
1: The ACTIVITY interrupt is not masked.
RX_DONE interrupt mask.

[7]

RW

m_rx_done

0: The RX_DONE interrupt is masked.
1: The RX_DONE interrupt is not masked.
TX_ABRT interrupt mask.

[6]

RW

m_tx_abrt

0: The TX_ABRT interrupt is masked.
1: The TX_ABRT interrupt is not masked.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-17

Hi3515
Data Sheet

11 Other Peripheral Interfaces

RD_REQ interrupt mask.
[5]

RW

0: The RD_REQ interrupt is masked.

m_rd_req

1: The RD_REQ interrupt is not masked.
TX_EMPTY interrupt mask.
[4]

RW

m_tx_empty

0: The TX_EMPTY interrupt is masked.
1: The TX_EMPTY interrupt is not masked.
TX_OVER interrupt mask.

[3]

RW

0: The TX_OVER interrupt is masked.

m_tx_over

1: The TX_OVER interrupt is not masked.
RX_FULL interrupt mask.
[2]

RW

0: The RX_FULL interrupt is masked.

m_rx_full

1: The RX_FULL interrupt is not masked.
RX_OVER interrupt mask.
[1]

RW

m_rx_over

0: The RX_OVER interrupt is masked.
1: The RX_OVER interrupt is not masked.
RX_UNDER interrupt mask.

[0]

RW

m_rx_under

0: The RX_UNDER interrupt is masked.
1: The RX_UNDER interrupt is not masked.

I2C_RAW_INTR_STAT
I2C_RAW_INTR_STAT is the raw interrupt status register.

Bits

0

Access

[15:12] RO

0

8

7

6

5

4

3

2

1

0
r_rx_under

0

9

r_rx_over

0

10

r_rx_full

reserved

11

r_tx_over

12

r_tx_empty

13

r_rd_req

14

r_tx_abrt

0x0000

r_rx_done

I2C_RAW_INTR_STAT

r_activity

Reset

0x0034

r_stop_det

Name

Total Reset Value

r_start_det

15

Register Name

r_gen_call

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

0

0

Name

Description

reserved

Reserved.
GEN_CALL raw interrupt status.

[11]

RO

r_gen_call

0: No interrupt is generated.
1: An interrupt is generated.

11-18

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

START_DET raw interrupt status.
[10]

RO

r_start_det

0: No interrupt is generated.
1: An interrupt is generated.
STOP_DET raw interrupt status.

[9]

RO

r_stop_det

0: No interrupt is generated.
1: An interrupt is generated.
ACTIVITY raw interrupt status.

[8]

RO

r_activity

0: No interrupt is generated.
1: An interrupt is generated.
RX_DONE raw interrupt status.

[7]

RO

r_rx_done

0: No interrupt is generated.
1: An interrupt is generated.
Raw interrupt status.

[6]

RO

r_tx_abrt

0: No interrupt is generated.
1: An interrupt is generated.
RD_REQ raw interrupt status.

[5]

RO

r_rd_req

0: No interrupt is generated.
1: An interrupt is generated.
R_TX_EMPTY raw interrupt status.

[4]

RO

r_tx_empty

0: No interrupt is generated.
1: An interrupt is generated.
TX_OVER raw interrupt status.

[3]

RO

r_tx_over

0: No interrupt is generated.
1: An interrupt is generated.
RX_FULL raw interrupt status.

[2]

RO

r_rx_full

0: No interrupt is generated.
1: An interrupt is generated.
RX_OVER raw interrupt status.

[1]

RO

r_rx_over

0: No interrupt is generated.
1: An interrupt is generated.
RX_UNDER raw interrupt status.

[0]

RO

r_rx_under

0: No interrupt is generated.
1: An interrupt is generated.

I2C_RX_TL
I2C_RX_TL is the RX_FIFO threshold configuration register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-19

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Bit

15

Offset Address

Register Name

Total Reset Value

0x0038

I2C_RX_TL

0x0003

14

13

12

Name
Reset

11

10

9

8

7

6

5

4

reserved
0

0

0

0

0

0

0

0

0

0

Access

Name

Description

[15:8]

RO

reserved

Reserved.

RW

2

1

0

0

0

1

1

rx_tl

Bits

[7:0]

3

0

0

RX_FIFO threshold. The actual value is equal to
the configured value plus 1.

rx_tl

Note that any configured value greater than 8 is
considered as 8.

I2C_TX_TL
I2C_TX_TL is the TX_FIFO threshold configuration register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x003C

I2C_TX_TL

0x0003

14

13

Name
Reset

12

11

10

9

8

7

6

5

4

Reserved
0

0

0

0

0

3

2

1

0

0

0

1

1

tx_tl
0

0

0

0

0

Bits

Access

Name

Description

[15:8]

RW

Reserved

Reserved.

0

0

TX_FIFO threshold.
[7:0]

RW

tx_tl

Note that any configured value greater than 8 is
considered as 8.

I2C_CLR_INTR
I2C_CLR_INTR is the combined and independent interrupt clear register.

11-20

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

15

Offset Address

Register Name

Total Reset Value

0x0040

I2C_CLR_INTR

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0
clr_intr

Bit

11 Other Peripheral Interfaces

reserved

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

0

When this register is read, all combined interrupts
and independent interrupts as well as the
I2C_TX_ABRT_SOURCE register are cleared.
[0]

RO

clr_intr

Note that
I2C_TX_ABRT_SOURCE[abrt_sbyte_norstrt]
and the triggered combined interrupts cannot be
cleared.

I2C_CLR_RX_UNDER
I2C_CLR_RX_UNDER is the RX_UNDER interrupt clear register.

15

Register Name

Total Reset Value

0x0044

I2C_CLR_RX_UNDER

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0
clr_rx_under

Bit

Offset Address

reserved

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_rx_under

When this register is read, the RX_UNDER
interrupt is cleared.

I2C_CLR_RX_OVER
I2C_CLR_RX_OVER is the RX_OVER interrupt clear register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-21

Hi3515
Data Sheet

11 Other Peripheral Interfaces

15

Register Name

Total Reset Value

0x0048

I2C_CLR_RX_OVER

0x0000

14

13

12

11

10

9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved

Reset

0

0

0

0

0

0

0

0

0
clr_rx_over

Bit

Offset Address

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_rx_over

When this register is read, the RX_OVER
interrupt is cleared.

0

I2C_CLR_TX_OVER
I2C_CLR_TX_OVER is the TX_OVER interrupt clear register.

15

Register Name

Total Reset Value

0x004C

I2C_CLR_TX_OVER

0x0000

14

13

12

11

10

9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved

Reset

0

0

0

0

0

0

0

0

0
clr_tx_over

Bit

Offset Address

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_tx_over

When this register is read, the TX_OVER
interrupt is cleared.

0

I2C_CLR_TX_ABRT
I2C_CLR_TX_ABRT is the ABRT interrupt clear register.

11-22

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

15

Offset Address

Register Name

Total Reset Value

0x0054

I2C_CLR_TX_ABRT

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0
clr_tx_abrt

Bit

11 Other Peripheral Interfaces

reserved

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_tx_abrt

When this register is read, the TX_ABRT
interrupt and the I2C_TX_ABRT_SOURCE
register are cleared.

I2C_CLR_ACTIVITY
I2C_CLR_ACTIVITY is the ACTIVITY status register.

15

Register Name

Total Reset Value

0x005C

I2C_CLR_ACTIVITY

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved

0

0

0

0

0

0

0

0

0
clr_activity

Bit

Offset Address

0

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_activity

When this register is read, the ACTIVITY
interrupt status can be queried and hardware is
cleared automatically.

I2C_CLR_STOP_DET
I2C_CLR_STOP_DET is the STOP_DET interrupt clear register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-23

Hi3515
Data Sheet

11 Other Peripheral Interfaces

15

Register Name

Total Reset Value

0x0060

I2C_CLR_STOP_DET

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved

0

0

0

0

0

0

0

0

0
clr_stop_det

Bit

Offset Address

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_stop_det

When this register is read, the STOP_DET
interrupt is cleared.

0

I2C_CLR_START_DET
I2C_CLR_START_DET is the START_DET interrupt clear register.

15

Register Name

Total Reset Value

0x0064

I2C_CLR_START_DET

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved

0

0

0

0

0

0

0

0

0
clr_start_det

Bit

Offset Address

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_start_det

When this register is read, the START_DET
interrupt is cleared.

0

I2C_CLR_GEN_CALL
I2C_CLR_GEN_CALL is the GEN_CALL interrupt clear register.

11-24

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

15

Register Name

Total Reset Value

0x0068

I2C_CLR_GEN_CALL

0x0000

14

13

12

11

10

9

Name

Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0
clr_gen_call

Bit

Offset Address

reserved

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

[0]

RO

clr_gen_call

When this register is read, the GEN_CALL
interrupt is cleared.

I2C_ENABLE
I2C_ENABLE is the I2C enable register. It is used to enable or disable the I2C.
When the I2C controller is transferring data, that is, I2C_STATUS[ACTIVITY] is 1, the
controller can be disabled. In this case, the following precautions should be taken:
z

If the I2C controller is disabled when it is transmitting data, the controller stops
transmitting data after the current byte is transmitted and the data in the TX_FIFO is
cleared.

z

If the I2C controller is disabled when it is receiving data, the controller does not respond
to this transfer after the current byte is received. That is, the NACK is sent.

15

Register Name

Total Reset Value

0x006C

I2C_ENABLE

0x0000

14

13

12

11

10

9

Name
Reset

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

reserved
0

0

0

0

0

0

0

0

0
enable

Bit

Offset Address

Bits

Access

Name

Description

[15:1]

RO

reserved

Reserved.

0

I2C enable register.
[0]

RW

enable

0: The I2C is disabled.
1: The I2C is enabled.

I2C_STATUS
I2C_STATUS is the I2C status register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-25

Hi3515
Data Sheet

11 Other Peripheral Interfaces

15

Register Name

Total Reset Value

0x0070

I2C_STATUS

0x0006

14

13

12

11

Name

Reset

10

9

8

7

6

5

reserved

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:5]

RO

reserved

Reserved.

0

4

3

2

1

0

rff

rfne

tfe

tfnf

activity

Bit

Offset Address

0

0

1

1

0

This bit indicates whether the RX_FIFO is full.
[4]

RO

0: The RX_FIFO is not full.

rff

1: The RX_FIFO is full.

[3]

RO

This bit indicates whether the RX_FIFO is
empty.

rfne

0: The RX_FIFO is empty.
1: The RX_FIFO is not empty.

[2]

RO

This bit indicates whether the TX_FIFO is
empty.

tfe

0: The TX_FIFO is not empty.
1: The TX_FIFO is empty.
This bit indicates whether the TX_FIFO is full.

[1]

RO

tfnf

0: The TX_FIFO is full.
1: The TX_FIFO is not full.
I2C bus status.

[0]

RO

0: The I2C bus is idle.

activity

1: The I2C bus is busy.

I2C_TXFLR
I2C_TXFLR is the TX_FIFO data count indication register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0074

I2C_TXFLR

0x0000

14

13

12

11

Name
Reset

11-26

10

9

8

7

6

5

4

3

2

reserved
0

0

0

0

0

0

0

1

0

0

0

txflr
0

0

0

Bits

Access

Name

Description

[15:4]

RO

reserved

Reserved.

0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

0

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[3:0]

RO

txflr

These bits indicate the count of data segments in
TX_FIFO.

I2C_RXFLR
I2C_RXFLR is the RX_FIFO data count indication register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0078

I2C_RXFLR

0x0000

14

13

12

11

Name
Reset

10

9

8

7

6

5

4

3

2

reserved
0

0

0

0

0

0

0

1

0

0

0

rxflr
0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:4]

RO

reserved

Reserved.

[3:0]

RO

rxflr

These bits indicate the count of data segments in
RX_FIFO.

I2C_TX_ABRT_SOURCE
I2C_TX_ABRT_SOURCE is the TX_ABRT source interrupt register.

Bits

0

Access

[15:12] RO

[11]

RO

0

8

7

6

5

4

3

2

1

0
abrt_7b_addr_noack

0

9

abrt_10addr1_noack

0

10

abrt_10addr2_noack

reserved

11

abrt_txdata_noack

12

abrt_gcall_noack

13

abrt_gcall_read

14

abrt_hs_ackdet

0x0000

abrt_sbyte_ackdet

I2C_TX_ABRT_SOURCE

abrt_hs_norstrt

Reset

0x0080

abrt_sbyte_norstrt

Name

Total Reset Value

abrt_10b_rd_norstrt

15

Register Name

arb_master_dis

Bit

Offset Address

0

0

0

0

0

0

0

0

0

0

0

0

Name

Description

reserved

Reserved.

arb_master_dis

This bit indicates whether an error occurs due to
the attempt of a master operation when the
master function is disabled.
0: No such error occurs.
1: This error occurs.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-27

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[10]

RO

This bit indicates whether an error occurs when
the restart function is not supported and the I2C
abrt_10b_rd_norst as a master sends a read command to the 10-bit
slave address.
rt
0: No such error occurs.
1: This error occurs.

[9]

RO

This bit indicates whether an error occurs when
the restart function is not supported and the I2C
abrt_sbyte_norstrt as a master attempts to send the start byte.
0: No such error occurs.
1: This error occurs.

[8]

RO

abrt_hs_norstrt

This bit indicates whether an error occurs when
the restart function is not supported and the I2C
as a master attempts to perform a high-speed
operation.
0: No such error occurs.
1: This error occurs.

[7]

RO

This bit indicates whether an error occurs when
an ACK signal is received after the I2C as a
abrt_sbyte_ackdet master sends the start byte.
0: No such error occurs.
1: This error occurs.

[6]

RO

abrt_hs_ackdet

This bit indicates whether an error occurs when
the I2C as a master attempts to perform a
high-speed operation and the high-speed host
code is acknowledged.
0: No such error occurs.
1: This error occurs.

[5]

RO

abrt_gcall_read

This bit indicates whether an error occurs when
the I2C as a master sends a general call but CPU
sends a read command to the I2C.
0: No such error occurs.
1: This error occurs.

[4]

RO

This bit indicates whether an error occurs when
the I2C as a master sends a general call and no
abrt_gcall_noack ACK signal is received.
0: No such error occurs.
1: This error occurs.

11-28

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[3]

This bit indicates whether an error occurs
because the transmitted address is acknowledged
by the slave whereas the transmitted data is not
2
abrt_txdata_noack acknowledged when the I C acts as a master
transmitter.

RO

0: No such error occurs.
1: This error occurs.

[2]

This bit indicates whether an error occurs
because the second byte of the 10-bit transmitted
2
abrt_10addr2_noa address is not acknowledged when the I C acts
as a master.
ck

RO

0: No such error occurs.
1: This error occurs.

[1]

This bit indicates whether an error occurs
because the first byte of the10-bit transmitted
2
abrt_10addr1_noa address is not acknowledged when the I C acts
as a master.
ck

RO

0: No such error occurs.
1: This error occurs.

[0]

This bit indicates whether an error occurs
because the 7-bit transmitted address is not
abrt_7b_addr_noa acknowledged when the I2C acts as a master.
ck
0: No such error occurs.

RO

1: This error occurs.

I2C_DMA_CR
I2C_DMA_CR is the I2C DMA channel enable control register.

15

Register Name

Total Reset Value

0x0088

I2C_DMA_CR

0x0000

14

13

12

11

10

Name
Reset

9

8

7

6

5

4

3

2

reserved
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:2]

RO

reserved

Reserved.

0

0

0

0

1

0

tdmae

rdmae

Bit

Offset Address

0

0

This bit indicates whether to enable the DMA
channel of the TX_FIFO.
[1]

RW

tdmae

0: Do not enable the DMA channel of the
TX_FIFO.
1: Enable the DMA channel of the TX_FIFO.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-29

Hi3515
Data Sheet

11 Other Peripheral Interfaces

This bit indicates whether to enable the DMA
channel of the RX_FIFO.
[0]

RW

rdmae

0: Do not enable the DMA channel of the
RX_FIFO.
1: Enable the DMA channel of the RX_FIFO.

I2C_DMA_TDLR
I2C_DMA_TDLR is the TX_FIFO threshold configuration register for DMA operation.

Bit

15

Offset Address

Register Name

Total Reset Value

0x008C

I2C_DMA_TDLR

0x0000

14

13

12

11

10

Name
Reset

9

8

7

6

5

4

3

2

reserved
0

0

0

0

0

0

0

1

0

dmatdl
0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:3]

RO

reserved

Reserved.

[2:0]

RW

dmatdl

These bits indicate the threshold when the
TX_FIFO performs the DMA operation.

0

I2C_DMA_RDLR
I2C_DMA_RDLR is the RX_FIFO threshold configuration register for DMA operation.

Bit

15

Offset Address

Register Name

Total Reset Value

0x0090

I2C_DMA_RDLR

0x0000

14

13

12

11

10

Name
Reset

11-30

9

8

7

6

5

4

3

2

reserved
0

0

0

0

0

0

0

1

0

dmardl
0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:3]

RO

reserved

Reserved.

[2:0]

RW

dmardl

These bits indicate the threshold when the
RX_FIFO performs the DMA operation. The
actual value is equal to the configured value plus
1.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11.2 UART
11.2.1 Overview
The universal asynchronous receiver transmitter (UART) interface is an asynchronous serial
communications interface. It performs serial-to-parallel conversion on the data received from
peripherals and sends the converted data to the internal bus. It also performs parallel-to-serial
conversion and then sends the obtained data to peripherals. The UART is mainly used to
interconnect with the UART of the external chip so that the two chips can communicate with
each other.
The Hi3515 provides the following four UART units:
z

UART0
Mainly used for debugging.

z

UART1
Mainly used for connecting the RS-485 bus and controlling the pan/tilt.

z

UART2 and UART3
Mainly used for extending the interface, such as the external micro controller unit
(MCU).

11.2.2 Features
The UART module has the following features:
z

Supports16 x 8 bit transmit first-in, first-out (FIFO) and 16 x 12 bit receive FIFO.

z

Supports the programmable data bit width and stop bit width. By programming, the data
bit can be set to 5 bits, 6 bits, 7 bits, or 8 bits and the stop bit can be set to 1 bit or 2 bits.

z

Supports parity check or no check.

z

Supports the programmable transfer rate.

z

Supports the receive FIFO interrupt, transmit FIFO interrupt, receive timeout interrupt,
and error interrupt.

z

Supports the query of the raw interrupt status and the masked interrupt status.

z

Supports disabling the UART module or the transmit/receive function of the UART
through programming, thus reducing power consumption.

z

Supports disabling the UART clock, thus reducing power consumption.

z

UART0, UART1, and UART2 support the DMA operation, while UART3 does not.

11.2.3 Signal Description
Table 11-7 lists the signals of the UART0 interface.
Table 11-7 Signals of the UART0 interface
Signal Name

Direction

Description

Corresponding Pin

UART0_RXD

I

UART0 receive data signal.

URXD0

UART0_TXD

O

UART0 transmit data signal.

UTXD0

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-31

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-8 lists the signals of the UART1 interface.
Table 11-8 Signals of the UART1 interface
Signal Name

Direction

Description

Corresponding Pin

UART1_RXD

I

UART1 receive data signal.

URXD1

UART1_TXD

O

UART1 transmit data signal.

UTXD1

UART1_RTS

O

UART1 request transmit
signal.

URTSN1

UART1_CTS

I

UART1 clear transmit
signal.

UCTSN1

Table 11-9 lists the signals of the UART2 interface.
Table 11-9 Signals of the UART2 interface
Signal Name

Direction

Description

Corresponding Pin

UART2_RXD

I

UART2 receive data signal,
multiplexed with several VI and
GPIO signals. For details about
the multiplexing configuration
information, see section 11.2.5
"Pin Multiplexing."

VI0HS

UART2_TXD

O

UART2 transmit data signal,
multiplexed with the VI and
GPIO pins. For details about the
multiplexing configuration
information, see section 11.2.5
"Pin Multiplexing."

VI0VS

Table 11-10 lists the signals of the UART3 interface.
Table 11-10 Signals of the UART3 interface

11-32

Signal Name

Direction

Description

Corresponding Pin

UART3_RXD

I

UART3 receive data signal,
multiplexed with the VI and
GPIO pins. For details about the
multiplexing configuration
information, see section 11.2.5
"Pin Multiplexing."

VI2HS

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Signal Name

Direction

Description

Corresponding Pin

UART3_TXD

O

UART0 transmit data signal,
multiplexed with the VI and
GPIO pins. For details about the
multiplexing configuration
information, see section 11.2.5
"Pin Multiplexing."

VI2VS

11.2.4 Function Description
Application Block Diagram
Figure 11-4 and Figure 11-5 show the typical applications of the UART.
Figure 11-4 Typical application block diagram 1 of the UART

UART

TXD1

TXD2

RXD1

RXD2

UART

GND

The UART serves as an asynchronous bidirectional serial interface. Through the UARTs
connected by two data lines, a simplified and effective data transfer mode is implemented.
UART0, UART1, UART2, and UART3 support this data transfer mode.

Under the request-to-send (RTS) flow control, the output values of the RTS cannot be
specified through the UART_CR register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-33

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-5 Typical application block diagram 2 of the UART

TXD1

TXD2

RXD1

RXD2

RTS1

RTS2

CTS1

CTS2

UART

UART

If the interconnected chip requires to control stream through RTS or clear-to-send (CTS), the
RTS pin and CTS pin can be connected to control data transmit and receive through their
handshakes. When UART1 is connected to the RS-485 bus chip, the RTS pin and CTS pin
need to be connected.
Figure 11-6 shows the output mode of the RTS signal.
Figure 11-6 Block diagram of the RTS signal output mode
rts_mode

UART 1

RTS1

Under the RTS flow control, the output values of the RTS cannot be configured through the
UART_CR register. The level mode of the RTS output, however, can be controlled by
configuring SC_PERCTRL11[uart1_rtsmode] of the system controller.

Function Principle
A frame transfer of the UART involves the start signal, data signal, parity bit, and stop signal,
as shown in Figure 11-7. The data frame is output from the TXD port of one UART and is
input to the RXD port of another UART.

11-34

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-7 Frame format of the UART
Idle
State

Start
Bit

Data
<0>

Data
<1>

Data
<2>

Data
<3>

Data
<4>

Data
<5>

Data
<6>

Data Parity Stop
<7>
Bit
Bit1

Stop
Bit2

Idle
State

TXD or RXD

The definitions of the start signal, data signal, parity bit, and stop signal are as follows:
z

Start signal (start bit)
It is the start flag of a data frame. According to the UART protocol, the low level of the
TXD signal indicates the start of a data frame. When the UART does not transmit data,
the level must remain high.

z

Data signal (data bit)
The data bit width can be set as required. For example, it can be set to 5 bits, 6 bits, 7
bits, or 8 bits.

z

Parity bit
It is a 1-bit error correction signal. The UART parity bit can be an odd parity bit, even
parity bit, or stick parity bit. In addition, the UART can enable and disable the parity bit.
For details, see the description of the UART_LCR_H register.

z

Stop signal (stop bit)
It is the stop bit of the data frame. The stop bit can be configured as 1 bit or 2 bits. The
high level of TXD indicates the end of the data frame.

11.2.5 Operating Mode
Pin Multiplexing
Before using UART2 and UART3, you can enable the UART function by configuring the
registers reg0–reg1 and reg10–reg11.

Clock Gating
When the current data transfer is complete and a new data transfer does not start, the UART
clock can be disabled if hardware is idle (that is, UART_FR bit[3] = 0). To disable the UART
clock, do as follows:
Step 1 Read UART_FR.
Step 2 If UART_FR bit[3] is 0, set UART_CR[uarten] to 0, and then go to Step 3. If UART_FR
bit[3] is 1, wait and go to Step 1.
Step 3 Set SC_PERDIS bit[7:4] to 0xF to disable the UART clock.
----End

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-35

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Baud Rate Configuration
The baud rate of the UART is configured through UART_IBRD and UART_FBRD and can
be calculated by the following formula: Current baud rate = Reference clock frequency of the
UART/(16 x clock divider).
The clock divider consists of the integer part and the decimal part that correspond to
UART_IBRD and UART_FBRD respectively.
For example, assume that the frequency of the internal bus clock is 60 MHz. If UART_IBRD
is set to 0x1E and UART_FBRD is set to 0x00, then the current baud rate is 60/(16 x 30) =
0.125 Mbit/s.
The typical values of the UART baud rate are 9,600 bit/s, 14,400 bit/s, 19,200 bit/s, 38,400
bit/s, 57,600 bit/s, 76,800 bit/s, 115,200 bit/s, 230,400 bit/s, and 460,800 bit/s.
The following examples show how to calculate the clock divider and configure clock divider
register:
If the required baud rate is 230,400 bit/s and the frequency of UARTCLK is 100 MHz, then
the clock divider is (100 x 106)/(16 x 230,400) = 27.1267. The integer part IBRD is 27 and the
decimal part FBRD is 0.1267.
The value of the 6-bit UART_FBRD is calculated by following the formula: m =
integer(FBRD x 2n + 0.5), where n indicates the data width of UART_FBRD. In this case, m =
integer(0.1267 x 26 + 0.5) = 8. Then, 0x001B is configured in UART_IBRD, whereas 0x08 is
configured in UART_FBRD.
When the decimal part of the clock divider is set to 8, the actual value of the baud rate divider
is 27 + 8/64 = 27.125, and thus the baud rate is (100 x 106)/(16 x 27.125) = 230414.75 and the
error rate is (230414.75 – 230400)/230400 x 100 = 0.006%
The maximum error rate is 1/64 x 100 = 1.56% when the 6-bit UART_FBRD is used. If m = 1,
the accumulated error rate is greater than 64 clock periods.

Soft Reset
The UART controller can be independently reset by configuring the system controller.
z

The UART0 controller is independently reset by setting SC_PERCTRL8 bit[6] to 1.

z

The UART1 controller is independently reset by setting SC_PERCTRL8 bit[7] to 1.

z

The UART2 controller is independently reset by setting SC_PERCTRL8 bit[8] to 1.

z

The UART3 controller is independently reset by setting SC_PERCTRL8 bit[9] to 1.

After the reset, the configuration registers are restored to default values. Therefore, these
registers must be initialized again.

Data Transfer in Interrupt or Query Mode
To initialize the UART, do as follows:
Step 1 Write 0 to UART_CR bit[0] to disable the UART.
Step 2 Write corresponding values to UART_IBRD and UART_FBRD to configure the transfer rate.
Step 3 Configure UART_CR and UART_LCR_H to set the UART operating mode.
Step 4 Configure UART_IFLS to set the transmit and receive FIFO thresholds.

11-36

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Step 5 If the driver runs in interrupt mode, set UART_IMSC to enable the corresponding interrupt. If
in query mode, disable the corresponding interrupt.
Step 6 Write 1 to UART_CR bit[0] to enable the UART. The initialization process is complete.
----End
To transmit data, do as follows:
Step 1 Write the data to be transmitted to UART_DR and start data transmit.
Step 2 In query mode, detect the TX_FIFO state by reading UART_FR bit[5] during continuous data
transmit and then determine whether to transmit data to the TX_FIFO according to the
TX_FIFO state. In interrupt mode, determine whether to transmit data to the TX_FIFO
according to the corresponding interrupt status bit.
Step 3 Check whether the UART transmits all data by detecting UART_FR bit[7]. If UART_FR
bit[7] is 1, it indicates that the UART transmits all data. Otherwise, the UART does not
transmit all data.
----End
To receive data, do as follows:
z

In query mode, detect the RX_FIFO state by reading UART_FR bit[4] during data
receive and then determine whether to read data from the RX_FIFO according to the
RX_FIFO state.

z

In interrupt mode, determine whether to read data from the RX_FIFO according to the
corresponding interrupt status bit.

Data Transfer in DMA Mode

UART0, UART1 and UART2 support the DMA transfer mode, whereas UART3 does not.
To initialize the UART, do as follows:
Step 1 Write 0 to UART_CR bit[0] to disable the UART.
Step 2 Write corresponding values to UART_IBRD and UART_FBRD to configure the transfer rate.
Step 3 Configure UART_CR and UART_LCR_H to set the UART operating mode.
Step 4 Configure UART_IFLS to set the transmit and receive FIFO thresholds.
Step 5 If the driver runs in interrupt mode, set UART_IMSC to enable the corresponding interrupt. If
in query mode, disable the corresponding interrupt.
Step 6 Write 1 to UART_CR bit[0] to enable the UART. The initialization process is complete.
----End
To transmit data, do as follows:

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-37

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Step 7 Configure the DMA data channel, including the source and destination addresses, number of
data segments to be transmitted, and transfer type. For details, see the description in section
3.5 "DMAC."
Step 8 Set UART_DMACR to 0x2 to enable the DMA transmit function of the UART.
Step 9 Check whether the data is transmitted completely according to the DMA interrupt. If all data
is transmitted, disable the DMA transmit function of the UART.
----End
To receive data, do as follows:
Step 10 Configure the DMA data channel, including data transfer source and destination addresses,
data receive area address, number of data segments to be transmitted, and transfer type.
Step 11 Set UART_DMACR to 0x1 to enable the DMA receive function of the UART.
Step 12 Check whether the data is received completely by querying the DMA status. If all data is
received, disable the DMA receive function of the UART.
----End

11.2.6 Register Summary
The Hi3515 provides four UARTs, namely, UART0, UART1, UART2, and UART3. Their
base addresses are as follows:
z

Base address of UART0: 0x2009_0000

z

Base address of UART1: 0x200A_0000

z

Base address of UART2: 0x200B_0000

z

Base address of UART3: 0x200C_0000

Table 11-11 lists the UART registers.
Table 11-11 Summary of the UART registers

11-38

Offset Address

Register

Description

Page

0x000

UART_DR

Data register

11-39

0x004

UART_RSR

Receive status register or error
clear register

11-40

0x008–0x014

RESERVED

Reserved

-

0x018

UART_FR

Flag register

11-41

0x01C–0x020

RESERVED

Reserved

-

0x024

UART_IBRD

Integer baud rate register

11-42

0x028

UART_FBRD

Decimal baud rate register

11-43

0x02C

UART_LCR_H

Line control register

11-43

0x030

UART_CR

Control register

11-45

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Offset Address

Register

Description

Page

0x034

UART_IFLS

Interrupt FIFO threshold select
register

11-46

0x038

UART_IMSC

Interrupt mask register

11-47

0x03C

UART_RIS

Raw interrupt status register

11-48

0x040

UART_MIS

Masked interrupt status
register

11-49

0x044

UART_ICR

Interrupt clear register

11-50

0x048

UART_DMACR

DMA control register

11-51

11.2.7 Register Description
UART_DR
UART_DR is the UART data register which stores the received and transmitted data. The
receive status can be queried by reading this register.

Bit

15

Name
Reset

Offset Address

Register Name

Total Reset Value

0x000

UART_DR

0x00

14

13

12

reserved
0

Bits

0

0

Access

[15:12] RO

0

11

10

9

8

oe

be

pe

fe

0

0

0

0

7

6

5

4

3

2

1

0

0

0

0

0

data
0

0

Name

Description

reserved

Reserved.

0

0

Overrun error.
[11]

RO

oe

0: No overrun error occurs.
1: An overrun error occurs. That is, a segment of
data is received when the receive FIFO is full.
Break error.
0: No break error occurs.

[10]

RO

be

1: A break error occurs. That is, the receive data
input signal keeps low longer than a full word
transfer. A full word consists of a start bit, data
bit, parity bit, and stop bit.
Parity error.

[9]

RO

pe

0: No parity error occurs.
1: A parity error occurs.

[8]

Issue 02 (2010-04-20)

RO

fe

Frame error.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-39

Hi3515
Data Sheet

11 Other Peripheral Interfaces

0: No frame error occurs.
1: A frame error (namely, stop bit error) occurs.
[7:0]

RW

data

Data to be transmitted or received.

UART_RSR
UART_RSR is the receive status register or error clear register.
z

It acts as the receive status register when read.

z

It acts as the error clear register when written.

The receive status can be queried from the UART_DR register. The break, frame, and parity
status information read from UART_DR takes priority over that read from UART_RSR. That
is, the status information in UART_DR is updated faster than that in UART_RSR.
UART_RSR is reset when any value is written to it.

Bit
Name

11-40

7

Offset Address

Register Name

Total Reset Value

0x004

UART_RSR

0x00

6

5
reserved

4

3

2

1

0

oe

be

pe

fe

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Reset

0

0

0

0

0

0

Bits

Access

Name

Description

[7:4]

RO

reserved

Reserved.

0

0

Overrun error.
0: No overrun error occurs.
1: An overrun error occurs.
[3]

RW

When the FIFO is full, the following data cannot
be written to the FIFO and only the shift register
is overrun. Therefore, the contents at the FIFO
are valid. In this case, the CPU must read the
data immediately to spare buffer space.

oe

Break error.
0: No break error occurs.
[2]

RW

1: A break error occurs.

be

Condition for the break error: The receive data
input signal keeps low longer than a full word
transfer. A full word consists of a start bit, data
bit, parity bit, and stop bit.
Parity error.
0: No parity error occurs.

[1]

RW

pe

1: A parity error of the received data occurs.
In FIFO mode, the error is associated with the
data at the top of the FIFO.
Frame error.

[0]

RW

0: No frame error occurs.

fe

1: An error occurs at the stop bit of the received
data. The valid stop bit is 1.

UART_FR
UART_FR is the UART flag register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x018

UART_FR

0x0012

14

13

Name
Reset

11

10

9

8

reserved
0

Bits

0

0

0

0

Access Name

[15:8] RO

Issue 02 (2010-04-20)

12

reserved

0

0

0

7

6

5

txfe

rxff

txff

0

0

0

4

3

2

rxfe busy
1

0

1

0

reserved
0

1

0

Description
Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-41

Hi3515
Data Sheet

11 Other Peripheral Interfaces

The meaning of the bit is determined by
UART_LCR_H[fen].
[7]

RO

If UART_LCR_H[fen] is 0, set the bit to 1 when the
transmit holding register is empty.

txfe

If UART_LCR_H[fen] is 1, set the bit to 1 when the
transmit FIFO is empty.
The meaning of the bit is determined by
UART_LCR_H[FEN].
[6]

RO

If UART_LCR_H[fen] is 0, set the bit to 1 when the
receive holding register is full.

rxff

If UART_LCR_H[fen] is 1, set the bit to 1 when the
receive FIFO is full.
The meaning of the bit is determined by
UART_LCR_H[FEN].
[5]

RO

If UART_LCR_H[fen] is 0, set the bit to 1 when the
transmit holding register is full.

txff

If UART_LCR_H[fen] is 1, set this bit to 1 when the
transmit FIFO is full.
The meaning of the bit is determined by
UART_LCR_H[FEN].
[4]

RO

If UART_LCR_H[fen] is 0, set the bit to 1 when the
receive holding register is empty.

rxfe

If UART_LCR_H[fen] is 1, set the bit to 1 when the
receive FIFO is empty.
UART busy state bit.
0: The UART is idle or data transmit is complete.
1: The UART is busy in transmitting data.
[3]

RO

If the bit is set to 1, the state is kept until the entire
byte (including all bits of the stop bit) is transmitted
from the shift register.

busy

Regardless of whether the UART is enabled, this bit is
set to 1 when the transmit FIFO is not empty.
[2:0]

RO

reserved

Reserved.

UART_IBRD
UART_IBRD is the integer baud rate register.

Bit
Name

11-42

15

Offset Address

Register Name

Total Reset Value

0x024

UART_IBRD

0x0000

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

baud divint

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Reset

11 Other Peripheral Interfaces
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:0]

RW

baud divint

Integer-baud-rate divider. The bits are cleared
after reset.

UART_FBRD
UART_FBRD is the decimal baud rate register.

z

The values of the integer and decimal baud rate registers can be updated until the current
data is transmitted and received completely.

z

The minimum clock divider is 1 and the maximum divider is 65,535 (216 – 1). That is,
UART_IBRD cannot be 0; otherwise, UART_FBRD is ignored. Similarly, if UART_IBRD
is equal to 65,535 (0xFFFF), UART_IBRD must be 0. If UART_IBRD is greater than 0,
the data transmit and receive may fail.

z

Assume that UART_FBRD is set to 0x1E and UART_IBRD is set to 0x01. Then, the
integer part of the clock divider is 30, the decimal part is 0.015625, and the clock divider
is 30.015625.

z

Baud rate of the UART = Internal bus frequency/(16 x clock divider) = Internal bus
frequency/(16 x 30.015625).

Bit

Offset Address

Register Name

Total Reset Value

0x028

UART_FBRD

0x00

7

Name

6

5

4

reserved

Reset

0

3

2

1

0

0

0

baud divfrac
0

0

0

0

0

Bits

Access

Name

Description

[7:6]

RO

Reserved

Reserved.

[5:0]

RW

band divfrac

Decimal-baud-rate divider. The bits are cleared
after reset.

UART_LCR_H
UART_LCR_H is the line control register. The registers UART_LCR_H, UART_IBRD, and
UART_FBRD are combined to form a 30-bit register. If UART_IBRD and UART_FBRD are
updated, UART_LCR_H must be updated at the same time.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-43

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Bit

15

Offset Address

Register Name

Total Reset Value

0x02C

UART_LCR_H

0x0000

14

13

Name
Reset

12

11

10

9

8

reserved
0

Bits

0

0

0

0

Access Name

[15:8] RO

reserved

7

6

sps
0

0

0

0

5
wlen

0

0

4

3

2

1

0

fen

stp2

eps

pen

brk

0

0

0

0

0

Description
Reserved.
Parity select.
When bit[1], bit[2], and bit[7] of this register are set to
1, the parity bit is 0.

[7]

RW

sps

When bit[1] and bit[7] are set to 1 and bit[2] is 0, the
parity bit is 1.
When bit[1], bit[2], and bit[7] are cleared, the stick
parity bit is disabled.
Count of bits in a transmitted or received frame.
00: 5 bits

[6:5]

RW

wlen

01: 6 bits
10: 7 bits
11: 8 bits
Transmit and receive FIFO enable control.

[4]

RW

fen

0: The transmit and receive FIFOs are disabled.
1: The transmit and receive FIFOs are enabled.
2-bit stop bit at the end of the transmitted frame.
0: There is no 2-bit stop bit at the end of the
transmitted frame.

[3]

RW

stp2

1: There is a 2-bit stop bit at the end of the transmitted
frame.
The receive logic does not check for the 2-bit stop bit
during data receive.
Parity select in data transmit and receive.
0: The odd parity is generated or performed during
data transmit and receive.

[2]

RW

eps

1: The even parity is generated or performed during
data transmit and receive.
When UART_LCR_H[fen] is 0, this bit becomes
invalid.
Parity enable bit.

[1]

11-44

RW

pen

0: The parity is disabled.
1: The parity is generated at the transmit side and
performed at the receive side.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Break command send.
0: Invalid.
[0]

RW

1: After the current data transmit is complete, the
UTXD outputs low level continuously.

brk

Note: This bit must be kept 1 longer than two complete
frames so that the break command runs properly. In
normal use, the bit must be set to 0.

UART_CR
UART_CR is the UART control register.
To configure the UART_CR register, do as follows:
Step 1 Write 0 to UART_CR bit[0] to disable the UART.
Step 2 Wait until the current data transmit or receive is complete.
Step 3 Set UART_LCR_H[fen] to 0.
Step 4 Configure UART_CR.
Step 5 Write 1 to UART_CR bit[0] to enable the UART.
----End

15

Register Name

Total Reset Value

0x030

UART_CR

0x0300

12

11

10

9

8

7

Name ctsen rtsen

reserved

rts

dtr

rxe

txe

lbe

Reset

0

0

0

0

0

0

0

Bits

14

13

0

Access

0

Name

6

5

4

3

2

1

0

0

0
uarten

Bit

Offset Address

reserved

0

0

0

0

0

Description
CTS hardware flow control enable.
0: CTS hardware flow control is disabled.

[15]

RW

ctsen

1:CTS hardware flow control is enabled. The
data can be transmitted only when the
nUARTCTS signal is valid.
RTS hardware flow control enable.
0: RTS hardware flow control is disabled.

[14]

RW

[13:12] RO

Issue 02 (2010-04-20)

rtsen

1: RTS hardware flow control is enabled. The
data receive request can be sent only when the
receive FIFO has free space.

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-45

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Request send.
[11]

RW

This bit is inverted from the UART modem
status output signal nUARTRTS.

rts

0: The output signal remains unchanged.
1: When this bit is set to 1, the output signal is 0.
Data transmit ready.
[10]

RW

This bit is inverted from the UART modem
status output signal nUARTDTR.

dtr

0: The output signal remains unchanged.
1: When this bit is set to 1, the output signal is 0.
UART receive enable.
0: UART receive is disabled.
[9]

RW

rxe

1: UART receive is enabled.
If the UART is disabled during data receive, the
current data receive is stopped.
UART transmit enable.
0: UART transmit is disabled.

[8]

RW

txe

1: UART transmit is enabled.
If the UART is disabled during data transmit,
the current data transmit is stopped.
Loopback enable.
0: Loopback is disabled.

[7]

RW

lbe

[6:1]

RO

reserved

1: The UARTTXD output is looped back to
UARTRXD.
Reserved.
UART enable.
0: The UART is disabled.

[0]

RW

uarten

1: The UART is enabled.
If the UART is disabled during data receive and
transmit, the data transfer is stopped.

UART_IFLS
UART_IFLS is the interrupt FIFO threshold select register that is used to configure the
thresholds. When any of the thresholds are exceeded, the FIFO interrupt (UART_TXINTR or
UART_RXINTR) can be triggered.

Bit

11-46

15

Offset Address

Register Name

Total Reset Value

0x034

UART_IFLS

0x0012

14

13

12

11

10

9

8

7

6

5

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

4

3

2

1

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Name

reserved

Reset

0

0

0

0

0

0

rxiflsel
0

0

0

0

Bits

Access

Name

Description

[15:6]

RO

reserved

Reserved.

0

txiflsel

1

0

0

1

0

Receive interrupt FIFO threshold select. A
receive interrupt can be triggered when any of
the following conditions is met:
000: receive FIFO ≥ 1/8 full
[5:3]

RW

001: receive FIFO ≥ 1/4 full

rxiflsel

010: receive FIFO ≥ 1/2 full
011: receive FIFO ≥ 3/4 full
100: receive FIFO ≥ 7/8 full
101–111: reserved
Transmit interrupt FIFO threshold select. A
transmit interrupt can be triggered when any of
the following conditions is met:
000: transmit FIFO ≤ 1/8 full
[2:0]

RW

001: transmit FIFO ≤ 1/4 full

txiflsel

011: transmit FIFO ≤ 3/4 full
010: transmit FIFO ≤ 1/2 full
100: transmit FIFO ≤ 7/8 full
101–111: reserved

UART_IMSC
UART_IMSC is the interrupt mask register that is used to mask interrupts.

Bit

15

Offset Address

Register Name

Total Reset Value

0x038

UART_IMSC

0x0000

14

Name
Reset

13

12

11

reserved
0

Bits

0

0

9

8

7

6

5

4

3

oeim beim peim feim rtim txim rxim
0

0

Access Name

[15:11] RO

10

reserved

0

0

0

0

0

0

0

2

1

0

reserved
0

0

0

0

Description
Reserved.
Overrun error interrupt mask status.

[10]

RW

oeim

0: The interrupt is masked.
1: The interrupt is not masked.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-47

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Break error interrupt mask status.
[9]

RW

0: The interrupt is masked.

beim

1: The interrupt is not masked.
Parity interrupt mask status.
[8]

RW

peim

0: The interrupt is masked.
1: The interrupt is not masked.
Frame error interrupt mask status.

[7]

RW

0: The interrupt is masked.

feim

1: The interrupt is not masked.
Receive timeout interrupt mask status.
[6]

RW

0: The interrupt is masked.

rtim

1: The interrupt is not masked.
Transmit interrupt mask status.
[5]

RW

txim

0: The interrupt is masked.
1: The interrupt is not masked.
Receive interrupt mask status.

[4]

RW

rxim

0: The interrupt is masked.
1: The interrupt is not masked.

[3:0]

RO

reserved

Reserved.

UART_RIS
UART_RIS is the raw interrupt status register. The contents of this register are not affected by
the UART_IMSC register.

Bit

15

Offset Address

Register Name

Total Reset Value

0x03C

UART_RIS

0x0000

14

Name
Reset

13

12

11

reserved
0

Bits

0

0

9

8

7

6

5

4

3

oeris beris peris feris rtris txris rxris
0

0

Access Name

[15:11] RO

10

reserved

0

0

0

0

0

0

0

2

1

0

reserved
0

0

0

0

Description
Reserved.
Raw overrun error interrupt status.

[10]

RO

oeris

0: No interrupt is generated.
1: An interrupt is generated.

11-48

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Raw break error interrupt status.
[9]

RO

0: No interrupt is generated.

beris

1: An interrupt is generated.
Raw parity interrupt status.
[8]

RO

peris

0: No interrupt is generated.
1: An interrupt is generated.
Raw error interrupt status.

[7]

RO

0: No interrupt is generated.

feris

1: An interrupt is generated.
Raw receive timeout interrupt status.
[6]

RO

0: No interrupt is generated.

rtris

1: An interrupt is generated.
Raw transmit interrupt status.
[5]

RO

txris

0: No interrupt is generated.
1: An interrupt is generated.
Raw receive interrupt status.

[4]

RO

rxris

0: No interrupt is generated.
1: An interrupt is generated.

[3:0]

RO

reserved

Reserved.

UART_MIS
UART_MIS is the masked interrupt status register. The contents of this register are the result
obtained after the raw interrupt status is ANDed with the interrupt mask status.

Bit

15

Offset Address

Register Name

Total Reset Value

0x040

UART_MIS

0x0000

14

Name
Reset

13

12

11

reserved
0

Bits

0

0

9

8

7

6

5

4

3

oemis bemis pemis femis rtmis txmis rxmis
0

0

Access Name

[15:11] RO

10

reserved

0

0

0

0

0

0

0

2

1

0

reserved
0

0

0

0

Description
Reserved.
Masked overrun error interrupt status.

[10]

RO

oemis

0: No interrupt is generated.
1: An interrupt is generated.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-49

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Masked break error interrupt status.
[9]

RO

0: No interrupt is generated.

bemis

1: An interrupt is generated.
Masked parity interrupt status.
[8]

RO

pemis

0: No interrupt is generated.
1: An interrupt is generated.
Masked error interrupt status.

[7]

RO

0: No interrupt is generated.

femis

1: An interrupt is generated.
Masked receive timeout interrupt status.
[6]

RO

0: No interrupt is generated.

rtmis

1: An interrupt is generated.
Masked transmit interrupt status.
[5]

RO

txmis

0: No interrupt is generated.
1: An interrupt is generated.
Masked receive interrupt status.

[4]

RO

rxmis

0: No interrupt is generated.
1: An interrupt is generated.

[3:0]

RO

reserved

Reserved.

UART_ICR
UART_ICR is the interrupt clear register. When 1 is written to it, the corresponding interrupt
is cleared. Writing 0 has no effect.

Bit

15

Offset Address

Register Name

Total Reset Value

0x044

UART_ICR

0x0000

14

Name
Reset

13

12

11

reserved
0

Bits

0

0

9

8

7

oeic beic peic feic
0

0

Access Name

[15:11] RO

10

reserved

0

0

0

0

6

5

4

3

rtic

txic

rxic

0

0

0

2

1

0

reserved
0

0

0

0

Description
Reserved.
Overrun error interrupt clear.

[10]

WO

oeic

0: Invalid.
1: The interrupt is cleared.

11-50

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Break error interrupt clear.
[9]

WO

0: Invalid.

beic

1: The interrupt is cleared.
Parity interrupt clear.
[8]

WO

peic

0: Invalid.
1: The interrupt is cleared.
Error interrupt clear.

[7]

WO

0: Invalid.

feic

1: The interrupt is cleared.
Receive timeout interrupt clear.
[6]

WO

0: Invalid.

rtic

1: The interrupt is cleared.
Transmit interrupt clear.
[5]

WO

txic

0: Invalid.
1: The interrupt is cleared.
Receive interrupt clear.

[4]

WO

rxic

0: Invalid.
1: The interrupt is cleared.

[3:0]

RO

reserved

Reserved.

UART_DMACR
UART_DMACR is the DMA control register. It is used to enable the DMA function of the
transmit and receive FIFOs.

0x048

UART_DMACR

0x0000

14

13

12

11

10

Name

Reset

8

7

6

5

4

3

0

0

0

0

0

0

reserved

0

Bits

0

0

0

0

Access Name

[15:3] RO

Issue 02 (2010-04-20)

9

Reserved

0

0

2

1

0
rxdmae

Total Reset Value

txdmae

15

Register Name

dmaonerr

Bit

Offset Address

0

0

0

Description
Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-51

Hi3515
Data Sheet

11 Other Peripheral Interfaces

DMA enable control for the receive channel when the
UART error interrupt (UARTEINTR) occurs.

[2]

RW

Dmaonerr

0: When the UARTEINTR is valid, the DMA request
output (UARTRXDMASREQ or
UARRTXDMABREQ) of the receive channel is valid.
1: When the UARTEINTR is valid, the DMA request
output (UARTRXDMASREQ or
UARRTXDMABREQ) of the receive channel is
invalid.
DMA enable control of the transmit FIFO.

[1]

RW

txdmae

0: The DMA function is disabled.
1: The DMA function is enabled.
DMA enable control of the receive FIFO.

[0]

RW

rxdmae

0: The DMA function is disabled.
1: The DMA function is enabled.

11.3 SPI
11.3.1 Overview
The serial peripheral interface (SPI) controller acts as a master or slave device to
communicate with external devices in synchronous serial mode. The SPI supports the
following protocols:
z

Motorola SPI-compatible interface

z

Texas Instruments synchronous serial interface

z

National Semiconductor Microwire interface

The SPI is mainly used to connect the touch screen, secure digital (SD) card, and wireless
fidelity (WiFi).

11.3.2 Features
The SPI module has the following features:

11-52

z

Supports the master operating mode where up to two slave devices are allowed.

z

Supports the slave operating mode.

z

Supports programmable frequency of the interface clock.

z

Supports two separate FIFOs, one working as a receive FIFO and the other as a transmit
FIFO. Each of them is 16-bit wide and 8-location deep.

z

Supports three frame formats: SPI, Microwire, and TI synchronous serial.

z

Supports programmable frame size: 4 bits to 16 bits.

z

Provides internal loopback test mode.

z

Supports the DMA operation.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11.3.3 Signal Description
Table 11-12 lists SPI interface signals.
Table 11-12 SPI interface signals
Signal
Name

Direction

Description

Corresponding
Pin

SPICK

I/O

SPI clock output, multiplexed with the
video output (VO) pin only. For details
about the multiplexing configuration, see
11.3.5 "Pin Multiplexing."

VOCK

SPIDI

I

SPI data input, multiplexed with the VO
pin only. For details about the
multiplexing configuration, see 11.3.5
"Pin Multiplexing."

VODAT0

SPIDO

O

SPI data output, multiplexed with the VO
pin only. For details about the
multiplexing configuration, see 11.3.5
"Pin Multiplexing."

VODAT1

SPICSN0

I/O

When the SPI is configured in the SPI or
Microwire frame format, the signal is a
chip select (CS) signal. When the SPI is
configured in the TI frame format, the
signal is used as a frame sync signal. For
details about the multiplexing
configuration, see 11.3.5 "Pin
Multiplexing."

VODAT2

/SPICSN1

/VODAT3

11.3.4 Function Description
Application Block Diagram
Figure 11-8 shows the application block diagram when the SPI is connected to a single slave
device. When the SPI is connected to a signal slave device, the default chip select pin
SPICSN0 is used.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-53

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-8 Application block diagram when the SPI is connected to a single slave device
Master

Hi3515

Slave
SPICK

XXX_CLK

SPICSN

XXX_CS

SPIDI

XXX_DOUT

SPIDO

XXX_DIN

Figure 11-9 shows the application block diagram when the SPI is connected to two slave
devices. When the SPI is connected to two slave devices externally, the chip select signals
carried by the SPI are not sufficient. In this case, the chip signals are sent to either SPICSN0
or SPICSN1 by configuring the system controller SC_PERCTRL11[spi_port]. The two pins
cannot be valid at the same time. When SC_PERCTRL11[spi_port]] is set to 0, SPICS0N is
valid. When SC_PERCTRL11[spi_port] is set to 1, SPICS1N is valid.
Figure 11-9 Application block diagram when the SPI is connected to two slave devices
SC_PERCTRL11[spi_port]
SLAVE_0

SPICK

XXX_DCLK

SPICSN
SPIDI
SPIDO

MUX

MASTER

XXX_CS
XXX_DOUT
XXX_DIN

SLAVE_1

XXX_DCLK
XXX_CS
XXX_DOUT

Hi3515

XXX_DIN

Figure 11-10 shows the application block diagram when the SPI acts as a slave device. The
external master device selects either SPICSN0 or SPICSN1 as the input pin. In this case,
ensure that SC_PERCTRL11[spi_port] is configured properly. Otherwise, the chip select
signal of the external master device cannot be input to the SPI interface correctly. It is
recommended to use the default chip select interface, namely, SPICSN0.

11-54

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-10 Application block diagram of the SPI acting as a slave device

SC_PERCTRL11[spi_port]

Master

Slave

XXX_DCLK

SPICK

XXX_CS

SPICSN
SPIDI

XXX_DOUT

SPIDO

XXX_DIN

SPICSN0/SPICSN1

Hi3515

Function Principle
The symbol spo indicates the polarity of SPICLKOUT and the symbol sph indicates the phase of
SPICLKOUT.
From Figure 11-11 to Figure 11-22, the related acronyms and convention are as follows:
z

MSB: most significant bit

z

LSB: least significant bit

z

Q: undefined signal

Figure 11-11 shows the Motorola SPI single frame format when both spo and sph are equal to
0.
Figure 11-11 Motorola SPI single frame format (spo = 0, sph = 0)

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

MSB

LSB

Q

Figure 11-12 shows the Motorola SPI continuous frame format when both spo and sph are
equal to 0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-55

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-12 Motorola SPI continuous frame format (spo = 0, sph = 0)

SPI_CK
SPI_CSN
4 to 16 bits

SPI_DI/
SPI_DO

LSB

MSB

LSB

Q

MSB

When the SPI is idle in this mode:
z

The SPICK signal is set to low.

z

The SPICSN signal is set to high.

z

The transmit data line SPIDO is forced to low.

When the SPI is enabled and valid data is ready in the transmit FIFO, setting the SPICSN
signal to low enables a data transfer to start. After the data transfer starts, the enabled slave
data is placed on the input line SPIDI of the master device. Half SPICK clock period later, the
valid master data is transmitted to the SPIDO pin. At this time, both the master and slave data
become valid. The SPICK master clock pin changes to high in the coming half SPICK clock
period. Then, data is captured on the rising edge and is transmitted on the falling edge of the
SPICK clock.
If a single word is to be transferred, the SPICSN signal is restored to high one SPICK clock
period later after the last bit is captured.
For a continuous transfer, the SPICSN signal must be pulled up for one SPICK clock period
between the transfers of two words. When sph is 0, the slave select pin fixes the data of the
internal serial device register to maintain the data unchanged. Therefore, the SPICSN signal
must be pulled up between the transfers of two words in continuous transfer mode. When the
continuous transfer ends, the SPICSN is restored to high one SPICK clock period later after
the last bit is captured.
Figure 11-13 shows the Motorola SPI single frame format when spo is equal to 0 and sph is
equal to 1.
Figure 11-13 Motorola SPI single frame format (spo = 0, sph = 1)

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

MSB

LSB

Q

Figure 11-14 shows the Motorola SPI continuous frame format when spo is equal to 0 and sph
is equal to 1.

11-56

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-14 Motorola SPI continuous frame format (spo = 0, sph = 1)

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

MSB

4 to 16 bits
LSB

MSB

LSB

Q

When the SPI is idle in this mode:
z

The SPICK signal is set to low.

z

The SPICSN is set to high.

z

The transmit data line SPIDO is forced to low.

When the SPI is enabled and valid data is ready in the transmit FIFO, setting the SPICSN
signal to low enables a data transfer to start. If the data transfer starts, the master and slave
data become valid on their respective transfer line half SPICK clock period later. Meanwhile,
SPICK becomes valid on a rising edge. Then, data is captured on the rising edge and is
transmitted on the falling edge of the SPICK clock.
If a single word is to be transferred, the SPICSN signal is restored to high one SPICK clock
period later after the last bit is captured.
For a continuous transfer, SPICSN remains low between the two word transfers. After the
continuous transfer ends, SPICSN is restored to high one SPICK clock period later after the
last bit is captured.
Figure 11-15 shows the Motorola SPI single frame format when spo is equal to 1 and sph is
equal to 0.
Figure 11-15 Motorola SPI single frame format (spo = 1, sph = 0)

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

MSB

LSB

Q

Figure 11-16 shows the Motorola SPI continuous frame format when spo is equal to 1 and sph
is equal to 0.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-57

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-16 Motorola SPI continuous frame format (spo = 1, sph = 0)

SPI_CK
SPI_CSN
4 to 16 bits

SPI_DI/
SPI_DO

LSB

MSB

LSB

Q

MSB

When the SPI is idle in this mode:
z

The SPICK signal is set to high.

z

The SPICSN signal is set to high.

z

The transmit data line SPIDO is forced to low.

When the SPI is enabled and valid data is ready in the transmit FIFO, setting the SPICSN
signal to low enables a data transfer to start. After the data transfer starts, the slave data is
immediately transmitted to the receive data line SPIDI of the master device. Half SPICK
clock period later, the valid master data is transmitted to the SPIDO line. After another half
SPICK clock period, the SPICK master pin is set to low. This indicates that the data is
captured on the falling edge and transmitted on the rising edge of the SPICK clock.
If a single word is to be transferred, the SPICSN signal is restored to high one SPICK clock
period later after the last bit is captured.
For a continuous transfer, SPICSN signal must be pulled up between the transfers of two
words. The reason is that when sph is 0, the slave select pin fixes the data of the internal serial
device register to maintain the data unchanged. The SPICSN is restored to high one SPICK
clock period later after the last bit is captured.
Figure 11-17 shows the Motorola SPI single frame format when both spo and sph are equal to
1.
Figure 11-17 Motorola SPI single frame format (spo = 1, sph = 1)

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

MSB

LSB

Q

Figure 11-18 shows the Motorola SPI continuous frame format when both spo and sph are
equal to 1.

11-58

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-18 Motorola SPI continuous frame format (spo = 1, sph = 1)

SPICK
SPICSN
4 to 16 bits

4 to 16 bits
SPIDI/SPIDO

MSB

LSB

MSB

LSB

Q

When the SPI is idle in this mode:
z

The SPICK signal is set to high.

z

The SPICSN signal is set to high.

z

The transmit data line SPIDO is forced to low.

When the SPI is enabled and valid data is ready in the transmit FIFO, setting the SPICSN
master signal to low enables a data transfer to start. If the data transfer starts, the master data
and slave data become valid on their respective transfer line after half SPICK clock period.
Meanwhile, SPICK becomes valid on a falling edge. Then, the data is captured on the falling
edge and transmitted on the rising edge of the SPICK clock.
If a single word is to be transmitted, SPICSN is restored to high one SPICK clock period later
after the last bit is captured.
For a continuous transfer, the SPICSN signal remains low. When the transfer ends, the
SPICSN signal is restored to high (idle) one SPICK clock period later after the last bit is
captured. The end mode for a continuous transfer is the same as that for a single frame
transfer.
Figure 11-19 shows the TI synchronous serial single frame format.
Figure 11-19 TI synchronous serial single frame format

SPICK
SPICSN
SPIDI/SPIDO

4 to 16 bits
MSB

LS
B

Figure 11-20 shows the TI synchronous serial continuous frame format.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-59

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-20 TI synchronous serial continuous frame format

SPICK
SPICSN
4 to 16 bits
SPIDI/SPIDO

LSB

MSB

LSB

MSB

When the SPI is idle in this mode:
z

The SPICK signal is set to low.

z

The SPICSN signal is set to low.

z

The transfer data line SPIDO maintains a high impedance.

If there is data in the transmit FIFO, SPICSN generates a high level pulse in one SPICK clock
period. Then, the data to be transmitted is transferred from the transmit FIFO to the serial shift
register of the transmit logic. The MSBs of the data frames from 4 bits to 16 bits are
shift-output from SPIDO on the next rising edge of the SPICX clock. Likewise, the MSBs of
the data received from the external serial slave device are shift-input from the SPIDI pin.
The SPI and off-chip serial device stores the data in the serial shift register on the falling edge
of the SPICK clock. The receive serial register transmits the data to the receive FIFO on the
rising edge of the first SPICK clock after receiving the LSB of data frame.
Figure 11-21 shows the National Semiconductor Microwire single frame format.
Figure 11-21 National Semiconductor Microwire single frame format

SPICK
SPICSN
4 to 16 bits
SPIDI

0

MSB

LSB

Q

8 bit control
SPIDO

MSB

LSB

Figure 11-22 shows the National Semiconductor Microwire continuous frame format.

11-60

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-22 National Semiconductor Microwire continuous frame format

SPICK
SPICSN
4 to 16 bits
SPIDI

0

MSB

4 to 16 bits
LSB

MSB

LSB

8 bit control
SPIDO

LSB

MSB

LSB

The Microwire format is similar to the SPI format because both of them use the transfer
technology of master-slave information. The only difference is that the SPI works in
full-duplex mode and the Microwire works in half-duplex mode. When the SPI transmits
serial data to the external chip, an 8-bit control word needs to be added. In this process, the
SPI does not receive any data. After the transfer is complete, the off-chip decodes the received
data. One clock period after the 8-bit control information is transmitted, the slave device starts
to acknowledge the required data. The returned data length is 4 bits to 16 bits, and thus the
length of the whole frame is 13 bits to 25 bits.
When the SPI is idle in this mode:
z

The SPICK signal is set to low.

z

The SPICSN signal is set to high.

z

The transmit data line SPIDO is forced to low.

Writing one control byte to the transmit FIFO enables a data transfer to start. The data transfer
is triggered on a falling edge of the SPICSN. The data of the transmit FIFO is sent to the
serial shift register. The MSBs of the 8-bit control frame are sent to the SPIDO pin. During
frame transfer, the SPICSN remains low, whereas the SPIDI maintains a high impedance.
The off-chip serial slave device latches the data to the serial shift register on each rising edge
of the SPICK clock. After the slave device latches the last bit, it decodes the received data in
the following wait time of one clock period. After that, the slave device sends the requested
data to the SPI. Each bit is written to the SPIDI on the falling edge of the SPICK clock. For a
single data transfer, the SPICSN is pulled up at the end of the frame one clock period later
after the last bit is written to the receive serial register. In this way, the received data is
transmitted to the receive FIFO.
The start and end for a continuous data transfer are the same as those for a signal data transfer.
During the continuous data transfer, the signal SPICSN remains low and the data transferred
is continuous. The control word of the next frame is adjacent to the LSB of the previous frame.
When the LSB of the frame is latched to the SPI, each received value is taken from the
receive offset register on the falling edge of the SPICK clock.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-61

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11.3.5 Operating Mode
Pin Multiplexing
The SPI pins are multiplexed with the VO pin. Therefore, before using SPI pins, you must
configure the IO config register to enable the SPI function of the corresponding pins. For
details, see the configuration description of the IO Config registers reg28 to reg32.

Clock Gating
When the software completes the current data transfer but does not start a new data transfer,
the SPI clock can be disabled if the hardware is in the idle state, that is, SPI_SR[bsy] = 0.
To disable the SPI working clock, do as follows:
Step 1 Read SPI_SR.
Step 2 If SPI_SR[bsy] is 0, write 0 to SPI_CR1[sse] and go to Step 3. If SPI_SR[bsy] is 1, wait and
then go to step Step 1.
Step 3 Write SC_PERDIS[spi_clkdis] to disable the SPI working clock.
----End

Clock Configuration
z

The minimum SPI working clock frequency is calculated by the following formula:
SPI working clock frequency (min) ≥ 2 x FSPICK (max)
When the SPI working clock frequency is preset, the maximum SPI output clock
frequency is equal to SPI working clock frequency divided by 2.

z

The maximum SPI working clock frequency is calculated by the following formula:
SPI working clock frequency (max) ≤ 254 x 256 x FSPICK (min)
When the SPI working clock frequency is preset, the minimum SPI output clock
frequency is equal to the SPI working clock frequency divided by 254 x 256.

z

The output clock frequency SPICK is calculated by the following formula:
FSPICK = SPI working clock frequency/(CPSDVSR x (1 + SCR))

The SPI output clock frequency varies with dividers CPSDVSR and SCR. For details, see
SPI_CR0 and SPI_CPSR.
Table 11-13 lists the typical configuration of the SPI clock dividers.
Table 11-13 Typical configuration of the SPI clock dividers

11-62

SPI Working Clock Frequency (MHz)

CPSDVSR

SCR

SPICK (MHz)

100

2

1

25

100

2

4

10

24

2

1

6

24

2

4

2.4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Soft Reset
The SPI can be soft reset at any time without impacting on the system if there is no data
transferred on the bus. The SPI can be soft reset independently by setting
SC_PERCTRL10[spi_hrst] to 1. After reset, each configuration register is reset to its default
value. Therefore, these registers must be initialized after being reset.

Data Transfer in Interrupt or Query Mode
The initialization process is as follows:
Step 1 Write 0 to SPI_CR1[sse] to disable the SPI.
Step 2 Write corresponding values to SPI_CR0 to set the parameters such as the frame format and
transfer data bit width.
Step 3 Configure SPI_CPSR to set the required clock divider.
Step 4 If the driver runs in interrupt mode, set SPI_INTMASK to enable the corresponding interrupt
signals. If in query mode, disable the corresponding interrupt signals.
Step 5 Write 1 to SPI_CR1[sse] to enable the SPI. Then, the initialization configuration is complete.
----End
To query and transmit a specified amount of data (for example, four data segments), do as
follows:
Step 1 Configure the SPI_CPSR register to set the pre-divider cpsdvsr.
Step 2 Configure SPI_CR0 to set the serial clock rate, frame formats (SPI, TI, and MW), and frame
duration dss.
Step 3 Write 1 to SPI_CR1[see] to enable the SPI.
Step 4 Query the status register SPI_SR to check the status of the FIFO. If SPI_SR[tnf] is 1, it
indicates that the transmit FIFO is not full. In this case, write four data segments to SPI_DR.
Step 5 Query the status register SPI_SR to check the status of the FIFO until all data segments are
transmitted.
Step 6 Write 0 to SPI_CR1[see] to disable the SPI.
----End
To query and receive a specified amount of data (for example, four data segments), do as
follows:
Step 7 Configure SPI_CPSR[cpsdvsr] to set the clock pre-divider.
Step 8 Configure SPI_CR0 to set the serial clock rate, frame formats (SPI, TI, and MW), and frame
duration.
Step 9 Write 1 to SPI_CR1[see] to enable the SPI.
Step 10 Query the status register SPI_SR to check the status of the receive FIFO. If the receive FIFO
is not empty, read four data segments from the SPI_DR register and receive a half word.
Step 11 Query the status register SPI_SR until the status is not busy.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-63

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Step 12 Write 0 to SPI_CR1[see] to disable the SPI.
----End

Data Transfer in DMA Mode
The initialization process is as follows:
Step 1 Write 0 to SPI_CR1[sse] to disable the SPI.
Step 2 Write corresponding values to SPI_CR0 to set the parameters such as the frame format and
transfer data bit width.
Step 3 Configure SPI_CPSR to set the required clock divider.
Step 4 Configure the SPI_INTMASK register to disable the generation of the corresponding interrupt
signal.
Step 5 Configure SPI_DMACR to enable the DMA function of the SPI.
----End
To transmit data, do as follows:
Step 1 Obtain a DMAC channel.
Step 2 Configure the parameters of the configuration register and control register related to the
DMAC channel.
Step 3 Start the DMAC to respond to the DMA request sent by the transmit FIFO of the SPI so as to
enable the data transfer.
Step 4 Write 1 to SPI_CR1[sse] to enable the SPI. Then, the initialization configuration is complete.
Step 5 If the number of data segments to be transferred by the DMAC is odd, the DMAC divides the
number by the burst length set in Step 2 to calculate the number of burst requests to be
responded. Although single requests are generated when the SPI sends all DMA burst
requests, the DMAC responds to the burst requests first. In addition, the DMAC responds to
the single requests to finish the data transfer only when the last burst is not a complete burst.
Step 6 Check whether the data transfer is complete through the DMA interrupt. If the data transfer is
complete, disable the DMA transmit function of the SPI.
----End
To receive data, do as follows:
Step 1 Obtain a DMAC channel.
Step 2 Configure the parameters of the configuration register and control register related to the
DMAC channel.
Step 3 Start the DMAC to respond to the DMA request sent by the transmit FIFO of the SPI so as to
enable the data transfer.
Step 4 Write 1 to SPI_CR1[sse] to enable the SPI. Then, the initialization configuration is complete.
Step 5 If the number of data segments to be transferred by the DMAC is odd, the DMAC divides the
number by the burst length set in Step 2 to calculate the number of burst requests to be
responded. Although single requests are generated when the SPI sends all DMA burst

11-64

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

requests, the DMAC responds to the burst requests first. Additionally, the DMAC responds to
the single requests to finish the data transfer only when the last burst is not a complete burst.
Step 6 Check whether the data transfer is complete through the DMA interrupt. If the data transfer is
complete, disable the DMA transmit function of the SPI.
----End

11.3.6 Register Summary
Table 11-14 lists the SPI registers.
Table 11-14 Summary of the SPI registers (base address: 0x200E_0000)
Offset
Address

Register

Description

Page

0x000

SPI_CR0

Control register 0

11-65

0x004

SPI_CR1

Control register 1

11-67

0x008

SPI_DR

Receive/transmit FIFO data register

11-68

0x00C

SPI_SR

FIFO status register

11-68

0x010

SPI_CPSR

Clock pre-divider register

11-69

0x014

SPI_INTMASK

Interrupt mask/clear register

11-69

0x018

SPI_RINTSTATUS

Raw interrupt status register

11-70

0x01C

SPI_MINTSTATUS

Masked interrupt status register

11-71

0x020

SPI_INTCLR

Interrupt clear register

11-72

0x024

SPI_DMACR

DMA control register

11-72

11.3.7 Register Description
SPI_CR0
SPI_CR0 is control register 0. It is used to control various functions of the SPI.

Bit

15

Offset Address

Register Name

Total Reset Value

0x000

SPI_CR0

0x0000

14

13

12

Name
Reset

Issue 02 (2010-04-20)

11

10

9

8

scr
0

0

0

0

0

0

0

0

7

6

sph

spo

0

0

Bits

Access

Name

Description

[15:8]

RW

scr

Serial clock rate.

5

4

3

2

frf
0

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

0

0

0

dss
0

0

0

11-65

Hi3515
Data Sheet

11 Other Peripheral Interfaces

The system clock reference (SCR) value is used
to calculate the SPI transmit or receive bit rate.
The bit rate is calculated by the following
formula:

FSSPCLK
CPSDVSR × (1+ SCR )
If SPICPSR[CPSDVSR] is an even number
ranging from 2 to 254, then the value of SCR
ranges from 0 to 255.

[7]

RW

sph

SPICK phase control (applicable to the Motorola
SPI frame format only).
0: Data is captured on the first clock edge.
1: Data is captured on the second clock edge.
SPICK level (applicable to the Motorola SPI
frame format only).

[6]

RW

spo

0: The level of the SPICK pin is stably low.
1: When there is no data to transmit, the level of
the SPICK pin is stably high.
Frame format select.
00: Motorola SPI frame format

[5:4]

RW

frf

01: TI synchronous serial frame format
10: National Microwire frame format
11: Reserved.
Data size select.
0000–0010: reserved
0011: 4 bits
0100: 5 bits
0101: 6 bits
0110: 7 bits
0111: 8 bits

[3:0]

RW

dss

1000: 9 bits
1001: 10 bits
1010: 11 bits
1011: 12 bits
1100: 13 bits
1101: 14 bits
1110: 15 bits
1111: 16 bits

11-66

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

SPI_CR1
SPI_CR1 is control register 1. It is used to control various functions of the SPI.

Bit

15

Offset Address

Register Name

Total Reset Value

0x004

SPI_CR1

0x0000

14

13

12

11

Name
Reset

10

9

8

7

6

5

4

reserved
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:4]

RO

reserved

Reserved.

0

0

3

2

1

0

sod

ms

sse

lbm

0

0

0

0

Slave mode output disable.

[3]

RW

sod

The bit is used only in slave mode (ms = 1). In a
system with multiple slave devices, the SPI
master device broadcasts the information to all
the slave devices to ensure that only one slave
device can drive the data to its serial output line.
In this case, the slave output device is connected
to SPI_SPIDI. In such a system, if the slave
device does not drive SPI_SPIDO, the sod bit
must be set.
0: The SPI can drive the SPITXD output in slave
mode.
1: The SPI cannot drive the SPITXD output in
slave mode.
Master/slave mode select.

[2]

RW

ms

The bit can be set only when the SPI is not
enabled.
0: The device is configured as a master device
(default).
1: The device is configured as a slave device.
Synchronous serial interface enable.

[1]

RW

sse

0: The interface is disabled
1: The interface is enabled.
Loopback mode.

[0]

RW

lbm

0: The normal serial interface operation is
enabled.
1: The transmit serial shift register is internally
connected to the receive serial shift register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-67

Hi3515
Data Sheet

11 Other Peripheral Interfaces

SPI_DR
SPI_DR is the receive/transmit FIFO data register. When SPI_DR is read, it serves as the exit
of the receive FIFO. When the SPI_DR is written, it serves as the entrance of the transmit
FIFO. In the Microwire frame format, the data in the transmit FIFO has a fixed bit width of 8
bits. In data receive, the bit width is not restricted. If the SPI_CR1[sse] is set to 0, the receive
and transmit FIFOs are not cleared. Therefore, the data can be moved to the transmit FIFO
before the SPI starts.

Bit

15

Offset Address

Register Name

Total Reset Value

0x008

SPI_DR

0x0000

14

13

12

11

10

9

8

Name
Reset

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

data
0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:0]

RW

data

In the case of read, the register acts as the
receive FIFO. In the case of write, the register
acts as the transmit FIFO.

SPI_SR
SPI_SR is the FIFO status register. This register is read-only.

Bit

15

Offset Address

Register Name

Total Reset Value

0x00C

SPI_SR

0x0003

14

13

12

11

Name
Reset

10

9

8

7

6

5

reserved
0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:5]

RO

reserved

Reserved.

0

4

3

2

1

0

bsy

rff

rne

tnf

tfe

0

0

0

1

1

SPI busy flag.
[4]

RO

bsy

0: The SPI is idle.
1: The SPI is busy.
Receive FIFO full state.

[3]

RO

rff

0: The receive FIFO is not full.
1: The receive FIFO is full.
Receive FIFO empty state.

[2]

RO

rne

0: The receive FIFO is empty.
1: The receive FIFO is not empty.

[1]

11-68

RO

tnf

Transmit FIFO full state.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

0: The transmit FIFO is full.
1: The transmit FIFO is not full.
Transmit FIFO empty state.
[0]

RO

0: The transmit FIFO is not empty.

tfe

1: The transmit FIFO is empty.

SPI_CPSR
The SPI_CPSR is the clock pre-divider register. It specifies a clock pre-divider that divides
the frequency of the input SPI working clock to generate SPICK. The pre-divider must be an
even number ranging from 2 to 254. The LSB must be zero. If an odd number is written to
SPI_CPSR, the returned LSB must be zero when the register is read.

Bit

15

Offset Address

Register Name

Total Reset Value

0x010

SPI_CPSR

0x0000

14

13

Name
Reset

12

11

10

9

8

7

6

5

reserved
0

0

0

0

0

4

3

2

1

0

0

0

0

cpsdvsr
0

0

0

0

0

Bits

Access

Name

Description

[15:8]

RO

reserved

Reserved.

0

0

0

Clock pre-divider.
[7:0]

RW

The value must be an even number ranging from
2 to 254. Either the pre-divider or SPI_CR0[scr]
can divide the frequency of the input clock
SPICLK. The LSB of CPSDVSR is read as 0.

cpsdvsr

SPI_INTMASK
SPI_INTMASK is the interrupt mask/clear register. Writing to the corresponding bit of the
register can mask or clear an interrupt.

SPI_ INTMASK

0x0000

14

13

12

11

Name

Reset

9

8

7

6

5

4

0

0

0

0

0

reserved

0

Bits

Issue 02 (2010-04-20)

10

0

0

Access

0

0

Name

0

0

3

2

1

0

rorim

0x014

rtim

Total Reset Value

rxim

15

Register Name

txim

Bit

Offset Address

0

0

0

0

Description

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-69

Hi3515
Data Sheet

11 Other Peripheral Interfaces

[15:4]

RO

[3]

reserved

RW

Reserved.
Interrupt that is generated when the transmit
FIFO is more than half empty.

txim

0: The interrupt is masked.
1: The interrupt is not masked.

[2]

RW

Interrupt that is generated when the receive
FIFO is more than half empty.

rxim

0: The interrupt is masked.
1: The interrupt is not masked.

[1]

RW

Timeout interrupt that is generated when the
receive FIFO is not empty and the receive FIFO
is not read before the timeout period ends.

rtim

0: The interrupt is masked.
1: The interrupt is not masked.

[0]

RW

Overflow interrupt that is generated when data is
written to the full receive FIFO.

rorim

0: The interrupt is masked.
1: The interrupt is not masked.

SPI_RINTSTATUS
SPI_RINTSTATUS is the raw interrupt status register. When it is read, the status of the raw
interrupts is obtained. Writing this register has no effect.

SPI_RINTSTATUS

0x0008

14

13

12

11

Name

Reset

10

9

8

7

6

5

4

0

0

0

0

0

reserved

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:4]

RO

reserved

Reserved.

[3]

RO

txris

3

2

1

0

rorris

0x018

ptris

Total Reset Value

rxris

15

Register Name

txris

Bit

Offset Address

1

0

0

0

Raw interrupt status of the SPITXINTR
interrupt.
0: The interrupt is invalid.
1: The interrupt is valid.

[2]

11-70

RO

rxris

Raw interrupt status of the SPIRXINTR
interrupt.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

0: The interrupt is invalid.
1: The interrupt is valid.

[1]

RO

Raw interrupt status of the SPIRTXINTR
interrupt.

rtris

0: The interrupt is invalid.
1: The interrupt is valid.

[0]

RO

Raw interrupt status of the SPIRORXINTR
interrupt.

rorris

0: The interrupt is invalid.
1: The interrupt is valid.

SPI_MINTSTATUS
SPI_MINTSTATUS is the masked interrupt status register. This register is read-only.

SPI_MINTSTATUS

0x0000

14

13

12

11

Name

Reset

10

9

8

7

6

5

4

0

0

0

0

0

reserved

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:4]

RO

reserved

Reserved.

[3]

RO

txmis

3

2

1

0
rormis

0x01C

rtmis

Total Reset Value

rxmis

15

Register Name

txmis

Bit

Offset Address

0

0

0

0

SPITXINTR interrupt that indicates the transmit
FIFO masked interrupt status.
0: The interrupt is invalid.
1: The interrupt is valid.

[2]

RO

rxmis

SPIRXINTR interrupt that indicates the receive
FIFO masked interrupt status.
0: The interrupt is invalid.
1: The interrupt is valid.

[1]

RO

rtmis

SPIRTINTR interrupt that indicates the receive
timeout masked interrupt status.
0: The interrupt is invalid.
1: The interrupt is valid.

[0]

RO

rormis

SPIRORINTR interrupt that indicates the
receive overflow masked interrupt status.
0: The interrupt is invalid.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-71

Hi3515
Data Sheet

11 Other Peripheral Interfaces

1: The interrupt is valid.

SPI_INTCLR
SPI_INTCLR is the interrupt clear register. When 1 is written to the register, the
corresponding interrupt is cleared. Writing 0 to the register has no effect.

15

Register Name

Total Reset Value

0x020

SPI_INTCLR

0x0000

14

13

12

11

10

Name

Reset

9

8

7

6

5

4

3

2

reserved

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:2]

RO

reserved

Reserved.

0

0

0

0

1

0

rtic

roric

Bit

Offset Address

0

0

SPIRTINTR interrupt clear.
[1]

WO

rtic

0: The interrupt is not cleared.
1: The interrupt is cleared.
SPIRORINTR interrupt clear.

[0]

WO

0: The interrupt is not cleared.

roric

1: The interrupt is cleared.

SPI_DMACR
SPI_DMACR is the DMA control register. It is used to enable the DMA request function of
the SPI.
Total Reset Value

0x024

SPI_DMACR

0x0000

14

13

12

11

10

Name

Reset

11-72

9

8

7

6

5

4

3

2

0

0

0

0

0

0

reserved

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[15:2]

RO

reserved

Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

1

0
rxdmae

15

Register Name

txdmae

Bit

Offset Address

0

0

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

DMA operation enable of the transmit FIFO.
[1]

RW

txdmae

0: The DMA operation is disabled.
1: The DMA operation is enabled.
DMA operation enable of the receive FIFO.

[0]

RW

rxdmae

0: The DMA operation is disabled.
1: The DMA operation is enabled.

11.4 IR
11.4.1 Overview
The infrared remoter (IR) module receives the infrared data through the infrared interface. It
supports the functions of data decoding in four formats including NEC with simple repeat
code, NEC with full repeat code, SONY code, and TC9012 code. It also supports the
functions of receive data error detection and IR wake-up.

11.4.2 Features
The IR module has the following features:
z

Can be disabled through the configuration by software.

z

Supports the receive data overflow interrupt, receive data frame format error interrupt,
receive data frame interrupt, key release interrupt, and the interrupt formed by the
combination of any the preceding four interrupts.

z

Supports the query of the raw interrupt state and the query of the masked interrupt state.

z

Supports interrupt clear and mask (write to clear).

z

Supports IR wake-up.

z

Supports the optional reference clock frequency ranging from 1 MHz to 128 MHz.
Through the clock divider programmed by software, the frequency of the working clock
can be preset to 1 MHz.

11.4.3 Signal Description
Table 11-15 lists IR interface signals.
Table 11-15 IR interface signals
Signal
Name

Direction

Description

Corresponding Pin

IR_RCV

I

Serial IR data received from the pins.

EBIRDYN

a: When the IRRCV pin is used for receiving IR signals, it must be connected to a pull-up resistor.

11.4.4 Function Description
The IR module receives the infrared signals transmitted from the infrared remote control,
decodes the signals, and then transmits the decoded signals to the ARM system. The ARM
system performs the corresponding operations according to the received codes and

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-73

Hi3515
Data Sheet

11 Other Peripheral Interfaces

implements the expected function. The IR module connects to the advanced peripheral bus
(APB) of the ARM subsystem. When the chip is in the low power state (the CPU stops
working), the IR module generates an interrupt signal after the receipt of a complete frame
and then sends the signal to the interrupt system (INT) module. The INT module sends a
control signal to control the system controller and thus to control the clock reset generation
(CRG) to wake the ARM subsystem. In this manner, the IR wake function is implemented.
Figure 11-23 shows the functional block diagram of the IR module.
Figure 11-23 Functional block diagram of the IR module

CRG

SC

INT
interrupt
signal

ARM

AHB2APB

IR
GPIO

AHB

APB

The analysis of signals transmitted from various infrared remote controls shows that the lead
codes in the infrared commands vary with remote controls. In addition, the subsequent control
commands and even the bits of the command codes are also different. The reason is that the
design of these infrared remote controls does not comply with a unified infrared remote
control standard. The basic encoding principles, however, are the same. That is, use the pulses
with different periods and duty ratios to represent 0 and 1 respectively. The duty ratios and
pulse cycles may vary with remote controls. According to these differences, the code formats
of the infrared data are classified into NEC with simple repeat code, NEC with full repeat
code, TC9012 code, and SONY code.
Table 11-16 to Table 11-18 describe the statistics on the code formats of the infrared receive
data.
Table 11-16 Statistics on the code formats of the infrared receive data (NEC with simple repeat
code)
Data Format

Lead code (10
μs)
bit0 (10 μs)

bit1 (10 μs)

11-74

NEC with Simple Repeat Code
uPD6121G

D6121/BU5777
/D1913

LC7461M-C13

AEHA

LEAD_S

900

900

900

337.6

LEAD_E

450

450

450

168.8

B0_L

56

56

56

42.2

B0_H

56

56

56

42.2

B1_L

56

56

56

42.2

B1_H

169

169

169

126.6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Data Format

NEC with Simple Repeat Code
uPD6121G

D6121/BU5777
/D1913

LC7461M-C13

AEHA

SLEAD_S

900

900

900

337.6

SLEAD_E

225

225

225

337.6

Burst (10μs)

55

55

55

42.2

Frame duration (10 μs)

10800

10800

10800

8777.6–12828.8

Valid data bit

32

32

42

48

Simple repeat
code
(10 μs)

Table 11-17 Statistics on the code formats of the infrared receive data (NEC with full repeat code)
Data Format

NEC with Full Repeat Code
uPD6121
G

LC7461
M-C13

MN6024
-C5D6

MN6014
-C6D6

MATNE
W

MN6030

PANAS
ONIC

LEAD_S

900

900

337.6

349.2

348.8

349

352

LEAD_E

450

450

337.6

349.2

374.4

349

352

bit0

B0_L

56

56

84.4

87.3

43.6

87.3

88

(10 μs)

B0_H

56

56

84.4

87.3

43.6

87.3

88

bit1

B1_L

56

56

84.4

87.3

43.6

87.3

88

(10 μs)

B1_H

169

169

253.2

174.6

130.8

261.9

264

simple
repeat
code

SLEAD_
S

None

None

None

None

None

None

None

Burst (10 μs)

55

55

84.4

87.3

43.6

87.3

88

Frame duration (10μs)

10800

10800

10130

10470

12413.6–
16594.4

10500

10400

Valid data bit

32

42

22

24

48

22

22

Lead
code
(10 μs)

(10 μs)

SLEAD_
E

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-75

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-18 Statistics on the code formats of the infrared receive data (TC9012 and SONY)
Data Format

TC9012

SONY

TC9012F/92
43

SONY-D7C
5

SONY-D7C
6

SONY-D7C
8

SONY-D7C
13

Lead code

LEAD_S

450

240

240

240

240

(10 μs)

LEAD_E

450

60

60

60

60

bit0

B0_L

56

60

60

60

60

(10 μs)

B0_H

56

60

60

60

60

bit1

B1_L

56

120

120

120

120

(10 μs)

B1_H

169

60

60

60

60

Simple repeat
code

SLEAD_S

None

None

None

None

None

Burst (10 μs)

56

None

None

None

None

Frame duration (10 μs)

10800

4500

4500

4500

4500

Valid data bit

32

12

13

15

20

(10 μs)

SLEAD_E

NEC with Simple Repeat Code
Frame Format
The NEC with simple repeat code consists of three parts:
z

START (lead code): It consists of a start code (low level) and an end code (high level).

z

Data code: The valid bit and the meaning of a certain bit depend on the specific code
format. The data code is received according to the least significant bit (LSB) first
sequence.

z

Burst: It is used to receive the last data bit.

Figure 11-24 shows the frame format for transmitting a single NEC with simple repeat code.
Figure 11-24 Frame format for transmitting a single NEC with simple repeat code
START

LSB

Data code

MSB

Burst

When a complete data frame is received after the key is held down for more than one frame
duration, the following received data frame consists of a simple lead code and burst signal
only. The lead code also consists of a start code (low level) and an end code (high level).

11-76

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-25 shows the frame format for transmitting continuous NEC with simple repeat
codes by holding the key down.
Figure 11-25 Frame format for transmitting continuous NEC with simple repeat codes by holding
the key down
First frame

Second frame

Third frame

Code Format
Figure 11-26 shows the definitions of bit0 and bit1 of the NEC with simple repeat code.
Figure 11-26 Definitions of bit0 and bit1 in the NEC with simple repeat code
bit0

bit1

b0_L b0_H

b1_L

b1_H

Figure 11-27 shows the code format for transmitting a single NEC with simple repeat code.
Figure 11-28 shows the code format for transmitting continuous NEC with simple repeat
codes by holding the key down.
Figure 11-27 Code format for transmitting a single NEC with simple repeat code
LEAD_S

LEAD_E

Lead code

Data code

Burst

Figure 11-28 Code format for transmitting continuous NEC with simple repeat codes by holding
the key down
Simplified lead code

SLEAD_S

SLEAD_E Burst

Note 1: The pulse width of the high and low levels and the frame duration depend on specific code formats.
See Table 11-16 to Table 11-18.
Note 2: The frame duration must be equal to or less than 160 ms. Otherwise, the simple lead code cannot be
identified.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-77

Hi3515
Data Sheet

11 Other Peripheral Interfaces

NEC with Full Repeat Code
Frame Format
The NEC with full repeat code consists of three parts:
z

START (lead code): It consists of a start code (low level) and an end code (high level).

z

Data code: The valid bit and the meaning of a certain bit depend on the specific code
format. The data code is received according to the LSB first sequence.

z

Burst: It is used to receive the last data bit.

Figure 11-29 shows the frame format for transmitting a single NEC with full repeat code.
Figure 11-29 Frame format for transmitting a single NEC with full repeat code
START

LSB

Data code

MSB

Burst

When a complete data frame (first frame) is received after the key is held down for more than
one frame duration, the following received data frames are all complete data frames. That is,
the first frame is transmitted repeatedly based on the frame duration. Figure 11-30 shows the
frame format for transmitting continuous NEC with full repeat codes by holding the key
down.
Figure 11-30 Frame format for transmitting continuous NEC with full repeat codes by holding the
key down
First frame

Second frame

Third frame

Figure 11-28 and Figure 11-30 show that the only difference between the NEC with simple
repeat code and the NEC with full repeat code is the format of the repeat frame. For the NEC
with simple repeat code, the transmitted repeat frame includes a simple lead code; for the
NEC with full repeat code, the transmitted repeat frame is a complete frame, that is, the first
frame and the repeat frames are the same.

Code Format
Figure 11-31 shows the definitions of bit0 and bit1 of the NEC with full repeat code.
Figure 11-31 Definitions of bit0 and bit1 in the NEC with full repeat code
bit0

bit1

b0_L b0_H

11-78

b1_L

b1_H

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-32 shows the code format for transmitting a single NEC with full repeat code.
Figure 11-32 Code format for transmitting a single NEC with full repeat code
LEAD_S

LEAD_E

Lead code

Data code

Burst

Note: The pulse width of the high and low levels and the frame duration depend on specific code formats. See
Table 11-16 to Table 11-18.

TC9012 Code
Frame Format

According to the features of the TC9012 code, the first bit of all key codes must be all-1s or
all-0s. Otherwise, the unnecessary frames are generated due to continuous key press.
The TC9012 code consists of three parts:
z

START (lead code): It consists of a start code (low level) and an end code (high level).

z

Data code: The valid bit and the meaning of a certain bit depend on the specific code
format. The data code is received according to the LSB first sequence.

z

Burst: It is used to receive the last data bit.

Figure 11-33 shows the frame format for transmitting a single TC9012 code.
Figure 11-33 Frame format for transmitting a single TC9012 code
START

LSB

Data code

MSB

C0
Burst

When a complete data frame is received after the key is held down for more than one frame
duration, the following received data frame consists of a simple lead code, data bit, and burst
signal. The lead code consists of a start code (low level) and an end code (high level). The
data bit is the one's complement of the first data bit (C0) received in the previous frame.
Figure 11-34 shows the frame format for transmitting continuous TC9012 codes.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-79

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-34 Frame format for transmitting continuous TC9012 code by holding the key down
First frame

Third frame

Second frame

Code Format
Figure 11-35 shows the definitions of bit0 and bit1 of the TC9012 code.
Figure 11-35 Definitions of bit0 and bit1 of the TC9012 code
bit0

b0_L

bit1

b0_H

b1_L

b1_H

Figure 11-36 shows the code format for transmitting a single TC9012 code.
Figure 11-36 Code format for transmitting a single TC9012 code
LEAD_S LEAD_E

Lead code

Data code

Burst

Figure 11-37 shows the code format for transmitting continuous TC9012 codes when C0 is 1.
Figure 11-37 Code format for transmitting continuous TC9012 codes (C0 = 1)
LEAD_S

LEAD_E

C0=1
Lead code

bit0

Burst

Figure 11-38 shows the code format for transmitting continuous TC9012 codes when C0 is 0.

11-80

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-38 Code format for transmitting continuous TC9012 codes (C0 = 0)
LEAD_S

LEAD_E

C0=0

bit1

Lead code

Burst

Note: The pulse width of the high and low levels and frame duration depend on specific code patterns. See
Table 11-16 to Table 11-18. In addition, the frame duration must be equal to or less than 160 ms. Otherwise,
the repeat frame cannot be identified.

SONY Code
Frame Format
The SONY code consists of two parts:
z

START (lead code): It consists of a start code (low level) and an end code (high level).

z

Data code: The valid bit and the meaning of a certain bit depend on the specific code
format. The data code is received according to the LSB first sequence.

Figure 11-39 shows the frame format for transmitting a single SONY code.
Figure 11-39 Frame format for transmitting a single SONY code
START

Data code

When a complete data frame is received after the key is held down for more than one frame
duration, the following received data frame is also a complete data frame. Figure 11-40 shows
the frame format for transmitting continuous SONY codes by holding the key down.
Figure 11-40 Frame format for transmitting continuous SONY codes by holding the key down
First frame

Second frame

Third frame

Code Format
Figure 11-41 shows the definitions of bit0 and bit1 of the SONY code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-81

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-41 Definitions of bit0 and bit1
bit0

bit1

b0_L b0_H

b1_L

b1_H

Note: The pulse width of the high level and low level and frame duration depend on specific code patterns.
For details, see Table 11-16 to Table 11-18.

11.4.5 Operating Mode
Pin Multiplexing
The IR pin is multiplexed with the EBI pin. Before using the IR pin, you must configure the
IO Config register to enable the IR function of the corresponding pin. For details, see the
configuration of reg45.

Clock Gating
When SC_PEREN bit[11] is set to 1, the IR clock pclk is enabled. When SC_PERDIS bit[11]
is set to 1, the IR clock pclk is disabled.

Soft Reset
When SC_PERCTRL8 bit[10] is set to 1, the IR module is soft reset separately. After the reset,
each configuration register is reset to its default value. Therefore, these registers must be
initialized after the reset.

Instance of Register Configuration
Figure 11-42 shows the process of initializing the IR module.

11-82

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Figure 11-42 Process of initializing the IR module
Start

Set IR_EN to 1

Read IR_BUSY

Is IR_BUSY 0?

No

Yes
Configure IR_CFG, IR_LEADS,
IR_LEADE, IR_SLEADE, IR_B0,
IR_B1, and IR_INT_MASK

Configure IR_START

End

To initialize the IR module, do as follows:
Step 1 Start the initialization process after selecting the address space of the IR module.
Step 2 Configure IR_EN[0] to 1 to enable the IR receive module.
Step 3 Read IR_BUSY to check the current configuration state of the IR module.
z

If the value of IR_BUSY is 1, it indicates that the IR module is in the busy state. Then
keep reading IR_BUSY.
In this case, do not configure other control registers of the IR module through software.
Otherwise, the IR module fails to be configured.

z

If the value of IR_BUSY is 0, it indicates that the IR module is in the idle state. Then go
to Step 4.

Step 4 Configure IR_CFG, IR_LEADS, IR_LEADE, IR_SLEADE, IR_B0, IR_B1, and
IR_INT_MASK.
Note that users can update corresponding registers as required. If the registers are not updated,
the original values are remained.
Step 5 Configure IR_START.
The IR_START can be configured until all IR control registers are configured, because the
IR_START is used to generate the start signal. If the IR_START is configured, the IR module
starts to receive the infrared data according to the register value.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-83

Hi3515
Data Sheet

11 Other Peripheral Interfaces

----End
Figure 11-43 Process of reading the decoded data
Start

In interrupt or query mode, wait till the IR
receives data

Receive data interrupt?

No

Yes
Read IR_DATAH

Read IR_DATAL

Clear the receive data interrupt

End

To read the decoded data, do as follows:
Step 1 Select the address space of the IR module.
Step 2 In interrupt or query mode, wait for the receive data frame.
z

In interrupt mode, the CPU starts to query the value of IR_INT_STATUS[intms_rcv]
when it receives an interrupt request signal from the IR module. If the queried value is 1,
it indicates that the IR module receives a data frame. Then, go to Step 3. If the queried
value is 0, repeat Step 2 to wait for an interrupt.

z

In query mode, software keeps querying the value of IR_INT_STATUS[intrs_rcv] or
queries the value at an interval. If the queried value is 1, it indicates that the IR module
receives a data frame. Then, go to Step 3. If the queried value is 0, it indicates that the IR
module does not receive a data frame yet. Then, repeat Step 2 to continue the query.

Step 3 Read IR_DATAH.
If the data in one frame does not exceed 32 bits, skip this step.
Step 4 Read IR_DATAL.
Step 5 Clear the receive data interrupt.
----End

11-84

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11.4.6 Register Summary
Table 11-19 lists the IR registers.
Table 11-19 Summary of the IR registers (base address: 0x2007_0000)
Offset
Address

Register

Description

Page

0x000

IR_EN

IR receive enable control register

11-85

0x004

IR_CFG

IR configuration register

11-86

0x008

IR_LEADS

Margin configuration register of the start
bit in the lead code

11-87

0x00C

IR_LEADE

Margin configuration register of the end bit
in the lead code

11-88

0x010

IR_SLEADE

Margin configuration register of the end bit
in the simple lead code

11-89

0x014

IR_B0

Margin configuration register of the level
for determining bit0

11-91

0x018

IR_B1

Margin configuration register of the level
for determining bit1

11-92

0x01C

IR_BUSY

Configuration busy flag register

11-93

0x020

IR_DATAH

Register for storing the 16 most significant
bits (MSBs) of the decoded data received
by the IR

11-93

0x024

IR_DATAL

Register for storing the 32 LSBs of the
decoded data received by the IR

11-94

0x028

IR_INT_MASK

IR interrupt mask register

11-94

0x02C

IR_INT_STATUS

IR interrupt status register

11-95

0x030

IR_INT_CLR

IR interrupt clear register

11-96

0x034

IR_START

IR start configuration register

11-97

11.4.7 Register Description
IR_EN
IR_EN is the IR receive enable control register.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-85

Hi3515
Data Sheet

11 Other Peripheral Interfaces

You must set IR_EN[0] to 0b1 through software before configuring other registers. Otherwise,
the configuration is invalid. When IR_EN[0] is 0b0, other registers are read-only and the read
values are their reset values.
Register Name

Total Reset Value

0x000

IR_EN

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
ir_en

Bit

Offset Address

0

0

0

0

0

0

0

IR receive module enable bit.
[0]

RW

ir_en

0: The IR receive module is disabled.
1: The IR receive module is enabled.

IR_CFG
IR_CFG is the IR configuration register.

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.
The reference clock frequency supported by the IR module ranges from 1 MHz to 128 MHz.
The relation between the frequency and the divider ir_freq is as follows:
z

When the reference clock frequency is 1 MHz. ir_freq must be set to 0x00.

z

If the reference clock frequency is 128 MHz. ir_freq must be set to 0x7F.

When the frequency of the IR reference clock is not an integer ranging from 1 MHz to 128
MHz, the divider can be calculated by the round-off method. For example, if the reference
clock is 12.1 MHz, the divider is 0x0B; if the reference clock is 12.8 MHz, the divider is
0x0C.
The relation between the frequency tolerance and the count difference is as follows: If the
base frequency is f and the frequency difference is Df, then the frequency tolerance ratio is
Df/f. If the count difference is represented by Dcnt and the level width is s (in the unit of μs),
then the count difference is: Dcnt = ⎡0.1 × s × ratio⎤ . Therefore, when the clock has a

11-86

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

frequency tolerance, the valid range of the parameter value offsets. If the frequency increases,
the corresponding margin value range is from (min + Dcnt) to (max + Dcnt). The symbols
min and max represent the margin values without the offset. If the frequency decreases, the
offset range is from (min – Dcnt) to (max – Dcnt). Here, take the margin of the start bit in the
lead code as an example. If the base frequency is 100 MHz and the frequency is increased by
0.1 MHz, then ratio is 0.1/100 (0.001). Assume that s is equal to 9000 μs. Then
Dcnt = ⎡0.1 × 9000 × 0.001⎤ = 1 . Thus, the margin of ir_leads must be changed to a value
ranging from 0x033D to 0x3CD.
Register Name

Total Reset Value

0x004

IR_CFG

0x0000_0000

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

0

0

8

ir_bits

0

0

0

0

7

6

5

4

reserved

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
ir_format

Bit

Offset Address

0

0

0

3

2

1

0

0

0

ir_freq

0

0

0

0

0

Data code type.
00: NEC with simple repeat code
01: TC9012 code
[15:14]

RW

ir_format

10: NEC with full repeat code
11: SONY code
For details about the relations between the codes and code types,
see Table 11-16 to Table 11-18.
Data bits in a frame.

[13:8]

RW

0x00–0x2F: Correspond to bit 1 to bit 48 in one frame
respectively.

ir_bits

0x30–0x3F: Reserved.
If software configures ir_bits to the value ranging from 0x30 to
0x3F, the configuration is invalid and ir_bits remains unchanged.

[7]

RO

reserved

Reserved.
Divider of the working clock.

[6:0]

RW

ir_freq

0x00–0x7F: Correspond to the working clock divider 1–128
respectively.

IR_LEADS
IR_LEADS is the margin configuration register of the start bit in the lead code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-87

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.
To accurately determine the start bit of the lead code, the margin must be set to the typical
value of the specific code type. For details about the typical values of specified code types,
see LEAD_S in Table 11-16 to Table 11-18.
z

For a pulse width whose typical value is equal to or greater than 400 (with the precision
of 10 μs), the recommended margin is 8% of the typical value. For example, assume that
the code type is D6121 and the typical value of LEAD_S is 900, then cnt_leads_min =
900 x 92% = 828 = 0x33C and cnt_leads_max = 900 x 108% = 972 = 0x3CC.

z

For a pulse width whose typical value is less than 400 (with the precision of 10 μs), the
recommended margin is 20% of the typical value. For example, if the code type is
SONY-D7C5 and the typical value of LEAD_S is 240, then cnt_leads_min = 240 x 80%
= 192 = 0xC0 and cnt_leads_min = 240 x 120% = 288 = 0x120.

The basic configuration principle is as follows: cnt_leads_max is equal to or greater than
cnt_leads_min, and cnt_leads_min is greater than cnt0_b_max and cnt1_b_max.

Bit

Offset Address

Register Name

Total Reset Value

0x008

IR_LEADS

0x033C_03CC

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

cnt_leads_min

0

0

0

0

0

0

0

Bits

Access

Name

[25:16]

RW

cnt_leads_min

[15:10]

RO

reserved

[9:0]

RW

cnt_leads_max

0

0

8

7

reserved

0

0

0

0

0

0

0

6

5

4

3

2

1

0

0

0

0

cnt_leads_max

0

0

0

0

0

0

0

0

0

Description
Minimum pulse width of the start bit in the lead code.
0x000–0x007: Reserved.
Reserved.
Maximum pulse width of the start bit of the lead code.
0x000–0x007: Reserved.

IR_LEADE
IR_LEADE is the margin configuration register of the end bit in the lead code.

11-88

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

z

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.

z

For the NEC with simple repeat code, the margins of cnt_sleade and cnt_leade cannot be
overlapped. Otherwise, when the actual count value is in the overlapped range, the
simplified lead code cannot be identified. Therefore, a frame format error occurs.

To accurately determine the end bit of the lead code, the margin must be set to the typical
value of the specific code type. Generally, the margin is 8% of the typical value. For details
about the typical values of specified code types, see the value of LEAD_E in Table 11-16 to
Table 11-18.
z

For the pulse width whose typical value is equal to or greater than 400 (with the
precision of 10 μs), the recommended margin is 8% of the typical value. For example, if
the code type is D6121 and the typical value of LEAD_E is 450, then cnt_leade_min =
450 x 92% = 414 = 0x19E and cnt_leade_max = 450 x 108% = 486 = 0x1E6.

z

For a pulse width whose typical value is less than 400 (with the precision of 10 μs), the
recommended margin is 20% of the typical value. For example, if the code type is
SONY-D7C5 and the typical value of LEAD_E is 60, then cnt_leade_min = 60 x 80% =
48 = 0x030 and cnt_leade_max = 60 x 120% = 72 = 0x048.

The basic configuration principle is as follows: cnt_leade_max is equal to or greater than
cnt_leade_min.

Bit

Offset Address

Register Name

Total Reset Value

0x00C

IR_LEADE

0x019E_01E6

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

cnt_leade_min
0

0

1

1

0

0

1

1

1

8

7

reserved
1

0

Bits

Access

Name

Description

[31:25]

RO

reserved

Reserved.

[24:16]

RW

cnt_leade_min

[15:9]

RO

reserved

[8:0]

RW

cnt_leade_max

0

0

0

0

0

6

5

4

3

2

1

0

1

0

cnt_leade_max
0

0

1

1

1

1

0

0

1

Minimum pulse width of the end bit in the lead code.
0x000–0x007: Reserved.
Reserved.
Maximum pulse width of the end bit in the lead code.
0x000–0x007: Reserved.

IR_SLEADE
IR_SLEADE is the margin configuration register of the end bit in the simplified lead code.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-89

Hi3515
Data Sheet

11 Other Peripheral Interfaces

z

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.

z

For the NEC with simple repeat code, the margins of cnt_sleade and cnt_leade cannot be
overlapped. Otherwise, when the actual count value is in the overlapped range, the
simplified lead code cannot be identified. Therefore, a frame format error occurs.

z

The register must be configured only when the data format is NEC with simple repeat
code.

To accurately determine the end bit of the simplified lead code, the margin must be set to the
typical value of the specific code type. For details about the typical values of specified code
types, see SLEAD_E in Table 11-16 to Table 11-18
z

For a pulse width whose typical value is equal to or greater than 225 (with the precision
of 10 μs), the recommended margin is 8% of the typical value. For example, if the code
type is D6121 and the typical value of SLEAD_E is 225, then cnt_sleade_min = 225 x
92% = 207 = 0xCF and cnt_sleade_max = 225 x 108% = 243 = 0xF3.

z

For a pulse width whose typical value is less than 225 (with the precision of 10 μs), the
recommended margin is 20% of the typical value. For example, if the typical value of
SLEAD_E of a certain code type is 60, then cnt_sleade_min = 60 x 80% = 48 = 0x30
and cnt_sleade_max = 60 x 120% = 72 = 0x48.

The basic configuration principle is as follows: cnt_sleade_max is equal to or greater than
cnt_sleade_min.

Bit

Register Name

Total Reset Value

0x010

IR_SLEADE

0x00CF_00F3

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

11-90

Offset Address

0

0

0

0

cnt_sleade_min

0

0

0

0

0

0

0

0

0

8

7

reserved

0

0

Bits

Access

Name

Description

[31:25]

RO

reserved

Reserved.

[24:16]

RW

cnt_sleade_min

[15:9]

RO

reserved

[8:0]

RW

cnt_sleade_max

0

0

0

0

0

6

5

4

3

2

1

0

0

0

cnt_sleade_max

0

0

0

0

0

0

0

0

0

Minimum pulse width of the end bit in the simplified lead code.
0x000–0x007: Reserved.
Reserved.
Maximum pulse width of the start bit of the simplified lead code.
0x000–0x007: Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

IR_B0
IR_B0 is the margin configuration register of the level for determining bit0.

z

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.

z

For the described four code types, the margins of the levels for determining bit0 and bit1
cannot be overlapped. Otherwise, the actual count value is regarded as bit0 when it is in
the overlapped range.

To accurately determine bit0, the margin must be set to the typical value of the specific code
type. The margin is about 20% of the typical value.
z

For details about the typical values of the NEC with simple repeat code, NEC with
simple repeat code, and TC9012 code, see the value of B0_H in Table 11-16 to Table
11-18. For example, if the code type is D6121 and the typical value of the B0_H is 56
(with the precision of 10 μs), then cnt0_b _min = 56 x 80% = 45 = 0x2D and
cnt0_b_max = 56 x 120% = 67 = 0x43.

z

For details about the typical value of the SONY code, see the value of B0_L in Table
11-16 to Table 11-18. For example, if the code type is SONY-D7C5 and the typical value
of B0_H is 60 (with the precision of 10 μs), then cnt0_b_min = 60 x 80% = 48 = 0x30
and cnt0_b_max = 60 x 120% = 72 = 0x48.

The basic configuration principle is as follows: cnt0_b_max is equal to or greater than
cnt0_b_min.

Bit

Offset Address

Register Name

Total Reset Value

0x014

IR_B0

0x002D_0043

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

cnt0_b_min
0

0

0

0

1

0

1

1

7

6

5

reserved
0

1

Bits

Access

Name

Description

[31:23]

RO

reserved

Reserved.

[22:16]

RW

cnt0_b_min

[15:7]

RO

reserved

[6:0]

RW

cnt0_b_max

Issue 02 (2010-04-20)

8

0

0

0

0

0

0

4

3

2

1

0

1

1

cnt0_b_max
0

0

0

1

0

0

0

0

Minimum pulse width of the level for determining bit0.
0x00–0x07: Reserved.
Reserved.
Maximum pulse width of the level for determining bit0.
0x00–0x07: Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-91

Hi3515
Data Sheet

11 Other Peripheral Interfaces

IR_B1
IR_B1 is the margin configuration register of the level for determining bit1.

z

Before configuring this register, ensure that IR_BUSY[0] is 0b0 and IR_EN[0] is 0b1.
Otherwise, the configuration is invalid and the register remains the original value.

z

For the described four code types, the margins of the levels for determining bit0 and bit1
cannot be overlapped. Otherwise, the actual count value is regarded as bit0 when it is in
the overlapped range.

To accurately determine bit1, the margin must be set to the typical value of the specific code
type. The margin is about 20% of the typical value.
z

For details about the typical values of the NEC with simple repeat code, NEC with
simple repeat code, and TC9012 code, see the values of B1_H in Table 11-16 to Table
11-18. For example, if the code type is D6121 and the typical value of B1_H is 169 (with
the precision of 10 μs), then cnt1_b _min = 169 x 80% = 135 = 0x87 and cnt1_b_max =
169 x 120% = 203 = 0xCB.

z

For details about the typical value of the SONY code, see the values of B1_L in Table
11-16 to Table 11-18. For example, if the code type is SONY-D7C5 and the typical value
of B1_L is 120 (with the precision of 10 μs), then cnt1_b_min = 120 x 80% = 96 = 0x60
and cnt1_b_max = 120 x 120% = 144 = 0x90.

The basic configuration principle is as follows: cnt1_b_max is equal to or greater than
cnt1_b_min.

Bit

Register Name

Total Reset Value

0x018

IR_B1

0x0087_00CB

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

11-92

Offset Address

0

0

0

0

cnt1_b_min
0

0

0

1

0

0

0

0

8

7

6

reserved
1

1

1

Bits

Access

Name

Description

[31:25]

RO

reserved

Reserved.

[24:16]

RW

cnt1_b_min

[15:9]

RO

reserved

[8:0]

RW

cnt1_b_max

0

0

0

0

0

5

4

3

2

1

0

0

1

1

cnt1_b_max
0

0

0

1

1

0

0

1

Minimum pulse width of the level for determining bit1.
0x000–0x007: Reserved.
Reserved.
Maximum pulse width of the level for determining bit1.
0x000–0x007: Reserved.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

IR_BUSY
IR_BUSY is the configuration busy flag register.
Register Name

Total Reset Value

0x01C

IR_BUSY

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

0

0
ir_busy

Bit

Offset Address

0

0

0

0

0

0

0

Busy state flag.
[0]

RO

0: Indicates the idle state. In this state, software can configure data.

ir_busy

1: Indicates the busy state. In this state, software cannot configure
data.

IR_DATAH
IR_DATAH is the register for storing the 16 MSBs of the decoded data received by the IR.
The IR_DATAH register stores the 16 MSBs of the decoded data received by the IR, whereas
IR_DATAL stores the 32 LSBs of the decoded data received by the IR. The valid data bits
depend on those contained in a frame of a specific code. For details, see the valid data bits in
Table 11-16 to Table 11-18.
Principle of data storage: The data must be stored in IR_DATAH first and then IR_DATAL
from MSB to LSB. When IR_DATAL is full, the rest data is stored in IR_DATAH. The
unused MSBs are reserved. When software reads the data from the registers, it reads the
IR_DATAH first and then IR_DATAL.
Hardware receives all data bits without checking the definition of each data bit. Software is
responsible for processing the data bits.

Bit

Offset Address

Register Name

Total Reset Value

0x020

IR_DATAH

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

reserved

Reset 0

0

0

0

0

0

0

0

0

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

ir_datah
0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:16]

RO

reserved

Reserved.

[15:0]

RO

ir_datah

16 MSBs of the decoded data received by the IR.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-93

Hi3515
Data Sheet

11 Other Peripheral Interfaces

IR_DATAL
IR_DATAL is the register for storing the 32 LSBs of the decoded data received by the IR.

Bit

Offset Address

Register Name

Total Reset Value

0x024

IR_DATAL

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

ir_datal

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:0]

RO

ir_datal

32 LSBs of the decoded data received by the IR.

IR_INT_MASK
IR_INT_MASK is the IR interrupt mask register.

Before configuring this register, ensure that IR_EN[0] is 0b1. Otherwise, the configuration is
invalid and the register remains the original value. If all interrupts are masked, the IR wake-up
function is unavailable.
The definitions of interrupts involved in the register are as follows:
z

Receive data overflow interrupt
If the CPU does not take the current frame while the next frame is already received, the
next frame overwrites the current frame and a raw receive data overflow error interrupt
request is reported.

z

Receive data frame format error interrupt
If the received data frame is not complete or the data pulse width does not meet the
margin requirements, a raw receive frame format error interrupt request is reported.

z

Receive data frame interrupt
When a complete frame data is received, a raw receive data frame interrupt request is
reported.

z

Key release detection interrupt
For the NEC with simple repeat code and TC9012 code, if the start synchronous code is
not detected again within 160 ms after the previously detected start synchronous code, or
the detected valid data frame is not a simplified lead code, a raw key release detection
interrupt is reported. Neither the NEC with full repeat code nor the SONY code supports
the key release interrupt.

The hardware does not identify the interrupt priority. An interrupt can be generated only if any
masked interrupt source is valid.

11-94

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet
Offset Address

Register Name

Total Reset Value

0x028

IR_INT_MASK

0x0000_0000

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:4]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

2

1

0

intm_rcv

0

reserved

3

intm_framerr

4

0

0

0

0

3

2

1

0

intrs_rcv

5

intrs_framerr

6

intm_release

7

intm_overflow

Name

8

intrs_release

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

intrs_overflow

Bit

11 Other Peripheral Interfaces

Key release interrupt request enable.
[3]

RW

intm_release

0: The interrupt request is enabled.
1: The interrupt request is disabled.
Receive data overflow error interrupt request enable.

[2]

RW

intm_overflow

0: The interrupt request is enabled.
1: The interrupt request is disabled.
Receive frame format error interrupt request enable.

[1]

RW

intm_framerr

0: The interrupt request is enabled.
1: The interrupt request is disabled.
Receive data frame interrupt request enable.

[0]

RW

intm_rcv

0: The interrupt request is enabled.
1: The interrupt request is disabled.

IR_INT_STATUS
IR_INT_STATUS is the IR interrupt status register.
Register Name

Total Reset Value

0x02C

IR_INT_STATUS

0x0000_0000

Issue 02 (2010-04-20)

intms_rcv

reserved

intms_framerr

Name

intms_overflow

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
intms_release

Bit

Offset Address

reserved

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

11-95

Hi3515
Data Sheet

11 Other Peripheral Interfaces
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:20]

RO

reserved

Reserved.

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Masked key release interrupt status.
[19]

RO

intms_release

0: An interrupt is not generated.
1: An interrupt is generated.
Masked receive data overflow error interrupt status.

[18]

RO

intms_overflow

0: An interrupt is not generated.
1: An interrupt is generated.
Masked receive frame format error interrupt status.

[17]

RO

intms_framerr

0: An interrupt is not generated.
1: An interrupt is generated.
Masked receive data frame interrupt status.

[16]

RO

intms_rcv

0: An interrupt is not generated.
1: An interrupt is generated.

[15:4]

RO

reserved

Reserved.
Raw key release interrupt status.

[3]

RO

intrs_release

0: An interrupt is not generated.
1: An interrupt is generated.
Raw receive data overflow error interrupt status.

[2]

RO

intrs_overflow

0: An interrupt is not generated.
1: An interrupt is generated.
Raw receive frame format error interrupt status.

[1]

RO

intrs_framerr

0: An interrupt is not generated.
1: An interrupt is generated.
Raw receive data frame interrupt state.

[0]

RO

intrs_rcv

0: An interrupt is not generated.
1: An interrupt is generated.

IR_INT_CLR
IR_INT_CLR is the IR interrupt clear register.

11-96

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

0x030

IR_INT_CLR

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

8

7

6

5

4

0

0

0

0

0

reserved

Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:4]

RO

reserved

Reserved.

0

0

0

0

0

0

0

3

2

1

0

intc_rcv

Total Reset Value

intc_framerr

Register Name

intc_release

Offset Address

intc_overflow

Bit

11 Other Peripheral Interfaces

0

0

0

0

Key release interrupt request clear.
[3]

WO

intc_release

0: The interrupt request is not cleared.
1: The interrupt request is cleared.
Receive data overflow error interrupt request clear.

[2]

WO

intc_overflow

0: The interrupt request is not cleared.
1: The interrupt request is cleared.
Receive frame format error interrupt request clear.

[1]

WO

intc_framerr

0: The interrupt request is not cleared.
1: The interrupt request is cleared.
Receive data frame interrupt request clear.
0: The interrupt request is not cleared.

[0]

WO

intc_rcv

1: The interrupt request is cleared.
If the receive data frame interrupt request is generated and
software directly writes 1 to the bit without reading the data in
IR_DATAL, then the interrupt request cannot be cleared.

IR_START
IR_START is the IR start configuration register.
After the values of other registers are configured, the IR start configuration register starts
when any data is written to the address during the starting of the IR module.
Register Name

Total Reset Value

0x034

IR_START

0x0000_0000

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Issue 02 (2010-04-20)

reserved

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

8

7

6

5

4

3

2

1

0
ir_start

Bit

Offset Address

11-97

Hi3515
Data Sheet

11 Other Peripheral Interfaces
Reset 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Bits

Access

Name

Description

[31:1]

RO

reserved

Reserved.

[0]

WO

ir_start

IR start configuration register.

0

0

0

0

0

0

0

0

0

0

0

11.5 GPIO
11.5.1 Overview
The Hi3515 supports six sets of general purpose input/output (GPIO) pins. Each set of GPIO
pins provides eight programmable input/output pins. Each pin can be configured as input or
output. These pins generate the output signals used for specific applications or capture the
input signals used for specific applications. When configured as input, the GPIO can act as the
interrupt source. When configured as output, each GPIO can be independently set to 1 or 0.
Each GPIO is multiplexed with other pins. For details about pin multiplexing, see section 2.2
"Description of Software Multiplexing Pins." For details about the control information, see
section 2.4 "Summary of the IO Config (Pin Multiplexing Control) Registers."

11.5.2 Features
The GPIO module has the following features:
z

z

Each GPIO pin can be configured as input, output, or open drain (OD) output.
−

When the GPIO works as an input pin, it can be used as the interrupt source. That is,
each GPIO can generate the interrupt independently.

−

When the GPIO works as an output pin, each GPIO pin can be independently set to 1
or 0.

−

When the output of the GPIO works as an open drain output pin, the board must be
connected to a pulled-up resistor. Through the GPIO_DIR register, the board-level
wire-AND function is implemented.

The GPIO interrupts are controlled through seven registers such as GPIO_IS. Through
these registers, the interrupt source, interrupt edge (falling edge or rising edge), and
interrupt trigger modes (level-sensitive mode or edge-sensitive mode) can be selected.
For details about the corresponding interrupt registers of the GPIO, see section 3.4
"Interrupt System."
−

When multiple interrupts occur at the same time, these interrupts are combined as one
interrupt to be reported. For details about the GPIO interrupt mapping, see Table 3-16
"Interrupt Mapping."

−

The GPIO_IS, GPIO_IBE, and GPIO_IEV registers determine the features of the
interrupt source and interrupt trigger type.

GPIO_RIS and GPIO_MIS are used to read the raw interrupt status and masked interrupt
status respectively. The GPIO_IE controls the final report of the interrupt. In addition,
the independent GPIO_IC is provided for clearing the interrupt status.

11.5.3 Signal Description
Table 11-20 lists the GPIO interface signals. For details about the multiplexing configuration
information, see "Pin Multiplexing" in section 11.5.5 "Operating Mode."

11-98

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-20 GPIO interface signals
Signal

Direction

Description

Pin

GPIO0_0

I/O

GPIO bidirectional data signal, multiplexed
with the I2C data signal

SDA

GPIO0_1

I/O

GPIO bidirectional data signal, multiplexed
with the I2C clock signal

SCL

GPIO0_2

I/O

GPIO bidirectional data signal, multiplexed
with the I2S transmit channel select signal of
SIO0

SIO0XFS

GPIO0_3

I/O

GPIO bidirectional data signal, multiplexed
with the transmit bit stream clock signal of
SIO0

SIO0XCK

GPIO0_4

I/O

GPIO bidirectional data signal, multiplexed
with the master clock signal of SIO0

ACKOUT

GPIO0_5

I/O

GPIO bidirectional data signal, multiplexed
with CS signal 1 of the static memory interface
(SMI)

SMICS1N

GPIO0_6

I/O

GPIO bidirectional data signal, multiplexed
with CS signal 1 of the NAND flash

NFCS1N

GPIO0_7

I/O

GPIO bidirectional data signal, multiplexed
with the idle indicator signal of the NAND
flash

NFRB

GPIO1_0

I/O

GPIO bidirectional data signal, multiplexed
with the ready indication signal of the SMI

EBIRDYN

GPIO1_1

I/O

GPIO bidirectional data signal, multiplexed
with the ETH collision indicator signal

ECOL

GPIO1_2

I/O

GPIO bidirectional data signal, multiplexed
with the ETH carrier sense signal

ECOL

GPIO1_3

I/O

GPIO bidirectional data signal, multiplexed
with VI0 horizontal sync signal

VI0HS

GPIO1_4

I/O

GPIO bidirectional data signal, multiplexed
with VI0 vertical sync signal

VI0VS

GPIO1_5

I/O

GPIO bidirectional data signal, multiplexed
with VI2 horizontal sync signal

VI2HS

GPIO1_6

I/O

GPIO bidirectional data signal, multiplexed
with VI2 vertical sync signal

VI2VS

GPIO1_7

I/O

GPIO bidirectional data signal

VOCK

GPIO2_0

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT0 signal

VODAT0

GPIO2_1

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT1 signal

VODAT1

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-99

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11-100

Signal

Direction

Description

Pin

GPIO2_2

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT2 signal

VODAT2

GPIO2_3

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT3 signal

VODAT3

GPIO2_4

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT4 signal

VODAT4

GPIO2_5

I/O

GPIO bidirectional data signal, multiplexed
with VO0 SD image output data DAT5 signal

VODAT5

GPIO3_0

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT0 signal

VI1DAT0

GPIO3_1

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT1 signal

VI1DAT1

GPIO3_2

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT2 signal

VI1DAT2

GPIO3_3

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT3 signal

VI1DAT3

GPIO3_4

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT4 signal

VI1DAT4

GPIO3_5

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT5 signal

VI1DAT5

GPIO3_6

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT6 signal

VI1DAT6

GPIO3_7

I/O

GPIO bidirectional data signal, multiplexed
with VI1 DAT7 signal

VI1DAT7

GPIO4_0

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT0 signal

VI2DAT0

GPIO4_1

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT1 signal

VI2DAT1

GPIO4_2

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT2 signal

VI2DAT2

GPIO4_3

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT3 signal

VI2DAT3

GPIO4_4

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT4 signal

VI2DAT4

GPIO4_5

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT5 signal

VI2DAT5

GPIO4_6

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT6 signal

VI2DAT6

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Signal

Direction

Description

Pin

GPIO4_7

I/O

GPIO bidirectional data signal, multiplexed
with VI2 DAT7 signal

VI2DAT7

GPIO5_0

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT0 signal

VI3DAT0

GPIO5_1

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT1 signal

VI3DAT1

GPIO5_2

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT2 signal

VI3DAT2

GPIO5_3

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT3 signal

VI3DAT3

GPIO5_4

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT4 signal

VI3DAT4

GPIO5_5

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT5 signal

VI3DAT5

GPIO5_6

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT6 signal

VI3DAT6

GPIO5_7

I/O

GPIO bidirectional data signal, multiplexed
with VI3 DAT7 signal

VI3DAT7

11.5.4 Function Description
Each set of GPIO provides eight programmable input/output pins. Each pin can be configured
as input or output. These pins generate the output signals used for specific applications or
capture the input signals used for specific applications.
The GPIO can generate maskable interrupts based on the level or transition value. The general
purpose input output interrupt (GPIOINTR) signal gives an indication to the interrupt
controller, indicating that an interrupt occurs.

11.5.5 Operating Mode
Pin Multiplexing
Each GPIO is multiplexed with other pins. Before using a GPIO pin, you need to configure
the IO config register to enable the GPIO pin. For details, see Table 11-21.
Table 11-21 Configuration of pin multiplexing
Signal

Configuration

Multiplexing Description

GPIO0_0

reg37

Multiplexed with the I2C data signal SDA

GPIO0_1

reg38

Multiplexed with the I2C clock signal SCL

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-101

Hi3515
Data Sheet

11 Other Peripheral Interfaces

11-102

Signal

Configuration

Multiplexing Description

GPIO0_2

reg39

Multiplexed with the I2S transmit channel select
signal of SIO0

GPIO0_3

reg40

Multiplexed with the transmit bit stream clock
signal of SIO0

GPIO0_4

reg41

Multiplexed with the master clock signal of SIO0

GPIO0_5

reg42

Multiplexed with CS signal 1 of the SMI

GPIO0_6

reg43

Multiplexed with CS signal 1 of the NAND flash

GPIO0_7

reg44

Multiplexed with the idle indicator signal of the
NAND flash

GPIO1_0

reg45

Multiplexed with the input ready indicator signal
and the infrared data receive signal of the SMI

GPIO1_1

reg46

Multiplexed with the ETH collision indicator signal

GPIO1_2

reg47

Multiplexed with the ETH carrier sense signal

GPIO1_3

reg0

Multiplexed with the VI0 horizontal sync signal
and the UART2 data receive signal

GPIO1_4

reg1

Multiplexed with the VI0 vertical sync signal and
the UART2 data transmit signal

GPIO1_5

reg10

Multiplexed with the VI2 horizontal sync signal
and the UART2 data receive signal

GPIO1_6

reg11

Multiplexed with the VI2 vertical sync signal and
the UART2 data transmit signal

GPIO1_7

reg28

Multiplexed with the SD image output clock signal,
SDIO/MMC clock signal, and SPI clock signal

GPIO2_0

reg29

Multiplexed with the VO SD image output DAT0
signal and SDIO/MMC command signal

GPIO2_1

reg30

Multiplexed with the VO SD image output DAT1
signal, SDIO/MMC DAT0 signal, and SPI output
data signal

GPIO2_2

reg31

Multiplexed with the VO SD image output DAT2
signal, SDIO/MMC DAT1 signal, and SPI CS
signal 0

GPIO2_3

reg32

Multiplexed with the VO SD image output DAT3
signal, SDIO/MMC DAT2 signal, and SPI CS
signal 1

GPIO2_4

reg33

Multiplexed with the VO SD image output DAT4
signal and SDIO/MMC DAT3 signal

GPIO2_5

reg34

Multiplexed with the VO SD image output DAT5
signal and SDIO/MMC card detection signal

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Signal

Configuration

Multiplexing Description

GPIO3_0

reg2

Multiplexed with the VI1 DAT0 signal

GPIO3_1

reg3

Multiplexed with the VI1 DAT1 signal

GPIO3_2

reg4

Multiplexed with the VI1 DAT2 signal

GPIO3_3

reg5

Multiplexed with the VI1 DAT3 signal

GPIO3_4

reg6

Multiplexed with the VI1 DAT4 signal

GPIO3_5

reg7

Multiplexed with the VI1 DAT5 signal

GPIO3_6

reg8

Multiplexed with the VI1 DAT6 signal

GPIO3_7

reg9

Multiplexed with the VI1 DAT7 signal

GPIO4_0

reg12

Multiplexed with the VI2 DAT0 signal

GPIO4_1

reg13

Multiplexed with the VI2 DAT1 signal

GPIO4_2

reg14

Multiplexed with the VI2 DAT2 signal

GPIO4_3

reg15

Multiplexed with the VI2 DAT3 signal

GPIO4_4

reg16

Multiplexed with the VI2 DAT4 signal

GPIO4_5

reg17

Multiplexed with the VI2 DAT5 signal

GPIO4_6

reg18

Multiplexed with the VI2 DAT6 signal

GPIO4_7

reg19

Multiplexed with the VI2 DAT7 signal

GPIO5_0

reg20

Multiplexed with the VI3 DAT0 signal

GPIO5_1

reg21

Multiplexed with the VI3 DAT1 signal

GPIO5_2

reg22

Multiplexed with the VI3 DAT2 signal

GPIO5_3

reg23

Multiplexed with the VI3 DAT3 signal

GPIO5_4

reg24

Multiplexed with the VI3 DAT4 signal

GPIO5_5

reg25

Multiplexed with the VI3 DAT5 signal

GPIO5_6

reg26

Multiplexed with the VI3 DAT6 signal

GPIO5_7

reg27

Multiplexed with the VI3 DAT7 signal

Interface Reset
During power-on reset, all registers are cleared, and therefore the pins work as input pins by
default.
When the reset signal is valid, the status of the GPIO is as follows:
z

The interrupt become invalid after the corresponding bit of GPIO_IE is cleared.

z

All registers are cleared.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-103

Hi3515
Data Sheet

11 Other Peripheral Interfaces
z

All pins are configured as input.

z

All raw interrupt registers are cleared.

z

The type of the interrupt is configured as edge-sensitive.

General Purpose Input/Output
Each pin can be configured as an input or output pin. To configure a GPIO pin, do as follows:
Step 1 Configure the corresponding bit of the IO config register according to Table 11-21 to enable
the required GPIO pin.
Step 2 Configure the GPIO as input or output through the GPIO_DIR register.
z

GPIO as an input pin: The external signals are transmitted through the GPIO pin. In this
case, the values of the input signals can be viewed through the GPIO_DATA register.
Note that the input signals are also transmitted to the pins that are multiplexed with the
GPIO pin.

z

GPIO as an output pin: The values are written to the GPIO_DATA register and then
output through the GPIO. Note that if the GPIO interrupt function is enabled, an interrupt
occurs when the output signal meets the triggering condition.

----End

Interrupt Operation
To generate an interrupt and avoid a pseudo interrupt, do as follows:
Step 1 Select the edge-sensitive mode or level-sensitive mode through the GPIO_IS register.
Step 2 Select the falling- or rising-edge-sensitive mode or high- or low-level-sensitive mode through
the GPIO_IEV register.
Step 3 If the edge-sensitive mode is selected, you need to select single-edge-sensitive mode or
dual-edge-sensitive mode through the GPIO_IBE register.
Step 4 Ensure that the GPIO data lines are stable during the operations.
Step 5 Write 0xFF to the GPIO_IC register to clear the interrupt.
Step 6 Set the GPIO_IE to 1 enable the interrupt.
----End
The GPIO interrupts are controlled through seven registers. When one or multiple GPIO pins
generate interrupts, a combined interrupt is output to the interrupt controller. The differences
between the edge-sensitive mode and level-sensitive mode are as follows:
z

Edge-sensitive mode: Software must clear this interrupt so as to enable superior
interrupts.

z

Level-sensitive mode: The external interrupt source should keep this level until the
processor identifies this interrupt.

11.5.6 Register Summary
Table 11-22 lists the base addresses of six sets of GPIO pins.

11-104

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Table 11-22 Base addresses of the six sets of GPIO pins
Register

Base Address

GPIO0

0x2015_0000

GPIO1

0x2016_0000

GPIO2

0x2017_0000

GPIO3

0x2018_0000

GPIO4

0x2019_0000

GPIO5

0x201A_0000

Table 11-23 lists the offset addresses and descriptions of a single set of internal GPIO
registers. Each GPIO from GPIO0 to GPIO5 also has the same set of internal GPIO registers.
The address of the GPIOn register is GPIOn base address + offset address of the register.
Table 11-23 Summary of the GPIO registers
Offset
Address

Register

Description

Page

0x000–0x
3FC

GPIO_DATA

GPIO data register

11-105

0x400

GPIO_DIR

GPIO direction control register

11-107

0x404

GPIO_IS

GPIO interrupt trigger mode register

11-107

0x408

GPIO_IBE

GPIO interrupt edge control register

11-108

0x40C

GPIO_IEV

GPIO interrupt event register

11-108

0x410

GPIO_IE

GPIO interrupt mask register

11-109

0x414

GPIO_RIS

GPIO raw interrupt status register

11-109

0x418

GPIO_MIS

GPIO masked interrupt status register

11-110

0x41C

GPIO_IC

GPIO interrupt clear register

11-110

0x420

GPIO_RESERVED

GPIO reservation register

11-111

11.5.7 Register Description
GPIO_DATA
GPIO_DATA is the GPIO data register. It is used to buffer the input or output data.
When the corresponding bit of the GPIO_DIR is configured as output, the values written to
the GPIO_DATA register are sent to the corresponding pin (note that the configuration of pin
multiplexing must be correct). If the bit is configured as input, the system reads the value of
the corresponding input pin.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-105

Hi3515
Data Sheet

11 Other Peripheral Interfaces

If the corresponding bit of the GPIO_DIR is configured as input, the pin value is returned
after a valid read; if the corresponding bit is configured as output, the written value is returned
after a valid read.
Through PADDR[9:2], the GPIO_DATA register masks the read and write operations on the
register. The register corresponds to 256 address spaces. PADDR[9:2] correspond to
GPIO_DATA[7:0] respectively. When the corresponding PADDR bit is high, the system reads
or writes the corresponding bit; when the corresponding bit is low, the operation cannot be
performed. For example:

11-106

z

If the address is 0x3FC (0b11_1111_1100), operations on all the eight bits
GPIO_DATA[7:0] are valid.

z

If the address is 0x200 (0b10_0000_0000), then only the operation on GPIO_DATA[7] is
valid.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Bit

Offset Address

Register Name

Total Reset Value

0x000–0x3FC

GPIO_DATA

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

gpio_data

Reset

0

Bits

[7:0]

0

0

0

Access Name

Description

RW

Input data of the GPIO when the GPIO is configured
as input: output data of the GPIO when the GPIO is
configured as output. Each bit can be controlled
independently. The register is used together with the
GPIO_DIR.

gpio_data

GPIO_DIR
GPIO_DIR is the GPIO direction control register. It is used to configure the direction of the
GPIO pin.

Bit

Offset Address

Register Name

Total Reset Value

0x400

GPIO_DIR

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

gpio_dir

Reset

0

Bits

[7:0]

0

0

0

Access Name

Description

RW

GPIO direction control register. Bit[7:0] correspond to
GPIO_DATA[7:0] respectively. Each bit can be
controlled independently.

gpio_dir

0: The direction of the GPIO pin is input.
1: The direction of the GPIO pin is output.

GPIO_IS
GPIO_IS is the GPIO interrupt trigger mode register. It is used to configure the interrupt
trigger mode.

Bit
Name

Issue 02 (2010-04-20)

Offset Address

Register Name

Total Reset Value

0x404

GPIO_IS

0x00

7

6

5

4

3

2

1

0

gpio_is

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-107

Hi3515
Data Sheet

11 Other Peripheral Interfaces
Reset

0

Bits

[7:0]

0

0

0

0

0

0

0

Access Name

Description

RW

GPIO interrupt trigger mode register. Bit[7:0]
correspond to GPIO_DATA[7:0] respectively. Each
bit is controlled independently.

gpio_is

0: The interrupt is triggered in edge-sensitive mode.
1: The interrupt is triggered in level-sensitive mode.

GPIO_IBE
GPIO_IBE is the GPIO interrupt edge control register. It is used to control the edge where the
interrupt occurs.

Bit

Offset Address

Register Name

Total Reset Value

0x408

GPIO_IBE

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

gpio_ibe

Reset

0

Bits

0

0

Access Name

0

Description
GPIO interrupt edge control register. Bit[7:0]
correspond to GPIO_DATA[7:0] respectively. Each
bit is controlled independently.

[7:0]

RW

gpio_ibe

0: The interrupt is in single-edge-sensitive mode. The
GPIO_IEV controls whether the interrupt is
rising-edge-sensitive or falling-edge-sensitive.
1: The interrupt is in dual-edge-sensitive mode.

GPIO_IEV
GPIO_IEV is the GPIO interrupt event register. It is used to configure the interrupt event.

Bit
Name

11-108

Offset Address

Register Name

Total Reset Value

0x40C

GPIO_IEV

0x00

7

6

5

4

3

2

1

0

gpio_iev

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Reset

0

Bits

0

0

Access Name

0

0

0

0

0

Description
GPIO interrupt event register. Bit[7:0] correspond to
GPIO_DATA[7:0] respectively. Each bit is controlled
independently.

[7:0]

RW

gpio_iev

0: The interrupt is triggered at the falling edge or low
level.
1: The interrupt is triggered at the rising edge or high
level.

GPIO_IE
GPIO_IE is the GPIO interrupt mask register. It is used to mask the GPIO interrupt.

Bit

Offset Address

Register Name

Total Reset Value

0x410

GPIO_IE

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

gpio_ie

Reset

0

Bits

[7:0]

0

0

0

Access Name

Description

RW

GPIO interrupt mask register. Bit[7:0] respectively
correspond to GPIO_DATA[7:0]. Each bit is
controlled independently.

gpio_ie

0: The interrupt is masked.
1: The interrupt is not masked.

GPIO_RIS
GPIO_RIS is the GPIO raw interrupt status register. It is used to query the raw interrupt
status.

Bit
Name

Issue 02 (2010-04-20)

7

Offset Address

Register Name

Total Reset Value

0x414

GPIO_RIS

0x00

6

5

4

3

2

1

0

gpio_ris

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-109

Hi3515
Data Sheet

11 Other Peripheral Interfaces
Reset

0

Bits

[7:0]

0

0

0

0

0

0

0

Access Name

Description

RO

GPIO raw interrupt status register. Bit[7:0]
respectively correspond to GPIO_DATA[7:0],
indicating the unmasked interrupt status. The status is
not under the mask control of the GPIO_IE register.

gpio_ris

1: An interrupt occurs.
1: No interrupt occurs.

GPIO_MIS
GPIO_MIS is the GPIO masked interrupt status register. It is used to query the masked
interrupt status.

Bit

Offset Address

Register Name

Total Reset Value

0x418

GPIO_MIS

0x00

7

6

5

4

Name

3

2

1

0

0

0

0

0

gpio_mis

Reset

0

Bits

[7:0]

0

0

0

Access Name

Description

RO

GPIO masked interrupt status register. Bit[7:0]
respectively correspond to GPIO_DATA[7:0],
indicating the masked interrupt status. The status is
under the mask control of the GPIO_IE register.

gpio_mis

0: The interrupt is invalid.
1: The interrupt is valid.

GPIO_IC
GPIO_IC is the GPIO interrupt clear register. It is used to clear the interrupts generated by
the GPIO and clear the GPIO_RIS and GPIO_MIS registers.

Bit
Name

11-110

Offset Address

Register Name

Total Reset Value

0x41C

GPIO_IC

0x00

7

6

5

4

3

2

1

0

gpio_ic

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

11 Other Peripheral Interfaces

Reset

0

Bits

[7:0]

0

0

0

0

0

0

0

Access Name

Description

WC

GPIO interrupt clear register. Bit[7:0] respectively
correspond to GPIO_DATA[7:0]. Each bit is
controlled independently.

gpio_ic

0: The interrupt is not cleared.
1: The interrupt is cleared.

GPIO_RESERVED
GPIO_RESERVED is the GPIO reservation register. It is configured as required.

Bit

Offset Address

Register Name

Total Reset Value

0x420

GPIO_RESERVED

0x00

7

6

5

4

Name

2

1

0

0

0

0

0

reserved

Reset

Issue 02 (2010-04-20)

3

0

0

0

0

Bits

Access Name

Description

[7:0]

RW

These bits must be set to 0x00.

reserved

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

11-111

Hi3515
Data Sheet

Contents

Contents
12 Test Interface...........................................................................................................................12-1
12.1 Overview ...................................................................................................................................................12-1
12.2 Operating Modes.......................................................................................................................................12-1
12.3 JTAG Debugging.......................................................................................................................................12-1
12.3.1 JTAG Interface Signals ....................................................................................................................12-1
12.3.2 Debugging Mode .............................................................................................................................12-2

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

Figures

Figures
Figure 12-1 Diagram of debugging the ARM...................................................................................................12-2

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

iii

Hi3515
Data Sheet

Tables

Tables
Table 12-1 Operating modes of the Hi3515......................................................................................................12-1
Table 12-2 JTAG interface signals of the Hi3515.............................................................................................12-2
Table 12-3 Connection setting of ARM926 and SATA interface ......................................................................12-3

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

v

Hi3515
Data Sheet

12 Test Interface

12

Test Interface

12.1 Overview
The Hi3515 provides the joint test action group (JTAG) interfaces that comply with the
Institute of Electrical and Electronics Engineers (IEEE) 1149.1 standard. The JTAG interfaces
are used for ARM software debugging and board-level test.

12.2 Operating Modes
The Hi3515 provides two operating modes that can be switched from one to anther through
the configuration of the TESTMODE pin. Table 12-1 describes the operating modes of the
Hi3515.
Table 12-1 Operating modes of the Hi3515
TESTMODE

Description

0

The Hi3515 works properly. In this mode, the JTAG interface can be
used for ARM software debugging.

1

The Hi3515 is in test mode. In this mode, the DFT test and board-level
test can be performed.

DFT = Test for design

12.3 JTAG Debugging
12.3.1 JTAG Interface Signals
The JTAG interface signals of the Hi3515 are the same as standard JTAG interface signals.
Table 12-2 describes the JTAG interface signals of the Hi3515.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

12-1

Hi3515
Data Sheet

12 Test Interface

Table 12-2 JTAG interface signals of the Hi3515
Signal Name

Description

TCK

JTAG clock input, internal pull-down. It is recommended to connect a
pull-down resistor.

TDI

JTAG data input, internal pull-up. It is recommended to connect a
pull-up resistor to the board.

TMS

JTAG mode select input, internal pull-up. It is recommended to
connect a pull-up resistor to the board.

TRSTN

JTAG reset input, internal pull-down. When the Hi3515 works
properly, it is recommended to connect a pull-down resistor to the
board. When the debugger (such as the Realview-ICE) is connected
through the JTAG interface, it is recommended to connect a pull-up
resistor to the board.

TDO

JTAG data output. It is recommended to connect a pull-up resistor to
the board.

12.3.2 Debugging Mode
Debugging the ARM Software
After an ICE device (such as RealView-ICE) that is compatible with the JTAG interface is
connected to the host, the ARM can be debugged through JTAG interfaces by specific
debugging software. See Figure 12-1.
Figure 12-1 Diagram of debugging the ARM

RealView-ICE

Host

Embedded
ICE
ARM926EJ-S
Hi3515

12-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

12 Test Interface

When the JTAG interface unit (such as the ARM RealView-ICE) is used for an initial
configuration, the TESTMOD pin must be set to 0.
By connecting a pull-up or pull-down resistor to EBIADR22, the system can be connected to
ARM926 or the serial advanced technology attachment (SATA) interface separately. For
details, see Table 12-3.

z

If the JTAG interface of the ARM is not used, it is recommended to connect a pull-down
resistor to EBIADR22.

z

The pull-up or pull-down change of EBIADR22 takes effect only after the pin is reset.

Table 12-3 Connection setting of ARM926 and SATA interface
EBIADR22

Description

Pull-down

Connect to ARM926EJ-S only

Pull-up

Connect to the SATA interface only

Board-level Test Mode
In addition to software debugging through the JTAG interface, the Hi3515 also supports the
board-level interconnection tests, such as the test on the connection between the Hi3515 and
other chips. The board-level interconnection test is implemented through a standard JTAG
controller. During the board-level interconnection test, TESTMODE must be set to 1.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

12-3

Hi3515
Data Sheet

Contents

Contents
13 Video Processing Module.....................................................................................................13-1
13.1 Video Codec ..............................................................................................................................................13-1
13.1.1 Overview..........................................................................................................................................13-1
13.1.2 Features............................................................................................................................................13-1
13.2 TDE ...........................................................................................................................................................13-2
13.2.1 Overview..........................................................................................................................................13-2
13.2.2 Features............................................................................................................................................13-2

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

i

Hi3515
Data Sheet

13 Video Processing Module

13

Video Processing Module

13.1 Video Codec
13.1.1 Overview
The video codec is a video encoding/decoding processing unit that supports the H.264 and
JPEG/MJPEG protocols. It consists of a video codec firmware running on an ARM processor
and an embedded video encoding/decoding hardware engine. The video codec can encode and
decode the videos separately or simultaneously.

13.1.2 Features
The video codec has the following features:
z

z

z

z

Supports H.264 Main Profile@Level 4.0 (or lower).
−

In separate video encoding and decoding, up to 4-channel D1 real-time
encoding/decoding (PAL: D1@100fps; NTSC: D1@120fps) or 1-channel 720p30
real-time encoding/decoding is supported.

−

In simultaneous video encoding and decoding, up to 2-channle dual stream (D1+CIF)
encoding and 2-channel D1 decoding are supported.

Supports JPEG/MJPEG Baseline encoding/decoding.
−

In separate JPEG encoding or decoding, the frame rate reaches 20 fps when the
resolution is 3 megapixels.

−

Simultaneous JPEG encoding and decoding are supported.

Simultaneously encodes and decodes main and minor streams.
−

The main and minor streams support any combination of the four protocols including
H.264/H.264, H.264/JPEG, JPEG/H.264, and JPEG/JPEG.

−

The main and minor streams originate from the same source image. The main stream
is obtained directly by encoding the source image. The minor stream is obtained by
encoding the downscaled source image.

−

The horizontal and vertical scaling ratios of the encoded images of the main and
minor streams can be set to 1:1, 2:1, or 4:1.

−

The encoded image of the minor stream supports the CIF format.

De-interlaces the interlaced image before encoding.
−

z

Issue 02 (2010-04-20)

The de-interlace function can be enabled or disabled.

Supports time-domain filtering before encoding.

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

13-1

Hi3515
Data Sheet

13 Video Processing Module
−
z

z

The time-domain filtering function can be enabled or disabled.

Supports on screen display (OSD) overlapping before encoding.
−

The OSD overlapping of up to four areas before encoding is supported.

−

Any OSD overlapping within the source image is supported.

−

Up to 129 levels of alpha blending is supported.

−

The OSD overlapping function can be enabled or disabled.

Supports motion detection.
−

The sum of absolute difference (SAD) can be output.

−

The motion vector (MV) can be output.

z

H.264 supports the control of the bit rates including constant bit rate (CBR), variable bit
rate (VBR), available bit rate(ABR). The bit rate is controlled within the range of 16
kbit/s to 20 Mbit/s.

z

Supports configurable frame rate for encoding.

z

−

The encoding with low frame rate is supported.

−

Supports the encoding with decimal frame rate.

Supports the digital watermark technology.

13.2 TDE
13.2.1 Overview
The two-dimensional engine (TDE) draws a graphic through hardware. This greatly reduces
the CPU usage and makes full use of the memory bandwidth. The TDE reads and writes the
information about bitmap data, scaling filtering coefficients, parameters of linked list nodes,
and the linked list through the AXI master bus interface. Through the advanced peripheral bus
(APB) interface, the TDE also reads the register configuration information written by the
CPU.
The graphic data interface includes two channels: source 1 and source 2. The functions of
source 1 and source 2 are as follows:
z

Source 1 implements direct copy and direct filling during the single source operation.

z

Source 2 implements various complicated operations during the single source operation,
such as image scaling and de-flicker output.

Source 1 works with source 2 to implement color blending, raster operations (ROPs), and
process the images in microblock format.

13.2.2 Features
The TDE module has the following features:
z

13-2

Source bitmap 1 supports the format of RGB444, RGB555, RGB565, RGB888,
ARGB4444, ARGB1555, ARGB8565, ARGB8888, CLUT1, CLUT2, CLUT4, CLUT8,
ACLUT44, ACLUT88, A1, A8, YCbCr888, AYCbCr8888, YCbCr422, byte, half-word,
YCbCr400MB, YCbCr422MBH, YCbCr422MBV, YCbCr420MB, or YCbCr444MB.
Source bitmap 2 supports the format of RGB444, RGB555, RGB565, RGB888,
ARGB4444, ARGB1555, ARGB8565, ARGB8888, CLUT1, CLUT2, CLUT4, CLUT8,

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

13 Video Processing Module

ACLUT44, ACLUT88, A1, A8, YCbCr888, AYCbCr8888, YCbCr422, YCbCr400MB,
YCbCr422MBH, YCbCr422MBV, YCbCr420MB, or YCbCr444MB.
z

The output bitmap supports the format of RGB444, RGB555, RGB565, RGB888,
ARGB4444, ARGB1555, ARGB8565, ARGB8888, CLUT1, CLUT2, CLUT4, CLUT8,
ACLUT44, ACLUT88, A1, A8, YCbCr888, AYCbCr8888, YCbCr422, byte, half-word,
YCbCr400MB, YCbCr422MBH, YCbCr422MBV, YCbCr420MB, or YCbCr444MB.

z

Supports little-endian system only.

z

Supports the configurable formats of source bitmap 1, source bitmap 2, and output
bitmaps.

z

Supports gamma correction and adjustable contrast and luminance.

z

Supports color look-up table (CLUT).

z

Supports the conversion between RGB and YCbCr.

z

Supports direct copy.

z

Supports direct filling.

z

Supports the 2D-resize operation.

z

Supports the deflicker operation.

z

Supports the clip operation.

z

Supports alpha blending.

z

Supports the ROP.

z

Supports the color key operation.

z

Supports programmable scanning mode.

z

Supports clip mask.

z

Supports the software interface in synchronous/asynchronous linked list mode.

z

Provides the status interrupt.

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

13-3

Hi3515
Data Sheet

A Acronyms and Abbreviations

Contents
A Acronyms and Abbreviations............................................................................................... A-1

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

A-1

Hi3515
Data Sheet

A Acronyms and Abbreviations

A

Acronyms and Abbreviations

A
ACD

auto command done

AES

advanced encryption standard

AHB

advanced high-performance bus

AMBA

advanced microcontroller bus architecture

ARM

ARM

B
BVACT

bottom vertical active area

BVBB

bottom vertical back blank

BVFB

bottom vertical front blank

C
CBC

cipher block chaining

CD

command done

CFB

cipher feedback

CL

CAS latency

CPU

central processing unit

CRC

cyclic redundancy check

CRG

clock reset generation

CTR

counter

D
DCRC

Issue 02 (2010-04-20)

data CRC error

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

A-1

Hi3515
Data Sheet

A Acronyms and Abbreviations

DDR

double data-rate

DES

data encryption standard

DFT

design for test

DLL

delay locked loop

DMA

direct memory access

DMAC

direct memory access controller

DQS

data strobe

DRTO

data read timeout

DTO

data transfer over

DVR

digital video recorder

E
EBE

end-bit error

EBI

external bus interface

ECB

electronic codebook

EOF

end of frame

EOP

end of packet

ETH

Ethernet MAC

F
FIFO

first in first out

FIQ

fast interrupt request

FRUN

FIFO underrun/overrun error

G
GPIO

general purpose input/output

H
HACT

horizontal active area

HCCA

host controller communication area

HFB

horizontal front blank

HLE

hardware locked error

HPW

horizontal pulse width

A-2

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

A Acronyms and Abbreviations

HTO

data starvation-by-host timeout

HBB

horizontal back blank

I
I2C

inter-integrated circuit

IEEE

institute of electrical and electronics engineers

I2S

inter-IC sound

IR

infrared remoter

IRQ

interrupt request

ISR

interrupt service routine

ITCM

instruction TCM

IV

initialization vector

J
JTAG

joint test action group

L
LSB

least significant bit

M
MAC

media access control

MCU

micro controller unit

MDIO

management data input/output

MII

media independent interface

MMC

multi-media card

MSB

most significant bit

N
NTSC

national television systems committee

O
OFB

output feedback

OHCI

open host controller interface

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

A-3

Hi3515
Data Sheet

A Acronyms and Abbreviations

OSD

on screen display

OTG

on-the-go

P
PAL

phase alternating line

PCB

printed circuit board

PCI

peripheral component interconnect

PCM

pulse code modulation

PID

packet ID

PSRAM

pseudo static random access memory

Q
QXGA

quantum extended graphics array

R
RAM

random-access memory

RCRC

response CRC error

RE

response error

ROM

read only memory

ROP

raster operation

RTO

response timeout

RXDR

receive FIFO data request

S
SAD

sum of absolute difference

SBE

start-bit error

SCL

serial clock

SCR

system clock reference

SD

secure digital

SDA

serial data

SDIO

secure digital input/output

SDRAM

synchronous dynamic random access memory

SFD

start of frame delimiter

A-4

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

Issue 02 (2010-04-20)

Hi3515
Data Sheet

A Acronyms and Abbreviations

SI

specific information

SIO

sonic input/output

SMI

static memory interface

SOF

start of frame

SPI

serial peripheral interface

SRAM

static random access memory

SSP

synchronous serial port

T
TCM

tightly-coupled memory

TDE

two dimension engine

TVACT

top vertical active area

TVBB

top vertical back blank

TVFB

top vertical front blank

TXDR

transmit FIFO data request

U
UART

universal asynchronous receiver transmitter

USB

universal serial bus

V
VACT

vertical active area

VBB

vertical back blank

VBI

vertical blanking interval

VEDU

video encoding decoding unit

VFB

vertical front blank

VIU

video input unit

VOU

video output unit

VPW

vertical pulse width

Issue 02 (2010-04-20)

HiSilicon Proprietary and Confidential
Copyright © HiSilicon Technologies CO., LIMITED

A-5



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Page Mode                       : UseOutlines
XMP Toolkit                     : 3.1-701
Job Options                     : Standard
Revision                        : 2
Producer                        : Acrobat Distiller 7.0 (Windows)
PDF Links                       : Version: v0.04
Company                         : Huawei Technologies Co., Ltd.
Keywords                        : 
Create Date                     : 2010:07:13 14:14:44+08:00
Creator Tool                    : Microsoft Office Word
Modify Date                     : 2010:07:13 16:59:44+08:00
Metadata Date                   : 2010:07:13 16:59:44+08:00
Format                          : application/pdf
Creator                         : Huawei Technologies Co., Ltd.
Description                     : Technical Document
Title                           : 00-1 Title Page
Comments                        : 
Manager                         : 
Category                        : 
Document ID                     : uuid:4722a1aa-e9f8-45de-9061-bdae367ff39a
Instance ID                     : uuid:5a918397-dce2-4f6a-8806-b2caedd19f66
Has XFA                         : No
Page Count                      : 919
Page Layout                     : OneColumn
Subject                         : Technical Document
Author                          : Huawei Technologies Co., Ltd.
EXIF Metadata provided by EXIF.tools

Navigation menu