chenjie · 10月15日 · 广东

【SiRider S1芯擎工业开发板测评】硬件介绍与SDK构建

引言

SE1000,又被称为龙鹰一号,是吉利旗下的湖北芯擎科技设计的一款IC,设计之初是用于吉利车机,此芯片性能强悍,可以对标高通8155平台。

近期安谋科技、芯擎科技和瑞莎计算机三方携手,推出了基于SE1000的工业开发板,也就是本次测评的主角SiRider S1,SE1000属于车规级SOC,可以满足工业场合的各种指标。下面笔者将用一系列文章介绍SiRider S1的开发流程。

 

硬件介绍

板子的正反面如下图所示
image.png

主控SOC型号为CSEC1000BABRT,也就是SE1000

主要特性

CPU两个Custer,Cluster0: 4个A76,最大频率2.4G,2个A55,最大频率1.8G;Cluster1: 2个 A55,最大1.8G;GPU包含3D GPU0,3D GPU1 和 2D/2.5D 图形核心,NPU包含两个NPU核心;内存支持2x32bit
LPDDR4/LPDDR5 存储支持UFS3.0和EMMC;支持4k编解码;支持多屏异显;通信接口若干

其框架如下图所示

image.png
 

DDR型号K3LKCKC0BM,来自三星半导体,规格为LPDDR5,容量64Gbit,带宽32bit,速度6400Mbps。板上总共有两片

UFS型号KLUDG4UHDC,来自三星半导体,规格为UFS3.1,容量128GB

板上没有EMMC,但是带了一个TF卡槽,使用的就是那一组SDIO接口

板上有两组千兆以太网口,phy芯片型号RTL8211FD,来自realtek

一个DP转接出来的HDMI接口,转换芯片为RA620

使用VL822+GL3525将SOC的一个USB3.2拓展为4个USB3.0接口和若干个USB2.0接口

使用MCP2515通过SPI拓展CAN接口

音频codec型号ES8316,来自顺芯

其余拓展接口通过排针扩展

板子框架如下图所示

image.png

SDK部署

瑞莎计算机提供了在芯擎科技公版sdk基础上修改而来的开发板sdk,下载地址为

https://gitlab.com/siengine-ubuntu-sdk/manifests

这个工程使用repo管理,首先要找到一个repo工具,这个工具可以从google官网下载,也可以从清华源下载。下载的过程略过,下载之后得到.repo文件夹一个,里面还有一个repo文件夹

然后拉取sdk,拉取命令为

-b main -m
se1000-ubuntu-ser1.1.xml

这里不建议直接用系统自带的repo命令,系统自带的命令会尝试从google服务器更新自身,由于网络原因基本无法更新成功的。

 

拉取之后的目录如下

image.png

这个manifest.xml就是各个git仓库的信息。拉取manifest之后,在此工程目录下再执行

python3 .repo/repo/repo sync -j4

来拉取各个git仓库

拉取之后的工程目录如下

image.png

另外这个toolchain目录拉取不了,这里面是交叉工具链,可以从arm官网下载。下载与解压命令如下

cd toolchain

wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86\_64-linux.tar.bz2

wget https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86\_64-aarch64-none-linux-gnu.tar.xz

wget https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86\_64-arm-none-linux-gnueabihf.tar.xz

tar -jxf gcc-arm-none-eabi-10.3-2021.10-x86\_64-linux.tar.bz2

tar -xf
gcc-arm-10.3-2021.07-x86\_64-aarch64-none-linux-gnu.tar.xz

tar -xf
gcc-arm-10.3-2021.07-x86\_64-arm-none-linux-gnueabihf.tar.xz

执行完上述命令后,sdk目录结构如下

image.png

SDK构建

要构建此SDK,需要使用ubuntu 20.04以上的环境,因为这个SDK里面的rootfs就是2004版本的ubuntu,使用低版本的ubuntu,会有部分软件不兼容的问题。

在sdk目录下执行

source env.sh

然后执行sebuilder -h

可以列举出具体命令

image.png

板上使用的存储器为ufs。因此使用的构建流程是构建各个lun,或者直接使用all参数,但是第一次构建通常会报错,这里建议还是一个个lun来

首先是lun0。这个lun0是4 x A76+2xA55那一组cluster运行的系统,包含ubuntu
kernel和ubuntu rootfs。构建命令为

sebuilder lun0

其中构建ubuntu过程中会出现各种错误,而默认的构建流程里面,每一次构建前,会对kernel执行clean操作,这样下次构建又要构建一次kernel,浪费时间,建议将这个脚本修改一下

image.png

构建完成后会显示如下信息

image.png

然后构建lun1,构建命令为

sebuilder lun1

这个是bl21的固件,bl21主要负责ddr和ufs的初始化,其源码在

src/arm-trusted-firmware

下面,这里有一部分是开源的源码,用于执行DDR初始化,另外一部分是DDR初始化参数,这部分是不开源的,只是提供了二进制文件

image.png

然后构建lun2,构建命令为

sebuilder lun2

这个是第二级bootloader,也就是atf/uboot的固件,以及cortex R52 /cortex M4核心的固件

其中uboot的源码位于src/u-boot

uboot的构建会出来bl33和bl33c的固件,这里猜测分别是两组cluster的固件

image.png

然后bl31和bl31c是atf固件,源码位于

src/arm-trusted-firmware

构建时参数选择的是bl31和bl31c

bl22源码也是

src/arm-trusted-firmware

构建时参数选择的是bl22

r52的源码位于

src/safetyisland

m4没有源码,可执行程序在

src/m4firmware

 

然后构建lun3,构建命令为

sebuilder lun3

这个是2xA55那一组cluster运行的系统,包含buildroot kernel和buildroot rootfs。

image.png

buildroot源码位于src/buildroot

另外,执行lun3构建时,需要先执行unset LD\_LIBRARY\_PATH

这个buildroot的构建难点在于它要下载大量的软件包,由于某些原因,部分国外的软件源无法拉取,需要从国内源找替代的,因此比较费事

lun5无法构建,需要用厂家提供构建好的。lun5里面全部是ddr的training文件,其路径位于

src/arm-trusted-firmware/drivers/ddr/training

这个跟板子走线强相关,sdk默认构建出来的是芯擎科技evb开发板的,跟这个SiRider S1有差异。lun5固件可以从

https://docs.radxa.com/sirider/s1/low-level-dev/image\_build

下载,笔者的板子是8GB的,使用的是这个文件

image.png

最终再次执行一次

sebuilder all

看下还有没遗漏的。如果显示以下信息,说明构建已经完成了

image.png

固件存放路径为

deploy/build

image.png

推荐阅读
关注数
10419
内容数
80
搭载基于安谋科技自研“周易”NPU的芯擎科技工业级“龍鹰一号”SE1000-I处理器
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息