码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux下spi网卡dm9051驱动移植及(具体)驱动调试分析总结


    目录

    • 一、简介
    • 二、uboot下移植和调试网卡驱动
      • 2.1 移植驱动
      • 2.2 调试网卡驱动
      • 2.3 读取spi自带eeprom寄存器值查看网卡状态
      • 2.4 debug分析过程
    • 三、其他相关链接

    一、简介

    本文重点总结spi网卡在linux下的驱动移植以及根据板子的走线如何进行debug,最后定位到具体问题后正常使用的详细过程。
    DM9051NP SPI接口网卡芯片是为了方便互联网行业进行以太网通信而开发出的解决方案。DM9051NP芯片是带有行业标准串列外设接口(Serial Peripheral Interface,SPI)的独立以太网控制器。DM9051NP符合IEEE 802.3 规范,它还支持以DMA 模式來传输,以实现资料传送快速。DM9051NP通过1个中断引脚和SPI接口來进行与主控制器/MCU单片机的通信,资料传输规格为10/100M。

    在这里插入图片描述

    二、uboot下移植和调试网卡驱动

    2.1 移植驱动

    网卡驱动的移植是常规的操作,将厂家发来的驱动正常编译即可,可以参考下面博客:

    Linux驱动移植USB网卡r8156驱动总结

    2.2 调试网卡驱动

    spi网卡最重要的就是代码跟开发板上的spi口走线对应上,这时需要查看电路图,从图中可以看到SPI_MISO对应spi引脚10,SPI_MISO对应spi引脚9,依次类推,因为原来的板子evb板spi不一样,所以要重新定义spi引脚。
    在这里插入图片描述
    在这里插入图片描述

    2.3 读取spi自带eeprom寄存器值查看网卡状态

    因为重新定义spi引脚后,设置ip地址后依然会ping不通,因此需要将相关的寄存器值打印出来进行debug。

    1、从spi网卡eeprom中读取配置
    在这里插入图片描述

    2、 将配置写进spi网卡eeprom中
    在这里插入图片描述
    3、将eeprom中的寄存器中的值都打出来,便于查看寄存器的值是否有问题,用于debug
    在这里插入图片描述
    4、也可直接将数据写入eeprom中,然后读取数值:
    在这里插入图片描述
    在dm9051.h中根据datasheet已经定义了各个寄存器的偏移地址,具体如下:
    在这里插入图片描述

    datasheet定义部分如下:
    在这里插入图片描述

    2.4 debug分析过程

    通过寄存器值打印显示连接状态寄存器值有问题,此时需要排查一下硬件原因,具体方法有,通过示波器查看时钟信号、万用表测电压值、协议分析仪抓包等,最后排查到VCT电压需要1.8V,实际接了3.3V,而且网卡灯一直不亮,同时百兆的SPI网卡因为采用杜邦线连接,io读写存在问题,需要降低频率到20M才能使用。

    #define DM9051_SPI_FREQ             (20) //MHz
    
    • 1

    三、其他相关链接

    1、Linux驱动移植USB网卡r8156驱动总结

    2、Linux系统e1000e网络驱动源码分析过程

  • 相关阅读:
    R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
    Jenkins部署以及基本使用
    10.7、华为数通HCIP-DataCom H12-821单选题:121-140
    一款EF Core下高性能、轻量级针对分表分库读写分离的解决方案
    Scala的简单学习二
    Window下Mysql8.0 怎样恢复被删除的Root
    docker资源控制
    HTML5离线储存
    配置NTP服务
    音频(六)——理解 dB
  • 原文地址:https://blog.csdn.net/Luckiers/article/details/127714178
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号