[PATCH v7 19/24] board: beagleboneai64: Define capsule update firmware info

Ilias Apalodimas ilias.apalodimas at linaro.org
Sat Jun 15 08:21:47 CEST 2024


On Fri, 14 Jun 2024 at 19:36, Jonathan Humphreys <j-humphreys at ti.com> wrote:
>
> Define the firmware components updatable via EFI capsule update, including
> defining capsule GUIDs for the various firmware components for the
> BeagleBoneAI64.
>
> Note this involved creating BeagleBoneAI64's own beagleboneai64.h board
> header file instead of reusing j721e_evm's.
>
> Signed-off-by: Jonathan Humphreys <j-humphreys at ti.com>
> ---
>  board/beagle/beagleboneai64/Kconfig          |  4 +-
>  board/beagle/beagleboneai64/beagleboneai64.c | 39 ++++++++++++++
>  include/configs/beagleboneai64.h             | 55 ++++++++++++++++++++
>  3 files changed, 96 insertions(+), 2 deletions(-)
>  create mode 100644 include/configs/beagleboneai64.h
>
> diff --git a/board/beagle/beagleboneai64/Kconfig b/board/beagle/beagleboneai64/Kconfig
> index 7cfccf9baf0..0f21582614d 100644
> --- a/board/beagle/beagleboneai64/Kconfig
> +++ b/board/beagle/beagleboneai64/Kconfig
> @@ -37,7 +37,7 @@ config SYS_VENDOR
>         default "beagle"
>
>  config SYS_CONFIG_NAME
> -       default "j721e_evm"
> +       default "beagleboneai64"
>
>  source "board/ti/common/Kconfig"
>
> @@ -52,7 +52,7 @@ config SYS_VENDOR
>         default "beagle"
>
>  config SYS_CONFIG_NAME
> -       default "j721e_evm"
> +       default "beagleboneai64"
>
>  source "board/ti/common/Kconfig"
>
> diff --git a/board/beagle/beagleboneai64/beagleboneai64.c b/board/beagle/beagleboneai64/beagleboneai64.c
> index c5b4ff7df47..1e43d1c1bd2 100644
> --- a/board/beagle/beagleboneai64/beagleboneai64.c
> +++ b/board/beagle/beagleboneai64/beagleboneai64.c
> @@ -7,6 +7,7 @@
>   * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
>   */
>
> +#include <efi_loader.h>
>  #include <cpu_func.h>
>  #include <env.h>
>  #include <fdt_support.h>
> @@ -14,6 +15,44 @@
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> +struct efi_fw_image fw_images[] = {
> +       {
> +               .image_type_id = BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID,
> +               .fw_name = u"BEAGLEBONEAI64_TIBOOT3",
> +               .image_index = 1,
> +       },
> +       {
> +               .image_type_id = BEAGLEBONEAI64_SPL_IMAGE_GUID,
> +               .fw_name = u"BEAGLEBONEAI64_SPL",
> +               .image_index = 2,
> +       },
> +       {
> +               .image_type_id = BEAGLEBONEAI64_UBOOT_IMAGE_GUID,
> +               .fw_name = u"BEAGLEBONEAI64_UBOOT",
> +               .image_index = 3,
> +       },
> +       {
> +               .image_type_id = BEAGLEBONEAI64_SYSFW_IMAGE_GUID,
> +               .fw_name = u"BEAGLEBONEAI64_SYSFW",
> +               .image_index = 4,
> +       }
> +};
> +
> +struct efi_capsule_update_info update_info = {
> +       .dfu_string = "mmc 0=tiboot3.bin raw 0 2000 mmcpart 1;"
> +       "tispl.bin fat 0 1;u-boot.img fat 0 1; sysfw.itb fat 0 1",
> +       .num_images = ARRAY_SIZE(fw_images),
> +       .images = fw_images,
> +};
> +
> +#if IS_ENABLED(CONFIG_SET_DFU_ALT_INFO)
> +void set_dfu_alt_info(char *interface, char *devstr)
> +{
> +       if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT))
> +               env_set("dfu_alt_info", update_info.dfu_string);
> +}
> +#endif
> +
>  int board_init(void)
>  {
>         return 0;
> diff --git a/include/configs/beagleboneai64.h b/include/configs/beagleboneai64.h
> new file mode 100644
> index 00000000000..85d57248bb6
> --- /dev/null
> +++ b/include/configs/beagleboneai64.h
> @@ -0,0 +1,55 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Configuration header file for BeagleBoneAI64
> + *
> + * https://beagleboard.org/ai-64
> + *
> + * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
> + */
> +
> +#ifndef __CONFIG_BEAGLEBONEAI64_H
> +#define __CONFIG_BEAGLEBONEAI64_H
> +
> +/* FLASH Configuration */
> +#define CFG_SYS_FLASH_BASE             0x000000000
> +
> +/* SPL Loader Configuration */
> +#define CFG_SYS_UBOOT_BASE             0x50080000
> +
> +/**
> + * define BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID - firmware GUID for BeagleBoneAI64
> + *                                            tiboot3.bin
> + * define BEAGLEBONEAI64_SPL_IMAGE_GUID     - firmware GUID for BeagleBoneAI64
> + *                                            SPL
> + * define BEAGLEBONEAI64_UBOOT_IMAGE_GUID   - firmware GUID for BeagleBoneAI64
> + *                                            UBOOT
> + * define BEAGLEBONEAI64_SYSFW_IMAGE_GUID   - firmware GUID for BeagleBoneAI64
> + *                                            SYSFW
> + *
> + * These GUIDs are used in capsules updates to identify the corresponding
> + * firmware object.
> + *
> + * Board developers using this as a starting reference should
> + * define their own GUIDs to ensure that firmware repositories (like
> + * LVFS) do not confuse them.
> + */
> +#define BEAGLEBONEAI64_TIBOOT3_IMAGE_GUID \
> +       EFI_GUID(0x772a4810, 0x2194, 0x4923, 0x87, 0x54, \
> +               0x01, 0x15, 0x87, 0x0e, 0xf3, 0x67)
> +
> +#define BEAGLEBONEAI64_SPL_IMAGE_GUID \
> +       EFI_GUID(0x83447222, 0x1e26, 0x40cd, 0xa3, 0x95, \
> +               0xb7, 0xde, 0x09, 0x57, 0xe8, 0x75)
> +
> +#define BEAGLEBONEAI64_UBOOT_IMAGE_GUID \
> +       EFI_GUID(0x4249ff77, 0xc17d, 0x4eb7, 0xa1, 0xdb, \
> +               0x45, 0xaa, 0x98, 0x87, 0xd4, 0x9e)
> +
> +#define BEAGLEBONEAI64_SYSFW_IMAGE_GUID \
> +       EFI_GUID(0xdfc9c683, 0x49b7, 0x46bd, 0xb3, 0xc1, \
> +               0x3a, 0x3b, 0x2f, 0xdb, 0x13, 0x5b)
> +
> +/* Now for the remaining common defines */
> +#include <configs/ti_armv7_common.h>
> +
> +#endif /* __CONFIG_BEAGLEBONEAI64_H */
> --
> 2.34.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list