Multi Channel DMA IP for PCI Express* Design Example User Guide

ID 683517
Date 8/04/2025
Public
Document Table of Contents

3.5.7.2.1. Custom PIO Read Write Test

You can read and write from the PIO address range in BAR 2 from any valid custom memory.

  1. A custom PIO write or read can be performed after completing the instructions outlined in the Prerequisites section.
    • The valid address range is 0x0000 to 0x7FF8. When the IP interface type is Avalon-ST, the offset is 0x8000, i.e., the valid address range for the Avalon-ST interface type is 0x8000 to 0xFFF8.
    Note: You need to increment the address value by 8 for any OS with 64-bit addressing.
  2. Perform a custom write by running the commands below.

    $ cd software/user/cli/perfq_app

    $ sudo ./perfq_app -b 0000:01:00.0 -o --pio_w_addr=0x1010 \
    --pio_w_val=0x30 --bar=2

    Expected printout:

    WRITE: PIO Address = 0x1010 Value = 0x30, bar = 2

    Parameters for Write operation:

    -b <bdf>

    -o

    --pio_w_addr=<address>

    --pio_w_val=<value to write>

    --bar=<bar number>

  3. Perform a custom read by running the commands below.

    $ cd software/user/cli/perfq_app

    $ sudo ./perfq_app -b 0000:01:00.0 -o --pio_r_addr=0x1010 \
    --bar=2

    Expected printout:

    READ: PIO Address = 0x1010 Value = 0x30, bar = 2

    Parameters for Read operation:

    -b <bdf>

    -o

    --pio_r_addr=<address>

    --bar=<bar number>