3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 CPU IO PPI defined in Tiano
19 CPU IO PPI abstracts CPU IO access
24 #ifndef _PEI_CPUIO_PPI_H_
25 #define _PEI_CPUIO_PPI_H_
27 #define PEI_CPU_IO_PPI_GUID \
29 0xe6af1f7b, 0xfc3f, 0x46da, 0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 \
32 EFI_FORWARD_DECLARATION (PEI_CPU_IO_PPI
);
35 // *******************************************************
36 // PEI_CPU_IO_PPI_WIDTH
37 // *******************************************************
44 PeiCpuIoWidthFifoUint8
,
45 PeiCpuIoWidthFifoUint16
,
46 PeiCpuIoWidthFifoUint32
,
47 PeiCpuIoWidthFifoUint64
,
48 PeiCpuIoWidthFillUint8
,
49 PeiCpuIoWidthFillUint16
,
50 PeiCpuIoWidthFillUint32
,
51 PeiCpuIoWidthFillUint64
,
53 } PEI_CPU_IO_PPI_WIDTH
;
56 // *******************************************************
57 // PEI_CPU_IO_PPI_IO_MEM
58 // *******************************************************
62 (EFIAPI
*PEI_CPU_IO_PPI_IO_MEM
) (
63 IN EFI_PEI_SERVICES
**PeiServices
,
64 IN PEI_CPU_IO_PPI
* This
,
65 IN PEI_CPU_IO_PPI_WIDTH Width
,
72 // *******************************************************
73 // PEI_CPU_IO_PPI_ACCESS
74 // *******************************************************
77 PEI_CPU_IO_PPI_IO_MEM Read
;
78 PEI_CPU_IO_PPI_IO_MEM Write
;
79 } PEI_CPU_IO_PPI_ACCESS
;
82 // *******************************************************
83 // Base IO Class Functions
84 // *******************************************************
88 (EFIAPI
*PEI_CPU_IO_PPI_IO_READ8
) (
89 IN EFI_PEI_SERVICES
**PeiServices
,
90 IN PEI_CPU_IO_PPI
* This
,
96 (EFIAPI
*PEI_CPU_IO_PPI_IO_READ16
) (
97 IN EFI_PEI_SERVICES
**PeiServices
,
98 IN PEI_CPU_IO_PPI
* This
,
104 (EFIAPI
*PEI_CPU_IO_PPI_IO_READ32
) (
105 IN EFI_PEI_SERVICES
**PeiServices
,
106 IN PEI_CPU_IO_PPI
* This
,
112 (EFIAPI
*PEI_CPU_IO_PPI_IO_READ64
) (
113 IN EFI_PEI_SERVICES
**PeiServices
,
114 IN PEI_CPU_IO_PPI
* This
,
120 (EFIAPI
*PEI_CPU_IO_PPI_IO_WRITE8
) (
121 IN EFI_PEI_SERVICES
**PeiServices
,
122 IN PEI_CPU_IO_PPI
* This
,
129 (EFIAPI
*PEI_CPU_IO_PPI_IO_WRITE16
) (
130 IN EFI_PEI_SERVICES
**PeiServices
,
131 IN PEI_CPU_IO_PPI
* This
,
138 (EFIAPI
*PEI_CPU_IO_PPI_IO_WRITE32
) (
139 IN EFI_PEI_SERVICES
**PeiServices
,
140 IN PEI_CPU_IO_PPI
* This
,
147 (EFIAPI
*PEI_CPU_IO_PPI_IO_WRITE64
) (
148 IN EFI_PEI_SERVICES
**PeiServices
,
149 IN PEI_CPU_IO_PPI
* This
,
156 (EFIAPI
*PEI_CPU_IO_PPI_MEM_READ8
) (
157 IN EFI_PEI_SERVICES
**PeiServices
,
158 IN PEI_CPU_IO_PPI
* This
,
164 (EFIAPI
*PEI_CPU_IO_PPI_MEM_READ16
) (
165 IN EFI_PEI_SERVICES
**PeiServices
,
166 IN PEI_CPU_IO_PPI
* This
,
172 (EFIAPI
*PEI_CPU_IO_PPI_MEM_READ32
) (
173 IN EFI_PEI_SERVICES
**PeiServices
,
174 IN PEI_CPU_IO_PPI
* This
,
180 (EFIAPI
*PEI_CPU_IO_PPI_MEM_READ64
) (
181 IN EFI_PEI_SERVICES
**PeiServices
,
182 IN PEI_CPU_IO_PPI
* This
,
188 (EFIAPI
*PEI_CPU_IO_PPI_MEM_WRITE8
) (
189 IN EFI_PEI_SERVICES
**PeiServices
,
190 IN PEI_CPU_IO_PPI
* This
,
197 (EFIAPI
*PEI_CPU_IO_PPI_MEM_WRITE16
) (
198 IN EFI_PEI_SERVICES
**PeiServices
,
199 IN PEI_CPU_IO_PPI
* This
,
206 (EFIAPI
*PEI_CPU_IO_PPI_MEM_WRITE32
) (
207 IN EFI_PEI_SERVICES
**PeiServices
,
208 IN PEI_CPU_IO_PPI
* This
,
215 (EFIAPI
*PEI_CPU_IO_PPI_MEM_WRITE64
) (
216 IN EFI_PEI_SERVICES
**PeiServices
,
217 IN PEI_CPU_IO_PPI
* This
,
223 // *******************************************************
225 // *******************************************************
227 typedef struct _PEI_CPU_IO_PPI
{
228 PEI_CPU_IO_PPI_ACCESS Mem
;
229 PEI_CPU_IO_PPI_ACCESS Io
;
230 PEI_CPU_IO_PPI_IO_READ8 IoRead8
;
231 PEI_CPU_IO_PPI_IO_READ16 IoRead16
;
232 PEI_CPU_IO_PPI_IO_READ32 IoRead32
;
233 PEI_CPU_IO_PPI_IO_READ64 IoRead64
;
234 PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8
;
235 PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16
;
236 PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32
;
237 PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64
;
238 PEI_CPU_IO_PPI_MEM_READ8 MemRead8
;
239 PEI_CPU_IO_PPI_MEM_READ16 MemRead16
;
240 PEI_CPU_IO_PPI_MEM_READ32 MemRead32
;
241 PEI_CPU_IO_PPI_MEM_READ64 MemRead64
;
242 PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8
;
243 PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16
;
244 PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32
;
245 PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64
;
248 extern EFI_GUID gPeiCpuIoPpiInServiceTableGuid
;