The following steps are recommended to enable MST functionality:
- Bring up the main link by following training procedure.
- Send side band messages using the AUX channel to discover the link (how many downstream nodes are connected and their capabilities).
- Enable MST by writing 1 to bit 0 of the MST Config register.
- Discover MST downstream devices as recommended in section 1.2.1 in the VESA DisplayPort Standard (VESA website).
- Allocate timeslots based on configuration and the Sink Payload Bandwidth
Number (PBN). Typical sideband messages used before VC Payload allocation are Link Address
Request, Clear Payload Table, and Enumerate Path Resources.
- Program VC Payload Buffer 12’h0x800 onwards as per allocation requirement.
- Program the Sink core with the same allocation timeslots using AUX channel as described in section 2.6.4 in the DisplayPort Standard.
- Wait until Sink accepts allocation programming (check DPCD reads to monitor status).
- After Sink sets VC Payload Allocated (DPCD Address = 0x02C0), set VC Payload Allocated bit in MST Config register (12’h0x0D0). This enables the source controller to send an ACT trigger.
- Wait until ACT Handled bit is set in DPCD Address (0x02C0).
- Program Video attributes for required streams. Program user pixel width to 4 for all the streams.
- Program Rate Governing registers 0x1D0, 0x1D4, 0x1D8, and 0x1DC based on
the stream requirement.
- Program TRANSFER UNIT Size = # of timeslots allocated for that stream. (VC payload size source)
- Program FRAC_BYTES_PER_TU = TS_FRAC
- Program MIN_BYTES_PER_TU = TS_INT
- Program INIT_WAIT = 0Note: Note: Repeat Step 7 for each steam.
- Enable MST by writing 1 to bit 0 of MST Config register.