USB Type-C Connector System Software Interface (UCSI) defines the commands and notifications to manage a platform that exposes one or more USB Type-C connectors. The combination of hardware and firmware and any vendor-provided OS software that provides this interface is referred to as the Platform Policy Manager or the PPM. UCSI PPM is typically implemented by an Embedded Controller (EC) which may either implement Power Delivery (PD) state machines or interface a PD controller. An OEM may interface with EC over the physical transport of their choice. Historically, this transport has been ACPI but we have recently seen an upsurge of PCI, UART, I2C, USB being adopted as means to connect an EC in the system.
Windows has for several releases had inbox support for UCSI over ACPI using UcmUcsi.sys. This was a client driver to USB Connector Manager Class Extension or UcmCx. However, starting with the RS5 release (or Windows 10 October 2018 update), Windows includes UCSI Class Extension (UCSI Cx, binary name: UcmUcsiCx.sys) which is a transport agnostic implementation of UCSI logic. This update also includes inbox ACPI client (binary name: UcmUcsiAcpiClient.sys) support for this class extension.
UCSI Cx implements the OPM (OS Policy Manager) state machines that decide which UCSI command to be sent to the PPM and when. The client to this class extension is expected to be thin and has the following responsibilities:
If you are bringing up support for a system that has UCSI EC connected over a non-ACPI transport, we would recommend you develop your transport specific USCI Cx client driver. This document is a good place to start.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.