Re: [PATCH v5 1/7] Documentation: firmware-guide: add NXP i.MX95 SCMI documentation

From: Cristian Marussi
Date: Thu Jul 11 2024 - 09:16:24 EST


On Fri, Jun 21, 2024 at 03:04:36PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@xxxxxxx>
>
> Add NXP i.MX95 System Control Management Interface(SCMI) vendor
> extensions protocol documentation.
>

Hi,

beside the final location of this file in the tree, and a few nitpicks
down below.

LGTM.
Reviewed-by: Cristian Marussi <cristian.marussi@xxxxxxx>

> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
> ---

[snip]

> +MISC_CONTROL_GET
> +~~~~~~~~~~~~~~~~
> +
> +message_id: 0x4
> +protocol_id: 0x84
> +
> ++------------------+-----------------------------------------------------------+
> +|Parameters |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|uint32 index |Index of the control |
> ++------------------+-----------------------------------------------------------+
> +|Return values |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|int32 status |SUCCESS: if the control was get successfully. |
> +| |NOT_FOUND: if the index is not valid. |
> +| |DENIED: if the agent does not have permission to get the |
> +| |control |
> ++------------------+-----------------------------------------------------------+
> +|uint32 num |Size of the return data in words, max 8 |
> ++------------------+-----------------------------------------------------------+
> +|uint32 | |
> +|val[0, num - 8] |value data array |

val[0, num - 1] --- typo ?

which I suppose means that this field is variable in size depending on
num value...

In the gneral SCMI spec I think usually we write something like

uint32 val[N] with N as specified in num.

... but I am fine even with this val[0, num - 1] if it is intended to
meanb this same thing, i.e. variable size field depending on another
field.

> ++------------------+-----------------------------------------------------------+
> +
> +MISC_CONTROL_ACTION
> +~~~~~~~~~~~~~~~~~~~
> +
> +message_id: 0x5
> +protocol_id: 0x84
> +
> ++------------------+-----------------------------------------------------------+
> +|Parameters |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|uint32 index |Index of the control |
> ++------------------+-----------------------------------------------------------+
> +|uint32 action |Action for the control |
> ++------------------+-----------------------------------------------------------+
> +|uint32 numarg |Size of the argument data, max 8 |
> ++------------------+-----------------------------------------------------------+
> +|uint32 | |
> +|arg[0, numarg -1] |Argument data array |
> ++------------------+-----------------------------------------------------------+
> +|Return values |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|int32 status |SUCCESS: if the action was set successfully. |
> +| |NOT_FOUND: if the index is not valid. |
> +| |DENIED: if the agent does not have permission to get the |
> +| |control |
> ++------------------+-----------------------------------------------------------+
> +|uint32 num |Size of the return data in words, max 8 |
> ++------------------+-----------------------------------------------------------+
> +|uint32 | |
> +|val[0:num-1] |value data array |

val[0, num - 1] ... for consistency

> ++------------------+-----------------------------------------------------------+
> +
> +MISC_DISCOVER_BUILD_INFO
> +~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +This function is used to obtain the build commit, data, time, number.
> +
> +message_id: 0x6
> +protocol_id: 0x84
> +
> ++------------------+-----------------------------------------------------------+
> +|Return values |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|int32 status |SUCCESS: if the build info was got successfully. |
> +| |NOT_SUPPORTED: if the data is not available. |
> ++------------------+-----------------------------------------------------------+
> +|uint32 buildnum |Build number |
> ++------------------+-----------------------------------------------------------+
> +|uint32 buildcommit|Most significant 32 bits of the git commit hash |
> ++------------------+-----------------------------------------------------------+
> +|uint8 date[16] |Date of build. Null terminated ASCII string of up to 16 |
> +| |bytes in length |
> ++------------------+-----------------------------------------------------------+
> +|uint8 time[16] |Time of build. Null terminated ASCII string of up to 16 |
> +| |bytes in length |
> ++------------------+-----------------------------------------------------------+
> +
> +MISC_ROM_PASSOVER_GET
> +~~~~~~~~~~~~~~~~~~~~~
> +
> +ROM passover data is information exported by ROM and could be used by others.
> +It includes boot device, instance, type, mode and etc. This function is used
> +to obtain the ROM passover data. The returned block of words is structured as
> +defined in the ROM passover section in the SoC RM.
> +
> +message_id: 0x7
> +protocol_id: 0x84
> +
> ++------------------+-----------------------------------------------------------+
> +|Return values |
> ++------------------+-----------------------------------------------------------+
> +|Name |Description |
> ++------------------+-----------------------------------------------------------+
> +|int32 status |SUCCESS: if the data was got successfully. |
> +| |NOT_SUPPORTED: if the data is not available. |
> ++------------------+-----------------------------------------------------------+
> +|uint32 num |Size of the passover data in words, max 13 |
> ++------------------+-----------------------------------------------------------+
> +|uint32_t | |
> +|data[0:num-1] |Passover data array |
> ++------------------+-----------------------------------------------------------+
> +

data[0, num - 1] ... consistency

Thanks,
Cristian