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