# LegacySmmSredir

- **Index:** 0197
- **Size:** 7,428 bytes (7.3 KB)
- **Phase:** SMM (System Management Mode)
- **PE Format:** PE32+ x86-64, 5 sections (.text, .rdata, .data, section_3, .xdata)

## Overview

SMM driver for legacy serial redirection, sourced from AmiModulePkg/LegacySerialRedirection. This driver provides SMM-based I/O access to serial ports for legacy serial console redirection during boot. It installs an SMM communicate handler that services read/write/block-fill commands targeting an I/O base address (serial port registers). The driver includes a CMOS-based platform detection mechanism (CMOS offset 0x4C) to determine whether legacy serial redirect is supported on the board. 20 functions across 0x1080 bytes of .text.

## Key Functions

- **_ModuleEntryPoint** (0x420) -- Standard SMM entry; calls init then dispatch
- **LegacySmmSredirAutoGenInit / sub_44C** (0x44C) -- AutoGen library init; locates SmmBase2 and AmiBufferValidationLib
- **LegacySmmSredirDriverEntry / sub_618** (0x618) -- Main entry; checks board support via CMOS, dispatches to main logic
- **sub_C58** (0xC58) -- Primary dispatch; opens SMM subsystem, initializes globals
- **sub_9E8** (0x9E8) -- Registers communicate handler, SW dispatch, and notification callbacks
- **sub_6CC** (0x6CC) -- Core handler: decodes read(1)/write(2)/fill(3) commands with width support
- **sub_115C** (0x115C) -- CMOS 0x4C platform detection

## Recovered Name Mapping (current)

- `ModuleEntryPoint` is kept as a compatibility alias to `_ModuleEntryPoint`.
- `qword_*` and `byte_*` symbols in the decomp notes are now mapped to recovered names in `LegacySmmSredir.c/h` (`gST`, `gBS`, `gSmst`, `gSmmMode`, ...).

## Protocols

- **SmmBase2** -- SMM entry; **AmiBufferValidationLib** -- buffer security check
- **SmmCommunicate** -- handler registration; **SmmIo** -- I/O space access
- **DebugLib** -- DEBUG/ASSERT support; **SmmSwDispatch** -- software SMI registration

## Platform

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