一、 前言
S32v234 是一款高性能的车规级视觉处理芯片, 由四个 ARM Cortex-A53 @1GHz, L1/L2 cache with ECC&NeonCPU1-4 处理器构成,板载还包括两个视觉处理芯片 APEX。Lion 是以 S32v234 为主芯片进行设计的域控制器开发板,如下所示:
本文主要讨论如何调试 Lion 板上的 AR8031 PHY,因为该 PHY 是接在 SJA1105 的 PORT4,所以同时也需要对 SJA1105 进行调试。
二、 环境要求
Software Version:BSP18.0
S32V234-Lion 开发板:WPI 做的一款实验开发板
三、 操作步骤
1. 使用通用 PHY 驱动 Uboot 驱动调试
1) 下载 Uboot 源码
2) 打上补丁以支持 Lion SD 卡启动(默认 config1, EMMC 启动)
0001-uboot-sd-config2-frank.patch
补丁主要内容如下所示(读者也可直接根据以下内容修改源码):
3) 编译源码,将此时编译出的镜像文件 u-boot.s32 烧写可发现 uboot 命令行下无法 ping 通,如下所示:
4) 打上补丁以支持 Lion PHY 的正常工作
0001-uboot-sd-ar8031-frank.patch
补丁主要内容如下所示(读者也可直接根据以下内容修改源码):
5) 编译源码,重新烧写 u-boot.s32 后进行 U-boot 端 Ping 测试,结果如下:
2. Kernel 调试
1) SJA1105 驱动调试
a) 下载 SJA1105 源码
b) 修改 SJA1105 中的 Makefile,使得正常编译,如下所示:
修改 MYPLATFORM=evb , 同时修改如下内容
2) 修改内核驱动配置
a) 内核源码下载
b) 打上补丁以支持 FDMA 驱动模块正常加载
0001-s32v234-dts-Add-VSDK-specific-configuration.patch
S32v234 是一款高性能的车规级视觉处理芯片, 由四个 ARM Cortex-A53 @1GHz, L1/L2 cache with ECC&NeonCPU1-4 处理器构成,板载还包括两个视觉处理芯片 APEX。Lion 是以 S32v234 为主芯片进行设计的域控制器开发板,如下所示:
|
本文主要讨论如何调试 Lion 板上的 AR8031 PHY,因为该 PHY 是接在 SJA1105 的 PORT4,所以同时也需要对 SJA1105 进行调试。
二、 环境要求
Software Version:BSP18.0
S32V234-Lion 开发板:WPI 做的一款实验开发板
三、 操作步骤
1. 使用通用 PHY 驱动 Uboot 驱动调试
1) 下载 Uboot 源码
git clone https://source.codeaurora.org/external/autobsps32/u-boot |
git checkout -b master v2016.01_bsp18.0 |
2) 打上补丁以支持 Lion SD 卡启动(默认 config1, EMMC 启动)
0001-uboot-sd-config2-frank.patch
cd u-boot |
patch -p1 < 0001-uboot-sd-config2-frank.patch |
补丁主要内容如下所示(读者也可直接根据以下内容修改源码):
3) 编译源码,将此时编译出的镜像文件 u-boot.s32 烧写可发现 uboot 命令行下无法 ping 通,如下所示:
4) 打上补丁以支持 Lion PHY 的正常工作
0001-uboot-sd-ar8031-frank.patch
cd u-boot |
patch -p1 < 0001-uboot-sd-ar8031-frank.patch |
补丁主要内容如下所示(读者也可直接根据以下内容修改源码):
5) 编译源码,重新烧写 u-boot.s32 后进行 U-boot 端 Ping 测试,结果如下:
2. Kernel 调试
1) SJA1105 驱动调试
a) 下载 SJA1105 源码
git clone https://source.codeaurora.org/external/autobsps32/sja1105x |
git checkout -b master bsp18.0 |
b) 修改 SJA1105 中的 Makefile,使得正常编译,如下所示:
修改 MYPLATFORM=evb , 同时修改如下内容
2) 修改内核驱动配置
a) 内核源码下载
git clone https://source.codeaurora.org/external/autobsps32/linux |
git checkout -b master v4.14.34_bsp18.0 |
b) 打上补丁以支持 FDMA 驱动模块正常加载
0001-s32v234-dts-Add-VSDK-specific-configuration.patch
cd linux |
patch -p1 < 0001-s32v234-dts-Add-VSDK-specific-configuration.patch |
c) 打上补丁以使得内核支持 Lion SD 卡启动(默认 config1, EMMC 启动)
0001-kernel-emmc-config2-frank.patch
cd linux |
patch -p1 < 0001-kernel-emmc-config2-frank.patch |
d) 打上补丁,以解决 SJA1105 端口 4 异常
0001-mod-sja1105-dts-frank.patch
cd linux |
patch -p1 < 0001-mod-sja1105-dts-frank.patch |
也可通过以下方式手动修改设备树中关于 SJA1105 中端口 4 的配置信息
3) Kernel ping 测试
insmod sja1105pqrs.ko //装载 SJA1105交换机驱动 |
ifconfig eth0 169.254.3.19 netmask 255.255.255.0 //设置板端 IP |
ping 169.254.3.18 //ping PC ip |
结果如下:
这样,关于 Uboot&Kernel 的 PHY 初级阶段调试就完成了。下面我们讲下进阶部分:
四、调试进阶
在调试过程中,实际上,我们在 Uboot 阶段使用的 PHY 驱动和 Kernel 使用的 PHY 驱动并非都是直接针对 AR8031 PHY 的,我们以上调试使用的搭配是:
Uboot: Micrel PHY 驱动
Kernel: Micrel PHY 驱动下面来修改代码以使得 Uboot & Kernel下使用 AR8031 PHY 驱动
1. Uboot PHY 驱动更换:(Micrel PHY 驱动 -> AR8031 PHY 驱动)
打上补丁以更换驱动:0001-uboot-sd-atheros-frank.patch
cd u-boot |
patch -p1 < 0001-uboot-sd-atheros-frank.patch |
补丁主要内容如下:
此时同时测试 Uboot&Kernel 的 ping 测试,测试能正常 ping 通
2. Kernel PHY 驱动更换(Micrel PHY 驱动 -> AR8031 PHY 驱动)
1) 修改内核配置
2) 定义相关宏Path:linux/arch/arm64/configs/s32v234_defconfig
增加宏:CONFIG_AT803X_PHY=y
3) 修改设备树,使得 AR8031 驱动能正常加载,正常加载 log 如下所示:
4) SJA1105 需要修改配置,因此需要打上补丁以支持 SJA1105 交换机 PORT 4 端口正常工作
0001-sja1105-port4-delay-frank.patch
cd sja1105x |
patch -p1 < 0001-sja1105-port4-delay-frank.patch |
补丁关键内容如下:
此时再按照之前的方式进行测试,Uboot&Kernel 皆可 ping 通
关于 S32V BSP 调试与进阶的更多博文内容可以通过关注大大通,或者扫描以下二维码即可链接到上一篇博文《S32V GPU Demo 运行与环境设置》, 二维码如下所示:
下篇将为您介绍如何从 0 到 1 制作一个简单的文件系统。 下篇博文:《S32V 从 0 到 1 制作 rootfs》
五、附件
NXP 官方参考资料:
1、S32V234RM.pdf
2、Auto_Linux_BSP_18.0_User_Manual.pdf
其他资料:
- Patch 文件请注册大大通后扫描二维码进行获取:
评论