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

Windows Example Driver Verification

This chapter defines and specifies testing of the Windows example driver. Only a reduced subset of the EP’s functionality is being tested, to make sure that functions previously tested on Linux work similarly on Windows. The following test specification assumes environment AM24_WIN.

Test

Description:

Test to verify functionality of the Windows KMDF driver.

Execution:

  1. Verify that the Windows driver for the pcie_enumerate_ep example EP has been loaded by searching for the ti-sample-kmdf Device in the Windows device manager:
    AM6442
  2. Open a command prompt with administrator privileges and run the ti-sample-console.exe application:
    AM6442
  3. Verify that all tests have passed without errors as shown above.
  4. Verify that the output on the EP’s UART matches the expected output, indicating completion of the DMA test, the MSI test (sending 16 distinct interrupts) and the BAR test:
AM6442

Rationale

The ti-sample-console application calls the ti-sample-kmdf driver and executes the following test steps:

  • A COPY test where data previously written by the KMDF driver to the EP’s Bar0 memory is correctly sent back to the Windows host’s DMA buffer
  • A MSI test where the EP triggers every enabled MSI vector (multiple message enable) once. The KMDF driver triggers this test in the EP and waits for the reception of all MSI vectors. If the test returns, all configured vectors have been received. Additionally, a bitmask of received MSI vectors is displayed (for example,. result: 0000ffff indicates vectors 0-15 have been received).
  • A Bar1/2 test where the KMDF driver fills Bar1 and Bar2 of the EP with a known pattern, then triggers test execution in the EP. The EP verifies the known pattern in Bar1 and Bar2 and on success sends an MSI back to the RC. If the test returns, the verification was successful.