2016-05-18

Adding a new driver to an existing UEFI firmware

Following up on efifs and VMWare firmware extraction, you might be interested to find out how, for instance, you should proceed to add an NTFS EFI driver to an existing UEFI firmware, so that you can access/boot NTFS volumes from UEFI.
Reading NTFS volumes natively from UEFI

If that's the case, then look no further than this guide.

It provides a step by step breakdown, using VMWare, of how you can generate an UEFI firmware module from an EFI driver executable (through FFS, which is a convenient repackaging of the EDK2's GenSec and GenFfs), and insert it into an existing UEFI firmware to make the driver natively available:
A VMWare UEFI firmware with a native NTFS driver

3 comments:

  1. Thank you for everything you post! Very informative.

    ReplyDelete
  2. Pete,
    Would this work with intel raid drivers? The reason I ask is because I'm using Duet to boot a Usb key with Nvme driver on non supported x58 platform. This works and I can boot off the Nvme drive but the Shell cant see the other raid array and it would be cool if the shell could see the Intel raid array.

    Thanks

    ReplyDelete
    Replies
    1. UEFI firmwares are designed to be modular, so you should be able to add any driver you want. Be mindful however that your motherboard manufacturer may have added authentication to only accept firmwares that they issued, so your modified firmware might be rejected for flashing if that is the case. Also, the behaviour of loading a driver from the shell and loading a driver from the firmware should be the same. Are you sure you issued a 'map -r' after loading your driver in the shell. This is necessary if you installed new storage or file system drivers...

      Delete