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 D15DEC433F5 for ; Thu, 20 Jan 2022 05:31:35 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 670C882F73; Thu, 20 Jan 2022 06:31:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="V3YbEYkV"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 86DB0832CD; Thu, 20 Jan 2022 06:31:31 +0100 (CET) Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DE91B82F5E for ; Thu, 20 Jan 2022 06:31:27 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x634.google.com with SMTP id n8so4274005plc.3 for ; Wed, 19 Jan 2022 21:31:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=/FTX6t7h7XW07kYm1ZzxD2E+Rl0PFkfjUNcPX2d7hGc=; b=V3YbEYkVFE5CX3/Z5/pcvxumxpDW+fEcSEc4t7aZxjnly5adWX+Q9zhFEqfGPa7dvD W30hfkCzUx23njKOIc3X+Wnp+EeCRmk6XAz+beNbn0riSqWzp4puMSzdHYc19LtwITVm IFhNQ1U7iSGm2Ivv4HypirX4G3dD8qU7cvf0SFvnS/yao2VsQnEL7E6XMLU1OW/kEyTt E963/qK0SkN8i7vIlGgW923IbgZv2tPblkOanY0wZT83JuwauJcSK7k688/FSUPI5dqX 27QrXe2ZnePwxalMwjQCsWWGLtYSearjTK+CTLkg5PSbkZ8DD4O8y1APaZCwM8sRLAgt FN3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=/FTX6t7h7XW07kYm1ZzxD2E+Rl0PFkfjUNcPX2d7hGc=; b=FmqVuC7BUE0viYg3VmFWD4aTGOpIejQfbAZyO7X4ifPovz5WMKRmEkLQlsDNxIOuAH jwZRjJLC1Z6SAx7aZbIasXPVXl3fEJA6SMj/lXrnuF+HRyZgh7rf9qX+oZJvqXZfxIMa hY2zWx+XvUeYMq4MhtpWIoWC+8JZrv4Irn4rAeJf7gvCZ+TUbBRLHHBo8TN5gW0y8xl/ UWRe+J0vDbn0BXHHwTBpPpZ5bzafd3KaBCTLXU/vD8F4W95V9m3nW9Ou8iMjQoTV+oXw cfrVS9Y8xAkQm8f7JjyCilhapn5E7V8wyP4GjK+RC8hub1b7bCvol33vzFEJK+yXN0q3 UqWw== X-Gm-Message-State: AOAM5308scY6EOpxlRcVLcjko53FG+ibBPRhvl96YXwpfIPoBXZcHy5c y+e4tw9ZCv6g9Y9NOxtYXVNrVQ== X-Google-Smtp-Source: ABdhPJwp7OKZ86ucjiAZyffueEB+qIxtIRUqhJjHvo27AUte8FJpyn8IIVyP3P4Qz5kTjPW8WObYEQ== X-Received: by 2002:a17:902:bd4b:b0:149:4c30:6dd2 with SMTP id b11-20020a170902bd4b00b001494c306dd2mr35883563plx.93.1642656685663; Wed, 19 Jan 2022 21:31:25 -0800 (PST) Received: from laputa ([2400:4050:c3e1:100:35ef:d002:eb6d:1b5]) by smtp.gmail.com with ESMTPSA id mh11sm1014189pjb.3.2022.01.19.21.31.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jan 2022 21:31:24 -0800 (PST) Date: Thu, 20 Jan 2022 14:31:19 +0900 From: AKASHI Takahiro To: Sughosh Ganu Cc: u-boot@lists.denx.de, Masami Hiramatsu , Patrick Delaunay , Patrice Chotard , Heinrich Schuchardt , Alexander Graf , Simon Glass , Bin Meng , Ilias Apalodimas , Jose Marinho , Grant Likely , Tom Rini , Etienne Carriere Subject: Re: [RFC PATCH v3 0/9] FWU: Add support for FWU Multi Bank Update feature Message-ID: <20220120053119.GE42867@laputa> Mail-Followup-To: AKASHI Takahiro , Sughosh Ganu , u-boot@lists.denx.de, Masami Hiramatsu , Patrick Delaunay , Patrice Chotard , Heinrich Schuchardt , Alexander Graf , Simon Glass , Bin Meng , Ilias Apalodimas , Jose Marinho , Grant Likely , Tom Rini , Etienne Carriere References: <20220119185548.16730-1-sughosh.ganu@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220119185548.16730-1-sughosh.ganu@linaro.org> 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.2 at phobos.denx.de X-Virus-Status: Clean Sughosh, On Thu, Jan 20, 2022 at 12:25:39AM +0530, Sughosh Ganu wrote: > > The patchset adds support for the FWU Multi Bank Update[1] > feature. Certain aspects of the Dependable Boot[2] specification have > also been implemented. > > The FWU multi bank update feature is used for supporting multiple > sets(also called banks) of firmware image(s), allowing the platform to > boot from a different bank, in case it fails to boot from the active > bank. This functionality is supported by keeping the relevant > information in a structure called metadata, which provides information > on the images. Among other parameters, the metadata structure contains > information on the currect active bank that is being used to boot > image(s). > > Functionality is being added to work with the UEFI capsule driver in > u-boot. The metadata is read to gather information on the update bank, > which is the bank to which the firmware images would be flashed to. On > a successful completion of the update of all components, the active > bank field in the metadata is updated, to reflect the bank from which > the platform will boot on the subsequent boots. > > Currently, the feature is being enabled on the STM32MP157C-DK2 > board which boots a FIP image from a uSD card partitioned with the GPT > partioning scheme. Do you have a plan to develop any test cases for sandbox, especially in pytest framework? I don't see much difficulty to do so and it would be very helpful for U-Boot CI process. -Takahiro Akashi > This also requires changes in the previous stage of > bootloader, which parses the metadata and selects the bank to boot the > image(s) from. Support is being added in tf-a(BL2 stage) for the > STM32MP157C-DK2 board to boot the active bank images. These changes > are under review currently[3]. > > These patches are based on top of the series from Takahiro to add > Authentication support to mkeficapsule utility[4] > > [1] - https://developer.arm.com/documentation/den0118/a > [2] - https://staging-git.codelinaro.org/linaro/firmware-dual-banked-updates/test > [3] - https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/12566 > [4] - https://patchwork.ozlabs.org/project/uboot/list/?series=281549 > > Changes since V2: > * Use uint*_t types in fwu_mdata.h since the file is to be reused in > other projects > * Keep only the FWU metadata structures in fwu_mdata.h > * Move all other function and macro declarations in fwu.h > * Keep common implementations of fwu_update_active_index and > fwu_revert_boot_index in fwu_mdata.c > * Add a update_mdata function pointer in the fwu_mdata_ops structure > * Move the function definition of fwu_verify_mdata to fwu_mdata.c to > facilitate reuse > * Remove the block device specific desc->devnum parameter for the > fwu_plat_get_alt_num function call > * Change the implementation of fwu_plat_get_alt_num to get the devnum > in the function before calling gpt_plat_get_alt_num > * Add logic to delete the TrialStateCtr variable if system is not in > Trial State > * Add logic to check if bit 15(OS Acceptance) of the Flags member in > the capsule header is set > * Add logic to set the accept bit of all images from a capsule if the > OS Acceptance bit in the capsule header is not set > * Include the log.h and stdio.h header files > > Sughosh Ganu (9): > FWU: Add FWU metadata structure and functions for accessing metadata > FWU: Add FWU metadata access functions for GPT partitioned block > devices > FWU: stm32mp1: Add helper functions for accessing FWU metadata > FWU: STM32MP1: Add support to read boot index from backup register > EFI: FMP: Add provision to update image's ImageTypeId in image > descriptor > FWU: Add boot time checks as highlighted by the FWU specification > FWU: Add support for FWU Multi Bank Update feature > FWU: cmd: Add a command to read FWU metadata > mkeficapsule: Add support for generating empty capsules > > board/st/stm32mp1/stm32mp1.c | 183 ++++++++++ > cmd/Kconfig | 7 + > cmd/Makefile | 1 + > cmd/fwu_mdata.c | 67 ++++ > common/board_r.c | 6 + > include/fwu.h | 81 +++++ > include/fwu_mdata.h | 69 ++++ > lib/Kconfig | 6 + > lib/Makefile | 1 + > lib/efi_loader/efi_capsule.c | 233 ++++++++++++- > lib/efi_loader/efi_firmware.c | 90 ++++- > lib/efi_loader/efi_setup.c | 3 +- > lib/fwu_updates/Kconfig | 31 ++ > lib/fwu_updates/Makefile | 11 + > lib/fwu_updates/fwu.c | 198 +++++++++++ > lib/fwu_updates/fwu_mdata.c | 358 +++++++++++++++++++ > lib/fwu_updates/fwu_mdata_gpt_blk.c | 521 ++++++++++++++++++++++++++++ > tools/eficapsule.h | 8 + > tools/mkeficapsule.c | 102 +++++- > 19 files changed, 1955 insertions(+), 21 deletions(-) > create mode 100644 cmd/fwu_mdata.c > create mode 100644 include/fwu.h > create mode 100644 include/fwu_mdata.h > create mode 100644 lib/fwu_updates/Kconfig > create mode 100644 lib/fwu_updates/Makefile > create mode 100644 lib/fwu_updates/fwu.c > create mode 100644 lib/fwu_updates/fwu_mdata.c > create mode 100644 lib/fwu_updates/fwu_mdata_gpt_blk.c > > -- > 2.17.1 > >