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