Accelerator Functional Unit Developer Guide: Intel FPGA Programmable Acceleration Card N3000 Variants

ID 683190
Date 7/15/2022
Public
Document Table of Contents

4.5.1.2. Disabling PCIe* Automatic Error Reporting (AER)

When you program the FPGA using JTAG, the Intel® Arria® 10 PCIe* link goes down for a moment causing a server surprise link down event. To prevent this server event, temporarily disable the PCIe* AER for the N3000 PCIe* slot using the following steps:
  1. Find and record your N3000 PCIe* s:b:d.f value. You will use this PCIe* s:b:d.f value later for removing the N3000 from the PCIe* bus. In this example, use this value: 0000:08:00.0.
    $ sudo fpgainfo fme
    Board Management Controller, MAX10 NIOS FW version D.2.0.19
    Board Management Controller, MAX10 Build version D.2.0.6
    //****** FME ******//
    Object Id                     : 0xF200000
    PCIe s:b:d.f                  : 0000:08:00.0
    Device Id                     : 0x0b30
    Numa Node                     : 0
    Ports Num                     : 01
    Bitstream Id                  : 0x23000410010309
    Bitstream Version             : 0.2.3
    Pr Interface Id               : a5d72a3c-c8b0-4939-912c-f715e5dc10ca
    Boot Page                     : user
    
  2. Use the command find_RP.sh to get board root PCIe* s:b:d.f .
    $ cd <N3000 Install Directory>/N3000_supplemental_files/
    $ ./find_RP.sh 
    0000:00:03.0                     ----- >>> This is root port, take note of this value
    0000:03:00.0
    0000:04:09.0
    0000:08:00.0 -> intel-fpga-dev.0
    
  3. The first entry in the list is the PCIe* Root port. In this example, 0000:00:03.0 is the root port. Your values may be different. The last entry is intel-fpga-dev.0.
  4. Using the root port, find the current AER settings and record the value. Use this value when you re-enable AER.
    $ sudo setpci -s 0000:00:03.0 ECAP_AER+0x08.L 
    00000000
    $ sudo setpci -s 0000:00:03.0 ECAP_AER+0x14.L
    00002000
    
  5. Disable AER for the root port:
    $ sudo setpci -s 0000:00:03.0 ECAP_AER+0x08.L=0xffffffff
    $ sudo setpci -s 0000:00:03.0 ECAP_AER+0x14.L=0xffffffff
    
  6. Using your board PCIe* s:b:d.f , remove the N3000 from the PCIe* bus. If using RHEL, you must enter the command as root:
    # sudo echo 1 > /sys/bus/pci/devices/0000:08:00.0/remove