123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /*++
- Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
-
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
- Module Name:
- AcpiPlatformHooks.h
- Abstract:
- This is an implementation of the ACPI platform driver. Requirements for
- this driver are defined in the Tiano ACPI External Product Specification,
- revision 0.3.6.
- --*/
- #ifndef _ACPI_PLATFORM_HOOKS_H_
- #define _ACPI_PLATFORM_HOOKS_H_
- //
- // Statements that include other header files
- //
- #include <IndustryStandard/Acpi.h>
- #include "Platform.h"
- #include <Protocol/EnhancedSpeedstep.h>
- #define AML_NAME_OP 0x08
- #define AML_METHOD_OP 0x14
- #define AML_OPREGION_OP 0x80
- #define AML_PACKAGE_OP 0x12 // Package operator.
- #define AML_NAME_PREFIX_SIZE 0x06
- #define AML_NAME_DWORD_SIZE 0x0C
- #pragma pack(1)
- typedef struct {
- UINT8 AcpiProcessorId;
- UINT8 ApicId;
- UINT16 Flags;
- } EFI_CPU_ID_MAP;
- typedef struct {
- UINT8 StartByte;
- UINT32 NameStr;
- UINT8 Size;
- UINT32 Value;
- } EFI_ACPI_NAMEPACK_DWORD;
- typedef struct {
- UINT8 StartByte;
- UINT32 NameStr;
- UINT8 OpCode;
- UINT16 Size; // Hardcode to 16bit width because the table we use is fixed size
- UINT8 NumEntries;
- } EFI_ACPI_NAME_COMMAND;
- typedef struct {
- UINT8 PackageOp;
- UINT8 PkgLeadByte;
- UINT8 NumEntries;
- UINT8 DwordPrefix0;
- UINT32 CoreFreq;
- UINT8 DwordPrefix1;
- UINT32 Power;
- UINT8 DwordPrefix2;
- UINT32 TransLatency;
- UINT8 DwordPrefix3;
- UINT32 BMLatency;
- UINT8 DwordPrefix4;
- UINT32 Control;
- UINT8 DwordPrefix5;
- UINT32 Status;
- } EFI_PSS_PACKAGE;
- typedef struct {
- UINT8 PackageOp;
- UINT8 PkgLeadByte;
- UINT8 NumEntries;
- UINT8 BytePrefix0;
- UINT8 Entries;
- UINT8 BytePrefix1;
- UINT8 Revision;
- UINT8 BytePrefix2;
- UINT8 Domain;
- UINT8 BytePrefix3;
- UINT8 Coordinate;
- UINT8 BytePrefix4;
- UINT8 ProcNumber;
- } EFI_PSD_PACKAGE;
- #pragma pack()
- #define ACPI_NAME_COMMAND_FROM_NAME_STR(a) BASE_CR (a, EFI_ACPI_NAME_COMMAND, NameStr)
- #define ACPI_NAME_COMMAND_FROM_NAMEPACK_STR(a) BASE_CR (a, EFI_ACPI_NAMEPACK_DWORD, NameStr)
- EFI_STATUS
- PlatformHookInit (
- VOID
- );
- EFI_STATUS
- PatchDsdtTable (
- IN OUT EFI_ACPI_DESCRIPTION_HEADER *TableHeader
- );
- EFI_STATUS
- PatchGv3SsdtTable (
- IN OUT EFI_ACPI_DESCRIPTION_HEADER *Table
- );
- EFI_STATUS
- PatchErstTable (
- IN OUT EFI_ACPI_DESCRIPTION_HEADER *Table
- );
- EFI_STATUS
- AppendCpuMapTableEntry (
- IN EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE *AcpiLocalApic
- );
- #endif
|