[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