博客
关于我
Uboot DM9621网卡移植之路
阅读量:545 次
发布时间:2019-03-07

本文共 1716 字,大约阅读时间需要 5 分钟。

移植过程中的故障排除

在之前的移植过程中,我们已经成功完成了 USB 主机控制器和 USB 3503 Hub 的配置。接下来我们需要重点关注 DM9621 网卡的移植实现。

DM9621 网卡驱动移植

为了实现 DM9621 网卡在 Uboot 中的工作,我们需要完成以下几个关键步骤:

  • 设备驱动注册

    首先,我们需要在设备文件中添加 DM9621 网卡的驱动代码。具体实现如下:

    U_BOOT_DRIVER(dm9601_eth) = {    .name = "dm9601_eth",    .id = UCLASS_ETH,    .probe = dm9601_eth_probe,    .ops = &dm9601_eth_ops,    .priv_auto_alloc_size = sizeof(struct dm9601_private),    .platdata_auto_alloc_size = sizeof(struct eth_pdata),};
  • 设备驱动操作集

    操作集定义了网卡的基本操作接口:

    static const struct eth_ops dm9601_eth_ops = {    .start = dm9601_eth_start,    .send = dm9601_eth_send,    .recv = dm9601_eth_recv,    .free_pkt = dm9601_free_pkt,    .stop = dm9601_eth_stop,    .write_hwaddr = dm9601_write_hwaddr,};
  • 设备扩展器表

    我们需要创建一个支持 DM9621 的 USB 设备扩展器表:

    static const struct usb_device_id dm9601_eth_id_table[] = {    USB_DEVICE(0x07aa, 0x9601),  /* Corega FEther USB-TXC */    USB_DEVICE(0x0a46, 0x9601),  /* Davicom USB-100 */    USB_DEVICE(0x0a46, 0x0268),  /* ZT6688 USB NIC */    // ... 其他设备类型};U_BOOT_USB_DEVICE(dm9601_eth, dm9601_eth_id_table);
  • 关键接口实现

    需要实现 struct eth_ops 中的接口,并参考现有驱动(如 driver/net/usb/dm9601.c)进行移植。同时,确保驱动框架与 Uboot 的 DM_ETH 模型兼容。

  • 编译与配置

    为了使以上驱动能够在 Uboot 中正常工作,我们需要在 Kconfig 文件中启用相应配置项:

    config USB_ETHER_DM9601    bool "DAVICOM DM9601 (USB 2.0) support"    depends on USB_HOST_ETHER && DM_ETH

    在 Makefile 中添加驱动的编译目标:

    obj-$(CONFIG_USB_ETHER_DM9601) += dm9601.o

    验证与故障排除

    在完成上述配置后,我们需要进行以下步骤验证:

  • 启动 Uboot

    输入 usb start; usb reset,观察是否有 USB 设备正常工作。

  • 查看网络接口

    输入 Ping 192.168.x.x,确认网络是否正常通信。

  • 处理数据终止异常

    如果出现数据终止异常错误,请检查下列可能性:

    • USB 连接是否稳定
    • 序列号冲突
    • USB 端点配置是否正确
  • 解决内核校验失败

    错误信息提示 CRC 检查失败,可能是由于 SD卡中的内核.bin 文件损坏或读取失败。建议重新烧录 TF卡并确认启动设备是否正常读取内核文件。

  • 通过以上步骤,我们可以逐步排查并解决在移植过程中遇到的问题,确保 DM9621 网卡能够正常工作。

    如果仍然存在问题,可以参考相关社区讨论或提供详细的日志以便进一步分析。

    转载地址:http://zvdjz.baihongyu.com/

    你可能感兴趣的文章
    NYOJ 737:石子合并(一)(区间dp)
    查看>>
    nyoj 91 阶乘之和(贪心)
    查看>>
    nyoj------203三国志
    查看>>
    NYOJ-525 一道水题
    查看>>
    nyoj58 最少步数
    查看>>
    N皇后问题
    查看>>
    OAuth 2.0 MAC Tokens
    查看>>
    OAuth 及 移动端鉴权调研
    查看>>
    OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
    查看>>
    OAuth2 Provider 项目常见问题解决方案
    查看>>
    OAuth2 vs JWT,到底怎么选?
    查看>>
    Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_三项内容_Spring Security OAuth2.0认证授权---springcloud工作笔记141
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>