<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Library/UefiBootManagerLib, branch dependabot/github_actions/github/codeql-action-4</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Fgithub%2Fcodeql-action-4</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=dependabot%2Fgithub_actions%2Fgithub%2Fcodeql-action-4'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2025-08-06T00:59:25+00:00</updated>
<entry>
<title>MdeModulePkg: UefiBootManagerLib Change default alignment for ramdisk boot.</title>
<updated>2025-08-06T00:59:25+00:00</updated>
<author>
<name>ddeptford</name>
<email>136014411+ddeptford@users.noreply.github.com</email>
</author>
<published>2023-07-07T15:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5c7ef27b96421d5bac7ebe90a7d07d0cfc3f144f'/>
<id>urn:sha1:5c7ef27b96421d5bac7ebe90a7d07d0cfc3f144f</id>
<content type='text'>
The ramdisk is modelled as an NVDIMM which have a naturally higher
alignment than 4K. Operating systems may wish to map NVDIMMs using large
pages, so force the allocation alignment to 2MB.

This change was tested using HTTP ramdisk boot, targeting a flat windows
image.

Signed-off-by: Aaron Pop &lt;aaronpop@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UefiBootManagerLib: Fix crash when no load options are found</title>
<updated>2025-06-25T18:26:11+00:00</updated>
<author>
<name>Jeff Brasen</name>
<email>jbrasen@nvidia.com</email>
</author>
<published>2025-06-10T22:42:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=07425903d351b282072a5a4437b185fdb96d2e58'/>
<id>urn:sha1:07425903d351b282072a5a4437b185fdb96d2e58</id>
<content type='text'>
Do not attempt to sort the load options when there
are none.

Signed-off-by: Jeff Brasen &lt;jbrasen@nvidia.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg BmDriverHealth.c: Support dump the driver name</title>
<updated>2025-04-25T07:54:34+00:00</updated>
<author>
<name>Yang Gang</name>
<email>yanggang@byosoft.com.cn</email>
</author>
<published>2025-01-24T07:26:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c6db76402c7d844b9ac34e1716d915961bda0d6a'/>
<id>urn:sha1:c6db76402c7d844b9ac34e1716d915961bda0d6a</id>
<content type='text'>
Sometimes the controller name is not present, add BmGetDriverName
to retrieve the driver name.(Like DriverHealthManagerDxe)

Signed-off-by: Yang Gang &lt;yanggang@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UefiBootManagerLib: Handle device path with Proxy URI.</title>
<updated>2025-03-13T00:34:01+00:00</updated>
<author>
<name>Saloni Kasbekar</name>
<email>saloni.kasbekar@intel.com</email>
</author>
<published>2022-12-16T17:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=592ff1e98fc5d4a0e217d0420af7a8025e1a8213'/>
<id>urn:sha1:592ff1e98fc5d4a0e217d0420af7a8025e1a8213</id>
<content type='text'>
Update library to handle HTTP Boot device paths with Proxy URI

Implementation based on UEFI Specification v2.11 Section 24.7.3.1

Signed-off-by: Saloni Kasbekar &lt;saloni.kasbekar@intel.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UefiBootManagerLib: Apply var policy to HDDP</title>
<updated>2025-02-27T15:41:04+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2025-02-07T17:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=67fe6b41b259c133713b6318ae13ec1a79d0236a'/>
<id>urn:sha1:67fe6b41b259c133713b6318ae13ec1a79d0236a</id>
<content type='text'>
Applies variable policy to the "HDDP" UEFI variable in the
mBmHardDriveBootVariableGuid vendor namespace to ensure a minimum
allowed size and expected attributes are present.

A protocol notify is used to handle different platform scenarios
where this instance of UefiBootManagerLib may be linked.

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UefiBootManagerLib: Build proper SD/MMC boot descriptions</title>
<updated>2024-10-03T20:32:40+00:00</updated>
<author>
<name>Mario Bălănică</name>
<email>mariobalanica02@gmail.com</email>
</author>
<published>2024-01-04T01:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=2fdc39d09d49a57e8dc87022b1dedd958f8c8d6a'/>
<id>urn:sha1:2fdc39d09d49a57e8dc87022b1dedd958f8c8d6a</id>
<content type='text'>
This generates boot descriptions for SD/MMC devices in the form of:
  - "UEFI SanDisk SC128 2A2B1E4F SD Device"
  - "UEFI Samsung BJTD4R 7AB3A8DE eMMC User Data"

The manufacturer ID tables are a best-effort, collected from various
places and personal testing. They're not complete and may be inaccurate
for rebranded cards.

Signed-off-by: Mario Bălănică &lt;mariobalanica02@gmail.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: UefiBootManagerLib: Update assert condition</title>
<updated>2024-09-05T06:52:09+00:00</updated>
<author>
<name>Ken Lautner</name>
<email>kenlautner3@gmail.com</email>
</author>
<published>2024-08-27T20:21:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=f0dc9e15048818e01c0556e6c461271aa9000d05'/>
<id>urn:sha1:f0dc9e15048818e01c0556e6c461271aa9000d05</id>
<content type='text'>
In BmFindBootOptionInVariable() we prevent passing a NULL pointer to
EfiBootManagerFindLoadOption().  However, it can accept a NULL pointer as
the second argument as long as count is zero.  This change updates the
assert condtion to only assert if the pointer is NULL and the count is
non-zero.

Signed-off-by: Kenneth Lautner &lt;kenlautner3@gmail.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery</title>
<updated>2023-12-19T13:56:58+00:00</updated>
<author>
<name>Neal Gompa</name>
<email>ngompa@fedoraproject.org</email>
</author>
<published>2023-10-31T17:37:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8c1e9f9c6fa7b5137003b0cfa6d54a6bada16d8e'/>
<id>urn:sha1:8c1e9f9c6fa7b5137003b0cfa6d54a6bada16d8e</id>
<content type='text'>
Currently, the ReadyToBoot event is only signaled when a formal Boot
Manager option is executed (in BmBoot.c -&gt; EfiBootManagerBoot ()).

However, the introduction of Platform Recovery in UEFI 2.5 makes it
necessary to signal ReadyToBoot when a Platform Recovery boot loader
runs because otherwise it may lead to the execution of a boot loader
that has similar requirements to a regular one that is not launched
as a Boot Manager option.

This is especially 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 behavior by calling EfiSignalEventReadyToBoot ()
in EfiBootManagerProcessLoadOption () when invoking platform recovery,
which is the function that sets up the platform recovery boot process.

The expected behavior has been clarified in the UEFI 2.10 specification
to explicitly indicate this behavior is required for correct operation.

This is a rebased version of the patch originally written by Pete Batard.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2831

Co-authored-by: Pete Batard &lt;pete@akeo.ie&gt;
Signed-off-by: Neal Gompa &lt;ngompa@fedoraproject.org&gt;
Reviewed-by: Jeremy Linton &lt;jeremy.linton@arm.com&gt;
Reviewed-by: Laszlo Ersek &lt;lersek@redhat.com&gt;
Reviewed-by: Leif Lindholm &lt;quic_llindhol@quicinc.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Optimize BmExpandPartitionDevicePath</title>
<updated>2023-10-24T13:00:18+00:00</updated>
<author>
<name>Aaron Young</name>
<email>aaron.young@oracle.com</email>
</author>
<published>2023-10-10T15:06:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a6648418c1600f0a81f2914d9dd14de1adbfe598'/>
<id>urn:sha1:a6648418c1600f0a81f2914d9dd14de1adbfe598</id>
<content type='text'>
Reference: https://github.com/tianocore/edk2/pull/4892

BmExpandPartitionDevicePath is called to expand "short-form" device paths
which are commonly used with OS boot options. To expand a device path, it
calls EfiBootManagerConnectAll to connect all the possible BlockIo
devices in the system to search for a matching partition. However, this
is sometimes unnecessary on certain platforms (such as OVMF/QEMU) because
the boot devices are previously explicity connected
(See: ConnectDevicesFromQemu).  EfiBootManagerConnectAll calls are
extremely costly in terms of boot time and resources and should be avoided
whenever feasible.

(

OVMF call tree:

  PlatformBootManagerAfterConsole()         [OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c]
    PlatformBdsConnectSequence()            [OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c]
      ConnectDevicesFromQemu()              [OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c]
        ...
    EfiBootManagerRefreshAllBootOption()    [MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c]
      ...
    SetBootOrderFromQemu()                  [OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c]
      Match()                               [OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c]
        EfiBootManagerGetLoadOptionBuffer() [MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c]
          BmGetNextLoadOptionBuffer()       [MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c]
            BmGetNextLoadOptionDevicePath() [MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c]
              BmExpandPartitionDevicePath() [MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c]

)

Therefore optimize BmExpandPartitionDevicePath to first search the
existing BlockIo handles for a match. If a match is not found, then
fallback to the original code to call EfiBootManagerConnectAll and search
again. Thus, this optimization should be extremely low-risk given the
fallback to previous behavior.

NOTE: The existing optimization in the code to use a "HDDP" variable to
save the last matched device paths does not cover the first time a boot
option is expanded (i.e. before the "HDDP" is created) nor when the device
configuration has changed (resulting in the boot device moving to a
different location in the PCI Bus/Dev hierarchy). This new optimization
covers both of these cases on requisite platforms which explicity connect
boot devices.

In our testing on OVMF/QEMU VMs with dozens of configured vnic devices,
these extraneous calls to EfiBootManagerConnectAll from
BmExpandPartitionDevicePath were found to cause many seconds (or even
minutes) of additional VM boot time in some cases - due to the vnics
being unnecessarily connected.

Cc: Zhichao Gao zhichao.gao@intel.com
Cc: Ray Ni ray.ni@intel.com
Signed-off-by: Aaron Young &lt;aaron.young@oracle.com&gt;
Message-Id: &lt;20231010150644.37857-1-Aaron.Young@oracle.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
[lersek@redhat.com: add OVMF call tree to commit message]
</content>
</entry>
<entry>
<title>MdeModulePkg: Update code to be more C11 compliant by using __func__</title>
<updated>2023-04-10T14:19:57+00:00</updated>
<author>
<name>Rebecca Cran</name>
<email>rebecca@bsdio.com</email>
</author>
<published>2023-04-06T19:50:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7b82da70edf7dda2c6f4e853f100df620bd5c0f3'/>
<id>urn:sha1:7b82da70edf7dda2c6f4e853f100df620bd5c0f3</id>
<content type='text'>
__FUNCTION__ is a pre-standard extension that gcc and Visual C++ among
others support, while __func__ was standardized in C99.

Since it's more standard, replace __FUNCTION__ with __func__ throughout
MdeModulePkg.

Signed-off-by: Rebecca Cran &lt;rebecca@bsdio.com&gt;
Reviewed-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
</feed>
