[dpdk-dev] [PATCH v6 07/19] net/ngbe: add HW initialization

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Jul 2 18:08:35 CEST 2021


On 6/17/21 1:59 PM, Jiawen Wu wrote:
> Initialize the hardware by resetting the hardware in base code.
> 
> Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>

[snip]

> diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
> index c779c46dd5..31d4dda976 100644
> --- a/drivers/net/ngbe/ngbe_ethdev.c
> +++ b/drivers/net/ngbe/ngbe_ethdev.c
> @@ -60,6 +60,7 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>  {
>  	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>  	struct ngbe_hw *hw = ngbe_dev_hw(eth_dev);
> +	const struct rte_memzone *mz;
>  	int err;
>  
>  	PMD_INIT_FUNC_TRACE();
> @@ -76,6 +77,15 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>  	ngbe_map_device_id(hw);
>  	hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
>  
> +	/* Reserve memory for interrupt status block */
> +	mz = rte_eth_dma_zone_reserve(eth_dev, "ngbe_driver", -1,
> +		NGBE_ISB_SIZE, NGBE_ALIGN, SOCKET_ID_ANY);
> +	if (mz == NULL)
> +		return -ENOMEM;
> +
> +	hw->isb_dma = TMZ_PADDR(mz);
> +	hw->isb_mem = TMZ_VADDR(mz);
> +
>  	/* Initialize the shared code (base driver) */
>  	err = ngbe_init_shared_code(hw);
>  	if (err != 0) {
> @@ -99,6 +109,13 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>  		return -EIO;
>  	}
>  
> +	err = hw->mac.init_hw(hw);
> +

Please, remove the empty line to avoid logical separation
of the operation and its result check.

> +	if (err != 0) {
> +		PMD_INIT_LOG(ERR, "Hardware Initialization Failure: %d", err);
> +		return -EIO;
> +	}
> +
>  	return 0;
>  }
>  
> 



More information about the dev mailing list