Image of Modern Operating Systems (3rd Edition)
Image of Android Wireless Application Development
Image of Linux Kernel Development (3rd Edition)
Image of Operating System Concepts

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

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

Access BGRT Information and Boot Graphics From UEFI Shell

In this post, I show you how to access the ACPI 5.0 Boot Graphics Resource Table (BGRT) from the UEFI shell and how to save a copy of that boot graphic, usually an OEM logo, in BMP format to disk. To fully understand the BGRT, you need to read the ACPI specification, version 5. Quoting from section 5.2.22 of that specification: The Boot Graphics Resource Table (BGRT) is an optional table that provides a mechanism to indicate that an image was drawn on the screen during boot, and some information about the image. The table is written when the image

Retrieve Microsoft Windows Product Key From UEFI Shell

With Microsoft Windows v3.0 activation, the product key is now stored in the UEFI firmware instead of being printed on a COA sticker. Specifically, on UEFI firmware, the individualized product key is stored in the ACPI (Advanced Configuration and Power Interface) table call MSDM ( Microsoft Data Management). This table contains the information necessary to enable individualized OEM activation. Note that generic activation information is stored in a separate ACPI table named SLIC (Software Licensing). I will not be discussing that particular table in this post. This utility is quite simple. It locates a pointer to the list of ACPI

Shell Script to List ACPI tables

ACPI (Advanced Configuration and Power Interface) defines platform-independent interfaces for hardware discovery, configuration, power management and monitoring, and these tables contain lots of useful information for low-level programmers such as myself. Here is a short shell script which I clobbered together a few days ago to list out the ACPI tables on a system together with a short description of each table where possible. #!/bin/bash # # Author: Finnbarr P. Murphy # Date: January 2015 # Purpose: List ACPI tables # License: BSD # TMP1=$(mktemp -u -p /var/tmp/ acpiXXXXXX) TMP2=$(mktemp -u -p /var/tmp/ acpiXXXXXX) TMP3=$(mktemp -u -p /var/tmp/ acpiXXXXXX) cat