> On May 3, 2019, at 3:13 PM, Dharmik Thakkar <dharmik.thak...@arm.com> wrote: > > Hi Yongseok, > Thank you for the patch! I have tested it on Bluefield reference platform. It > works fine.
Thanks for your testing. > One observation: > Even though I used 'make config T=arm64-bluefield-linuxapp-gcc’, > at the end of the build process it said 'Build complete > [arm64-armv8a-linuxapp-gcc]’ The BlueField config stems from armv8a. Unlike Cavium hosts, RTE_MACHINE is still armv8a. Looks it is same for Broadcom's Stingray. > Tested-by: Dharmik Thakkar <dharmik.thak...@arm.com> > >> On May 3, 2019, at 7:28 AM, Yongseok Koh <ys...@mellanox.com> wrote: >> >> Per armv8 crypto extension support, make build always enable it by default >> as long as compiler supports the feature while meson build only enables it >> for 'default' machine of generic armv8 architecture. >> >> It is known that not all the armv8 platforms have the crypto extension. For >> example, Mellanox BlueField has a variant which doesn't have it. If crypto >> enabled binary runs on such a platform, rte_eal_init() fails. >> >> '+crypto' flag currently implies only '+aes' and '+sha2' and enabling it >> will generate the crypto instructions only when crypto intrinsics are used. >> For the devices supporting 8.2 crypto or newer, compiler could generate >> such instructions beyond intrinsics or asm code. For example, compiler can >> generate 3-way exclusive OR instructions if sha3 is supported. However, it >> has to be enabled by adding '+sha3' as of today. >> >> In DPDK, armv8 cryptodev is the only one which requires the crypto support. >> As it even uses external library of Marvell which is compiled out of DPDK >> with crypto support and there's run-time check for required cpuflags, >> crypto support can be disabled in DPDK. >> >> Cc: sta...@dpdk.org >> >> Signed-off-by: Yongseok Koh <ys...@mellanox.com> >> --- >> >> v2: >> * disable crypto support instead of having a build config >> >> config/arm/meson.build | 2 +- >> mk/machine/armv8a/rte.vars.mk | 2 +- >> 2 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/config/arm/meson.build b/config/arm/meson.build >> index 7fa6ed3105..abc8cf346c 100644 >> --- a/config/arm/meson.build >> +++ b/config/arm/meson.build >> @@ -74,7 +74,7 @@ flags_octeontx2_extra = [ >> ['RTE_USE_C11_MEM_MODEL', true]] >> >> machine_args_generic = [ >> - ['default', ['-march=armv8-a+crc+crypto']], >> + ['default', ['-march=armv8-a+crc']], >> ['native', ['-march=native']], >> ['0xd03', ['-mcpu=cortex-a53']], >> ['0xd04', ['-mcpu=cortex-a35']], >> diff --git a/mk/machine/armv8a/rte.vars.mk b/mk/machine/armv8a/rte.vars.mk >> index 8252efbb7b..5e3ffc3adf 100644 >> --- a/mk/machine/armv8a/rte.vars.mk >> +++ b/mk/machine/armv8a/rte.vars.mk >> @@ -28,4 +28,4 @@ >> # CPU_LDFLAGS = >> # CPU_ASFLAGS = >> >> -MACHINE_CFLAGS += -march=armv8-a+crc+crypto >> +MACHINE_CFLAGS += -march=armv8-a+crc >> -- >> 2.11.0 >> >