# NvramDxe

| Field       | Value                           |
|-------------|---------------------------------|
| Index       | 257                             |
| Module      | NvramDxe                        |
| File        | NvramDxe.efi                    |
| PE format   | PE32+                           |
| Size (hex)  | 13A04h                          |
| Size (bytes)| 80,388                          |
| Subsystem   | EFI Boot Service (000Ch)        |
| Sections    | 6 (.text, .rdata, .data, section_3, .xdata, .reloc) |
| Phase       | DXE                             |
| Source      | AmiModulePkg/NVRAM/NvramDxe    |
| Build       | HR6N0XMLK, DEBUG_VS2015, X64    |

## Overview

This UEFI DXE driver implements the core NVRAM variable services for the HR650X BIOS. It handles UEFI Runtime Variable Services (GetVariable, SetVariable, GetNextVariableName, QueryVariableInfo), NVRAM store initialization from HOB or simulation mode, and SMM communication for authenticated variable writes. The driver also manages Secure Boot variable initialization, NVRAM mailbox protocol for inter-module communication, and NVRAM garbage collection and store reclamation.

## Key Functions

- NvDxeFindVariableInStore -- locates a variable in the NVRAM store by name and GUID
- Runtime variable services (GetVariable, SetVariable, GetNextVariableName, QueryVariableInfo)
- SMM communication for authenticated variable writes
- NVRAM store initialization from HOB or simulation mode
- Secure Boot variable initialization (SetupMode, SecureBoot)
- NVRAM garbage collection and store reclamation

## Dependencies

- UEFI Runtime Services
- UEFI Boot Services
- SMM Variable Protocol
- SMM Communication Buffer
- DebugLib / Debug Protocol
- Crypto / hash library for authenticated variables

## Platform

Intel/AMD64 UEFI, Lenovo HR650X BIOS