All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sumit Garg <sumit.garg@kernel.org>
To: Casey Connolly <casey.connolly@linaro.org>
Cc: Lukasz Majewski <lukma@denx.de>, Tom Rini <trini@konsulko.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Mattijs Korpershoek <mkorpershoek@kernel.org>,
	u-boot@lists.denx.de, u-boot-qcom@groups.io,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>
Subject: Re: [PATCH v2 0/4] Qualcomm: expand capsule update support
Date: Mon, 5 May 2025 10:44:34 +0530	[thread overview]
Message-ID: <aBhJOuZnaf43hpJ5@sumit-X1> (raw)
In-Reply-To: <45555006-5086-4017-ac88-cfb86c062322@linaro.org>

On Fri, May 02, 2025 at 04:32:44PM +0200, Casey Connolly wrote:
> 
> 
> On 5/2/25 14:37, Sumit Garg wrote:
> > On Fri, May 02, 2025 at 02:16:53PM +0200, Casey Connolly wrote:
> > > Hi Sumit,
> > > 
> > > On 5/2/25 12:50, Sumit Garg wrote:
> > > > Hi Casey
> > > > 
> > > > On Fri, Apr 11, 2025 at 05:03:33PM +0200, Caleb Connolly wrote:
> > > > > The initial capsule update support only worked on the RB3 Gen 2 and made
> > > > > a lot of assumptions specific to that board.
> > > > > 
> > > > > Implement the logic necessary to update U-Boot no matter where it was
> > > > > flashed to, independent of any particular board.
> > > > > 
> > > > > First, we keep track of how U-Boot was loaded, specifically if we had a
> > > > > valid external FDT (even if we didn't use it) this indicates that we
> > > > > were booted via the Android bootloader, in this case the target for
> > > > > capsule updates is the boot partition. Otherwise, we target the uefi
> > > > > partition (if it exists) or the xbl partition. We handle A/B support for
> > > > > all 3 (currently we always flash to the currently active partition with
> > > > > a minor exception for the uefi partition).
> > > > 
> > > > Does this means say if we are booting from "A" partition then the update
> > > > gets applied to "A" partition only? IOW, we don't support dual bank
> > > > updates as of now?
> > > 
> > > Yes exactly, to have A/B working we would need the following:
> > > 
> > > * Implement all the fiddly GPT stuff (the vendor bits but also swapping the
> > > partition type GUIDs between A/B partitions)
> > > * Change MMC/UFS boot block/LUN
> > > * Support flashing all other bootloader partitions via capsule update
> > > 
> > > And really some tooling to produce said capsule update files containing all
> > > the bootloader related images.
> > 
> > Thanks for the info, those can sure be next steps.
> > 
> > > 
> > > > 
> > > > > 
> > > > > We introduce two new fw_name strings to differentiate the GUIDs based on
> > > > > the target partition, this means one board can support multiple boot
> > > > > methods with capsule update support for all of them (typically this
> > > > > would be chainloading OR flashing U-Boot to XBL).
> > > > > 
> > > > > Lastly, the call to scsi_scan() in dfu_scsi.c is removed. Since
> > > > > scsi_scan() unbinds all scsi devices it breaks device handles maintained
> > > > > in the EFI layer for the duration of the capsule update process and
> > > > > causes the EFI filesystem access to delete the capsule file after the
> > > > > update to fail.
> > > > > 
> > > > > Boards should instead be responsible for calling scsi_scan() before
> > > > > initiating DFU.
> > > > 
> > > > Thanks for working on EFI firmware capsule updates feature. I think
> > > > currently we are missing any documentation from this patch-set. IOW, how
> > > > one can test updating U-Boot via EFI firmware capsules? I suppose we are
> > > > using here dynamic GUID generation while creating update capsules,
> > > > right?
> > > 
> > > Yes, we're using dynamic GUIDs. I have written a small tool and brief docs
> > > here for creating an LVFS cabinet which can be used with FWUPD
> > > 
> > > https://github.com/kcxt/mkcab
> > 
> > Thanks for working on that tooling. However, it would be better for
> > U-Boot documentation to instead use standard tooling like:
> > 
> > $ fwupdtool build-cabinet ARCHIVE FIRMWARE METAINFO
> > 
> > where we can provide an example meta info xml file in the docs for Qcom
> > platforms.
> 
> oh lol, you mean this exact thing already exists! grrr>

Yeah but TBH the documentation is pretty limited for that tool.

-Sumit

  reply	other threads:[~2025-05-05  5:14 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-11 15:03 [PATCH v2 0/4] Qualcomm: expand capsule update support Caleb Connolly
2025-04-11 15:03 ` [PATCH v2 1/4] mach-snapdragon: track boot source Caleb Connolly
2025-04-11 15:03 ` [PATCH v2 2/4] mach-snapdragon: CapsuleUpdate: support all boot methods Caleb Connolly
2025-04-11 15:03 ` [PATCH v2 3/4] dfu: scsi: don't call scsi_scan() Caleb Connolly
2025-04-11 15:03 ` [PATCH v2 4/4] qcom_defconfig: enable capsule update support Caleb Connolly
2025-05-02 10:50 ` [PATCH v2 0/4] Qualcomm: expand " Sumit Garg
2025-05-02 12:16   ` Casey Connolly
2025-05-02 12:37     ` Sumit Garg
2025-05-02 14:32       ` Casey Connolly
2025-05-05  5:14         ` Sumit Garg [this message]
2025-05-06  7:13 ` Sumit Garg
2025-05-06 11:33   ` Casey Connolly
2025-05-06 12:36     ` Sumit Garg
2025-05-06 13:26       ` Ilias Apalodimas
2025-05-07  8:48         ` Sumit Garg
2025-06-23 23:49 ` Casey Connolly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aBhJOuZnaf43hpJ5@sumit-X1 \
    --to=sumit.garg@kernel.org \
    --cc=casey.connolly@linaro.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=lukma@denx.de \
    --cc=mkorpershoek@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=trini@konsulko.com \
    --cc=u-boot-qcom@groups.io \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.