summaryrefslogtreecommitdiffstats
path: root/IntelFrameworkPkg/Include
diff options
context:
space:
mode:
authorjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-08 09:38:08 +0000
committerjchen20 <jchen20@6f19259b-4bc3-4df7-8a09-765794883524>2009-07-08 09:38:08 +0000
commit40038403ea4d148da0ff521eae3941bd2c1de353 (patch)
tree79b249363d46222647c5fcb7a0b5e7087542d9f3 /IntelFrameworkPkg/Include
parentfa70a2c4cc9607f38e49a389f64ac32c600d47d2 (diff)
downloadedk2-40038403ea4d148da0ff521eae3941bd2c1de353.tar.gz
edk2-40038403ea4d148da0ff521eae3941bd2c1de353.tar.bz2
edk2-40038403ea4d148da0ff521eae3941bd2c1de353.zip
to fill the gap between Framework and code to fix the bug #202405, #202419, #202418, #202435,#202437, #202439, #202440
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8817 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkPkg/Include')
-rw-r--r--IntelFrameworkPkg/Include/Framework/DxeCis.h97
-rw-r--r--IntelFrameworkPkg/Include/Framework/PeiCis.h39
-rw-r--r--IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h5
3 files changed, 137 insertions, 4 deletions
diff --git a/IntelFrameworkPkg/Include/Framework/DxeCis.h b/IntelFrameworkPkg/Include/Framework/DxeCis.h
index 28582353bc..efc7ae807f 100644
--- a/IntelFrameworkPkg/Include/Framework/DxeCis.h
+++ b/IntelFrameworkPkg/Include/Framework/DxeCis.h
@@ -68,6 +68,103 @@ typedef struct {
EFI_REPORT_STATUS_CODE ReportStatusCode;
} FRAMEWORK_EFI_RUNTIME_SERVICES;
+///
+/// Framework EFI Boot Services Table which comply with DxeCis spec.
+///
+typedef struct {
+ ///
+ /// The table header for the EFI Boot Services Table.
+ ///
+ EFI_TABLE_HEADER Hdr;
+
+ //
+ // Task Priority Services
+ //
+ EFI_RAISE_TPL RaiseTPL;
+ EFI_RESTORE_TPL RestoreTPL;
+
+ //
+ // Memory Services
+ //
+ EFI_ALLOCATE_PAGES AllocatePages;
+ EFI_FREE_PAGES FreePages;
+ EFI_GET_MEMORY_MAP GetMemoryMap;
+ EFI_ALLOCATE_POOL AllocatePool;
+ EFI_FREE_POOL FreePool;
+
+ //
+ // Event & Timer Services
+ //
+ EFI_CREATE_EVENT CreateEvent;
+ EFI_SET_TIMER SetTimer;
+ EFI_WAIT_FOR_EVENT WaitForEvent;
+ EFI_SIGNAL_EVENT SignalEvent;
+ EFI_CLOSE_EVENT CloseEvent;
+ EFI_CHECK_EVENT CheckEvent;
+
+ //
+ // Protocol Handler Services
+ //
+ EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
+ EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
+ EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
+ EFI_HANDLE_PROTOCOL HandleProtocol;
+ EFI_HANDLE_PROTOCOL PcHandleProtocol;
+ EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
+ EFI_LOCATE_HANDLE LocateHandle;
+ EFI_LOCATE_DEVICE_PATH LocateDevicePath;
+ EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
+
+ //
+ // Image Services
+ //
+ EFI_IMAGE_LOAD LoadImage;
+ EFI_IMAGE_START StartImage;
+ EFI_EXIT Exit;
+ EFI_IMAGE_UNLOAD UnloadImage;
+ EFI_EXIT_BOOT_SERVICES ExitBootServices;
+
+ //
+ // Miscellaneous Services
+ //
+ EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
+ EFI_STALL Stall;
+ EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
+
+ //
+ // DriverSupport Services
+ //
+ EFI_CONNECT_CONTROLLER ConnectController;
+ EFI_DISCONNECT_CONTROLLER DisconnectController;
+
+ //
+ // Open and Close Protocol Services
+ //
+ EFI_OPEN_PROTOCOL OpenProtocol;
+ EFI_CLOSE_PROTOCOL CloseProtocol;
+ EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
+
+ //
+ // Library Services
+ //
+ EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
+ EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
+ EFI_LOCATE_PROTOCOL LocateProtocol;
+ EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
+ EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
+
+ //
+ // 32-bit CRC Services
+ //
+ EFI_CALCULATE_CRC32 CalculateCrc32;
+
+ //
+ // Miscellaneous Services
+ //
+ EFI_COPY_MEM CopyMem;
+ EFI_SET_MEM SetMem;
+} FRAMEWORK_EFI_BOOT_SERVICES;
+
#define EFI_EVENT_RUNTIME_CONTEXT 0x20000000
#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400
#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203
diff --git a/IntelFrameworkPkg/Include/Framework/PeiCis.h b/IntelFrameworkPkg/Include/Framework/PeiCis.h
index 90a1a91f43..a50b1767e5 100644
--- a/IntelFrameworkPkg/Include/Framework/PeiCis.h
+++ b/IntelFrameworkPkg/Include/Framework/PeiCis.h
@@ -18,6 +18,24 @@
#include <PiPei.h>
#include <Ppi/PciCfg.h>
+//
+// Framework PEI Specification Revision information
+//
+#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION 0
+#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION 91
+
+///
+/// Inconsistent with specification here:
+/// In Framework Spec, PeiCis0.91, FRAMEWORK_PEI_SERVICES_SIGNATURE is defined as 0x5652455320494550. But
+/// to pass multiple tool chain, it is append a ULL.
+///
+//
+// PEI services signature and Revision defined in Framework PEI spec
+//
+#define FRAMEWORK_PEI_SERVICES_SIGNATURE 0x5652455320494550ULL
+#define FRAMEWORK_PEI_SERVICES_REVISION ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))
+
+
typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;
@@ -156,6 +174,7 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
EFI_PEI_COPY_MEM CopyMem;
EFI_PEI_SET_MEM SetMem;
//
+ // (the following interfaces are installed by publishing PEIM)
// Status Code
//
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;
@@ -164,13 +183,29 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
//
EFI_PEI_RESET_SYSTEM ResetSystem;
//
- // (the following interfaces are installed by publishing PEIM)
- //
// I/O Abstractions
//
EFI_PEI_CPU_IO_PPI *CpuIo;
EFI_PEI_PCI_CFG_PPI *PciCfg;
};
+///
+/// Enumeration of reset types defined in Framework Spec PeiCis
+///
+typedef enum {
+ ///
+ /// Used to induce a system-wide reset. This sets all circuitry within the
+ /// system to its initial state. This type of reset is asynchronous to system
+ /// operation and operates withgout regard to cycle boundaries. EfiColdReset
+ /// is tantamount to a system power cycle.
+ ///
+ EfiPeiResetCold,
+ ///
+ /// Used to induce a system-wide initialization. The processors are set to their
+ /// initial state, and pending cycles are not corrupted. If the system does
+ /// not support this reset type, then an EfiResetCold must be performed.
+ ///
+ EfiPeiResetWarm,
+} EFI_PEI_RESET_TYPE;
#endif
diff --git a/IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h b/IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h
index d03c933c4d..2a1b76ab26 100644
--- a/IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h
+++ b/IntelFrameworkPkg/Include/Ppi/ReadOnlyVariable.h
@@ -37,6 +37,7 @@ typedef struct _EFI_PEI_READ_ONLY_VARIABLE_PPI EFI_PEI_READ_ONLY_VARIABLE_PPI;
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
+
/**
Get Variable value by Name and GUID pair
@@ -104,8 +105,8 @@ EFI_STATUS
/// variable services.
///
struct _EFI_PEI_READ_ONLY_VARIABLE_PPI {
- EFI_PEI_GET_VARIABLE PeiGetVariable; ///< A service to ascertain a given variable name.
- EFI_PEI_GET_NEXT_VARIABLE_NAME PeiGetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable
+ EFI_PEI_GET_VARIABLE GetVariable; ///< A service to ascertain a given variable name.
+ EFI_PEI_GET_NEXT_VARIABLE_NAME GetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable
};
extern EFI_GUID gEfiPeiReadOnlyVariablePpiGuid;