Difference between revisions of "RK3399"

From Rockchip open source Document
Jump to: navigation, search
 
(67 intermediate revisions by 6 users not shown)
Line 2: Line 2:
 
Rockchip RK3399 SoC integrates dual-core Cortex-A72 and quad-core Cortex-A53 with separate NEON coprocessor, and with ARM Mali-T864 GPU.
 
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="0" class="infobox" style="width: 200px;"
+
{| border="0" cellpadding="1" cellspacing="1" class="infobox" style="width: 300px;"
 
|-
 
|-
 
| [[File:RK3399 Soc.png|RTENOTITLE]]
 
| [[File:RK3399 Soc.png|RTENOTITLE]]
Line 10: Line 10:
  
 
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 =
Line 18: Line 20:
 
*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 41: Line 52:
 
| style="width: 429px;" | [[File:RK3399 Block Diagram.png|RTENOTITLE]]
 
| style="width: 429px;" | [[File:RK3399 Block Diagram.png|RTENOTITLE]]
 
|}
 
|}
 +
 +
&nbsp;
 +
  
 
= Documentation =
 
= Documentation =
  
#[http://10.10.10.12:8444/images/6/60/Rockchip_RK3399_Datasheet_V1.6-20170301.pdf Rockchip_RK3399_Datasheet_V1.6-20170301]  
+
#[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://10.10.10.12:8444/images/2/27/RK3399_Linux_Debian_System_Development_Guide.pdf RK3399_Linux_Debian_System_Development_Guide]  
+
#[http://opensource.rock-chips.com/images/5/5d/RK3399_Linux_Debian_v1.1开发说明170620.pdf RK3399 Linux Debian v1.1开发说明170620.pdf]  
#[http://10.10.10.12:8444/images/9/9e/RK_DDR_Support_List_Ver2.24.pdf RK_DDR_Support_List_Ver2.24]  
+
#[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 =
 
= Software =
  
== Borad configuration ==
+
See [[Linux_user_guide|Linux User Guide]]&nbsp;setup LInux OS generally;
  
{| border="1" cellpadding="1" cellspacing="1" style="line-height: 1.6; width: 768px;"
+
See&nbsp;[[U-Boot|U-Boot]]&nbsp;guide to develop U-Boot;
|-
+
 
| style="width: 119px; text-align: center;" | '''board'''
+
See&nbsp;[[Rockchip_Kernel|Rockchip kernel]]&nbsp;to develop kernel;
| style="width: 172px; text-align: center;" | '''kernel'''
+
 
| style="width: 124px; text-align: center;" | '''uboot'''
+
See [[Buildroot|buildroot and]] [[Debian|debian&nbsp;to]] develop and rootfs.
| style="width: 310px; text-align: center;" | '''dts'''
+
 
|-
+
&nbsp;
| 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
 
|}
 
  
 
== 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 84: Line 95:
 
|}
 
|}
  
== How to get the sources ==
+
&nbsp;
  
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
+
= [http://opensource.rock-chips.com/wiki_Devices#RK3399_Boards RK3399 Devices List] =
<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 ==
+
&nbsp;
  
=== Build Environment ===
+
= References =
 
 
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
 
 
 
 
 
=== Building kernel &&nbsp;resource ===
 
 
 
For RK3399&nbsp;Excavator-sapphire&nbsp;board:
 
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">make ARCH=arm64 rockchip_linux_defconfig &&&nbsp;make&nbsp;ARCH=arm64&nbsp;rk3399-sapphire-excavator-linux.img&nbsp;-j4</div>
 
For&nbsp;Firefly-RK3399 board:
 
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">make ARCH=arm64 rockchip_linux_defconfig && make ARCH=arm64 rk3399-firefly-mini-linux.img -j12&nbsp;</div>
 
  
=== Building uboot ===
+
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]
  
For RK3399 optimized SDK (rkproduct uboot)
+
[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]
<pre>CROSS_COMPILE=aarch64-linux-gnu- make rk3399_linux_defconfig all</pre>
 
 
 
=== Building rootfs ===
 
 
 
==== Debian ====
 
 
 
you could refer to [[Media: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_Buildroot_System_Development_Guide.pdf|RK3399 Linux Buildroot System Development Guide]]&nbsp;from Rockchip to build rootfs yourselves.
 
 
 
 
 
= Devices =
 
 
 
Rockchip: [[Excavator_sapphire_board|Excavator_sapphire_board]]
 
 
 
Firefly: [http://wiki.t-firefly.com/index.php/Firefly-RK3399 Firefly-RK3399]
 
 
 
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|RK3328]]
 
 
 
= Owners of the SoC on IRC =
 
 
 
= Commuity Support =
 
 
 
= References =
 
  
= Exteneral Links =
+
[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