[PATCH v2 3/5] cmd: mvebu: bubt: verify A38x target device type

Stefan Roese sr at denx.de
Mon Mar 23 11:06:45 CET 2020


On 29.01.20 15:50, Joel Johnson wrote:
> Ensure that the device to which an image is being written includes
> header information indicating boot support for the destination
> device.
> 
> This is derived from the support in the SolidRun master-a38x vendor
> fork branch.
> 
> Signed-off-by: Joel Johnson <mrjoel at lixil.net>
> 
> ---
> 
> v2 changes:
>    - none
> 
> ---
>   cmd/mvebu/bubt.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 47 insertions(+), 2 deletions(-)
> 
> diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
> index b80b81c82a..78061a6a2d 100644
> --- a/cmd/mvebu/bubt.c
> +++ b/cmd/mvebu/bubt.c
> @@ -107,6 +107,26 @@ struct a38x_main_hdr_v1 {
>   	u8  ext;                   /* 0x1E      */
>   	u8  checksum;              /* 0x1F      */
>   };
> +
> +#define A38X_BOOT_MODE_MAX	8

Can't you drop this define here...

> +struct a38x_boot_mode {
> +	unsigned int id;
> +	const char *name;
> +};
> +
> +/* The blockid header field values used to indicate boot device of image */
> +struct a38x_boot_mode a38x_boot_modes[A38X_BOOT_MODE_MAX] = {

... and use [] here...

> +	{ 0x4D, "i2c"  },
> +	{ 0x5A, "spi"  },
> +	{ 0x69, "uart" },
> +	{ 0x78, "sata" },
> +	{ 0x8B, "nand" },
> +	{ 0x9C, "pex"  },
> +	{ 0xAE, "mmc"  },
> +	{},
> +};
> +
>   #endif
>   
>   struct bubt_dev {
> @@ -644,6 +664,23 @@ static int check_image_header(void)
>   	return 0;
>   }
>   #elif defined(CONFIG_ARMADA_38X)
> +static int a38x_check_boot_mode(const struct bubt_dev *dst)
> +{
> +	int mode;
> +	const struct a38x_main_hdr_v1 *hdr =
> +		(struct a38x_main_hdr_v1 *)get_load_addr();
> +
> +	for (mode = 0; mode < A38X_BOOT_MODE_MAX; mode++) {

... and use ARRAY_SIZE() here instead?

Thanks,
Stefan


More information about the U-Boot mailing list