[求助]8019网卡驱动
检查硬件的时候发现page0寄存器基本没有问题,但对page1的物理地址寄存器进行操作的时候发现不可读写,一直为0。
初始化代码如下:
int eth_init (bd_t * bd)
{
eth_reset ();
put_reg (RTL8019_COMMAND, RTL8019_PAGE0STOP);
put_reg (RTL8019_DATACONFIGURATION, 0x48);
put_reg (RTL8019_REMOTEBYTECOUNT0, 0x00);
put_reg (RTL8019_REMOTEBYTECOUNT1, 0x00);
put_reg (RTL8019_RECEIVECONFIGURATION, 0x00); /*00; */
put_reg (RTL8019_TRANSMITPAGE, RTL8019_TPSTART);
put_reg (RTL8019_TRANSMITCONFIGURATION, 0x02);
put_reg (RTL8019_PAGESTART, RTL8019_PSTART);
put_reg (RTL8019_BOUNDARY, RTL8019_PSTART);
put_reg (RTL8019_PAGESTOP, RTL8019_PSTOP);
put_reg (RTL8019_INTERRUPTSTATUS, 0xff);
put_reg (RTL8019_INTERRUPTMASK, 0x11); /*b; */
put_reg (RTL8019_COMMAND, RTL8019_PAGE1STOP);
put_reg (RTL8019_PHYSICALADDRESS0, bd-> bi_enetaddr[0]);
put_reg (RTL8019_PHYSICALADDRESS1, bd-> bi_enetaddr[1]);
put_reg (RTL8019_PHYSICALADDRESS2, bd-> bi_enetaddr[2]);
put_reg (RTL8019_PHYSICALADDRESS3, bd-> bi_enetaddr[3]);
put_reg (RTL8019_PHYSICALADDRESS4, bd-> bi_enetaddr[4]);
put_reg (RTL8019_PHYSICALADDRESS5, bd-> bi_enetaddr[5]);
put_reg (RTL8019_MULTIADDRESS0, 0x00);
put_reg (RTL8019_MULTIADDRESS1, 0x00);
put_reg (RTL8019_MULTIADDRESS2, 0x00);
put_reg (RTL8019_MULTIADDRESS3, 0x00);
put_reg (RTL8019_MULTIADDRESS4, 0x00);
put_reg (RTL8019_MULTIADDRESS5, 0x00);
put_reg (RTL8019_MULTIADDRESS6, 0x00);
put_reg (RTL8019_MULTIADDRESS7, 0x00);
put_reg (RTL8019_CURRENT, RTL8019_PSTART);
put_reg (RTL8019_COMMAND, RTL8019_PAGE0);
put_reg (RTL8019_TRANSMITCONFIGURATION, 0xe0); /*58; */
return 0;
}
在进行put_reg (RTL8019_PHYSICALADDRESS0, bd-> bi_enetaddr[0]);操作的时候发现写不进去。
不知道是什么原因。有哪位大侠能指点一下?
发表时间:2007年8月22日15:36:04