stmmac描述符的结构和初始化
stmmac 描述符(Descriptors)
stmmac的描述符有兩個個模式,分別是ring模式和chain模式,根據(jù)特性的不同支持,描述符又有以下3個形式norm、Alternate 、 Enhanced。下面主要講下ring模式下的Enhanced描述符結(jié)構(gòu),以及比較重要的位。stmmac的收發(fā)的描述符相同位的含義有些差別,所以我們分開分析下描述符的初始化
? 0.描述符幾個關(guān)鍵要素
-
OWN,用來表示描述符的狀態(tài),相當于Intel網(wǎng)卡里的DD位
-
buf地址,指明網(wǎng)卡將收到的數(shù)據(jù)包放到哪里
-
狀態(tài)信息
術(shù)語
OWN:當此位置位時,表明這個描述符是屬于DMA的,DMA可以訪問。在host設置好接收、發(fā)送描述符后把OWN置位,DMA會自動的把收到的描述符放到描述符指定的地址并把OWN復位,表示數(shù)據(jù)包以及放到host的內(nèi)存了,此時host可以進行包處理。
ring:是指描述符在內(nèi)存中的排布,ring模式所有的描述符都在連續(xù)的物理內(nèi)存上
chain :是指描述符在內(nèi)存中的排布,chain模式下描述符地址不再連續(xù),下一個描述符的物理地址由描述符中的DES3指明
Receive Descriptor
接收描述符的結(jié)構(gòu)如下圖。如果沒有開啟extend status和timestamp則只需要關(guān)注DES0~DES3,此時描述符大小為16Byte
對于接收描述符的初始化以下步驟是必要的
Transmit Descriptor
發(fā)送描述符的結(jié)構(gòu)如下圖
對于發(fā)送描述符的初始化只需要將OWN位復位即可,下面講下要發(fā)包時對描述符的初始化
注意
以上填入DES2的物理地址需要是32位的物理地址
總結(jié)
以上是生活随笔為你收集整理的stmmac描述符的结构和初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视觉SLAM十四讲学习记录 第三讲
- 下一篇: vscode代码跳转