Photo by Christopher Gower on Unsplash


Sometimes while developing UEFI applications we face the need of transferring data from the UEFI environment to OS. By default, the UEFI environment doesn’t support any filesystem other than FAT-32. On the other hand, the OS filesystem usually is EXT4 (Linux) or NTFS (Windows).

In this article, we will develop a UEFI application to transfer data from UEFI to OS, and a Python application to transfer data back from OS to UEFI environment using UEFI variables.

UEFI Variables

UEFI defines variables through which an OS can interact with the firmware. A UEFI variable is specified with a combination of a GUID of…

Photo by AltumCode on Unsplash


UEFI is a specification that defines a software interface between an operating system (OS) and a platform firmware replacing the legacy BIOS firmware interface originally present in all IBM-PCs. Besides the firmware interfaces, the UEFI also defines the boot services that are required for booting the OS. Last but not least, the UEFI specification defines the runtime services which are services that will be available parallel to the OS execution.

There are some frameworks that implements the UEFI specification. Among them, we have the EDK II. …

Davy Souza

Software Development Analyst | Computer Science | Artificial Intelligence | Embedded Software | C, C++, Python

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store