How DisplayPort Uses EDID for Display Identification
This article explains how the DisplayPort interface manages display identification using Extended Display Identification Data (EDID). You will learn the end-to-end mechanism of this process, including the physical connection trigger, how DisplayPort replaces legacy I2C lines using its bidirectional Auxiliary (AUX) channel, the parsing of display capabilities, and how Multi-Stream Transport (MST) routes individual identification data for daisy-chained setups.
The Role of EDID in Display Configuration
Extended Display Identification Data (EDID) is a standard metadata format defined by the Video Electronics Standards Association (VESA). It contains vital operational parameters of a monitor, such as native resolution, supported refresh rates, color space, audio capabilities, manufacturer identity, and physical panel size. When a display is connected to a host (such as a PC or graphics card), the host must read this data to output a compatible signal and prevent out-of-range display errors.
The Hot Plug Detect (HPD) Trigger
The identification process begins with the Hot Plug Detect (HPD) pin. When a DisplayPort cable is plugged into a monitor:
- The monitor pulls the HPD signal line to a high voltage state (typically 3.3V).
- The graphics source detects this logic high, signaling that an active sink device is attached.
- The source initializes the identification sequence before sending any active video over the main link lanes.
If a display changes state—such as waking from sleep or undergoing an internal configuration change—it triggers an "HPD pulse" (a brief low-to-high transition), instructing the source to re-read the configuration.
Reading EDID via the AUX Channel (I2C-over-AUX)
Legacy interfaces like VGA, DVI, and HDMI use a dedicated, low-speed, two-wire I2C bus called the Display Data Channel (DDC) to retrieve EDID. DisplayPort handles this differently to reduce pin count and improve bandwidth:
- The Auxiliary Channel (AUX): DisplayPort uses a dedicated, bidirectional, half-duplex differential pair known as the AUX channel.
- I2C-over-AUX Emulation: DisplayPort wraps
traditional I2C transactions inside native AUX transaction packets. The
source sends I2C read commands targeted at the standard EDID I2C bus
address (
0x50). - Block Transfers: The monitor responds across the AUX channel, transferring the standard 128-byte base EDID block. If the monitor supports modern features like HDR, audio, or proprietary timing modes, it provides additional 128-byte Extension Blocks (CEA-861/DisplayID) accessed via an EDID segment pointer.
Because the AUX channel operates at a higher speed (1 Mbps in standard DP, up to 720 Mbps in DP 2.1) compared to standard 100 kHz I2C buses, this handshake is significantly faster.
Parsing and Link Training
Once the source receives the raw bytes over the AUX channel, the operating system and graphics driver parse the descriptors:
- Resolution Matching: The GPU matches the display's Preferred Timing Mode (detailed in the first 128 bytes) with its own output capabilities.
- Link Training Execution: Before transmitting video, the source determines how many high-speed main lanes (1, 2, or 4) and what link rate (e.g., RBR, HBR, HBR2, HBR3, UHBR) are required to satisfy the bandwidth dictated by the parsed EDID.
- Transmission: The GPU initiates link training via the AUX channel, locks the link, and starts transmitting video data according to the validated EDID profile.
EDID Management in Multi-Stream Transport (MST)
DisplayPort 1.2 introduced Multi-Stream Transport (MST), allowing multiple monitors to be daisy-chained from a single physical port. In this configuration, each display retains its own distinct EDID:
- The source treats the first device (or hub) as an MST branch device.
- The branch device discovers each downstream monitor connected to its physical ports.
- Rather than combining the information, the source sends point-to-point Sideband Messages via the AUX channel to request the unique EDID of each specific downstream port.
- The operating system assigns individual virtual display outputs to each parsed EDID, enabling distinct resolutions and independent desktops across all chained screens.