[PATCH v3 5/9] board_f: Fix corruption of relocaddr

Tom Rini trini at konsulko.com
Thu Aug 3 15:13:37 CEST 2023


On Thu, Aug 03, 2023 at 07:03:47PM +0800, Bin Meng wrote:
> On Thu, Aug 3, 2023 at 6:37 PM Bin Meng <bmeng.cn at gmail.com> wrote:
> >
> > On Tue, Aug 1, 2023 at 12:00 AM Simon Glass <sjg at chromium.org> wrote:
> > >
> > > When the video framebuffer comes from the bloblist, we should not change
> > > relocaddr to this address, since it interfers with the normal memory
> >
> > typo: interferes
> >
> > > allocation.
> > >
> > > This fixes a boot loop in qemu-x86_64
> > >
> > > Signed-off-by: Simon Glass <sjg at chromium.org>
> > > Fixes: 5bc610a7d9d ("common: board_f: Pass frame buffer info from SPL to u-boot")
> > > Suggested-by: Nikhil M Jain <n-jain1 at ti.com>
> > > ---
> > >
> > > Changes in v3:
> > > - Reword the Kconfig help as suggested
> > >
> > > Changes in v2:
> > > - Add a Kconfig as the suggested conditional did not work
> > >
> > >  common/board_f.c      | 3 ++-
> > >  drivers/video/Kconfig | 9 +++++++++
> > >  2 files changed, 11 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/common/board_f.c b/common/board_f.c
> > > index 7d2c380e91e..5173d0a0c2d 100644
> > > --- a/common/board_f.c
> > > +++ b/common/board_f.c
> > > @@ -419,7 +419,8 @@ static int reserve_video(void)
> > >                 if (!ho)
> > >                         return log_msg_ret("blf", -ENOENT);
> > >                 video_reserve_from_bloblist(ho);
> > > -               gd->relocaddr = ho->fb;
> > > +               if (IS_ENABLED(CONFIG_VIDEO_RESERVE_SPL))
> > > +                       gd->relocaddr = ho->fb;
> > >         } else if (CONFIG_IS_ENABLED(VIDEO)) {
> > >                 ulong addr;
> > >                 int ret;
> > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > > index b41dc60cec5..f2e56204d52 100644
> > > --- a/drivers/video/Kconfig
> > > +++ b/drivers/video/Kconfig
> > > @@ -1106,6 +1106,15 @@ config SPL_VIDEO_REMOVE
> > >           if this  option is enabled video driver will be removed at the end of
> > >           SPL stage, beforeloading the next stage.
> > >
> > > +config VIDEO_RESERVE_SPL
> > > +       bool
> > > +       help
> > > +         This adjusts reserve_video() to redirect memory reservation when it
> > > +         sees a video handoff blob (BLOBLISTT_U_BOOT_VIDEO). This avoids the
> > > +         memory used for framebuffer from being allocated by U-Boot proper,
> > > +         thus preventing any further memory reservations done by U-Boot proper
> > > +         from overwriting the framebuffer.
> > > +
> > >  if SPL_SPLASH_SCREEN
> > >
> > >  config SPL_SPLASH_SCREEN_ALIGN
> >
> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
> 
> applied to u-boot-x86, thanks!

This isn't the right path, we need to test:
https://patchwork.ozlabs.org/project/uboot/patch/20230801140414.76216-1-devarsht@ti.com/

-- 
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/20230803/2e318e8d/attachment.sig>


More information about the U-Boot mailing list