# DxeIpmiUsb

| Index | Module | Size | Phase |
|-------|--------|------|-------|
| 276 | DxeIpmiUsb | 9 KB (8996 bytes) | DXE |

## Overview

DxeIpmiUsb is a UEFI DXE driver that provides IPMI (Intelligent Platform Management Interface) transport over USB for the Lenovo HR650X platform. The driver discovers USB HID class interfaces with vendor-specific class codes (0xFF/0x01/0x86 per IPMI v2.0) and implements SendIpmiCommand/ReceiveIpmiResponse protocol functions using USB control and interrupt transfers.

The driver allocates an IPMI_USB_DEVICE structure (32 KB), performs a self-test via IPMI Get Device ID, and installs the IPMI transport protocol on the USB handle. IPMI messages are exchanged using USB SET_REPORT/GET_REPORT requests over endpoint 0 and interrupt endpoints for streaming.

## Key Functions

- DxeIpmiUsbEntryPoint / _ModuleEntryPoint -- DXE driver entry point
- Supported() -- USB IO protocol handler, checks for IPMI USB class
- Start() -- Allocates device context, discovers endpoints, installs protocol
- SendIpmiCommand -- Sends IPMI command via USB control transfer
- ReceiveIpmiResponse -- Receives IPMI response via USB interrupt transfer
- GetHobList -- Locates HOB list from system table

## Dependencies

- UEFI USB IO Protocol
- PCI Express MMIO configuration
- IPMI v2.0 specification (USB HID transport)
- UEFI HOB (Hand-Off Block) list

## Platform

Lenovo HR650X (x86_64, PE32+)