首先让我们看看原有的师兄弟们内功(CPU)如何,小师弟LS1012A。
LS1012A搭载的是一颗ARMv8架构的A53的核心,ARMv8的资质不错,可惜修为稍稍欠缺一点,只有单核。丰富的外设接口,以及强大的PFE包转发引擎,极低的功耗也能为它的战斗力加上几分。
LS1043A 搭载的是四颗ARMv8架构的A53的核心,单纯靠这一点,LS1012A就要靠边站了,网络方面最多可支持7个千兆,并且有Fman加速引擎的助力,战斗力爆表。
LS1046A搭载的是四颗ARMv8架构的A72的核心,一颗A72的性能大约是一颗A53的两倍(具体还要看主频),核心性能方面相对于LS1043A又强大了一倍,网络接口与PCIE的数量相对LS1043A都要更多一些。就目前而言,它这个大师兄当之无愧。
LS1028A搭载的是双核armv8架构的A72核心,LS1043A听了稍稍颤抖,难道LS1043A二师兄的位置不保吗?LS1028A还有一颗GPU具体的型号是VivanteGC7000UL以及一个支持4K显示的DP接口,显示功能的加持让原有的三个师兄弟们都有些许抬不起头来,还没有结束,它还有一个支持TSN功能的硬件Switch、两路Can-FD。相对原有的三个师兄弟们,LS1028A绝对是一个另类,它的综合实力与LS1043A持平,在需要显示或者TSN的领域,LS1028A要胜于LS1043A,在需要更多的网络接口或者需要万兆时,LS1043A要胜于LS1028A。
一起来认识下OK1028A-C平台
01、从接口开始了解—OK1028A-C
首先,我们来看下搭载了LS1028A的OK1028A-C开发板,是否发挥出了它的全部性能呢?
FET1028A-C核心板的设计依然延续了小巧精致的风格,将CPU所有的管脚引出,留给客户足够的发挥空间来设计自己的底板。
OK1028A-C的接口实在是太丰富了,几乎可以验证FET1028A-C的所有功能。详细的功能列表如下:
02、上电效果体验
OK1028A-C支持eMMC、SD卡、QSPI启动,默认出厂时eMMC中已经刷好了最新镜像。连接好电源与调试串口,拨动电源拨码开关,还是熟悉的味道,用户名和密码均为“root”。
LS1028A 内部带有支持TSN的硬件Switch,Switch Port 之间的二层转发完全不占用CPU负载,十分强大,下面给大家展示一下实测数据。
我们将OK1028A-C的Switch Port 全部配置到网桥br0上,同时使用两台Linux主机分别连接到swp0口和swp1口,并分别配置IP为192.168.1.181、192.168.1.106,两台主机之间通过iperf3来测试OK1028A-C Switch Port之间的二层转发性能。
此时的CPU大部分处于空闲状态,完全没有受到转发的影响,同级别不支持硬件Switch的CPU,恐怕单核要几乎100%的负载了。
LS1028A 的eno0口以及所有的Switch Port 均在硬件上实现了IEEE 802.1 TSN相关的部分协议,包括IEEE802.1Qas、IEEE 802.1Qav、IEEE 802.1Qbv、IEEE 802.1Qbu、IEEE 802.1Qci 等,支持硬件时间戳,保证了精确的时钟同步,应用层提供了tsntool可以对TSN进行配置。OK1028A-C TSN的支持可以让工业控制以及汽车等对时间敏感领域的网络应用的确定性延时和数据包丢失提供保障。
03、软件SDK的介绍
OK1028A-C的软件SDK基于NXPLSDK2004开发,内核为5.4版本,uboot版本为2019.10,Qt的版本也升级到了5.9.5,高版本的软件SDK必将带来全新的体验,同时OK1028A-C的uboot源码是完全开放的,再也不用纠结uboot无法修改啦。
下面简单介绍一下软件工程师在开发过程中可能会涉及的几个部分。
1.RCW:熟悉LS系列产品的朋友们都知道,LS系列产品需要使用复位控制字RCW来进行一些配置,例如最基础的GPIO管脚的分配。OK1028A-C的RCW位于SDK的packages/firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw目录,相对于之前的产品,不同的启动方式会有不同的RCW配置文件,OK1028A-C无论哪种启动方式,均使用rcw_1500_gpu600.rcw来配置。
2.u-boot:OK1028A-C的u-boot源码完全开发给大家,它位于packages/firmware/u-boot目录,同时它使用的配置文件为packages/firmware/u-boot/configs/ls1028ardb_tfa_defconfig。
3.Kernel:OK1028A-C的内核源码位于packages/linux/linux目录,它的配置文件为packages/linux/linux/arch/arm64/configs/ok1028_defconfig,它使用的设备树文件为packages/linux/linux/arch/arm64/boot/dts/freescale/OK1028A-C.dts。
4.文件系统:OK1028A-C 使用的Ubuntu18.04文件系统,是在build/images/rootfs_lsdk2004_ubuntu_main_arm64.tgz基础上构建的,详细的构建过程可以分析tools/flex-builder脚本。相信了解了这些,软件工程师们肯定可以快速上手,更详细更丰富的内容请参考OK1028A-C的用户手册。