2. 1. FFS that provide ACPI tables (.aml + .aslc or .act).
e.g. AcpiTables.inf
2. DXE driver that find ACPI tables and install to ACPI-Memory.
e.g. AcpiPlatformDxe.inf
3. DXE driver that provide EFI_ACPI_TABLE_PROTOCOL and
EFI_ACPI_SDT_PROTOCOL instance
e.g. AcpiTableDxe.inf
Overview
DXE Driver
(produce
protocol)
DXE Driver
(install
tables)
ACPI Tables
(binary)
6. AcpiPlatformDxe.inf (DXE_DRIVER)
1. Find EFI_FIRMWARE_VOLUME2_PROTOCOL protocol instance which represent
the FV (Firmware Volume) containing ACPI tables.
2. Find the ACPI tables from System-Memory and install it to the ACPI-
Memory. The FFS filename of ACPI tables store in
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile.
FlashMemory
010010100..
binary
SystemMemory
010010100..
binary
ACPIMemory
010010100..
binary
Shadow Install
7. AcpiTableDxe.inf (DXE_DRIVER)
1. Produce EFI_ACPI_TABLE_PROTOCOL and EFI_ACPI_SDT_PROTOCOL
instance.
a. EFI_ACPI_TABLE_PROTOCOL
provides the ability for a component to install and uninstall
ACPI tables.
b. EFI_ACPI_SDT_PROTOCOL (ACPI System Description Table)
Provides services for creating ACPI system description tables.
1. EFI_ACPI_TABLE_PROTOCOL is mentioned in UEFI_2_3_1_Errata_C.pdf.
2. EFI_ACPI_SDT_PROTOCOL is mentioned in Vol5_Standards_1_2_1_Errata_A.pdf.
9. FDF File
1. FREEFORM = $(NAME_GUID)
Indicate the firmware file with $(NAME_GUID) file name contains sectioned binary
data.
2. RAW ACPI Optional | .acpi
RAW ACPI Optional | .aml
a. Section of ACPI type is RAW section, filetype is .acpi and is Optional. Filetype of
.aml is in the same way.
b. Section of .acpi and .aml and will be composed in alphabetical order.
e.g. <SOF> a1.acpi, a2.acpi, b1.acpi, b2.acpi, a.aml, b.aml<EOF>
[FV.DXEFV]
INF RuleOverride = ACPITABLE XxxxYyyyPkg/AcpiTables/AcpiTables.inf
[Rule.Common.USER_DEFINED.ACPITABLE]
FILE FREEFORM = $(NAMED_GUID) {
RAW ACPI Optional |.acpi
RAW ASL Optional |.aml
}