On 3/29/2019 3:58 PM, Rosen Xu wrote: > v2 updates: > ========== > - Fix v1 comments > - Add support for 10G Base Line Design Bitstream > - Add support for 25G Base Line Design Bitstream > > This patch set adds the support of a new net PMD, Intel® FPGA Programmable > Acceleration Card N3000, also called ipn3ke. > > The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support > for Intel® FPGA PAC(Programmable Acceleration Card) N3000 based on > the Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA. > > In this card, FPGA is an acceleration bridge between network interface > and the Intel Ethernet Controller. Although both FPGA and Ethernet > Controllers are connected to CPU with PCIe Gen3x16 Switch, all the > packet RX/TX is handled by Intel Ethernet Controller. So from application > point of view the data path is still the legacy Intel Ethernet Controller > X710/XXV710 PMD. Besides this, users can enable more acceleration > features by FPGA IP. > > Rosen Xu (7): > drivers/bus/ifpga: add AFU shared data > drivers/bus/ifpga: add function for AFU search by name > drivers/net/ipn3ke: add IPN3KE ethdev PMD driver > drivers/net/ipn3ke: add IPN3KE representor of PMD driver > drivers/net/ipn3ke: add IPN3KE TM of PMD driver > drivers/net/ipn3ke: add IPN3KE Flow of PMD driver > drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev > > Zhang, Tianfei (8): > raw/ifpga/base: clean up code for ifpga share code > raw/ifpga/base: store private features in FME and Port list > raw/ifpga/base: add SPI and MAX10 device driver > raw/ifpga/base: add I2C and at24 EEPROM driver > raw/ifpga/base: add eth group driver > raw/ifpga/base: add device tree support > raw/ifpga/base: add version description on README > raw/ifpga/base: using prefix name "ifpga_" for feature and feature_ops > data struct
Hi Rosen, I am seeing some build errors, for 32bit [1], cross compilation [2] and linkage errors [3], can you please check them? Is "libfdt.h" dependency in [2] documented in driver doc? [1] Building i686-native-linuxapp-gcc ... .../dpdk/drivers/net/ipn3ke/ipn3ke_ethdev.c: In function ‘ipn3ke_indirect_read’: .../dpdk/drivers/net/ipn3ke/ipn3ke_ethdev.c:68:19: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] indirect_addrs = (volatile void *)(base_addr | 0x10); ^ .../dpdk/drivers/net/ipn3ke/ipn3ke_ethdev.c:76:19: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] indirect_addrs = (volatile void *)(base_addr | 0x18); ^ .../dpdk/drivers/net/ipn3ke/ipn3ke_ethdev.c: In function ‘ipn3ke_indirect_write’: .../dpdk/drivers/net/ipn3ke/ipn3ke_ethdev.c:118:19: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] indirect_addrs = (volatile void *)(base_addr | 0x10); ^ cc1: all warnings being treated as errors make[7]: *** [.../dpdk/mk/internal/rte.compile-pre.mk:116: ipn3ke_ethdev.o] Error 1 make[7]: *** Waiting for unfinished jobs.... In file included from .../dpdk/drivers/net/ipn3ke/ipn3ke_representor.c:25: .../dpdk/drivers/net/ipn3ke/ipn3ke_representor.c: In function ‘ipn3ke_update_link’: .../dpdk/drivers/net/ipn3ke/ipn3ke_logs.h:13:49: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ {aka ‘long long unsigned int’} [-Werror=format=] rte_log(RTE_LOG_ ## level, ipn3ke_afu_logtype, "ipn3ke_afu: " fmt, \ ^~~~~~~~~~~~~~ .../dpdk/drivers/net/ipn3ke/ipn3ke_logs.h:19:2: note: in expansion of macro ‘IPN3KE_AFU_PMD_LOG’ IPN3KE_AFU_PMD_LOG(DEBUG, fmt, ## args) ^~~~~~~~~~~~~~~~~~ .../dpdk/drivers/net/ipn3ke/ipn3ke_representor.c:388:2: note: in expansion of macro ‘IPN3KE_AFU_PMD_DEBUG’ IPN3KE_AFU_PMD_DEBUG("line_link_bitmap is %lx\n", line_link_bitmap); ^~~~~~~~~~~~~~~~~~~~ .../dpdk/drivers/net/ipn3ke/ipn3ke_representor.c:388:46: note: format string is defined here IPN3KE_AFU_PMD_DEBUG("line_link_bitmap is %lx\n", line_link_bitmap); ~~^ %llx cc1: all warnings being treated as errors [2] .../dpdk/drivers/raw/ifpga_rawdev/base/opae_intel_max10.c:6:10: fatal error: libfdt.h: No such file or directory #include <libfdt.h> ^~~~~~~~~~ [3] /usr/bin/ld: ipn3ke_representor.o: in function `ipn3ke_rpst_init': ipn3ke_representor.c:(.text+0xc8b): undefined reference to `pthread_create' /usr/bin/ld: ipn3ke_representor.c:(.text+0xca8): undefined reference to `pthread_cancel' /usr/bin/ld: ipn3ke_representor.c:(.text+0xcbe): undefined reference to `pthread_join' /usr/bin/ld: ipn3ke_representor.o: in function `ipn3ke_rpst_uninit': ipn3ke_representor.c:(.text+0xd6b): undefined reference to `pthread_create' /usr/bin/ld: ipn3ke_representor.c:(.text+0xd88): undefined reference to `pthread_cancel' /usr/bin/ld: ipn3ke_representor.c:(.text+0xd9e): undefined reference to `pthread_join' collect2: error: ld returned 1 exit status /usr/bin/ld: ipn3ke_representor.o: in function `ipn3ke_rpst_init': ipn3ke_representor.c:(.text+0xc8b): undefined reference to `pthread_create' /usr/bin/ld: ipn3ke_representor.c:(.text+0xca8): undefined reference to `pthread_cancel' /usr/bin/ld: ipn3ke_representor.c:(.text+0xcbe): undefined reference to `pthread_join' /usr/bin/ld: ipn3ke_representor.o: in function `ipn3ke_rpst_uninit': ipn3ke_representor.c:(.text+0xd6b): undefined reference to `pthread_create' /usr/bin/ld: ipn3ke_representor.c:(.text+0xd88): undefined reference to `pthread_cancel' /usr/bin/ld: ipn3ke_representor.c:(.text+0xd9e): undefined reference to `pthread_join' collect2: error: ld returned 1 exit status