2 The default version of EFI_PEI_CPU_IO_PPI support published by PeiServices in
3 PeiCore initialization phase.
5 EFI_PEI_CPU_IO_PPI is installed by some platform or chipset-specific PEIM that
6 abstracts the processor-visible I/O operations. When PeiCore is started, the
7 default version of EFI_PEI_CPU_IO_PPI will be assigned to PeiServices table.
9 Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
10 This program and the accompanying materials
11 are licensed and made available under the terms and conditions of the BSD License
12 which accompanies this distribution. The full text of the license may be found at
13 http://opensource.org/licenses/bsd-license.php
15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 /// This default instance of EFI_PEI_CPU_IO_PPI install assigned to EFI_PEI_SERVICE.CpuIo
24 /// when PeiCore's initialization.
26 EFI_PEI_CPU_IO_PPI gPeiDefaultCpuIoPpi
= {
54 Memory-based read services.
56 This function is to perform the Memory Access Read service based on installed
57 instance of the EFI_PEI_CPU_IO_PPI.
58 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
59 return EFI_NOT_YET_AVAILABLE.
61 @param PeiServices An indirect pointer to the PEI Services Table
62 published by the PEI Foundation.
63 @param This Pointer to local data for the interface.
64 @param Width The width of the access. Enumerated in bytes.
65 @param Address The physical address of the access.
66 @param Count The number of accesses to perform.
67 @param Buffer A pointer to the buffer of data.
69 @retval EFI_SUCCESS The function completed successfully.
70 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
75 IN CONST EFI_PEI_SERVICES
**PeiServices
,
76 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
77 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
83 return EFI_NOT_AVAILABLE_YET
;
87 Memory-based write services.
89 This function is to perform the Memory Access Write service based on installed
90 instance of the EFI_PEI_CPU_IO_PPI.
91 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
92 return EFI_NOT_YET_AVAILABLE.
94 @param PeiServices An indirect pointer to the PEI Services Table
95 published by the PEI Foundation.
96 @param This Pointer to local data for the interface.
97 @param Width The width of the access. Enumerated in bytes.
98 @param Address The physical address of the access.
99 @param Count The number of accesses to perform.
100 @param Buffer A pointer to the buffer of data.
102 @retval EFI_SUCCESS The function completed successfully.
103 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
108 IN CONST EFI_PEI_SERVICES
**PeiServices
,
109 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
110 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
116 return EFI_NOT_AVAILABLE_YET
;
120 IO-based read services.
122 This function is to perform the IO-base read service for the EFI_PEI_CPU_IO_PPI.
123 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
124 return EFI_NOT_YET_AVAILABLE.
126 @param PeiServices An indirect pointer to the PEI Services Table
127 published by the PEI Foundation.
128 @param This Pointer to local data for the interface.
129 @param Width The width of the access. Enumerated in bytes.
130 @param Address The physical address of the access.
131 @param Count The number of accesses to perform.
132 @param Buffer A pointer to the buffer of data.
134 @retval EFI_SUCCESS The function completed successfully.
135 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
140 IN CONST EFI_PEI_SERVICES
**PeiServices
,
141 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
142 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
148 return EFI_NOT_AVAILABLE_YET
;
152 IO-based write services.
154 This function is to perform the IO-base write service for the EFI_PEI_CPU_IO_PPI.
155 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
156 return EFI_NOT_YET_AVAILABLE.
158 @param PeiServices An indirect pointer to the PEI Services Table
159 published by the PEI Foundation.
160 @param This Pointer to local data for the interface.
161 @param Width The width of the access. Enumerated in bytes.
162 @param Address The physical address of the access.
163 @param Count The number of accesses to perform.
164 @param Buffer A pointer to the buffer of data.
166 @retval EFI_SUCCESS The function completed successfully.
167 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
172 IN CONST EFI_PEI_SERVICES
**PeiServices
,
173 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
174 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
180 return EFI_NOT_AVAILABLE_YET
;
184 8-bit I/O read operations.
186 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
189 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
190 @param This Pointer to local data for the interface.
191 @param Address The physical address of the access.
193 @return An 8-bit value returned from the I/O space.
198 IN CONST EFI_PEI_SERVICES
**PeiServices
,
199 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
207 Reads an 16-bit I/O port.
209 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
212 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
213 @param This Pointer to local data for the interface.
214 @param Address The physical address of the access.
216 @return A 16-bit value returned from the I/O space.
221 IN CONST EFI_PEI_SERVICES
**PeiServices
,
222 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
230 Reads an 32-bit I/O port.
232 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
235 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
236 @param This Pointer to local data for the interface.
237 @param Address The physical address of the access.
239 @return A 32-bit value returned from the I/O space.
244 IN CONST EFI_PEI_SERVICES
**PeiServices
,
245 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
253 Reads an 64-bit I/O port.
255 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
258 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
259 @param This Pointer to local data for the interface.
260 @param Address The physical address of the access.
262 @return A 64-bit value returned from the I/O space.
267 IN CONST EFI_PEI_SERVICES
**PeiServices
,
268 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
276 8-bit I/O write operations.
277 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
280 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
281 @param This Pointer to local data for the interface.
282 @param Address The physical address of the access.
283 @param Data The data to write.
288 IN CONST EFI_PEI_SERVICES
**PeiServices
,
289 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
297 16-bit I/O write operations.
298 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
301 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
302 @param This Pointer to local data for the interface.
303 @param Address The physical address of the access.
304 @param Data The data to write.
308 PeiDefaultIoWrite16 (
309 IN CONST EFI_PEI_SERVICES
**PeiServices
,
310 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
318 32-bit I/O write operations.
319 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
322 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
323 @param This Pointer to local data for the interface.
324 @param Address The physical address of the access.
325 @param Data The data to write.
329 PeiDefaultIoWrite32 (
330 IN CONST EFI_PEI_SERVICES
**PeiServices
,
331 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
339 64-bit I/O write operations.
340 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
343 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
344 @param This Pointer to local data for the interface.
345 @param Address The physical address of the access.
346 @param Data The data to write.
350 PeiDefaultIoWrite64 (
351 IN CONST EFI_PEI_SERVICES
**PeiServices
,
352 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
360 8-bit memory read operations.
362 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
365 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
366 @param This Pointer to local data for the interface.
367 @param Address The physical address of the access.
369 @return An 8-bit value returned from the memory space.
375 IN CONST EFI_PEI_SERVICES
**PeiServices
,
376 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
384 16-bit memory read operations.
386 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
389 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
390 @param This Pointer to local data for the interface.
391 @param Address The physical address of the access.
393 @return An 16-bit value returned from the memory space.
398 PeiDefaultMemRead16 (
399 IN CONST EFI_PEI_SERVICES
**PeiServices
,
400 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
408 32-bit memory read operations.
410 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
413 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
414 @param This Pointer to local data for the interface.
415 @param Address The physical address of the access.
417 @return An 32-bit value returned from the memory space.
422 PeiDefaultMemRead32 (
423 IN CONST EFI_PEI_SERVICES
**PeiServices
,
424 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
432 64-bit memory read operations.
434 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
437 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
438 @param This Pointer to local data for the interface.
439 @param Address The physical address of the access.
441 @return An 64-bit value returned from the memory space.
446 PeiDefaultMemRead64 (
447 IN CONST EFI_PEI_SERVICES
**PeiServices
,
448 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
456 8-bit memory write operations.
457 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
460 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
461 @param This Pointer to local data for the interface.
462 @param Address The physical address of the access.
463 @param Data The data to write.
468 PeiDefaultMemWrite8 (
469 IN CONST EFI_PEI_SERVICES
**PeiServices
,
470 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
478 16-bit memory write operations.
479 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
482 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
483 @param This Pointer to local data for the interface.
484 @param Address The physical address of the access.
485 @param Data The data to write.
490 PeiDefaultMemWrite16 (
491 IN CONST EFI_PEI_SERVICES
**PeiServices
,
492 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
500 32-bit memory write operations.
501 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
504 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
505 @param This Pointer to local data for the interface.
506 @param Address The physical address of the access.
507 @param Data The data to write.
512 PeiDefaultMemWrite32 (
513 IN CONST EFI_PEI_SERVICES
**PeiServices
,
514 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
522 64-bit memory write operations.
523 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
526 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
527 @param This Pointer to local data for the interface.
528 @param Address The physical address of the access.
529 @param Data The data to write.
534 PeiDefaultMemWrite64 (
535 IN CONST EFI_PEI_SERVICES
**PeiServices
,
536 IN CONST EFI_PEI_CPU_IO_PPI
*This
,