Difference between revisions of "RK3399"

From Rockchip open source Document
Jump to: navigation, search
 
(106 intermediate revisions by 6 users not shown)
Line 1: Line 1:
  
 +
Rockchip RK3399 SoC integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with ARM Mali-T864 GPU.
  
 
+
{| border="0" cellpadding="1" cellspacing="1" class="infobox" style="width: 300px;"
 
+
|-
 
+
| [[File:RK3399 Soc.png|RTENOTITLE]]
 +
|}
  
 
= Overview =
 
= Overview =
Line 9: Line 11:
 
RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.<br/> Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.<br/> Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.<br/> RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.
 
RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.<br/> Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.<br/> Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.<br/> RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.
  
 +
&nbsp;
  
 
= SoC Features =
 
= SoC Features =
  
 +
{| border="0" cellpadding="1" cellspacing="1" style="width: 972px;"
 +
|-
 +
| style="width: 530px;" |
 
*CPU:  
 
*CPU:  
 
**Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU  
 
**Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU  
**Frequency is over 1.8GHz (Big cluster)   
+
**Frequency is over 1.8GHz (Big cluster)  
 +
**L1 cache
 +
***48KB Icache and 32KB Dcache for each A72
 +
***32KB Icache and 32KB Dcache for each A53 
 +
**L2 cache
 +
***1024KB for big cluster
 +
***512KB for little cluster   
 +
*Internal SRAM
 +
**192KB total
 +
**4KB used by bootrom when bootup    
 
*GPU:  
 
*GPU:  
 
**&nbsp;Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11  
 
**&nbsp;Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11  
Line 34: Line 49:
 
**Embedded low power MCU for other application  
 
**Embedded low power MCU for other application  
 
**8 channels I2S supports 8 channels RX or 8 channels TX   
 
**8 channels I2S supports 8 channels RX or 8 channels TX   
 +
 +
| style="width: 429px;" | [[File:RK3399 Block Diagram.png|RTENOTITLE]]
 +
|}
  
 
&nbsp;
 
&nbsp;
  
= History =
 
 
&nbsp;
 
  
 
= Documentation =
 
= Documentation =
  
&nbsp;
+
#[http://opensource.rock-chips.com/images/f/f9/RK3399_Linux_Debain_V1.1_Development_Guide170620.pdf RK3399_Linux_Debain_V1.1_Development_Guide170620.pdf]
 
+
#[http://opensource.rock-chips.com/images/5/5d/RK3399_Linux_Debian_v1.1开发说明170620.pdf RK3399 Linux Debian v1.1开发说明170620.pdf]
 +
#[http://opensource.rock-chips.com/images/9/92/RK3399_Linux_Buildroot_V1.2_Development_Guide170619.pdf RK3399_Linux_Buildroot_V1.2_Development_Guide170619.pdf]
 +
#[http://opensource.rock-chips.com/images/0/05/RK3399_Linux_Buildroot_V1.2开发说明170619.pdf RK3399_Linux_Buildroot_V1.2开发说明170619.pdf]
 +
#[http://opensource.rock-chips.com/images/2/20/RK3399_Multimedia_Codec_Benchmark_v1.0.pdf RK3399_Multimedia_Codec_Benchmark_v1.0.pdf]
  
 +
= Software =
  
 +
See [[Linux_user_guide|Linux User Guide]]&nbsp;setup LInux OS generally;
  
= Software =
+
See&nbsp;[[U-Boot|U-Boot]]&nbsp;guide to develop U-Boot;
  
 +
See&nbsp;[[Rockchip_Kernel|Rockchip kernel]]&nbsp;to develop kernel;
  
== Borad configuration ==
+
See [[Buildroot|buildroot and]] [[Debian|debian&nbsp;to]] develop and rootfs.
 
 
{| border="1" cellpadding="1" cellspacing="1" style="line-height: 1.6; width: 768px;"
 
|-
 
| style="width: 119px; text-align: center;" | '''board'''
 
| style="width: 172px; text-align: center;" | '''kernel'''
 
| style="width: 124px; text-align: center;" | '''uboot'''
 
| style="width: 310px; text-align: center;" | '''dts'''
 
|-
 
| style="width: 119px; text-align: center;" | rk3399-excavator
 
| style="width: 172px; text-align: center;" | rockchip_linux_defconfig
 
| style="width: 124px; text-align: center;" | rk3399_linux_defconfig
 
| style="width: 310px; text-align: center;" | rk3399-sapphire-excavator-linux.dts
 
|}
 
  
 
&nbsp;
 
&nbsp;
 
 
  
 
== Chip configuration ==
 
== Chip configuration ==
  
{| border="1" cellpadding="1" cellspacing="1" style="width: 859px;"
+
{| border="1" cellpadding="1" cellspacing="1" class="table_style" style="width: 859px;"
 
|-
 
|-
| style="width: 68px; text-align: center;" | '''chip'''
+
! style="width: 68px; text-align: center;" | '''chip'''
| style="width: 181px; text-align: center;" | '''Kernel eMMC index'''
+
! style="width: 181px; text-align: center;" | '''Kernel eMMC index'''
| style="width: 142px; text-align: center;" | '''Kernel SD index'''
+
! style="width: 142px; text-align: center;" | '''Kernel SD index'''
| style="width: 158px; text-align: center;" | '''Uboot eMMC index'''
+
! style="width: 158px; text-align: center;" | '''Uboot eMMC index'''
| style="width: 146px; text-align: center;" | '''Uboot SD index'''
+
! style="width: 146px; text-align: center;" | '''Uboot SD index'''
| style="width: 132px; text-align: center;" | '''Baud speed'''
+
! style="width: 132px; text-align: center;" | '''Baud speed'''
 
|-
 
|-
 
| style="width: 68px; text-align: center;" | RK3399
 
| style="width: 68px; text-align: center;" | RK3399
Line 88: Line 94:
 
| style="width: 132px; text-align: center;" | 1500000
 
| style="width: 132px; text-align: center;" | 1500000
 
|}
 
|}
 
== How to get the sources ==
 
 
The rockchip linux SDK source tree is located in multi Git repository hosted by Github. The SDK uses repo to sync down source code.&nbsp;Beside the generic community Linux support, we have chip optimized Linux SDK and it's also opensource and can get source from github.
 
 
RK3399 optimized Debian & Buildroot
 
<pre>repo init -u https://github.com/rockchip-linux/manifests https://github.com/rockchip-linux/manifests -m rk3399.xml
 
repo sync
 
</pre>
 
 
== How to build the sources ==
 
 
=== Build Environment ===
 
 
You need a 64-bit&nbsp;Ubuntu. Note: old versions&nbsp;Ubuntu maybe have compatibility issues.<br/> Use below commands to install Ubuntu packages:<br/> $ sudo apt-get install git gnupg flex bison gperf build-essential \<br/> zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \<br/> libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \<br/> libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \<br/> python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop<br/> $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn<br/> u/libGL.so
 
 
Install&nbsp;ARM cross-compile tool chain and compile kernel relative&nbsp;software package:&nbsp;
 
 
$ sudo apt-get install gcc-arm-linux-gnueabihf&nbsp;gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev libssl1.0.0 libssl-dev
 
 
=== Installing the build tools and download source ===
 
 
Please follow&nbsp;[http://rockchip.wikidot.com/linux-user-guide linux user guide]&nbsp;to install the build tools and download source.
 
  
 
&nbsp;
 
&nbsp;
  
=== Building kernel ===
 
  
For ARM V8 (RK3399 optimized SDK)
+
= [http://opensource.rock-chips.com/wiki_Devices#RK3399_Boards RK3399 Devices List] =
<pre>make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig
 
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rk3399-sapphire-excavator-linux.img -j4</pre>
 
 
 
=== Building uboot ===
 
 
 
For RK3399 optimized SDK (rkproduct uboot)
 
<pre>CROSS_COMPILE=aarch64-linux-gnu- make rk3399_linux_defconfig all</pre>
 
 
 
 
 
=== Building rootfs ===
 
 
 
 
 
==== Debian ====
 
 
 
you could refer to [[File:RK3399 Linux Debian System Development Guide.pdf|RK3399 Linux Debian System Development Guide]]&nbsp;from Rockchip to build rootfs yourselves.
 
 
 
==== Buildroot ====
 
 
 
you could refer to [[Media:RK3399_Linux_Debian_System_Development_Guide|RK3399 Linux Buildroot System Development Guide]]&nbsp;from Rockchip to build rootfs yourselves.
 
  
 
&nbsp;
 
&nbsp;
  
 +
= References =
  
 +
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]
  
= Devices =
+
[http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html]
 
 
If you need the rk3399-excavator&nbsp;board, please communicate through&nbsp;the following&nbsp;contact information.
 
<pre>Telephone: 4007700590    Email: service@rock-chips.com</pre>
 
 
 
= See also =
 
 
 
[[RK3288|RK3288]]
 
 
 
[[RK3328]]
 
 
 
= Owners of the SoC on IRC =
 
 
 
= Commuity Support =
 
 
 
= References =
 
 
 
= Exteneral Links =
 
  
&nbsp;
+
[https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php]

Latest revision as of 01:43, 29 August 2019

Rockchip RK3399 SoC integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with ARM Mali-T864 GPU.

RTENOTITLE

Overview

RK3399 is a low power, high performance processor for computing, personal mobile internet devices and other smart device applications. Based on Big.Little architecture, it integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor.
Many embedded powerful hardware engines provide optimized performance for high-end application. RK3399 supports multi-format video decoders including H.264/H.265/VP9 up to4Kx2K@60fps, especially, H.264/H.265 decoders support 10bits coding, and also supports H.264/MVC/VP8 encoders by 1080p@30fps, high-quality JPEG encoder/decoder, and special image preprocessor and postprocessor.
Embedded 3D GPU makes RK3399 completely compatible with OpenGL ES1.1/2.0/3.0/3.1, OpenCL and DirectX 11.1. Special 2D hardware engine with MMU will maximize display performance and provide very smooth operation.
RK3399 has high-performance dual channel external memory interface (DDR3/DDR3L/LPDDR3/LPDDR4) capable of sustaining demanding memory bandwidths, also provides a complete set of peripheral interface to support very flexible applications.

 

SoC Features

  • CPU:
    • Big.Little architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
    • Frequency is over 1.8GHz (Big cluster)
    • L1 cache
      • 48KB Icache and 32KB Dcache for each A72
      • 32KB Icache and 32KB Dcache for each A53
    • L2 cache
      • 1024KB for big cluster
      • 512KB for little cluster
  • Internal SRAM
    • 192KB total
    • 4KB used by bootrom when bootup
  • GPU:
    •  Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11
    • Supports AFBC (ARM Frame Buffer Compression)
  • Display:
    • Dual VOP: one supports 4096x2160 with AFBC supported;The other supports 2560x1600
    • Dual channel MIPI-DSI (4 lanes per channel)
    • eDP 1.3 (4 lanes with 10.8Gbps) to support display, with PSR
    • HDMI 2.0 for 4K 60Hz with HDCP 1.4/2.2
    • DisplayPort 1.2 (4 lanes, up to 4K 60Hz)
    • Supports Rec.2020 and conversion to Rec.709
  • Camera:
    •  Dual mipi CSI,dual ISP,Maximum input resolution of 13M pixels
  • Memory:
    • Dual channels 64-bit DRAM controller
    • Support DDR3/DDR3L, LPDDR3, LPDDR4
  • Connectivity:
    • PCIe 2.1 (4 full-duplex lanes with 20Gbps)
    • Embedded low power MCU for other application
    • 8 channels I2S supports 8 channels RX or 8 channels TX
RTENOTITLE

 


Documentation

  1. RK3399_Linux_Debain_V1.1_Development_Guide170620.pdf
  2. RK3399 Linux Debian v1.1开发说明170620.pdf
  3. RK3399_Linux_Buildroot_V1.2_Development_Guide170619.pdf
  4. RK3399_Linux_Buildroot_V1.2开发说明170619.pdf
  5. RK3399_Multimedia_Codec_Benchmark_v1.0.pdf

Software

See Linux User Guide setup LInux OS generally;

See U-Boot guide to develop U-Boot;

See Rockchip kernel to develop kernel;

See buildroot and debian to develop and rootfs.

 

Chip configuration

chip Kernel eMMC index Kernel SD index Uboot eMMC index Uboot SD index Baud speed
RK3399 1 0 0 1 1500000

 


RK3399 Devices List

 

References

https://en.wikipedia.org/wiki/ARM_Cortex-A72

http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html

https://www.arm.com/zh/products/multimedia/mali-gpu/high-performance/mali-t860-t880.php