在 OK1012A- C 、 OK1043A-C 、 OK1046A-C 之后, 飞凌嵌入式推出了 OK1028A-C 新一代 Layerscape 系列 开发板。在 OK1028A-C 到来之前, OK1046A-C 的性能毋庸置疑处于大师兄的位置, OK1043A-C 紧随其后, OK1012A-C 妥妥的只能当个小师弟。 OK1028A-C 的到来必将打破当前的排行,那么它将处于什么位置呢,下面就让我们来分析分析。
首先让我们看看原有的师兄弟们内功 (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 具体的型号是 Vivante GC7000UL 以及一个支持 4K 显示的 DP 接口,显示功能的加持让原有的三个师兄弟们都有些许抬不起头来,还没有结束,它还有一个支持 TSN 功能的硬件 Switch 、两路 Can FD 。
相对原有的三个师兄弟们, LS1028A 绝对是一个另类,它的综合实力与 LS1043A 持平, 在需要显示或者 TSN 的领域, LS1028A 要胜于 LS1043A ,在需要更多的网络接口或者需要万兆时, LS1043A 要胜于 LS1028A 。
下面我们一起立体的认识下 飞凌 嵌入式 OK1028A-C 平台。
从接口开始了解 ——— OK1028A-C
首先,我们来看下搭载了 LS1028A 的 OK1028A-C 开发板,是否发挥出了它的全部性能呢?
核心板 FET1028A 的设计依然延续了小巧精致的风格,将 CPU 所有的管脚引出,留给客户足够的发挥空间来设计自己的底板。
OK1028A-C 开发板的接口实在是太丰富了,几乎可以验证 FET1028A-C 的所有功能。详细的功能列表如下:
上电体验
OK1028A-C 支持 EMMC 、 SD 卡、 Q SPI 启动,默认出厂时 EMMC 中已经刷好了最新镜像。 连接好电源与调试串口,拨动电源拨码开关,还是熟悉的味道,用户名和密码均为 “root”。
LS1028A 内部带有支持 TSN 的硬件 Switch , Switch Port 之间的二层转发完全不占用 Cpu 负载,十分强大,下面给大家展示一下实测数据。
我们将飞凌 LS1028A 开发板 的 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 相关的部分协议,包括 IEEE 802.1Qas 、 IEEE 802.1Qav 、 IEEE 802.1Qbv 、 IEEE 802.1Qbu 、 IEEE 802.1Qci 等,支持硬件时间戳,保证了精确的 时钟同步,{link 56}提供了 tsntool 可以对 TSN 进行配置。 OK1028A-C TSN 的支持可以让 工业控制以及汽车等对时间敏感领域的网络应用的确定性延时和数据包丢失提供保障。
软件 SDK 的介绍
飞凌LS1028A开发板的软件 SDK 基于 NXP LSDK2004 开发,内核为 5.4 版本, uboot 版本为 2019.10 , Qt 的版本也升级到了 5.9.5 ,高版本的软件 SDK 必将带来全新的体验,同时 OK1028A-C 的 uboot 源码是完全开放的,再也不用纠结 uboot 无法修改啦。
下面简单介绍一下软件工程师在开发过程中可能会涉及的几个部分。
1、RCW
熟悉 LS 系列产品的朋友们都知道, LS 系列产品需要使用复位控制字 RCW 来进行一些配置,例如最基础的 GPIO 管脚的分配。 飞凌 LS1028A 开发板 的 RCW 位于 SDK 的 packages/firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw 目录,相对于之前的产品,不同的启动方式会有不同的 RCW 配置文件, OK1028A-C 无论哪种启动方式,均使用 rcw_1500_gpu600.rcw 来配置。
2、u-boot
飞凌 LS1028A 开发板的 u-boot 源码完全开发给大家,它位于 packages/firmware/u-boot 目录,同时它使用的配置文件为 packages/firmware/u-boot/configs/ls1028ardb_tfa_defconfig 。
3、Kernel
飞凌 LS1028A 开发板的内核源码位于 packages/linux/linux 目录,它的配置文件为 packages/linux/linux/arch/arm64/configs/ok1028_defconfig ,它使用的设备树文件为 packages/linux/linux/arch/arm64/boot/dts/freescale/OK1028A-C.dts 。
4、文件系统
飞凌 LS1028A 开发板 使用的 Ubuntu18.04 文件系统,是在 build/images/rootfs_lsdk2004_ ubuntu_main_arm64.tgz 基础上构建的,详细的构建过程可以分析 tools/flex-builder 脚本。
相信了解了这些,软件工程师们肯定可以快速上手,更详细更丰富的内容请参考 OK1028A-C 的用户手册。