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

Xu, Rosen rosen.xu at intel.com
Fri Oct 25 03:16:56 CEST 2019



> -----Original Message-----
> From: Bruce Richardson [mailto:bruce.richardson at intel.com]
> Sent: Thursday, October 24, 2019 21:09
> To: Pei, Andy <andy.pei at intel.com>
> Cc: dev at dpdk.org; Xu, Rosen <rosen.xu at intel.com>; Zhang, Tianfei
> <tianfei.zhang at intel.com>; Ye, Xiaolong <xiaolong.ye at intel.com>; Zhang, Qi
> Z <qi.z.zhang at intel.com>; Yigit, Ferruh <ferruh.yigit at intel.com>
> Subject: Re: [PATCH v13 05/19] raw/ifpga/base: add device tree support
> 
> 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.

Okay, will remove it.

> >  	       '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?

Yes, we have checked it. And build it.

> > +	       '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>

Thanks a lot.


More information about the dev mailing list