# 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
- **sub_594** -- AutoGen library constructor
- **sub_1570** -- Core SMM Generic SIO initialization (chip detection, logical device config)
- **sub_18BC** -- Library destructor
- **sub_3B0** -- Manual unload handler
- **sub_1A5C** -- Error handler for SIO init failures

## Protocols

- **SmmBase2 Protocol** -- SMM service entry point
- **SmmIo Protocol** -- SMM I/O access for SIO configuration port communication
- **GenericSio Protocol** -- SIO programming interface

## Platform

- **Build:** HR6N0XMLK DEBUG_VS2015 X64
- **Source:** AmiModulePkg/GenericSio/SmmGenericSio
- **Part of:** HR650X BIOS SMM infrastructure (indices 0195-0199, 0201-0203)