Hi Pete, +various

Resurrecting this old thread since Ard pointed out an issue I ran into
myself had already been encountered by Pete.
And the bugzilla ticket (directly below this reply) has had no
relevant progress since August.

Executive summary:
The current UefiBootManagerLib implementation of the PlatformRecovery
path does not notify the EFI_EVENT_GROUP_READY_TO_BOOT event.

The argument has been made that since changing this would affect an
unnamed number of non-public platforms, the behaviour cannot be
changed even though it violates the UEFI specification.

I disagree with that statement. If we want to fork UefiBootManagerLib
into a BrokenLegacyUefiBootManagerLib and an actually correct one, and
have those platforms move to the BrokenLegacy variant, I'm OK with
that.

But using the default version should give specification-compliant
behaviour.

/
    Leif

On Tue, Jun 30, 2020 at 18:17:10 +0100, Pete Batard wrote:
> Please note that I have created a bug report
> (https://bugzilla.tianocore.org/show_bug.cgi?id=2831) to address the
> non-compliance issue was raised during the course of the discussion below.
> 
> Regards,
> 
> /Pete
> 
> 
> On 2020.06.17 18:06, Samer El-Haj-Mahmoud wrote:
> > I worked with Pete offline on this..
> > 
> > This code seems to be violating the UEFI Spec:
> > 
> > https://github.com/tianocore/edk2/blob/a56af23f066e2816c67b7c6e64de7ddefcd70780/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c#L1763
> > 
> >    //
> >    // 3. Signal the EVT_SIGNAL_READY_TO_BOOT event when we are about to 
> > load and execute
> >    //    the boot option.
> >    //
> >    if (BmIsBootManagerMenuFilePath (BootOption->FilePath)) {
> >      DEBUG ((EFI_D_INFO, "[Bds] Booting Boot Manager Menu.\n"));
> >      BmStopHotkeyService (NULL, NULL);
> >    } else {
> >      EfiSignalEventReadyToBoot();
> >      //
> >      // Report Status Code to indicate ReadyToBoot was signalled
> >      //
> >      REPORT_STATUS_CODE (EFI_PROGRESS_CODE, (EFI_SOFTWARE_DXE_BS_DRIVER | 
> > EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT));
> >      //
> >      // 4. Repair system through DriverHealth protocol
> >      //
> >      BmRepairAllControllers (0);
> >    }
> > 
> > The UEFI Spec section 3.1.7 clearly states that Boot Options (and their 
> > FilePathList) *shall not* be evaluated prior to the completion of 
> > EFI_EVENT_GROUP_READY_TO_BOOT event group processing:
> > 
> > "After all SysPrep#### variables have been launched and exited, the 
> > platform shall notify EFI_EVENT_GROUP_READY_TO_BOOT event group and begin 
> > to evaluate Boot#### variables with Attributes set to 
> > LOAD_OPTION_CATEGORY_BOOT according to the order defined by BootOrder. The 
> > FilePathList of variables marked LOAD_OPTION_CATEGORY_BOOT shall not be 
> > evaluated prior to the completion of EFI_EVENT_GROUP_READY_TO_BOOT event 
> > group processing."
> > 
> > This is a prescriptive language that is stronger than the language in 
> > section 7.1 which defines the ReadyToBoot event group in a general way:
> > 
> > "EFI_EVENT_GROUP_RESET_SYSTEM
> > This event group is notified by the system when ResetSystem() is invoked 
> > and the system is about to be reset. The event group is only notified prior 
> > to ExitBootServices() invocation."
> > 
> > The EDK2 code in the else block above (to call EfiSignalEventReadyToBoot() 
> > ) need to move before the code that is processing BootOption->FilePath. In 
> > fact, why is this signaling even a BootManager task? It should be a higher 
> > level BDS task (after processing SysPrp and before processing Boot options, 
> > per the spec). This would be somewhere around 
> > https://github.com/tianocore/edk2/blob/b15646484eaffcf7cc464fdea0214498f26addc2/MdeModulePkg/Universal/BdsDxe/BdsEntry.c#L1007
> >  where SysPrep is processed.
> > 
> > This should also take care of the issue Pete reported in this thread, 
> > without the need for explicitly signaling ReadyToBoot from PlatformRecovery 
> > (or changing the UEFI spec).
> > 
> > Thanks,
> > --Samer
> > 
> > 
> > 
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Samer 
> > El-Haj-Mahmoud via groups.io
> > Sent: Wednesday, June 17, 2020 12:42 PM
> > To: devel@edk2.groups.io; Andrei Warkentin (awarken...@vmware.com) 
> > <awarken...@vmware.com>; Wang, Sunny (HPS SW) <sunnyw...@hpe.com>; 
> > p...@akeo.ie
> > Cc: zhichao....@intel.com; ray...@intel.com; Ard Biesheuvel 
> > <ard.biesheu...@arm.com>; l...@nuviainc.com; Samer El-Haj-Mahmoud 
> > <samer.el-haj-mahm...@arm.com>
> > Subject: Re: [edk2-devel] [edk2][PATCH 1/1] 
> > MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery
> > 
> > The UEFI spec (3.1.7) says:
> > 
> > "After all SysPrep#### variables have been launched and exited, the 
> > platform shall notify EFI_EVENT_GROUP_READY_TO_BOOT event group and begin 
> > to evaluate Boot#### variables with Attributes set to 
> > LOAD_OPTION_CATEGORY_BOOT according to the order defined by BootOrder. The 
> > FilePathList of variables marked LOAD_OPTION_CATEGORY_BOOT shall not be 
> > evaluated prior to the completion of EFI_EVENT_GROUP_READY_TO_BOOT event 
> > group processing."
> > 
> > The way I read this, I expect ReadyToBoot to be signaled after SysPrep#### 
> > (if any) are processed, but before Boot#### are processed. Is my 
> > understanding correct that this language implies ReadyToBoot need to be 
> > signaled even if BootOrder does not contain any Boot#### options marked as 
> > LOAD_OPTION_CATEGORY_BOOT? And if so, is EDK2 not doing this, which leads 
> > us to this patch (signaling it in PlatformRecovery?)
> > 
> > 
> > 
> > From: mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io> On Behalf 
> > Of Andrei Warkentin via groups.io
> > Sent: Wednesday, June 17, 2020 12:37 PM
> > To: Wang, Sunny (HPS SW) <mailto:sunnyw...@hpe.com>; 
> > mailto:devel@edk2.groups.io; mailto:p...@akeo.ie
> > Cc: mailto:zhichao....@intel.com; mailto:ray...@intel.com; Ard Biesheuvel 
> > <mailto:ard.biesheu...@arm.com>; mailto:l...@nuviainc.com
> > Subject: Re: [edk2-devel] [edk2][PATCH 1/1] 
> > MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery
> > 
> > Thanks Pete.
> > 
> > I think the question I have, that I hope Tiano veterans can chime in, is 
> > whether we are doing the right thing, or if we should be overriding the 
> > boot mode? I.e. is it normal that we boot up in recovery until options are 
> > saved?
> > 
> > 
> > A
> > 
> > 
> > ________________________________________
> > From: mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io> on behalf 
> > of Pete Batard via groups.io <mailto:pete=akeo...@groups.io>
> > Sent: Wednesday, June 17, 2020 11:34 AM
> > To: Wang, Sunny (HPS SW) <mailto:sunnyw...@hpe.com>; 
> > mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> > Cc: mailto:zhichao....@intel.com <mailto:zhichao....@intel.com>; 
> > mailto:ray...@intel.com <mailto:ray...@intel.com>; 
> > mailto:ard.biesheu...@arm.com <mailto:ard.biesheu...@arm.com>; 
> > mailto:l...@nuviainc.com <mailto:l...@nuviainc.com>
> > Subject: Re: [edk2-devel] [edk2][PATCH 1/1] 
> > MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery
> > 
> > On 2020.06.17 14:04, Wang, Sunny (HPS SW) wrote:
> > > Thanks for checking my comments, Pete.
> > > 
> > > > Or is the "one more" the issue, meaning that it would get signaled more 
> > > > than once?
> > > [Sunny] Yeah, it would get signaled more than once if the 
> > > PlatformRecovery option (a UEFI application) calls EfiBootManagerBoot() 
> > > to launch the recovered boot option inside of the application.
> > 
> > Okay.
> > 
> > One element that I'm going to point out is that, with the current EDK2
> > code (i.e. without this proposal applied), and after a user goes into
> > the setup to save their boot options in order for regular boot options
> > to get executed instead of PlaformRecovery, the OnReadyToBoot event is
> > actually called twice.
> > 
> > So my understanding is that, while we of course want to avoid this and
> > any patch proposal should actively try to prevent it, it seems we
> > already have behaviour in EDK2 that can lead to OnReadyToBoot being
> > signalled more than once.
> > 
> > At least the current Pi 4 platform does demonstrate this behaviour. For
> > instance, if you run DEBUG, you will see two instances of:
> > 
> >     RemoveDtStdoutPath: could not retrieve DT blob - Not Found
> > 
> > which is a one-instance message generated from the ConsolePrefDxe's
> > OnReadyToBoot() call. I've also confirmed more specifically that
> > OnReadyToBoot() is indeed called twice.
> > 
> > I don't recall us doing much of any special with regards to boot options
> > for the Pi platform, so my guess is that it's probably not the only
> > platform where OnReadyToBoot might be signalled more than once, and that
> > this might be tied to a default EDK2 behaviour. Therefore I don't see
> > having a repeated event as a major deal breaker (though, again, if we
> > can avoid that, we of course will want to).
> > 
> > > > I don't mind trying an alternative approach, but I don't understand how 
> > > > what you describe would help. Can you please be more specific about 
> > > > what you have in mind?
> > > [Sunny] Sure. I added more information below. If it is still not clear 
> > > enough, feel free to let me know.
> > >        1. Create a UEFI application with the code to signal ReadyToBoot 
> > > and pick /efi/boot/bootaa64.efi from either SD or USB and run it.
> > 
> > So that would basically be adding code that duplicates, in part, what
> > Platform Recovery already does.
> > 
> > I have to be honest: Even outside of the extra work this would require,
> > I don't really like the idea of having to write our own application, as
> > it will introduce new possible points of failures and require extra
> > maintenance (especially as we will want to be able to handle network
> > boot and other options, and before long, I fear that we're going to have
> > to write our own Pi specific boot manager). Doing so simply because the
> > current Platform Recovery, which does suit our needs otherwise, is not
> > designed to call ReadyToBoot does not seem like the best course of
> > action in my book.
> > 
> > Instead, I still logically believe that any option that calls a boot
> > loader should signal ReadyToBoot, regardless of whether it was launched
> > from Boot Manager or Platform Recovery, and that it shouldn't be left to
> > each platform to work around that.
> > 
> > Of course, I understand that this would require a specs change, and that
> > it also may have ramifications for existing platforms that interpret the
> > current specs pedantically. But to me, regardless of what the specs
> > appear to be limiting it to right now, the logic of a "ReadyToBoot"
> > event is that it should be signalled whenever a bootloader is about to
> > be executed, rather than only when a bootloader happened to be launched
> > through a formal Boot Manager option.
> > 
> > I would therefore appreciate if other people could weigh in on this
> > matter, to see if I'm the only one who believes that we could ultimately
> > have more to gain from signalling ReadyToBoot with PlatformRecovery
> > options than leaving things as they stand right now...
> > 
> > >        2. Then, call EfiBootManagerInitializeLoadOption like the 
> > > following in a DXE driver or other places before "Default 
> > > PlatformRecovery" registration:
> > >     Status = EfiBootManagerInitializeLoadOption (
> > >                &LoadOption,
> > >                0,                                                         
> > >                     -> 0 is the OptionNumber to let application be load 
> > > before " Default PlatformRecovery" option
> > >                LoadOptionTypePlatformRecovery,
> > >                LOAD_OPTION_ACTIVE,
> > >                L"Application for recovering boot options",
> > >                FilePath,                                                  
> > >               -> FilePath is the Application's device path,
> > >                NULL,
> > >                0
> > >                );
> > > 
> > > 
> > > > My reasoning is that, if PlatformRecovery#### can execute a regular 
> > > > bootloader like /efi/boot/boot####.efi from installation media, then it 
> > > > should go through the same kind of initialization that happens for a 
> > > > regular boot option, and that should include signaling the ReadyToBoot 
> > > > event.
> > > [Sunny] Thanks for clarifying this, and Sorry about that I missed your 
> > > cover letter for this patch.  I was just thinking that we may not really 
> > > need to make this behavior change in both EDK II code and UEFI 
> > > specification for solving the problem specific to the case that OS is 
> > > loaded by "Default PlatformRecovery" option,
> > 
> > The way I see it is that the Pi platform is unlikely to be the only one
> > where PlatformRecovery is seen as a means to install an OS. Granted,
> > this may seem like abusing the option, but since UEFI doesn't provide an
> > "Initial OS Install" mode, I would assert that it as good a use of this
> > option as any.
> > 
> > In other words, I don't think this improvement would only benefit the Pi
> > platform.
> > 
> > > and I'm also not sure if it is worth making this change to affect some of 
> > > the system or BIOS vendors who have implemented their PlatformRecovery 
> > > option.
> > 
> > That's a legitimate concern, and I would agree the one major potential
> > pitfall of this proposal, if there happens to exist a system where an
> > OnReadyToBoot even before running the recovery option can have adverse
> > effects.
> > 
> > I don't really believe that such a system exists, because I expect most
> > recovery boot loaders to also work (or at least have been designed to
> > work) as regular boot options. But I don't have enough experience with
> > platform recovery to know if that's a correct assertion to make...
> > 
> > > If the alternative approach I mentioned works for you, I think that would 
> > > be an easier solution.
> > 
> > Right now, even as the patch proposal has multiple issues that require
> > it to be amended (Don't signal ReadyToBoot except for PlatformRecovery
> > + Prevent situations where ReadyToBoot could be signalled multiple
> > times) I still see it as both an easier solution than the alternative,
> > as well as one that *should* benefit people who design Platform Recovery
> > UEFI applications in the long run. So that is why I am still trying to
> > advocate for it.
> > 
> > But I very much hear your concerns, and I agree that specs changes are
> > better avoided when possible.
> > 
> > Thus, at this stage, even as I don't want to drag this discussion much
> > further, I don't feel like I want to commit to one solution or the other
> > before we have had a chance to hear other people, who may have their own
> > opinion on the matter, express their views.
> > 
> > Regards,
> > 
> > /Pete
> > 
> > 
> > > 
> > > Regards,
> > > Sunny Wang
> > > 
> > > -----Original Message-----
> > > From: Pete Batard [mailto:p...@akeo.ie]
> > > Sent: Wednesday, June 17, 2020 6:59 PM
> > > To: Wang, Sunny (HPS SW) <mailto:sunnyw...@hpe.com>; 
> > > mailto:devel@edk2.groups.io
> > > Cc: mailto:zhichao....@intel.com; mailto:ray...@intel.com; 
> > > mailto:ard.biesheu...@arm.com; mailto:l...@nuviainc.com
> > > Subject: Re: [edk2-devel] [edk2][PATCH 1/1] 
> > > MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery
> > > 
> > > Hi Sunny, thanks for looking into this.
> > > 
> > > On 2020.06.17 09:16, Wang, Sunny (HPS SW) wrote:
> > > > Hi Pete.
> > > > 
> > > > Since the EfiBootManagerProcessLoadOption is called by 
> > > > ProcessLoadOptions as well, your change would also cause some 
> > > > unexpected behavior like:
> > > > 1. Signal one more ReadyToBoot for the PlatformRecovery option which is 
> > > > an application that calls EfiBootManagerBoot() to launch its recovered 
> > > > boot option.
> > > 
> > > I'm not sure I understand how this part is unwanted.
> > > 
> > > The point of this patch is to ensure that ReadyToBoot is signalled for 
> > > the PlatformRecovery option, so isn't what you describe above exactly 
> > > what we want?
> > > 
> > > Or is the "one more" the issue, meaning that it would get signalled more 
> > > than once?
> > > 
> > > 
> > > > 2. Signal ReadyToBoot for SysPrep#### or Driver#### that is not really 
> > > > a "boot" option.
> > > 
> > > Yes, I've been wondering about that, because BdsEntry.c's 
> > > ProcessLoadOptions(), which calls EfiBootManagerProcessLoadOption(),
> > > mentions that it will load will load and start every Driver####, 
> > > SysPrep#### or PlatformRecovery####. But the comment about the while() 
> > > loop in EfiBootManagerProcessLoadOption() only mentions 
> > > PlatformRecovery####.
> > > 
> > > If needed, I guess we could amend the patch to detect the type of option 
> > > and only signal ReadyToBoot for PlatformRecovery####.
> > > 
> > > > To solve your problem, creating a PlatformRecovery option with the 
> > > > smallest option number and using it instead of default one (with 
> > > > short-form File Path Media Device Path) looks like a simpler solution.
> > > 
> > > I don't mind trying an alternative approach, but I don't understand how 
> > > what you describe would help. Can you please be more specific about what 
> > > you have in mind?
> > > 
> > > Our main issue here is that we must have ReadyToBoot signalled so that 
> > > the ReadyToBoot() function callback from 
> > > EmbeddedPkg/Drivers/ConsolePrefDxe gets executed in order for the boot 
> > > loader invoked from PlatformRecovery####  to use a properly initialized 
> > > graphical console. So I'm not sure I quite get how switching from one 
> > > PlatformRecovery#### option to another would improve things.
> > > 
> > > If it helps, here is what we currently default to, in terms of boot 
> > > options, on a Raspberry Pi 4 platform with a newly build firmware:
> > > 
> > > [Bds]=============Begin Load Options Dumping ...=============
> > >      Driver Options:
> > >      SysPrep Options:
> > >      Boot Options:
> > >        Boot0000: UiApp              0x0109
> > >        Boot0001: UEFI Shell                 0x0000
> > >      PlatformRecovery Options:
> > >        PlatformRecovery0000: Default PlatformRecovery               0x0001
> > > [Bds]=============End Load Options Dumping=============
> > > 
> > > With this, PlatformRecovery0000 gets executed by default, which is what 
> > > we want, since it will pick /efi/boot/bootaa64.efi from either SD or USB 
> > > and run it, the only issue being that, because ReadyToBoot has not been 
> > > executed, the graphical console is not operative so users can't interact 
> > > with the OS installer.
> > > 
> > > So I'm really not sure how adding an extra PlatformRecovery#### would 
> > > help. And I'm also not too familiar with how one would go around to add 
> > > such an entry...
> > > 
> > > > By the way, I also checked the UEFI specification. It looks making 
> > > > sense to only signal ReadyToBoot for boot option (Boot####).
> > > 
> > > That's something I considered too, but I disagree with this conclusion.
> > > 
> > > My reasoning is that, if PlatformRecovery#### can execute a regular 
> > > bootloader like /efi/boot/boot####.efi from installation media, then it 
> > > should go through the same kind of initialization that happens for a 
> > > regular boot option, and that should include signalling the ReadyToBoot 
> > > event.
> > > 
> > > If there was a special bootloader for PlatformRecovery#### (e.g.
> > > /efi/boot/recovery####.efi) then I would agree with only signalling 
> > > ReadyToBoot for a formal Boot#### option. But that isn't the case, so I 
> > > think it is reasonable to want to have ReadyToBoot also occur when a 
> > > /efi/boot/boot####.efi bootloader is executed from PlatformRecovery####., 
> > > especially when we know it can be crucial to ensuring that the end user 
> > > can actually use the graphical console.
> > > 
> > > > Therefore, your change may also require specification change.
> > > 
> > > Yes, I mentioned that in the cover letter for this patch 
> > > (https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F61327&amp;data=02%7C01%7Cawarkentin%40vmware.com%7C5f90d077bc7949c1122f08d812dc48d3%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637280084611749324&amp;sdata=2%2B%2FcvMkrmZGTRRLDGSuMsKbiyDOGtwYwZ7qSqMyMicc%3D&amp;reserved=0
> > >  ), which also describes the issue we are trying to solve in greater 
> > > details. This is what I wrote:
> > > 
> > > ------------------------------------------------------------------------
> > > Note however that this may require a specs update, as the current UEFI 
> > > specs for EFI_BOOT_SERVICES.CreateEventEx() have:
> > > 
> > >    >  EFI_EVENT_GROUP_READY_TO_BOOT
> > >    >    This event group is notified by the system when the Boot Manager
> > >    >    is about to load and execute a boot option.
> > > 
> > > and, once this patch has been applied, we may want to update this section 
> > > to mention that it applies to both Boot Manager and Platform Recovery.
> > > ------------------------------------------------------------------------
> > > 
> > > 
> > > Again, I don't have an issue with trying to use an alternate approach to 
> > > solve our problem (though I ultimately believe that, if 
> > > PlatformRecovery#### can launch a /efi/boot/boot####.efi bootloader then 
> > > we must update the specs and the code to have ReadyToBoot also signalled 
> > > then, because that's the logical thing to do). But right now, I'm not 
> > > seeing how to achieve that when PlatformRecovery#### is the option that 
> > > is used to launch the OS installation the bootloader. So if you can 
> > > provide mode details on how exactly you think creating an alternate 
> > > PlatformRecovery option would help, I would appreciate it.
> > > 
> > > Regards,
> > > 
> > > /Pete
> > > 
> > > > 
> > > > Regards,
> > > > Sunny Wang
> > > > 
> > > > -----Original Message-----
> > > > From: mailto:devel@edk2.groups.io [mailto:devel@edk2.groups.io] On 
> > > > Behalf Of
> > > > Pete Batard
> > > > Sent: Tuesday, June 16, 2020 5:56 PM
> > > > To: mailto:devel@edk2.groups.io
> > > > Cc: mailto:zhichao....@intel.com; mailto:ray...@intel.com; 
> > > > mailto:ard.biesheu...@arm.com;
> > > > mailto:l...@nuviainc.com
> > > > Subject: [edk2-devel] [edk2][PATCH 1/1]
> > > > MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform
> > > > recovery
> > > > 
> > > > Currently, the ReadyToBoot event is only signaled when a formal Boot 
> > > > Manager option is executed (in BmBoot.c -> EfiBootManagerBoot ()).
> > > > 
> > > > However, with the introduction of Platform Recovery in UEFI 2.5, which 
> > > > may lead to the execution of a boot loader that has similar 
> > > > requirements to a regular one, yet is not launched as a Boot Manager 
> > > > option, it also becomes necessary to signal ReadyToBoot when a Platform 
> > > > Recovery boot loader runs.
> > > > 
> > > > Especially, this can be critical to ensuring that the graphical console 
> > > > is actually usable during platform recovery, as some platforms do rely 
> > > > on the ConsolePrefDxe driver, which only performs console 
> > > > initialization after ReadyToBoot is triggered.
> > > > 
> > > > This patch fixes that behaviour by calling EfiSignalEventReadyToBoot () 
> > > > in EfiBootManagerProcessLoadOption (), which is the function that sets 
> > > > up the platform recovery boot process.
> > > > 
> > > > Signed-off-by: Pete Batard <mailto:p...@akeo.ie>
> > > > ---
> > > >     MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c | 9 +++++++++
> > > >     1 file changed, 9 insertions(+)
> > > > 
> > > > diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c
> > > > b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c
> > > > index 89372b3b97b8..117f1f5b124c 100644
> > > > --- a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c
> > > > +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c
> > > > @@ -1376,6 +1376,15 @@ EfiBootManagerProcessLoadOption (
> > > >         return EFI_SUCCESS;
> > > >       }
> > > > 
> > > > +  //
> > > > +  // Signal the EVT_SIGNAL_READY_TO_BOOT event when we are about to 
> > > > load and execute the boot option.
> > > > +  //
> > > > +  EfiSignalEventReadyToBoot ();
> > > > +  //
> > > > +  // Report Status Code to indicate ReadyToBoot was signalled  //
> > > > + REPORT_STATUS_CODE (EFI_PROGRESS_CODE, (EFI_SOFTWARE_DXE_BS_DRIVER |
> > > > + EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT));
> > > > +
> > > >       //
> > > >       // Load and start the load option.
> > > >       //
> > > > --
> > > > 2.21.0.windows.1
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > 
> > 
> > IMPORTANT NOTICE: The contents of this email and any attachments are 
> > confidential and may also be privileged. If you are not the intended 
> > recipient, please notify the sender immediately and do not disclose the 
> > contents to any other person, use it for any purpose, or store or copy the 
> > information in any medium. Thank you.
> > 
> > IMPORTANT NOTICE: The contents of this email and any attachments are 
> > confidential and may also be privileged. If you are not the intended 
> > recipient, please notify the sender immediately and do not disclose the 
> > contents to any other person, use it for any purpose, or store or copy the 
> > information in any medium. Thank you.
> > 
> 
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#71736): https://edk2.groups.io/g/devel/message/71736
Mute This Topic: https://groups.io/mt/80701195/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to