diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /ReferenceCode/Haswell/Guid/SmramCpuDataVariable | |
download | zprj-master.tar.xz |
Diffstat (limited to 'ReferenceCode/Haswell/Guid/SmramCpuDataVariable')
-rw-r--r-- | ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.c | 24 | ||||
-rw-r--r-- | ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.h | 46 |
2 files changed, 70 insertions, 0 deletions
diff --git a/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.c b/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.c new file mode 100644 index 0000000..9448ca9 --- /dev/null +++ b/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.c @@ -0,0 +1,24 @@ +/** @file + GUIDs used for ACPI CPU DATA Variable. + +@copyright + Copyright (c) 2011 - 2012 Intel Corporation. All rights reserved + This software and associated documentation (if any) is furnished + under a license and may only be used or copied in accordance + with the terms of the license. Except as permitted by such + license, no part of this software or documentation may be + reproduced, stored in a retrieval system, or transmitted in any + form or by any means without the express written consent of + Intel Corporation. + + This file contains 'Framework Code' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may not be modified, except as allowed by + additional terms of your license agreement. +**/ +#include "Tiano.h" +#include EFI_GUID_DEFINITION (SmramCpuDataVariable) + +EFI_GUID gSmramCpuDataVariableGuid = SMRAM_CPU_DATA_VARIABLE_GUID; + +EFI_GUID_STRING(&gSmramCpuDataVariableGuid, "SMRAM CPU DATA Variable", "SMRAM CPU DATA Variable GUID"); diff --git a/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.h b/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.h new file mode 100644 index 0000000..33a66b9 --- /dev/null +++ b/ReferenceCode/Haswell/Guid/SmramCpuDataVariable/SmramCpuDataVariable.h @@ -0,0 +1,46 @@ +/** @file + GUIDs used for SMRAM CPU DATA Variable to keep 2 locations for copying data from + regular memory to SMM memory + +@copyright + Copyright (c) 2011 - 2012 Intel Corporation. All rights reserved + This software and associated documentation (if any) is furnished + under a license and may only be used or copied in accordance + with the terms of the license. Except as permitted by such + license, no part of this software or documentation may be + reproduced, stored in a retrieval system, or transmitted in any + form or by any means without the express written consent of + Intel Corporation. + + This file contains 'Framework Code' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may not be modified, except as allowed by + additional terms of your license agreement. +**/ +#ifndef _SMRAM_CPU_DATA_VARIABLE_H_ +#define _SMRAM_CPU_DATA_VARIABLE_H_ + +/// +/// CPU Driver will maintain ACPI CPU DATA in regular memory, +/// 1. CpuInitDxe driver will allocate SMM memory, and normal memory +/// 2. Save both location in SMRAM_CPU_DATA_VARIABLE +/// 3. Issue SMM_FROM_CPU_DRIVER_SAVE_INFO SW SMI to ask SMM driver to +/// copy data to SMRAM with signature. +/// 4. In S3 path, CPUS3 retrieves data by search signature in SMRAM. +/// +#define SMRAM_CPU_DATA_VARIABLE_GUID \ + { \ + 0x429501d9, 0xe447, 0x40f4, 0x86, 0x7b, 0x75, 0xc9, 0x3a, 0x1d, 0xb5, 0x4e \ + } + +#define SMRAM_CPU_DATA_VARIABLE L"SmramCpuDataVar" + +typedef struct { + EFI_PHYSICAL_ADDRESS LockBoxData; + EFI_PHYSICAL_ADDRESS SmramCpuData; + UINT64 LockBoxSize; +} SMRAM_CPU_DATA_ADDRESS; + +extern EFI_GUID gSmramCpuDataVariableGuid; + +#endif |