Forum Discussion

User1582192733150209's avatar
User1582192733150209
Icon for Occasional Contributor rankOccasional Contributor
5 years ago

What is the meaning of instance_id and how to use them in the 10Gbps Ethernet (10GbE) AFU design example on Intel PAC arria10gx

Hello Sir/Madam,

I am running the 10Gbps Ethernet

(10GbE) AFU design example on Intel PAC arria10gx, following the document 10Gbps

Ethernet Accelerator Functional Unit Design Example User Guide.

I am confused about several instance_id mentioned in the document.

For example ,on page 9, there is description about the instance_id as below

To configure the transceiver channel into 10G mode, write 10 to the following

sysfs entry:

$ sudo sh -c "echo 10 > /sys/class/fpga/intel-fpga-dev.<instance_id>\

/intel-fpga-fme.<instance_id>/intel-pac-hssi.<instance_id>.\

auto/hssi_mgmt/config"

<instance_id> represents the consecutive numbering of device, fme, and hssi

instances.

For example:

sudo sh -c "echo 10 > /sys/class/fpga/intel-fpga-dev.0\

/intel-fpga-fme.0/intel-pac-hssi.2.auto/hssi_mgmt/config"

For the instance_id relevant to intel-fpga-dev.<instance_id> and /intel-fpga-fme.<instance_id> , I know I can find them using below tcl

[root@fig01 bin]# fpgainfo fme

Board Management Controller, microconetroller FW version 26889

Last Power Down Cause: POK_CORE

Last Reset Cause: None

//****** FME ******//

Object Id : 0xED00001

PCIe s:b:d:f : 0000:D8:00:0

Device Id : 0x09C4

Socket Id : 0x00

Ports Num : 01

Bitstream Id : 0x123000200000185

Bitstream Version : 0x562800030201

Pr Interface Id : 69528db6-eb31-577a-8c36-68f9faa081f6

Board Management Controller, microcontroller FW version unavailable

Last Power Down Cause: unavailable

Last Reset Cause: unavailable (can't open)

//****** FME ******//

Object Id : 0xED00000

PCIe s:b:d:f : 0000:3B:00:0

Device Id : 0x09C4

Socket Id : 0x00

Ports Num : 01

Bitstream Id : 0x123000200000185

Bitstream Version : 0x562800030201

Pr Interface Id : 69528db6-eb31-577a-8c36-68f9faa081f6

root@fig01 sw]# ls /sys/class/fpga

intel-fpga-dev.0 intel-fpga-dev.1

[root@fig01 sw]# ls /sys/class/fpga/intel-fpga-dev.0/

device intel-fpga-fme.0 intel-fpga-port.0 power subsystem uevent

[root@fig01 sw]# ls /sys/class/fpga/intel-fpga-dev.0/intel-fpga-fme.0/

altr-asmip2.0.auto bitstream_id cache_size dperf emif_mgmt fpga_manager modalias power revision subsystem uevent

avmmi-bmc.2.auto bitstream_metadata dev driver errors intel-pac-hssi.1.auto ports_num pr socket_id thermal_mgmt version

[root@fig01 sw]# ls /sys/class/fpga/intel-fpga-dev.1/

device intel-fpga-fme.1 intel-fpga-port.1 power subsystem uevent

[root@fig01 sw]# ls /sys/class/fpga/intel-fpga-dev.1/intel-fpga-fme.1/

altr-asmip2.3.auto bitstream_id cache_size dperf emif_mgmt fpga_manager modalias power revision subsystem uevent

avmmi-bmc.5.auto bitstream_metadata dev driver errors intel-pac-hssi.4.auto ports_num pr socket_id thermal_mgmt version

based on above information can I understand

for the card 0000:3B:00:0 , the 4 instance_id can be copied from above printing information intel-fpga-dev.0, intel-fpga-fme.0 , intel-pac-hssi.1.auto, intel-fpga-port.0

for the card 0000:d8:00:0 , the 4 instance_id can be copied from above printing information intel-fpga-dev.1, intel-fpga-fme.1 , intel-pac-hssi.4.auto, intel-fpga-port.1

does that mean

1,above intel-fpga-dev.0, intel-fpga-fme.0 , intel-pac-hssi.1.auto, intel-fpga-port.0 are fixed and do not need to change if the target card is 0000:3B:00:0 ?

2,intel-fpga-dev.1, intel-fpga-fme.1 , intel-pac-hssi.4.auto, intel-fpga-port.1 are fixed and do not need to change if the target card is 0000:d8:00:0?

The confused part is how to choose different channel since the example has 4*10G mode and has 4 10g channel (0,1,2,3) ?

I have only found intel-pac-hssi.1.auto For card 0 , and , intel-pac-hssi.4.auto for card 1 from printing information.

Does that mean

1,intel-pac-hssi.1.auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are not applicable for card 0?

2,intel-pac-hssi.0.auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are not applicable for card 1?

If so, how can choose different channel(0,1,2,3) for the same card?

If those unsee parameters are applicable , for example intel-pac-hssi.1.auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are applicable for card 0,

why I can not print them using above tcl, any other operation I can try please let me know.

Thanks

Jim

2 Replies

  • User1582192733150209's avatar
    User1582192733150209
    Icon for Occasional Contributor rankOccasional Contributor

    correct some wrong typing as below

    Does that mean

    1,intel-pac-hssi.0.auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are not applicable for card 0?

    2,intel-pac-hssi.0. intel-pac-hssi.1.auto ,auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are not applicable for card 1?

    If so, how can choose different channel(0,1,2,3) for the same card?

    If those unsee parameters are applicable , for example intel-pac-hssi.0.auto intel-pac-hssi.2.auto , intel-pac-hssi.3.auto are applicable for card 0,

    why I can not print them using above tcl, any other operation I can try please let me know.

  • JohnT_Altera's avatar
    JohnT_Altera
    Icon for Regular Contributor rankRegular Contributor

    Hi,

    The HSSI.? numbering is already fixed based and enumerated in the OPAE. For Intel Arria 10 PAC card will only have 1 HSSI block as it only have 1 QSFP interface. So in order to run each of the ethernet port, you will need to define which channel to run.

    Example on sending 0x1000 packet onto each of the channel

    ./pac_hssi_e10 -b 00 -d 0a -f 0b --channel=0 --action=pkt_send

    ./pac_hssi_e10 -b 00 -d 0a -f 0b --channel=1 --action=pkt_send

    ./pac_hssi_e10 -b 00 -d 0a -f 0b --channel=2 --action=pkt_send

    ./pac_hssi_e10 -b 00 -d 0a -f 0b --channel=3 --action=pkt_send