> -----Original Message-----
> From: Bruce Richardson [mailto:bruce.richard...@intel.com]
> Sent: Thursday, October 24, 2019 21:09
> To: Pei, Andy <andy....@intel.com>
> Cc: dev@dpdk.org; Xu, Rosen <rosen...@intel.com>; Zhang, Tianfei
> <tianfei.zh...@intel.com>; Ye, Xiaolong <xiaolong...@intel.com>; Zhang, Qi
> Z <qi.z.zh...@intel.com>; Yigit, Ferruh <ferruh.yi...@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.zh...@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.zh...@intel.com>
> > Signed-off-by: Andy Pei <andy....@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.richard...@intel.com>
Thanks a lot.