From fcc2ee6aa90f72a2fe29f13985c6054567b26b55 Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Tue, 12 Aug 2025 18:21:42 -0400 Subject: [PATCH] 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 Cc: Ryan Eatmon Cc: Khem Raj Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- meta/conf/machine/include/arm/feature-arm-crypto.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta/conf/machine/include/arm/feature-arm-crypto.inc b/meta/conf/machine/include/arm/feature-arm-crypto.inc index aade6ce08d..c1f5b1225d 100644 --- a/meta/conf/machine/include/arm/feature-arm-crypto.inc +++ b/meta/conf/machine/include/arm/feature-arm-crypto.inc @@ -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"