From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
To: "Kummari, Prasad" <Prasad.Kummari@amd.com>
Cc: "Abbarapu, Venkatesh" <venkatesh.abbarapu@amd.com>,
"Begari, Padmarao" <Padmarao.Begari@amd.com>,
"xypron.glpk@gmx.de" <xypron.glpk@gmx.de>,
"u-boot@lists.denx.de" <u-boot@lists.denx.de>,
"Simek, Michal" <michal.simek@amd.com>,
"ilias.apalodimas@linaro.org" <ilias.apalodimas@linaro.org>
Subject: Re: Halting auto-boot process in the U-Boot shell https://lore.kernel.org/u-boot/20220614060203.33600-1-heinrich.schuchardt@canonical.com/
Date: Wed, 26 Feb 2025 09:23:00 +0100 [thread overview]
Message-ID: <e1cfde30-ae7f-4ae8-9845-0c13eaeae87f@canonical.com> (raw)
In-Reply-To: <SJ0PR12MB66857BFB90475FE74294CF0482C22@SJ0PR12MB6685.namprd12.prod.outlook.com>
On 2/26/25 07:48, Kummari, Prasad wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>
> Hi Heinrich,
>
> Regarding below commit.
>
> commit 68edbed454b863dbcd197e19e1ab26a0a05c7d85
> Author: Heinrich Schuchardt <xypron.glpk@gmx.de>
> AuthorDate: Tue Jun 14 08:02:03 2022 +0200
> Commit: Heinrich Schuchardt <xypron.glpk@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.schuchardt@canonical.com/ <https://lore.kernel.org/u-
> boot/20220614060203.33600-1-heinrich.schuchardt@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'*
Hello Prasad,
The terminal emulation seems to be sending a valid reply indicating 42
rows and 173 columns.
It could be that in your setup you are hitting the time out in
term_get_char().
Could you, please, check what happens if you apply
--- a/lib/efi_loader/efi_console.c
+++ b/lib/efi_loader/efi_console.c
@@ -92,8 +92,7 @@ static int term_get_char(s32 *c)
timeout = timer_get_us() + 100000;
while (!tstc())
- if (timer_get_us() > timeout)
- return 1;
+ ;
*c = getchar();
return 0;
If the failure disappears, next you would have to analyze why the
timeout is occurring (e.g. timer_get_us() running too fast).
If you still get failures, please, add debug output term_read_reply() to
understand what is happening.
Best regards
Heinrich
>
> *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.
>
next prev parent reply other threads:[~2025-02-26 8:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 6:48 Halting auto-boot process in the U-Boot shell https://lore.kernel.org/u-boot/20220614060203.33600-1-heinrich.schuchardt@canonical.com/ Kummari, Prasad
2025-02-26 8:23 ` Heinrich Schuchardt [this message]
2025-02-26 8:28 ` Michal Simek
2025-02-26 8:59 ` Heinrich Schuchardt
2025-02-26 9:04 ` Michal Simek
2025-02-27 16:25 ` Simon Glass
2025-02-28 14:42 ` Michal Simek
2025-03-06 13:56 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e1cfde30-ae7f-4ae8-9845-0c13eaeae87f@canonical.com \
--to=heinrich.schuchardt@canonical.com \
--cc=Padmarao.Begari@amd.com \
--cc=Prasad.Kummari@amd.com \
--cc=ilias.apalodimas@linaro.org \
--cc=michal.simek@amd.com \
--cc=u-boot@lists.denx.de \
--cc=venkatesh.abbarapu@amd.com \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.