forked from raspberrypi/linux
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kern…
…el/git/arm64/linux into next Pull arm64 updates from Catalin Marinas: - Optimised assembly string/memory routines (based on the AArch64 Cortex Strings library contributed to glibc but re-licensed under GPLv2) - Optimised crypto algorithms making use of the ARMv8 crypto extensions (together with kernel API for using FPSIMD instructions in interrupt context) - Ftrace support - CPU topology parsing from DT - ESR_EL1 (Exception Syndrome Register) exposed to user space signal handlers for SIGSEGV/SIGBUS (useful to emulation tools like Qemu) - 1GB section linear mapping if applicable - Barriers usage clean-up - Default pgprot clean-up Conflicts as per Catalin. * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (57 commits) arm64: kernel: initialize broadcast hrtimer based clock event device arm64: ftrace: Add system call tracepoint arm64: ftrace: Add CALLER_ADDRx macros arm64: ftrace: Add dynamic ftrace support arm64: Add ftrace support ftrace: Add arm64 support to recordmcount arm64: Add 'notrace' attribute to unwind_frame() for ftrace arm64: add __ASSEMBLY__ in asm/insn.h arm64: Fix linker script entry point arm64: lib: Implement optimized string length routines arm64: lib: Implement optimized string compare routines arm64: lib: Implement optimized memcmp routine arm64: lib: Implement optimized memset routine arm64: lib: Implement optimized memmove routine arm64: lib: Implement optimized memcpy routine arm64: defconfig: enable a few more common/useful options in defconfig ftrace: Make CALLER_ADDRx macros more generic arm64: Fix deadlock scenario with smp_send_stop() arm64: Fix machine_shutdown() definition arm64: Support arch_irq_work_raise() via self IPIs ...
- Loading branch information
Showing
96 changed files
with
6,391 additions
and
605 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
|
||
menuconfig ARM64_CRYPTO | ||
bool "ARM64 Accelerated Cryptographic Algorithms" | ||
depends on ARM64 | ||
help | ||
Say Y here to choose from a selection of cryptographic algorithms | ||
implemented using ARM64 specific CPU features or instructions. | ||
|
||
if ARM64_CRYPTO | ||
|
||
config CRYPTO_SHA1_ARM64_CE | ||
tristate "SHA-1 digest algorithm (ARMv8 Crypto Extensions)" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_HASH | ||
|
||
config CRYPTO_SHA2_ARM64_CE | ||
tristate "SHA-224/SHA-256 digest algorithm (ARMv8 Crypto Extensions)" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_HASH | ||
|
||
config CRYPTO_GHASH_ARM64_CE | ||
tristate "GHASH (for GCM chaining mode) using ARMv8 Crypto Extensions" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_HASH | ||
|
||
config CRYPTO_AES_ARM64_CE | ||
tristate "AES core cipher using ARMv8 Crypto Extensions" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_ALGAPI | ||
select CRYPTO_AES | ||
|
||
config CRYPTO_AES_ARM64_CE_CCM | ||
tristate "AES in CCM mode using ARMv8 Crypto Extensions" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_ALGAPI | ||
select CRYPTO_AES | ||
select CRYPTO_AEAD | ||
|
||
config CRYPTO_AES_ARM64_CE_BLK | ||
tristate "AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_BLKCIPHER | ||
select CRYPTO_AES | ||
select CRYPTO_ABLK_HELPER | ||
|
||
config CRYPTO_AES_ARM64_NEON_BLK | ||
tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions" | ||
depends on ARM64 && KERNEL_MODE_NEON | ||
select CRYPTO_BLKCIPHER | ||
select CRYPTO_AES | ||
select CRYPTO_ABLK_HELPER | ||
|
||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# | ||
# linux/arch/arm64/crypto/Makefile | ||
# | ||
# Copyright (C) 2014 Linaro Ltd <[email protected]> | ||
# | ||
# This program is free software; you can redistribute it and/or modify | ||
# it under the terms of the GNU General Public License version 2 as | ||
# published by the Free Software Foundation. | ||
# | ||
|
||
obj-$(CONFIG_CRYPTO_SHA1_ARM64_CE) += sha1-ce.o | ||
sha1-ce-y := sha1-ce-glue.o sha1-ce-core.o | ||
|
||
obj-$(CONFIG_CRYPTO_SHA2_ARM64_CE) += sha2-ce.o | ||
sha2-ce-y := sha2-ce-glue.o sha2-ce-core.o | ||
|
||
obj-$(CONFIG_CRYPTO_GHASH_ARM64_CE) += ghash-ce.o | ||
ghash-ce-y := ghash-ce-glue.o ghash-ce-core.o | ||
|
||
obj-$(CONFIG_CRYPTO_AES_ARM64_CE) += aes-ce-cipher.o | ||
CFLAGS_aes-ce-cipher.o += -march=armv8-a+crypto | ||
|
||
obj-$(CONFIG_CRYPTO_AES_ARM64_CE_CCM) += aes-ce-ccm.o | ||
aes-ce-ccm-y := aes-ce-ccm-glue.o aes-ce-ccm-core.o | ||
|
||
obj-$(CONFIG_CRYPTO_AES_ARM64_CE_BLK) += aes-ce-blk.o | ||
aes-ce-blk-y := aes-glue-ce.o aes-ce.o | ||
|
||
obj-$(CONFIG_CRYPTO_AES_ARM64_NEON_BLK) += aes-neon-blk.o | ||
aes-neon-blk-y := aes-glue-neon.o aes-neon.o | ||
|
||
AFLAGS_aes-ce.o := -DINTERLEAVE=2 -DINTERLEAVE_INLINE | ||
AFLAGS_aes-neon.o := -DINTERLEAVE=4 | ||
|
||
CFLAGS_aes-glue-ce.o := -DUSE_V8_CRYPTO_EXTENSIONS | ||
|
||
$(obj)/aes-glue-%.o: $(src)/aes-glue.c FORCE | ||
$(call if_changed_dep,cc_o_c) |
Oops, something went wrong.