diff options
author | Michael Kinney <michael.d.kinney@intel.com> | 2015-10-19 19:12:04 +0000 |
---|---|---|
committer | mdkinney <mdkinney@Edk2> | 2015-10-19 19:12:04 +0000 |
commit | 1c27f926c130284b022501596399205b8c8e4b23 (patch) | |
tree | 8a28fc55e1e79f6ed434ebb4c7d502fbf5744914 /UefiCpuPkg/Include | |
parent | 70de765d9029d1938ad33de02367c0991203b019 (diff) | |
download | edk2-1c27f926c130284b022501596399205b8c8e4b23.zip edk2-1c27f926c130284b022501596399205b8c8e4b23.tar.gz edk2-1c27f926c130284b022501596399205b8c8e4b23.tar.bz2 |
UefiCpuPkg: Add ACPI CPU Data include file
Add AcpuCpuData.h that defines a data structure that is shared between
modules and is required for ACPI S3 support.
APState field removed between V1 and V2 patch.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18642 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/Include')
-rw-r--r-- | UefiCpuPkg/Include/AcpiCpuData.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/UefiCpuPkg/Include/AcpiCpuData.h b/UefiCpuPkg/Include/AcpiCpuData.h new file mode 100644 index 0000000..a367257 --- /dev/null +++ b/UefiCpuPkg/Include/AcpiCpuData.h @@ -0,0 +1,71 @@ +/** @file
+Definitions for CPU S3 data.
+
+Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
+This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _ACPI_CPU_DATA_H_
+#define _ACPI_CPU_DATA_H_
+
+//
+// Register types in register table
+//
+typedef enum _REGISTER_TYPE {
+ Msr,
+ ControlRegister,
+ MemoryMapped,
+ CacheControl
+} REGISTER_TYPE;
+
+//
+// Element of register table entry
+//
+typedef struct {
+ REGISTER_TYPE RegisterType;
+ UINT32 Index;
+ UINT8 ValidBitStart;
+ UINT8 ValidBitLength;
+ UINT64 Value;
+} CPU_REGISTER_TABLE_ENTRY;
+
+//
+// Register table definition, including current table length,
+// allocated size of this table, and pointer to the list of table entries.
+//
+typedef struct {
+ UINT32 TableLength;
+ UINT32 NumberBeforeReset;
+ UINT32 AllocatedSize;
+ UINT32 InitialApicId;
+ CPU_REGISTER_TABLE_ENTRY *RegisterTableEntry;
+} CPU_REGISTER_TABLE;
+
+typedef struct {
+ EFI_PHYSICAL_ADDRESS StartupVector;
+ EFI_PHYSICAL_ADDRESS GdtrProfile;
+ EFI_PHYSICAL_ADDRESS IdtrProfile;
+ EFI_PHYSICAL_ADDRESS StackAddress;
+ UINT32 StackSize;
+ UINT32 NumberOfCpus;
+ EFI_PHYSICAL_ADDRESS MtrrTable;
+ //
+ // Physical address of a CPU_REGISTER_TABLE structure
+ //
+ EFI_PHYSICAL_ADDRESS PreSmmInitRegisterTable;
+ //
+ // Physical address of a CPU_REGISTER_TABLE structure
+ //
+ EFI_PHYSICAL_ADDRESS RegisterTable;
+ EFI_PHYSICAL_ADDRESS ApMachineCheckHandlerBase;
+ UINT32 ApMachineCheckHandlerSize;
+} ACPI_CPU_DATA;
+
+#endif
|