Newer
Older
AMI-Aptio-BIOS-Reversed / KbcEmulDxe / README.md
@Ajax Dong Ajax Dong 2 days ago 2 KB Init

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.