- 论坛徽章:
- 0
|
看到驱动代码里面对phy寄存器的操作
写的时候,
先把数据写到phy的数据寄存器,如WritePhyReg(phyBase, MacMiiData, data ); //MacMiiData = 0x18
然后再把地址写到phy的地址寄存器,如WritePhyReg(phyBase, MacMiiAddr, addr ); //MacMiiAddr = 0x14, addr = 0x0842
读的时候,
先把地址写到phy的地址寄存器,如WritePhyReg(phyBase, MacMiiAddr, addr ); //addr = 0x0840,和上面写的地址不一样了
然后再从phy的数据寄存器中读取数据,如data = ReadPhyReg(phyBase, MacMiiData);
我的问题,不管是读还是写,为什么每次都要写地址addr(读和写的地址不同)到phy的地址寄存器呢?
我感觉这里写地址到phy的地址寄存器没多大用处,省去这个步骤,写的时候直接把数据写到phy的数据寄存器,读的时候直接把数据从phy的数据寄存器里面读出来,这样做不是很好吗?
是和网卡芯片的有关系吗?
[ 本帖最后由 yangliu817 于 2008-11-21 09:28 编辑 ] |
|