]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatformHooks.h
Vlv2TbltDevicePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2TbltDevicePkg / AcpiPlatform / AcpiPlatformHooks.h
1 /*++
2
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
4
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7
8
9 Module Name:
10
11 AcpiPlatformHooks.h
12
13 Abstract:
14
15 This is an implementation of the ACPI platform driver. Requirements for
16 this driver are defined in the Tiano ACPI External Product Specification,
17 revision 0.3.6.
18
19 --*/
20
21 #ifndef _ACPI_PLATFORM_HOOKS_H_
22 #define _ACPI_PLATFORM_HOOKS_H_
23
24 //
25 // Statements that include other header files
26 //
27
28 #include <IndustryStandard/Acpi.h>
29 #include "Platform.h"
30 #include <Protocol/EnhancedSpeedstep.h>
31
32 #define AML_NAME_OP 0x08
33 #define AML_METHOD_OP 0x14
34 #define AML_OPREGION_OP 0x80
35 #define AML_PACKAGE_OP 0x12 // Package operator.
36 #define AML_NAME_PREFIX_SIZE 0x06
37 #define AML_NAME_DWORD_SIZE 0x0C
38
39 #pragma pack(1)
40
41 typedef struct {
42 UINT8 AcpiProcessorId;
43 UINT8 ApicId;
44 UINT16 Flags;
45 } EFI_CPU_ID_MAP;
46
47 typedef struct {
48 UINT8 StartByte;
49 UINT32 NameStr;
50 UINT8 Size;
51 UINT32 Value;
52 } EFI_ACPI_NAMEPACK_DWORD;
53
54 typedef struct {
55 UINT8 StartByte;
56 UINT32 NameStr;
57 UINT8 OpCode;
58 UINT16 Size; // Hardcode to 16bit width because the table we use is fixed size
59 UINT8 NumEntries;
60 } EFI_ACPI_NAME_COMMAND;
61
62 typedef struct {
63 UINT8 PackageOp;
64 UINT8 PkgLeadByte;
65 UINT8 NumEntries;
66 UINT8 DwordPrefix0;
67 UINT32 CoreFreq;
68 UINT8 DwordPrefix1;
69 UINT32 Power;
70 UINT8 DwordPrefix2;
71 UINT32 TransLatency;
72 UINT8 DwordPrefix3;
73 UINT32 BMLatency;
74 UINT8 DwordPrefix4;
75 UINT32 Control;
76 UINT8 DwordPrefix5;
77 UINT32 Status;
78 } EFI_PSS_PACKAGE;
79
80 typedef struct {
81 UINT8 PackageOp;
82 UINT8 PkgLeadByte;
83 UINT8 NumEntries;
84 UINT8 BytePrefix0;
85 UINT8 Entries;
86 UINT8 BytePrefix1;
87 UINT8 Revision;
88 UINT8 BytePrefix2;
89 UINT8 Domain;
90 UINT8 BytePrefix3;
91 UINT8 Coordinate;
92 UINT8 BytePrefix4;
93 UINT8 ProcNumber;
94 } EFI_PSD_PACKAGE;
95
96 #pragma pack()
97
98 #define ACPI_NAME_COMMAND_FROM_NAME_STR(a) BASE_CR (a, EFI_ACPI_NAME_COMMAND, NameStr)
99 #define ACPI_NAME_COMMAND_FROM_NAMEPACK_STR(a) BASE_CR (a, EFI_ACPI_NAMEPACK_DWORD, NameStr)
100
101 EFI_STATUS
102 PlatformHookInit (
103 VOID
104 );
105
106
107 EFI_STATUS
108 PatchDsdtTable (
109 IN OUT EFI_ACPI_DESCRIPTION_HEADER *TableHeader
110 );
111
112 EFI_STATUS
113 PatchGv3SsdtTable (
114 IN OUT EFI_ACPI_DESCRIPTION_HEADER *Table
115 );
116
117 EFI_STATUS
118 PatchErstTable (
119 IN OUT EFI_ACPI_DESCRIPTION_HEADER *Table
120 );
121
122 EFI_STATUS
123 AppendCpuMapTableEntry (
124 IN EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE *AcpiLocalApic
125 );
126
127 #endif