Skip to content

Commit

Permalink
config: disable armv8 crypto extension
Browse files Browse the repository at this point in the history
[ upstream commit e404de1 ]

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.

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
  • Loading branch information
yskoh-mellanox authored and kevintraynor committed Jun 21, 2019
1 parent d62ffd3 commit a4029ff
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion config/arm/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ arm_force_native_march = false
arm_force_default_march = (machine == 'default')

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']],
Expand Down
2 changes: 1 addition & 1 deletion mk/machine/armv8a/rte.vars.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@
# CPU_LDFLAGS =
# CPU_ASFLAGS =

MACHINE_CFLAGS += -march=armv8-a+crc+crypto
MACHINE_CFLAGS += -march=armv8-a+crc

0 comments on commit a4029ff

Please sign in to comment.