Project

General

Profile

PCIe Gen 3 2-lane

The Gen 3.1 PCI Express slot J17 is a 64-pin PCIe x4 slot with two PCIe channels being supported.

Development Board Configuration

Ensure that Switch S9 is set properly:
  • Switch 3 should NOT be set for Rev 1 or 2 of the Development Board as 3.3V from the SOM may actually be a higher volage. See MitySOM-QC6490 Development Kit Datasheet for further details
  • Switch 4 should be set to enable the 3V3 PCIe from the DC supply

Detecting PCIe from User Space

After ensuring the DIP switches are in the proper position and booting the SOM, running lspci should verify that the PCI bridge is active and that the device is present.
Note that devices connected to PCIe Port J17 (PCIE1) will appear on the PCI bridge at domain 0001, bus 00, slot 00 (see output below with the SAMSUNG SSD connected):

root@qcs6490-mitysom-devkit:~# lspci 
0000:80:00.0 PCI bridge: Qualcomm Technologies, Inc SM8250 PCIe Root Complex [Snapdragon 865/870 5G]
0001:00:00.0 PCI bridge: Qualcomm Technologies, Inc SM8250 PCIe Root Complex [Snapdragon 865/870 5G]
0001:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 (DRAM-less)

Note: If you are unable to see the expected device, power off the SOM, re-seat the device, and verify that the DIP switch positions are correct.

Devices Used to Verify Interface

Ableconn PEXM2-SSD M.2 NGFF PCIe SSD to PCI Express x4 Host Adapter Card with SAMSUNG SSD 980, 1TB, Model #: MZ-V8V1T0

fio Throughput Test

  • Note: to complete tests of your own, ensure SSD is mounted and set the --directory flag to the mounted path.
  • Write: ~1.4GB/s
    root@qcs6490-mitysom-devkit:~# fio --name=write_throughput --directory=/var/rootdirs/mnt --numjobs=8 --size=10G --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 --verify=0 --bs=1M --iodepth=64 --rw=write --group_reporting=1
    write_throughput: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=64
    ...
    Run status group 0 (all jobs):
      WRITE: bw=1395MiB/s (1463MB/s), 1395MiB/s-1395MiB/s (1463MB/s-1463MB/s), io=82.1GiB (88.2GB), run=60283-60283msec
    
    Disk stats (read/write):
      nvme0n1: ios=0/692670, sectors=0/177311648, merge=0/1368, ticks=0/200706851, in_queue=200706890, util=84.47%
    
  • Read: ~1.6GB/s
    root@qcs6490-mitysom-devkit:~# fio --name=read_throughput --directory=/var/rootdirs/mnt --numjobs=8 --size=10G --time_based --runtime=60s --ramp_time=2s --ioengine=libaio --direct=1 --verify=0 --bs=1M --iodepth=64 --rw=read --group_reporting=1
    read_throughput: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=64
    ...
    Run status group 0 (all jobs):
       READ: bw=1606MiB/s (1684MB/s), 1606MiB/s-1606MiB/s (1684MB/s-1684MB/s), io=94.4GiB (101GB), run=60207-60207msec
    
    Disk stats (read/write):
      nvme0n1: ios=796567/4, sectors=203802880/40, merge=3/1, ticks=176841602/714, in_queue=176842437, util=88.11%
    

Go to top
Add picture from clipboard (Maximum size: 1 GB)