Difference between revisions of "RK3399"

From Rockchip open source Document
Jump to: navigation, search
 
(85 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="1" class="infobox" style="width: 300px;"
 
 
 
 
 
 
 
 
 
 
{| cellspacing="5" class="infobox" style="width: 250px;"
 
 
|-
 
|-
| [[File:RK3399 Block Diagram.png|RTENOTITLE]]
+
| [[File:RK3399 Soc.png|RTENOTITLE]]
 
|}
 
|}
 
 
 
 
 
 
  
 
= Overview =
 
= Overview =
Line 25: Line 15:
 
= 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:  
 
** Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11  
 
** Mali-T864 GPU, OpenGL ES1.1/2.0/3.0/3.1, OpenCL, DX11  
Line 48: Line 50:
 
**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]]
 
+
|}
= History =
 
  
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
= 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]] setup LInux OS generally;
  
{| border="1" cellpadding="1" cellspacing="1" style="line-height: 1.6; width: 768px;"
+
See [[U-Boot|U-Boot]] guide to develop U-Boot;
|-
+
 
| style="width: 119px; text-align: center;" | '''board'''
+
See [[Rockchip_Kernel|Rockchip kernel]] to develop kernel;
| 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
 
|}
 
  
 
+
See [[Buildroot|buildroot and]] [[Debian|debian to]] develop and rootfs.
  
 
 
 
 
Line 97: Line 78:
 
== 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 113: 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. 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)
 
<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)
+
= [http://opensource.rock-chips.com/wiki_Devices#RK3399_Boards RK3399 Devices List] =
<pre>CROSS_COMPILE=aarch64-linux-gnu- make rk3399_linux_defconfig all</pre>
 
  
 
&nbsp;
 
&nbsp;
  
=== Building rootfs ===
+
= References =
 
 
==== 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.
+
[https://en.wikipedia.org/wiki/ARM_Cortex-A72 https://en.wikipedia.org/wiki/ARM_Cortex-A72]
  
&nbsp;
+
[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]
  
==== Buildroot ====
+
[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]
 
 
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.
 
 
 
&nbsp;
 
 
 
= Devices =
 
 
 
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 =
 
 
 
&nbsp;
 

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