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 #include #include #include @@ -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/board/beagle/beagleplay/Kconfig b/board/beagle/beagleplay/Kconfig index 7dbd833acb4..b0e67dc8ef3 100644 --- a/board/beagle/beagleplay/Kconfig +++ b/board/beagle/beagleplay/Kconfig @@ -35,7 +35,7 @@ config SYS_VENDOR default "beagle" config SYS_CONFIG_NAME - default "am62x_evm" + default "beagleplay" source "board/ti/common/Kconfig" @@ -50,7 +50,7 @@ config SYS_VENDOR default "beagle" config SYS_CONFIG_NAME - default "am62x_evm" + default "beagleplay" config SPL_LDSCRIPT default "arch/arm/mach-omap2/u-boot-spl.lds" diff --git a/board/beagle/beagleplay/beagleplay.c b/board/beagle/beagleplay/beagleplay.c index af36439e2e2..a21f09e3122 100644 --- a/board/beagle/beagleplay/beagleplay.c +++ b/board/beagle/beagleplay/beagleplay.c @@ -6,6 +6,7 @@ * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation */ +#include #include #include #include @@ -15,6 +16,39 @@ DECLARE_GLOBAL_DATA_PTR; +struct efi_fw_image fw_images[] = { + { + .image_type_id = BEAGLEPLAY_TIBOOT3_IMAGE_GUID, + .fw_name = u"BEAGLEPLAY_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = BEAGLEPLAY_SPL_IMAGE_GUID, + .fw_name = u"BEAGLEPLAY_SPL", + .image_index = 2, + }, + { + .image_type_id = BEAGLEPLAY_UBOOT_IMAGE_GUID, + .fw_name = u"BEAGLEPLAY_UBOOT", + .image_index = 3, + } +}; + +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", + .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/board/ti/am62px/evm.c b/board/ti/am62px/evm.c index 97a95ce8cc2..1a2c46c462b 100644 --- a/board/ti/am62px/evm.c +++ b/board/ti/am62px/evm.c @@ -6,6 +6,7 @@ * */ +#include #include #include #include @@ -13,6 +14,39 @@ #include #include +struct efi_fw_image fw_images[] = { + { + .image_type_id = AM62PX_SK_TIBOOT3_IMAGE_GUID, + .fw_name = u"AM62PX_SK_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = AM62PX_SK_SPL_IMAGE_GUID, + .fw_name = u"AM62PX_SK_SPL", + .image_index = 2, + }, + { + .image_type_id = AM62PX_SK_UBOOT_IMAGE_GUID, + .fw_name = u"AM62PX_SK_UBOOT", + .image_index = 3, + } +}; + +struct efi_capsule_update_info update_info = { + .dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;" + "tispl.bin raw 80000 200000;u-boot.img raw 280000 400000", + .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/board/ti/am62x/evm.c b/board/ti/am62x/evm.c index b3e8680dfab..9bdd0223cdb 100644 --- a/board/ti/am62x/evm.c +++ b/board/ti/am62x/evm.c @@ -7,6 +7,7 @@ * */ +#include #include #include #include @@ -46,6 +47,39 @@ int splash_screen_prepare(void) } #endif +struct efi_fw_image fw_images[] = { + { + .image_type_id = AM62X_SK_TIBOOT3_IMAGE_GUID, + .fw_name = u"AM62X_SK_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = AM62X_SK_SPL_IMAGE_GUID, + .fw_name = u"AM62X_SK_SPL", + .image_index = 2, + }, + { + .image_type_id = AM62X_SK_UBOOT_IMAGE_GUID, + .fw_name = u"AM62X_SK_UBOOT", + .image_index = 3, + } +}; + +struct efi_capsule_update_info update_info = { + .dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;" + "tispl.bin raw 80000 200000;u-boot.img raw 280000 400000", + .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/board/ti/am64x/evm.c b/board/ti/am64x/evm.c index b8de69da06c..609e5cf6d51 100644 --- a/board/ti/am64x/evm.c +++ b/board/ti/am64x/evm.c @@ -7,6 +7,7 @@ * */ +#include #include #include #include @@ -27,6 +28,39 @@ DECLARE_GLOBAL_DATA_PTR; +struct efi_fw_image fw_images[] = { + { + .image_type_id = AM64X_SK_TIBOOT3_IMAGE_GUID, + .fw_name = u"AM64X_SK_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = AM64X_SK_SPL_IMAGE_GUID, + .fw_name = u"AM64X_SK_SPL", + .image_index = 2, + }, + { + .image_type_id = AM64X_SK_UBOOT_IMAGE_GUID, + .fw_name = u"AM64X_SK_UBOOT", + .image_index = 3, + } +}; + +struct efi_capsule_update_info update_info = { + .dfu_string = "sf 0:0=tiboot3.bin raw 0 100000;" + "tispl.bin raw 100000 200000;u-boot.img raw 300000 400000", + .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/board/ti/j721e/evm.c b/board/ti/j721e/evm.c index 539eaf47186..f3452ff0a8f 100644 --- a/board/ti/j721e/evm.c +++ b/board/ti/j721e/evm.c @@ -7,6 +7,7 @@ * */ +#include #include #include #include @@ -32,6 +33,45 @@ DECLARE_GLOBAL_DATA_PTR; +struct efi_fw_image fw_images[] = { + { + .image_type_id = J721E_SK_TIBOOT3_IMAGE_GUID, + .fw_name = u"J721E_SK_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = J721E_SK_SPL_IMAGE_GUID, + .fw_name = u"J721E_SK_SPL", + .image_index = 2, + }, + { + .image_type_id = J721E_SK_UBOOT_IMAGE_GUID, + .fw_name = u"J721E_SK_UBOOT", + .image_index = 3, + }, + { + .image_type_id = J721E_SK_SYSFW_IMAGE_GUID, + .fw_name = u"J721E_SK_SYSFW", + .image_index = 4, + } +}; + +struct efi_capsule_update_info update_info = { + .dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;" + "tispl.bin raw 80000 200000;u-boot.img raw 280000 400000;" + "sysfw.itb raw 6C0000 100000", + .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/board/ti/j784s4/evm.c b/board/ti/j784s4/evm.c index aed0ea5b949..548dbd5925d 100644 --- a/board/ti/j784s4/evm.c +++ b/board/ti/j784s4/evm.c @@ -7,12 +7,46 @@ * */ +#include #include #include #include "../common/fdt_ops.h" DECLARE_GLOBAL_DATA_PTR; +struct efi_fw_image fw_images[] = { + { + .image_type_id = AM69_SK_TIBOOT3_IMAGE_GUID, + .fw_name = u"AM69_SK_TIBOOT3", + .image_index = 1, + }, + { + .image_type_id = AM69_SK_SPL_IMAGE_GUID, + .fw_name = u"AM69_SK_SPL", + .image_index = 2, + }, + { + .image_type_id = AM69_SK_UBOOT_IMAGE_GUID, + .fw_name = u"AM69_SK_UBOOT", + .image_index = 3, + } +}; + +struct efi_capsule_update_info update_info = { + .dfu_string = "sf 0:0=tiboot3.bin raw 0 80000;" + "tispl.bin raw 80000 200000;u-boot.img raw 280000 400000", + .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/configs/am62px_evm_a53_defconfig b/configs/am62px_evm_a53_defconfig index 9f40c9a0b3c..e1c9c8535e4 100644 --- a/configs/am62px_evm_a53_defconfig +++ b/configs/am62px_evm_a53_defconfig @@ -179,3 +179,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x6165 CONFIG_SPL_DFU=y CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 CONFIG_EFI_SET_TIME=y + +#include diff --git a/configs/am62x_beagleplay_a53_defconfig b/configs/am62x_beagleplay_a53_defconfig index 455dd86b2fc..79c82d1ff7a 100644 --- a/configs/am62x_beagleplay_a53_defconfig +++ b/configs/am62x_beagleplay_a53_defconfig @@ -71,6 +71,9 @@ CONFIG_SPL_OF_TRANSLATE=y CONFIG_CLK=y CONFIG_SPL_CLK=y CONFIG_CLK_TI_SCI=y +CONFIG_DFU_MMC=y +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000 +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x180000 CONFIG_DMA_CHANNELS=y CONFIG_TI_K3_NAVSS_UDMA=y CONFIG_TI_SCI_PROTOCOL=y @@ -123,4 +126,5 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 CONFIG_LZO=y CONFIG_EFI_SET_TIME=y +#include #include diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig index 9bfe1560275..ca993b427bd 100644 --- a/configs/am62x_evm_a53_defconfig +++ b/configs/am62x_evm_a53_defconfig @@ -114,4 +114,5 @@ CONFIG_SYSRESET_TI_SCI=y CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 CONFIG_EFI_SET_TIME=y +#include #include diff --git a/configs/am64x_evm_a53_defconfig b/configs/am64x_evm_a53_defconfig index e000549d6d0..44c22458ab2 100644 --- a/configs/am64x_evm_a53_defconfig +++ b/configs/am64x_evm_a53_defconfig @@ -178,3 +178,5 @@ CONFIG_USB_FUNCTION_MASS_STORAGE=y CONFIG_SPL_DFU=y CONFIG_FS_FAT_MAX_CLUSTSIZE=16384 CONFIG_EFI_SET_TIME=y + +#include diff --git a/configs/j721e_beagleboneai64_a72_defconfig b/configs/j721e_beagleboneai64_a72_defconfig index a354876f8c2..86c565a9211 100644 --- a/configs/j721e_beagleboneai64_a72_defconfig +++ b/configs/j721e_beagleboneai64_a72_defconfig @@ -172,3 +172,5 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x6163 CONFIG_SPL_DFU=y CONFIG_LZO=y CONFIG_EFI_SET_TIME=y + +#include diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig index 451a6a91c4f..f99315789c7 100644 --- a/configs/j721e_evm_a72_defconfig +++ b/configs/j721e_evm_a72_defconfig @@ -211,3 +211,5 @@ CONFIG_UFS=y CONFIG_CADENCE_UFS=y CONFIG_TI_J721E_UFS=y CONFIG_EFI_SET_TIME=y + +#include diff --git a/configs/j784s4_evm_a72_defconfig b/configs/j784s4_evm_a72_defconfig index 2aa16eb7270..3cfa006f86b 100644 --- a/configs/j784s4_evm_a72_defconfig +++ b/configs/j784s4_evm_a72_defconfig @@ -85,6 +85,9 @@ CONFIG_CLK=y CONFIG_SPL_CLK=y CONFIG_CLK_CCF=y CONFIG_CLK_TI_SCI=y +CONFIG_DFU_SF=y +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000 +CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 CONFIG_DMA_CHANNELS=y CONFIG_TI_K3_NAVSS_UDMA=y CONFIG_TI_SCI_PROTOCOL=y @@ -158,3 +161,5 @@ CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_TI_SCI=y CONFIG_DM_THERMAL=y CONFIG_EFI_SET_TIME=y + +#include diff --git a/configs/k3_efi_capsule.config b/configs/k3_efi_capsule.config new file mode 100644 index 00000000000..e31cea37269 --- /dev/null +++ b/configs/k3_efi_capsule.config @@ -0,0 +1,2 @@ +CONFIG_EFI_CAPSULE_ON_DISK=y +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y diff --git a/doc/board/ti/am62px_sk.rst b/doc/board/ti/am62px_sk.rst index 1f2982c36f9..c80b5068117 100644 --- a/doc/board/ti/am62px_sk.rst +++ b/doc/board/ti/am62px_sk.rst @@ -156,6 +156,30 @@ Image formats: .. image:: img/dm_tispl.bin.svg :alt: tispl.bin image format +OSPI: +----- +ROM supports booting from OSPI from offset 0x0. + +Flashing images to OSPI: + +Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img, +over tftp and then flash those to OSPI at their respective addresses. + +.. prompt:: bash => + + sf probe + tftp ${loadaddr} tiboot3.bin + sf update $loadaddr 0x0 $filesize + tftp ${loadaddr} tispl.bin + sf update $loadaddr 0x80000 $filesize + tftp ${loadaddr} u-boot.img + sf update $loadaddr 0x280000 $filesize + +Flash layout for OSPI: + +.. image:: img/ospi_sysfw2.svg + :alt: OSPI flash partition layout + A53 SPL DDR Memory Layout ------------------------- diff --git a/doc/board/ti/am62x_sk.rst b/doc/board/ti/am62x_sk.rst index d5f7fe3b036..2a25e84f6c9 100644 --- a/doc/board/ti/am62x_sk.rst +++ b/doc/board/ti/am62x_sk.rst @@ -164,6 +164,30 @@ Image formats: .. image:: img/dm_tispl.bin.svg :alt: tispl.bin image format +OSPI: +----- +ROM supports booting from OSPI from offset 0x0. + +Flashing images to OSPI: + +Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img, +over tftp and then flash those to OSPI at their respective addresses. + +.. prompt:: bash => + + sf probe + tftp ${loadaddr} tiboot3.bin + sf update $loadaddr 0x0 $filesize + tftp ${loadaddr} tispl.bin + sf update $loadaddr 0x80000 $filesize + tftp ${loadaddr} u-boot.img + sf update $loadaddr 0x280000 $filesize + +Flash layout for OSPI: + +.. image:: img/ospi_sysfw2.svg + :alt: OSPI flash partition layout + A53 SPL DDR Memory Layout ------------------------- diff --git a/doc/board/ti/am64x_evm.rst b/doc/board/ti/am64x_evm.rst index 6ae35b3fee3..88997b6a283 100644 --- a/doc/board/ti/am64x_evm.rst +++ b/doc/board/ti/am64x_evm.rst @@ -140,6 +140,30 @@ Image formats: .. image:: img/nodm_tispl.bin.svg :alt: tispl.bin image format +OSPI: +----- +ROM supports booting from OSPI from offset 0x0. + +Flashing images to OSPI: + +Below commands can be used to download tiboot3.bin, tispl.bin, and u-boot.img, +over tftp and then flash those to OSPI at their respective addresses. + +.. prompt:: bash => + + sf probe + tftp ${loadaddr} tiboot3.bin + sf update $loadaddr 0x0 $filesize + tftp ${loadaddr} tispl.bin + sf update $loadaddr 0x100000 $filesize + tftp ${loadaddr} u-boot.img + sf update $loadaddr 0x300000 $filesize + +Flash layout for OSPI: + +.. image:: img/ospi_sysfw-am64.svg + :alt: OSPI flash partition layout + Switch Setting for Boot Mode ---------------------------- diff --git a/doc/board/ti/img/ospi_sysfw-am64.svg b/doc/board/ti/img/ospi_sysfw-am64.svg new file mode 100644 index 00000000000..f6244dce596 --- /dev/null +++ b/doc/board/ti/img/ospi_sysfw-am64.svg @@ -0,0 +1,802 @@ + + + + + + + + + + + + + + + + + + + ospi.tiboot3(1M) + + + + ospi.tiboot3(1M) + + + + + + + + + + + + + + 0x0 + + + + + 0x0 + + + + + + + + + + + + + ospi.tispl(2M) + + + + ospi.tispl(2M) + + + + + + + + + + + + + + 0x100000 + + + + + 0x100000 + + + + + + + + + + + + + ospi.u-boot(4M) + + + + ospi.u-boot(4M) + + + + + + + + + + + + + + 0x300000 + + + + + 0x300000 + + + + + + + + + + + + + ospi.env(128K) + + + + ospi.env(128K) + + + + + + + + + + + + + + 0x700000 + + + + + 0x700000 + + + + + + + + + + + + + ospi.env.backup(128K) + + + + ospi.env.backup(128K) + + + + + + + + + + + + + + 0x720000 + + + + + 0x720000 + + + + + + + + + + + + + padding(768K) + + + + padding(768K) + + + + + + + + + + + + + + 0x740000 + + + + + 0x740000 + + + + + + + + + + + + + ospi.rootfs(UBIFS) + + + + ospi.rootfs(UBIFS) + + + + + + + + + + + + + + 0x800000 + + + + + 0x800000 + + + + + + + + + + + + + ospi.phypattern(256k) + + + + ospi.phypattern(256k) + + + + + + + + + + + + + + 0x3FC0000 + + + + + 0x3FC0000 + + + + + diff --git a/doc/board/ti/img/ospi_sysfw.svg b/doc/board/ti/img/ospi_sysfw.svg index 648f6fd03e5..2a2fd3f4863 100644 --- a/doc/board/ti/img/ospi_sysfw.svg +++ b/doc/board/ti/img/ospi_sysfw.svg @@ -1,725 +1,897 @@ - + + inkscape:current-layer="g19241" /> + id="defs19023" /> - + id="g19241"> - - - - - ospi.tiboot3(512k) - - - - ospi.tiboot3(512k) - + id="g19027"> + - - - - + id="g19035"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 35px; margin-left: 121px;"> - 0x0 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: center;"> + ospi.tiboot3(512k) - - - 0x0 - + + ospi.tiboot3(512k) + + - - - - - - ospi.tispl(2M) - - - - ospi.tispl(2M) - + id="g19039"> + - - - - + id="g19047"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 58px; height: 1px; padding-top: 20px; margin-left: 60px;"> - 0x80000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: right;"> + + 0x0 + - - - 0x80000 - + + 0x0 + + - - - - - - ospi.u-boot(4M) - - - - ospi.u-boot(4M) - + id="g19051"> + - - - - + id="g19059"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 75px; margin-left: 121px;"> - 0x280000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: center;"> + ospi.tispl(2M) - - - 0x280000 - + + ospi.tispl(2M) + + - - - - - - ospi.env(128K) - - - - ospi.env(128K) - + id="g19063"> + - - - - + id="g19071"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 60px; margin-left: 0px;"> - 0x680000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: right;"> + + 0x80000 + - - - 0x680000 - + + 0x80000 + + - - - - - - ospi.env.backup(128K) - - - - ospi.env.backup(128K) - + id="g19075"> + - - - - + id="g19083"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 115px; margin-left: 121px;"> - 0x6A0000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: center;"> + ospi.u-boot(4M) - - - 0x6A0000 - + + ospi.u-boot(4M) + + - - - - - - ospi.sysfw(1M) - - - - ospi.sysfw(1M) - + id="g19087"> + - - - - + id="g19095"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 100px; margin-left: 0px;"> - 0x6C0000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: right;"> + + 0x280000 + - - - 0x6C0000 - + + 0x280000 + + - - - - - - padding(256K) - - - - padding(256K) - + id="g19099"> + - - - - + id="g19107"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 155px; margin-left: 121px;"> - 0x7C0000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: center;"> + ospi.env(128K) - - - 0x7C0000 - + + ospi.env(128K) + + - - - - - - ospi.rootfs(UBIFS) - - - - ospi.rootfs(UBIFS) - + id="g19111"> + - - - - + id="g19119"> + + + + style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 118px; height: 1px; padding-top: 140px; margin-left: 0px;"> - 0x800000 + data-drawio-colors="color: rgb(0, 0, 0); " + style="box-sizing: border-box; font-size: 0px; text-align: right;"> + + 0x680000 + - - - 0x800000 - + + 0x680000 + + + + + + + + + + + + + ospi.env.backup(128K) + + + + ospi.env.backup(128K) + + + + + + + + + + + + + + 0x6A0000 + + + + + 0x6A0000 + + + + + + + + + + + + + ospi.sysfw(1M) + + + + ospi.sysfw(1M) + + + + + + + + + + + + + + 0x6C0000 + + + + + 0x6C0000 + + + + + + + + + + + + + padding(256K) + + + + padding(256K) + + + + + + + + + + + + + + 0x7C0000 + + + + + 0x7C0000 + + + + + + + + + + + + + ospi.rootfs(UBIFS) + + + + ospi.rootfs(UBIFS) + + + + + + + + + + + + + + 0x800000 + + + + + 0x800000 + + + + + + + + + + + + + ospi.phypattern(128k) + + + + ospi.phypattern(128k) + + + + + + + + + + + + + + 0x3FE0000 + + + + + 0x3FE0000 + + - - - - Text is not SVG - cannot display - - diff --git a/doc/board/ti/img/ospi_sysfw2.svg b/doc/board/ti/img/ospi_sysfw2.svg new file mode 100644 index 00000000000..06711df4117 --- /dev/null +++ b/doc/board/ti/img/ospi_sysfw2.svg @@ -0,0 +1,802 @@ + + + + + + + + + + + + + + + + + + + ospi.tiboot3(512k) + + + + ospi.tiboot3(512k) + + + + + + + + + + + + + + 0x0 + + + + + 0x0 + + + + + + + + + + + + + ospi.tispl(2M) + + + + ospi.tispl(2M) + + + + + + + + + + + + + + 0x80000 + + + + + 0x80000 + + + + + + + + + + + + + ospi.u-boot(4M) + + + + ospi.u-boot(4M) + + + + + + + + + + + + + + 0x280000 + + + + + 0x280000 + + + + + + + + + + + + + ospi.env(128K) + + + + ospi.env(128K) + + + + + + + + + + + + + + 0x680000 + + + + + 0x680000 + + + + + + + + + + + + + ospi.env.backup(128K) + + + + ospi.env.backup(128K) + + + + + + + + + + + + + + 0x6C0000 + + + + + 0x6C0000 + + + + + + + + + + + + + padding(768K) + + + + padding(768K) + + + + + + + + + + + + + + 0x740000 + + + + + 0x740000 + + + + + + + + + + + + + ospi.rootfs(UBIFS) + + + + ospi.rootfs(UBIFS) + + + + + + + + + + + + + + 0x800000 + + + + + 0x800000 + + + + + + + + + + + + + ospi.phypattern(256k) + + + + ospi.phypattern(256k) + + + + + + + + + + + + + + 0x3FC0000 + + + + + 0x3FC0000 + + + + + diff --git a/doc/board/ti/img/ospi_sysfw3.svg b/doc/board/ti/img/ospi_sysfw3.svg new file mode 100644 index 00000000000..382867c6f4f --- /dev/null +++ b/doc/board/ti/img/ospi_sysfw3.svg @@ -0,0 +1,802 @@ + + + + + + + + + + + + + + + + + + + ospi.tiboot3(512k) + + + + ospi.tiboot3(512k) + + + + + + + + + + + + + + 0x0 + + + + + 0x0 + + + + + + + + + + + + + ospi.tispl(2M) + + + + ospi.tispl(2M) + + + + + + + + + + + + + + 0x80000 + + + + + 0x80000 + + + + + + + + + + + + + ospi.u-boot(4M) + + + + ospi.u-boot(4M) + + + + + + + + + + + + + + 0x280000 + + + + + 0x280000 + + + + + + + + + + + + + ospi.env(128K) + + + + ospi.env(128K) + + + + + + + + + + + + + + 0x680000 + + + + + 0x680000 + + + + + + + + + + + + + ospi.env.backup(128K) + + + + ospi.env.backup(128K) + + + + + + + + + + + + + + 0x6A0000 + + + + + 0x6A0000 + + + + + + + + + + + + + padding(1280K) + + + + padding(1280K) + + + + + + + + + + + + + + 0x6C0000 + + + + + 0x6C0000 + + + + + + + + + + + + + ospi.rootfs(UBIFS) + + + + ospi.rootfs(UBIFS) + + + + + + + + + + + + + + 0x800000 + + + + + 0x800000 + + + + + + + + + + + + + ospi.phypattern(256k) + + + + ospi.phypattern(256k) + + + + + + + + + + + + + + 0x3FC0000 + + + + + 0x3FC0000 + + + + + diff --git a/doc/board/ti/j721e_evm.rst b/doc/board/ti/j721e_evm.rst index a422a9bf1a0..80d91cafab0 100644 --- a/doc/board/ti/j721e_evm.rst +++ b/doc/board/ti/j721e_evm.rst @@ -150,6 +150,33 @@ Image formats: .. image:: img/sysfw.itb.svg :alt: sysfw.itb image format +OSPI: +----- +ROM supports booting from OSPI from offset 0x0. + +Flashing images to OSPI: + +Below commands can be used to download tiboot3.bin, tispl.bin, u-boot.img, +and sysfw.itb over tftp and then flash those to OSPI at their respective +addresses. + +.. prompt:: bash => + + sf probe + tftp ${loadaddr} tiboot3.bin + sf update $loadaddr 0x0 $filesize + tftp ${loadaddr} tispl.bin + sf update $loadaddr 0x80000 $filesize + tftp ${loadaddr} u-boot.img + sf update $loadaddr 0x280000 $filesize + tftp ${loadaddr} sysfw.itb + sf update $loadaddr 0x6C0000 $filesize + +Flash layout for OSPI: + +.. image:: img/ospi_sysfw.svg + :alt: OSPI flash partition layout + R5 Memory Map: -------------- @@ -193,35 +220,8 @@ R5 Memory Map: - 0x41cffbfc - 0x41cfffff -OSPI: ------ -ROM supports booting from OSPI from offset 0x0. - -Flashing images to OSPI: - -Below commands can be used to download tiboot3.bin, tispl.bin, u-boot.img, -and sysfw.itb over tftp and then flash those to OSPI at their respective -addresses. - -.. prompt:: bash => - - sf probe - tftp ${loadaddr} tiboot3.bin - sf update $loadaddr 0x0 $filesize - tftp ${loadaddr} tispl.bin - sf update $loadaddr 0x80000 $filesize - tftp ${loadaddr} u-boot.img - sf update $loadaddr 0x280000 $filesize - tftp ${loadaddr} sysfw.itb - sf update $loadaddr 0x6C0000 $filesize - -Flash layout for OSPI: - -.. image:: img/ospi_sysfw.svg - :alt: OSPI flash partition layout - -Firmwares: ----------- +Firmware: +--------- The J721e u-boot allows firmware to be loaded for the Cortex-R5 subsystem. The CPSW5G in J7200 and CPSW9G in J721E present in MAIN domain is configured diff --git a/doc/board/ti/j784s4_evm.rst b/doc/board/ti/j784s4_evm.rst index 5c4bd2c927d..2ffec3dbd3b 100644 --- a/doc/board/ti/j784s4_evm.rst +++ b/doc/board/ti/j784s4_evm.rst @@ -153,6 +153,31 @@ Image formats .. image:: img/dm_tispl.bin.svg :alt: tispl.bin format +OSPI: +----- +ROM supports booting from OSPI from offset 0x0. + +Flashing images to OSPI NOR: + +Below commands can be used to download tiboot3.bin, tispl.bin, and +u-boot.img over tftp and then flash those to OSPI at their respective +addresses. + +.. prompt:: bash => + + sf probe + tftp ${loadaddr} tiboot3.bin + sf update $loadaddr 0x0 $filesize + tftp ${loadaddr} tispl.bin + sf update $loadaddr 0x80000 $filesize + tftp ${loadaddr} u-boot.img + sf update $loadaddr 0x280000 $filesize + +Flash layout for OSPI NOR: + +.. image:: img/ospi_sysfw3.svg + :alt: OSPI NOR flash partition layout + R5 Memory Map ------------- @@ -262,6 +287,9 @@ section. * - SD - 0000 + * - OSPI + - 0010 + * - EMMC - 0110 diff --git a/doc/board/ti/k3.rst b/doc/board/ti/k3.rst index a1c01d1cf02..927f3976d34 100644 --- a/doc/board/ti/k3.rst +++ b/doc/board/ti/k3.rst @@ -51,14 +51,14 @@ For all K3 SoCs the first core started will be inside the Security Management Subsystem (SMS) which will secure the device and start a core in the wakeup domain to run the ROM code. ROM will then initialize the boot media needed to load the binaries packaged inside `tiboot3.bin`, -including a 32bit U-Boot SPL, (called the wakup SPL) that ROM will jump +including a 32bit U-Boot SPL, (called the wakeup SPL) that ROM will jump to after it has finished loading everything into internal SRAM. .. image:: img/boot_flow_01.svg :alt: Boot flow up to wakeup domain SPL The wakeup SPL, running on a wakeup domain core, will initialize DDR and -any peripherals needed load the larger binaries inside the `tispl.bin` +any peripherals needed to load the larger binaries inside the `tispl.bin` into DDR. Once loaded the wakeup SPL will start one of the 'big' application cores inside the main domain to initialize the main domain, starting with Trusted Firmware-A (TF-A), before moving on to start @@ -94,7 +94,7 @@ essentially 4 unique but very similar flows: * Combined binary with a split firmware: (eg: AM62) For devices that utilize the split binary approach, ROM is not capable -of loading the firmware into the SoC requiring the wakeup domain's +of loading the firmware into the SoC, requiring the wakeup domain's U-Boot SPL to load the firmware. Devices with a split firmware will have two firmwares loaded into the @@ -114,8 +114,8 @@ K3 HS-SE (High Security - Security Enforced) devices enforce an authenticated boot flow for secure boot. HS-FS (High Security - Field Securable) is the state of a K3 device before it has been eFused with customer security keys. In the HS-FS state the authentication still can -function as in HS-SE but as there are no customer keys to verify the -signatures against the authentication will pass for certificates signed +function as in HS-SE, but as there are no customer keys to verify the +signatures against, the authentication will pass for certificates signed with any key. Chain of trust diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst index 0389b269c01..36ac75278fa 100644 --- a/doc/develop/uefi/uefi.rst +++ b/doc/develop/uefi/uefi.rst @@ -631,6 +631,18 @@ where version.dtso looks like:: The properties of image-type-id and image-index must match the value defined in the efi_fw_image array as image_type_id and image_index. +Porting Capsule Updates to new boards +************************************* + +It is important, when using a reference board as a starting point for a custom +board, that certain steps are taken to properly support Capsule Updates. + +Capsule GUIDs need to be unique for each firmware and board. That is, if two +firmwares are built from the same source but result in different binaries +because they are built for different boards, they should have different GUIDs. +Therefore it is important when creating support for a new board, new GUIDs are +defined in the board's header file. *DO NOT* reuse capsule GUIDs. + Executing the boot manager ~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/include/configs/am62px_evm.h b/include/configs/am62px_evm.h index 06b12860e21..57a1ba9dc3c 100644 --- a/include/configs/am62px_evm.h +++ b/include/configs/am62px_evm.h @@ -8,6 +8,30 @@ #ifndef __CONFIG_AM62PX_EVM_H #define __CONFIG_AM62PX_EVM_H +/** + * define AM62PX_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM62PX sk tiboot3.bin + * define AM62PX_SK_SPL_IMAGE_GUID - firmware GUID for AM62PX sk SPL + * define AM62PX_SK_UBOOT_IMAGE_GUID - firmware GUID for AM62PX sk UBOOT + * + * 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 AM62PX_SK_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0xb08471b7, 0xbe2d, 0x4489, 0x87, 0xa1, \ + 0xca, 0xb2, 0x8a, 0x0c, 0xf7, 0x43) + +#define AM62PX_SK_SPL_IMAGE_GUID \ + EFI_GUID(0xd02ed781, 0x6d71, 0x4c1a, 0xa9, 0x99, \ + 0x3c, 0x6a, 0x41, 0xc3, 0x63, 0x24) + +#define AM62PX_SK_UBOOT_IMAGE_GUID \ + EFI_GUID(0x7e6aea51, 0x965c, 0x44ab, 0xb3, 0x88, \ + 0xda, 0xeb, 0x03, 0xb5, 0x4f, 0x66) + /* Now for the remaining common defines */ #include diff --git a/include/configs/am62x_evm.h b/include/configs/am62x_evm.h index c8fe59b7531..0d98f14a4bc 100644 --- a/include/configs/am62x_evm.h +++ b/include/configs/am62x_evm.h @@ -9,6 +9,30 @@ #ifndef __CONFIG_AM625_EVM_H #define __CONFIG_AM625_EVM_H +/** + * define AM62X_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM62X sk tiboot3.bin + * define AM62X_SK_SPL_IMAGE_GUID - firmware GUID for AM62X sk SPL + * define AM62X_SK_UBOOT_IMAGE_GUID - firmware GUID for AM62X sk UBOOT + * + * 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 AM62X_SK_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0xabcb83d2, 0x9cb6, 0x4351, 0xb8, 0xf1, \ + 0x64, 0x94, 0xbb, 0xe3, 0x70, 0x0a) + +#define AM62X_SK_SPL_IMAGE_GUID \ + EFI_GUID(0xaee355fc, 0xbf97, 0x4264, 0x8c, 0x82, \ + 0x43, 0x72, 0x55, 0xef, 0xdc, 0x1d) + +#define AM62X_SK_UBOOT_IMAGE_GUID \ + EFI_GUID(0x28ab8c6c, 0xfca8, 0x41d3, 0x8e, 0xa1, \ + 0x5f, 0x17, 0x1b, 0x7d, 0x29, 0x29) + /* Now for the remaining common defines */ #include diff --git a/include/configs/am64x_evm.h b/include/configs/am64x_evm.h index f9f8c7bc2f6..9db83621ea8 100644 --- a/include/configs/am64x_evm.h +++ b/include/configs/am64x_evm.h @@ -9,6 +9,30 @@ #ifndef __CONFIG_AM642_EVM_H #define __CONFIG_AM642_EVM_H +/** + * define AM64X_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM64X sk tiboot3.bin + * define AM64X_SK_SPL_IMAGE_GUID - firmware GUID for AM64X sk SPL + * define AM64X_SK_UBOOT_IMAGE_GUID - firmware GUID for AM64X sk UBOOT + * + * 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 AM64X_SK_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0xede0a0d5, 0x9116, 0x4bfb, 0xaa, 0x54, \ + 0x09, 0xe9, 0x7b, 0x5a, 0xfe, 0x1a) + +#define AM64X_SK_SPL_IMAGE_GUID \ + EFI_GUID(0x77678f5c, 0x64d4, 0x4910, 0xad, 0x75, \ + 0x52, 0xc9, 0xd9, 0x5c, 0xdb, 0x1d) + +#define AM64X_SK_UBOOT_IMAGE_GUID \ + EFI_GUID(0xc6ad43a9, 0x7d31, 0x4f5d, 0x83, 0xe9, \ + 0xb8, 0xef, 0xec, 0xae, 0x05, 0xbf) + /* Now for the remaining common defines */ #include 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 + +#endif /* __CONFIG_BEAGLEBONEAI64_H */ diff --git a/include/configs/beagleplay.h b/include/configs/beagleplay.h new file mode 100644 index 00000000000..4baeab664af --- /dev/null +++ b/include/configs/beagleplay.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Configuration header file for BeaglePlay + * + * https://beagleplay.org/ + * + * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/ + */ + +#ifndef __CONFIG_BEAGLEPLAY_H +#define __CONFIG_BEAGLEPLAY_H + +/** + * define BEAGLEPLAY_TIBOOT3_IMAGE_GUID - firmware GUID for BeaglePlay + * tiboot3.bin + * define BEAGLEPLAY_SPL_IMAGE_GUID - firmware GUID for BeaglePlay SPL + * define BEAGLEPLAY_UBOOT_IMAGE_GUID - firmware GUID for BeaglePlay UBOOT + * + * 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 BEAGLEPLAY_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0x0e225a09, 0xf720, 0x4d57, 0x91, 0x20, \ + 0xe2, 0x8f, 0x73, 0x7f, 0x5a, 0x5e) + +#define BEAGLEPLAY_SPL_IMAGE_GUID \ + EFI_GUID(0xb2e7cc49, 0x1a5a, 0x4036, 0xae, 0x01, \ + 0x33, 0x87, 0xc3, 0xbe, 0xf6, 0x57) + +#define BEAGLEPLAY_UBOOT_IMAGE_GUID \ + EFI_GUID(0x92c92b11, 0xa7ee, 0x486f, 0xaa, 0xa2, \ + 0x71, 0x3d, 0x84, 0x42, 0x5b, 0x0e) + +/* Now for the remaining common defines */ +#include + +#endif /* __CONFIG_BEAGLEPLAY_H */ diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index c26438c8684..a5140ea6a11 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -22,6 +22,35 @@ #define CFG_SYS_UBOOT_BASE 0x50080000 #endif +/** + * define J721E_SK_TIBOOT3_IMAGE_GUID - firmware GUID for J721e sk tiboot3.bin + * define J721E_SK_SPL_IMAGE_GUID - firmware GUID for J721e sk SPL + * define J721E_SK_UBOOT_IMAGE_GUID - firmware GUID for J721e sk UBOOT + * define J721E_SK_SYSFW_IMAGE_GUID - firmware GUID for J721e sk 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 J721E_SK_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0xe672b518, 0x7cd7, 0x4014, 0xbd, 0x8d, \ + 0x40, 0x72, 0x4d, 0x0a, 0xd4, 0xdc) + +#define J721E_SK_SPL_IMAGE_GUID \ + EFI_GUID(0x86f710ad, 0x10cf, 0x46ea, 0xac, 0x67, \ + 0x85, 0x6a, 0xe0, 0x6e, 0xfa, 0xd2) + +#define J721E_SK_UBOOT_IMAGE_GUID \ + EFI_GUID(0x81b58fb0, 0x3b00, 0x4add, 0xa2, 0x0a, \ + 0xc1, 0x85, 0xbb, 0xac, 0xa1, 0xed) + +#define J721E_SK_SYSFW_IMAGE_GUID \ + EFI_GUID(0x6fd10680, 0x361b, 0x431f, 0x80, 0xaa, \ + 0x89, 0x94, 0x55, 0x81, 0x9e, 0x11) + /* Now for the remaining common defines */ #include diff --git a/include/configs/j784s4_evm.h b/include/configs/j784s4_evm.h index 4a2ccdce144..53eb2bff221 100644 --- a/include/configs/j784s4_evm.h +++ b/include/configs/j784s4_evm.h @@ -9,6 +9,30 @@ #ifndef __CONFIG_J784S4_EVM_H #define __CONFIG_J784S4_EVM_H +/** + * define AM69_SK_TIBOOT3_IMAGE_GUID - firmware GUID for AM69 SK tiboot3.bin + * define AM69_SK_SPL_IMAGE_GUID - firmware GUID for AM69 SK SPL + * define AM69_SK_UBOOT_IMAGE_GUID - firmware GUID for AM69 SK UBOOT + * + * 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 AM69_SK_TIBOOT3_IMAGE_GUID \ + EFI_GUID(0xadf49ec5, 0x61bb, 0x4dbe, 0x8b, 0x8d, \ + 0x39, 0xdf, 0x4d, 0x7e, 0xbf, 0x46) + +#define AM69_SK_SPL_IMAGE_GUID \ + EFI_GUID(0x787f0059, 0x63a1, 0x461c, 0xa1, 0x8e, \ + 0x9d, 0x83, 0x83, 0x45, 0xfe, 0x8e) + +#define AM69_SK_UBOOT_IMAGE_GUID \ + EFI_GUID(0x9300505d, 0x6ec5, 0x4ff8, 0x99, 0xe4, \ + 0x54, 0x59, 0xa0, 0x4b, 0xe6, 0x17) + /* Now for the remaining common defines */ #include