[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