X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FPi%2FPiDxeCis.h;h=c081d047b35fe9ae6e21fb8b382206d356ba02b2;hb=27dc016c3f004c9e390057e93a48bd4a498fcc4c;hp=b83c4f84b40e24687148a5ac83e55936d1cb71c7;hpb=450ec0ed87d34dd325b66515dd7530fc59ac6267;p=mirror_edk2.git
diff --git a/MdePkg/Include/Pi/PiDxeCis.h b/MdePkg/Include/Pi/PiDxeCis.h
index b83c4f84b4..c081d047b3 100644
--- a/MdePkg/Include/Pi/PiDxeCis.h
+++ b/MdePkg/Include/Pi/PiDxeCis.h
@@ -1,17 +1,17 @@
/** @file
Include file matches things in PI.
- Copyright (c) 2006 - 2010, Intel Corporation
- All rights reserved. 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
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under
+the terms and conditions of the BSD License that 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.
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
@par Revision Reference:
- PI Version 1.0
+ PI Version 1.6
**/
@@ -22,7 +22,7 @@
#include
///
-/// Global Coherencey Domain types - Memory type
+/// Global Coherencey Domain types - Memory type.
///
typedef enum {
///
@@ -48,11 +48,25 @@ typedef enum {
/// access I/O devices in the platform.
///
EfiGcdMemoryTypeMemoryMappedIo,
+ ///
+ /// A memory region that is visible to the boot processor.
+ /// This memory supports byte-addressable non-volatility.
+ ///
+ EfiGcdMemoryTypePersistent,
+ //
+ // Keep original one for the compatibility.
+ //
+ EfiGcdMemoryTypePersistentMemory = EfiGcdMemoryTypePersistent,
+ ///
+ /// A memory region that provides higher reliability relative to other memory in the
+ /// system. If all memory has the same reliability, then this bit is not used.
+ ///
+ EfiGcdMemoryTypeMoreReliable,
EfiGcdMemoryTypeMaximum
} EFI_GCD_MEMORY_TYPE;
///
-/// Global Coherencey Domain types - IO type
+/// Global Coherencey Domain types - IO type.
///
typedef enum {
///
@@ -106,13 +120,13 @@ typedef enum {
} EFI_GCD_ALLOCATE_TYPE;
///
-/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR
+/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR.
///
typedef struct {
///
/// The physical address of the first byte in the memory region. Type
/// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function
- /// description in the UEFI 2.0 specification
+ /// description in the UEFI 2.0 specification.
///
EFI_PHYSICAL_ADDRESS BaseAddress;
@@ -134,7 +148,7 @@ typedef struct {
UINT64 Attributes;
///
/// Type of the memory region. Type EFI_GCD_MEMORY_TYPE is defined in the
- /// AddMemorySpace() function description
+ /// AddMemorySpace() function description.
///
EFI_GCD_MEMORY_TYPE GcdMemoryType;
@@ -157,7 +171,7 @@ typedef struct {
} EFI_GCD_MEMORY_SPACE_DESCRIPTOR;
///
-/// EFI_GCD_IO_SPACE_DESCRIPTOR
+/// EFI_GCD_IO_SPACE_DESCRIPTOR.
///
typedef struct {
///
@@ -225,7 +239,7 @@ typedef struct {
added to the global coherency domain of the processor.
@retval EFI_ACCESS_DENIED One or more bytes of the memory resource range
specified by BaseAddress and Length was allocated
- in a prior call to AllocateMemorySpace()..
+ in a prior call to AllocateMemorySpace().
**/
typedef
@@ -365,11 +379,12 @@ EFI_STATUS
resource range specified by BaseAddress and Length.
@retval EFI_UNSUPPORTED The bit mask of attributes is not support for the memory resource
range specified by BaseAddress and Length.
- @retval EFI_ACCESS_DEFINED The attributes for the memory resource range specified by
+ @retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by
BaseAddress and Length cannot be modified.
@retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of
the memory resource range.
-
+ @retval EFI_NOT_AVAILABLE_YET The attributes cannot be set because CPU architectural protocol is
+ not available yet.
**/
typedef
EFI_STATUS
@@ -379,6 +394,31 @@ EFI_STATUS
IN UINT64 Attributes
);
+/**
+ Modifies the capabilities for a memory region in the global coherency domain of the
+ processor.
+
+ @param BaseAddress The physical address that is the start address of a memory region.
+ @param Length The size in bytes of the memory region.
+ @param Capabilities The bit mask of capabilities that the memory region supports.
+
+ @retval EFI_SUCCESS The capabilities were set for the memory region.
+ @retval EFI_INVALID_PARAMETER Length is zero.
+ @retval EFI_UNSUPPORTED The capabilities specified by Capabilities do not include the
+ memory region attributes currently in use.
+ @retval EFI_ACCESS_DENIED The capabilities for the memory resource range specified by
+ BaseAddress and Length cannot be modified.
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the capabilities
+ of the memory resource range.
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_SET_MEMORY_SPACE_CAPABILITIES) (
+ IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length,
+ IN UINT64 Capabilities
+ );
+
/**
Returns a map of the memory resources in the global coherency domain of the
processor.
@@ -580,7 +620,7 @@ EFI_STATUS
@retval EFI_SUCCESS One or more DXE driver were dispatched.
@retval EFI_NOT_FOUND No DXE drivers were dispatched.
@retval EFI_ALREADY_STARTED An attempt is being made to start the DXE Dispatcher recursively.
- Thus no action was taken.
+ Thus, no action was taken.
**/
typedef
@@ -654,8 +694,10 @@ EFI_STATUS
//
// DXE Services Table
//
-#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL
-#define DXE_SERVICES_REVISION ((1<<16) | (00))
+#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL
+#define DXE_SPECIFICATION_MAJOR_REVISION 1
+#define DXE_SPECIFICATION_MINOR_REVISION 60
+#define DXE_SERVICES_REVISION ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
typedef struct {
///
@@ -691,23 +733,12 @@ typedef struct {
// Service to process a single firmware volume found in a capsule
//
EFI_PROCESS_FIRMWARE_VOLUME ProcessFirmwareVolume;
+ //
+ // Extensions to Global Coherency Domain Services
+ //
+ EFI_SET_MEMORY_SPACE_CAPABILITIES SetMemorySpaceCapabilities;
} DXE_SERVICES;
typedef DXE_SERVICES EFI_DXE_SERVICES;
-
-/**
- Function prototype for invoking a function on an Application Processor.
-
- This definition is used by the UEFI MP Serices Protocol, and the
- PI SMM System Table.
-
- @param[in,out] Buffer Pointer to private data buffer.
-**/
-typedef
-VOID
-(EFIAPI *EFI_AP_PROCEDURE)(
- IN OUT VOID *Buffer
- );
-
#endif