Home
last modified time | relevance | path

Searched full:neon (Results 1 – 25 of 239) sorted by relevance

12345678910

/kernel/linux/linux-5.10/Documentation/arm/
Dkernel_mode_neon.rst2 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/
Dkernel_mode_neon.rst2 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/
DMakefile9 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 …]
DKconfig6 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 …]
Dblake2b-neon-glue.c3 * 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 …]
Dchacha-glue.c3 * 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 …]
Dsha512-neon-glue.c3 * 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",
Dnhpoly1305-neon-glue.c4 * (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/
DMakefile20 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 …]
DKconfig19 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 …]
Dnhpoly1305-neon-glue.c4 * (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");
Dchacha-neon-glue.c2 * 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/
DMakefile9 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 …]
DKconfig21 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 …]
Dchacha-glue.c3 * 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 …]
Dsha512-neon-glue.c3 * 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",
/kernel/linux/linux-5.10/arch/arm64/crypto/
DMakefile41 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
Dchacha-neon-glue.c2 * 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");
DKconfig96 tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
104 tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
111 tristate "Poly1305 hash function using scalar or NEON instructions"
117 tristate "NHPoly1305 hash function using NEON instructions (for Adiantum)"
122 tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm"
/kernel/linux/linux-5.10/arch/arm/include/asm/
Dneon.h3 * 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/
Dneon.h3 * 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/
DMakefile29 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-5.10/lib/raid6/
Dneon.c3 * 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/
Dneon.c3 * 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/
DMakefile30 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 …]

12345678910