Home
last modified time | relevance | path

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

123456789

/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-4.19/Documentation/arm/
Dkernel_mode_neon.txt1 Kernel mode NEON
6 * Use only NEON instructions, or VFP instructions that don't rely on support
8 * Isolate your NEON code in a separate compilation unit, and compile it with
9 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp'
11 NEON code
12 * Don't sleep in your NEON code, and be aware that it will be executed with
18 It is possible to use NEON instructions (and in some cases, VFP instructions) in
19 code that runs in kernel mode. However, for performance reasons, the NEON/VFP
23 may call schedule()], as NEON or VFP instructions will be executed in a
29 The NEON/VFP register file is managed using lazy preserve (on UP systems) and
[all …]
/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"
88 Use a faster and more secure NEON based implementation of AES in CBC,
108 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",
Dnhpoly1305-neon-glue.c4 * (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");
Dsha256_neon_glue.c4 * using NEON instructions.
20 #include <asm/neon.h>
75 .cra_driver_name = "sha256-neon",
89 .cra_driver_name = "sha224-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");
Dnhpoly1305-neon-glue.c4 * (ARM64 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");
DKconfig95 tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions"
103 tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
110 tristate "Poly1305 hash function using scalar or NEON instructions"
116 tristate "NHPoly1305 hash function using NEON instructions (for Adiantum)"
121 tristate "AES in ECB/CBC/CTR/XTS modes using bit-sliced NEON algorithm"
/kernel/linux/linux-4.19/arch/arm/crypto/
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.
73 tristate "Bit sliced AES using NEON instructions"
79 Use a faster and more secure NEON based implementation of AES in CBC,
98 tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions"
106 uses the vmull.p8 instruction that is part of the basic NEON ISA.
[all …]
DMakefile9 obj-$(CONFIG_CRYPTO_SHA1_ARM_NEON) += sha1-arm-neon.o
12 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha20-neon.o
32 ifeq ($(call as-instr,.fpu crypto-neon-fp-armv8,y,n),y)
44 sha1-arm-neon-y := sha1-armv7-neon.o sha1_neon_glue.o
45 sha256-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha256_neon_glue.o
46 sha256-arm-y := sha256-core.o sha256_glue.o $(sha256-arm-neon-y)
47 sha512-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha512-neon-glue.o
48 sha512-arm-y := sha512-core.o sha512-glue.o $(sha512-arm-neon-y)
55 chacha20-neon-y := chacha20-neon-core.o chacha20-neon-glue.o
Dsha512-neon-glue.c2 * sha512-neon-glue.c - accelerated SHA-384/512 for ARM NEON
18 #include <asm/neon.h>
22 MODULE_ALIAS_CRYPTO("sha384-neon");
23 MODULE_ALIAS_CRYPTO("sha512-neon");
76 .cra_driver_name = "sha384-neon",
91 .cra_driver_name = "sha512-neon",
/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-4.19/arch/arm/include/asm/
Dneon.h2 * linux/arch/arm/include/asm/neon.h
19 * using NEON code /and/ calling the kernel_neon_begin() function from the same
21 * generating(1) NEON instructions outside of these begin/end functions, the
22 * only supported way of using NEON code in the kernel is by isolating it in a
26 * (1) Current GCC (4.7) might generate NEON instructions at O3 level if
27 * -mpfu=neon is set.
31 BUILD_BUG_ON_MSG(1, "kernel_neon_begin() called from NEON code")
/kernel/linux/linux-4.19/arch/arm64/crypto/
DMakefile47 obj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o
48 aes-neon-blk-y := aes-glue-neon.o aes-neon.o
56 obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha20-neon.o
57 chacha20-neon-y := chacha20-neon-core.o chacha20-neon-glue.o
62 obj-$(CONFIG_CRYPTO_AES_ARM64_BS) += aes-neon-bs.o
63 aes-neon-bs-y := aes-neonbs-core.o aes-neonbs-glue.o
/kernel/linux/linux-4.19/lib/raid6/test/
DMakefile27 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/test/
DMakefile27 CFLAGS += -I../../../arch/arm/include -mfpu=neon
42 OBJS += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o
74 neon1.c: neon.uc ../unroll.awk
75 $(AWK) ../unroll.awk -vN=1 < neon.uc > $@
77 neon2.c: neon.uc ../unroll.awk
78 $(AWK) ../unroll.awk -vN=2 < neon.uc > $@
80 neon4.c: neon.uc ../unroll.awk
81 $(AWK) ../unroll.awk -vN=4 < neon.uc > $@
83 neon8.c: neon.uc ../unroll.awk
84 $(AWK) ../unroll.awk -vN=8 < neon.uc > $@
[all …]
/kernel/linux/linux-4.19/lib/raid6/
Dneon.c2 * linux/lib/raid6/neon.c - RAID6 syndrome calculation using ARM NEON intrinsics
14 #include <asm/neon.h>
23 * from the actual implementations in neonN.c (generated from neon.uc by
25 * - the actual implementations use NEON intrinsics, and the GCC support header
27 * - the neonN.c files are compiled with -mfpu=neon and optimization enabled,
28 * and we have to make sure that we never use *any* NEON/VFP instructions
/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
DMakefile10 raid6_pq-$(CONFIG_KERNEL_MODE_NEON) += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_ne…
34 # ARM/NEON intrinsics in a non C99-compliant environment (such as the kernel)
38 NEON_FLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon
78 $(obj)/neon%.c: $(src)/neon.uc $(src)/unroll.awk FORCE
/kernel/linux/linux-5.10/crypto/
DMakefile104 CFLAGS_aegis128-neon-inner.o += -ffreestanding -march=armv8-a -mfloat-abi=softfp
105 CFLAGS_aegis128-neon-inner.o += -mfpu=crypto-neon-fp-armv8
106 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
116 CFLAGS_aegis128-neon-inner.o += $(aegis128-cflags-y)
117 CFLAGS_REMOVE_aegis128-neon-inner.o += -mgeneral-regs-only
118 aegis128-$(CONFIG_CRYPTO_AEGIS128_SIMD) += aegis128-neon.o aegis128-neon-inner.o
/kernel/linux/linux-5.10/arch/arm64/lib/
DMakefile9 obj-$(CONFIG_XOR_BLOCKS) += xor-neon.o
10 CFLAGS_REMOVE_xor-neon.o += -mgeneral-regs-only
11 CFLAGS_xor-neon.o += -ffreestanding

123456789