AMI-Aptio-BIOS-Reversed / AmiModulePkg / KbcEmulation / KbcEmulDxe /
@Ajax Dong Ajax Dong authored 7 days ago
..
KbcEmulDxe.c Restructure the repo 7 days ago
KbcEmulDxe.h Restructure the repo 7 days ago
KbcEmulDxe.md Restructure the repo 7 days ago
KbcEmulDxe_390.c Restructure the repo 7 days ago
KbcEmulDxe_43C.c Restructure the repo 7 days ago
KbcEmulDxe_5D4.c Restructure the repo 7 days ago
KbcEmulDxe_5E8.c Restructure the repo 7 days ago
KbcEmulDxe_66C.c Restructure the repo 7 days ago
KbcEmulDxe_6D8.c Restructure the repo 7 days ago
KbcEmulDxe_6E0.c Restructure the repo 7 days ago
KbcEmulDxe_6E8.c Restructure the repo 7 days ago
KbcEmulDxe_7C4.c Restructure the repo 7 days ago
KbcEmulDxe_844.c Restructure the repo 7 days ago
KbcEmulDxe_88C.c Restructure the repo 7 days ago
KbcEmulDxe_8CC.c Restructure the repo 7 days ago
KbcEmulDxe_9A4.c Restructure the repo 7 days ago
KbcEmulDxe_9EC.c Restructure the repo 7 days ago
KbcEmulDxe_A40.c Restructure the repo 7 days ago
KbcEmulDxe_A74.c Restructure the repo 7 days ago
KbcEmulDxe_AD0.c Restructure the repo 7 days ago
KbcEmulDxe_B38.c Restructure the repo 7 days ago
KbcEmulDxe_B88.c Restructure the repo 7 days ago
KbcEmulDxe_BF8.c Restructure the repo 7 days ago
README.md Restructure the repo 7 days ago
strings.txt Restructure the repo 7 days ago
survey.json Restructure the repo 7 days ago
README.md

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.