# CpuIoDxe

**Index:** 0084 (84)
**Size:** 7680 bytes (PE32+ body)
**Phase:** DXE (Driver eXecution Environment)
**Subsystem:** EFI_BOOT_SERVICE_DRIVER (0x0C, EFI_RUNTIME_DRIVER)

## Overview

EFI CPU I/O Protocol DXE Driver. Implements and produces the EFI_CPU_IO_PROTOCOL for validated access to memory-mapped I/O (MMIO) space and port I/O space. This is the older Framework CPU I/O protocol from the IntelFrameworkModulePkg. Unlike the newer EFI_CPU_IO2_PROTOCOL (in UefiCpuPkg), the access function signatures do NOT include a 'This' pointer as the first parameter. Provides width-and-stride-aware I/O read/write operations with parameter validation, supporting 1, 2, 4, and 8-byte accesses including FIFO and fill modes.

## Key Functions

- **CpuIoDriverEntry** -- Module entry point; installs the EFI_CPU_IO_PROTOCOL interface
- **CpuIoCheckParameter** -- Validates I/O access parameters (address, width, count) against platform constraints
- **CpuIoReadMmio** -- Reads from memory-mapped I/O space with specified width and stride
- **CpuIoWriteMmio** -- Writes to memory-mapped I/O space with specified width and stride
- **CpuIoReadPort** -- Reads from I/O port space with specified width and stride
- **CpuIoWritePort** -- Writes to I/O port space with specified width and stride

## Protocols / Dependencies

- EFI_CPU_IO_PROTOCOL -- Framework CPU I/O Protocol providing validated MMIO and port I/O access
- IntelFrameworkModulePkg/Universal/CpuIoDxe -- EDK2 Intel Framework module
- UEFI Boot Services -- Protocol installation

## Platform

HR650X BIOS, x86-64 architecture. Source originates from e:\hs\IntelFrameworkModulePkg\Universal\CpuIoDxe\CpuIo.c. This is the older Framework protocol variant (without 'This' pointer in access functions) from the IntelFrameworkModulePkg.