1565829dbSWei Hu (Xavier)# SPDX-License-Identifier: BSD-3-Clause 253e6f86cSMin Hu (Connor)# Copyright(c) 2018-2021 Hisilicon Limited 3565829dbSWei Hu (Xavier) 4565829dbSWei Hu (Xavier)if not is_linux 5565829dbSWei Hu (Xavier) build = false 6565829dbSWei Hu (Xavier) reason = 'only supported on Linux' 7565829dbSWei Hu (Xavier) subdir_done() 8565829dbSWei Hu (Xavier)endif 9565829dbSWei Hu (Xavier) 10565829dbSWei Hu (Xavier)if arch_subdir != 'x86' and arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64') 11565829dbSWei Hu (Xavier) build = false 12135155a8SThomas Monjalon reason = 'only supported on x86_64 and aarch64' 13565829dbSWei Hu (Xavier) subdir_done() 14565829dbSWei Hu (Xavier)endif 15565829dbSWei Hu (Xavier) 164ad4b20aSBruce Richardsonsources = files( 174ad4b20aSBruce Richardson 'hns3_cmd.c', 1862e3ccc2SWei Hu (Xavier) 'hns3_dcb.c', 193988ab0eSWei Hu (Xavier) 'hns3_intr.c', 20565829dbSWei Hu (Xavier) 'hns3_ethdev.c', 21a5475d61SWei Hu (Xavier) 'hns3_ethdev_vf.c', 22fcba820dSWei Hu (Xavier) 'hns3_fdir.c', 23fcba820dSWei Hu (Xavier) 'hns3_flow.c', 24463e7489SWei Hu (Xavier) 'hns3_mbx.c', 25936eda25SWei Hu (Xavier) 'hns3_regs.c', 26c37ca66fSWei Hu (Xavier) 'hns3_rss.c', 27bba63669SWei Hu (Xavier) 'hns3_rxtx.c', 288839c5e2SWei Hu (Xavier) 'hns3_stats.c', 29c09c7847SChengwen Feng 'hns3_mp.c', 3038b539d9SMin Hu (Connor) 'hns3_tm.c', 314ad4b20aSBruce Richardson 'hns3_ptp.c', 32a4c7152dSHuisong Li 'hns3_common.c', 33635acdafSMin Hu (Connor) 'hns3_dump.c', 344ad4b20aSBruce Richardson) 3523d4b61fSWei Hu (Xavier) 3621b33542SChengwen Fengrequire_iova_in_mbuf = false 3721b33542SChengwen Feng 38*70cc4e1fSDavid Marchandannotate_locks = false 39*70cc4e1fSDavid Marchand 40565829dbSWei Hu (Xavier)deps += ['hash'] 41e31f123dSWei Hu (Xavier) 42e31f123dSWei Hu (Xavier)if arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64') 43e31f123dSWei Hu (Xavier) sources += files('hns3_rxtx_vec.c') 44699fa1d4SChengwen Feng 45699fa1d4SChengwen Feng # compile SVE when: 46699fa1d4SChengwen Feng # a. support SVE in minimum instruction set baseline 47699fa1d4SChengwen Feng # b. it's not minimum instruction set, but compiler support 48699fa1d4SChengwen Feng if dpdk_conf.has('RTE_HAS_SVE_ACLE') 49952ebaccSWei Hu (Xavier) sources += files('hns3_rxtx_vec_sve.c') 50699fa1d4SChengwen Feng elif cc.has_argument('-march=armv8.2-a+sve') and cc.check_header('arm_sve.h') 51699fa1d4SChengwen Feng cflags += ['-DRTE_HAS_SVE_ACLE=1'] 52699fa1d4SChengwen Feng sve_cflags = [] 53699fa1d4SChengwen Feng foreach flag: cflags 54699fa1d4SChengwen Feng if not (flag.startswith('-march=') or flag.startswith('-mcpu=') or flag.startswith('-mtune=')) 55699fa1d4SChengwen Feng sve_cflags += flag 56699fa1d4SChengwen Feng endif 57699fa1d4SChengwen Feng endforeach 58699fa1d4SChengwen Feng hns3_sve_lib = static_library('hns3_sve_lib', 59699fa1d4SChengwen Feng 'hns3_rxtx_vec_sve.c', 60699fa1d4SChengwen Feng dependencies: [static_rte_ethdev], 61699fa1d4SChengwen Feng include_directories: includes, 62699fa1d4SChengwen Feng c_args: [sve_cflags, '-march=armv8.2-a+sve']) 63699fa1d4SChengwen Feng objs += hns3_sve_lib.extract_objects('hns3_rxtx_vec_sve.c') 64952ebaccSWei Hu (Xavier) endif 65e31f123dSWei Hu (Xavier)endif 66