Image of Linux Kernel Development (3rd Edition)
Image of Beginning Google Maps API 3
Image of Modern Operating Systems (3rd Edition)
Image of Operating System Concepts

UEFI OS Indication Variables

Support for OS Indications was added to the UEFI specification (Version 2.3.1C) in June 2012. See section 7.5.4. The OsIndications variable is settable by the operating system (OS) using the UEFI SetVariable call. It contains a UINT64 bitmask that used to indicate which features the OS wants the firmware to enable or which actions the OS wants the firmware to take. The OsIndicationsSupported variable is managed by the firmware. The variable is recreated by the platform firmware every boot and cannot be modified by the OS. It also returns a UINT64 bitmask which indicates which of the OsIndications features and

Examining TPM2 ACPI Table

The Advanced Configuration and Power Interface (ACPI) specification was developed to establish industry common interfaces enabling robust operating system directed motherboard device configuration and power management of both devices and entire platforms. This specification has gone from strength to strength over the years and is now maintained by the UEFI Forum. The current version is 6.1. Over the years, the Trusted Computing Group (TCG) has developed various specifications defining an ACPI table and basic methods for use on a TCG compliant platform. The goal is that the ACPI table and ACPI namespace objects provide sufficient information to an operating system

Accessing TPM Functionality From UEFI Shell - Part 1

A Trusted Platform Module (TPM) is, traditionally, a hardware device (chip) designed to enable commodity computing platforms (think laptop or personal computer) to achieve greater levels of security than non-TPM equipped platform. There are over 600 million installed TPMs, mostly in high-end laptops made by Lenovo, HP, Dell, Toshiba and others. TPMs are manufactured by many chip producers including Atmel, STMicroelectronics and Toshiba. Via it’s Trusted Execution Technology (TXT), Intel now incorporates TPM functionality in many of its current processors. TPM technology is specified by the Trusted Computing Group (TCG), an industry consortium that includes Intel, Microsoft, AMD, IBM, HP,

Examine ESRT entries from UEFI Shell

This post details a simple UEFI shell utility for listing the contents of an EFI System Resource Table (ESRT). Essentially ESRT a catalog of firmware which can be updated with the UEFI UpdateCapsule mechanism described in section 7.5 of the UEFI Specification. The ESRT provides a mechanism for identifying integrated device and system firmware resources for the purposes of targeting firmware updates to those resources. Each entry in the ESRT describes a device or system firmware resource that can be targeted by a firmware update package. UEFI firmware must allocate and populate an ESRT system resource entry for itself (system

Revisit - Retrieve Microsoft Windows Product Key From UEFI Shell

In a February 2015 post, I published the source code for a simple UEFI shell utility which could retrieve a Microsoft Windows product license key from a system running Windows 8 or later. The code was based on the GNU EFI development and runtime libraries. There are a number of freely available EFI development environments. GNU EFI is probably the simplest of these and is what I recommend for beginners. It’s easy to install in a Linux environment such as Fedora 23 as both runtime and development RPMs are available from the Fedora repos. The most sophisticated EFI development environment