20111017版:ide
大包收发数据无校验错误,须要进一步测试验证。测试
20111013版:spa
已加入了完整的Phy驱动(DP83640),目前收发OK,而且1588服务已经能够精确对时(可控制在30ns范围内),大包收发问题仍待解决。ip
2011-08-16it
目前8139 miniport驱动已经实现了C+模式的小包通讯(Ping通了),关键要注意RxInt里面IndicateReceivePacket和SET_PACKET_STATUS的顺序,SET_PACKET_STATUS要在前面,不然协议层接受报文会有问题,这些在DDK里面都没有提到的,总之icmp报文通了,哈哈,下一步要实现大包的处理,大包的DMA发送将不能再用packet拷贝,这样会影响效率,要实现零拷贝,直接映射(注意cache的问题)class
2011-09-07效率
目前协议层驱动已于minoport驱动绑定,而且,协议层驱动和Miniport驱动均已经收到1588报文,在这里要强调一下链路层加入多播组的问题。通信
只有将链路层加入1588多播组,才能收到1588链路层报文,而且须要设置协议层驱动的包过滤规则(OID_GEN_CURRENT_PACKET_FILTER),以及协议层驱动的多播组地址表(OID_802_3_MULTICAST_LIST),不然即使miniport驱动收到了多播报文,向上提交后也会被协议层驱动丢弃,到时候根本截获不到任何1588报文。数据
固然miniport驱动在接收到链路层多播地址表后,也要设置相应的MAR0、MAR1寄存器。协议