[PATCH v1] firmware: scmi: dump error string

Tom Rini trini at konsulko.com
Mon Oct 7 18:55:33 CEST 2024


On Sun, Oct 06, 2024 at 03:13:17PM +0800, alice.guo at oss.nxp.com wrote:
> From: Peng Fan <peng.fan at nxp.com>
> 
> When error happends, dump string is more intuitive.
> 
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> Signed-off-by: Alice Guo <alice.guo at nxp.com>
> Reviewed-by: Ye Li <ye.li at nxp.com>
> ---
>  drivers/firmware/scmi/scmi_agent-uclass.c | 26 +++++++++++++----------
>  1 file changed, 15 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c
> index 8c907c3b03..e2d42d2914 100644
> --- a/drivers/firmware/scmi/scmi_agent-uclass.c
> +++ b/drivers/firmware/scmi/scmi_agent-uclass.c
> @@ -18,23 +18,25 @@
>   * struct error_code - Helper structure for SCMI error code conversion
>   * @scmi:	SCMI error code
>   * @errno:	Related standard error number
> + * @string:	Name the scmi error code
>   */
>  struct error_code {
>  	int scmi;
>  	int errno;
> +	char *string;
>  };
>  
>  static const struct error_code scmi_linux_errmap[] = {
> -	{ .scmi = SCMI_NOT_SUPPORTED, .errno = -EOPNOTSUPP, },
> -	{ .scmi = SCMI_INVALID_PARAMETERS, .errno = -EINVAL, },
> -	{ .scmi = SCMI_DENIED, .errno = -EACCES, },
> -	{ .scmi = SCMI_NOT_FOUND, .errno = -ENOENT, },
> -	{ .scmi = SCMI_OUT_OF_RANGE, .errno = -ERANGE, },
> -	{ .scmi = SCMI_BUSY, .errno = -EBUSY, },
> -	{ .scmi = SCMI_COMMS_ERROR, .errno = -ECOMM, },
> -	{ .scmi = SCMI_GENERIC_ERROR, .errno = -EIO, },
> -	{ .scmi = SCMI_HARDWARE_ERROR, .errno = -EREMOTEIO, },
> -	{ .scmi = SCMI_PROTOCOL_ERROR, .errno = -EPROTO, },
> +	{ .scmi = SCMI_NOT_SUPPORTED, .errno = -EOPNOTSUPP, .string = "SCMI_NOT_SUPPORTED" },
> +	{ .scmi = SCMI_INVALID_PARAMETERS, .errno = -EINVAL, .string = "SCMI_INVALID_PARAMETERS" },
> +	{ .scmi = SCMI_DENIED, .errno = -EACCES, .string = "SCMI_DENIED" },
> +	{ .scmi = SCMI_NOT_FOUND, .errno = -ENOENT, .string = "SCMI_NOT_SUPPORTED" },
> +	{ .scmi = SCMI_OUT_OF_RANGE, .errno = -ERANGE, .string = "SCMI_OUT_OF_RANGE" },
> +	{ .scmi = SCMI_BUSY, .errno = -EBUSY, .string = "SCMI_BUSY" },
> +	{ .scmi = SCMI_COMMS_ERROR, .errno = -ECOMM, .string = "SCMI_COMMS_ERROR" },
> +	{ .scmi = SCMI_GENERIC_ERROR, .errno = -EIO, .string = "SCMI_GENERIC_ERROR" },
> +	{ .scmi = SCMI_HARDWARE_ERROR, .errno = -EREMOTEIO, .string = "SCMI_HARDWARE_ERROR" },
> +	{ .scmi = SCMI_PROTOCOL_ERROR, .errno = -EPROTO, .string = "SCMI_PROTOCOL_ERROR" },
>  };
>  
>  /**
> @@ -163,8 +165,10 @@ int scmi_to_linux_errno(s32 scmi_code)
>  		return 0;
>  
>  	for (n = 0; n < ARRAY_SIZE(scmi_linux_errmap); n++)
> -		if (scmi_code == scmi_linux_errmap[n].scmi)
> +		if (scmi_code == scmi_linux_errmap[n].scmi) {
> +			debug("errno: %s\n", scmi_linux_errmap[n].string);
>  			return scmi_linux_errmap[n].errno;
> +		}
>  
>  	return -EPROTO;
>  }

This is going to increase the overall binary size with string when we
already have a valid errno value to print, please just debug print
errno value.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20241007/75d4946f/attachment.sig>


More information about the U-Boot mailing list