博客
关于我
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/

    你可能感兴趣的文章
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSError 的使用方法
    查看>>
    nsis 安装脚本示例(转)
    查看>>
    NSJSON的用法(oc系统自带的解析方法)
    查看>>
    nslookup 的基本知识与命令详解
    查看>>
    NSOperation基本操作
    查看>>
    NSRange 范围
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NSURLSession下载和断点续传
    查看>>
    NSUserdefault读书笔记
    查看>>
    NS图绘制工具推荐
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>