]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add Reserve Interrupt and Exception Vectors definition defined in PI 1.2.1.
authorJeff Fan <jeff.fan@intel.com>
Fri, 22 Nov 2013 06:02:20 +0000 (06:02 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 22 Nov 2013 06:02:20 +0000 (06:02 +0000)
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14882 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Guid/VectorHandoffTable.h [new file with mode: 0644]
MdePkg/Include/Ppi/VectorHandoffInfo.h [new file with mode: 0644]
MdePkg/MdePkg.dec

diff --git a/MdePkg/Include/Guid/VectorHandoffTable.h b/MdePkg/Include/Guid/VectorHandoffTable.h
new file mode 100644 (file)
index 0000000..a3b3a95
--- /dev/null
@@ -0,0 +1,33 @@
+/** @file\r
+  GUID for system configuration table entry that points to the table\r
+  in case an entity in DXE wishes to update/change the vector table contents. \r
+\r
+  Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+  @par Revision Reference:\r
+  GUID defined in PI 1.2.1 spec.\r
+**/\r
+\r
+#ifndef __EFI_VECTOR_HANDOFF_TABLE_H__\r
+#define __EFI_VECTOR_HANDOFF_TABLE_H__\r
+\r
+#include <Ppi/VectorHandoffInfo.h>\r
+\r
+//\r
+// System configuration table entry that points to the table\r
+// in case an entity in DXE wishes to update/change the vector\r
+// table contents.\r
+//\r
+#define EFI_VECTOR_HANDOF_TABLE_GUID \\r
+  { 0x996ec11c, 0x5397, 0x4e73, { 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef }}\r
+\r
+extern EFI_GUID gEfiVectorHandoffTableGuid;\r
+\r
+#endif\r
diff --git a/MdePkg/Include/Ppi/VectorHandoffInfo.h b/MdePkg/Include/Ppi/VectorHandoffInfo.h
new file mode 100644 (file)
index 0000000..84cad70
--- /dev/null
@@ -0,0 +1,75 @@
+/** @file\r
+  This file declares Vector Handoff Info PPI that describes an array of\r
+  interrupt and/or exception vectors that are in use and need to persist.\r
+\r
+  This is an optional PPI that may be produced by SEC. If present, it provides\r
+  a description of the interrupt and/or exception vectors that were established\r
+  in the SEC Phase and need to persist into PEI and DXE. \r
+\r
+  Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+  @par Revision Reference:\r
+  This PPI is introduced in PI Version 1.2.1.\r
+\r
+**/\r
+\r
+#ifndef __VECTOR_HANDOFF_INFO_H__\r
+#define __VECTOR_HANDOFF_INFO_H__\r
+\r
+///\r
+/// NOTE: EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID can also be used in the PEI Phase\r
+/// to build a GUIDed HOB that contains an array of EFI_VECTOR_HANDOFF_INFO.\r
+///\r
+#define EFI_PEI_VECTOR_HANDOFF_INFO_PPI_GUID \\r
+  { 0x3cd652b4, 0x6d33, 0x4dce, { 0x89, 0xdb, 0x83, 0xdf, 0x97, 0x66, 0xfc, 0xca }}\r
+\r
+///\r
+/// Vector Handoff Info Attributes\r
+///@{\r
+#define EFI_VECTOR_HANDOFF_DO_NOT_HOOK 0x00000000\r
+#define EFI_VECTOR_HANDOFF_HOOK_BEFORE 0x00000001\r
+#define EFI_VECTOR_HANDOFF_HOOK_AFTER  0x00000002\r
+#define EFI_VECTOR_HANDOFF_LAST_ENTRY  0x80000000\r
+///@}\r
+\r
+///\r
+/// EFI_VECTOR_HANDOFF_INFO entries that describes the interrupt and/or\r
+/// exception vectors in use in the PEI Phase.\r
+///\r
+typedef struct {\r
+  //\r
+  // The interrupt or exception vector that is in use and must be preserved.\r
+  //\r
+  UINT32    VectorNumber;\r
+  //\r
+  // A bitmask that describes the attributes ofthe interrupt or exception vector.\r
+  //\r
+  UINT32    Attribute;\r
+  //\r
+  // The GUID identifies the party who created the entry. For the \r
+  // EFI_VECTOR_HANDOFF_DO_NOT_HOOK case, this establishes the single owner.\r
+  //\r
+  EFI_GUID  Owner;\r
+} EFI_VECTOR_HANDOFF_INFO;\r
+\r
+///\r
+/// Provides a description of the interrupt and/or exception vectors that\r
+/// were established in the SEC Phase and need to persist into PEI and DXE.  \r
+///\r
+typedef struct _EFI_PEI_VECTOR_HANDOFF_INFO_PPI {\r
+  //\r
+  // Pointer to an array of interrupt and /or exception vectors.\r
+  //\r
+  EFI_VECTOR_HANDOFF_INFO  *Info;\r
+} EFI_PEI_VECTOR_HANDOFF_INFO_PPI;\r
+\r
+extern EFI_GUID gEfiVectorHandoffInfoPpiGuid;\r
+\r
+#endif\r
index b02cf0b28c48299a5b3b02d7b6b6959751192f50..dc7e63b2098ef83f2f12a2f5c709010c43e655aa 100644 (file)
   ## Include/Guid/FirmwareContentsSigned.h\r
   gEfiFirmwareContentsSignedGuid    = { 0xf9d89e8, 0x9259, 0x4f76, { 0xa5, 0xaf, 0xc, 0x89, 0xe3, 0x40, 0x23, 0xdf }}\r
 \r
+  ## Include/Guid/VectorHandoffTable.h\r
+  gEfiVectorHandoffTableGuid        = { 0x996ec11c, 0x5397, 0x4e73, { 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef }}\r
+\r
 [Guids.IA32, Guids.X64]\r
   ## Include/Guid/Cper.h\r
   gEfiIa32X64ErrorTypeCacheCheckGuid = { 0xA55701F5, 0xE3EF, 0x43de, { 0xAC, 0x72, 0x24, 0x9B, 0x57, 0x3F, 0xAD, 0x2C }}\r
   ## Include/Ppi/TemporaryRamDone.h\r
   gEfiTemporaryRamDonePpiGuid        = { 0xceab683c, 0xec56, 0x4a2d, { 0xa9, 0x6, 0x40, 0x53, 0xfa, 0x4e, 0x9c, 0x16 } }\r
 \r
+  #\r
+  # PPIs defined in PI 1.2.1.\r
+  #\r
+\r
+  ## Include/Ppi/PiPcdInfo.h\r
+  gEfiGetPcdInfoPpiGuid              = { 0xa60c6b59, 0xe459, 0x425d, { 0x9c, 0x69,  0xb, 0xcc, 0x9c, 0xb2, 0x7d, 0x81 } }\r
+\r
+  ## Include/Ppi/VectorHandoffInfo.h\r
+  gEfiVectorHandoffInfoPpiGuid       = { 0x3cd652b4, 0x6d33, 0x4dce, { 0x89, 0xdb, 0x83, 0xdf, 0x97, 0x66, 0xfc, 0xca }}\r
+\r
   #\r
   # PPIs defined in PI 1.3.\r
   #\r
   gEfiPeiFirmwareVolumeInfo2PpiGuid  = { 0xea7ca24b, 0xded5, 0x4dad, { 0xa3, 0x89, 0xbf, 0x82, 0x7e, 0x8f, 0x9b, 0x38 } }\r
 \r
 \r
-  #\r
-  # PPIs defined in PI 1.2.1.\r
-  #\r
-\r
-  ## Include/Ppi/PiPcdInfo.h\r
-  gEfiGetPcdInfoPpiGuid              = { 0xa60c6b59, 0xe459, 0x425d, { 0x9c, 0x69,  0xb, 0xcc, 0x9c, 0xb2, 0x7d, 0x81 } }\r
 \r
 [Protocols]\r
   ## Include/Protocol/Pcd.h\r