[edk2] BDS: should BootOrder or OsIndications take priority?

Subject: [edk2] BDS: should BootOrder or OsIndications take priority?

From: Laszlo Ersek <lersek@redhat.com>

To: edk2-devel list <edk2-devel@lists.sourceforge.net>

Date: 2014-10-21 21:14:20

Section "7.5.4 Exchanging information between the OS and Firmware" in
the UEFI spec seems to imply that if bit 0 is set in both
OsIndicationsSupported and OsIndications, then at next boot the
firmware should stop at the firmware UI. It appears that this OS-side
request is independent of, and prevails over, any BootOrder and
Boot#### settings.

Is the above interpretation correct? And if so, does the Intel BDS
driver diverge from it?


BdsEntry()                              [IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c]
    // verifies the size, contents, and
    // attributes of "OsIndications",
    // but doesn't act upon it
  PlatformBdsPolicyBehavior()           [...]
    // might rework Boot#### and
    // BootOrder
  BdsBootDeviceSelect()                 [IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c]
    // invokes the firmware UI only if:
    // - no active boot option, or
    // - all active boot options
    //   failed to boot, or
    // - an active boot option
    //   succeded, and returned to the
    //   firmware.
    PlatformBdsEnterFrontPage()         [IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c]
      // looks at OsIndications

That is, the driver seems to enforce a "formal correctness" of
"OsIndications" early enough, but the code that would *act* upon it is
never reached if there is at least one active and successful boot
option that boots an OS.

In other words, the Intel BDS code seems to favor BootOrder and
Boot#### above OsIndications. Is that a divergence from the UEFI spec?


Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
edk2-devel mailing list