[dpdk-dev] [PATCH v13 05/19] raw/ifpga/base: add device tree support

Bruce Richardson bruce.richardson at intel.com
Thu Oct 24 15:09:28 CEST 2019


On Thu, Oct 24, 2019 at 07:38:25PM +0800, Andy Pei wrote:
> From: Tianfei zhang <tianfei.zhang at intel.com>
> 
> In PAC N3000 card, this is a BMC chip which using MAX10 FPGA
> to manage the board configuration, like sensors, flash controller,
> QSFP, powers. And this is a SPI bus connected between A10 FPGA and
> MAX10, we can access the MAX10 registers over this SPI bus.
> 
> In BMC, there are about 19 sensors in MAX10 chip, including the FPGA
> core temperature, Board temperature, board current, voltage and so on.
> 
> We use DTB (Device tree table) to describe it. This DTB file is store
> in nor flash partition, which will flashed in Factory when the boards
> delivery to customers. And the same time, the customers can easy to
> customizate the BMC configuration like change the sensors.
> 
> Add device tree support by using libfdt library in Linux distribution.
> The end-user should pre-install the libfdt and libfdt-devel package
> before use DPDK on PAC N3000 Card.
> 
> For Centos 7.x: sudo yum install libfdt libfdt-devel
> For Ubuntu 18.04: sudo apt install libfdt-dev libfdt1
> 
> To eliminate build error, we currently do not compile raw/ifpga
> and net/ipn3ke. User should install libfdt and libfdt-devel first,
> modify config/common_linux, CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=n
> to CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=y, modify config/common_base,
> CONFIG_RTE_LIBRTE_IPN3KE_PMD=n to CONFIG_RTE_LIBRTE_IPN3KE_PMD=y.
> Then this function can work.
> 
> Signed-off-by: Tianfei zhang <tianfei.zhang at intel.com>
> Signed-off-by: Andy Pei <andy.pei at intel.com>
> ---
>  config/common_base                        |   2 +-
>  config/common_linux                       |   2 +-
>  drivers/meson.build                       |   6 +-
>  drivers/net/ipn3ke/meson.build            |  24 +++-
>  drivers/raw/ifpga/base/meson.build        |   2 +-
>  drivers/raw/ifpga/base/opae_intel_max10.c | 183 ++++++++++++++++++++++++++++++
>  drivers/raw/ifpga/base/opae_intel_max10.h |  10 ++
>  drivers/raw/ifpga/meson.build             |  25 ++--
>  mk/rte.app.mk                             |   2 +-
>  9 files changed, 235 insertions(+), 21 deletions(-)
> 
> diff --git a/config/common_base b/config/common_base
> index fef2f38..3c0ea7e 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -339,7 +339,7 @@ CONFIG_RTE_LIBRTE_IAVF_16BYTE_RX_DESC=n
>  #
>  # Compile burst-oriented IPN3KE PMD driver
>  #
> -CONFIG_RTE_LIBRTE_IPN3KE_PMD=y
> +CONFIG_RTE_LIBRTE_IPN3KE_PMD=n
>  
>  #
>  # Compile burst-oriented Mellanox ConnectX-3 (MLX4) PMD
> diff --git a/config/common_linux b/config/common_linux
> index a78b8c6..c5cf3d6 100644
> --- a/config/common_linux
> +++ b/config/common_linux
> @@ -73,4 +73,4 @@ CONFIG_RTE_LIBRTE_HNS3_PMD=y
>  # Compile PMD for Intel FPGA raw device
>  # To compile, CONFIG_RTE_EAL_VFIO should be enabled.
>  #
> -CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=y
> +CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=n
> diff --git a/drivers/meson.build b/drivers/meson.build
> index 4a1cb8b..7c0aed1 100644
> --- a/drivers/meson.build
> +++ b/drivers/meson.build
> @@ -9,12 +9,12 @@ endif
>  dpdk_driver_classes = ['common',
>  	       'bus',
>  	       'mempool', # depends on common and bus.
> -	       'net',     # depends on common, bus and mempool.
> +               'raw',     # depends on common and bus.
> +	       'net',     # depends on common, bus, mempool and raw (raw provide API for net driver).

The comment in brackets is unnecessary here, since that is what is implied
by saying that there is a dependency on net. Thinking about it more, I
think it would be useful in future to make this more concrete for
debugging, and specify what drivers in one set depend on elements in
another [assuming it's only one or two]. It's not as though all net drivers
depend on the rawdevs.

>  	       'crypto',  # depends on common, bus and mempool (net in future).
>  	       'compress', # depends on common, bus, mempool.
>  	       'event',   # depends on common, bus, mempool and net.
> -	       'baseband', # depends on common and bus.
> -	       'raw']     # depends on common, bus, mempool, net and event.

I assume that the comment here is incorrect, and that no rawdev does depend
on event drivers or net drivers? Have you checked each driver for such a
dependency?

> +	       'baseband'] # depends on common and bus.
>  
>  disabled_drivers = get_option('disable_drivers').split(',')
>

Assuming that the comment is incorrect, and that no existing rawdev driver
depends on a net or event driver, no issues with this meson change.

Acked-by: Bruce Richardson <bruce.richardson at intel.com>


More information about the dev mailing list