From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heinrich Schuchardt Date: Wed, 30 Dec 2020 21:17:23 +0100 Subject: [PATCH 8/8 v2] doc: uefi: Add instruction for initrd loading In-Reply-To: <20201230150722.154663-9-ilias.apalodimas@linaro.org> References: <20201230150722.154663-1-ilias.apalodimas@linaro.org> <20201230150722.154663-9-ilias.apalodimas@linaro.org> Message-ID: <7a08de10-0256-9405-e4cb-49b7f6f72c61@gmx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 12/30/20 4:07 PM, Ilias Apalodimas wrote: > Add a description of the EFI variables needed to match a Boot#### > entry with an initrd. > > Signed-off-by: Ilias Apalodimas > --- > doc/uefi/uefi.rst | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/doc/uefi/uefi.rst b/doc/uefi/uefi.rst > index dc930d924022..d8b083ffa708 100644 > --- a/doc/uefi/uefi.rst > +++ b/doc/uefi/uefi.rst > @@ -229,6 +229,21 @@ UEFI variables. Booting according to these variables is possible via:: > As of U-Boot v2020.10 UEFI variables cannot be set at runtime. The U-Boot > command 'efidebug' can be used to set the variables. > > +Initrd with the boot manager > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +Kernel versions >= 5.6 can use EFI_LOAD_FILE2_PROTOCOL to load an initramfs. %s/can use EFI_LOAD_FILE2_PROTOCOL/can use the Load File 2 protocol/ > +When U-Boot is configured with CONFIG_EFI_LOAD_FILE2_INITRD=y the boot manager > +will install the protocol, if an EFI variable matching the BootCurrent value > +is found and contains a valid file path. The EFI variable name is 'Initrd####' When booting via the UEFI boot manager (command 'bootefi bootmgr') BootNext and BootOrder are used to identify a boot option to boot. The variable BootCurrent is set to the hexadecimal number of the selected boot option, e.g. to 0x001E if the image specified by Boot001E is selected. When U-Boot is configured with CONFIG_EFI_LOAD_FILE2_INITRD=y the boot manager will install the Load File 2 protocol if an EFI variable Initrd#### (e.g. Initrd001E) is found where #### matches the value of BootCurrent and Initrd#### contains a valid file path. > +and the file path format is ' '. The fist string is not a device but a class of devices. The third string is not a filename but a file path. [:] . partition defaults to 0 (whole disk). The user should be taught that the value of Initrd#### is a UTF8 string. An example string should be provided. > + > +This allows users to pair a kernel with a specific initramfs. > + > +Example: > +Boot0010 will search for Initrd0010 and try to install the protocol with > +the file path specified in Initrd0010. "When booting Boot001E U-Boot tries to install the Load File 2 protocol with the file specified by Initrd001E. If the intird is not found it will continue without init. What happens if Initrd#### does not point to a valid file? Shouldn't we then skip the boot option and continue with the next boot option? Please, show how to set Initrd0010 from the console, e.g. setenv -e -nv -bs -rt Initrd001E 'scsi 0:1 initrd' Best regards Heinrich > + > Executing the built in hello world application > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > >