Commit 43c89b16 authored by Anirudh Venkataramanan's avatar Anirudh Venkataramanan Committed by Jeff Kirsher

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: default avatarAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: default avatarTony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 6e7d0ba1
...@@ -1049,6 +1049,8 @@ struct ice_aqc_set_event_mask { ...@@ -1049,6 +1049,8 @@ struct ice_aqc_set_event_mask {
* NVM Update commands (indirect 0x0703) * NVM Update commands (indirect 0x0703)
*/ */
struct ice_aqc_nvm { struct ice_aqc_nvm {
__le16 offset_low;
u8 offset_high;
u8 cmd_flags; 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 */
...@@ -1058,10 +1060,9 @@ struct ice_aqc_nvm { ...@@ -1058,10 +1060,9 @@ 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;
}; };
......
...@@ -16,7 +16,7 @@ ...@@ -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, ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment