From mboxrd@z Thu Jan 1 00:00:00 1970 From: AKASHI Takahiro Date: Wed, 15 Jul 2020 13:41:31 +0900 Subject: [PATCH v3 06/17] efi_loader: add option to initialise EFI subsystem early In-Reply-To: <536c8a25-355e-3d13-5513-4c6bc6979a9c@gmx.de> References: <20200710012537.6264-1-takahiro.akashi@linaro.org> <20200710012537.6264-7-takahiro.akashi@linaro.org> <536c8a25-355e-3d13-5513-4c6bc6979a9c@gmx.de> Message-ID: <20200715044131.GD24274@laputa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Heinrich, On Fri, Jul 10, 2020 at 06:25:34PM +0200, Heinrich Schuchardt wrote: > On 10.07.20 03:25, AKASHI Takahiro wrote: > > If this option, CONFIG_EFI_SETUP_EARLY, is enabled, the initialisation > > of UEFI subsystem will be done as part of U-Boot initialisation. > > > > Please note that this option won't be enabled explicitly by users, > > instead, should be enabled implicitly by other configuration options. > > > > Specifically, this feature will be utilised in implementing capsule-on-disk > > feature. > > This breaks access to block devices in UEFI. You cannot do the > initialization before the initialization of block devices which > currently is not done automatically but requires commands like 'scsi > scan' in a script or entered manually. I know that, but I'm also sure there are some devices detected before executing such kind of commands. The reason that I added this configuration is to give users alternative choices depending on their systems and 'needs'. > It might make sense to scan all block devices automatically instead of > requiring command entry. I don't object to this idea, but it can break the compatibility with existing config_distro_bootcmd framework. -Takahiro Akashi > Best regards > > Heinrich > > > > > Signed-off-by: AKASHI Takahiro > > --- > > common/board_r.c | 6 ++++++ > > lib/efi_loader/Kconfig | 4 ++++ > > 2 files changed, 10 insertions(+) > > > > diff --git a/common/board_r.c b/common/board_r.c > > index fa57fa9b6993..dcb8c6f79d2f 100644 > > --- a/common/board_r.c > > +++ b/common/board_r.c > > @@ -68,6 +68,9 @@ > > #if defined(CONFIG_GPIO_HOG) > > #include > > #endif > > +#ifdef CONFIG_EFI_SETUP_EARLY > > +#include > > +#endif > > > > DECLARE_GLOBAL_DATA_PTR; > > > > @@ -858,6 +861,9 @@ static init_fnc_t init_sequence_r[] = { > > #endif > > #if defined(CONFIG_M68K) && defined(CONFIG_BLOCK_CACHE) > > blkcache_init, > > +#endif > > +#ifdef CONFIG_EFI_SETUP_EARLY > > + (init_fnc_t)efi_init_obj_list, > > #endif > > run_main_loop, > > }; > > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > > index 6c9df3a76763..f0a30a43bc48 100644 > > --- a/lib/efi_loader/Kconfig > > +++ b/lib/efi_loader/Kconfig > > @@ -27,6 +27,10 @@ config EFI_LOADER > > > > if EFI_LOADER > > > > +config EFI_SETUP_EARLY > > + bool > > + default n > > + > > config EFI_GET_TIME > > bool "GetTime() runtime service" > > depends on DM_RTC > > >