[AMD Official Use Only - AMD Internal Distribution Only]

Hi Heinrich,

Regarding below commit.

commit 68edbed454b863dbcd197e19e1ab26a0a05c7d85
Author:     Heinrich Schuchardt <xypron.g...@gmx.de>
AuthorDate: Tue Jun 14 08:02:03 2022 +0200
Commit:     Heinrich Schuchardt <xypron.g...@gmx.de>
CommitDate: Sun Jun 19 15:53:09 2022 +0200

    efi_loader: initialize console size late

    If CONFIG_VIDEO_DM=n we query the display size from the serial console.
    Especially when using a remote console the response can be so late that
    it interferes with autoboot.

    Only query the console size when running an EFI binary.
https://lore.kernel.org/u-boot/20220614060203.33600-1-heinrich.schucha...@canonical.com/

Commit 68edbed454b863dbcd197e19e1ab26a0a05c7d85 modifies the system to query 
the console size only when running an EFI binary. However, when 
CONFIG_EFI_CAPSULE_ON_DISK is enabled, the console is still being invoked, 
which shouldn't happen. This results in issues on our terminal, which cannot 
handle the resulting characters, leading to incorrect display and halting the 
auto-boot process in the U-Boot shell.

Log Output:

Warning: ethernet@ff0c0000 (eth0) using random MAC address - ee:df:0a:38:a8:c4
eth0: ethernet@ff0c0000, eth1: mrmac@a40f0000, eth2: mrmac@a40f1000, eth3: 
mrmac@a40f2000, eth4: mrmac@a40f3000
Cannot persist EFI variables without system partition
Missing TPMv2 device for EFI_TCG_PROTOCOL
Missing RNG device for EFI_RNG_PROTOCOL
Hit any key to stop autoboot:  0
Versal> [42;173R
Unknown command '[42' - try 'help'
Unknown command '173R' - try 'help'
Versal>


Debug logs:

Before entering the U-Boot shell, set a breakpoint at getc, which is invoked by 
efi_setup_console_size() and display problems and auto-boot interruptions.

 xsdb% bt
    0  0x7ff0d648 pl01x_serial_getc()+2011873280: 
drivers/serial/serial_pl01x.c, line 339
    1  0x7ff0d134 __serial_getc()+2011873316: drivers/serial/serial-uclass.c, 
line 310
    2  0x7ff47dcc efi_setup_console_size()+2011873540: 
lib/efi_loader/efi_console.c, line 291
    3  0x7ff4e40c efi_init_obj_list()+2011873316: lib/efi_loader/efi_setup.c, 
line 225
    4  0x7fed699c main_loop()+2011873324: common/main.c, line 61
    5  0x7fed69d8 add_mem_region()+2011873280: common/main.c, line 84
xsdb%

code snippet: Disabling the efi_setup_console_size() function prevents the 
issue from occurring.

diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
index aa59bc7779d..ad68ac19526 100644
--- a/lib/efi_loader/efi_setup.c
+++ b/lib/efi_loader/efi_setup.c
@@ -220,9 +220,10 @@ efi_status_t efi_init_obj_list(void)
        /* Initialize once only */
        if (efi_obj_list_initialized != OBJ_LIST_NOT_INITIALIZED)
                return efi_obj_list_initialized;
-
+#if 0
        /* Set up console modes */
        efi_setup_console_size();
+#endif

Regards,
Prasad.







Reply via email to