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 - 2018, Intel Corporation. All rights reserved.<BR>
10 SPDX-License-Identifier: BSD-2-Clause-Patent
17 /// This default instance of EFI_PEI_CPU_IO_PPI install assigned to EFI_PEI_SERVICE.CpuIo
18 /// when PeiCore's initialization.
20 EFI_PEI_CPU_IO_PPI gPeiDefaultCpuIoPpi
= {
48 Memory-based read services.
50 This function is to perform the Memory Access Read service based on installed
51 instance of the EFI_PEI_CPU_IO_PPI.
52 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
53 return EFI_NOT_YET_AVAILABLE.
55 @param PeiServices An indirect pointer to the PEI Services Table
56 published by the PEI Foundation.
57 @param This Pointer to local data for the interface.
58 @param Width The width of the access. Enumerated in bytes.
59 @param Address The physical address of the access.
60 @param Count The number of accesses to perform.
61 @param Buffer A pointer to the buffer of data.
63 @retval EFI_SUCCESS The function completed successfully.
64 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
69 IN CONST EFI_PEI_SERVICES
**PeiServices
,
70 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
71 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
77 return EFI_NOT_AVAILABLE_YET
;
81 Memory-based write services.
83 This function is to perform the Memory Access Write service based on installed
84 instance of the EFI_PEI_CPU_IO_PPI.
85 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
86 return EFI_NOT_YET_AVAILABLE.
88 @param PeiServices An indirect pointer to the PEI Services Table
89 published by the PEI Foundation.
90 @param This Pointer to local data for the interface.
91 @param Width The width of the access. Enumerated in bytes.
92 @param Address The physical address of the access.
93 @param Count The number of accesses to perform.
94 @param Buffer A pointer to the buffer of data.
96 @retval EFI_SUCCESS The function completed successfully.
97 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
102 IN CONST EFI_PEI_SERVICES
**PeiServices
,
103 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
104 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
110 return EFI_NOT_AVAILABLE_YET
;
114 IO-based read services.
116 This function is to perform the IO-base read service for the EFI_PEI_CPU_IO_PPI.
117 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
118 return EFI_NOT_YET_AVAILABLE.
120 @param PeiServices An indirect pointer to the PEI Services Table
121 published by the PEI Foundation.
122 @param This Pointer to local data for the interface.
123 @param Width The width of the access. Enumerated in bytes.
124 @param Address The physical address of the access.
125 @param Count The number of accesses to perform.
126 @param Buffer A pointer to the buffer of data.
128 @retval EFI_SUCCESS The function completed successfully.
129 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
134 IN CONST EFI_PEI_SERVICES
**PeiServices
,
135 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
136 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
142 return EFI_NOT_AVAILABLE_YET
;
146 IO-based write services.
148 This function is to perform the IO-base write service for the EFI_PEI_CPU_IO_PPI.
149 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
150 return EFI_NOT_YET_AVAILABLE.
152 @param PeiServices An indirect pointer to the PEI Services Table
153 published by the PEI Foundation.
154 @param This Pointer to local data for the interface.
155 @param Width The width of the access. Enumerated in bytes.
156 @param Address The physical address of the access.
157 @param Count The number of accesses to perform.
158 @param Buffer A pointer to the buffer of data.
160 @retval EFI_SUCCESS The function completed successfully.
161 @retval EFI_NOT_YET_AVAILABLE The service has not been installed.
166 IN CONST EFI_PEI_SERVICES
**PeiServices
,
167 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
168 IN EFI_PEI_CPU_IO_PPI_WIDTH Width
,
174 return EFI_NOT_AVAILABLE_YET
;
178 8-bit I/O read operations.
180 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
183 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
184 @param This Pointer to local data for the interface.
185 @param Address The physical address of the access.
187 @return An 8-bit value returned from the I/O space.
192 IN CONST EFI_PEI_SERVICES
**PeiServices
,
193 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
201 Reads an 16-bit I/O port.
203 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
206 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
207 @param This Pointer to local data for the interface.
208 @param Address The physical address of the access.
210 @return A 16-bit value returned from the I/O space.
215 IN CONST EFI_PEI_SERVICES
**PeiServices
,
216 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
224 Reads an 32-bit I/O port.
226 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
229 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
230 @param This Pointer to local data for the interface.
231 @param Address The physical address of the access.
233 @return A 32-bit value returned from the I/O space.
238 IN CONST EFI_PEI_SERVICES
**PeiServices
,
239 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
247 Reads an 64-bit I/O port.
249 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
252 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
253 @param This Pointer to local data for the interface.
254 @param Address The physical address of the access.
256 @return A 64-bit value returned from the I/O space.
261 IN CONST EFI_PEI_SERVICES
**PeiServices
,
262 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
270 8-bit I/O write operations.
271 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
274 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
275 @param This Pointer to local data for the interface.
276 @param Address The physical address of the access.
277 @param Data The data to write.
282 IN CONST EFI_PEI_SERVICES
**PeiServices
,
283 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
291 16-bit I/O write operations.
292 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
295 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
296 @param This Pointer to local data for the interface.
297 @param Address The physical address of the access.
298 @param Data The data to write.
302 PeiDefaultIoWrite16 (
303 IN CONST EFI_PEI_SERVICES
**PeiServices
,
304 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
312 32-bit I/O write operations.
313 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
316 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
317 @param This Pointer to local data for the interface.
318 @param Address The physical address of the access.
319 @param Data The data to write.
323 PeiDefaultIoWrite32 (
324 IN CONST EFI_PEI_SERVICES
**PeiServices
,
325 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
333 64-bit I/O write operations.
334 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
337 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
338 @param This Pointer to local data for the interface.
339 @param Address The physical address of the access.
340 @param Data The data to write.
344 PeiDefaultIoWrite64 (
345 IN CONST EFI_PEI_SERVICES
**PeiServices
,
346 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
354 8-bit memory read operations.
356 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
359 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
360 @param This Pointer to local data for the interface.
361 @param Address The physical address of the access.
363 @return An 8-bit value returned from the memory space.
369 IN CONST EFI_PEI_SERVICES
**PeiServices
,
370 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
378 16-bit memory read operations.
380 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
383 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
384 @param This Pointer to local data for the interface.
385 @param Address The physical address of the access.
387 @return An 16-bit value returned from the memory space.
392 PeiDefaultMemRead16 (
393 IN CONST EFI_PEI_SERVICES
**PeiServices
,
394 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
402 32-bit memory read operations.
404 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
407 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
408 @param This Pointer to local data for the interface.
409 @param Address The physical address of the access.
411 @return An 32-bit value returned from the memory space.
416 PeiDefaultMemRead32 (
417 IN CONST EFI_PEI_SERVICES
**PeiServices
,
418 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
426 64-bit memory read operations.
428 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then
431 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
432 @param This Pointer to local data for the interface.
433 @param Address The physical address of the access.
435 @return An 64-bit value returned from the memory space.
440 PeiDefaultMemRead64 (
441 IN CONST EFI_PEI_SERVICES
**PeiServices
,
442 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
450 8-bit memory write operations.
451 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
454 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
455 @param This Pointer to local data for the interface.
456 @param Address The physical address of the access.
457 @param Data The data to write.
462 PeiDefaultMemWrite8 (
463 IN CONST EFI_PEI_SERVICES
**PeiServices
,
464 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
472 16-bit memory write operations.
473 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
476 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
477 @param This Pointer to local data for the interface.
478 @param Address The physical address of the access.
479 @param Data The data to write.
484 PeiDefaultMemWrite16 (
485 IN CONST EFI_PEI_SERVICES
**PeiServices
,
486 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
494 32-bit memory write operations.
495 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
498 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
499 @param This Pointer to local data for the interface.
500 @param Address The physical address of the access.
501 @param Data The data to write.
506 PeiDefaultMemWrite32 (
507 IN CONST EFI_PEI_SERVICES
**PeiServices
,
508 IN CONST EFI_PEI_CPU_IO_PPI
*This
,
516 64-bit memory write operations.
517 If the EFI_PEI_CPU_IO_PPI is not installed by platform/chipset PEIM, then do
520 @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
521 @param This Pointer to local data for the interface.
522 @param Address The physical address of the access.
523 @param Data The data to write.
528 PeiDefaultMemWrite64 (
529 IN CONST EFI_PEI_SERVICES
**PeiServices
,
530 IN CONST EFI_PEI_CPU_IO_PPI
*This
,