[dpdk-dev] ixgbe: support X540 VF

Message ID 20141209083724.1a6872ac@urahara (mailing list archive)
State Accepted, archived
Headers

Commit Message

Stephen Hemminger Dec. 9, 2014, 4:37 p.m. UTC
Add missing setup for X540 MAC type when setting up VF.
Additional check exists in Linux driver but not in DPDK.

Signed-off-yb: Bill Hong <bhong@brocade.com> 
Signed-off-by: Stephen Hemminger <shemming@brocade.com>
  

Comments

Thomas Monjalon Dec. 10, 2014, 11:23 p.m. UTC | #1
2014-12-09 08:37, Stephen Hemminger:
> Add missing setup for X540 MAC type when setting up VF.
> Additional check exists in Linux driver but not in DPDK.
> 
> Signed-off-yb: Bill Hong <bhong@brocade.com> 
> Signed-off-by: Stephen Hemminger <shemming@brocade.com>
> 
> --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
> +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
> @@ -1911,7 +1911,8 @@ ixgbe_dev_tx_queue_setup(struct rte_eth_
>  	/*
>  	 * Modification to set VFTDT for virtual function if vf is detected
>  	 */
> -	if (hw->mac.type == ixgbe_mac_82599_vf)
> +	if (hw->mac.type == ixgbe_mac_82599_vf ||
> +	    hw->mac.type == ixgbe_mac_X540_vf)

What about X550? Should it be listed there?

>  		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_VFTDT(queue_idx));
>  	else
>  		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_TDT(txq->reg_idx));
> @@ -2198,7 +2199,8 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_
>  	/*
>  	 * Modified to setup VFRDT for Virtual Function
>  	 */
> -	if (hw->mac.type == ixgbe_mac_82599_vf) {
> +	if (hw->mac.type == ixgbe_mac_82599_vf ||
> +	    hw->mac.type == ixgbe_mac_X540_vf) {
>  		rxq->rdt_reg_addr =
>  			IXGBE_PCI_REG_ADDR(hw, IXGBE_VFRDT(queue_idx));
>  		rxq->rdh_reg_addr =

It appears to be a fix which is candidate for 1.8.0.

Thanks
  
Stephen Hemminger Dec. 10, 2014, 11:43 p.m. UTC | #2
On Thu, 11 Dec 2014 00:23:24 +0100
Thomas Monjalon <thomas.monjalon@6wind.com> wrote:

> 2014-12-09 08:37, Stephen Hemminger:
> > Add missing setup for X540 MAC type when setting up VF.
> > Additional check exists in Linux driver but not in DPDK.
> > 
> > Signed-off-yb: Bill Hong <bhong@brocade.com> 
> > Signed-off-by: Stephen Hemminger <shemming@brocade.com>
> > 
> > --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
> > +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
> > @@ -1911,7 +1911,8 @@ ixgbe_dev_tx_queue_setup(struct rte_eth_
> >  	/*
> >  	 * Modification to set VFTDT for virtual function if vf is detected
> >  	 */
> > -	if (hw->mac.type == ixgbe_mac_82599_vf)
> > +	if (hw->mac.type == ixgbe_mac_82599_vf ||
> > +	    hw->mac.type == ixgbe_mac_X540_vf)
> 
> What about X550? Should it be listed there?
> 
> >  		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_VFTDT(queue_idx));
> >  	else
> >  		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_TDT(txq->reg_idx));
> > @@ -2198,7 +2199,8 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_
> >  	/*
> >  	 * Modified to setup VFRDT for Virtual Function
> >  	 */
> > -	if (hw->mac.type == ixgbe_mac_82599_vf) {
> > +	if (hw->mac.type == ixgbe_mac_82599_vf ||
> > +	    hw->mac.type == ixgbe_mac_X540_vf) {
> >  		rxq->rdt_reg_addr =
> >  			IXGBE_PCI_REG_ADDR(hw, IXGBE_VFRDT(queue_idx));
> >  		rxq->rdh_reg_addr =
> 
> It appears to be a fix which is candidate for 1.8.0.
> 
> Thanks

Not sure, we didnt have X550 to test, and code for X550 is not in upstream
Linux kernel driver.
  
Thomas Monjalon Dec. 17, 2014, 12:03 a.m. UTC | #3
> Add missing setup for X540 MAC type when setting up VF.
> Additional check exists in Linux driver but not in DPDK.
> 
> Signed-off-yb: Bill Hong <bhong@brocade.com> 
> Signed-off-by: Stephen Hemminger <shemming@brocade.com>

Applied

Thanks
  

Patch

--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c	2014-12-08 09:26:18.150170081 -0800
@@ -1911,7 +1911,8 @@  ixgbe_dev_tx_queue_setup(struct rte_eth_
 	/*
 	 * Modification to set VFTDT for virtual function if vf is detected
 	 */
-	if (hw->mac.type == ixgbe_mac_82599_vf)
+	if (hw->mac.type == ixgbe_mac_82599_vf ||
+	    hw->mac.type == ixgbe_mac_X540_vf)
 		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_VFTDT(queue_idx));
 	else
 		txq->tdt_reg_addr = IXGBE_PCI_REG_ADDR(hw, IXGBE_TDT(txq->reg_idx));
@@ -2198,7 +2199,8 @@  ixgbe_dev_rx_queue_setup(struct rte_eth_
 	/*
 	 * Modified to setup VFRDT for Virtual Function
 	 */
-	if (hw->mac.type == ixgbe_mac_82599_vf) {
+	if (hw->mac.type == ixgbe_mac_82599_vf ||
+	    hw->mac.type == ixgbe_mac_X540_vf) {
 		rxq->rdt_reg_addr =
 			IXGBE_PCI_REG_ADDR(hw, IXGBE_VFRDT(queue_idx));
 		rxq->rdh_reg_addr =