搞定DM9000CIEP网卡驱动,费时三天,发来共享

博主分享了在Linux环境下配置DM9000CIEP网卡驱动时遇到的问题及解决方案。关键在于芯片被探测为TYPE_DM9000B,需要在dm9000_open函数中增加初始化PHY的步骤,并在reset前加上适当的延时,以确保PHY的正确初始化。
摘要由CSDN通过智能技术生成

一块板子上使用了DM9000CIEP,48脚封装的,这个网卡与100脚的DM9000驱动不同,调试这个网卡破费了周折,终于搞定,总结如下:

 

1、这个芯片在DM9000_probe函数中探测为TYPE_DM9000B,这个需要注意,DM9000B的PHY初始化建议加个延时

2、在dm9000_open函数中,在dm9000_reset前需要增加下划线部分,以预先初始化内部PHY,因为reset函数并不初始化PHY,虽然其后的dm9000_init_dm9000(dev)中初始化PHY,但已没用。


未修改的代码具体如下:这个代码使用100脚的DM9000没问题,但在DM9000CIEP上不能用。

static int
dm9000_open(struct net_device *dev)
{
 board_info_t *db = netdev_priv(dev);
 unsigned long irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK;

 if (netif_msg_ifup(db))
  dev_dbg(db->dev, "enabling %s\n", dev->name);

 /* If there is no IRQ type specified, default to something that
  * may work, and tell the user that this is a problem */

 if (irqflags == IRQF_TRIGGER_NONE)
  dev_warn(db->dev, "WARNING: no IRQ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值