Re: [PATCH 1/1] efi: avoid video ghosting in EFI app

Heinrich Schuchardt via U-Boot <[email protected]>
Newsgroups org.u-boot-project.lists.u-boot
Message-ID <CAM=mAO=Eu8d-EQ3FgZ0jL3w8X2uMBddvWCLePb_+dhJGbnB6ig@mail.gmail.com>
Simon Glass <[email protected]> schrieb am Do., 6. Aug. 2026, 00:00:

> Hi Heinrich,
>
> On 2026-07-31T08:57:24, Heinrich Schuchardt
> <[email protected]> wrote:
> > efi: avoid video ghosting in EFI app
> >
> > When running the EFI app via QEMU with EDK II using
> >
> >   cp /usr/share/OVMF/OVMF_VARS_4M.fd .
> >   qemu-system-x86_64 -enable-kvm -m 2048 \
> >     -machine q35,smm=on \
> >     -drive
> if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \
> >     -drive if=pflash,format=raw,file=OVMF_VARS_4M.fd \
> >     -hda disk
> >
> > every character printed to the console by the U-Boot app appears twice.
> See
> > https://gist.github.com/xypron/7214e785c7d73104f8541bcac363a192 .
> >
> > The reason is that environment variable stdout has serial,vidconsole as
> > value. This is defined by board/efi/efi-x86_app/efi-x86_app.env including
> > include/env/x86.env.
> >
> > Provide a proper efi-x86_app.env file which does not use vidconsole.
> >
> > [...]
> >
> > board/efi/efi-x86_app/efi-x86_app.env | 13 ++++++++++++-
> >  1 file changed, 12 insertions(+), 1 deletion(-)
>
> > diff --git a/board/efi/efi-x86_app/efi-x86_app.env
> b/board/efi/efi-x86_app/efi-x86_app.env
> > @@ -1,6 +1,17 @@
> >  /* SPDX-License-Identifier: GPL-2.0+ */
> > +
> >  /*
> >   * Copyright (c) 2015 Google, Inc
> >   */
> >
> > -#include <env/x86.env>
> > +netdev=eth0
> > +consoledev=ttyS0
> > +scriptaddr=0x7000000
> > +kernel_addr_r=0x1000000
> > +ramdisk_addr_r=0x4000000
> > +ramdiskfile=initramfs.gz
> > +
> > +/* common console settings */
> > +stdin=serial
> > +stdout=serial
> > +stderr=serial
>
> Please can you keep '#include <env/x86.env>' and override just the
> three console variables afterwards?


Hello Simon,

the EFI app should not be x86 specific. You already fixed this in your
private repo.

Do you miss any value?

env2string.awk uses vars[var] =
> env, so a later assignment wins, and we avoid duplicating netdev,
> consoledev, scriptaddr, kernel_addr_r, ramdisk_addr_r and ramdiskfile
> — otherwise any future change to include/env/x86.env will drift away
> from the EFI app.
>
> Also, the previous include pulled in pciconfighost=1 which this
> version silently drops. If that is intentional it deserves a mention
> in the commit message; if not, the include-then-override approach
> fixes it for free.
>

The EFI must not drive any hardware directly. There is no value in
pciconfighost.

Best regards

Heinrich


> BTW an alternative is to leave x86.env alone and make the vidconsole
> entries conditional on something like !defined(CONFIG_EFI_APP), so
> efi-x86_payload.env and the other x86 boards keep sharing one source
> of truth. What do you think?
>
> Regards,
> Simon
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.