From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E754EA0524; Mon, 27 Jul 2020 06:32:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1C1AB1BFC8; Mon, 27 Jul 2020 06:32:31 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 908391C01 for ; Mon, 27 Jul 2020 06:32:28 +0200 (CEST) IronPort-SDR: vj3G5i/ROk/IWwx0r+6Go/kWK1orGZbTQ2kX4EbGiA3w2x9Rgh2YUsDtZNReO6lq0d83C9/77/ I83Bvile5srw== X-IronPort-AV: E=McAfee;i="6000,8403,9694"; a="138464589" X-IronPort-AV: E=Sophos;i="5.75,401,1589266800"; d="scan'208";a="138464589" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jul 2020 21:32:27 -0700 IronPort-SDR: CX+BzxUC/RX8vCD+8AYSdZ7u2Q3EiPtCe3s2xwnJt6d24V/rjQ8KWQtG4/Eu06gIvdaJ7rp9dp vHDontTF6h9w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,401,1589266800"; d="scan'208";a="327895982" Received: from jguo15x-mobl.ccr.corp.intel.com (HELO [10.67.68.176]) ([10.67.68.176]) by FMSMGA003.fm.intel.com with ESMTP; 26 Jul 2020 21:32:25 -0700 To: Guinan Sun , dev@dpdk.org Cc: Beilei Xing , Jaroslaw Ilgiewicz References: <20200721074000.30449-1-guinanx.sun@intel.com> <20200721074000.30449-8-guinanx.sun@intel.com> From: Jeff Guo Message-ID: Date: Mon, 27 Jul 2020 12:32:24 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200721074000.30449-8-guinanx.sun@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Subject: Re: [dpdk-dev] [PATCH 7/8] net/i40e/base: replace AQ command for NVM update X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Acked-by: Jeff Guo On 7/21/2020 3:39 PM, Guinan Sun wrote: > Add AQ command "NVM update in process" > to replace the original AQ command "NVM progress". > > Signed-off-by: Jaroslaw Ilgiewicz > Signed-off-by: Guinan Sun > --- > drivers/net/i40e/base/i40e_adminq_cmd.h | 12 +++++- > drivers/net/i40e/base/i40e_common.c | 53 +++++++++++++++---------- > drivers/net/i40e/base/i40e_prototype.h | 6 ++- > 3 files changed, 46 insertions(+), 25 deletions(-) > > diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h > index c7686b0d3..0766e69a8 100644 > --- a/drivers/net/i40e/base/i40e_adminq_cmd.h > +++ b/drivers/net/i40e/base/i40e_adminq_cmd.h > @@ -240,7 +240,7 @@ enum i40e_admin_queue_opc { > i40e_aqc_opc_nvm_update = 0x0703, > i40e_aqc_opc_nvm_config_read = 0x0704, > i40e_aqc_opc_nvm_config_write = 0x0705, > - i40e_aqc_opc_nvm_progress = 0x0706, > + i40e_aqc_opc_nvm_update_in_process = 0x0706, > i40e_aqc_opc_oem_post_update = 0x0720, > i40e_aqc_opc_thermal_sensor = 0x0721, > > @@ -2400,6 +2400,16 @@ struct i40e_aqc_nvm_config_data_feature { > > I40E_CHECK_STRUCT_LEN(0x6, i40e_aqc_nvm_config_data_feature); > > +/* NVM Update in Process (direct 0x0706) */ > +struct i40e_aqc_nvm_update_in_process { > + u8 command; > +#define I40E_AQ_UPDATE_FLOW_END 0x0 > +#define I40E_AQ_UPDATE_FLOW_START 0x1 > + u8 reserved[15]; > +}; > + > +I40E_CHECK_CMD_LENGTH(i40e_aqc_nvm_update_in_process); > + > struct i40e_aqc_nvm_config_data_immediate_field { > __le32 field_id; > __le32 field_value; > diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c > index 65317f6c6..6c6fb4de4 100644 > --- a/drivers/net/i40e/base/i40e_common.c > +++ b/drivers/net/i40e/base/i40e_common.c > @@ -3686,6 +3686,37 @@ enum i40e_status_code i40e_aq_write_nvm_config(struct i40e_hw *hw, > return status; > } > > +/** > + * i40e_aq_nvm_update_in_process > + * @hw: pointer to the hw struct > + * @update_flow_state: True indicates that update flow starts, false that ends > + * @cmd_details: pointer to command details structure or NULL > + * > + * Indicate NVM update in process. > + **/ > +enum i40e_status_code > +i40e_aq_nvm_update_in_process(struct i40e_hw *hw, > + bool update_flow_state, > + struct i40e_asq_cmd_details *cmd_details) > +{ > + struct i40e_aq_desc desc; > + struct i40e_aqc_nvm_update_in_process *cmd = > + (struct i40e_aqc_nvm_update_in_process *)&desc.params.raw; > + enum i40e_status_code status; > + > + i40e_fill_default_direct_cmd_desc(&desc, > + i40e_aqc_opc_nvm_update_in_process); > + > + cmd->command = I40E_AQ_UPDATE_FLOW_END; > + > + if (update_flow_state) > + cmd->command |= I40E_AQ_UPDATE_FLOW_START; > + > + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); > + > + return status; > +} > + > /** > * i40e_aq_oem_post_update - triggers an OEM specific flow after update > * @hw: pointer to the hw struct > @@ -4257,28 +4288,6 @@ enum i40e_status_code i40e_aq_rearrange_nvm(struct i40e_hw *hw, > return status; > } > > -/** > - * i40e_aq_nvm_progress > - * @hw: pointer to the hw struct > - * @progress: pointer to progress returned from AQ > - * @cmd_details: pointer to command details structure or NULL > - * > - * Gets progress of flash rearrangement process > - **/ > -enum i40e_status_code i40e_aq_nvm_progress(struct i40e_hw *hw, u8 *progress, > - struct i40e_asq_cmd_details *cmd_details) > -{ > - enum i40e_status_code status; > - struct i40e_aq_desc desc; > - > - DEBUGFUNC("i40e_aq_nvm_progress"); > - > - i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_nvm_progress); > - status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); > - *progress = desc.params.raw[0]; > - return status; > -} > - > /** > * i40e_aq_get_lldp_mib > * @hw: pointer to the hw struct > diff --git a/drivers/net/i40e/base/i40e_prototype.h b/drivers/net/i40e/base/i40e_prototype.h > index 91fa23491..9a89f3002 100644 > --- a/drivers/net/i40e/base/i40e_prototype.h > +++ b/drivers/net/i40e/base/i40e_prototype.h > @@ -254,8 +254,10 @@ enum i40e_status_code i40e_aq_update_nvm(struct i40e_hw *hw, u8 module_pointer, > enum i40e_status_code i40e_aq_rearrange_nvm(struct i40e_hw *hw, > u8 rearrange_nvm, > struct i40e_asq_cmd_details *cmd_details); > -enum i40e_status_code i40e_aq_nvm_progress(struct i40e_hw *hw, u8 *progress, > - struct i40e_asq_cmd_details *cmd_details); > +enum i40e_status_code > +i40e_aq_nvm_update_in_process(struct i40e_hw *hw, > + bool update_flow_state, > + struct i40e_asq_cmd_details *cmd_details); > enum i40e_status_code i40e_aq_get_lldp_mib(struct i40e_hw *hw, u8 bridge_type, > u8 mib_type, void *buff, u16 buff_size, > u16 *local_len, u16 *remote_len,