DM9000驱动移植调试:U-Boot配置与常见问题解决

需积分: 3 17 下载量 4 浏览量 更新于2024-08-02 收藏 154KB PDF 举报
本文档主要介绍了如何在U-Boot环境中移植和调试DM9000驱动程序。首先,针对Tekkaman SBC2440V4这样的硬件平台,文档指导用户在`/include/configs/tekkaman2440.h`文件中添加对DM9000的支持,通过修改`CONFIG_DRIVER_DM90001`和`CONFIG_DM9000_BASE`宏定义来指定DM9000的基地址。例如,如果DM9000位于BANK4,则`CONFIG_DM9000_BASE`应设置为`0x20000300`,而如果在BANK1则设置为`0x08000300`。 在进行编译与烧录后,用户可能会遇到两个问题: 1. **MAC地址不匹配**:在U-boot 1.3.1版本中,可能不会出现这个问题,但需要确认所配置的MAC地址是否与硬件实际的MAC地址一致。如果不匹配,可以在`eth_init(bd_t*bd)`函数中的`set_node_address`部分进行调整,确保读取正确的MAC地址并正确赋值给`bd->bi_enetaddr`。 2. **链接问题**:在初始化过程中,可能会看到“could not establish link”的错误,并且网卡可能延迟响应。这个错误可能源于`int eth_init(bd_t*bd)`函数的代码,特别是初始化过程中的某些步骤未能正确处理,如初始化时的延迟或者数据通信问题。为解决这个问题,需要仔细检查这部分代码,可能需要对`read_srom_word(i)`和`is_zero_ether_addr()`等函数的调用进行优化,确保网卡能正确地初始化和建立连接。 本文档提供了在特定硬件上移植和调试DM9000驱动程序的详细步骤,包括配置文件修改、编译流程以及遇到问题时的故障排查和修复建议。开发者需要根据其硬件的具体情况,如基地址和MAC地址,调整相关的代码配置,以确保驱动程序的正常工作。