DPDK patches and discussions
 help / color / mirror / Atom feed
From: Sergey Mironov <grrwlf@gmail.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH] igb_ethdev.c: complete switches for i211 NC
Date: Thu,  4 Sep 2014 12:35:11 +0400	[thread overview]
Message-ID: <1409819711-18718-1-git-send-email-grrwlf@gmail.com> (raw)

Hi! I have got an update for my "i212 problem". First of all, I found
that I have made a mistake. My controller is named i211, not i212 :)
Next, i211 controller is controlled by the lib_pmd_e1000 driver.
Unfortunately, looks like it's support is pure. For example,
igb_ethdev.c contains function eth_igb_infos_get() which should set
number of tx/rx queues supported by the hardware. It contains huge
[switch] but there is no i211 case! That is why I see zeros every time
I try to start this NC. Also, there are few other places which mention
i210, but not mention i211. I've attached a patch which adds necessary
i211 support, but I didn't check it enough to say it is totally
correct. For now I see that it just able to send and receive some
packets.

Could you please review/correct it?
---
 lib/librte_pmd_e1000/igb_ethdev.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/librte_pmd_e1000/igb_ethdev.c b/lib/librte_pmd_e1000/igb_ethdev.c
index f93a460..23e638d 100644
--- a/lib/librte_pmd_e1000/igb_ethdev.c
+++ b/lib/librte_pmd_e1000/igb_ethdev.c
@@ -689,7 +689,8 @@ eth_igb_start(struct rte_eth_dev *dev)
 	 * value of Write-Back Threshold registers.
 	 */
 	if ((hw->mac.type == e1000_82576) || (hw->mac.type == e1000_82580) ||
-		(hw->mac.type == e1000_i350) || (hw->mac.type == e1000_i210)) {
+		(hw->mac.type == e1000_i350) || (hw->mac.type == e1000_i210) ||
+    (hw->mac.type == e1000_i211)) {
 		uint32_t ivar;
 
 		/* Enable all RX & TX queues in the IVAR registers */
@@ -837,7 +838,7 @@ igb_get_rx_buffer_size(struct e1000_hw *hw)
 		rx_buf_size = (E1000_READ_REG(hw, E1000_RXPBS) & 0xf);
 		rx_buf_size = (uint32_t) e1000_rxpbs_adjust_82580(rx_buf_size);
 		rx_buf_size = (rx_buf_size << 10);
-	} else if (hw->mac.type == e1000_i210) {
+	} else if (hw->mac.type == e1000_i210 || hw->mac.type == e1000_i211) {
 		rx_buf_size = (E1000_READ_REG(hw, E1000_RXPBS) & 0x3f) << 10;
 	} else {
 		rx_buf_size = (E1000_READ_REG(hw, E1000_PBA) & 0xffff) << 10;
@@ -1179,6 +1180,12 @@ eth_igb_infos_get(struct rte_eth_dev *dev,
 		dev_info->max_vmdq_pools = 0;
 		break;
 
+	case e1000_i211:
+		dev_info->max_rx_queues = 2;
+		dev_info->max_tx_queues = 2;
+		dev_info->max_vmdq_pools = 0;
+		break;
+
 	case e1000_vfadapt:
 		dev_info->max_rx_queues = 2;
 		dev_info->max_tx_queues = 2;
-- 
1.8.4.3

             reply	other threads:[~2014-09-04  8:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04  8:35 Sergey Mironov [this message]
2014-09-10  1:28 ` Zhang, Helin
2014-09-24 17:38   ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1409819711-18718-1-git-send-email-grrwlf@gmail.com \
    --to=grrwlf@gmail.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).