DP1.4 TXSS standalone driver
1. Introduction:
The DisplayPort 1.4 Transmitter Subsystem (DP TXSS) standalone driver is a bare‑metal (non‑OS) driver that provides a high‑level control interface for the AMD/Xilinx DisplayPort 1.4 TX Subsystem IP (PG299).
The driver abstracts common tasks such as:
DisplayPort link training
Link configuration (lane count, link rate, bits‑per‑color)
EDID read and capability negotiation
Video timing selection (including custom timings)
Optional HDCP integration (when enabled in the design)
Product guide reference:
DisplayPort 1.4 TX Subsystem Product Guide (PG299):
https://docs.amd.com/r/en-US/pg299-v-dp-txss1
2. Driver Features
Key capabilities of the DP1.4 TXSS standalone driver include:
Support for DisplayPort Source (TX) transmissions
Supports multi-stream transport (MST) and single stream transport (SST)
Dynamic lane support (1, 2, or 4 lanes)
Dynamic link rate support (1.62/2.7/5.4/8.1 Gb/s)
Dynamic support for 6, 8, 10, 12, or 16 bits per component (BPC)
Dynamic support for RGB/YCbCr444/YCbCr422/YCbCr420 color formats
Supports 16-bit Video PHY (GT) interface
Supports 2 to 8 channel audio with 44/48 kHz sample rates
Supports HDCP 1.3 and HDCP 2.2/2.3 encryption in SST
Supports native or AXI4-Stream video input interface
Pixel mode support in native video interface mode
Supports Linear PCM 2-channel audio format
Supports single audio stream in MST mode
Supports SDP packet for static HDR mode
Supports eDP v1.4b
Supports DSC and/or forward error correction (FEC) in association with AMD partner Rambus Inc.
Supports YUV420 colorimetry
Supports adaptive sync
Supports in-band 3D stereo
3. Implementation
The standalone DP TX Subsystem driver is implemented as part of the AMD/Xilinx embeddedsw stack.
Driver name:
xdptxssTypical repository layout:
XilinxProcessorIPLib/drivers/dp_txss/
Layering:
Core drivers
Low‑level DP core
PHY
HDCP (where applicable)
Subsystem driver (
xdptxss)Wraps and coordinates core drivers
Exposes high‑level API for:
Link training
Resolution and BPC change
EDID read
Custom timing table registration
HDCP enable/disable (if compiled in)
Applications:
Example applications provide menu‑driven tests on top of
xdptxssto validate:RX→TX pass‑through
HDCP pass‑through
TX‑only patterns and mode changes
This structure keeps the DP protocol logic in the driver while leaving board‑specific initialization (I/O expanders, clocking, resets) in the platform/application layer.
4. Known issues and limitations
None identified for the SST‑only flows documented here:
RX→TX pass‑through
HDCP‑enabled pass‑through
TX‑only demo
For broader protocol and feature gaps (e.g. MST, DSC/FEC, special DP2.1 features), refer to:
https://amd.atlassian.net/wiki/spaces/XPS/pages/1332678746
Board‑specific quirks (for example, missing FMC causing “Failed to set the I2C IO Expander”) can be documented here as needed.
5. Example applications
The DP TXSS standalone driver is validated and demonstrated using multiple example applications:
DP Pass‑Through Example (RX→TX)
Uses both DP RXSS and DP TXSS
Receives video over DP RX and forwards it to DP TX
Provides a simple “p - Pass-through design” menu entry to start the flow
DP HDCP Pass‑Through Example
Extends the pass‑through flow with HDCP enablement
Loads encrypted HDCP keys from DP FMC EEPROM (password protected)
Provides a menu for:
HDCP debug info
Link, MSA, and error status
EDID pass‑through and retraining
DP TX‑Only Example
Uses DP TXSS only (no RXSS)
Reads EDID from the monitor and trains the link
Provides an interactive TX‑only menu to:
Change resolution
Change bits‑per‑color
Change lane count and link rate
Change pattern
Display MSA values
Inspect DPCD and AUX registers
Enable/disable audio and VSC
Power up/down sink
6. Example application usage
6.1 Hardware and platform setup
Hardware
Board: Zynq UltraScale+ MPSoC evaluation board (e.g., ZCU102)
DP FMC or on‑board DP connectors (depending on design)
DP 1.4‑capable monitor
Optional DP source (for pass‑through use cases)
Vivado / IP Configuration
Instantiate:
DP RX Subsystem (for pass‑through examples)
DP TX Subsystem
Video PHY (appropriate GT configuration)
Configure DP TXSS for:
SST mode
Required maximum link rate and lane count
Export hardware (XSA).
Vitis (or Vitis NG) Platform
Create a platform project from the XSA
Ensure the BSP includes:
DP RXSS driver (for pass‑through)
DP TXSS driver (
xdptxss)Video PHY driver
HDCP/KeyMgmt drivers if using HDCP examples
6.2 Building the example applications
Create application project
Target the previously created platform
Choose the relevant DP example:
Pass‑through
HDCP pass‑through
TX‑only
Build
Build to generate the
.elfCheck the linker map for inclusion of DP and PHY drivers
6.3 Running and interacting with the examples
Program and run
Program the FPGA with the bitstream
Load and run the example ELF via Vitis or XSCT
Console
Open a UART terminal
Observe the banner and menu
Interact using the prompts
7. Test Logs
7.1 Pass‑through log
Zynq MP First Stage Boot Loader Release 2025.1 Apr 9 2025 - 13:13:58
PMU-FW is not running, certain applications may not be supported.
****************************************************************
DisplayPort Pass Through Demonstration (c) by Xilinx
Apr 9 2025 13:14:31
System Configuration:
DP SS : 2 byte
Use I2S and ACR : 0
Adaptive Sync Mode : 0
****************************************************************
-----------------------------------------------------
-- Menu --
-----------------------------------------------------
Select option
p - Pass-through design
UserInput: p
Please connect a DP Monitor to start the application !!!
Zynq MP First Stage Boot Loader Release 2025.1 Apr 8 2025 - 12:14:13
PMU-FW is not running, certain applications may not be supported.
------------------------------------------
DisplayPort RX Only Example (c) 2017 by Xilinx
-------------------------------------------
PlatformInit
VFMC: Setting IO Expanders...
Failed to set the I2C IO Expander.
Platform initialization done.
INFO:DPRXSS is SST enabled.
DPRXSS works only in SST mode.
RX Channel configured for 2byte mode
-----------------------------------------------------
-- Menu --
-----------------------------------------------------
Select option
2 = Reset AUX Logic
s = Report DP Link status
d = Report VPHY Config/Status
h = Assert HPD Pulse (5 ms)
e = Report VPHY Error & Status
c = Core Info
r = Reset DTG
m = Report Audio/Video MSA Attributes, Time Stamps, CRC Values
. = Show Menu7.2 HDCP pass‑through log
Zynq MP First Stage Boot Loader Release 2026.1 Dec 5 2025 - 06:10:04
PMU-FW is not running, certain applications may not be supported.
****************************************************************
DisplayPort Pass Through Demonstration (c) by Xilinx
Dec 5 2025 06:10:13
System Configuration:
DP SS : 2 byte
HDCP : 1
****************************************************************
PlatformInit
VFMC: Setting IO Expanders...
Platform initialization done.
RX Channel configured for 2byte mode
TX Channel configured for 2byte mode
Before the HDCP functionality can be enabled, the application will load the encrypted HDCP keys from the DP FMC EEPROM.
The HDCP keys are protected with a unique password.
Please enter your password.
Enter Password ->.......
Password is valid.
Loading HDCP keys from EEPROM... done
Enabling HDCP functionality
>>>> Initializing the Key Management Module ...
Initializing Key Management device 0 (A0030000)
Initializing Key Management device 1 (A0080000)
Loading the keys for Key management module 2 ##_##_##_
Loading the keys for Key management module 1 ##_##_##_
KEYMGMTDEV_Init done , error = 0
KEYMGMTLDR_Init done , error = 0
INFO:DPRXSS is SST enabled.
DPRXSS works only in SST mode.
INFO:DPTXSS is SST enabled.
DPTXSS works only in SST mode.
INFO> Registering Custom Timing Table with 12 entries
****************************************************
This system is purely a PassThrough system designed to display the video that is received on the RX.
The TX is non functional in absence of active RX link
Do not change the Monitor once the application is in run mode
****************************************************
-----------------------------------------------------
-- Menu --
-----------------------------------------------------
Select option
p - Pass-through design
UserInput: p
Reading EDID contents of the DP Monitor..
System is capable of displaying HDCP content...
-----------------------------------------------------
-- DisplayPort RX-TX Demo Menu --
-----------------------------------------------------
Select option
1 = Change Lane and Link capabilities
2 = Link, MSA and Error Status
3 = Toggle HPD to ask for Retraining
4 = Restart TX path
c = Check SUM on Rx and Tx
d = Quad selection ONLY FOR 8K --> 4K demo
m = Display MCDP6000 stauts
u - Read from MCDP6000
o - Write to MCDP6000
q - EDID pass-through setting
p = RX & TX HDCP debug info
z = Display this menu again
x = Return to Main menu
-----------------------------------------------------
> Rx Training done !!!
(BW: 0x14, Lanes: 0x2, Status: 0x9977;0x0).
*** Detected resolution: 1920 x 1080 @ 60Hz, BPC = 10, PPC = 2***
Monitor is 8.1 capable
Training TX with: Link rate 14, Lane 2, BPC 10
......^^..done !
$.This Audio Sampling Fs is not supported by this design
***************HPD Pulse detected !!
**HPD Pulse detected !!
********UserInput:7.3 TX‑only log
------------------------------------------
DisplayPort TX Subsystem Example Design (c) 2021 by Xilinx
-------------------------------------------
PlatformInit
Platform initialization done.
VFMC: Setting IO Expanders... done!
INFO:DPTXSS is SST enabled.
DPTXSS works only in SST mode.
Cable Connected
Reading EDID contents of the DP Monitor..
Capability is 1E
System capabilities set to: LineRate 1E, LaneCount 4
Training TX with: Link rate 14, Lane count 4
.......^^..done !
INFO> Registering Custom Timing Table with 15 entries
- - - - - - - - - - - - - - - - - - - - - - - - -
DisplayPort TX Only Demo Menu
- - Press 'z' to get this main menu at any point - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
1 - Change Resolution
2 - Change Bits Per Color
3 - Change Number of Lanes, Link Rate
4 - Change Pattern
5 - Display MSA Values for Tx
6 - Change Format
7 - Display Link Configuration Status and user selected resolution, BPC
8 - Display DPCD register Configurations
9 - Read Auxiliary registers
g - Enable/Disable VSC
a - Enable/Disable Audio
d - Power Up/Down sink
e - Read EDID from sink
m - Read CRC checker value
z - Display this Menu again
- - - - - - - - - - - - - - - - - - - - - - - - -
Training TX with: Link rate 1E, Lane count 4
.......^^..done !8. Sequence Diagram
The attached document provides a detailed description of the application and driver flow for DP.
9. Change Log
2025.1
Initial DP1.4 TXSS standalone driver documentation.
Captured:
Pass‑through (RX→TX) log
TX‑only demo log
2026.1
Added HDCP pass‑through log and flow description.
Added:
Implementation section
Known issues and limitations (None)
Example applications
Example application usage
Change log