[PATCH 29/29] bloblist: Allow relocation at the end of the SPL phase
Tom Rini
trini at konsulko.com
Fri Feb 7 00:09:26 CET 2025
On Thu, Feb 06, 2025 at 02:27:28PM -0700, Simon Glass wrote:
> Hi Raymond,
>
> On Wed, 5 Feb 2025 at 08:35, Raymond Mao <raymond.mao at linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Tue, 4 Feb 2025 at 20:57, Simon Glass <sjg at chromium.org> wrote:
> > >
> > > Where the bloblist is located in internal memory and TF-A's BL31 blob
> > > removes access to this memory, the best option seems to be to relocate
> > > the bloblist just before running TF-A.
> > >
> > > Add an option to select this behaviour and provide a relocation address.
> > >
> > > Signed-off-by: Simon Glass <sjg at chromium.org>
> > > ---
> > >
> > > common/Kconfig | 20 ++++++++++++++++++++
> > > common/bloblist.c | 15 ++++++++++++++-
> > > common/spl/spl.c | 9 +++++++++
> > > 3 files changed, 43 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/common/Kconfig b/common/Kconfig
> > > index 0e8c44f3f74..962e7fd76eb 100644
> > > --- a/common/Kconfig
> > > +++ b/common/Kconfig
> > > @@ -1125,6 +1125,26 @@ config SPL_BLOBLIST_ALLOC
> > >
> > > endchoice
> > >
> > > +config SPL_BLOBLIST_RELOC
> > > + bool "Relocate the bloblist before existing SPL"
> > > + depends on BLOBLIST_FIXED
> > > + help
> > > + Some platforms locate the bloblist in SRAM in SPL. In some cases,
> > > + the TF-A BL31 blob removes access to SRAM, e.g. with Rockchip RK3399.
> > > +
> > > + Enable this option to make U-Boot copy the bloblist from SRAM to SDRAM
> > > + before leaving SPL.
> > > +
> > > +config SPL_BLOBLIST_RELOC_ADDR
> > > + hex "Relocate the bloblist before existing SPL"
> > > + depends on SPL_BLOBLIST_RELOC
> > > + default BLOBLIST_ADDR
> > > + help
> > > + Sets the address to which the bloblist is relocated at the end of SPL.
> > > + U-Boot proper uses this address when it starts up. Note that U-Boot
> > > + always relocates the bloblist again as part of its own relocation
> > > + process.
> > > +
> > > endif # SPL_BLOBLIST
> > >
> >
> > I think the relocation you mentioned is a board-specific behaviour and
> > should not be part of common/Kconfig if only a few boards use them.
>
> Where do you suggest this code should go?
What we need is a generic way to pass the bloblist we allocated in one
stage to the next, without saying "Ah, it's a fixed address". Then we
should just normally have each stage have a bloblist in a safe location,
as needed.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250206/b3c90f04/attachment.sig>
More information about the U-Boot
mailing list