PCIe

This guide will show you how to do a basic functional test of the PCIe interface on the phyCORE-i.MX8X development kit.

../_images/pcm-065_pcie.png

Requirements

Hardware Setup

Warning

The PCIe interface is not hot swappable and the development kit must be powered off before connecting/disconnecting any PCIe device.

  • With the phyCORE-i.MX8X development kit powered off and with the power supply removed, connect the Network Adapter to the PCIe Slot at X81.

    ../_images/pcm-065_pcie-callout.png
  • Connect one end of the included CAT5e ethernet cable to the PCIe card and the other end of the cable to your network switch.

  • Power on the development kit and boot into Linux.

PCIe Connection

  • Verify that the card was properly initialized by checking for the “eth2” interface in the boot log.

    Target (Linux)
    dmesg | grep eth2
    
    Expected Output
    [    3.023821] e1000e 0000:01:00.0 eth2: (PCI Express:2.5GT/s:Width x1) 68:05:ca:bd:46:45
    [    3.023842] e1000e 0000:01:00.0 eth2: Intel(R) PRO/1000 Network Connection
    [    3.023863] e1000e 0000:01:00.0 eth2: MAC: 3, PHY: 8, PBA No: E46981-008
    [    6.950556] 8021q: adding VLAN 0 to HW filter on device eth2
    [    9.646530] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    [    9.654470] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
    

Test PCIe

  • Test your connection by pinging a known server.

    Target (Linux)
    ping google.com -c 5
    
    Expected Output
    PING google.com (142.250.69.206) 56(84) bytes of data.
    64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=1 ttl=116 time=4.70 ms
    64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=2 ttl=116 time=4.71 ms
    64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=3 ttl=116 time=4.62 ms
    64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=4 ttl=116 time=4.60 ms
    64 bytes from sea30s08-in-f14.1e100.net (142.250.69.206): icmp_seq=5 ttl=116 time=4.61 ms