SmmGenericSio
- Index: 0196
- Size: 16,740 bytes (16.3 KB)
- Phase: SMM (System Management Mode)
- PE Format: PE32+ x86-64, 6 sections (.text, .rdata, .data, section_3, .xdata, .reloc)
Overview
SMM driver for generic Super I/O (SIO) controller management. Part of the AmiModulePkg/GenericSio package. This driver provides SMM-based access to Super I/O configuration registers typically located in the I/O address space (e.g., 0x2E/0x2F or 0x4E/0x4F). It manages logical device enable/disable, configuration of LDN (Logical Device Number) assignments, and GPIO pin configuration. The driver supports common SIO chips (Nuvoton, ITE, Fintek) and provides SMM-protected access to SIO resources.
Key Functions
- ModuleEntryPoint -- Standard SMM driver entry; library init and SIO configuration
- SmmGenericSioAutoGenConstructor -- AutoGen library constructor entry from build output
- SmmGenericSioInitialize -- Core SMM Generic SIO initialization (chip detection, logical device config)
- SmmGenericSioAutoGenDestructor -- AutoGen cleanup hook
- SmmGenericSioUnload -- Manual unload path used for runtime unwind/teardown
- SmmGenericSioHandleInitializeError -- Error handler for SIO init failures
Module Split (Recovered)
SmmGenericSio.h contains the function prototypes used by the SMM entry shim and AutoGen helpers.
SmmGenericSio.c provides ModuleEntryPoint, which wires AutoGen constructor / init / destructor and handles final status/error reporting.
Protocols
- SmmBase2 Protocol -- SMM service entry point
- SmmIo Protocol -- SMM I/O access for SIO configuration port communication
- GenericSio Protocol -- SIO programming interface
- Build: HR6N0XMLK DEBUG_VS2015 X64
- Source: AmiModulePkg/GenericSio/SmmGenericSio
- Part of: HR650X BIOS SMM infrastructure (indices 0195-0199, 0201-0203)