arm: add nocrypto TUNE_FEATURE to complement crypto

Add a `nocrypto` TUNE_FEATURE option to `feature-arm-crypto.inc`
to explicitly disable ARM crypto extensions via GCC flags. This
provides an opposing state to the existing `crypto` feature,
enabling more explicit control over crypto-related tuning.

Some vendors ship cores without crypto support, and this change
allows disabling it without requiring extensive audits of
dependent code paths. This approach avoids the knock-on effects
caused when `nocrypto` is applied implicitly in the absence of
`crypto` in TUNE_FEATURES.

TUNECONFLICTS was added to prevent both features from being
enabled simultaneously. When both are added, the following error
is seen during build:

  Feature 'nocrypto' conflicts with 'crypto'.
  Feature 'crypto' conflicts with 'nocrypto'.

(From OE-Core rev: 51e0da4db61abcc546af216609f172204ddb17ab)

Signed-off-by: Jon Mason <jon.mason@arm.com>
Cc: Ryan Eatmon <reatmon@ti.com>
Cc: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jon Mason
2025-08-12 18:21:42 -04:00
committed by Richard Purdie
parent f92aafa056
commit fcc2ee6aa9

View File

@@ -3,3 +3,8 @@
TUNEVALID[crypto] = "Enable cryptographic instructions for ARMv8"
TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"
TUNECONFLICTS[crypto] = "nocrypto"
TUNEVALID[nocrypto] = "Disable cryptographic instructions for ARMv8"
TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'nocrypto', '+nocrypto', '', d)}"
TUNECONFLICTS[nocrypto] = "crypto"