# UsbOcUpdateDxeNeonCityEPECB

**Index**: 0052 | **Size**: 5728 bytes | **Arch**: x64 | **Phase**: DXE

## Overview

USB OverCurrent protection configuration driver for the NeonCity EPECB platform. Detects PCH stepping (LBG/CDF variants) and installs the appropriate USB OC pin mapping table (A-step or B-step) via the UBA protocol. Maps 16 USB ports to 8 overcurrent sense pins with 2 ports per pin.

## Key Functions

- **UsbOcUpdateInit** — Entry point; detects PCH stepping, selects the correct OC mapping table, and installs via UBA protocol
- **UsbOcGetSteppingMapping** — Returns the USB OC config table index based on detected PCH stepping revision
- **PchGetStepping** — Reads PCH Device ID from LPC bridge (Bus 0 Dev 31 Func 0) via MM PCI, classifies stepping as LBG (0-2) or CDF (48-53) revisions
- **PchGetLpcDid** — Reads PCH info structure from board-specific data at MMIO PCIEXBAR offset 0x00F80000
- **DebugPrintWorker** — Reads board type from CMOS register 0x4B (with MMIO fallback at 0xFDAF0490), maps to debug mask (0x40000004 or 0x80000006)

## Protocols / Dependencies

- UBA USB OC protocol
- MM PCI Base protocol (MM_PCI_BASE_PROTOCOL)
- UBA Debug protocol
- PCD protocol

## Platform

NeonCity EPECB (Purley platform variant, PCH: LBG/CDF)