Skip to content

Commit cdbcdc5

Browse files
wathsalavtmonjalo
authored andcommitted
config/arm: add Arm Neoverse N3 SoC
Add Arm Neoverse N3 part number to build configuration. Signed-off-by: Wathsala Vithanage <[email protected]> Reviewed-by: Dhruv Tripathi <[email protected]>
1 parent 990b065 commit cdbcdc5

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

config/arm/meson.build

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,26 @@ part_number_config_arm = {
116116
['RTE_MAX_LCORE', 144],
117117
['RTE_MAX_NUMA_NODES', 2]
118118
]
119+
},
120+
'0xd8e': {
121+
# Only when -march=armv9-a+wfxt is used will the WFET
122+
# feature be compiled with armv9 instructions.
123+
# However, +wfxt is not supported by GCC at the moment.
124+
# Although armv9-a is the fitting version of Arm ISA for
125+
# Neoverse N3, it cannot be used when enabling wfxt for
126+
# the above reasons.
127+
# The workaround for this is to use armv8.7-a, which
128+
# doesn't require +wfxt for binutils version 2.36 or greater.
129+
'march': 'armv8.7-a',
130+
'march_features': ['sve2'],
131+
'fallback_march': 'armv8.5-a',
132+
'flags': [
133+
['RTE_MACHINE', '"neoverse-n3"'],
134+
['RTE_ARM_FEATURE_ATOMICS', true],
135+
['RTE_ARM_FEATURE_WFXT', true],
136+
['RTE_MAX_LCORE', 192],
137+
['RTE_MAX_NUMA_NODES', 2]
138+
]
119139
}
120140
}
121141
implementer_arm = {
@@ -572,6 +592,13 @@ soc_n2 = {
572592
'numa': false
573593
}
574594

595+
soc_n3 = {
596+
'description': 'Arm Neoverse N3',
597+
'implementer': '0x41',
598+
'part_number': '0xd8e',
599+
'numa': false
600+
}
601+
575602
soc_odyssey = {
576603
'description': 'Marvell Odyssey',
577604
'implementer': '0x41',
@@ -699,6 +726,7 @@ socs = {
699726
'kunpeng930': soc_kunpeng930,
700727
'n1sdp': soc_n1sdp,
701728
'n2': soc_n2,
729+
'n3': soc_n3,
702730
'odyssey' : soc_odyssey,
703731
'stingray': soc_stingray,
704732
'thunderx2': soc_thunderx2,
@@ -852,7 +880,7 @@ if update_flags
852880
if part_number_config.get('force_march', false)
853881
candidate_march = part_number_config['march']
854882
else
855-
supported_marchs = ['armv9-a', 'armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
883+
supported_marchs = ['armv9-a', 'armv8.7-a', 'armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
856884
'armv8.2-a', 'armv8.1-a', 'armv8-a']
857885
check_compiler_support = false
858886
foreach supported_march: supported_marchs

0 commit comments

Comments
 (0)