]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/Include/AcpiCpuData.h
UefiCpuPkg: Add ACPI CPU Data include file
[mirror_edk2.git] / UefiCpuPkg / Include / AcpiCpuData.h
1 /** @file
2 Definitions for CPU S3 data.
3
4 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef _ACPI_CPU_DATA_H_
16 #define _ACPI_CPU_DATA_H_
17
18 //
19 // Register types in register table
20 //
21 typedef enum _REGISTER_TYPE {
22 Msr,
23 ControlRegister,
24 MemoryMapped,
25 CacheControl
26 } REGISTER_TYPE;
27
28 //
29 // Element of register table entry
30 //
31 typedef struct {
32 REGISTER_TYPE RegisterType;
33 UINT32 Index;
34 UINT8 ValidBitStart;
35 UINT8 ValidBitLength;
36 UINT64 Value;
37 } CPU_REGISTER_TABLE_ENTRY;
38
39 //
40 // Register table definition, including current table length,
41 // allocated size of this table, and pointer to the list of table entries.
42 //
43 typedef struct {
44 UINT32 TableLength;
45 UINT32 NumberBeforeReset;
46 UINT32 AllocatedSize;
47 UINT32 InitialApicId;
48 CPU_REGISTER_TABLE_ENTRY *RegisterTableEntry;
49 } CPU_REGISTER_TABLE;
50
51 typedef struct {
52 EFI_PHYSICAL_ADDRESS StartupVector;
53 EFI_PHYSICAL_ADDRESS GdtrProfile;
54 EFI_PHYSICAL_ADDRESS IdtrProfile;
55 EFI_PHYSICAL_ADDRESS StackAddress;
56 UINT32 StackSize;
57 UINT32 NumberOfCpus;
58 EFI_PHYSICAL_ADDRESS MtrrTable;
59 //
60 // Physical address of a CPU_REGISTER_TABLE structure
61 //
62 EFI_PHYSICAL_ADDRESS PreSmmInitRegisterTable;
63 //
64 // Physical address of a CPU_REGISTER_TABLE structure
65 //
66 EFI_PHYSICAL_ADDRESS RegisterTable;
67 EFI_PHYSICAL_ADDRESS ApMachineCheckHandlerBase;
68 UINT32 ApMachineCheckHandlerSize;
69 } ACPI_CPU_DATA;
70
71 #endif