ide_test.ini spec

December 4, 2025 · View on GitHub

TEE-IO Device Validation Utility reads ide_test.ini to get the information, such as root port dev/func, endpoint dev/func, topology, etc. Its structure refers to IdeKmTestCase, IdeKmTestConfiguration and IdeKmTestTopology

There are 6 sections in the ide_test.ini.

  1. Main
  2. Ports
  3. Switch_x (x is in [1,16])
  4. Topology_x (x is in [1,16])
  5. Configuration_x (x is in [1,32])
  6. TestSuite_x (x is in [1,32])

Format

[SectionName]
EntryName=EntryValue

    Where:
      1) SectionName is an ASCII string. The valid format is [A-Za-z0-9_]+
      2) EntryName is an ASCII string. The valid format is [A-Za-z0-9_]+
      3) EntryValue can be:
         3.1) an ASCII String. The valid format is [A-Za-z0-9_.,:]+
         3.2) a GUID. The valid format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, where x is [A-Fa-f0-9]
         3.3) a decimal value. The valid format is [0-9]+
         3.4) a hexadecimal value. The valid format is 0x[A-Fa-f0-9]+
      4) '#' or ';' can be used as comment at anywhere.
      5) TAB(0x20) or SPACE(0x9) can be used as separator.
      6) LF(\n, 0xA) or CR(\r, 0xD) can be used as line break.

Descriptions of sections

[Main]

EntryValueDefaultMandatoryComment
pci_log0/10Oenable pci log if 1
libspdm_log0/10Oenable libspdm log if 1
debug_levelverbose/info/warn/errorwarnOdebug level
pcap_enable0/10Oenable pcap capture if 1
doe_log0/10Oenable doe log if 1

[Ports]

EntryValueDefaultMandatoryComment
rootport_xdev/func stringMFor example 02.0. x in [1, 16]
endpoint_ydev/func stringMFor example 00.0. y in [1, 16]

[Switch_x]

EntryValueDefaultMandatoryComment
port_ydev/func stringMFor example 00.0. y in [1, 16]

TEE-IO Device Validation Utility supports multiple test categories.

Settings of Topology / Configuration / TestSuite are different.

PCIE-IDE Section settings

[Topology_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are: selective_ide, link_ide, selective_and_link_ide
connectionstringMavailable values are: direct, switch
segmenthexMThe segment which rootport is connected to. For example 0x0000
bushexMThe bus which rootport is connected to. For example 0x1a
path1stringMrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_2,endpoint_2
path2stringOrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_3,endpoint_3.
Note: path2 is only available in the connection of peer2peer
stream_idnumber0Oit shall be in [0, 255]

[Configration_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are selective_ide, link_ide, selective_and_link_ide
categorystringpcie-ideOmust be pcie-ide
default0/11O
switch0/10O
partial_header_encryption0/10O
pcrc0/10O
aggregation0/10O
selective_ide_for_configuration0/10O
tee_limited_stream0/10O
flit_mode_disable0/10O

[TestSuite_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are: selective_ide, link_ide, selective_and_link_ide
categorystringpcie-ideOmust be pcie-ide
topologynumberMTopology_x
configurationnumberMConfiguration_x
querystringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in Query.md
KeyProgstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in keyProg.md
KSetGostringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in KSetGo.md
KSetStopstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in KSetStop.md
SpdmSessionstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in SpdmSession.md

CXL-IDE Section settings

[Topology_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
connectionstringMavailable values are: direct, switch
segmenthexMThe segment which rootport is connected to. For example 0x0000
bushexMThe bus which rootport is connected to. For example 0x1a
path1stringMrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_2,endpoint_2
path2stringOrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_3,endpoint_3.
Note: path2 is only available in the connection of peer2peer
stream_idnumber0Oit shall always be 0

[Configration_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
categorystringMmust be cxl-ide
cxl_ide_modestringcontainmentOavailable values are containment or skid
default0/11O
pcrc_disable0/10O
ide_stop0/10O
cxl_get_key0/10OGenerate keys by IDEKM GET_KEY when setting up CXL.memcache IDE Stream.

[TestSuite_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
categorystringMmust be cxl-ide
topologynumberMTopology_x
configurationnumberMConfiguration_x
querystringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in CxlQuery.md
KeyProgstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in CxlKeyProg.md
KSetGostringOnumbers separated by comma.
For example 1 means Cases1 in CxlKSetGo.md
KSetStopstringOnumbers separated by comma.
For example 1 means Cases1 in CxlKSetStop.md
GetKeystringOnumbers separated by comma.
For example 1 means Cases1 in CxlGetKey.md

CXL-TSP Section settings

[Topology_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
connectionstringMavailable values are: direct, switch
segmenthexMThe segment which rootport is connected to. For example 0x0000
bushexMThe bus which rootport is connected to. For example 0x1a
path1stringMrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_2,endpoint_2
path2stringOrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_3,endpoint_3.
Note: path2 is only available in the connection of peer2peer
stream_idnumber0Oit shall always be 0

[Configration_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
categorystringMmust be cxl-tsp
default0/11O

[TestSuite_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
categorystringMmust be cxl-tsp
topologynumberMTopology_x
configurationnumberMConfiguration_x
GetVersionstringOnumbers separated by comma.
For example 1 means Case1 in GetTargetTspVersionResponse.md
GetCapsstringOnumbers separated by comma.
For example 1 means Case1 in GetTargetTspCapabilitiesResponse.md
SetConfigurationstringOnumbers separated by comma.
For example 1 means Case1 in SetTargetTspConfigurationResponse.md
GetConfigurationstringOnumbers separated by comma.
For example 1 means Case1 in GetTargetTspConfigurationResponse.md
GetConfigurationReportstringOnumbers separated by comma.
For example 1 means Case1 in GetTargetTspConfigurationReportResponse.md
LockConfigurationstringOnumbers separated by comma.
For example 1,2 means Case1 and Case2 in LockTargetTspConfigurationResponse.md

SPDM Section settings

[Topology_x]

EntryValueDefaultMandatoryComment
typestringMmust be link_ide
connectionstringMavailable values are: direct, switch
segmenthexMThe segment which rootport is connected to. For example 0x0000
bushexMThe bus which rootport is connected to. For example 0x1a
path1stringMrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_2,endpoint_2
path2stringOrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_3,endpoint_3.
Note: path2 is only available in the connection of peer2peer

[Configration_x]

EntryValueDefaultMandatoryComment
categorystringspdmMmust be spdm

[TestSuite_x]

EntryValueDefaultMandatoryComment
categorystringspdmMmust be spdm
topologynumberMTopology_x
configurationnumberMConfiguration_x
VersionstringOnumbers separated by comma.
For example 1 means Cases1 in Version.md
CapabilitiesstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in Capabilities.md
AlgorithmsstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in Algorithms.md
CertificatestringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in Certificate.md
MeasurementsstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in Measurements.md
KeyExchangeRspstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in KeyExchangeRsp.md
FinishRspstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in FinishRsp.md
EndSessionAckstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in EndSessionAck.md

TDISP Section settings

[Topology_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are: selective_ide, link_ide, selective_and_link_ide
connectionstringMavailable values are: direct, switch
segmenthexMThe segment which rootport is connected to. For example 0x0000
bushexMThe bus which rootport is connected to. For example 0x1a
tdisp_function_idhex0x0OFUNCTION_ID of the device hosting the TDI. Refer to PCIE/TDISP spec for more detailed information
path1stringMrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_2,endpoint_2
path2stringOrootport_x to endpoint_y. Each ports are separated by ‘,’. For example: rootport_1,switch_1:port_1-port_3,endpoint_3.
Note: path2 is only available in the connection of peer2peer
stream_idnumber0Oit shall be in [0, 255]

[Configration_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are selective_ide, link_ide, selective_and_link_ide
categorystringtdispMmust be tdisp

[TestSuite_x]

EntryValueDefaultMandatoryComment
typestringMavailable values are: selective_ide, link_ide, selective_and_link_ide
categorystringtdispMmust be tdisp
topologynumberMTopology_x
configurationnumberMConfiguration_x
VersionstringOnumbers separated by comma.
For example 1 means Cases1 in TdispVersion.md
CapabilitiesstringOnumbers separated by comma.
For example 1 means Cases1 in TdispCapabilities.md
LockInterfacestringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in LockInterfaceResponse.md
DeviceReportstringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in DeviceInterfaceReport.md
DeviceStatestringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in DeviceInterfaceState.md
StartInterfacestringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in StartInterfaceResponse.md
StopInterfacestringOnumbers separated by comma.
For example 1,2 means Cases1 and Cases2 in StopInterfaceResponse.md