[PATCH 2/6] ti_sci_* : Add capability to access DM firmware's metadata
Neha Malcom Francis
n-francis at ti.com
Thu Jun 5 08:23:30 CEST 2025
On 05/06/25 11:43, Moteen Shah wrote:
> Hey Neha,
>
> On 03/06/25 11:43, Neha Malcom Francis wrote:
>> On 28/05/25 13:35, Moteen Shah wrote:
>>> Introduce response and request structs to receive and request
>>> information regarding DM version, etc from TI SCI.
>>>
>>> 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.
>> nitpick: Alignment?
>
> The checkpatch didn't raise an alarm, I'll recheck once and fix it if
> required in the revision.
I don't think checkpatch looks for alignment in comments, just a nitpick
as it looks way more intended to the right.
>
> Regards,
> Moteen
>
>>
>>> */
>>> 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);
>>> };
>>> #define TI_SCI_MSG_FLAG_FW_CAP_DM 0x100
>> Reviewed-by: Neha Malcom Francis <n-francis at ti.com>
>>
--
Thanking You
Neha Malcom Francis
More information about the U-Boot
mailing list