| /kernel/linux/linux-5.10/Documentation/arm/ |
| D | kernel_mode_neon.rst | 2 Kernel mode NEON 7 * Use only NEON instructions, or VFP instructions that don't rely on support 9 * Isolate your NEON code in a separate compilation unit, and compile it with 10 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp' 12 NEON code 13 * Don't sleep in your NEON code, and be aware that it will be executed with 19 It is possible to use NEON instructions (and in some cases, VFP instructions) in 20 code that runs in kernel mode. However, for performance reasons, the NEON/VFP 24 may call schedule()], as NEON or VFP instructions will be executed in a 30 The NEON/VFP register file is managed using lazy preserve (on UP systems) and [all …]
|
| /kernel/linux/linux-6.6/Documentation/arch/arm/ |
| D | kernel_mode_neon.rst | 2 Kernel mode NEON 7 * Use only NEON instructions, or VFP instructions that don't rely on support 9 * Isolate your NEON code in a separate compilation unit, and compile it with 10 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp' 12 NEON code 13 * Don't sleep in your NEON code, and be aware that it will be executed with 19 It is possible to use NEON instructions (and in some cases, VFP instructions) in 20 code that runs in kernel mode. However, for performance reasons, the NEON/VFP 24 may call schedule()], as NEON or VFP instructions will be executed in a 30 The NEON/VFP register file is managed using lazy preserve (on UP systems) and [all …]
|
| /kernel/linux/linux-6.6/arch/arm/crypto/ |
| D | Makefile | 9 obj-$(CONFIG_CRYPTO_SHA1_ARM_NEON) += sha1-arm-neon.o 13 obj-$(CONFIG_CRYPTO_BLAKE2B_NEON) += blake2b-neon.o 14 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o 16 obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o 17 obj-$(CONFIG_CRYPTO_CURVE25519_NEON) += curve25519-neon.o 29 sha1-arm-neon-y := sha1-armv7-neon.o sha1_neon_glue.o 30 sha256-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha256_neon_glue.o 31 sha256-arm-y := sha256-core.o sha256_glue.o $(sha256-arm-neon-y) 32 sha512-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha512-neon-glue.o 33 sha512-arm-y := sha512-core.o sha512-glue.o $(sha512-arm-neon-y) [all …]
|
| D | Kconfig | 6 tristate "Public key crypto: Curve25519 (NEON)" 14 - NEON (Advanced SIMD) extensions 17 tristate "Hash functions: GHASH (PMULL/NEON/ARMv8 Crypto Extensions)" 29 - NEON (Advanced SIMD) extensions 35 uses the vmull.p8 instruction that is part of the basic NEON ISA. 38 tristate "Hash functions: NHPoly1305 (NEON)" 45 - NEON (Advanced SIMD) extensions 48 tristate "Hash functions: Poly1305 (NEON)" 55 - NEON (Advanced SIMD) extensions 66 BLAKE2b, but slower than the NEON implementation of BLAKE2b. [all …]
|
| D | blake2b-neon-glue.c | 3 * BLAKE2b digest algorithm, NEON accelerated 15 #include <asm/neon.h> 71 BLAKE2B_ALG("blake2b-160", "blake2b-160-neon", BLAKE2B_160_HASH_SIZE), 72 BLAKE2B_ALG("blake2b-256", "blake2b-256-neon", BLAKE2B_256_HASH_SIZE), 73 BLAKE2B_ALG("blake2b-384", "blake2b-384-neon", BLAKE2B_384_HASH_SIZE), 74 BLAKE2B_ALG("blake2b-512", "blake2b-512-neon", BLAKE2B_512_HASH_SIZE), 95 MODULE_DESCRIPTION("BLAKE2b digest algorithm, NEON accelerated"); 99 MODULE_ALIAS_CRYPTO("blake2b-160-neon"); 101 MODULE_ALIAS_CRYPTO("blake2b-256-neon"); 103 MODULE_ALIAS_CRYPTO("blake2b-384-neon"); [all …]
|
| D | chacha-glue.c | 3 * ARM NEON accelerated ChaCha and XChaCha stream ciphers, 20 #include <asm/neon.h> 111 bool neon) in chacha_stream_xor() argument 127 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in chacha_stream_xor() 143 static int do_chacha(struct skcipher_request *req, bool neon) in do_chacha() argument 148 return chacha_stream_xor(req, ctx, req->iv, neon); in do_chacha() 161 static int do_xchacha(struct skcipher_request *req, bool neon) in do_xchacha() argument 171 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in do_xchacha() 182 return chacha_stream_xor(req, &subctx, real_iv, neon); in do_xchacha() 247 .base.cra_driver_name = "chacha20-neon", [all …]
|
| D | sha512-neon-glue.c | 3 * sha512-neon-glue.c - accelerated SHA-384/512 for ARM NEON 16 #include <asm/neon.h> 20 MODULE_ALIAS_CRYPTO("sha384-neon"); 21 MODULE_ALIAS_CRYPTO("sha512-neon"); 72 .cra_driver_name = "sha384-neon", 87 .cra_driver_name = "sha512-neon",
|
| D | nhpoly1305-neon-glue.c | 4 * (NEON accelerated version) 9 #include <asm/neon.h> 39 .base.cra_driver_name = "nhpoly1305-neon", 67 MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function (NEON-accelerated)"); 71 MODULE_ALIAS_CRYPTO("nhpoly1305-neon");
|
| /kernel/linux/linux-6.6/arch/arm64/crypto/ |
| D | Makefile | 20 obj-$(CONFIG_CRYPTO_SM3_NEON) += sm3-neon.o 21 sm3-neon-y := sm3-neon-glue.o sm3-neon-core.o 38 obj-$(CONFIG_CRYPTO_SM4_ARM64_NEON_BLK) += sm4-neon.o 39 sm4-neon-y := sm4-neon-glue.o sm4-neon-core.o 59 obj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o 60 aes-neon-blk-y := aes-glue-neon.o aes-neon.o 68 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o 69 chacha-neon-y := chacha-neon-core.o chacha-neon-glue.o 71 obj-$(CONFIG_CRYPTO_POLY1305_NEON) += poly1305-neon.o 72 poly1305-neon-y := poly1305-core.o poly1305-glue.o [all …]
|
| D | Kconfig | 19 tristate "Hash functions: NHPoly1305 (NEON)" 26 - NEON (Advanced SIMD) extensions 29 tristate "Hash functions: Poly1305 (NEON)" 37 - NEON (Advanced SIMD) extensions 100 tristate "Hash functions: SM3 (NEON)" 108 - NEON (Advanced SIMD) extensions 172 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" 186 - NEON (Advanced SIMD) extensions 189 tristate "Ciphers: ChaCha (NEON)" 199 - NEON (Advanced SIMD) extensions [all …]
|
| D | nhpoly1305-neon-glue.c | 4 * (ARM64 NEON accelerated version) 9 #include <asm/neon.h> 39 .base.cra_driver_name = "nhpoly1305-neon", 67 MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function (NEON-accelerated)"); 71 MODULE_ALIAS_CRYPTO("nhpoly1305-neon");
|
| D | chacha-neon-glue.c | 2 * ARM NEON and scalar accelerated ChaCha and XChaCha stream ciphers, 31 #include <asm/neon.h> 166 .base.cra_driver_name = "chacha20-neon", 182 .base.cra_driver_name = "xchacha20-neon", 198 .base.cra_driver_name = "xchacha12-neon", 235 MODULE_DESCRIPTION("ChaCha and XChaCha stream ciphers (NEON accelerated)"); 239 MODULE_ALIAS_CRYPTO("chacha20-neon"); 241 MODULE_ALIAS_CRYPTO("xchacha20-neon"); 243 MODULE_ALIAS_CRYPTO("xchacha12-neon");
|
| /kernel/linux/linux-5.10/arch/arm/crypto/ |
| D | Makefile | 9 obj-$(CONFIG_CRYPTO_SHA1_ARM_NEON) += sha1-arm-neon.o 12 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o 14 obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o 15 obj-$(CONFIG_CRYPTO_CURVE25519_NEON) += curve25519-neon.o 27 sha1-arm-neon-y := sha1-armv7-neon.o sha1_neon_glue.o 28 sha256-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha256_neon_glue.o 29 sha256-arm-y := sha256-core.o sha256_glue.o $(sha256-arm-neon-y) 30 sha512-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha512-neon-glue.o 31 sha512-arm-y := sha512-core.o sha512-glue.o $(sha512-arm-neon-y) 38 chacha-neon-y := chacha-scalar-core.o chacha-glue.o [all …]
|
| D | Kconfig | 21 tristate "SHA1 digest algorithm (ARM NEON)" 28 using optimized ARM NEON assembly, when NEON instructions are 50 tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)" 55 using optimized ARM assembler and NEON, when available. 58 tristate "SHA-384/512 digest algorithm (ARM-asm and NEON)" 63 using optimized ARM assembler and NEON, when available. 74 blocks, the NEON bit-sliced implementation is usually faster. 82 tristate "Bit sliced AES using NEON instructions" 90 Use a faster and more secure NEON based implementation of AES in CBC, 110 tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions" [all …]
|
| D | chacha-glue.c | 3 * ARM NEON accelerated ChaCha and XChaCha stream ciphers, 20 #include <asm/neon.h> 110 bool neon) in chacha_stream_xor() argument 126 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in chacha_stream_xor() 142 static int do_chacha(struct skcipher_request *req, bool neon) in do_chacha() argument 147 return chacha_stream_xor(req, ctx, req->iv, neon); in do_chacha() 160 static int do_xchacha(struct skcipher_request *req, bool neon) in do_xchacha() argument 170 if (!IS_ENABLED(CONFIG_KERNEL_MODE_NEON) || !neon) { in do_xchacha() 181 return chacha_stream_xor(req, &subctx, real_iv, neon); in do_xchacha() 246 .base.cra_driver_name = "chacha20-neon", [all …]
|
| D | sha512-neon-glue.c | 3 * sha512-neon-glue.c - accelerated SHA-384/512 for ARM NEON 16 #include <asm/neon.h> 20 MODULE_ALIAS_CRYPTO("sha384-neon"); 21 MODULE_ALIAS_CRYPTO("sha512-neon"); 74 .cra_driver_name = "sha384-neon", 89 .cra_driver_name = "sha512-neon",
|
| D | nhpoly1305-neon-glue.c | 4 * (NEON accelerated version) 9 #include <asm/neon.h> 46 .base.cra_driver_name = "nhpoly1305-neon", 74 MODULE_DESCRIPTION("NHPoly1305 ε-almost-∆-universal hash function (NEON-accelerated)"); 78 MODULE_ALIAS_CRYPTO("nhpoly1305-neon");
|
| /kernel/linux/linux-5.10/arch/arm64/crypto/ |
| D | Makefile | 41 obj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o 42 aes-neon-blk-y := aes-glue-neon.o aes-neon.o 50 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o 51 chacha-neon-y := chacha-neon-core.o chacha-neon-glue.o 53 obj-$(CONFIG_CRYPTO_POLY1305_NEON) += poly1305-neon.o 54 poly1305-neon-y := poly1305-core.o poly1305-glue.o 57 obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o 58 nhpoly1305-neon-y := nh-neon-core.o nhpoly1305-neon-glue.o 63 obj-$(CONFIG_CRYPTO_AES_ARM64_BS) += aes-neon-bs.o 64 aes-neon-bs-y := aes-neonbs-core.o aes-neonbs-glue.o
|
| D | chacha-neon-glue.c | 2 * ARM NEON and scalar accelerated ChaCha and XChaCha stream ciphers, 31 #include <asm/neon.h> 166 .base.cra_driver_name = "chacha20-neon", 182 .base.cra_driver_name = "xchacha20-neon", 198 .base.cra_driver_name = "xchacha12-neon", 235 MODULE_DESCRIPTION("ChaCha and XChaCha stream ciphers (NEON accelerated)"); 239 MODULE_ALIAS_CRYPTO("chacha20-neon"); 241 MODULE_ALIAS_CRYPTO("xchacha20-neon"); 243 MODULE_ALIAS_CRYPTO("xchacha12-neon");
|
| /kernel/linux/linux-5.10/arch/arm/include/asm/ |
| D | neon.h | 3 * linux/arch/arm/include/asm/neon.h 16 * using NEON code /and/ calling the kernel_neon_begin() function from the same 18 * generating(1) NEON instructions outside of these begin/end functions, the 19 * only supported way of using NEON code in the kernel is by isolating it in a 23 * (1) Current GCC (4.7) might generate NEON instructions at O3 level if 24 * -mpfu=neon is set. 28 BUILD_BUG_ON_MSG(1, "kernel_neon_begin() called from NEON code")
|
| /kernel/linux/linux-6.6/arch/arm/include/asm/ |
| D | neon.h | 3 * linux/arch/arm/include/asm/neon.h 16 * using NEON code /and/ calling the kernel_neon_begin() function from the same 18 * generating(1) NEON instructions outside of these begin/end functions, the 19 * only supported way of using NEON code in the kernel is by isolating it in a 23 * (1) Current GCC (4.7) might generate NEON instructions at O3 level if 24 * -mpfu=neon is set. 28 BUILD_BUG_ON_MSG(1, "kernel_neon_begin() called from NEON code")
|
| /kernel/linux/linux-5.10/lib/raid6/test/ |
| D | Makefile | 29 CFLAGS += -I../../../arch/arm/include -mfpu=neon 44 OBJS += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o 76 neon1.c: neon.uc ../unroll.awk 77 $(AWK) ../unroll.awk -vN=1 < neon.uc > $@ 79 neon2.c: neon.uc ../unroll.awk 80 $(AWK) ../unroll.awk -vN=2 < neon.uc > $@ 82 neon4.c: neon.uc ../unroll.awk 83 $(AWK) ../unroll.awk -vN=4 < neon.uc > $@ 85 neon8.c: neon.uc ../unroll.awk 86 $(AWK) ../unroll.awk -vN=8 < neon.uc > $@ [all …]
|
| /kernel/linux/linux-6.6/lib/raid6/ |
| D | neon.c | 3 * linux/lib/raid6/neon.c - RAID6 syndrome calculation using ARM NEON intrinsics 11 #include <asm/neon.h> 20 * from the actual implementations in neonN.c (generated from neon.uc by 22 * - the actual implementations use NEON intrinsics, and the GCC support header 24 * - the neonN.c files are compiled with -mfpu=neon and optimization enabled, 25 * and we have to make sure that we never use *any* NEON/VFP instructions
|
| /kernel/linux/linux-5.10/lib/raid6/ |
| D | neon.c | 3 * linux/lib/raid6/neon.c - RAID6 syndrome calculation using ARM NEON intrinsics 11 #include <asm/neon.h> 20 * from the actual implementations in neonN.c (generated from neon.uc by 22 * - the actual implementations use NEON intrinsics, and the GCC support header 24 * - the neonN.c files are compiled with -mfpu=neon and optimization enabled, 25 * and we have to make sure that we never use *any* NEON/VFP instructions
|
| /kernel/linux/linux-6.6/lib/raid6/test/ |
| D | Makefile | 30 CFLAGS += -I../../../arch/arm/include -mfpu=neon 61 OBJS += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o 90 neon1.c: neon.uc ../unroll.awk 91 $(AWK) ../unroll.awk -vN=1 < neon.uc > $@ 93 neon2.c: neon.uc ../unroll.awk 94 $(AWK) ../unroll.awk -vN=2 < neon.uc > $@ 96 neon4.c: neon.uc ../unroll.awk 97 $(AWK) ../unroll.awk -vN=4 < neon.uc > $@ 99 neon8.c: neon.uc ../unroll.awk 100 $(AWK) ../unroll.awk -vN=8 < neon.uc > $@ [all …]
|