From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2368FC43334 for ; Wed, 15 Jun 2022 06:35:12 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 128FE8442C; Wed, 15 Jun 2022 08:35:11 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="H5V8gyT0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 53E5D8442E; Wed, 15 Jun 2022 08:35:09 +0200 (CEST) Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B4B918442B for ; Wed, 15 Jun 2022 08:35:05 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pg1-x530.google.com with SMTP id 129so10548120pgc.2 for ; Tue, 14 Jun 2022 23:35:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=gAlEZN7VO+2UVmgjLQNH0TWGQnLIM2GF8yquHTNQ0v4=; b=H5V8gyT0dyYSwQ0+i7EtzygxMly6oXCmGi99Vn41jMaEPduYOt4K/KaGFdTOl4jFlR Iw91/7N/LqNay9xfCMnxDnHjeY2sfEsSrzExvnBZxv8Ldb2IwkwjkLZI6svRklczU9Lf H9CPtLMM8x1Lhf2mrrbUs0oAG3niVSppQ1NMA9OxHM4dPbCqfkGQtpUYjvan5OPSuNSJ K1Sv4mDkdULe1eF6EjvfS3OBeFE6/gSpCaNuFh4kGd8ArAbnhKN0eqaS9uQbwNQrxyKR xT7ykmpkhxtnM/41NCdz/WqlLclIhcauLFlCyEtOkcUFKEVOFd2gB5ztTsx9FU/IjicL I4Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=gAlEZN7VO+2UVmgjLQNH0TWGQnLIM2GF8yquHTNQ0v4=; b=gtU9A9xc4XSMcseoRcjnXsq/8lbAM7h10xLg8B056BKM3p/3sPovYuQvFH/PTrc7Pj t5DE11rwWIstMlrYq/9NNqsRADXtY58kKlXrMl2S05BO46hjM+a61Ft/BS4Gs7/ajz2P Wh7tFIZyUNWl1FSgJ09peX9ODrVzVF2kLBsUH7FgqtvNz8WMRP3cD1Sg7x+i7jT8vKLk ls2AEEGNR1BdXb6ySyOfZk289VgKXvc8hMqkUvrigTf6wXannL/xt8hxSx1IBvMhoQyQ kqFIR/be2cvZUyg00O1rn3A9edGLuA/TqHxl8/dwDQ9QA0uurx6RVco5wTxyfviskmYr AKqA== X-Gm-Message-State: AOAM532SW5W8j6h81LHQIJLLcP0mEHh11O/HS5wqLfDXMDs+l6Z923Cs wBfkDsAAdREZVYxJPDze8SpPVg== X-Google-Smtp-Source: AGRyM1vjs/ZTd6t69YxCNbM8f+FFLHoomh9uXm9Rj8VRVCxLGmaOjtrl8eS+EaY53jRiLRWR2yDUPg== X-Received: by 2002:aa7:83d4:0:b0:51c:3949:9c93 with SMTP id j20-20020aa783d4000000b0051c39499c93mr8019133pfn.10.1655274903976; Tue, 14 Jun 2022 23:35:03 -0700 (PDT) Received: from laputa ([2400:4050:c3e1:100:a4bc:d07a:731c:3758]) by smtp.gmail.com with ESMTPSA id jc21-20020a17090325d500b0015e8d4eb216sm8369922plb.96.2022.06.14.23.35.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jun 2022 23:35:03 -0700 (PDT) Date: Wed, 15 Jun 2022 15:34:59 +0900 From: AKASHI Takahiro To: Heinrich Schuchardt Cc: u-boot@lists.denx.de, Fabio Estevam , Mark Kettenis , Neil Armstrong , Simon Glass , Tom Rini , Heinrich Schuchardt , sughosh.ganu@linaro.org Subject: Re: [PATCH 1/1] efi_loader: initialize console size late Message-ID: <20220615063459.GF58082@laputa> Mail-Followup-To: AKASHI Takahiro , Heinrich Schuchardt , u-boot@lists.denx.de, Fabio Estevam , Mark Kettenis , Neil Armstrong , Simon Glass , Tom Rini , Heinrich Schuchardt , sughosh.ganu@linaro.org References: <20220614060203.33600-1-heinrich.schuchardt@canonical.com> <20220615061616.GD58082@laputa> <19b248fe-0e1f-75b3-d81f-27dcec90f5ff@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <19b248fe-0e1f-75b3-d81f-27dcec90f5ff@canonical.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On Wed, Jun 15, 2022 at 08:27:26AM +0200, Heinrich Schuchardt wrote: > > > On 6/15/22 08:16, AKASHI Takahiro wrote: > > On Tue, Jun 14, 2022 at 08:02:03AM +0200, Heinrich Schuchardt wrote: > > > From: Heinrich Schuchardt > > > > > > 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. > > > > > > Add debug output showing the determined console size. > > > > > > Reported-by: Fabio Estevam > > > Fixes: a9bf024b2933 ("efi_loader: disk: a helper function to create efi_disk objects from udevice") > > Said patch made CONFIG_EFI_SETUP_EARLY=y the default. I don't think so. Any config with this option enabled could cause the issue. > > > > If the key part of this patch is to move query_console_size() from > > efi_init_early() to efi_init_obj_list(), the to-be-fixed patch is not > > the one above but > > commit a57ad20d07e8 ("efi_loader: split efi_init_obj_list() into two stages") > > > > Moreover, this is just a warning but once Sughosh's patch, > > https://lists.denx.de/pipermail/u-boot/2022-June/485977.html > > is merged and FWU_MULTI_BANK_UPDATE is enabled, the said phenomenon can > > be triggered again because efi_init_obj_list(), hence query_console_size(), > > will be called in board_init_r() before showing the U-Boot prompt. > > Then we should not merge it as is. I think that your patch is a tentative workaround. -Takahiro Akashi > Best regards > > Heinrich > > > > > -Takahiro Akashi > > > > > Signed-off-by: Heinrich Schuchardt > > > --- > > > include/efi_loader.h | 2 ++ > > > lib/efi_loader/efi_console.c | 20 +++++++++++++------- > > > lib/efi_loader/efi_setup.c | 4 ++++ > > > 3 files changed, 19 insertions(+), 7 deletions(-) > > > > > > diff --git a/include/efi_loader.h b/include/efi_loader.h > > > index f6651e2c60..c1e00ebac3 100644 > > > --- a/include/efi_loader.h > > > +++ b/include/efi_loader.h > > > @@ -499,6 +499,8 @@ extern struct list_head efi_register_notify_events; > > > int efi_init_early(void); > > > /* Initialize efi execution environment */ > > > efi_status_t efi_init_obj_list(void); > > > +/* Set up console modes */ > > > +void efi_setup_console_size(void); > > > /* Install device tree */ > > > efi_status_t efi_install_fdt(void *fdt); > > > /* Run loaded UEFI image */ > > > diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c > > > index 60a3fc85ac..3164fd484e 100644 > > > --- a/lib/efi_loader/efi_console.c > > > +++ b/lib/efi_loader/efi_console.c > > > @@ -5,6 +5,8 @@ > > > * Copyright (c) 2016 Alexander Graf > > > */ > > > +#define LOG_CATEGORY LOGC_EFI > > > + > > > #include > > > #include > > > #include > > > @@ -12,6 +14,7 @@ > > > #include > > > #include > > > #include > > > +#include > > > #include > > > #include > > > #include > > > @@ -58,7 +61,12 @@ const efi_guid_t efi_guid_text_output_protocol = > > > #define cESC '\x1b' > > > #define ESC "\x1b" > > > -/* Default to mode 0 */ > > > +/* > > > + * efi_con_mode - mode information of the Simple Text Output Protocol > > > + * > > > + * Use safe settings before efi_setup_console_size() is called. > > > + * By default enable only the 80x25 mode which must always exist. > > > + */ > > > static struct simple_text_output_mode efi_con_mode = { > > > .max_mode = 1, > > > .mode = 0, > > > @@ -333,13 +341,13 @@ static int __maybe_unused query_vidconsole(int *rows, int *cols) > > > } > > > /** > > > - * query_console_size() - update the mode table. > > > + * efi_setup_console_size() - update the mode table. > > > * > > > * By default the only mode available is 80x25. If the console has at least 50 > > > * lines, enable mode 80x50. If we can query the console size and it is neither > > > * 80x25 nor 80x50, set it as an additional mode. > > > */ > > > -static void query_console_size(void) > > > +void efi_setup_console_size(void) > > > { > > > int rows = 25, cols = 80; > > > int ret = -ENODEV; > > > @@ -351,6 +359,8 @@ static void query_console_size(void) > > > if (ret) > > > return; > > > + log_debug("Console size %dx%d\n", rows, cols); > > > + > > > /* Test if we can have Mode 1 */ > > > if (cols >= 80 && rows >= 50) { > > > efi_cout_modes[1].present = 1; > > > @@ -371,7 +381,6 @@ static void query_console_size(void) > > > } > > > } > > > - > > > /** > > > * efi_cout_query_mode() - get terminal size for a text mode > > > * > > > @@ -1262,9 +1271,6 @@ efi_status_t efi_console_register(void) > > > efi_status_t r; > > > struct efi_device_path *dp; > > > - /* Set up mode information */ > > > - query_console_size(); > > > - > > > /* Install protocols on root node */ > > > r = EFI_CALL(efi_install_multiple_protocol_interfaces > > > (&efi_root, > > > diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c > > > index 250eeb2fcd..492ecf4cb1 100644 > > > --- a/lib/efi_loader/efi_setup.c > > > +++ b/lib/efi_loader/efi_setup.c > > > @@ -243,6 +243,10 @@ efi_status_t efi_init_obj_list(void) > > > goto out; > > > } > > > + /* Set up console modes */ > > > + efi_setup_console_size(); > > > + > > > + /* Install EFI_RNG_PROTOCOL */ > > > if (IS_ENABLED(CONFIG_EFI_RNG_PROTOCOL)) { > > > ret = efi_rng_register(); > > > if (ret != EFI_SUCCESS) > > > -- > > > 2.36.1 > > >