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

Simon Glass <[email protected]>
Newsgroups org.u-boot-project.lists.u-boot
Message-ID <CAFLszTg3Rw8fOabWEsTKJvkazwJrnQYnAfTgANX9XDjpUczVdQ@mail.gmail.com>
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? 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.

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.