#
5c206086 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add link state operations
Adds dev_ops to set link Up or Down as appropriate. Uses the bnxt_set_hwrm_link_config() API added previously.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadc
net/bnxt: add link state operations
Adds dev_ops to set link Up or Down as appropriate. Uses the bnxt_set_hwrm_link_config() API added previously.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
778b759b |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add MAC address
This patch adds dev_ops to Add/Remove MAC addresses. These use the bnxt_hwrm_set_filter() defined previously
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Sign
net/bnxt: add MAC address
This patch adds dev_ops to Add/Remove MAC addresses. These use the bnxt_hwrm_set_filter() defined previously
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
89307495 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: free memory in close operation
This patch adds code to free all resources except the one corresponding to HWRM, which are required to notify the HWRM that the driver is unloaded (these are
net/bnxt: free memory in close operation
This patch adds code to free all resources except the one corresponding to HWRM, which are required to notify the HWRM that the driver is unloaded (these are freed in uninit()).
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
1b488241 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add multicast
This patch adds dev_ops to enable/disable multicast traffic. Uses the bnxt_hwrm_cfa_l2_set_rx_mask() API added earlier.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.
net/bnxt: add multicast
This patch adds dev_ops to enable/disable multicast traffic. Uses the bnxt_hwrm_cfa_l2_set_rx_mask() API added earlier.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
aeafecd1 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add promiscuous mode
This patch adds the promiscuous mode enable and disable dev_ops. Uses the bnxt_hwrm_cfa_l2_set_rx_mask() API added in an earlier commit.
Signed-off-by: Ajit Khaparde
net/bnxt: add promiscuous mode
This patch adds the promiscuous mode enable and disable dev_ops. Uses the bnxt_hwrm_cfa_l2_set_rx_mask() API added in an earlier commit.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
c09f57b4 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add start/stop/link update operations
This patch adds code to add the start, stop and link update dev_ops.
Also adds wrapper functions like bnxt_init_chip(), bnxt_init_nic(), bnxt_alloc_m
net/bnxt: add start/stop/link update operations
This patch adds code to add the start, stop and link update dev_ops.
Also adds wrapper functions like bnxt_init_chip(), bnxt_init_nic(), bnxt_alloc_mem(), bnxt_free_mem()
The BNXT driver will now minimally pass traffic with testpmd.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
2eb53b13 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add initial Rx code
This patch adds initial implementation of rx_pkt_burst() function for Rx. bnxt_recv_pkts() is the top level function for doing Rx.
This patch also adds code to allocat
net/bnxt: add initial Rx code
This patch adds initial implementation of rx_pkt_burst() function for Rx. bnxt_recv_pkts() is the top level function for doing Rx.
This patch also adds code to allocate rings in the ASIC.
For each Rx queue allocated in the PMD driver, a corresponding ring in hardware will be created. Every time a frame is received a Rx ring is selected based on the hardware configuration like RSS, MAC or VLAN, COS and such. The hardware uses a completion ring to indicate the availability of a packet.
This patch also brings in functions like bnxt_init_one_rx_ring() bnxt_init_rx_ring_struct() which initializes various structures before a Rx can begin.
bnxt_init_rxbds() initializes the Rx Buffer Descriptors while bnxt_alloc_rx_data() allocates a buffer in the host to receive the incoming packet.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
6eb3cc22 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add initial Tx code
Initial implementation of tx_pkt_burst for transmit. bnxt_xmit_pkts() is the top level function that is called during Tx.
bnxt_handle_tx_cp() is used to check and proc
net/bnxt: add initial Tx code
Initial implementation of tx_pkt_burst for transmit. bnxt_xmit_pkts() is the top level function that is called during Tx.
bnxt_handle_tx_cp() is used to check and process the Tx completions generated for the Tx Buffer Descriptors sent by the hardware.
This patch also adds code to allocate rings in the hardware. For each Tx queue allocated in the PMD driver, a corresponding ring in hardware will be created. Every time a Tx request is initiated via the bnxt_xmit_pkts() call, a Buffer Descriptor is created and is sent to the hardware via the associated Tx ring.
On completing the Tx operation, the hardware will generates the status in the form of a completion. This completion is processed by the bnxt_handle_tx_cp() function.
Functions like bnxt_init_tx_ring_struct() and bnxt_init_one_tx_ring() are used to initialize various members of the structure before starting Tx operations.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
57d5e5bc |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add statistics
Add the bnxt_stats_get_op() and bnxt_stats_reset_op() dev_ops to get and reset statistics. It also brings in the associated HWRM calls to handle the requests appropriately.
net/bnxt: add statistics
Add the bnxt_stats_get_op() and bnxt_stats_reset_op() dev_ops to get and reset statistics. It also brings in the associated HWRM calls to handle the requests appropriately.
We also have the bnxt_free_stats() function which will be used in the follow on patches to free the memory allocated by the driver for statistics.
New HWRM calls: bnxt_hwrm_stat_clear: This command clears statistics of a context
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
6133f207 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add Rx queue create/destroy
In this patch we are adding the bnxt_rx_queue_setup_op() and bnxt_rx_queue_release_op() functions. These will be tied to the rx_queue_setup and rx_queue_release
net/bnxt: add Rx queue create/destroy
In this patch we are adding the bnxt_rx_queue_setup_op() and bnxt_rx_queue_release_op() functions. These will be tied to the rx_queue_setup and rx_queue_release dev_ops in a subsequent patch. In these functions we allocate/free memory for the RX queues.
This still requires support to create a RX ring in the ASIC which will be completed in a future commit. Each Rx queue created via the rx_queue_setup dev_op will have an associated Rx ring in the hardware.
The Rx logic in the hardware picks a Rx ring for each Rx frame received by the hardware depending on the properties like RSS, MAC and VLAN settings configured in the hardware. These packets in the end arrive on the Rx queue corresponding to the Rx ring in the hardware.
We are also adding some functions like bnxt_mq_rx_configure() bnxt_free_rx_mbufs() and bnxt_free_rxq_stats() which will be used in subsequent patches.
We are also adding hwrm_vnic_rss_cfg_* structures, which will be used in subsequent patches to enable RSS configuration.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
51c87eba |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add Tx queue create/destroy
In this patch we are adding the bnxt_tx_queue_setup_op() and bnxt_tx_queue_release_op() functions. These will be tied to the tx_queue_setup and tx_queue_release
net/bnxt: add Tx queue create/destroy
In this patch we are adding the bnxt_tx_queue_setup_op() and bnxt_tx_queue_release_op() functions. These will be tied to the tx_queue_setup and tx_queue_release dev_ops in a subsequent patch. In these functions we allocate/free memory for the TX queues.
This still requires support to create a TX ring in the ASIC which will be completed in a future commit. Each Tx queue created via the tx_queue_setup dev_op will have an associated Tx ring in the hardware.
A Tx request coming on the Tx queue gets sent to the corresponding Tx ring in the ASIC for subsequent transmission.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
1d0704f4 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add device configure operation
The dev_configure_op function calls bnxt_set_hwrm_link_config() to setup the PHY. This calls the new bnxt_parse_eth_link_*() functions to translate from th
net/bnxt: add device configure operation
The dev_configure_op function calls bnxt_set_hwrm_link_config() to setup the PHY. This calls the new bnxt_parse_eth_link_*() functions to translate from the DPDK macro values to those used by HWRM calls, then calls bnxt_hwrm_port_phy_cfg() to issue the HWRM call.
New HWRM calls: bnxt_hwrm_port_phy_cfg: This command configures the PHY device for the port.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
0a6d2a72 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: get device infos
Gets device info from the bp structure filled in the init() function.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@
net/bnxt: get device infos
Gets device info from the bp structure filled in the init() function.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
beb3087f |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add driver register/unregister
Move init() cleanup into uninit() function Fix .dev_private_size
New HWRM calls: bnxt_hwrm_func_driver_register: This command is used by the function drive
net/bnxt: add driver register/unregister
Move init() cleanup into uninit() function Fix .dev_private_size
New HWRM calls: bnxt_hwrm_func_driver_register: This command is used by the function driver to register its information with the HWRM.
bnxt_hwrm_func_driver_unregister: This command is used by the function driver to unregister with the HWRM.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
804e746c |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add hardware resource manager init code
Start adding support to use the HWRM API. Hardware Resource Manager or HWRM in short, is a set of API provided by the firmware running in the ASIC t
net/bnxt: add hardware resource manager init code
Start adding support to use the HWRM API. Hardware Resource Manager or HWRM in short, is a set of API provided by the firmware running in the ASIC to manage the various resources.
Initial commit just performs necessary HWRM queries for init, then fails as before.
Now that struct bnxt is non-zero size, we can set dev_private_size correctly.
The used HWRM calls so far: bnxt_hwrm_func_qcaps: This command returns capabilities of a function.
bnxt_hwrm_ver_get: This function is called by a driver to determine the HWRM interface version supported by the HWRM firmware, the version of HWRM firmware implementation, the name of HWRM firmware, the versions of other embedded firmwares, and the names of other embedded firmwares, etc. Gets the firmware version and interface specifications. Returns an error if the firmware on the device is not supported by the driver and ensures the response space is large enough for the largest possible response.
bnxt_hwrm_queue_qportcfg: This function is called by a driver to query queue configuration of a port.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com>
show more ...
|
#
35226814 |
| 15-Jun-2016 |
Ajit Khaparde <ajit.khaparde@broadcom.com> |
net/bnxt: add driver for Broadcom NetXtreme-C devices
This patch adds the initial skeleton for bnxt driver along with the nic guide, and ties the driver into the build system. At this point, the dri
net/bnxt: add driver for Broadcom NetXtreme-C devices
This patch adds the initial skeleton for bnxt driver along with the nic guide, and ties the driver into the build system. At this point, the driver simply fails init.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com> Reviewed-by: David Christensen <david.christensen@broadcom.com> [Release Note Addition] Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|