Difference between revisions of "RK3399"

From Rockchip open source Document
Jump to: navigation, search
 
(129 intermediate revisions by 7 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 =
  
== Cortex-A7 ==
+
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 =
  
&nbsp;
+
{| border="0" cellpadding="1" cellspacing="1" style="width: 972px;"
 +
|-
 +
| style="width: 530px;" |
 +
*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:
 +
**&nbsp;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:
 +
**&nbsp;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 
  
= History =
+
| style="width: 429px;" | [[File:RK3399 Block Diagram.png|RTENOTITLE]]
 +
|}
  
 
&nbsp;
 
&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;
  
== Borad configuration ==
+
See&nbsp;[[Rockchip_Kernel|Rockchip kernel]]&nbsp;to develop kernel;
  
{| border="1" cellpadding="1" cellspacing="1" style="line-height: 1.6; width: 768px;"
+
See [[Buildroot|buildroot and]] [[Debian|debian&nbsp;to]] develop and rootfs.
|-
 
| style="width: 119px; text-align: center;" | <span style="color:#FFFFFF;"><span style="background-color:#0000CD;">board</span></span>
 
| style="width: 172px; text-align: center;" | <span style="color:#FFFFFF;"><span style="background-color:#0000CD;">kernel</span></span>
 
| style="width: 124px; text-align: center;" | <span style="color:#FFFFFF;"><span style="background-color:#0000CD;">uboot</span></span>
 
| style="width: 310px; text-align: center;" | <span style="color:#FFFFFF;"><span style="background-color:#0000CD;">dts</span></span>
 
|-
 
| 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;
Line 39: Line 78:
 
== Chip configuration ==
 
== Chip configuration ==
  
{|
+
{| border="1" cellpadding="1" cellspacing="1" class="table_style" style="width: 859px;"
 
|-
 
|-
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">chip</span></span>
+
! style="width: 68px; text-align: center;" | '''chip'''
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">Kernel eMMC index</span></span>
+
! style="width: 181px; text-align: center;" | '''Kernel eMMC index'''
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">Kernel SD index</span></span>
+
! style="width: 142px; text-align: center;" | '''Kernel SD index'''
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">Uboot eMMC index</span></span>
+
! style="width: 158px; text-align: center;" | '''Uboot eMMC index'''
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">Uboot SD index</span></span>
+
! style="width: 146px; text-align: center;" | '''Uboot SD index'''
! <span style="color:#FFFFFF;"><span style="background-color:#0000FF;">Baud speed</span></span>
+
! style="width: 132px; text-align: center;" | '''Baud speed'''
 
|-
 
|-
| style="text-align: center;" | RK3399
+
| style="width: 68px; text-align: center;" | RK3399
| style="text-align: center;" | 1
+
| style="width: 181px; text-align: center;" | 1
| style="text-align: center;" | 0
+
| style="width: 142px; text-align: center;" | 0
| style="text-align: center;" | 0
+
| style="width: 158px; text-align: center;" | 0
| style="text-align: center;" | 1
+
| style="width: 146px; text-align: center;" | 1
| style="text-align: center;" | 1500000
+
| style="width: 132px; text-align: center;" | 1500000
 
|}
 
|}
  
 
&nbsp;
 
&nbsp;
  
== 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;
 
 
=== Building kernel ===
 
 
For ARM V8 (RK3399 optimized SDK)
 
<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 ====
 
 
Yu can download the prebuilt image directly.
 
 
[http://pan.baidu.com/s/1eSE1tfW Baidu Pan]、[https://drive.google.com/folderview?id=0BwAJtUrQohwXdGRVYTAwdlJDOUU&usp=sharing Google Drive]
 
 
or you could use the&nbsp;[https://github.com/rockchip-linux/rk-rootfs-build rootfs-build-script]&nbsp;from Rockchip to build rootfs yourselves.
 
 
==== Yocto ====
 
 
If you want to use Yocto to build your rootfs see&nbsp;[http://rockchip.wikidot.com/yocto-user-guide yocto-user-guide]&nbsp;for detail.
 
  
==== Buildroot ====
+
= [http://opensource.rock-chips.com/wiki_Devices#RK3399_Boards RK3399 Devices List] =
 
 
If you want to use Buildroot to build your rootfs see&nbsp;[http://rockchip.wikidot.com/buildroot-user-guide buildroot-user-guide]&nbsp;for detail.
 
  
 
&nbsp;
 
&nbsp;
  
= Devices =
+
= References =
 
 
If you need the rk3399-excavator&nbsp;board, please go through&nbsp;the following&nbsp;contact information.
 
<pre>Telephone: 4007700590    Email: service@rock-chips.com</pre>
 
 
 
= See also =
 
 
 
= Owners of the SoC on IRC =
 
 
 
= Commuity Support =
 
  
= References =
+
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]
  
= Exteneral Links =
+
[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]
  
&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