Jump to content

Add Support for RK3399 (2xA72+4xA53)


nightseas

Recommended Posts

I'm starting to add RK3399 to Armbian, in my spare time.

 

Here's the board I got, RK3399 official EVB, which spent me 500CNY (~63EURO) on Taobao, quite cheap comparing to Firefly.

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.1f30a53flpk7IA&id=554454257549&_u=31t0eea9a1c

 

Spec:

 - Rockchip RK3399 (2xA72 + 4xA53, Mali T860 MP4)

 - 4GBytes Dual channel LPDDR3 (64-bit in total)

 - 8GBytes eMMC, Micro SD Slot

 - USB 3.0 Type-A, USB Type-C (DP over Type-C), USB2.0, HDMI

 - 1G Ethernet

 - Raspberry Pi compatible 2x20 pin header

 - Other interfaces: PCIe 2.0 x4, MIPI CSI & DSI, eDP, LVDS....

 

IMG_20170728_211135.thumb.jpg.06538a1d1b8734467cd27292ae287570.jpg    IMG_20170728_211104.thumb.jpg.ee9660a2d2f0c00e32fd040d7d829f73.jpg

 

You can download Cadence OrCAD format schematic and Allegro format PCB files for free. It's open sourced and you'll also find BOM, gerber files ready for production.

http://opensource.rock-chips.com/wiki_Excavator_sapphire_board

 

I was able to build Linux 4.4 + Debian 9 with build scripts from Rockchip. And it looks like the OpenGLES and OpenCL are ready? (not fully tested). VPU still has some problem.

 

Will continue to update in this post...

Link to comment
Share on other sites

Concerning OpenGL ES tests :

You might need to download one of these drivers in a folder, create the various libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libOpenCL.so{,.1} libEGL.so{,.1} links to the libmali you downloaded and then set LD_LIBRARY_PATH when testing OpenGL ES little programs.

I might be missing a few file links...

 

So, if you downloaded libmali-midgard-4th-r13p0-gbm.so in /tmp/test-mali for example, this should do the trick :

 

cd /tmp/test-mali
for link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libOpenCL.so{,.1} libEGL.so{,.1}; do ln -s libmali-midgard-4th-r13p0.so $link; done
LD_LIBRARY_PATH=/tmp/test-mali ./es2gears

 

Change es2gears by the name of that the OpenGL ES program binary you want to test of course.

 

Note that if /dev/mali0 is not read/writeable by your user, the OpenGL ES program might fail with a Mali Driver error message telling you that you do not have the right GPU. It's a permission issue in that case.

If you don't have a /dev/mali0, it's a driver integration issue however.

 

No Vulkan support for the moment, however. The ARM guys do not seem to have released any driver for the Firefly RK3399. (´・ω・` )

Link to comment
Share on other sites

18 hours ago, Myy said:

Concerning OpenGL ES tests :

You might need to download one of these drivers in a folder, create the various libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libOpenCL.so{,.1} libEGL.so{,.1} links to the libmali you downloaded and then set LD_LIBRARY_PATH when testing OpenGL ES little programs.

I might be missing a few file links...

 

So, if you downloaded libmali-midgard-4th-r13p0-gbm.so in /tmp/test-mali for example, this should do the trick :

 


cd /tmp/test-mali
for link in libGLESv1_CM.so{,.1} libGLESv2.so{,.2} libOpenCL.so{,.1} libEGL.so{,.1}; do ln -s libmali-midgard-4th-r13p0.so $link; done
LD_LIBRARY_PATH=/tmp/test-mali ./es2gears

 

Change es2gears by the name of that the OpenGL ES program binary you want to test of course.

 

Note that if /dev/mali0 is not read/writeable by your user, the OpenGL ES program might fail with a Mali Driver error message telling you that you do not have the right GPU. It's a permission issue in that case.

If you don't have a /dev/mali0, it's a driver integration issue however.

 

No Vulkan support for the moment, however. The ARM guys do not seem to have released any driver for the Firefly RK3399. (´・ω・` )

 

I just did some simple test and didn't know if it was in a correct way.

As I was using the rk-rootfs-build scripts, I assumed that the packs were working. Unfortunately, no time for further test.

 

Take a look at the deb packs here:

https://github.com/rockchip-linux/rk-rootfs-build/tree/master/packages/arm64/libmali

 

And actually ARM guys won't do anything for Firefly RK3399. Rockchip will, but only in there official repo.

 

Screenshot of es2gears test.

 

 

 

Link to comment
Share on other sites

Now the bootloader and kernel built with Armbian scripts are running.

 

But there's a strange issue, in which the ramdisk system can not mount rootfs partition on SD card (SanDisk Ultra 8GB Class10 Micro SD):

 

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Will now check root file system ... fsck from util-linux 2.27.1
[/sbin/fsck.ext4 (1) -- /dev/mmcblk0p1] fsck.ext4 -a -C0 /dev/mmcblk0p1 
rootfs: recovering journal
rootfs: clean, 145627/219024 files, 636583/875520 blocks
done.
mount: mounting /dev/mmcblk0p1 on /root failed: No such device
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /run on /root/run failed: No such file or directory
run-init: current directory on the same filesystem as the root: error 0
Target filesystem doesn't have requested /sbin/init.
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
No init found. Try passing init= bootarg.


BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)

 

But the fsck.ext4 successfully operated the partition, and in the ramdisk system I was able to mount the system manually.

 

(initramfs) ls /dev/
ttyFIQ0             tty24               fuse                network_latency
rfkill              tty25               vpu_service         network_throughput
mem                 tty26               rkvdec              memory_bandwidth
null                tty27               ptmx                mali0
port                tty28               ttyS1               mmcblk1
zero                tty29               ttyS3               mmcblk1rpmb
full                tty30               ttyS0               mmcblk1boot1
random              tty31               ttyS2               mmcblk1boot0
urandom             tty32               hwrng               usbmon3
kmsg                tty33               ram0                usbmon4
tty                 tty34               loop-control        usbmon5
console             tty35               loop0               usbmon6
tty0                tty36               loop1               input
vcs                 tty37               loop2               i2c-9
vcsa                tty38               loop3               hdmi_hdcp1x
vcs1                tty39               loop4               fb0
vcsa1               tty40               loop5               vendor_storage
tty1                tty41               loop6               dri
tty2                tty42               loop7               pts
tty3                tty43               zram0               fd
tty4                tty44               net                 stdin
tty5                tty45               ppp                 stdout
tty6                tty46               usbmon0             stderr
tty7                tty47               usbmon1             char
tty8                tty48               bus                 block
tty9                tty49               usbmon2             disk
tty10               tty50               uinput              rtc
tty11               tty51               i2c-0               vcs2
tty12               tty52               rtc0                vcsa2
tty13               tty53               i2c-1               vcs3
tty14               tty54               i2c-4               vcsa3
tty15               tty55               mapper              vcs4
tty16               tty56               vhci                vcsa4
tty17               tty57               uhid                vcs5
tty18               tty58               ashmem              vcsa5
tty19               tty59               iio:device0         vcs6
tty20               tty60               snd                 vcsa6
tty21               tty61               mmcblk0
tty22               tty62               mmcblk0p1
tty23               tty63               cpu_dma_latency
(initramfs) [   27.588426] random: nonblocking pool is initialized
 
(initramfs) 
(initramfs) 
(initramfs) mount -t ext4 /dev/mmcblk0p1 /root
[   43.477832] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
(initramfs) ls /root/
sys         tmp         usr         lost+found  media       opt         boot
home        proc        selinux     run         var         lib         dev
mnt         bin         root        etc         srv         sbin

 

The boot scripts and full log are attached. Just ignore the eDP and SDIO WiFi errors, because they are not connected.

 

I guess I'll need to check the kernel config (also attached) then.

 

 

 

 

Link to comment
Share on other sites

Which patches do you use when building? Make sure you include at least those two:

https://github.com/armbian/build/blob/master/patch/kernel/rockchip-default/packaging-4.x-with-postinstall-scripts.patch

https://github.com/armbian/build/blob/master/patch/kernel/rockchip-default/bash_to_afterinstall.patch


Bug in boot script:

setenv bootargs "earlyprintk root=${rootdev} rw console=${console} rootfstype=${rootfstype} loglevel=${verbosity} rootwait ${extraargs}" 


Change this in config:

CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set

Link to comment
Share on other sites

5 hours ago, nightseas said:

 

I just did some simple test and didn't know if it was in a correct way.

As I was using the rk-rootfs-build scripts, I assumed that the packs were working. Unfortunately, no time for further test.

 

Take a look at the deb packs here:

https://github.com/rockchip-linux/rk-rootfs-build/tree/master/packages/arm64/libmali

 

And actually ARM guys won't do anything for Firefly RK3399. Rockchip will, but only in there official repo.

 

Screenshot of es2gears test.

 

Indeed, wzyy2 tend to prepackage the mali drivers in the rk-rootfs-build repository, but the one in the libmali repository seems to be updated more regularly. That said, if the drivers work, better not update them.

Too bad for ARM, since their DDK was more up to date (obviously) and incorporated all the techs possible. That said, they often say they won't provide the drivers for any board and then release them anyway a year later. ^_^

 

Now, it looks like the screenshot was eaten by a grue. (´・ω・` )

 

You might be interested by the new Rockchip wiki here. It has various information on how to compile or install certain Rockchip specific components on common distributions :

http://opensource.rock-chips.com/

 

This might help you if you're stuck with few things.

Link to comment
Share on other sites

On 8/4/2017 at 5:05 PM, Igor said:

Which patches do you use when building? Make sure you include at least those two:

https://github.com/armbian/build/blob/master/patch/kernel/rockchip-default/packaging-4.x-with-postinstall-scripts.patch

https://github.com/armbian/build/blob/master/patch/kernel/rockchip-default/bash_to_afterinstall.patch


Bug in boot script:

setenv bootargs "earlyprintk root=${rootdev} rw console=${console} rootfstype=${rootfstype} loglevel=${verbosity} rootwait ${extraargs}" 


Change this in config:

CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set

 

Thanks a lot for the hints.

 

I chose the Marvell 64-bit patch instead of RK3288 to replace compressed zImage with the binary Image.

https://github.com/armbian/build/blob/master/patch/kernel/mvebu64-default/packaging-4.x-with-postinstall-scripts.patch

 

Now Armbian 5.32 (Ubuntu 16.04 Desktop) is successfully running on my board.

 

I forked the repo and make my own commit to add the support for RK3399. You can find the changes to original repo here:

https://github.com/nightseas/armbian-build/

 

Know issues:

 1. No GPU or VPU pack installed for now;

 2. There's a binary tool from RK used to convert u-boot, which can't be packed into the u-boot deb because it's for x86_64. Means you can't update bootloader in a running Armbian.

 

Next step will be GPU and VPU userspace lib porting. 

 

Screenshot of desktop, with CPU, temperature, and frequency:

armbian_rk3399.thumb.png.d066f6b39eb348a7452cfa6e1d11224d.png

 

Link to comment
Share on other sites

On 8/4/2017 at 5:42 PM, Myy said:

Indeed, wzyy2 tend to prepackage the mali drivers in the rk-rootfs-build repository, but the one in the libmali repository seems to be updated more regularly. That said, if the drivers work, better not update them.

Too bad for ARM, since their DDK was more up to date (obviously) and incorporated all the techs possible. That said, they often say they won't provide the drivers for any board and then release them anyway a year later. ^_^

 

Now, it looks like the screenshot was eaten by a grue. (´・ω・` )

 

You might be interested by the new Rockchip wiki here. It has various information on how to compile or install certain Rockchip specific components on common distributions :

http://opensource.rock-chips.com/

 

This might help you if you're stuck with few things.

 

Well, the biggest problem is that the mali userspace lib from RK is not compatible to the xserver and desktop display infrastructure installed in ARMBIAN.

 

You have to install RK's xserver packs and also new desktop from some unkonwn source (maybe that's the Debian source under developing or source from RK). :(

 

I have faced it once when I was customizing a RK3288 board and I'm sure that it'll be still standing in my way. So Let me do some experiments and make as many functions work as I can.

Link to comment
Share on other sites

14 hours ago, fossxplorer said:

Too bad this board isn't available anymore. I also get " is sorry that the baby is temporarily off the shelves, you can stroll around the other baby" like CNX-Soft reported.

 

I asked the owner about the stock. There are less than 100 boards in stock and I see the correct quantity in system now.

I'm not sure if I can help on ordering boards because of possible issues on China Customs (tax stuff), production quality or transportation damage.

Just don't have time to test all the boards.

Link to comment
Share on other sites

On 2017/8/6 at 11:24 AM, nightseas said:

 

Well, the biggest problem is that the mali userspace lib from RK is not compatible to the xserver and desktop display infrastructure installed in ARMBIAN.

 

Indeed. That's the main reason why I'm using DRM/KMS OpenGL ES code with the latest Rockchip libmali (with GBM support) to test the 3D drivers.

 

Now that glmark2 has incorporated my patches, it should be easy to compile and use on any board with working DRM and OpenGL drivers. You might want to give it a try. Compile it like this :
 

./waf configure --with-flavors=drm-glesv2
./waf
./waf install # Not mandatory, you can execute the binary from its build folder

 

Then

 

LD_LIBRARY_PATH=/path/to/mali/drivers glmark2-es2-drm

 

You'll certainly be limited to VSync, however the score on the crystal bunny and the (ugly) terrain should provide some good statistics on the GPU.

Link to comment
Share on other sites

Are you sure that's not a naming issue ? Like using mmcblk0 instead of mmcblk1 or something ? That's a common issue I have when switching between 4.4 and mainline kernels on my RK3288 boards.

Link to comment
Share on other sites

41 minutes ago, Myy said:

Are you sure that's not a naming issue ? Like using mmcblk0 instead of mmcblk1 or something ? That's a common issue I have when switching between 4.4 and mainline kernels on my RK3288 boards.

It seems to be a driver problem...I use "dmesg" command to look for the mmc driver kernel message but find nothing about it...

Link to comment
Share on other sites

On 2017/8/11 at 8:36 AM, YelloApple said:

I have the same board...But it seems the sd card can't work too....Do you have any idea?

Which kernel are you using?

 

Kernel 4.4 from Rockchip official repo:

https://github.com/rockchip-linux/kernel

 

If it's mainline Kernel from kernel.org then which version is it?

 

Other 3rd-party repo?

 

There's a bug in the RK official u-boot, which  is caused by missing dwmmc driver and leads to SD card boot failure.

https://github.com/nightseas/rockchip-uboot/commit/80b82a7ba084b36c4f4ffbe7b67ffe98ff349f21

 

Link to comment
Share on other sites

On 12.8.2017 at 2:51 AM, nightseas said:

Which kernel are you using?

 

Kernel 4.4 from Rockchip official repo:

https://github.com/rockchip-linux/kernel

 

If it's mainline Kernel from kernel.org then which version is it?

 

Other 3rd-party repo?

 

There's a bug in the RK official u-boot, which  is caused by missing dwmmc driver and leads to SD card boot failure.

https://github.com/nightseas/rockchip-uboot/commit/80b82a7ba084b36c4f4ffbe7b67ffe98ff349f21

 

I use Rockchip official repo...

THX for your uboot patch~

 

I have used your uboot from https://github.com/nightseas/rockchip-uboot/,but I can't find any SD card driver as well...

In uboot ,I have tried the command "mmcinfo" but no any SD card be found.

In linux, I have tried the command "ls /dev" but no any SD card node be found.

 

“dmesg” command does not have any information about the SD card node, I have used your uboot source to compile, whether the need to patch the kernel?

 

Update:

Spoiler

 


DDR Version 1.08 20170320                                                    
In                                                                              
Channel 0: LPDDR3, 800MHz                                                       
CS = 0                                                                          
MR0=0x58                                                                        
MR1=0x58                                                                        
MR2=0x58                                                                        
MR3=0x58                                                                        
MR4=0x2                                                                         
MR5=0x1                                                                         
MR6=0x5                                                                         
MR7=0x0                                                                         
MR8=0x1F                                                                        
MR9=0x1F                                                                        
MR10=0x1F                                                                       
MR11=0x1F                                                                       
MR12=0x1F                                                                       
MR13=0x1F                                                                       
MR14=0x1F                                                                       
MR15=0x1F                                                                       
MR16=0x1F                                                                       
CS = 1                                                                          
MR0=0x58                                                                        
MR1=0x58                                                                        
MR2=0x58                                                                        
MR3=0x58                                                                        
MR4=0x2                                                                         
MR5=0x1                                                                         
MR6=0x5                                                                         
MR7=0x0                                                                         
MR8=0x1F                                                                        
MR9=0x1F                                                                        
MR10=0x1F                                                                       
MR11=0x1F                                                                       
MR12=0x1F                                                                       
MR13=0x1F                                                                       
MR14=0x1F                                                                       
MR15=0x1F                                                                       
MR16=0x1F                                                                       
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=32 Size=2048MB          
Channel 1: LPDDR3, 800MHz                                                       
CS = 0                                                                          
MR0=0x58                                                                        
MR1=0x58                                                                        
MR2=0x58                                                                        
MR3=0x58                                                                        
MR4=0x2                                                                         
MR5=0x1                                                                         
MR6=0x5                                                                         
MR7=0x0                                                                         
MR8=0x1F                                                                        
MR9=0x1F                                                                        
MR10=0x1F                                                                       
MR11=0x1F                                                                       
MR12=0x1F                                                                       
MR13=0x1F                                                                       
MR14=0x1F                                                                       
MR15=0x1F                                                                       
MR16=0x1F                                                                       
CS = 1                                                                          
MR0=0x58                                                                        
MR1=0x58                                                                        
MR2=0x58                                                                        
MR3=0x58                                                                        
MR4=0x2                                                                         
MR5=0x1                                                                         
MR6=0x5                                                                         
MR7=0x0                                                                         
MR8=0x1F                                                                        
MR9=0x1F                                                                        
MR10=0x1F                                                                       
MR11=0x1F                                                                       
MR12=0x1F                                                                       
MR13=0x1F                                                                       
MR14=0x1F                                                                       
MR15=0x1F                                                                       
MR16=0x1F                                                                       
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=32 Size=2048MB          
256B stride                                                                     
ch 0 ddrconfig = 0x101, ddrsize = 0x2020                                        
ch 1 ddrconfig = 0x101, ddrsize = 0x2020                                        
pmugrf_os_reg[2] = 0x3AA0DAA0, stride = 0xD                                     
OUT                                                                             
Boot1: 2017-04-07, version: 1.06                                                
CPUId = 0x0                                                                     
ChipType = 0x10, 1829                                                           
SdmmcInit=2 0                                                                   
BootCapSize=100000                                                              
UserCapSize=7456MB                                                              
FwPartOffset=2000 , 100000                                                      
SdmmcInit=0 20                                                                  
StorageInit ok = 66413                                                          
LoadTrustBL                                                                     
No find bl30.bin                                                                
No find bl32.bin                                                                
RunBL31 0x10000                                                                 
NOTICE:  BL31: v1.3(debug):55aa0b4                                             
NOTICE:  BL31: Built : 16:55:03, Mar 31 2017                                    
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    boot cpu mask: 0                                                       
INFO:    plat_rockchip_pmu_init(1089): pd status 3e                             
INFO:    BL31: Initializing runtime services                                    
INFO:    BL31: Preparing for EL3 exit to normal world                           
INFO:    Entry point address = 0x200000                                         
INFO:    SPSR = 0x3c9                                                           
                                                                                
                                                                                
U-Boot 2017.07-g80b82a7 (Aug 12 2017 - 20:48:48 +0800)                          
                                                                                
Model: Rockchip RK3399 Evaluation Board                                         
DRAM:  3.9 GiB                                                                  
MMC:   dwmmc@fe320000: 1, sdhci@fe330000: 0                                     
*** Warning - bad CRC, using default environment                                
                                                                                
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Model: Rockchip RK3399 Evaluation Board                                         
Net:                                                                            
Error: ethernet@fe300000 address not set.                                       
No ethernet found.                                                              
Hit any key to stop autoboot:  0                                                
=>                                                                              
=> mmc list                                                                     
dwmmc@fe320000: 1                                                               
sdhci@fe330000: 0 (eMMC)                                                        
=> mmc info                                                                     
Device: sdhci@fe330000                                                          
Manufacturer ID: 15                                                             
OEM: 100                                                                        
Name: 8GND3                                                                     
Timing Interface: High Speed                                                    
Tran Speed: 52000000                                                            
Rd Block Len: 512                                                               
MMC version 5.0                                                                 
High Capacity: Yes                                                              
Capacity: 7.3 GiB                                                               
Bus Width: 8-bit                                                                
Erase Group Size: 512 KiB                                                       
HC WP Group Size: 8 MiB                                                         
User Capacity: 7.3 GiB WRREL                                                    
Boot Capacity: 4 MiB ENH                                                        
RPMB Capacity: 512 KiB ENH       
=> mmc dev 1                                                                    
Card did not respond to voltage select!                                         
mmc_init: -95, time 12 

 

Edited by Tido
added spoiler
Link to comment
Share on other sites

19 hours ago, YelloApple said:

I use Rockchip official repo...

THX for your uboot patch~

 

I have used your uboot from https://github.com/nightseas/rockchip-uboot/,but I can't find any SD card driver as well...

In uboot ,I have tried the command "mmcinfo" but no any SD card be found.

In linux, I have tried the command "ls /dev" but no any SD card node be found.

 

“dmesg” command does not have any information about the SD card node, I have used your uboot source to compile, whether the need to patch the kernel?

 

Update:

...

 

The driver works fine so that is not a like a software issue. I have tested the SanDisk Ultra 8GB/16GB C10 cards and seen no such error.

If the U-Boot shows no mmc1 device then it means the dwmmc controller doesn't detect anything, and I'm afraid there's something wrong with your hardware or SD card.

Link to comment
Share on other sites

1 hour ago, nightseas said:

 

The driver works fine so that is not a like a software issue. I have tested the SanDisk Ultra 8GB/16GB C10 cards and seen no such error.

If the U-Boot shows no mmc1 device then it means the dwmmc controller doesn't detect anything, and I'm afraid there's something wrong with your hardware or SD card.

 I have tested the SanDisk Ultra 16GB C10 cards but also have the same error...So sad....

Link to comment
Share on other sites

On 8/8/2017 at 2:02 AM, Myy said:

 

Indeed. That's the main reason why I'm using DRM/KMS OpenGL ES code with the latest Rockchip libmali (with GBM support) to test the 3D drivers.

 

Now that glmark2 has incorporated my patches, it should be easy to compile and use on any board with working DRM and OpenGL drivers. You might want to give it a try. Compile it like this :
 


./waf configure --with-flavors=drm-glesv2
./waf
./waf install # Not mandatory, you can execute the binary from its build folder

 

Then

 


LD_LIBRARY_PATH=/path/to/mali/drivers glmark2-es2-drm

 

You'll certainly be limited to VSync, however the score on the crystal bunny and the (ugly) terrain should provide some good statistics on the GPU.

 

I tried to build libmali deb pack for RK3399 but failed. There's no instruction or guide, so I may need to ask Rockchip for help again.

Then I manually linked the lib in /usr/lib and destroyed the the desktop GUI. After some experiment the desktop was back but still could not test gles2 as you suggested.

 

The good news is, OpenCL works well. I'll do some OpenCV + OpenCL perf test and put the result here.

Link to comment
Share on other sites

@nightseas,

This is a good news about OpenCL and RK3399. It's interesting to see your results about  OpenCV + OpenCL  on RK3399.

I have found that ARM released their own  Compute library .  It supports both NEON and OpenCL and they claim that it has better performance than OpenCV.

I am also playing with RK3399 (Yundoo Y8) and was able to compile ARM compute library  and I'm planning to do some perf tests.

Link to comment
Share on other sites

The command to build most of the Rockchip repositories with a debian folder seems to be :

 

dpkg-buildpackage -b -rfakeroot -us -uc

That said, I would still highly recommend taking the .so library from their repository, put it in a folder, regenerate the appropriate links quickly and test GLES programs by invoking them like this :

 

 LD_LIBRARY_PATH=/path/to/the/library gles-program

 

Installing the new OpenGL ES libraries in /usr/lib could generate serious issues. Testing DRM/KMS OpenGL ES programs, like glmark2, from a real console (CTRL+ALT+F1), or from weston (Wayland), will generally be easier than trying from X11.

 

Link to comment
Share on other sites

On 8/16/2017 at 2:02 PM, yasko said:

@nightseas,

This is a good news about OpenCL and RK3399. It's interesting to see your results about  OpenCV + OpenCL  on RK3399.

I have found that ARM released their own  Compute library .  It supports both NEON and OpenCL and they claim that it has better performance than OpenCV.

I am also playing with RK3399 (Yundoo Y8) and was able to compile ARM compute library  and I'm planning to do some perf tests.

Attached is the full OpenCV 3.3.0 + OpenCL perf test report except video test part, which failed probably because of corrupted GLES.

Just for your reference.

x86_opencv_perf_reports_20170817.html

Link to comment
Share on other sites

14 hours ago, Myy said:

The command to build most of the Rockchip repositories with a debian folder seems to be :

 


dpkg-buildpackage -b -rfakeroot -us -uc

That said, I would still highly recommend taking the .so library from their repository, put it in a folder, regenerate the appropriate links quickly and test GLES programs by invoking them like this :

 


 LD_LIBRARY_PATH=/path/to/the/library gles-program

 

Installing the new OpenGL ES libraries in /usr/lib could generate serious issues. Testing DRM/KMS OpenGL ES programs, like glmark2, from a real console (CTRL+ALT+F1), or from weston (Wayland), will generally be easier than trying from X11.

 

Thanks for the hints. Do I also need to install Rockchip DRM packages while testing glmark2?

Link to comment
Share on other sites

It should not be necessary.

 

The Rockchip DRM package main purpose is to exploit DRI capabilities and the RGA 2D acceleration on Rockchip systems, but the RGA 2D acceleration was deemed inefficient for X11 purposes, and the DRI is not useful when testing DRM capabilities directly from a console.

Link to comment
Share on other sites

On 2017/8/28 at 8:38 PM, odlg said:

Hello
I have a Firefly RK3399 board and would like to test your build. Do you have downloadable images? Or do I need to setup a build env. Do you have flashing instructions?

BR

Ole

You should better build your own image, with several configurations changed from rk3399-evb to firefly, such as dtb, uboot config...

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines