162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# linux/arch/arm64/crypto/Makefile
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci# Copyright (C) 2014 Linaro Ltd <ard.biesheuvel@linaro.org>
662306a36Sopenharmony_ci#
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA1_ARM64_CE) += sha1-ce.o
962306a36Sopenharmony_cisha1-ce-y := sha1-ce-glue.o sha1-ce-core.o
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA2_ARM64_CE) += sha2-ce.o
1262306a36Sopenharmony_cisha2-ce-y := sha2-ce-glue.o sha2-ce-core.o
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA512_ARM64_CE) += sha512-ce.o
1562306a36Sopenharmony_cisha512-ce-y := sha512-ce-glue.o sha512-ce-core.o
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA3_ARM64) += sha3-ce.o
1862306a36Sopenharmony_cisha3-ce-y := sha3-ce-glue.o sha3-ce-core.o
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM3_NEON) += sm3-neon.o
2162306a36Sopenharmony_cism3-neon-y := sm3-neon-glue.o sm3-neon-core.o
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM3_ARM64_CE) += sm3-ce.o
2462306a36Sopenharmony_cism3-ce-y := sm3-ce-glue.o sm3-ce-core.o
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_ARM64_CE) += sm4-ce-cipher.o
2762306a36Sopenharmony_cism4-ce-cipher-y := sm4-ce-cipher-glue.o sm4-ce-cipher-core.o
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_ARM64_CE_BLK) += sm4-ce.o
3062306a36Sopenharmony_cism4-ce-y := sm4-ce-glue.o sm4-ce-core.o
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_ARM64_CE_CCM) += sm4-ce-ccm.o
3362306a36Sopenharmony_cism4-ce-ccm-y := sm4-ce-ccm-glue.o sm4-ce-ccm-core.o
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_ARM64_CE_GCM) += sm4-ce-gcm.o
3662306a36Sopenharmony_cism4-ce-gcm-y := sm4-ce-gcm-glue.o sm4-ce-gcm-core.o
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_ARM64_NEON_BLK) += sm4-neon.o
3962306a36Sopenharmony_cism4-neon-y := sm4-neon-glue.o sm4-neon-core.o
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_GHASH_ARM64_CE) += ghash-ce.o
4262306a36Sopenharmony_cighash-ce-y := ghash-ce-glue.o ghash-ce-core.o
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_POLYVAL_ARM64_CE) += polyval-ce.o
4562306a36Sopenharmony_cipolyval-ce-y := polyval-ce-glue.o polyval-ce-core.o
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CRCT10DIF_ARM64_CE) += crct10dif-ce.o
4862306a36Sopenharmony_cicrct10dif-ce-y := crct10dif-ce-core.o crct10dif-ce-glue.o
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64_CE) += aes-ce-cipher.o
5162306a36Sopenharmony_ciaes-ce-cipher-y := aes-ce-core.o aes-ce-glue.o
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64_CE_CCM) += aes-ce-ccm.o
5462306a36Sopenharmony_ciaes-ce-ccm-y := aes-ce-ccm-glue.o aes-ce-ccm-core.o
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64_CE_BLK) += aes-ce-blk.o
5762306a36Sopenharmony_ciaes-ce-blk-y := aes-glue-ce.o aes-ce.o
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o
6062306a36Sopenharmony_ciaes-neon-blk-y := aes-glue-neon.o aes-neon.o
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA256_ARM64) += sha256-arm64.o
6362306a36Sopenharmony_cisha256-arm64-y := sha256-glue.o sha256-core.o
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA512_ARM64) += sha512-arm64.o
6662306a36Sopenharmony_cisha512-arm64-y := sha512-glue.o sha512-core.o
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o
6962306a36Sopenharmony_cichacha-neon-y := chacha-neon-core.o chacha-neon-glue.o
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_POLY1305_NEON) += poly1305-neon.o
7262306a36Sopenharmony_cipoly1305-neon-y := poly1305-core.o poly1305-glue.o
7362306a36Sopenharmony_ciAFLAGS_poly1305-core.o += -Dpoly1305_init=poly1305_init_arm64
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o
7662306a36Sopenharmony_cinhpoly1305-neon-y := nh-neon-core.o nhpoly1305-neon-glue.o
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64) += aes-arm64.o
7962306a36Sopenharmony_ciaes-arm64-y := aes-cipher-core.o aes-cipher-glue.o
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_ARM64_BS) += aes-neon-bs.o
8262306a36Sopenharmony_ciaes-neon-bs-y := aes-neonbs-core.o aes-neonbs-glue.o
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciquiet_cmd_perlasm = PERLASM $@
8562306a36Sopenharmony_ci      cmd_perlasm = $(PERL) $(<) void $(@)
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci$(obj)/%-core.S: $(src)/%-armv8.pl
8862306a36Sopenharmony_ci	$(call cmd,perlasm)
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci$(obj)/sha256-core.S: $(src)/sha512-armv8.pl
9162306a36Sopenharmony_ci	$(call cmd,perlasm)
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciclean-files += poly1305-core.S sha256-core.S sha512-core.S
94