On 7/2/2025 10:09 AM, Feifei Wang wrote:
> From: Yi Chen <chenyi...@huawei.com>
> 
> 
> The meson.build file is added to this patch to enable
> 
> the hinic3 compilation function.
> 
> 
> 
> Signed-off-by: Yi Chen <chenyi...@huawei.com>
> 
> Reviewed-by: Xin Wang <wangxin...@h-partners.com>
> 
> Reviewed-by: Feifei Wang <wangfeife...@huawei.com>
> 
> ---
> 
>  doc/guides/nics/features/hinic3.ini | 61 +++++++++++++++++++++++++++++
> 
>  drivers/net/hinic3/base/meson.build | 50 +++++++++++++++++++++++
> 
>  drivers/net/hinic3/meson.build      | 33 ++++++++++++++++
> 
>  drivers/net/hinic3/mml/meson.build  | 33 ++++------------
> 
>  drivers/net/meson.build             |  1 +
> 
>  5 files changed, 153 insertions(+), 25 deletions(-)
> 
>  create mode 100644 doc/guides/nics/features/hinic3.ini
> 
>  create mode 100644 drivers/net/hinic3/base/meson.build
> 
>  create mode 100644 drivers/net/hinic3/meson.build
> 
> 
> 
> diff --git a/doc/guides/nics/features/hinic3.ini 
> b/doc/guides/nics/features/hinic3.ini
> 
> new file mode 100644
> 
> index 0000000000..f098eb0103
> 
> --- /dev/null
> 
> +++ b/doc/guides/nics/features/hinic3.ini
> 
> @@ -0,0 +1,61 @@
> 
> +;
> 
> +; Supported features of the 'hinic3' network poll mode driver.
> 
> +;
> 
> +; Refer to default.ini for the full list of available PMD features.
> 
> +;
> 
> +[Features]
> 
> +Speed capabilities   = Y
> 
> +Link speed configuration = Y
> 
> +Link status          = Y
> 
> +Link status event    = Y ?

why add one extra '?'

> 
> +Rx interrupt         = Y
> 
> +Queue start/stop     = Y
> 
> +Runtime Rx queue setup = Y
> 
> +Runtime Tx queue setup = Y
> 
> +Burst mode info      = Y
> 
> +Fast mbuf free       = Y
> 
> +Free Tx mbuf on demand = Y
> 
> +MTU update           = Y
> 
> +Scattered Rx         = Y
> 
> +TSO                  = Y
> 
> +LRO                  = Y
> 
> +Promiscuous mode     = Y
> 
> +Allmulticast mode    = Y
> 
> +Unicast MAC filter   = Y
> 
> +Multicast MAC filter = Y
> 
> +RSS hash             = Y
> 
> +RSS key update       = Y
> 
> +RSS reta update      = Y
> 
> +VLAN filter          = Y
> 
> +Flow control         = Y
> 
> +Traffic manager      = Y
> 
> +CRC offload          = Y
> 
> +FEC                  = Y
> 
> +L3 checksum offload  = Y
> 
> +L4 checksum offload  = Y
> 
> +Inner L3 checksum    = Y
> 
> +Inner L4 checksum    = Y
> 
> +Packet type parsing  = Y
> 
> +Basic stats          = Y
> 
> +Extended stats       = Y
> 
> +Stats per queue      = Y
> 
> +FW version           = Y
> 
> +Registers dump       = Y
> 
> +Module EEPROM dump   = Y
> 
> +Timesync             = Y
> 
> +Multiprocess aware   = Y
> 
> +Linux                = Y
> 
> +x86-64               = Y
> 
> +ARMv8                = Y
> 
> +
> 
> +[rte_flow items]
> 
> +any                  = Y
> 
> +eth                  = Y
> 
> +icmp                 = Y
> 
> +ipv4                 = Y
> 
> +ipv6                 = Y
> 
> +tcp                  = Y
> 
> +udp                  = Y
> 
> +vxlan                = Y
> 
> +[rte_flow actions]
> 
> +queue                = Y
> 
> diff --git a/drivers/net/hinic3/base/meson.build 
> b/drivers/net/hinic3/base/meson.build
> 
> new file mode 100644
> 
> index 0000000000..b6a3a6cfe7
> 
> --- /dev/null
> 
> +++ b/drivers/net/hinic3/base/meson.build
> 
> @@ -0,0 +1,50 @@
> 
> +# SPDX-License-Identifier: BSD-3-Clause
> 
> +# Copyright(c) 2025 Huawei Technologies Co., Ltd
> 
> +
> 
> +sources = files(
> 
> +        'hinic3_cmdq.c',
> 
> +        'hinic3_eqs.c',
> 
> +        'hinic3_hw_cfg.c',
> 
> +        'hinic3_hw_comm.c',
> 
> +        'hinic3_hwdev.c',
> 
> +        'hinic3_hwif.c',
> 
> +        'hinic3_mbox.c',
> 
> +        'hinic3_mgmt.c',
> 
> +        'hinic3_nic_cfg.c',
> 
> +        'hinic3_nic_event.c',
> 
> +        'hinic3_wq.c',
> 
> +)
> 
> +
> 
> +extra_flags = []
> 
> +
> 
> +# The driver runs only on arch64 machine, remove 32bit warnings
> 
> +if not dpdk_conf.get('RTE_ARCH_64')
> 
> +    extra_flags += [
> 
> +            '-Wno-int-to-pointer-cast',
> 
> +            '-Wno-pointer-to-int-cast',
> 
> +    ]
> 
> +endif
> 
> +
> 
> +foreach flag: extra_flags
> 
> +    if cc.has_argument(flag)
> 
> +        cflags += flag
> 
> +    endif
> 
> +endforeach
> 
> +
> 
> +deps += ['hash']
> 
> +c_args = cflags
> 
> +includes += include_directories('../')
> 
> +
> 
> +base_lib = static_library(
> 
> +    'spnic_base',
> 
> +    sources,
> 
> +    dependencies: [
> 
> +        static_rte_eal,
> 
> +        static_rte_ethdev,
> 
> +        static_rte_bus_pci,
> 
> +        static_rte_hash,
> 
> +    ],
> 
> +    include_directories: includes,
> 
> +    c_args: c_args,
> 
> +)
> 
> +base_objs = base_lib.extract_all_objects()
> 
> diff --git a/drivers/net/hinic3/meson.build b/drivers/net/hinic3/meson.build
> 
> new file mode 100644
> 
> index 0000000000..42fb5bc194
> 
> --- /dev/null
> 
> +++ b/drivers/net/hinic3/meson.build
> 
> @@ -0,0 +1,33 @@
> 
> +# SPDX-License-Identifier: BSD-3-Clause
> 
> +# Copyright(c) 2025 Huawei Technologies Co., Ltd
> 
> +
> 
> +if not is_linux
> 
> +    build = false
> 
> +    reason = 'only supported on Linux'
> 
> +    subdir_done()
> 
> +endif
> 
> +
> 
> +if (arch_subdir != 'x86' and arch_subdir != 'arm'
> 
> +        or not dpdk_conf.get('RTE_ARCH_64'))
> 
> +    build = false
> 
> +    reason = 'only supported on x86_64 and aarch64'
> 
> +    subdir_done()
> 
> +endif
> 
> +
> 
> +cflags += ['-DHW_CONVERT_ENDIAN']
> 
> +
> 
> +subdir('base')
> 
> +subdir('mml')
> 
> +objs = [base_objs] + [mml_objs]
> 
> +
> 
> +sources = files(
> 
> +        'hinic3_ethdev.c',
> 
> +        'hinic3_fdir.c',
> 
> +        'hinic3_flow.c',
> 
> +        'hinic3_nic_io.c',
> 
> +        'hinic3_rx.c',
> 
> +        'hinic3_tx.c',
> 
> +)
> 
> +
> 
> +includes += include_directories('base')
> 
> +includes += include_directories('mml')
> 
> diff --git a/drivers/net/hinic3/mml/meson.build 
> b/drivers/net/hinic3/mml/meson.build
> 
> index f8d2650d8d..67bba4f067 100644
> 
> --- a/drivers/net/hinic3/mml/meson.build
> 
> +++ b/drivers/net/hinic3/mml/meson.build
> 
> @@ -2,36 +2,19 @@
> 
>  # Copyright(c) 2025 Huawei Technologies Co., Ltd
> 
>  
> 
>  sources = files(
> 
> -    'hinic3_dbg.c',
> 
> -    'hinic3_mml_cmd.c',
> 
> -    'hinic3_mml_ioctl.c',
> 
> -    'hinic3_mml_lib.c',
> 
> -    'hinic3_mml_main.c',
> 
> -    'hinic3_mml_queue.c',
> 
> +        'hinic3_dbg.c',

please modify corresponding commit where the problem introduced.

> 
> +        'hinic3_mml_cmd.c',
> 
> +        'hinic3_mml_ioctl.c',
> 
> +        'hinic3_mml_lib.c',
> 
> +        'hinic3_mml_main.c',
> 
> +        'hinic3_mml_queue.c',
> 
>  )
> 
>  
> 
> -extra_flags = [
> 
> -    '-Wno-cast-qual',
> 
> -    '-Wno-format',
> 
> -    '-Wno-format-nonliteral',
> 
> -    '-Wno-format-security',
> 
> -    '-Wno-missing-braces',
> 
> -    '-Wno-missing-field-initializers',
> 
> -    '-Wno-missing-prototypes',
> 
> -    '-Wno-pointer-sign',
> 
> -    '-Wno-pointer-to-int-cast',
> 
> -    '-Wno-sign-compare',
> 
> -    '-Wno-strict-aliasing',
> 
> -    '-Wno-unused-parameter',
> 
> -    '-Wno-unused-value',
> 
> -    '-Wno-unused-variable',
> 
> -]
> 
> -
> 
>  # The driver runs only on arch64 machine, remove 32bit warnings
> 
>  if not dpdk_conf.get('RTE_ARCH_64')
> 
>      extra_flags += [
> 
> -        '-Wno-int-to-pointer-cast',
> 
> -        '-Wno-pointer-to-int-cast',
> 
> +            '-Wno-int-to-pointer-cast',
> 
> +            '-Wno-pointer-to-int-cast',
> 
>      ]
> 
>  endif
> 
>  
> 
> diff --git a/drivers/net/meson.build b/drivers/net/meson.build
> 
> index 61f8cddb30..2d32068ed2 100644
> 
> --- a/drivers/net/meson.build
> 
> +++ b/drivers/net/meson.build
> 
> @@ -23,6 +23,7 @@ drivers = [
> 
>          'failsafe',
> 
>          'gve',
> 
>          'hinic',
> 
> +        'hinic3',
> 
>          'hns3',
> 
>          'intel/e1000',
> 
>          'intel/fm10k',
> 

Reply via email to