From: Moritz Fischer <mdf@kernel.org>
To: richard.gong@linux.intel.com
Cc: mdf@kernel.org, trix@redhat.com, gregkh@linuxfoundation.org,
linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org,
Richard Gong <richard.gong@intel.com>
Subject: Re: [PATCHv5 3/7] firmware: stratix10-svc: extend SVC driver to get the firmware version
Date: Sun, 28 Mar 2021 13:52:39 -0700 [thread overview]
Message-ID: <YGDsl3VlIAnyJDzd@epycbox.lan> (raw)
In-Reply-To: <1612909233-13867-4-git-send-email-richard.gong@linux.intel.com>
On Tue, Feb 09, 2021 at 04:20:29PM -0600, richard.gong@linux.intel.com wrote:
> From: Richard Gong <richard.gong@intel.com>
>
> Extend Intel service layer driver to get the firmware version running at
> FPGA device. Therefore FPGA manager driver, one of Intel service layer
> driver's client, can decide whether to handle the newly added bitstream
> authentication function based on the retrieved firmware version.
>
> Signed-off-by: Richard Gong <richard.gong@intel.com>
Acked-by: Moritz Fischr <mdf@kernel.org>
> ---
> v5: no change
> v4: no change
> v3: new added, changes for getting firmware version
> ---
> drivers/firmware/stratix10-svc.c | 12 ++++++++++--
> include/linux/firmware/intel/stratix10-smc.h | 21 +++++++++++++++++++--
> include/linux/firmware/intel/stratix10-svc-client.h | 4 ++++
> 3 files changed, 33 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-svc.c
> index 3aa489d..1443bbd 100644
> --- a/drivers/firmware/stratix10-svc.c
> +++ b/drivers/firmware/stratix10-svc.c
> @@ -306,6 +306,7 @@ static void svc_thread_recv_status_ok(struct stratix10_svc_data *p_data,
> break;
> case COMMAND_RSU_RETRY:
> case COMMAND_RSU_MAX_RETRY:
> + case COMMAND_FIRMWARE_VERSION:
> cb_data->status = BIT(SVC_STATUS_OK);
> cb_data->kaddr1 = &res.a1;
> break;
> @@ -422,6 +423,11 @@ static int svc_normal_to_secure_thread(void *data)
> a1 = 0;
> a2 = 0;
> break;
> + case COMMAND_FIRMWARE_VERSION:
> + a0 = INTEL_SIP_SMC_FIRMWARE_VERSION;
> + a1 = 0;
> + a2 = 0;
> + break;
> default:
> pr_warn("it shouldn't happen\n");
> break;
> @@ -487,11 +493,13 @@ static int svc_normal_to_secure_thread(void *data)
>
> /*
> * be compatible with older version firmware which
> - * doesn't support RSU notify or retry
> + * doesn't support RSU notify, retry or bitstream
> + * authentication.
> */
> if ((pdata->command == COMMAND_RSU_RETRY) ||
> (pdata->command == COMMAND_RSU_MAX_RETRY) ||
> - (pdata->command == COMMAND_RSU_NOTIFY)) {
> + (pdata->command == COMMAND_RSU_NOTIFY) ||
> + (pdata->command == COMMAND_FIRMWARE_VERSION)) {
> cbdata->status =
> BIT(SVC_STATUS_NO_SUPPORT);
> cbdata->kaddr1 = NULL;
> diff --git a/include/linux/firmware/intel/stratix10-smc.h b/include/linux/firmware/intel/stratix10-smc.h
> index c3e5ab0..505fcca 100644
> --- a/include/linux/firmware/intel/stratix10-smc.h
> +++ b/include/linux/firmware/intel/stratix10-smc.h
> @@ -321,8 +321,6 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_CONFIG_COMPLETED_WRITE)
> #define INTEL_SIP_SMC_ECC_DBE \
> INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_ECC_DBE)
>
> -#endif
> -
> /**
> * Request INTEL_SIP_SMC_RSU_NOTIFY
> *
> @@ -404,3 +402,22 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_CONFIG_COMPLETED_WRITE)
> #define INTEL_SIP_SMC_FUNCID_RSU_MAX_RETRY 18
> #define INTEL_SIP_SMC_RSU_MAX_RETRY \
> INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_RSU_MAX_RETRY)
> +
> +/**
> + * Request INTEL_SIP_SMC_FIRMWARE_VERSION
> + *
> + * Sync call used to query the version of running firmware
> + *
> + * Call register usage:
> + * a0 INTEL_SIP_SMC_FIRMWARE_VERSION
> + * a1-a7 not used
> + *
> + * Return status:
> + * a0 INTEL_SIP_SMC_STATUS_OK or INTEL_SIP_SMC_STATUS_ERROR
> + * a1 running firmware version
> + */
> +#define INTEL_SIP_SMC_FUNCID_FIRMWARE_VERSION 31
> +#define INTEL_SIP_SMC_FIRMWARE_VERSION \
> + INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FIRMWARE_VERSION)
> +
> +#endif
> diff --git a/include/linux/firmware/intel/stratix10-svc-client.h b/include/linux/firmware/intel/stratix10-svc-client.h
> index fa9581d..193a2cf 100644
> --- a/include/linux/firmware/intel/stratix10-svc-client.h
> +++ b/include/linux/firmware/intel/stratix10-svc-client.h
> @@ -109,6 +109,9 @@ struct stratix10_svc_chan;
> *
> * @COMMAND_RSU_DCMF_VERSION: query firmware for the DCMF version, return status
> * is SVC_STATUS_OK or SVC_STATUS_ERROR
> + *
> + * @COMMAND_FIRMWARE_VERSION: query running firmware version, return status
> + * is SVC_STATUS_OK or SVC_STATUS_ERROR
> */
> enum stratix10_svc_command_code {
> COMMAND_NOOP = 0,
> @@ -122,6 +125,7 @@ enum stratix10_svc_command_code {
> COMMAND_RSU_RETRY,
> COMMAND_RSU_MAX_RETRY,
> COMMAND_RSU_DCMF_VERSION,
> + COMMAND_FIRMWARE_VERSION,
> };
>
> /**
> --
> 2.7.4
>
Thanks,
Moritz
next prev parent reply other threads:[~2021-03-28 20:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-09 22:20 [PATCHv5 0/7] Extend Intel service layer, FPGA manager and region richard.gong
2021-02-09 22:20 ` [PATCHv5 1/7] firmware: stratix10-svc: reset COMMAND_RECONFIG_FLAG_PARTIAL to 0 richard.gong
2021-02-13 15:44 ` Tom Rix
2021-02-15 14:41 ` Richard Gong
2021-02-15 14:32 ` Tom Rix
2021-03-18 16:57 ` Moritz Fischer
2021-02-09 22:20 ` [PATCHv5 2/7] firmware: stratix10-svc: add COMMAND_AUTHENTICATE_BITSTREAM flag richard.gong
2021-02-09 22:20 ` [PATCHv5 3/7] firmware: stratix10-svc: extend SVC driver to get the firmware version richard.gong
2021-03-28 20:52 ` Moritz Fischer [this message]
2021-02-09 22:20 ` [PATCHv5 4/7] fpga: fpga-mgr: add FPGA_MGR_BITSTREAM_AUTHENTICATE flag richard.gong
2021-02-09 22:20 ` [PATCHv5 5/7] fpga: of-fpga-region: add authenticate-fpga-config property richard.gong
2021-02-09 22:20 ` [PATCHv5 6/7] dt-bindings: fpga: " richard.gong
2021-02-09 22:20 ` [PATCHv5 7/7] fpga: stratix10-soc: extend driver for bitstream authentication richard.gong
2021-02-25 13:07 ` [PATCHv5 0/7] Extend Intel service layer, FPGA manager and region Gong, Richard
2021-02-25 13:28 ` Tom Rix
2021-02-25 16:58 ` Richard Gong
2021-03-19 23:22 ` Richard Gong
2021-03-20 14:35 ` Tom Rix
[not found] ` <MWHPR11MB0015516D86D02A0FE5423D6387669@MWHPR11MB0015.namprd11.prod.outlook.com>
2021-03-21 21:05 ` FW: " Richard Gong
2021-03-22 13:53 ` Tom Rix
2021-03-22 15:53 ` Richard Gong
2021-03-27 18:09 ` Moritz Fischer
2021-03-28 15:40 ` Tom Rix
2021-03-28 17:20 ` Moritz Fischer
2021-03-31 18:47 ` Russ Weight
2021-03-31 22:16 ` Moritz Fischer
2021-04-07 23:27 ` Russ Weight
2021-05-02 18:43 ` Moritz Fischer
2021-04-13 1:41 ` Richard Gong
2021-04-29 14:56 ` Richard Gong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YGDsl3VlIAnyJDzd@epycbox.lan \
--to=mdf@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=richard.gong@intel.com \
--cc=richard.gong@linux.intel.com \
--cc=trix@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).