All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cristian Marussi <cristian.marussi@arm.com>
To: Peng Fan <peng.fan@nxp.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
	Cristian Marussi <cristian.marussi@arm.com>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	arm-scmi@vger.kernel.org, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/7] firmware: arm_scmi: imx: Support getting silicon info of MISC protocol
Date: Fri, 27 Jun 2025 14:11:16 +0100	[thread overview]
Message-ID: <aF6YdPc6z21XNhWQ@pluto> (raw)
In-Reply-To: <20250627-sm-misc-api-v1-v1-4-2b99481fe825@nxp.com>

On Fri, Jun 27, 2025 at 02:03:47PM +0800, Peng Fan wrote:
> MISC protocol supports getting the silicon information including revision
> number, part number and etc. Add the API for user to retrieve the
> information from SM.
> 
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  .../firmware/arm_scmi/vendors/imx/imx-sm-misc.c    | 34 ++++++++++++++++++++++
>  include/linux/scmi_imx_protocol.h                  |  8 +++++
>  2 files changed, 42 insertions(+)
> 
> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c b/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c
> index 8ce4bf92e6535af2f30d72a34717678613b35049..d5b24bc4d4ca6c19f4cddfaea6e9d9b32a4c92f7 100644
> --- a/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c
> +++ b/drivers/firmware/arm_scmi/vendors/imx/imx-sm-misc.c
> @@ -26,6 +26,7 @@ enum scmi_imx_misc_protocol_cmd {
>  	SCMI_IMX_MISC_CTRL_SET	= 0x3,
>  	SCMI_IMX_MISC_CTRL_GET	= 0x4,
>  	SCMI_IMX_MISC_DISCOVER_BUILDINFO = 0x6,
> +	SCMI_IMX_MISC_SI_INFO = 0xB,
>  	SCMI_IMX_MISC_CFG_INFO = 0xC,
>  	SCMI_IMX_MISC_CTRL_NOTIFY = 0x8,
>  };
> @@ -79,6 +80,13 @@ struct scmi_imx_misc_cfg_info_out {
>  	u8 cfgname[MISC_MAX_CFGNAME];
>  };
>  
> +struct scmi_imx_misc_si_info_out {
> +	__le32 deviceid;
> +	__le32 sirev;
> +	__le32 partnum;
> +	u8 siname[MISC_MAX_SINAME];
> +};
> +
>  static int scmi_imx_misc_attributes_get(const struct scmi_protocol_handle *ph,
>  					struct scmi_imx_misc_info *mi)
>  {
> @@ -335,12 +343,38 @@ static int scmi_imx_misc_cfg_info(const struct scmi_protocol_handle *ph,
>  	return ret;
>  }
>  
> +static int scmi_imx_misc_silicon_info(const struct scmi_protocol_handle *ph,
> +				      struct scmi_imx_misc_system_info *info)
> +{
> +	struct scmi_imx_misc_si_info_out *out;
> +	struct scmi_xfer *t;
> +	int ret;
> +
> +	ret = ph->xops->xfer_get_init(ph, SCMI_IMX_MISC_SI_INFO, 0, sizeof(*out), &t);
> +	if (ret)
> +		return ret;
> +
> +	ret = ph->xops->do_xfer(ph, t);
> +	if (!ret) {
> +		out = t->rx.buf;
> +		info->deviceid = le32_to_cpu(out->deviceid);
> +		info->sirev = le32_to_cpu(out->sirev);
> +		info->partnum = le32_to_cpu(out->partnum);
> +		strscpy(info->siname, out->siname, MISC_MAX_SINAME);
> +	}
> +
> +	ph->xops->xfer_put(ph, t);
> +
> +	return ret;
> +}
> +
>  static const struct scmi_imx_misc_proto_ops scmi_imx_misc_proto_ops = {
>  	.misc_cfg_info = scmi_imx_misc_cfg_info,
>  	.misc_ctrl_set = scmi_imx_misc_ctrl_set,
>  	.misc_ctrl_get = scmi_imx_misc_ctrl_get,
>  	.misc_ctrl_req_notify = scmi_imx_misc_ctrl_notify,
>  	.misc_discover_build_info = scmi_imx_discover_build_info,
> +	.misc_silicon_info = scmi_imx_misc_silicon_info,
>  };
>  
>  static int scmi_imx_misc_protocol_init(const struct scmi_protocol_handle *ph)
> diff --git a/include/linux/scmi_imx_protocol.h b/include/linux/scmi_imx_protocol.h
> index bb0c35b5d6705acddd6c83c31474482a2667b418..0e639dfb5d16e281e2ccf006a63694b316c431f4 100644
> --- a/include/linux/scmi_imx_protocol.h
> +++ b/include/linux/scmi_imx_protocol.h
> @@ -55,6 +55,7 @@ struct scmi_imx_misc_ctrl_notify_report {
>  #define MISC_MAX_BUILDDATE	16
>  #define MISC_MAX_BUILDTIME	16
>  #define MISC_MAX_CFGNAME	16
> +#define MISC_MAX_SINAME		16
>  
>  struct scmi_imx_misc_system_info {
>  	u32 buildnum;
> @@ -63,6 +64,11 @@ struct scmi_imx_misc_system_info {
>  	u8 time[MISC_MAX_BUILDTIME];
>  	u32 msel;
>  	u8 cfgname[MISC_MAX_CFGNAME];
> +	/* silicon */
> +	u32 deviceid;
> +	u32 sirev;
> +	u32 partnum;
> +	u8 siname[MISC_MAX_SINAME];
>  };

Same observation here...maybe embed a struct dedicated to this....BUT in
this case the silicon_info are NOT meant to change during a boot (and
even across a reboot really) so why a distinct command from build_info
since both infos has the same lifetime ? (I understand the quality of
the info returned is drastically different HW vs SW)

>  
>  struct scmi_imx_misc_proto_ops {
> @@ -76,6 +82,8 @@ struct scmi_imx_misc_proto_ops {
>  				    u32 ctrl_id, u32 evt_id, u32 flags);
>  	int (*misc_discover_build_info)(const struct scmi_protocol_handle *ph,
>  					struct scmi_imx_misc_system_info *info);
> +	int (*misc_silicon_info)(const struct scmi_protocol_handle *ph,
> +				 struct scmi_imx_misc_system_info *info);
>  };
>  
>  /* See LMM_ATTRIBUTES in imx95.rst */


Other than this, no strong opinion anyway.

Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>

Thanks,
Cristian

  reply	other threads:[~2025-06-27 13:11 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-27  6:03 [PATCH 0/7] firmware: arm_scmi: imx: Dump syslog and system_info Peng Fan
2025-06-27  6:03 ` [PATCH 1/7] firmware: arm_scmi: imx: Add documentation for MISC_BOARD_INFO Peng Fan
2025-06-27 12:46   ` Cristian Marussi
2025-06-30  2:45     ` Peng Fan
2025-07-01 15:10       ` Peng Fan
2025-07-02 15:21   ` Sudeep Holla
2025-07-04  4:53     ` Peng Fan
2025-06-27  6:03 ` [PATCH 2/7] firmware: arm_scmi: imx: Support discovering buildinfo of MISC protocol Peng Fan
2025-06-27 12:48   ` Cristian Marussi
2025-07-02 15:21   ` Sudeep Holla
2025-07-04  5:12     ` Peng Fan
2025-07-04  8:59       ` Sudeep Holla
2025-07-08 16:10         ` Peng Fan
2025-07-08 15:38           ` Sudeep Holla
2025-06-27  6:03 ` [PATCH 3/7] firmware: arm_scmi: imx: Support getting cfg info " Peng Fan
2025-06-27 13:06   ` Cristian Marussi
2025-07-02 15:21   ` Sudeep Holla
2025-07-04 10:07     ` Peng Fan
2025-07-04  9:02       ` Sudeep Holla
2025-07-04 10:39         ` Peng Fan
2025-07-04 10:51           ` Sudeep Holla
2025-06-27  6:03 ` [PATCH 4/7] firmware: arm_scmi: imx: Support getting silicon " Peng Fan
2025-06-27 13:11   ` Cristian Marussi [this message]
2025-07-02 15:22   ` Sudeep Holla
2025-07-04 10:20     ` Peng Fan
2025-07-04  9:32       ` Sudeep Holla
2025-06-27  6:03 ` [PATCH 5/7] firmware: arm_scmi: imx: Support getting syslog " Peng Fan
2025-06-27 13:44   ` Cristian Marussi
2025-06-30  3:09     ` Peng Fan
2025-07-02 15:22   ` Sudeep Holla
2025-07-04 10:23     ` Peng Fan
2025-07-04  9:44       ` Sudeep Holla
2025-06-27  6:03 ` [PATCH 6/7] firmware: arm_scmi: imx: Support getting board info " Peng Fan
2025-06-27 13:45   ` Cristian Marussi
2025-06-30  2:50     ` Peng Fan
2025-06-27  6:03 ` [PATCH 7/7] firmware: imx: sm-misc: Dump syslog and system info Peng Fan
2025-06-27 14:11   ` Cristian Marussi
2025-06-30  3:34     ` Peng Fan
2025-06-27 18:49   ` kernel test robot
2025-06-28 14:28   ` kernel test robot
2025-07-02 15:22   ` Sudeep Holla
2025-07-04 10:28     ` Peng Fan
2025-07-04  9:45       ` Sudeep Holla
2025-07-04 10:44         ` Peng Fan

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=aF6YdPc6z21XNhWQ@pluto \
    --to=cristian.marussi@arm.com \
    --cc=arm-scmi@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sudeep.holla@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.