S32V Lion SJA1105 & AR8031 PHY 通信调试

一、 前言

        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 文件请注册大大通后扫描二维码进行获取:

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论