SPRADH9 June   2024 AM6442

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Abbreviations
  5. 2Introduction
    1. 2.1 Peripheral Component Interconnect Express
      1. 2.1.1 Components of PCIe Communication
        1. 2.1.1.1 Root Complex
        2. 2.1.1.2 Repeater
        3. 2.1.1.3 Endpoints
      2. 2.1.2 Signaling
        1. 2.1.2.1 PERST
        2. 2.1.2.2 WAKE and CLKREQ
        3. 2.1.2.3 REFCLK
      3. 2.1.3 PCIe Common Usage
      4. 2.1.4 PCIe Aggregate Throughput
    2. 2.2 PCIe Features on AM64x and AM243x
  6. 3X86 as RC and AM64x as EP
    1. 3.1 Hardware Environment
    2. 3.2 Software Environment
      1. 3.2.1 Building Application
      2. 3.2.2 Usage
  7. 4Test Setup
    1. 4.1 Common Setup for LINUX and WIN
    2. 4.2 Linux Driver (VFIO)
      1. 4.2.1 Prerequisites
      2. 4.2.2 Building
      3. 4.2.3 Deploying
    3. 4.3 Test Application Usage
    4. 4.4 Setup Steps for LINUX PC
      1. 4.4.1 UART Console Output
    5. 4.5 MSI Example
    6. 4.6 Setup Steps for WINDOWS PC
      1. 4.6.1 Prerequisites
      2. 4.6.2 Building
      3. 4.6.3 Deploying
  8. 5PCIe Test Specification
    1. 5.1  Identification and Configuration Functionalities
      1. 5.1.1 Test Case
    2. 5.2  Reference Clock Functionalities
    3. 5.3  Inbound ATU and BAR Functionalities
    4. 5.4  Outbound ATU Functionalities
    5. 5.5  MSI Functionality
    6. 5.6  Downstream Interrupt Functionality
    7. 5.7  Device Power Management State Functionality
    8. 5.8  Function Level Reset Mechanism
    9. 5.9  Legacy Interrupt Mechanism
    10. 5.10 MSI-X Capability
    11. 5.11 Hot Reset Mechanism
  9. 6Windows Example Driver Verification
  10. 7References

Common Setup for LINUX and WIN

To perform function tests with the TMDS243EVM/TMDS64EVM as a PCIe EP and either a Linux-based PCIe RC or a Windows-based RC, the following test setup needs to be performed:

  1. Perform hardware modification on TMDS243EVM:
    1. Remove resistors R661, R662, R667 and R668
    2. Populate 0Ω resistors R665, R666, R679 and R680
  2. Remove Jumper J34 on TMDS243EVM, as we want neither the AM24x to driver the PERST signal (we are an EP, this is an input) nor do we want the x86's PERST signal to reset our processor, because we want to boot the AM24x BEFORE the x86 to make sure the startup and reset timing requirements are met.
  3. Enable Intel Virtualization Technology in BIOS settings of X86 Linux-based RC hardware for IOMMU usage.
  4. Connect TMDS243EVM with X86_10TH or X86_ADLN using the modified Cable PCIE_FLEX_CLK.
  5. Note, the blue circled zero-ohm resistors in the following image:
    AM6442 Modified PCIE_FLEX_CLK
                            cable Figure 4-1 Modified PCIE_FLEX_CLK cable
  6. Boot TMDS243EVM with NULL SBL from SD card.
  7. Connect to TMDS243EVM through FTDI USB for UART port using serial terminal emulator program SER_TER.
Note: The serial connection is intended to provide various status messages of the PCIe EP, which can be used for test verification as described in Section 5 and Section 6

Each function test described in Section 5 requires modifications of the pcie_enumerate_ep example application. These modifications are either performed on the Sysconfig file or within the source code on CCS. On executing these modifications, continue with the following test setup:

  1. On changing Sysconfig file or source code save files and build project.
  2. Open designed for target configuration, connect with target. Perform system reset, load and run the pcie_enumerate_ep example application on TMDS243EVM.
  3. Boot X86 based PCIe RC.
    Note: The PCIe EP needs to always run before the PCIe RC hardware boots.
  4. Perform test validation on successful boot up via terminal commands as descriptive in Section 5.