8139cp - miniport驅動開發

 

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寄存器。協議

相關文章
相關標籤/搜索