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

ID 683517
Date 6/09/2025
Public

Visible to Intel only — GUID: xnt1745443930679

Ixiasoft

Document Table of Contents

3.5.8.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.
    • For BAM PIO: the valid address range is 0x0 - 0x7ff. (For address 0x0, software gives an error "Invalid address". This is a known issue.)
    • For PIO (User Mode without BAM): the valid address range is 0x0 - 0x1ff8.
    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>