[PATCH 2/6] ti_sci_* : Add capability to access DM firmware's metadata

Dhruva Gole d-gole at ti.com
Tue Jun 3 10:33:45 CEST 2025


On May 28, 2025 at 13:35:15 +0530, Moteen Shah wrote:
> Introduce response and request structs to receive and request
> information regarding DM version, etc from TI SCI.

Nit: Remove the ", etc"
The patch is literally just about DM version.

> 
> Signed-off-by: Moteen Shah <m-shah at ti.com>
> ---
>  drivers/firmware/ti_sci.h              | 29 ++++++++++++++++++++++++++
>  include/linux/soc/ti/ti_sci_protocol.h | 26 +++++++++++++++++++++++
>  2 files changed, 55 insertions(+)
> 
> diff --git a/drivers/firmware/ti_sci.h b/drivers/firmware/ti_sci.h
> index f3d9eb453b4..6ef77d83114 100644
> --- a/drivers/firmware/ti_sci.h
> +++ b/drivers/firmware/ti_sci.h
> @@ -19,6 +19,7 @@
>  #define TI_SCI_MSG_ENABLE_WDT		0x0000
>  #define TI_SCI_MSG_WAKE_RESET		0x0001
>  #define TI_SCI_MSG_VERSION		0x0002
> +#define TI_SCI_MSG_DM_VERSION		0x000F
>  #define TI_SCI_MSG_WAKE_REASON		0x0003
>  #define TI_SCI_MSG_GOODBYE		0x0004
>  #define TI_SCI_MSG_SYS_RESET		0x0005
> @@ -135,6 +136,34 @@ struct ti_sci_msg_resp_version {
>  	u8 abi_minor;
>  } __packed;
>  
> +/**
> + * struct ti_sci_msg_dm_resp_version - Response for a message
> + * @hdr:		Generic header
> + * @version:		Version number of the firmware
> + * @sub_version:	Sub-version number of the firmware
> + * @patch_version:	Patch version number of the firmware
> + * @abi_major:		Major version of the ABI that firmware supports
> + * @abi_minor:		Minor version of the ABI that firmware supports
> + * @sci_server_version:	String describing the SCI server version
> + * @rm_pm_hal_version:	String describing the RM PM HAL version
> + *
> + * In general, ABI version changes follow the rule that minor version increments
> + * are backward compatible. Major revision changes in ABI may not be
> + * backward compatible.
> + *
> + * Response to a message with message type TI_SCI_MSG_DM_VERSION
> + */
> +struct ti_sci_msg_dm_resp_version {
> +	struct ti_sci_msg_hdr hdr;
> +	u16	version;
> +	u8	sub_version;
> +	u8	patch_version;
> +	u8	abi_major;
> +	u8	abi_minor;
> +	char rm_pm_hal_version[12];
> +	char sci_server_version[26];
> +} __packed;
> +
>  /**
>   * struct ti_sci_query_fw_caps_resp - Response for a message
>   * @hdr:	Generic header
> diff --git a/include/linux/soc/ti/ti_sci_protocol.h b/include/linux/soc/ti/ti_sci_protocol.h
> index 05a19a8d86c..3f13a980433 100644
> --- a/include/linux/soc/ti/ti_sci_protocol.h
> +++ b/include/linux/soc/ti/ti_sci_protocol.h
> @@ -30,6 +30,28 @@ struct ti_sci_version_info {
>  	char firmware_description[32];
>  };
>  
> +/**
> + * struct ti_sci_dm_version_info - version information structure
> + * @abi_major:		Major ABI version. Change here implies risk of backward
> + *			compatibility break.
> + * @abi_minor:		Minor ABI version. Change here implies new feature addition,
> + *			or compatible change in ABI.
> + * @patch_ver:		Patch version of the firmware.
> + * @sub_ver:		Sub-version of the firmware.
> + * @dm_ver:		DM version.
> + * @sci_server_version:	Version string of the SCI server.
> + * @rm_pm_hal_version:	Version string of the RM PM HAL.
> + */
> +struct ti_sci_dm_version_info {
> +	u8 abi_major;
> +	u8 abi_minor;
> +	u8 patch_ver;
> +	u8 sub_ver;
> +	u16 dm_ver;
> +	char rm_pm_hal_version[12];
> +	char sci_server_version[26];
> +};
> +
>  struct ti_sci_handle;
>  
>  /**
> @@ -264,10 +286,14 @@ struct ti_sci_core_ops {
>  /**
>   * struct ti_sci_firmware_ops - DM firmware operations
>   * @query_dm_cap: Query the DM capabilities
> + * @get_dm_version: Get the DM version.
> + *		    Return 0 for successful query else appropriate error value.
>   */
>  struct ti_sci_firmware_ops {
>  	int (*query_dm_cap)(struct ti_sci_handle *handle,
>  			    u64 *dm_cap);
> +	int (*get_dm_version)(struct ti_sci_handle *handle,
> +			      struct ti_sci_dm_version_info *get_dm_version);

Reviewed-by: Dhruva Gole <d-gole at ti.com>

-- 
Best regards,
Dhruva Gole
Texas Instruments Incorporated


More information about the U-Boot mailing list