[dpdk-dev] [PATCH v2 08/10] net/bnxt: add FW status location structure

Ferruh Yigit ferruh.yigit at intel.com
Tue Apr 21 23:05:42 CEST 2020


On 4/21/2020 9:07 PM, Ajit Khaparde wrote:
> From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
> 
> Code using this change will be added in next patch.

It can be better to merge this patch to next one, where it uses this new struct.

> 
> Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> ---
>  drivers/net/bnxt/hsi_struct_def_dpdk.h | 49 ++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/drivers/net/bnxt/hsi_struct_def_dpdk.h b/drivers/net/bnxt/hsi_struct_def_dpdk.h
> index da22b6249..fe18686f8 100644
> --- a/drivers/net/bnxt/hsi_struct_def_dpdk.h
> +++ b/drivers/net/bnxt/hsi_struct_def_dpdk.h
> @@ -38622,4 +38622,53 @@ struct hwrm_cfa_counter_qstats_output {
>  	uint8_t	valid;
>  } __rte_packed;
>  
> +/*
> + * This structure is fixed at the beginning of the ChiMP SRAM (GRC
> + * offset: 0x31001F0). Host software is expected to read from this
> + * location for a defined signature. If it exists, the software can
> + * assume the presence of this structure and the validity of the
> + * FW_STATUS location in the next field.
> + */
> +/* hcomm_status (size:64b/8B) */
> +struct hcomm_status {
> +	uint32_t	sig_ver;
> +	/*
> +	 * This field defines the version of the structure. The latest
> +	 * version value is 1.
> +	 */
> +	#define HCOMM_STATUS_VER_MASK		UINT32_C(0xff)
> +	#define HCOMM_STATUS_VER_SFT		0
> +	#define HCOMM_STATUS_VER_LATEST		UINT32_C(0x1)
> +	#define HCOMM_STATUS_VER_LAST		HCOMM_STATUS_VER_LATEST
> +	/*
> +	 * This field is to store the signature value to indicate the
> +	 * presence of the structure.
> +	 */
> +	#define HCOMM_STATUS_SIGNATURE_MASK	UINT32_C(0xffffff00)
> +	#define HCOMM_STATUS_SIGNATURE_SFT	8
> +	#define HCOMM_STATUS_SIGNATURE_VAL	(UINT32_C(0x484353) << 8)
> +	#define HCOMM_STATUS_SIGNATURE_LAST	HCOMM_STATUS_SIGNATURE_VAL
> +	uint32_t	fw_status_loc;
> +	#define HCOMM_STATUS_TRUE_ADDR_SPACE_MASK	UINT32_C(0x3)
> +	#define HCOMM_STATUS_TRUE_ADDR_SPACE_SFT	0
> +	/* PCIE configuration space */
> +	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_PCIE_CFG	UINT32_C(0x0)
> +	/* GRC space */
> +	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_GRC	UINT32_C(0x1)
> +	/* BAR0 space */
> +	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR0	UINT32_C(0x2)
> +	/* BAR1 space */
> +	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1	UINT32_C(0x3)
> +	#define HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_LAST	\
> +		HCOMM_STATUS_FW_STATUS_LOC_ADDR_SPACE_BAR1
> +	/*
> +	 * This offset where the fw_status register is located. The value
> +	 * is generally 4-byte aligned.
> +	 */
> +	#define HCOMM_STATUS_TRUE_OFFSET_MASK		UINT32_C(0xfffffffc)
> +	#define HCOMM_STATUS_TRUE_OFFSET_SFT		2
> +} __attribute__((packed));

Can you please prefer '__rte_packed' instead of the '__attribute__((packed))'?
If you recognized I have updated all the occurrences in next-net already while
rebasing on top of main repo. But please send new patches according it.


More information about the dev mailing list