diff --git a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/files.html b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/files.html index 8c0f8e3f..727ff05a 100755 --- a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/files.html +++ b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/files.html @@ -24,6 +24,7 @@

File List

Here is a list of all files with brief descriptions: + diff --git a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/globals_0x78.html b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/globals_0x78.html index 17a98c54..b7d234b5 100755 --- a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/globals_0x78.html +++ b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/globals_0x78.html @@ -46,7 +46,7 @@ Here is a list of all file members with links to the files they belong to:

- x -

-

dptx v2_0

+

dptx v3_0

The Xilinx DisplayPort transmitter (DPTX) driver. This driver supports the Xilinx DisplayPort soft IP core in source (TX) mode. This driver follows the DisplayPort 1.2a specification.

The Xilinx DisplayPort soft IP supports the following features:

- - @@ -90,13 +88,13 @@ Contains a minimal set of functions for the u32  - + - + - + - + @@ -228,7 +226,7 @@ This typedef enumerates the list of training states used in the state machine du


Function Documentation

-
+
xdptx.c
xdptx.h
xdptx_edid.c
xdptx_hw.h
xdptx_intr.c
xdptx_mst.c
XDptx_GetRxCapabilities (XDptx *InstancePtr)
u32 XDptx_GetEdid (XDptx *InstancePtr, u8 *Edid)
u32 XDptx_CfgMainLinkMax (XDptx *InstancePtr)
u32 XDptx_EstablishLink (XDptx *InstancePtr)
XDptx_IsConnected (XDptx *InstancePtr)
u32 XDptx_AuxRead (XDptx *InstancePtr, u32 Address, u32 NumBytes, void *Data)
u32 XDptx_AuxRead (XDptx *InstancePtr, u32 DpcdAddress, u32 BytesToRead, void *ReadData)
u32 XDptx_AuxWrite (XDptx *InstancePtr, u32 Address, u32 NumBytes, void *Data)
u32 XDptx_AuxWrite (XDptx *InstancePtr, u32 DpcdAddress, u32 BytesToWrite, void *WriteData)
u32 XDptx_IicRead (XDptx *InstancePtr, u8 IicAddress, u8 RegStartAddress, u8 NumBytes, void *Data)
u32 XDptx_IicRead (XDptx *InstancePtr, u8 IicAddress, u16 Offset, u16 BytesToRead, void *ReadData)
u32 XDptx_IicWrite (XDptx *InstancePtr, u8 IicAddress, u8 RegStartAddress, u8 NumBytes, void *Data)
u32 XDptx_IicWrite (XDptx *InstancePtr, u8 IicAddress, u8 BytesToWrite, void *WriteData)
u32 XDptx_SetDownspread (XDptx *InstancePtr, u8 Enable)
@@ -242,19 +240,19 @@ This typedef enumerates the list of training states used in the state machine du - + - + - + @@ -266,13 +264,13 @@ This typedef enumerates the list of training states used in the state machine du

-This function issues a read request over the AUX channel.

+This function issues a read request over the AUX channel that will read from the RX device's DisplayPort Configuration Data (DPCD) address space. The read message will be divided into multiple transactions which read a maximum of 16 bytes each.

Parameters:
u32  Address, DpcdAddress,
u32  NumBytes, BytesToRead,
void *  Data  ReadData 
- - - + + +
InstancePtr is a pointer to the XDptx instance.
Address is the starting address to read from the RX device.
NumBytes is the number of bytes to read from the RX device.
Data is a pointer to the data buffer that will be filled with read data.
DpcdAddress is the starting address to read from the RX device.
BytesToRead is the number of bytes to read from the RX device.
ReadData is a pointer to the data buffer that will be filled with read data.
Returns:
Returns:
Note:
None.
- -

- -

-
- - - - - - - - - - - - - - - - - - -
u32 XDptx_GetEdid (XDptx InstancePtr,
u8 *  Edid 
)
-
-
- -

-This function retrieves the RX device's Extended Display Identification Data (EDID).

-

Parameters:
- - - -
InstancePtr is a pointer to the XDptx instance.
Edid is a pointer to the Edid buffer to save to.
-
-
Returns:
    -
  • XST_SUCCESS if the I2C transactions to read the EDID were successful.
  • XST_ERROR_COUNT_MAX if the EDID read request timed out.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
-
-
Note:
None.
-

@@ -773,7 +731,7 @@ This function retrieves the RX device's capabilities from the RX device's Displa

- +

@@ -792,20 +750,20 @@ This function retrieves the RX device's capabilities from the RX device's Displa - - + + - - + + - + @@ -817,14 +775,16 @@ This function retrieves the RX device's capabilities from the RX device's Displa

-This function performs an I2C read over the AUX channel.

+This function performs an I2C read over the AUX channel. The read message will be divided into multiple transactions if the requested data spans multiple segments. The segment pointer is automatically incremented and the offset is calibrated as needed. E.g. For an overall offset of:

    +
  • 128, an I2C read is done on segptr=0; offset=128.
  • 256, an I2C read is done on segptr=1; offset=0.
  • 384, an I2C read is done on segptr=1; offset=128.
  • 512, an I2C read is done on segptr=2; offset=0.
  • etc.
+

Parameters:
u8  RegStartAddress, u16  Offset,
u8  NumBytes, u16  BytesToRead,
void *  Data  ReadData 
- - - + + +
InstancePtr is a pointer to the XDptx instance.
IicAddress is the address on the I2C bus of the target device.
RegStartAddress is the subaddress of the targeted I2C device that the read will start from.
NumBytes is the number of bytes to read.
Data is a pointer to a buffer that will be filled with the I2C read data.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
Returns:
    @@ -834,7 +794,7 @@ This function performs an I2C read over the AUX channel.

- +

@@ -854,19 +814,13 @@ This function performs an I2C read over the AUX channel.

- - - - - - - + - + @@ -883,9 +837,8 @@ This function performs an I2C write over the AUX channel.

u8  RegStartAddress,
u8  NumBytes, BytesToWrite,
void *  Data  WriteData 
- - - + +
InstancePtr is a pointer to the XDptx instance.
IicAddress is the address on the I2C bus of the target device.
RegStartAddress is the sub-address of the targeted I2C device that the write will start at.
NumBytes is the number of bytes to write.
Data is a pointer to a buffer which will be used as the data source for the write.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
Returns:

- +

@@ -623,30 +647,12 @@ This function will allocate bandwidth for all enabled stream.

- - - - - - - - - - - - - - - - - - @@ -667,10 +673,7 @@ This function will allocate a bandwidth for a virtual channel in the payload ID
Parameters:
XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  VcId,
u16  Pbn,
- - -
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
VcId is the unique virtual channel ID to allocate into the payload ID tables.
Pbn is the payload bandwidth number that determines how much bandwidth will be allocated for the virtual channel.
Ts is the number of timeslots to allocate in the payload ID tables.
@@ -686,7 +689,7 @@ This function will allocate a bandwidth for a virtual channel in the payload ID

- +

@@ -700,19 +703,19 @@ This function will allocate a bandwidth for a virtual channel in the payload ID - + - + - + @@ -724,13 +727,13 @@ This function will allocate a bandwidth for a virtual channel in the payload ID

-This function issues a read request over the AUX channel.

+This function issues a read request over the AUX channel that will read from the RX device's DisplayPort Configuration Data (DPCD) address space. The read message will be divided into multiple transactions which read a maximum of 16 bytes each.

Parameters:
u32  Address, DpcdAddress,
u32  NumBytes, BytesToRead,
void *  Data  ReadData 
- - - + + +
InstancePtr is a pointer to the XDptx instance.
Address is the starting address to read from the RX device.
NumBytes is the number of bytes to read from the RX device.
Data is a pointer to the data buffer that will be filled with read data.
DpcdAddress is the starting address to read from the RX device.
BytesToRead is the number of bytes to read from the RX device.
ReadData is a pointer to the data buffer that will be filled with read data.
Returns:
    @@ -740,7 +743,7 @@ This function issues a read request over the AUX channel.

- +

@@ -754,19 +757,19 @@ This function issues a read request over the AUX channel.

- + - + - + @@ -778,13 +781,13 @@ This function issues a read request over the AUX channel.

-This function issues a write request over the AUX channel.

+This function issues a write request over the AUX channel that will write to the RX device's DisplayPort Configuration Data (DPCD) address space. The write message will be divided into multiple transactions which write a maximum of 16 bytes each.

Parameters:
u32  Address, DpcdAddress,
u32  NumBytes, BytesToWrite,
void *  Data  WriteData 
- - - + + +
InstancePtr is a pointer to the XDptx instance.
Address is the starting address to write to the RX device.
NumBytes is the number of bytes to write to the RX device.
Data is a pointer to the data buffer that contains the data to be written to the RX device.
DpcdAddress is the starting address to write to the RX device.
BytesToWrite is the number of bytes to write to the RX device.
WriteData is a pointer to the data buffer that contains the data to be written to the RX device.
Returns:
    @@ -1583,6 +1586,53 @@ This function will explore the DisplayPort topology of downstream devices starti
Note:
The contents of the InstancePtr->Topology structure will be modified.
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetDispIdDataBlock (u8 *  DisplayIdRaw,
u8  SectionTag,
u8 **  DataBlockPtr 
)
+
+
+ +

+Given a section tag, search for and retrieve the appropriate section data block that is part of the specified DisplayID structure.

+

Parameters:
+ + + + +
DisplayIdRaw is a pointer to the DisplayID data.
SectionTag is the tag to search for that represents the desired section data block.
DataBlockPtr will be set by this function to point to the appropriate section data block that is part of the DisplayIdRaw.
+
+
Returns:
    +
  • XST_SUCCESS if the section data block with the specified tag was found.
  • XST_FAILURE otherwise.
+
+
Note:
The DataBlockPtr argument is modified to point to the entry in DisplayIdRaw that represents the beginning of the desired section data block.
+

@@ -1611,7 +1661,7 @@ This function will explore the DisplayPort topology of downstream devices starti

-This function retrieves the RX device's Extended Display Identification Data (EDID).

+This function retrieves an immediately connected RX device's Extended Display Identification Data (EDID) structure.

Parameters:
@@ -1623,6 +1673,53 @@ This function retrieves the RX device's Extended Display Identification Data (ED
Note:
None.
+ +

+ +

+
+
InstancePtr is a pointer to the XDptx instance.
+ + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetEdidBlock (XDptx InstancePtr,
u8 *  Data,
u8  BlockNum 
)
+
+
+ +

+Retrieve an immediately connected RX device's Extended Display Identification Data (EDID) block given the block number. A block number of 0 represents the base EDID and subsequent block numbers represent EDID extension blocks.

+

Parameters:
+ + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the block data to.
BlockNum is the EDID block number to retrieve.
+
+
Returns:
    +
  • XST_SUCCESS if the block read has successfully completed with no errors.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read the requested block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+

@@ -1715,7 +1812,7 @@ This function will obtain the global unique identifier (GUID) for the target Dis

-This function retrieves a remote RX device's Extended Display Identification Data (EDID).

+This function retrieves a remote RX device's Extended Display Identification Data (EDID) structure.

Parameters:
@@ -1729,6 +1826,182 @@ This function retrieves a remote RX device's Extended Display Identification Dat
Note:
None.
+ +

+ +

+
+
InstancePtr is a pointer to the XDptx instance.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteEdidBlock (XDptx InstancePtr,
u8 *  Data,
u8  BlockNum,
u8  LinkCountTotal,
u8 *  RelativeAddress 
)
+
+
+ +

+Retrieve a downstream DisplayPort device's Extended Display Identification Data (EDID) block given the block number. A block number of 0 represents the base EDID and subsequent block numbers represent EDID extension blocks.

+

Parameters:
+ + + + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the block data to.
BlockNum is the EDID block number to retrieve.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
+
+
Returns:
    +
  • XST_SUCCESS if the block read has successfully completed with no errors.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read the requested block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteEdidDispIdExt (XDptx InstancePtr,
u8 *  Data,
u8  LinkCountTotal,
u8 *  RelativeAddress 
)
+
+
+ +

+Search for and retrieve a downstream DisplayPort device's Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the DisplayID to.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
+
+
Returns:
    +
  • XST_SUCCESS a DisplayID extension block was found.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read an extension block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE if no DisplayID extension block was found or some error occurred in the search.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteTiledDisplayDb (XDptx InstancePtr,
u8 *  EdidExt,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8 **  DataBlockPtr 
)
+
+
+ +

+Search for and retrieve a downstream DisplayPort device's Tiled Display Topology (TDT) section data block that is part of the downstream device's DisplayID structure. The DisplayID structure is part of the Extended Display Identification Data (EDID) in the form of an extension block.

+

Parameters:
+ + + + + + +
InstancePtr is a pointer to the XDptx instance.
EdidExt is a pointer to the data area that will be filled by the retrieved DisplayID extension block.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
DataBlockPtr will be set by this function to point to the TDT data block that is part of the EdidExt extension block.
+
+
Returns:
    +
  • XST_SUCCESS a DisplayID extension block was found.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read an extension block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE if no DisplayID extension block was found or some error occurred in the search.
+
+
Note:
The EdidExt will be filled with the DisplayID EDID extension block and the DataBlockPtr argument is modified to point to the EdidExt entry representing the TDT section data block.
+

@@ -1790,7 +2063,7 @@ When an interrupt happens, it first detects what kind of interrupt happened, the

- +

@@ -1809,20 +2082,20 @@ When an interrupt happens, it first detects what kind of interrupt happened, the - - + + - - + + - + @@ -1834,14 +2107,16 @@ When an interrupt happens, it first detects what kind of interrupt happened, the

-This function performs an I2C read over the AUX channel.

+This function performs an I2C read over the AUX channel. The read message will be divided into multiple transactions if the requested data spans multiple segments. The segment pointer is automatically incremented and the offset is calibrated as needed. E.g. For an overall offset of:

    +
  • 128, an I2C read is done on segptr=0; offset=128.
  • 256, an I2C read is done on segptr=1; offset=0.
  • 384, an I2C read is done on segptr=1; offset=128.
  • 512, an I2C read is done on segptr=2; offset=0.
  • etc.
+

Parameters:
u8  RegStartAddress, u16  Offset,
u8  NumBytes, u16  BytesToRead,
void *  Data  ReadData 
- - - + + +
InstancePtr is a pointer to the XDptx instance.
IicAddress is the address on the I2C bus of the target device.
RegStartAddress is the subaddress of the targeted I2C device that the read will start from.
NumBytes is the number of bytes to read.
Data is a pointer to a buffer that will be filled with the I2C read data.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
Returns:
    @@ -1851,7 +2126,7 @@ This function performs an I2C read over the AUX channel.

- +

@@ -1871,19 +2146,13 @@ This function performs an I2C read over the AUX channel.

- - - - - - - + - + @@ -1900,9 +2169,8 @@ This function performs an I2C write over the AUX channel.

u8  RegStartAddress,
u8  NumBytes, BytesToWrite,
void *  Data  WriteData 
- - - + +
InstancePtr is a pointer to the XDptx instance.
IicAddress is the address on the I2C bus of the target device.
RegStartAddress is the sub-address of the targeted I2C device that the write will start at.
NumBytes is the number of bytes to write.
Data is a pointer to a buffer which will be used as the data source for the write.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
Returns:
    @@ -2274,6 +2542,287 @@ This function will check whether

Note:
None.
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteDpcdRead (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u32  DpcdAddress,
u32  BytesToRead,
u8 *  ReadData 
)
+
+
+ +

+This function performs a remote DisplayPort Configuration Data (DPCD) read by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is issued over the AUX channel. The read message will be divided into multiple transactions which read a maximum of 16 bytes each.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
DpcdAddress is the starting address to read from the RX device.
BytesToRead is the number of bytes to read.
ReadData is a pointer to the data buffer that will be filled with read data.
+
+
Returns:
    +
  • XST_SUCCESS if the DPCD read has successfully completed (has been acknowledged).
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToRead does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteDpcdWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u32  DpcdAddress,
u32  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+This function performs a remote DisplayPort Configuration Data (DPCD) write by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is issued over the AUX channel. The write message will be divided into multiple transactions which write a maximum of 16 bytes each.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
DpcdAddress is the starting address to write to the RX device.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
+
+
Returns:
    +
  • XST_SUCCESS if the DPCD write has successfully completed (has been acknowledged).
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToWrite does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteIicRead (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicAddress,
u16  Offset,
u16  BytesToRead,
u8 *  ReadData 
)
+
+
+ +

+This function performs a remote I2C read by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is sent over the AUX channel. The read message will be divided into multiple transactions which read a maximum of 16 bytes each. The segment pointer is automatically incremented and the offset is calibrated as needed. E.g. For an overall offset of:

+

+

Parameters:
+ + + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicAddress is the address on the I2C bus of the target device.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C read has successfully completed with no errors.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToRead does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteIicWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicAddress,
u8  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+This function performs a remote I2C write by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is sent over the AUX channel.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicAddress is the address on the I2C bus of the target device.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C write has successfully completed with no errors.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToWrite does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+

@@ -2718,7 +3267,7 @@ This function will send a REMOTE_DPCD_WRITE sideband message which will write so

- +

@@ -2746,6 +3295,12 @@ This function will send a REMOTE_DPCD_WRITE sideband message which will write so + + + + + + @@ -2775,6 +3330,7 @@ This function will send a REMOTE_I2C_READ sideband message which will read from +
u8  IicDeviceId,
u8  Offset,
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicDeviceId is the address on the I2C bus of the target device.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read from the I2C address.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
@@ -2789,6 +3345,59 @@ This function will send a REMOTE_I2C_READ sideband message which will read from

Note:
None.
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_SendSbMsgRemoteIicWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicDeviceId,
u8  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+

@@ -3338,6 +3947,79 @@ This function clears the main stream attributes registers of the DisplayPort TX

Returns:
None.
Note:
None.
+ +

+ +

+
+ + + + + + + + + +
void XDptx_TopologySortSinksByTiling (XDptx InstancePtr  ) 
+
+
+ +

+Order the sink list with all sinks of the same tiled display being sorted by 'tile order'. Refer to the XDptx_GetDispIdTdtTileOrder macro on how to determine the 'tile order'. Sinks of a tiled display will have an index in the sink list that is lower than all indices of other sinks within that same tiled display that have a greater 'tile order'. When operations are done on the sink list, this ordering will ensure that sinks within the same tiled display will be acted upon in a consistent manner - with an incrementing sink list index, sinks with a lower 'tile order' will be acted upon first relative to the other sinks in the same tiled display. Multiple tiled displays may exist in the sink list.

+

Parameters:
+ + +
InstancePtr is a pointer to the XDptx instance.
+
+
Returns:
None.
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void XDptx_TopologySwapSinks (XDptx InstancePtr,
u8  Index0,
u8  Index1 
)
+
+
+ +

+Swap the ordering of the sinks in the topology's sink list. All sink information is preserved in the node table - the swapping takes place only on the pointers to the sinks in the node table. The reason this swapping is done is so that functions that use the sink list will act on the sinks in a different order.

+

Parameters:
+ + + + +
InstancePtr is a pointer to the XDptx instance.
Index0 is the sink list's index of one of the sink pointers to be swapped.
Index1 is the sink list's index of the other sink pointer to be swapped.
+
+
Returns:
None.
+
Note:
None.
+

diff --git a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__edid_8c.html b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__edid_8c.html new file mode 100644 index 00000000..9933ffbd --- /dev/null +++ b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__edid_8c.html @@ -0,0 +1,419 @@ + + + + + xdptx_edid.c File Reference + + + +

+Software Drivers +
+ +
+
+
+
+

xdptx_edid.c File Reference


Detailed Description

+This file contains functions related to accessing the Extended Display Identification Data (EDID) of a specified sink using the XDptx driver.

+

Note:
None.
+
+ MODIFICATION HISTORY:

+

 Ver   Who  Date     Changes
+ ----- ---- -------- -----------------------------------------------
+ 3.0   als  11/04/14 Initial release.
+ 
+

+#include "xdptx.h"
+#include "xstatus.h"
+ + + + + + + + + + + + + + + + + +

Functions

u32 XDptx_GetEdid (XDptx *InstancePtr, u8 *Edid)
u32 XDptx_GetRemoteEdid (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 *Edid)
u32 XDptx_GetEdidBlock (XDptx *InstancePtr, u8 *Data, u8 BlockNum)
u32 XDptx_GetRemoteEdidBlock (XDptx *InstancePtr, u8 *Data, u8 BlockNum, u8 LinkCountTotal, u8 *RelativeAddress)
u32 XDptx_GetRemoteEdidDispIdExt (XDptx *InstancePtr, u8 *Data, u8 LinkCountTotal, u8 *RelativeAddress)
u32 XDptx_GetDispIdDataBlock (u8 *DisplayIdRaw, u8 SectionTag, u8 **DataBlockPtr)
u32 XDptx_GetRemoteTiledDisplayDb (XDptx *InstancePtr, u8 *EdidExt, u8 LinkCountTotal, u8 *RelativeAddress, u8 **DataBlockPtr)
+


Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetDispIdDataBlock (u8 *  DisplayIdRaw,
u8  SectionTag,
u8 **  DataBlockPtr 
)
+
+
+ +

+Given a section tag, search for and retrieve the appropriate section data block that is part of the specified DisplayID structure.

+

Parameters:
+ + + + +
DisplayIdRaw is a pointer to the DisplayID data.
SectionTag is the tag to search for that represents the desired section data block.
DataBlockPtr will be set by this function to point to the appropriate section data block that is part of the DisplayIdRaw.
+
+
Returns:
    +
  • XST_SUCCESS if the section data block with the specified tag was found.
  • XST_FAILURE otherwise.
+
+
Note:
The DataBlockPtr argument is modified to point to the entry in DisplayIdRaw that represents the beginning of the desired section data block.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
u32 XDptx_GetEdid (XDptx InstancePtr,
u8 *  Edid 
)
+
+
+ +

+This function retrieves an immediately connected RX device's Extended Display Identification Data (EDID) structure.

+

Parameters:
+ + + +
InstancePtr is a pointer to the XDptx instance.
Edid is a pointer to the Edid buffer to save to.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C transactions to read the EDID were successful.
  • XST_ERROR_COUNT_MAX if the EDID read request timed out.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetEdidBlock (XDptx InstancePtr,
u8 *  Data,
u8  BlockNum 
)
+
+
+ +

+Retrieve an immediately connected RX device's Extended Display Identification Data (EDID) block given the block number. A block number of 0 represents the base EDID and subsequent block numbers represent EDID extension blocks.

+

Parameters:
+ + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the block data to.
BlockNum is the EDID block number to retrieve.
+
+
Returns:
    +
  • XST_SUCCESS if the block read has successfully completed with no errors.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read the requested block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteEdid (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8 *  Edid 
)
+
+
+ +

+This function retrieves a remote RX device's Extended Display Identification Data (EDID) structure.

+

Parameters:
+ + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
Edid is a pointer to the Edid buffer to save to.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C transactions to read the EDID were successful.
  • XST_ERROR_COUNT_MAX if the EDID read request timed out.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteEdidBlock (XDptx InstancePtr,
u8 *  Data,
u8  BlockNum,
u8  LinkCountTotal,
u8 *  RelativeAddress 
)
+
+
+ +

+Retrieve a downstream DisplayPort device's Extended Display Identification Data (EDID) block given the block number. A block number of 0 represents the base EDID and subsequent block numbers represent EDID extension blocks.

+

Parameters:
+ + + + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the block data to.
BlockNum is the EDID block number to retrieve.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
+
+
Returns:
    +
  • XST_SUCCESS if the block read has successfully completed with no errors.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read the requested block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteEdidDispIdExt (XDptx InstancePtr,
u8 *  Data,
u8  LinkCountTotal,
u8 *  RelativeAddress 
)
+
+
+ +

+Search for and retrieve a downstream DisplayPort device's Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + + + + +
InstancePtr is a pointer to the XDptx instance.
Data is a pointer to the data buffer to save the DisplayID to.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
+
+
Returns:
    +
  • XST_SUCCESS a DisplayID extension block was found.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read an extension block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE if no DisplayID extension block was found or some error occurred in the search.
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_GetRemoteTiledDisplayDb (XDptx InstancePtr,
u8 *  EdidExt,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8 **  DataBlockPtr 
)
+
+
+ +

+Search for and retrieve a downstream DisplayPort device's Tiled Display Topology (TDT) section data block that is part of the downstream device's DisplayID structure. The DisplayID structure is part of the Extended Display Identification Data (EDID) in the form of an extension block.

+

Parameters:
+ + + + + + +
InstancePtr is a pointer to the XDptx instance.
EdidExt is a pointer to the data area that will be filled by the retrieved DisplayID extension block.
LinkCountTotal is the total DisplayPort links connecting the DisplayPort TX to the targeted downstream device.
RelativeAddress is the relative address from the DisplayPort source to the targeted DisplayPort device.
DataBlockPtr will be set by this function to point to the TDT data block that is part of the EdidExt extension block.
+
+
Returns:
    +
  • XST_SUCCESS a DisplayID extension block was found.
  • XST_ERROR_COUNT_MAX if a time out occurred while attempting to read an extension block.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE if no DisplayID extension block was found or some error occurred in the search.
+
+
Note:
The EdidExt will be filled with the DisplayID EDID extension block and the DataBlockPtr argument is modified to point to the EdidExt entry representing the TDT section data block.
+ +
+

+Copyright @ 1995-2014 Xilinx, Inc. All rights reserved. diff --git a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__hw_8h.html b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__hw_8h.html index 0fbacbee..875adb21 100755 --- a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__hw_8h.html +++ b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__hw_8h.html @@ -1066,14 +1066,18 @@ This header file contains the identifiers and low-level driver functions (or mac #define XDPTX_DPCD_ADJ_REQ_PC2_LANE_3_SHIFT   6

Extended Display Identification Data: Field addresses and sizes.

+#define XDPTX_SEGPTR_ADDR   0x30 + #define XDPTX_EDID_ADDR   0x50 -#define XDPTX_EDID_SIZE   128 +#define XDPTX_EDID_BLOCK_SIZE   128 #define XDPTX_EDID_DTD_DD(Num)   (0x36 + (18 * Num)) #define XDPTX_EDID_PTM   XDPTX_EDID_DTD_DD(0) +#define XDPTX_EDID_EXT_BLOCK_COUNT   0x7E +

Extended Display Identification Data: Register offsets for the

Detailed Timing Descriptor (DTD).

#define XDPTX_EDID_DTD_PIXEL_CLK_KHZ_LSB   0x00 @@ -1154,6 +1158,94 @@ This header file contains the identifiers and low-level driver functions (or mac #define XDPTX_EDID_DTD_SIGNAL_VPOLARITY_SHIFT   2 +

Extended Display Identification Data: Register offsets for the

+DisplayID extension block.

+#define XDPTX_EDID_EXT_BLOCK_TAG   0x00 + +#define XDPTX_DISPID_VER_REV   0x00 + +#define XDPTX_DISPID_SIZE   0x01 + +#define XDPTX_DISPID_TYPE   0x02 + +#define XDPTX_DISPID_EXT_COUNT   0x03 + +#define XDPTX_DISPID_PAYLOAD_START   0x04 + +#define XDPTX_DISPID_DB_SEC_TAG   0x00 + +#define XDPTX_DISPID_DB_SEC_REV   0x01 + +#define XDPTX_DISPID_DB_SEC_SIZE   0x02 + +

Extended Display Identification Data: Masks, shifts, and register

+values for the DisplayID extension block.

+#define XDPTX_EDID_EXT_BLOCK_TAG_DISPID   0x70 + +#define XDPTX_DISPID_TDT_TAG   0x12 + +

Extended Display Identification Data: Register offsets for the

+Tiled Display Topology (TDT) section data block.

+#define XDPTX_DISPID_TDT_TOP0   0x04 + +#define XDPTX_DISPID_TDT_TOP1   0x05 + +#define XDPTX_DISPID_TDT_TOP2   0x06 + +#define XDPTX_DISPID_TDT_HSIZE0   0x07 + +#define XDPTX_DISPID_TDT_HSIZE1   0x08 + +#define XDPTX_DISPID_TDT_VSIZE0   0x09 + +#define XDPTX_DISPID_TDT_VSIZE1   0x0A + +#define XDPTX_DISPID_TDT_VENID0   0x10 + +#define XDPTX_DISPID_TDT_VENID1   0x11 + +#define XDPTX_DISPID_TDT_VENID2   0x12 + +#define XDPTX_DISPID_TDT_PCODE0   0x13 + +#define XDPTX_DISPID_TDT_PCODE1   0x14 + +#define XDPTX_DISPID_TDT_SN0   0x15 + +#define XDPTX_DISPID_TDT_SN1   0x16 + +#define XDPTX_DISPID_TDT_SN2   0x17 + +#define XDPTX_DISPID_TDT_SN3   0x18 + +

Extended Display Identification Data: Masks, shifts, and register

+values for the Tiled Display Topology (TDT) section data block.

+#define XDPTX_DISPID_TDT_TOP0_HTOT_L_SHIFT   4 + +#define XDPTX_DISPID_TDT_TOP0_HTOT_L_MASK   (0xF << 4) + +#define XDPTX_DISPID_TDT_TOP0_VTOT_L_MASK   0xF + +#define XDPTX_DISPID_TDT_TOP1_HLOC_L_SHIFT   4 + +#define XDPTX_DISPID_TDT_TOP1_HLOC_L_MASK   (0xF << 4) + +#define XDPTX_DISPID_TDT_TOP1_VLOC_L_MASK   0xF + +#define XDPTX_DISPID_TDT_TOP2_HTOT_H_SHIFT   6 + +#define XDPTX_DISPID_TDT_TOP2_HTOT_H_MASK   (0x3 << 6) + +#define XDPTX_DISPID_TDT_TOP2_VTOT_H_SHIFT   4 + +#define XDPTX_DISPID_TDT_TOP2_VTOT_H_MASK   (0x3 << 4) + +#define XDPTX_DISPID_TDT_TOP2_HLOC_H_SHIFT   2 + +#define XDPTX_DISPID_TDT_TOP2_HLOC_H_MASK   (0x3 << 2) + +#define XDPTX_DISPID_TDT_TOP2_VLOC_H_MASK   0x3 +

Stream identification.

#define XDPTX_STREAM_ID0   0 @@ -1178,6 +1270,8 @@ This header file contains the identifiers and low-level driver functions (or mac #define XDPTX_SBMSG_REMOTE_I2C_READ   0x22 +#define XDPTX_SBMSG_REMOTE_I2C_WRITE   0x23 +

Register access macro definitions.

#define XDptx_In32   Xil_In32 @@ -1190,6 +1284,20 @@ This header file contains the identifiers and low-level driver functions (or mac #define XDptx_WriteReg(BaseAddress, RegOffset, Data)   XDptx_Out32((BaseAddress) + (RegOffset), (Data)) +#define XDptx_IsEdidExtBlockDispId(Ext)   (Ext[XDPTX_EDID_EXT_BLOCK_TAG] == XDPTX_EDID_EXT_BLOCK_TAG_DISPID) + +#define XDptx_GetDispIdTdtHTotal(Tdt) + +#define XDptx_GetDispIdTdtVTotal(Tdt) + +#define XDptx_GetDispIdTdtHLoc(Tdt) + +#define XDptx_GetDispIdTdtVLoc(Tdt) + +#define XDptx_GetDispIdTdtNumTiles(Tdt)   (XDptx_GetDispIdTdtHTotal(Tdt) * XDptx_GetDispIdTdtVTotal(Tdt)) + +#define XDptx_GetDispIdTdtTileOrder(Tdt) +

Define Documentation

@@ -1594,7 +1702,7 @@ Number of reply transactions receieved over AUX.

-Reply data received during the AUX reply. +Reply data received during the AUX reply.

@@ -1609,7 +1717,7 @@ Reply data received during the AUX reply.

-Write data for the current AUX command. +Write data for the current AUX command.

@@ -1624,7 +1732,7 @@ Write data for the current AUX command.

-DisplayPort revision. +DisplayPort revision.

@@ -1639,7 +1747,7 @@ DisplayPort revision.

-DisplayPort protocol major version. +DisplayPort protocol major version.

@@ -1654,7 +1762,7 @@ DisplayPort protocol major version.

-Shift bits for DisplayPort protocol major version. +Shift bits for DisplayPort protocol major version.

@@ -1669,7 +1777,7 @@ Shift bits for DisplayPort protocol major version.

-DisplayPort protocol minor version. +DisplayPort protocol minor version.

@@ -1684,7 +1792,7 @@ DisplayPort protocol minor version.

-Shift bits for DisplayPort protocol major version. +Shift bits for DisplayPort protocol major version.

@@ -1699,7 +1807,7 @@ Shift bits for DisplayPort protocol major version.

-DisplayPort protocol revision. +DisplayPort protocol revision.

@@ -1714,7 +1822,7 @@ DisplayPort protocol revision.

-Shift bits for DisplayPort protocol revision. +Shift bits for DisplayPort protocol revision.

@@ -1729,7 +1837,7 @@ Shift bits for DisplayPort protocol revision.

-Core type. +Core type.

@@ -1744,7 +1852,7 @@ Core type.

-Core is a receiver. +Core is a receiver.

@@ -1759,7 +1867,577 @@ Core is a receiver.

-Core is a transmitter. +Core is a transmitter. +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_DB_SEC_REV   0x01
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_DB_SEC_SIZE   0x02
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_DB_SEC_TAG   0x00
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_EXT_COUNT   0x03
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_PAYLOAD_START   0x04
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_SIZE   0x01
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_HSIZE0   0x07
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_HSIZE1   0x08
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_PCODE0   0x13
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_PCODE1   0x14
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_SN0   0x15
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_SN1   0x16
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_SN2   0x17
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_SN3   0x18
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TAG   0x12
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP0   0x04
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP0_HTOT_L_MASK   (0xF << 4)
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP0_HTOT_L_SHIFT   4
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP0_VTOT_L_MASK   0xF
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP1   0x05
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP1_HLOC_L_MASK   (0xF << 4)
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP1_HLOC_L_SHIFT   4
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP1_VLOC_L_MASK   0xF
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2   0x06
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_HLOC_H_MASK   (0x3 << 2)
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_HLOC_H_SHIFT   2
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_HTOT_H_MASK   (0x3 << 6)
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_HTOT_H_SHIFT   6
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_VLOC_H_MASK   0x3
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_VTOT_H_MASK   (0x3 << 4)
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_TOP2_VTOT_H_SHIFT   4
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_VENID0   0x10
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_VENID1   0x11
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_VENID2   0x12
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_VSIZE0   0x09
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TDT_VSIZE1   0x0A
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_TYPE   0x02
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_DISPID_VER_REV   0x00
+
+
+ +

+

@@ -5755,6 +6433,21 @@ Enable a 0.5% spreading of the clock.

+ +

+ +

+
+ + + + +
#define XDPTX_EDID_BLOCK_SIZE   128
+
+
+ +

+

@@ -6347,12 +7040,12 @@ Enable a 0.5% spreading of the clock.

- +

- +
#define XDPTX_EDID_PTM   XDPTX_EDID_DTD_DD(0) #define XDPTX_EDID_EXT_BLOCK_COUNT   0x7E
@@ -6362,12 +7055,42 @@ Enable a 0.5% spreading of the clock.

- +

- + + +
#define XDPTX_EDID_SIZE   128 #define XDPTX_EDID_EXT_BLOCK_TAG   0x00
+
+
+ +

+ +

+

+ +

+
+ + + + +
#define XDPTX_EDID_EXT_BLOCK_TAG_DISPID   0x70
+
+
+ +

+ +

+

+ +

+
+ + +
#define XDPTX_EDID_PTM   XDPTX_EDID_DTD_DD(0)
@@ -6464,7 +7187,190 @@ Force a scrambler reset.

-The fractional component when calculated the XDPTX_MIN_BYTES_PER_TU register value. +The fractional component when calculated the XDPTX_MIN_BYTES_PER_TU register value. +

+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtHLoc (Tdt   ) 
+
+
+ +

+Value:

Given a Tiled Display Topology (TDT) data block, retrieve the horizontal tile location in the tiled display. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The horizontal tile location in the tiled display represented by the specified TDT.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtHLoc(u8 *Tdt)
+ +
+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtHTotal (Tdt   ) 
+
+
+ +

+Value:

Given a Tiled Display Topology (TDT) data block, retrieve the total number of horizontal tiles in the tiled display. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The total number of horizontal tiles in the tiled display.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtHTotal(u8 *Tdt)
+ +
+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtNumTiles (Tdt   )    (XDptx_GetDispIdTdtHTotal(Tdt) * XDptx_GetDispIdTdtVTotal(Tdt))
+
+
+ +

+Given a Tiled Display Topology (TDT) data block, retrieve the total number of tiles in the tiled display. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The total number of tiles in the tiled display.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtNumTiles(u8 *Tdt)
+ +
+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtTileOrder (Tdt   ) 
+
+
+ +

+Value:

Given a Tiled Display Topology (TDT) data block, calculate the tiling order of the associated tile. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID. The tiling order starts at 0 for x,y coordinate 0,0 and increments as the horizontal location increases. Once the last horizontal tile has been reached, the next tile in the order is 0,y+1.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The total number of horizontal tiles in the tiled display.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtTileOrder(u8 *Tdt)
+ +
+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtVLoc (Tdt   ) 
+
+
+ +

+Value:

Given a Tiled Display Topology (TDT) data block, retrieve the vertical tile location in the tiled display. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The vertical tile location in the tiled display represented by the specified TDT.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtVLoc(u8 *Tdt)
+ +
+

+ +

+
+ + + + + + + + + +
#define XDptx_GetDispIdTdtVTotal (Tdt   ) 
+
+
+ +

+Value:

Given a Tiled Display Topology (TDT) data block, retrieve the total number of vertical tiles in the tiled display. The TDT block is part of an Extended Display Identification Data (EDID) extension block of type DisplayID.

+

Parameters:
+ + +
Tdt is a pointer to the TDT data block.
+
+
Returns:
The total number of vertical tiles in the tiled display.
+
Note:
C-style signature: u8 XDptx_GetDispIdTdtVTotal(u8 *Tdt)
+

@@ -6899,7 +7805,37 @@ An AUX reply transaction has been detected.

-A reply timeout has occurred. +A reply timeout has occurred. +

+

+ +

+
+ + + + + + + + + +
#define XDptx_IsEdidExtBlockDispId (Ext   )    (Ext[XDPTX_EDID_EXT_BLOCK_TAG] == XDPTX_EDID_EXT_BLOCK_TAG_DISPID)
+
+
+ +

+Check if an Extended Display Identification Data (EDID) extension block is of type DisplayID.

+

Parameters:
+ + +
Ext is a pointer to the EDID extension block under comparison.
+
+
Returns:
    +
  • 1 if the extension block is of type DisplayID.
  • Otherwise.
+
+
Note:
C-style signature: u8 XDptx_IsEdidExtBlockDispId(u8 *Ext)
+

@@ -8747,6 +9683,21 @@ AUX request is currently being transmitted.

+ +

+ +

+
+ + + + +
#define XDPTX_SBMSG_REMOTE_I2C_WRITE   0x23
+
+
+ +

+

@@ -8761,7 +9712,22 @@ AUX request is currently being transmitted.

-Disable scrambler and transmit all symbols. +Disable scrambler and transmit all symbols. +

+

+ +

+
+ + + + +
#define XDPTX_SEGPTR_ADDR   0x30
+
+
+ +

+

diff --git a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__mst_8c.html b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__mst_8c.html index 56ade626..415c217f 100755 --- a/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__mst_8c.html +++ b/XilinxProcessorIPLib/drivers/dptx/doc/html/api/xdptx__mst_8c.html @@ -74,9 +74,21 @@ u32 XDptx_FindAccessibleDpDevices (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress) +void XDptx_TopologySwapSinks (XDptx *InstancePtr, u8 Index0, u8 Index1) + +void XDptx_TopologySortSinksByTiling (XDptx *InstancePtr) + +u32 XDptx_RemoteDpcdRead (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u32 DpcdAddress, u32 BytesToRead, u8 *ReadData) + +u32 XDptx_RemoteDpcdWrite (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u32 DpcdAddress, u32 BytesToWrite, u8 *WriteData) + +u32 XDptx_RemoteIicRead (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicAddress, u16 Offset, u16 BytesToRead, u8 *ReadData) + +u32 XDptx_RemoteIicWrite (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicAddress, u8 BytesToWrite, u8 *WriteData) + u32 XDptx_AllocatePayloadStreams (XDptx *InstancePtr) -u32 XDptx_AllocatePayloadVcIdTable (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 VcId, u16 Pbn, u8 Ts) +u32 XDptx_AllocatePayloadVcIdTable (XDptx *InstancePtr, u8 VcId, u8 Ts) u32 XDptx_ClearPayloadVcIdTable (XDptx *InstancePtr) @@ -84,7 +96,9 @@ u32 XDptx_SendSbMsgRemoteDpcdRead (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u32 DpcdAddress, u32 BytesToRead, u8 *ReadData) -u32 XDptx_SendSbMsgRemoteIicRead (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicDeviceId, u8 BytesToRead, u8 *ReadData) +u32 XDptx_SendSbMsgRemoteIicWrite (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicDeviceId, u8 BytesToWrite, u8 *WriteData) + +u32 XDptx_SendSbMsgRemoteIicRead (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicDeviceId, u8 Offset, u8 BytesToRead, u8 *ReadData) u32 XDptx_SendSbMsgLinkAddress (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, XDptx_SbMsgLinkAddressReplyDeviceInfo *DeviceInfo) @@ -98,8 +112,6 @@ void XDptx_GetGuid (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u32 *Guid) -u32 XDptx_GetRemoteEdid (XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 *Edid) -

Variables

u32 GuidTable [16][4] @@ -171,7 +183,7 @@ This function will allocate bandwidth for all enabled stream.

- +

@@ -181,30 +193,12 @@ This function will allocate bandwidth for all enabled stream.

- - - - - - - - - - - - - - - - - - @@ -225,10 +219,7 @@ This function will allocate a bandwidth for a virtual channel in the payload ID
Parameters:
XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  VcId,
u16  Pbn,
- - -
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
VcId is the unique virtual channel ID to allocate into the payload ID tables.
Pbn is the payload bandwidth number that determines how much bandwidth will be allocated for the virtual channel.
Ts is the number of timeslots to allocate in the payload ID tables.
@@ -406,60 +397,6 @@ This function will obtain the global unique identifier (GUID) for the target Dis
Returns:
None.
Note:
None.
-
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
u32 XDptx_GetRemoteEdid (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8 *  Edid 
)
-
-
- -

-This function retrieves a remote RX device's Extended Display Identification Data (EDID).

-

Parameters:
- - - - - -
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
Edid is a pointer to the Edid buffer to save to.
-
-
Returns:
    -
  • XST_SUCCESS if the I2C transactions to read the EDID were successful.
  • XST_ERROR_COUNT_MAX if the EDID read request timed out.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_FAILURE otherwise.
-
-
Note:
None.
-

@@ -737,6 +674,287 @@ This function will check whether

Note:
None.
+ +

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteDpcdRead (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u32  DpcdAddress,
u32  BytesToRead,
u8 *  ReadData 
)
+
+
+ +

+This function performs a remote DisplayPort Configuration Data (DPCD) read by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is issued over the AUX channel. The read message will be divided into multiple transactions which read a maximum of 16 bytes each.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
DpcdAddress is the starting address to read from the RX device.
BytesToRead is the number of bytes to read.
ReadData is a pointer to the data buffer that will be filled with read data.
+
+
Returns:
    +
  • XST_SUCCESS if the DPCD read has successfully completed (has been acknowledged).
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToRead does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteDpcdWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u32  DpcdAddress,
u32  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+This function performs a remote DisplayPort Configuration Data (DPCD) write by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is issued over the AUX channel. The write message will be divided into multiple transactions which write a maximum of 16 bytes each.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
DpcdAddress is the starting address to write to the RX device.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
+
+
Returns:
    +
  • XST_SUCCESS if the DPCD write has successfully completed (has been acknowledged).
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToWrite does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteIicRead (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicAddress,
u16  Offset,
u16  BytesToRead,
u8 *  ReadData 
)
+
+
+ +

+This function performs a remote I2C read by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is sent over the AUX channel. The read message will be divided into multiple transactions which read a maximum of 16 bytes each. The segment pointer is automatically incremented and the offset is calibrated as needed. E.g. For an overall offset of:

+

+

Parameters:
+ + + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicAddress is the address on the I2C bus of the target device.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C read has successfully completed with no errors.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToRead does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_RemoteIicWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicAddress,
u8  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+This function performs a remote I2C write by sending a sideband message. In case message is directed at the RX device connected immediately to the TX, the message is sent over the AUX channel.

+

Parameters:
+ + + + + + + +
InstancePtr is a pointer to the XDptx instance.
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicAddress is the address on the I2C bus of the target device.
BytesToWrite is the number of bytes to write.
WriteData is a pointer to a buffer which will be used as the data source for the write.
+
+
Returns:
    +
  • XST_SUCCESS if the I2C write has successfully completed with no errors.
  • XST_DEVICE_NOT_FOUND if no RX device is connected.
  • XST_ERROR_COUNT_MAX if either waiting for a reply, or an AUX request timed out.
  • XST_DATA_LOST if the requested number of BytesToWrite does not equal that actually received.
  • XST_FAILURE otherwise - if an AUX read or write transaction failed, the header or body CRC of the sideband message did not match the calculated value, or the a reply was negative acknowledged (NACK'ed).
+
+
Note:
None.
+

@@ -1113,7 +1331,7 @@ This function will send a REMOTE_DPCD_WRITE sideband message which will write so

- +

@@ -1141,6 +1359,12 @@ This function will send a REMOTE_DPCD_WRITE sideband message which will write so + + + + + + @@ -1170,6 +1394,7 @@ This function will send a REMOTE_I2C_READ sideband message which will read from +
u8  IicDeviceId,
u8  Offset,
LinkCountTotal is the number of DisplayPort links from the DisplayPort source to the target DisplayPort device.
RelativeAddress is the relative address from the DisplayPort source to the target DisplayPort device.
IicDeviceId is the address on the I2C bus of the target device.
Offset is the offset at the specified address of the targeted I2C device that the read will start from.
BytesToRead is the number of bytes to read from the I2C address.
ReadData is a pointer to a buffer that will be filled with the I2C read data.
@@ -1184,6 +1409,59 @@ This function will send a REMOTE_I2C_READ sideband message which will read from

Note:
None.
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
u32 XDptx_SendSbMsgRemoteIicWrite (XDptx InstancePtr,
u8  LinkCountTotal,
u8 *  RelativeAddress,
u8  IicDeviceId,
u8  BytesToWrite,
u8 *  WriteData 
)
+
+
+ +

+

@@ -1282,6 +1560,79 @@ This function will map a stream to a downstream DisplayPort TX device determined

Returns:
None.
Note:
The contents of the InstancePtr->MstStreamConfig[Stream] will be modified.
+ +

+ +

+
+ + + + + + + + + +
void XDptx_TopologySortSinksByTiling (XDptx InstancePtr  ) 
+
+
+ +

+Order the sink list with all sinks of the same tiled display being sorted by 'tile order'. Refer to the XDptx_GetDispIdTdtTileOrder macro on how to determine the 'tile order'. Sinks of a tiled display will have an index in the sink list that is lower than all indices of other sinks within that same tiled display that have a greater 'tile order'. When operations are done on the sink list, this ordering will ensure that sinks within the same tiled display will be acted upon in a consistent manner - with an incrementing sink list index, sinks with a lower 'tile order' will be acted upon first relative to the other sinks in the same tiled display. Multiple tiled displays may exist in the sink list.

+

Parameters:
+ + +
InstancePtr is a pointer to the XDptx instance.
+
+
Returns:
None.
+
Note:
None.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void XDptx_TopologySwapSinks (XDptx InstancePtr,
u8  Index0,
u8  Index1 
)
+
+
+ +

+Swap the ordering of the sinks in the topology's sink list. All sink information is preserved in the node table - the swapping takes place only on the pointers to the sinks in the node table. The reason this swapping is done is so that functions that use the sink list will act on the sinks in a different order.

+

Parameters:
+ + + + +
InstancePtr is a pointer to the XDptx instance.
Index0 is the sink list's index of one of the sink pointers to be swapped.
Index1 is the sink list's index of the other sink pointer to be swapped.
+
+
Returns:
None.
+
Note:
None.
+