免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1863 | 回复: 3
打印 上一主题 下一主题

[硬件及驱动] 关于e1000_configure_tx的疑问。。。 [复制链接]

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-22 08:50 |只看该作者 |倒序浏览
5可用积分

/**
* e1000_configure_tx - Configure 8254x Transmit Unit after Reset
* @adapter: board private structure
*
* Configure the Tx unit of the MAC after a reset.
**/

static void e1000_configure_tx(struct e1000_adapter *adapter)
{
        u64 tdba;
        struct e1000_hw *hw = &adapter->hw;
        u32 tdlen, tctl, tipg;
        u32 ipgr1, ipgr2;

        /* Setup the HW Tx Head and Tail descriptor pointers */

        switch (adapter->num_tx_queues) {
        case 1:
        default:
                tdba = adapter->tx_ring[0].dma;
                tdlen = adapter->tx_ring[0].count *
                        sizeof(struct e1000_tx_desc);
                ew32(TDLEN, tdlen);
                ew32(TDBAH, (tdba >> 32));
                ew32(TDBAL, (tdba & 0x00000000ffffffffULL));

                ew32(TDT, 0);
                ew32(TDH, 0);
                adapter->tx_ring[0].tdh = ((hw->mac_type >= e1000_82543) ? E1000_TDH : E1000_82542_TDH);
                adapter->tx_ring[0].tdt = ((hw->mac_type >= e1000_82543) ? E1000_TDT : E1000_82542_TDT)
;
                break;
        }

}

TDT/TDH寄存器和tdt/tdh字段到底是什么含义?请指点,谢谢!


论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2013-03-22 09:23 |只看该作者
刚看明白了:TDH和TDT之间是网卡接着需要处理的空间,next_to_clean和TDH是网卡已经处理完的空间。

TDH:
This register contains the head pointer for the transmit descriptor ring. It holds a value that is an
offset from the base, and indicates the in–progress descriptor.

TDT:
This register contains the tail pointer for the transmit descriptor ring. It holds a value that is an
offset from the base, and indicates the location beyond the last descriptor hardware can process.

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-03-22 11:21 |只看该作者

还是有点不明白,这些寄存器应该是基于ring的啊,怎么看代码好像是基于adapter的?

求助,谢谢!

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2013-03-26 22:04 |只看该作者
自己搞明白了,e1000就一个ring!无所谓基于adapter和ring了。

结贴!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP