[03/21] net/ixgbe/base: hange flow for "Apply Update" command
Checks
Commit Message
For the "Apply Update" command the firmware does not
given an response. For this command, success should
be return. Based on information at EAS.
Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
---
drivers/net/ixgbe/base/ixgbe_common.c | 9 ++++++++-
drivers/net/ixgbe/base/ixgbe_type.h | 12 ++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
Comments
On 6/12/2020 4:23 AM, Guinan Sun wrote:
> For the "Apply Update" command the firmware does not
> given an response. For this command, success should
> be return. Based on information at EAS.
>
> Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
> Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
<...>
> diff --git a/drivers/net/ixgbe/base/ixgbe_type.h b/drivers/net/ixgbe/base/ixgbe_type.h
> index 0470b1dfc..33ca659cd 100644
> --- a/drivers/net/ixgbe/base/ixgbe_type.h
> +++ b/drivers/net/ixgbe/base/ixgbe_type.h
> @@ -4366,4 +4366,16 @@ struct ixgbe_hw {
> #define IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD \
> (0x1F << IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD_SHIFT)
>
> +/* Code Command (Flash I/F Interface) */
> +#define IXGBE_HOST_INTERFACE_FLASH_READ_CMD 0x30
> +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD 0x31
> +#define IXGBE_HOST_INTERFACE_FLASH_WRITE_CMD 0x32
> +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_WRITE_CMD 0x33
> +#define IXGBE_HOST_INTERFACE_FLASH_MODULE_UPDATE_CMD 0x34
> +#define IXGBE_HOST_INTERFACE_FLASH_BLOCK_EREASE_CMD 0x35
> +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_DUMP_CMD 0x36
> +#define IXGBE_HOST_INTERFACE_FLASH_INFO_CMD 0x37
> +#define IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD 0x38
> +#define IXGBE_HOST_INTERFACE_MASK_CMD 0x000000FF
> +
> #endif /* _IXGBE_TYPE_H_ */
>
Previous patch uses these commands in a hardcoded way, since we are adding
defines, why not them in the previous patch so we can use the macros in previous
patch?
Hi Ferruh
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, June 22, 2020 7:59 PM
> To: Sun, GuinanX <guinanx.sun@intel.com>; dev@dpdk.org
> Cc: Mateusz Kowalski <mateusz.kowalski@intel.com>
> Subject: Re: [dpdk-dev] [PATCH 03/21] net/ixgbe/base: hange flow for "Apply
> Update" command
>
> On 6/12/2020 4:23 AM, Guinan Sun wrote:
> > For the "Apply Update" command the firmware does not given an
> > response. For this command, success should be return. Based on
> > information at EAS.
> >
> > Signed-off-by: Mateusz Kowalski <mateusz.kowalski@intel.com>
> > Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
>
> <...>
>
> > diff --git a/drivers/net/ixgbe/base/ixgbe_type.h
> > b/drivers/net/ixgbe/base/ixgbe_type.h
> > index 0470b1dfc..33ca659cd 100644
> > --- a/drivers/net/ixgbe/base/ixgbe_type.h
> > +++ b/drivers/net/ixgbe/base/ixgbe_type.h
> > @@ -4366,4 +4366,16 @@ struct ixgbe_hw {
> > #define IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD \
> > (0x1F <<
> IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD_SHIFT)
> >
> > +/* Code Command (Flash I/F Interface) */
> > +#define IXGBE_HOST_INTERFACE_FLASH_READ_CMD 0x30
> > +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD
> 0x31
> > +#define IXGBE_HOST_INTERFACE_FLASH_WRITE_CMD
> 0x32
> > +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_WRITE_CMD
> 0x33
> > +#define IXGBE_HOST_INTERFACE_FLASH_MODULE_UPDATE_CMD
> 0x34
> > +#define IXGBE_HOST_INTERFACE_FLASH_BLOCK_EREASE_CMD
> 0x35
> > +#define IXGBE_HOST_INTERFACE_SHADOW_RAM_DUMP_CMD
> 0x36
> > +#define IXGBE_HOST_INTERFACE_FLASH_INFO_CMD 0x37
> > +#define IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD
> 0x38
> > +#define IXGBE_HOST_INTERFACE_MASK_CMD
> 0x000000FF
> > +
> > #endif /* _IXGBE_TYPE_H_ */
> >
>
> Previous patch uses these commands in a hardcoded way, since we are adding
> defines, why not them in the previous patch so we can use the macros in
> previous patch?
I agree with you.
V2 patch we will split this patch into two parts.
The part about macrow will be merged into the previous patch.
@@ -4584,11 +4584,18 @@ s32 ixgbe_hic_unlocked(struct ixgbe_hw *hw, u32 *buffer, u32 length,
msec_delay(1);
}
+ /* For each command except "Apply Update" perform
+ * status checks in the HICR registry.
+ */
+ if ((buffer[0] & IXGBE_HOST_INTERFACE_MASK_CMD) ==
+ IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD)
+ return IXGBE_SUCCESS;
+
/* Check command completion */
if ((timeout && i == timeout) ||
!(IXGBE_READ_REG(hw, IXGBE_HICR) & IXGBE_HICR_SV)) {
ERROR_REPORT1(IXGBE_ERROR_CAUTION,
- "Command has failed with no status valid.\n");
+ "Command has failed with no status valid.\n");
return IXGBE_ERR_HOST_INTERFACE_COMMAND;
}
@@ -4366,4 +4366,16 @@ struct ixgbe_hw {
#define IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD \
(0x1F << IXGBE_NW_MNG_IF_SEL_MDIO_PHY_ADD_SHIFT)
+/* Code Command (Flash I/F Interface) */
+#define IXGBE_HOST_INTERFACE_FLASH_READ_CMD 0x30
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_READ_CMD 0x31
+#define IXGBE_HOST_INTERFACE_FLASH_WRITE_CMD 0x32
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_WRITE_CMD 0x33
+#define IXGBE_HOST_INTERFACE_FLASH_MODULE_UPDATE_CMD 0x34
+#define IXGBE_HOST_INTERFACE_FLASH_BLOCK_EREASE_CMD 0x35
+#define IXGBE_HOST_INTERFACE_SHADOW_RAM_DUMP_CMD 0x36
+#define IXGBE_HOST_INTERFACE_FLASH_INFO_CMD 0x37
+#define IXGBE_HOST_INTERFACE_APPLY_UPDATE_CMD 0x38
+#define IXGBE_HOST_INTERFACE_MASK_CMD 0x000000FF
+
#endif /* _IXGBE_TYPE_H_ */