/** @file\r
- This file declares CPU IO PPI that abstracts CPU IO access\r
+ This PPI provides a set of memory- and I/O-based services. \r
+ The perspective of the services is that of the processor, not the bus or system.\r
\r
- Copyright (c) 2006, Intel Corporation \r
+ Copyright (c) 2006 - 2008, Intel Corporation \r
All rights reserved. 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
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
- Module Name: CpuIo.h\r
-\r
@par Revision Reference:\r
- This PPI is defined in PEI CIS.\r
- Version 0.91.\r
-\r
+ This PPI is defined in PI.\r
+ Version 1.0.\r
+ \r
**/\r
\r
#ifndef __PEI_CPUIO_PPI_H__\r
#define __PEI_CPUIO_PPI_H__\r
\r
+#include <ProcessorBind.h>\r
+#include <Pi/PiPeiCis.h>\r
+\r
#define EFI_PEI_CPU_IO_PPI_INSTALLED_GUID \\r
- { \\r
- 0xe6af1f7b, 0xfc3f, 0x46da, {0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 } \\r
- }\r
+ { 0xe6af1f7b, 0xfc3f, 0x46da, {0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 } }\r
\r
typedef struct _EFI_PEI_CPU_IO_PPI EFI_PEI_CPU_IO_PPI;\r
\r
/**\r
Memory-based access services and I/O-based access services.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Width The width of the access. Enumerated in bytes.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Count The number of accesses to perform.\r
- \r
- @param Buffer A pointer to the buffer of data.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Width The width of the access. Enumerated in bytes.\r
+ @param Address The physical address of the access.\r
+ @param Count The number of accesses to perform.\r
+ @param Buffer A pointer to the buffer of data.\r
\r
- @retval EFI_SUCCESS The function completed successfully. \r
- \r
- @retval EFI_NOT_YET_AVAILABLE The service has not been installed.\r
+ @retval EFI_SUCCESS The function completed successfully.\r
+ @retval EFI_NOT_YET_AVAILABLE The service has not been installed.\r
\r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_MEM) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_MEM)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN EFI_PEI_CPU_IO_PPI_WIDTH Width,\r
/**\r
8-bit I/O read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT8\r
+ @return UINT8 An 8-bit value is returned from the I/O space.\r
\r
**/\r
typedef\r
UINT8\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ8) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ8)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
16-bit I/O read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT16\r
+ @return UINT16 A 16-bit value is returned from the I/O space.\r
\r
**/\r
typedef\r
UINT16\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ16) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ16)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
32-bit I/O read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT32\r
+ @return UINT32 A 32-bit value is returned from the I/O space.\r
\r
**/\r
typedef\r
UINT32\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ32) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ32)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
64-bit I/O read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT64\r
+ @return UINT64 A 64-bit value is returned from the I/O space.\r
\r
**/\r
typedef\r
UINT64\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ64) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ64)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
8-bit I/O write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE8) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE8)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
16-bit I/O write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE16) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE16)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
32-bit I/O write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE32) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE32)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
64-bit I/O write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE64) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE64)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
8-bit Memory read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT8\r
+ @return UINT8 An 8-bit value is returned from the memory space.\r
\r
**/\r
typedef\r
UINT8\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ8) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ8)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
16-bit Memory read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT16\r
+ @return UINT16 A 16-bit value is returned from the memory space.\r
\r
**/\r
typedef\r
UINT16\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ16) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ16)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
32-bit Memory read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT32\r
+ @return UINT32 A 32-bit value is returned from the memory space.\r
\r
**/\r
typedef\r
UINT32\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ32) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ32)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
64-bit Memory read operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
\r
- @return UINT64\r
+ @return UINT64 A 64-bit value is returned from the memory space.\r
\r
**/\r
typedef\r
UINT64\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ64) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ64)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address\r
/**\r
8-bit Memory write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE8) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE8)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
16-bit Memory write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE16) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE16)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
32-bit Memory write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE32) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE32)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
/**\r
64-bit Memory write operations.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation. \r
- \r
- @param This Pointer to local data for the interface.\r
- \r
- @param Address The physical address of the access.\r
- \r
- @param Data The data to write.\r
+ @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Address The physical address of the access.\r
+ @param Data The data to write.\r
\r
@return None\r
\r
**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE64) (\r
+(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE64)(\r
IN EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PEI_CPU_IO_PPI *This,\r
IN UINT64 Address,\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64;\r
};\r
\r
-extern EFI_GUID gEfiPeiCpuIoPpiInServiceTableGuid;\r
+extern EFI_GUID gEfiPeiCpuIoPpiInstalledGuid;\r
\r
#endif\r