/Visual-ACPICA-for-UEFI-Shell

Port of the original Intel ACPI refence implementation "ACPI Component Architecture" (ACPICA) version 20210930 for UEFI Shell

Primary LanguageC

Visual-ACPICA-for-UEFI-Shell

LOGO

ACPI CA (ACPI component architecture) reference implementation for UEFI, using Visual Studio 2022 build environment.

NOTE: That project is discussed in details at https://github.com/tianocore/edk2-staging/tree/CdePkg/blogs/2022-01-16#cdepkgblog-2022-01-16

Goal

The ACPI Component Architecture (ACPICA) project provides an operating system (OS)-independent reference implementation of the Advanced Configuration and Power Interface Specification (ACPI).

Visual-ACPICA-for-UEFI-Shell is the adaptation for UEFI Shell. This task was suggested by @ajfish, @jljusten and bjjohnson at
tianocore / tianocore.github.io :
https://github.com/tianocore/tianocore.github.io/wiki/Tasks#port-acpi-ca-to-a-shell-application.

Approach

ACPICA provides a reference implementation for 32Bit-Windows as a Visual Studio 2017 solution here:
https://acpica.org/downloads/windows-source

Based on that source code package the transition to a 64Bit UEFI Shell Built could be easily done, using the Microsoft C Library LIBCMT.lib compatible UEFI C Library Toro C Library https://github.com/KilianKegel/toro-C-Library#toro-c-library-formerly-known-as-torito-c-library

Additionally it was necessary to create the Win32API4UEFI--sub-project, to get required Win32-API equivalents for UEFI.

The original source directory from the acpica-win-20210930.zip archive is used. It is just renamed to acpica-win-20210930-source.

All changes to the original source code are encapsulated by the VISUAL_ACPICA_FOR_UEFI build switch.

HowTo

1. install Visual Studio 2022 on a Windows PC

https://github.com/KilianKegel/HowTo-setup-an-UEFI-Development-PC#howto-setup-an-uefi-development-pc

2. install additional tools

Follow the guidance to get FLEX/BISON running on that build machine
https://acpica.org/downloads/windows-source

3. get the project to the build machine

Visual-ACPICA-for-UEFI-Shell

Revision history

20231014

  • update to TORO C Library 20231014

20230910

20230410

20211101 alpha

  • all projects build with minor compiler warnings
  • all projects pass simple tests in the UEFI Shell
    • AcpiDump.efi dumps all ACPI tables
    • AslCompiler.efi processes badcode.asl
  • further and comprehensive tests should be done by an ACPI expert