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