From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46911C433F5 for ; Thu, 24 Mar 2022 14:25:59 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8167F840AA; Thu, 24 Mar 2022 15:25:49 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="H0Ne+c+6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5B90B840BD; Thu, 24 Mar 2022 15:25:47 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5a::60c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 43E76840AA for ; Thu, 24 Mar 2022 15:25:43 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=xilinx.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=michals@xilinx.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mRdIwX7+E8Ayk2hXsvIuqauOkocSLVF/7oHDrJhuxONHy8Wmq4OZ2BbeAre1QNRcfEtI6DwGYVx/vpNOzRamDHEq6ZPsrjIufS/Jg14MNhdguLtn/b5C4KOx9/sFvRTzx/5uv/XTdLalRLlAvnIIQgEdFOgcjJUf7vh9YPxEGnj807lV8zOk3qNBl3Wsfxfk/msUlzr5Aujb3lqZJsJTv8Dwnxa7Yme+3dpRmrlah4R18wXjG/+muaYWCwps80zUrLFrtZqjfO/+goiNdrIrdV5vFhFzvkAJRibSk1DsLEWj8o7dDop16wO4ZiBgirvu6Uwgmes+q4/0+AwR2ek26w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ww4jiJYGdjgczPL8J/FTrqW8yoeHi8SZV7hoyv4uxRE=; b=jV6HotIw+HIhkLqPrLvrwBNsECGn62VjrtDtYRNdIB11sPexZ2YaR51IqKzjJaV7We6mVLOtD4XmiJNbVDX5y8wiS7zvcgEnRzfmXTdPAhLtX/4TMcwsEezDvPg1I3GNLq74nnh1J6ddjQXPCCZjWeLDY5W3uBY9V3OX+108Ye6vgPo0RGafeaVvuAkx3BhBZduEBcsxMACs26hkKbwMJLHjE81wra85yDZdOKp6FNJ7A0f9szGF7nXp94nEbgTWAtJQQhQaAv8DTmTPoBWf+LE3jFwRyCO9a5xDEiOEnxOCuUnC/FE3qCwjYqQLiBwsWLHATSPRJIEy/23O3h3NZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=linaro.org smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ww4jiJYGdjgczPL8J/FTrqW8yoeHi8SZV7hoyv4uxRE=; b=H0Ne+c+6X589Xv13lBIEIqlwYMQIWZsS0tj6D8k3/UrCkKnkWDoxtvdr58EbCxB4W5FALuxIW3/rKf0yL4OZj62i6niOyCTsCx/hekE+sXmhMh5PWyhpbG3Dwi5ychMGYvtQ9I6Dbq1PaZXv7idZz2zZdgLFRaWI1xVzsnGfNmc= Received: from SA0PR13CA0023.namprd13.prod.outlook.com (2603:10b6:806:130::28) by BYAPR02MB5880.namprd02.prod.outlook.com (2603:10b6:a03:11d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Thu, 24 Mar 2022 14:25:33 +0000 Received: from SN1NAM02FT0029.eop-nam02.prod.protection.outlook.com (2603:10b6:806:130:cafe::ee) by SA0PR13CA0023.outlook.office365.com (2603:10b6:806:130::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.8 via Frontend Transport; Thu, 24 Mar 2022 14:25:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by SN1NAM02FT0029.mail.protection.outlook.com (10.97.4.175) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5102.17 via Frontend Transport; Thu, 24 Mar 2022 14:25:33 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Thu, 24 Mar 2022 07:25:20 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Thu, 24 Mar 2022 07:25:20 -0700 Envelope-to: sughosh.ganu@linaro.org, u-boot@lists.denx.de, xypron.glpk@gmx.de, ilias.apalodimas@linaro.org, takahiro.akashi@linaro.org, paul.liu@linaro.org, tuomas.tynkkynen@iki.fi, heiko.thiery@gmail.com, frieder.schrempf@kontron.de, michael@walle.cc, masami.hiramatsu@linaro.org, jaswinder.singh@linaro.org, monstr@monstr.eu Received: from [10.254.241.50] (port=43710) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1nXNdT-0007rc-EC; Thu, 24 Mar 2022 06:36:19 -0700 Message-ID: <85869705-7f39-5cfd-db22-9cca40af8979@xilinx.com> Date: Thu, 24 Mar 2022 14:36:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [RFC PATCH 1/6] capsule: Add Image GUIDs for platforms using capsule updates Content-Language: en-US To: Sughosh Ganu , CC: Heinrich Schuchardt , Ilias Apalodimas , AKASHI Takahiro , Ying-Chun Liu , Tuomas Tynkkynen , Heiko Thiery , Frieder Schrempf , Michael Walle , Masami Hiramatsu , Jassi Brar , Michal Simek , Michal Simek References: <20220324123901.429472-1-sughosh.ganu@linaro.org> <20220324123901.429472-2-sughosh.ganu@linaro.org> From: Michal Simek In-Reply-To: <20220324123901.429472-2-sughosh.ganu@linaro.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0e445ff-405d-4acb-9efb-08da0da22805 X-MS-TrafficTypeDiagnostic: BYAPR02MB5880:EE_ X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: asYsKF39KHSRWbbezgWZQxanI1LroShlr36pdF/PrepBfxKwsGpZXNW/StecpUpxMwHuAzNoLsuWPpzpn9pTxv099LqMhHxgvDRv0/ydKXk7TVqzIGFE6vc/DOnIkX0EdBTLmR5fNk1liwPNUP71L7dEIhQIMzw5tMWab+SyskW+R7ecO4BvqiWryhiqoc5xSg7IffFAV19Q4GEhidIpnR6g4gSH06a6HjF0xEp/dvusYJ0qPJ+Xziqgc5D4N6SLw/4N7v17gQYQGv1LohUB2H8j2sOaEdjAF9j4YT3yZARr7wQlmjvcBf5/Oxtw2ZgHJKVS6yKO1+JPQgA4ZjcUaN8ffkN41tPQ47R1HHfbdVS81cDdktSAnmgyaRZiuohVyQshwyqxy7WnbMa2DrOBr3LqFp1W9rl/QioQVSyXh+STngSX8AFL0zWFQ0SYSCqfEY1qxW+T6al02v937SKj/24F/hc/m/aZQT5x9Pvdalh2wltVAXjPIDaXMriZ9q6l2yQhmjKbn92OUgmLTAhHE3X9sz6qBu6ikGK8mo5IvT7UxeHF0zvRaXxxmvpiIZVdzP53vScLcSvSgbBNiTxTjdrVZEcf4Vmce59oQZPR6Y+Fx+5NAtE/3LU3yJ4SZmUtGcN70bPVJIJ1Ywe3f8LFB4fJeh+w1RHEyPX1gZCT8K3xkKxvq/0GgOJ0+rpDkdbAew6CS+JHSOS2yA3ZfAdW/Q24Cor98NreHxaeMFHF+p0= X-Forefront-Antispam-Report: CIP:149.199.62.198; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:xsj-pvapexch02.xlnx.xilinx.com; PTR:unknown-62-198.xilinx.com; CAT:NONE; SFS:(13230001)(4636009)(40470700004)(46966006)(36840700001)(54906003)(107886003)(36756003)(508600001)(356005)(110136005)(31696002)(2616005)(53546011)(7636003)(47076005)(316002)(426003)(82310400004)(83380400001)(186003)(336012)(26005)(15650500001)(40460700003)(7416002)(5660300002)(31686004)(36860700001)(4326008)(8936002)(30864003)(44832011)(9786002)(6666004)(70206006)(8676002)(70586007)(2906002)(50156003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2022 14:25:33.2729 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0e445ff-405d-4acb-9efb-08da0da22805 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.62.198]; Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: SN1NAM02FT0029.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB5880 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On 3/24/22 13:38, Sughosh Ganu wrote: > Currently, all platforms that enable capsule updates do so using > either EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID or > EFI_FIRMWARE_IMAGE_TYPE_UBOOT_FIT_GUID. This is based on the Firmware > Management Protocol(FMP) instance used on the platform. However, this > means that all platforms that enable a particular FMP instance have > the same GUID value for all the updatable images, either the FIT image > GUID or the raw image GUID, and that an image for some platform can be > updated on any other platform which uses the same FMP instance. Another > issue with this implementation is that the ESRT table shows the same > GUID value for all images on the platform and also across platforms, > which is not in compliance with the UEFI specification. > > Fix this by defining image GUID values and firmware names for > individual images per platform. The GetImageInfo FMP hook would then > populate these values in the image descriptor array. > > Signed-off-by: Sughosh Ganu > --- > .../imx8mp_rsb3720a1/imx8mp_rsb3720a1.c | 19 +++++++++++++++ > .../imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c | 18 +++++++++++++++ > board/emulation/qemu-arm/qemu-arm.c | 20 ++++++++++++++++ > board/kontron/pitx_imx8m/pitx_imx8m.c | 15 +++++++++++- > board/kontron/sl-mx8mm/sl-mx8mm.c | 14 +++++++++++ > board/kontron/sl28/sl28.c | 14 +++++++++++ > board/sandbox/sandbox.c | 17 ++++++++++++++ > board/socionext/developerbox/developerbox.c | 23 +++++++++++++++++++ > board/xilinx/common/board.h | 18 +++++++++++++++ > board/xilinx/zynq/board.c | 18 +++++++++++++++ > board/xilinx/zynqmp/zynqmp.c | 18 +++++++++++++++ > include/configs/imx8mm-cl-iot-gate.h | 10 ++++++++ > include/configs/imx8mp_rsb3720.h | 10 ++++++++ > include/configs/kontron-sl-mx8mm.h | 6 +++++ > include/configs/kontron_pitx_imx8m.h | 6 +++++ > include/configs/kontron_sl28.h | 6 +++++ > include/configs/qemu-arm.h | 10 ++++++++ > include/configs/sandbox.h | 10 ++++++++ > include/configs/synquacer.h | 14 +++++++++++ > include/efi_loader.h | 15 ++++++++++++ > 20 files changed, 280 insertions(+), 1 deletion(-) > > diff --git a/board/advantech/imx8mp_rsb3720a1/imx8mp_rsb3720a1.c b/board/advantech/imx8mp_rsb3720a1/imx8mp_rsb3720a1.c > index 16566092bd..6b534660fe 100644 > --- a/board/advantech/imx8mp_rsb3720a1/imx8mp_rsb3720a1.c > +++ b/board/advantech/imx8mp_rsb3720a1/imx8mp_rsb3720a1.c > @@ -6,6 +6,8 @@ > > #include > #include > +#include > +#include > #include > #include > #include > @@ -21,6 +23,7 @@ > #include > #include > #include > +#include > #include > > DECLARE_GLOBAL_DATA_PTR; > @@ -44,6 +47,22 @@ static void setup_gpmi_nand(void) > } > #endif > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > +#if defined(CONFIG_TARGET_IMX8MP_RSB3720A1_4G) > + .image_type_id = IMX8MP_RSB3720A1_4G_FIT_IMAGE_GUID, > +#elif defined(CONFIG_TARGET_IMX8MP_RSB3720A1_6G) > + .image_type_id = IMX8MP_RSB3720A1_6G_FIT_IMAGE_GUID, > +#endif > + .fw_name = u"IMX8MP-RSB3720-FIT" > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > + > int board_early_init_f(void) > { > struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR; > diff --git a/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c b/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c > index 7e2d88f449..ec73d75db3 100644 > --- a/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c > +++ b/board/compulab/imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c > @@ -5,6 +5,8 @@ > */ > > #include > +#include > +#include > #include > #include > #include > @@ -21,11 +23,27 @@ > #include > #include > #include > +#include > > #include "ddr/ddr.h" > > DECLARE_GLOBAL_DATA_PTR; > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > +#if defined(CONFIG_TARGET_IMX8MM_CL_IOT_GATE) > + .image_type_id = IMX8MM_CL_IOT_GATE_FIT_IMAGE_GUID, > +#elif defined(CONFIG_TARGET_IMX8MM_CL_IOT_GATE_OPTEE) > + .image_type_id = IMX8MM_CL_IOT_GATE_OPTEE_FIT_IMAGE_GUID, > +#endif > + .fw_name = u"IMX8MM-CL-IOT-GATE-FIT", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > int board_phys_sdram_size(phys_size_t *size) > { > struct lpddr4_tcm_desc *lpddr4_tcm_desc = > diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c > index 16d5a97167..99872ce0b8 100644 > --- a/board/emulation/qemu-arm/qemu-arm.c > +++ b/board/emulation/qemu-arm/qemu-arm.c > @@ -6,15 +6,35 @@ > #include > #include > #include > +#include > +#include > +#include > #include > #include > #include > #include > #include > > +#include > + > #ifdef CONFIG_ARM64 > #include > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > +#if defined(CONFIG_TARGET_QEMU_ARM_32BIT) > + .image_type_id = QEMU_ARM_UBOOT_IMAGE_GUID, > +#elif defined(CONFIG_TARGET_QEMU_ARM_64BIT) > + .image_type_id = QEMU_ARM64_UBOOT_IMAGE_GUID, > +#endif > + .fw_name = u"Qemu-Arm-UBOOT", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > static struct mm_region qemu_arm64_mem_map[] = { > { > /* Flash */ > diff --git a/board/kontron/pitx_imx8m/pitx_imx8m.c b/board/kontron/pitx_imx8m/pitx_imx8m.c > index d655fe099b..c3af951b14 100644 > --- a/board/kontron/pitx_imx8m/pitx_imx8m.c > +++ b/board/kontron/pitx_imx8m/pitx_imx8m.c > @@ -2,6 +2,8 @@ > > #include "pitx_misc.h" > #include > +#include > +#include > #include > #include > #include > @@ -12,7 +14,7 @@ > #include > #include > #include > - > +#include > > DECLARE_GLOBAL_DATA_PTR; > > @@ -30,6 +32,17 @@ static iomux_v3_cfg_t const uart_pads[] = { > IMX8MQ_PAD_ECSPI1_MISO__UART3_CTS_B | MUX_PAD_CTRL(UART_PAD_CTRL), > }; > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > + .image_type_id = KONTRON_PITX_IMX8M_FIT_IMAGE_GUID, > + .fw_name = u"KONTRON-PITX-IMX8M-UBOOT", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > int board_early_init_f(void) > { > struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR; > diff --git a/board/kontron/sl-mx8mm/sl-mx8mm.c b/board/kontron/sl-mx8mm/sl-mx8mm.c > index 48376cb826..4d25618895 100644 > --- a/board/kontron/sl-mx8mm/sl-mx8mm.c > +++ b/board/kontron/sl-mx8mm/sl-mx8mm.c > @@ -6,12 +6,26 @@ > #include > #include > #include > +#include > +#include > #include > #include > +#include > #include > > DECLARE_GLOBAL_DATA_PTR; > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > + .image_type_id = KONTRON_SL_MX8MM_FIT_IMAGE_GUID, > + .fw_name = u"KONTROL-SL-MX8MM-UBOOT", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > int board_phys_sdram_size(phys_size_t *size) > { > u32 ddr_size = readl(M4_BOOTROM_BASE_ADDR); > diff --git a/board/kontron/sl28/sl28.c b/board/kontron/sl28/sl28.c > index 3c48a9141d..a4985df4ea 100644 > --- a/board/kontron/sl28/sl28.c > +++ b/board/kontron/sl28/sl28.c > @@ -3,11 +3,14 @@ > #include > #include > #include > +#include > +#include > #include > #include > #include > #include > #include > +#include > #include > #include > #include > @@ -23,6 +26,17 @@ > > DECLARE_GLOBAL_DATA_PTR; > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > + .image_type_id = KONTRON_SL28_FIT_IMAGE_GUID, > + .fw_name = u"KONTRON-SL28-FIT", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > int board_early_init_f(void) > { > fsl_lsch3_early_init_f(); > diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c > index 5d9a945d64..8b0f3de1ea 100644 > --- a/board/sandbox/sandbox.c > +++ b/board/sandbox/sandbox.c > @@ -7,6 +7,8 @@ > #include > #include > #include > +#include > +#include > #include > #include > #include > @@ -25,6 +27,21 @@ > */ > gd_t *gd; > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > + .image_type_id = SANDBOX_UBOOT_IMAGE_GUID, > + .fw_name = u"SANDBOX-UBOOT", > + }, > + { > + .image_type_id = SANDBOX_UBOOT_ENV_IMAGE_GUID, > + .fw_name = u"SANDBOX-UBOOT-ENV", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > #if !CONFIG_IS_ENABLED(OF_PLATDATA) > /* > * Add a simple GPIO device (don't use with of-platdata as it interferes with > diff --git a/board/socionext/developerbox/developerbox.c b/board/socionext/developerbox/developerbox.c > index 9552bfcdc3..4df26f4019 100644 > --- a/board/socionext/developerbox/developerbox.c > +++ b/board/socionext/developerbox/developerbox.c > @@ -10,10 +10,33 @@ > #include > #include > #include > +#include > +#include > #include > #include > #include > > +#include > + > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +struct efi_fw_images fw_images[] = { > + { > + .image_type_id = DEVELOPERBOX_UBOOT_IMAGE_GUID, > + .fw_name = u"DEVELOPERBOX-UBOOT", > + }, > + { > + .image_type_id = DEVELOPERBOX_FIP_IMAGE_GUID, > + .fw_name = u"DEVELOPERBOX-FIP", > + }, > + { > + .image_type_id = DEVELOPERBOX_OPTEE_IMAGE_GUID, > + .fw_name = u"DEVELOPERBOX-OPTEE", > + }, > +}; > + > +u8 num_image_type_guids = ARRAY_SIZE(fw_images); > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ > + > static struct mm_region sc2a11_mem_map[] = { > { > .virt = 0x0UL, > diff --git a/board/xilinx/common/board.h b/board/xilinx/common/board.h > index 69e642429b..9bcac14946 100644 > --- a/board/xilinx/common/board.h > +++ b/board/xilinx/common/board.h > @@ -7,6 +7,24 @@ > #ifndef _BOARD_XILINX_COMMON_BOARD_H > #define _BOARD_XILINX_COMMON_BOARD_H > > +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT) > +#define ZYNQ_BOOT_IMAGE_GUID \ > + EFI_GUID(0x1ba29a15, 0x9969, 0x40aa, 0xb4, 0x24, \ > + 0xe8, 0x61, 0x21, 0x61, 0x86, 0x64) > + > +#define ZYNQ_UBOOT_IMAGE_GUID \ > + EFI_GUID(0x1a5178f0, 0x87d3, 0x4f36, 0xac, 0x63, \ > + 0x3b, 0x31, 0xa2, 0x3b, 0xe3, 0x05) > + > +#define ZYNQMP_BOOT_IMAGE_GUID \ > + EFI_GUID(0xde6066e8, 0x0256, 0x4fad, 0x82, 0x38, \ > + 0xe4, 0x06, 0xe2, 0x74, 0xc4, 0xcf) > + > +#define ZYNQMP_UBOOT_IMAGE_GUID \ > + EFI_GUID(0xcf9ecfd4, 0x938b, 0x41c5, 0x85, 0x51, \ > + 0x1f, 0x88, 0x3a, 0xb7, 0xdc, 0x18) > +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ I can't see any benefit to have it defined here for all. Directly in board or in include/configs/* seems to be better option. M