# KbcEmulDxe

| Field       | Value                                                     |
|-------------|-----------------------------------------------------------|
| Index       | 0313                                                      |
| Module      | KbcEmulDxe                                                |
| Size        | 5,092 bytes (PE32+)                                       |
| SHA256      | 509ba88e23ef7a605cdb9527b5290cd9c4e8ac97fb8fc8666fb3f2a2c89650e4 |
| Phase       | DXE                                                       |
| Package     | AmiModulePkg/KbcEmul                                      |
| Build       | DEBUG_VS2015 X64                                          |
| Image       | HR6N0XMLK                                                 |
| Entry Point | 0x390                                                     |

## Overview

This DXE driver provides keyboard controller (KBC) emulation for systems where the traditional i8042 PS/2 keyboard controller is not physically present. It reads the "UsbSupport" UEFI variable to determine if USB keyboard emulation should be enabled, installs timer-based polling callbacks, and communicates with the Super I/O (SIO) protocol to manage keyboard IRQ routing and legacy I/O port access.

## Key Functions

- KbcEmulDriverEntry -- Main entry point; reads UsbSupport variable and initializes KBC emulation
- KbcEmulTimerCallback -- Periodic timer handler that polls for USB keyboard input and emulates legacy KBC responses
- KbcEmulDisableKeyboard -- Disables keyboard emulation and cleans up timer events
- SioProtocolWrite / SioProtocolRead -- Super I/O protocol wrappers for configuring keyboard-related SIO registers
- CmosReadComPortType -- Reads COM port type configuration from CMOS

## Dependencies

- UsbSupport UEFI variable
- Super I/O (SIO) Protocol for keyboard controller register access
- UEFI Timer Services (periodic timer callbacks)
- UEFI Boot/Runtime Services

## Platform

X64 UEFI DXE driver, PE32+ format, 6 sections (.text, .rdata, .data, section_3, .xdata, .reloc). Part of AmiModulePkg.