开启82571EB/82572EI Multiple transmit queues

开启82571EB/82572EI Multiple transmit queues


82571EB/82572EI 是Intel生产的1000M以太网控制芯片, 支持双 RX/TX QUEUE, 在Linux中使用e1000e驱动提供支持. 因在一个特殊应用中需启用其multiple transmit queues支持, 而Linux e1000e驱动默认只启用了 RX QUEUE 0 & TX QUEUE 0. 没办法只能分析e1000e代码与82571EB/82572EI数据手册了, 不过发现其实e1000e驱动已对多对列进行了支持, 只是需要启用相关寄存器即可. 


以下是启用 82571EB/82572EI TX QUEUE 1的概要设置:

1. 启用TX多对列, 寄存器 TCTL.MULR 位为1b;
2. 设置寄存器 TXDCTL0[22], TXDCTL1[22] 位为1b;
3. 设置寄存器 TARC0[26, 24, 23] 与 TARC1[26, 24] 位为1b;
4. 设置寄存器 TARC0[25] 与 TARC1[25] 为1b;
5. 设置寄存器 TARC1[22] 为1b;
6. 设置寄存器 TARC1[28] 位为0b;
7. 设置TX描叙符环数据寄存器 TDLEN1, TDBAH1, TDBAL1, TDT1, TDH1
8. 启用TX1 Queue 1, TARC1[10]设置为1b;

9. 启用TX, TCTL[1]设置为1b;


参考:

82571EB/82572EI Datasheet.

PCIe* GbE Controllers Open Source Software Developer’s Manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值