12.5 Platform Specific ASL Tools

The platform ACPI compilers are not all backward compatible. Typically, an ASL compiler is selected based on the ACPI version and features that are required by the platform. Different flags may also be required for different releases of the ASL compilers. One method for using different versions of the ASL compilers on Windows* systems is presented here.

The EDK II build tools expect the Microsoft ASL compilers (asl.exe) and the Intel/ACPI compiler (iasl.exe) to be located in the C:\ASL directory of the developer's workstation. This path and the compiler names are also coded in the tools_def.txt file. Name the compiler binaries using the ACPI Spec compliance value, for example, C:\ASL\iasl3a.exe and C:\ASL\iasl5.exe.

Use the [BuildOptions] section of the platform's DSC file to override the default values in the tools_def.txt file as shown below.

Platform1 DSC requiring ACPI 3a compliance

[BuildOptions]
*_*_*_ASL_PATH == C:\ASL\iasl3a.exe

Platform2 DSC requiring ACPI 5 compliance

[BuildOptions]
*_*_*_ASL_PATH == C:\ASL\iasl5.exe
*_*_*_ASL_FLAGS = -cr

The "==" means replace the ASL compiler specified by the PATH attribute in the tools_def.txt file with this ASL compiler.

The "=" means to append the flags to the flags specified in the FLAGS attribute in the tools_def.txt file.

No changes are required to any other files or tools in order for this method to work. Other tools may also benefit from this build system flexibility.