Re: Can DXE drivers be included in executable EFI binary?


Laszlo Ersek
 

Dropping <joseph@zeronsoftn.com> from the address list, because the RH
SMTP server keeps telling me that the domain for that email address
(i.e., "zeronsoftn.com") is unidentifiable. Comments below.

On 02/21/21 07:55, joseph via groups.io wrote:
Hello,

Some computers (what I checked was an LG laptop) do not recognize the NVMe SSD as a block device in the EFI program.
Of course, the OS on the NVMe SSD is bootable.
But when I boot with Shellx64.efi in USB flash memory I can't find that disk.
In this case, load NvmExpressDxe and will be able to find the SSD.

So, I want to include NvmExpressDxe in my executable EFI Binary.
Or, after making the multiple files into FV, can make the FV into an executable EFI file?
These are really bad ideas.

"MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf" is a UEFI_DRIVER.
It is supposed to stay resident, and to provide various protocol services.

Your program is (AIUI) a UEFI_APPLICATION module. When it exits, it's gone.

This shows that, what you're considering, would fundamentally break the
UEFI driver model.

If your platform does not provide an NVMe driver, consider distributing
an NvmExpressDxe driver binary (in accordance with its license) on the
same USB disk as your own application. Users can load it or start it
manually, or they can create a Driver#### option too, for auto-loading it.

Laszlo

Join discuss@edk2.groups.io to automatically receive all group messages.