[dpdk-dev] [PATCH 1/2] config/arm: fix Hisilicon kunpeng920 SoC build

Lijun Ou oulijun at huawei.com
Wed Feb 3 13:46:35 CET 2021


From: Chengchang Tang <tangchengchang at huawei.com>

Because of the '9ca2f16' have merged, the current hns3
pmd driver can not be directly complied on the kunpeng920
server board. Therefore, we need to fix the meson build.
Besides, add kunpeng 920 SoC meson cross compile target.

Fixes: 9ca2f16faa7f ("config/arm: isolate generic build")

Signed-off-by: Chengchang Tang <tangchengchang at huawei.com>
Signed-off-by: Lijun Ou <oulijun at huawei.com>
---
 config/arm/arm64_kunpeng920_linux_gcc               | 19 +++++++++++++++++++
 config/arm/meson.build                              | 20 ++++++++++++++++++++
 doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst |  4 ++++
 3 files changed, 43 insertions(+)
 create mode 100644 config/arm/arm64_kunpeng920_linux_gcc

diff --git a/config/arm/arm64_kunpeng920_linux_gcc b/config/arm/arm64_kunpeng920_linux_gcc
new file mode 100644
index 0000000..3eeb2e9
--- /dev/null
+++ b/config/arm/arm64_kunpeng920_linux_gcc
@@ -0,0 +1,19 @@
+[binaries]
+c = 'aarch64-linux-gnu-gcc'
+cpp = 'aarch64-linux-gnu-cpp'
+ar = 'aarch64-linux-gnu-gcc-ar'
+strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv8-a'
+endian = 'little'
+
+[properties]
+implementer_id = '0x48'
+part_number = '0xd01'
+max_lcores = 128
+max_numa_nodes = 4
diff --git a/config/arm/meson.build b/config/arm/meson.build
index f948768..9b87f5a 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -133,6 +133,25 @@ implementer_cavium = {
 	}
 }
 
+implementer_hisilicon = {
+	'description': 'Hisilicon',
+	'flags': [
+		['RTE_USE_C11_MEM_MODEL', true],
+		['RTE_CACHE_LINE_SIZE', 128],
+		['RTE_MAX_NUMA_NODES', 4]
+	],
+	'part_number_config': {
+		'0xd01': {
+			'machine_args': ['-march=armv8.2-a+crypto',
+					 '-mtune=tsv110'],
+			'flag': [['RTE_MACHINE', '"kunpeng920"'],
+				 ['RTE_MAX_LCORE', 128],
+				 ['RTE_ARM_FEATURE_ATOMICS', true]
+			]
+		}
+	}
+}
+
 implementer_ampere = {
 	'description': 'Ampere Computing',
 	'flags': [
@@ -176,6 +195,7 @@ implementers = {
 	'generic': implementer_generic,
 	'0x41': implementer_arm,
 	'0x43': implementer_cavium,
+	'0x48': implementer_hisilicon,
 	'0x50': implementer_ampere,
 	'0x56': implementer_marvell,
 	'dpaa': implementer_dpaa
diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
index faaf24b..afe4f8e 100644
--- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
+++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
@@ -197,6 +197,7 @@ you may use various combinations of implementer/part number::
       'generic': Generic armv8
       '0x41':    Arm
       '0x43':    Cavium
+      '0x48':    Hisilicon
       '0x50':    Ampere Computing
       '0x56':    Marvell ARMADA
       'dpaa':    NXP DPAA
@@ -219,6 +220,9 @@ you may use various combinations of implementer/part number::
       '0xaf':    thunderx2t99
       '0xb2':    octeontx2
 
+   Supported part_numbers for 0x48:
+      '0xd01':    kunpeng920
+
    Supported part_numbers for 0x50:
       '0x0':     emag
 
-- 
2.7.4



More information about the dev mailing list