# DxeFrb

| Field       | Value                           |
|-------------|---------------------------------|
| Index       | 262                             |
| Module      | DxeFrb                          |
| File        | DxeFrb.efi                      |
| PE format   | PE32+                           |
| Size (hex)  | 2364h                           |
| Size (bytes)| 9,060                           |
| Subsystem   | EFI Boot Service (000Bh)        |
| Sections    | 5 (.text, .rdata, .data, section_3, .xdata) |
| Phase       | DXE                             |
| Source      | Lenovo HR650X UEFI BIOS         |
| Build       | HR6N0XMLK, DEBUG_VS2015, X64    |

## Overview

This driver manages the hardware FRB2 (Fault Resilient Boot Phase 2) watchdog timer and the OS boot watchdog timer through the WCHG (Watchdog Chip) accessed via CMOS I/O ports 0x70/0x71. During boot phases where the system could hang (option ROM init, password prompt, setup), FRB2 is temporarily disabled and re-enabled after each critical phase completes. The OS Boot WDT supervises the OS boot process and is disabled before entering the UEFI Shell.

## Key Functions

- GetDebugProtocol / DebugPrint -- acquire WCHG debug protocol and print debug messages
- Frb2Init -- initialize the FRB2 watchdog timer
- Frb2Disable -- disable FRB2 during critical boot phases (option ROM, setup)
- Frb2ReEnable -- re-enable FRB2 after a critical phase completes
- OsWdtArm / OsWdtDisarm -- arm and disarm the OS boot watchdog (default 60s timeout)
- OsWdtStatus -- check current OS boot watchdog state
- WchgTimerState management (3 timers, 6 bytes each)

## Dependencies

- EFI_WATCHDOG_TIMER_ARCH_PROTOCOL
- CMOS I/O ports 0x70/0x71 (WCHG watchdog chip)
- UEFI Boot Services
- WCHG Debug Protocol
- Event notification (ReadyToBoot, VirtualAddressChange)

## Platform

Intel/AMD64 UEFI, Lenovo HR650X BIOS