ice: Update NVM AQ command functions

This patch updates the NVM read/erase/update AQ commands to align with
the latest specification.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
Anirudh Venkataramanan 2018-04-16 09:55:36 -07:00 committed by Jeff Kirsher
parent 6e7d0ba1e5
commit 43c89b1642
2 changed files with 11 additions and 9 deletions

View File

@ -1049,7 +1049,9 @@ struct ice_aqc_set_event_mask {
* NVM Update commands (indirect 0x0703) * NVM Update commands (indirect 0x0703)
*/ */
struct ice_aqc_nvm { struct ice_aqc_nvm {
u8 cmd_flags; __le16 offset_low;
u8 offset_high;
u8 cmd_flags;
#define ICE_AQC_NVM_LAST_CMD BIT(0) #define ICE_AQC_NVM_LAST_CMD BIT(0)
#define ICE_AQC_NVM_PCIR_REQ BIT(0) /* Used by NVM Update reply */ #define ICE_AQC_NVM_PCIR_REQ BIT(0) /* Used by NVM Update reply */
#define ICE_AQC_NVM_PRESERVATION_S 1 #define ICE_AQC_NVM_PRESERVATION_S 1
@ -1058,12 +1060,11 @@ struct ice_aqc_nvm {
#define ICE_AQC_NVM_PRESERVE_ALL BIT(1) #define ICE_AQC_NVM_PRESERVE_ALL BIT(1)
#define ICE_AQC_NVM_PRESERVE_SELECTED (3 << CSR_AQ_NVM_PRESERVATION_S) #define ICE_AQC_NVM_PRESERVE_SELECTED (3 << CSR_AQ_NVM_PRESERVATION_S)
#define ICE_AQC_NVM_FLASH_ONLY BIT(7) #define ICE_AQC_NVM_FLASH_ONLY BIT(7)
u8 module_typeid; __le16 module_typeid;
__le16 length; __le16 length;
#define ICE_AQC_NVM_ERASE_LEN 0xFFFF #define ICE_AQC_NVM_ERASE_LEN 0xFFFF
__le32 offset; __le32 addr_high;
__le32 addr_high; __le32 addr_low;
__le32 addr_low;
}; };
/* Get/Set RSS key (indirect 0x0B04/0x0B02) */ /* Get/Set RSS key (indirect 0x0B04/0x0B02) */

View File

@ -16,7 +16,7 @@
* Read the NVM using the admin queue commands (0x0701) * Read the NVM using the admin queue commands (0x0701)
*/ */
static enum ice_status static enum ice_status
ice_aq_read_nvm(struct ice_hw *hw, u8 module_typeid, u32 offset, u16 length, ice_aq_read_nvm(struct ice_hw *hw, u16 module_typeid, u32 offset, u16 length,
void *data, bool last_command, struct ice_sq_cd *cd) void *data, bool last_command, struct ice_sq_cd *cd)
{ {
struct ice_aq_desc desc; struct ice_aq_desc desc;
@ -33,8 +33,9 @@ ice_aq_read_nvm(struct ice_hw *hw, u8 module_typeid, u32 offset, u16 length,
/* If this is the last command in a series, set the proper flag. */ /* If this is the last command in a series, set the proper flag. */
if (last_command) if (last_command)
cmd->cmd_flags |= ICE_AQC_NVM_LAST_CMD; cmd->cmd_flags |= ICE_AQC_NVM_LAST_CMD;
cmd->module_typeid = module_typeid; cmd->module_typeid = cpu_to_le16(module_typeid);
cmd->offset = cpu_to_le32(offset); cmd->offset_low = cpu_to_le16(offset & 0xFFFF);
cmd->offset_high = (offset >> 16) & 0xFF;
cmd->length = cpu_to_le16(length); cmd->length = cpu_to_le16(length);
return ice_aq_send_cmd(hw, &desc, data, length, cd); return ice_aq_send_cmd(hw, &desc, data, length, cd);