Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 797994f8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull crypto update from Herbert Xu:

 - XTS mode optimisation for twofish/cast6/camellia/aes on x86

 - AVX2/x86_64 implementation for blowfish/twofish/serpent/camellia

 - SSSE3/AVX/AVX2 optimisations for sha256/sha512

 - Added driver for SAHARA2 crypto accelerator

 - Fix for GMAC when used in non-IPsec secnarios

 - Added generic CMAC implementation (including IPsec glue)

 - IP update for crypto/atmel

 - Support for more than one device in hwrng/timeriomem

 - Added Broadcom BCM2835 RNG driver

 - Misc fixes

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (59 commits)
  crypto: caam - fix job ring cleanup code
  crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher
  crypto: serpent - add AVX2/x86_64 assembler implementation of serpent cipher
  crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher
  crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher
  crypto: tcrypt - add async cipher speed tests for blowfish
  crypto: testmgr - extend camellia test-vectors for camellia-aesni/avx2
  crypto: aesni_intel - fix Kconfig problem with CRYPTO_GLUE_HELPER_X86
  crypto: aesni_intel - add more optimized XTS mode for x86-64
  crypto: x86/camellia-aesni-avx - add more optimized XTS code
  crypto: cast6-avx: use new optimized XTS code
  crypto: x86/twofish-avx - use optimized XTS code
  crypto: x86 - add more optimized XTS-mode for serpent-avx
  xfrm: add rfc4494 AES-CMAC-96 support
  crypto: add CMAC support to CryptoAPI
  crypto: testmgr - add empty test vectors for null ciphers
  crypto: testmgr - add AES GMAC test vectors
  crypto: gcm - fix rfc4543 to handle async crypto correctly
  crypto: gcm - make GMAC work when dst and src are different
  hwrng: timeriomem - added devicetree hooks
  ...
parents c8d85669 3862de1f
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
Freescale SAHARA Cryptographic Accelerator included in some i.MX chips.
Currently only i.MX27 is supported.

Required properties:
- compatible : Should be "fsl,<soc>-sahara"
- reg : Should contain SAHARA registers location and length
- interrupts : Should contain SAHARA interrupt number

Example:

sah@10025000 {
	compatible = "fsl,imx27-sahara";
	reg = <	0x10025000 0x800>;
	interrupts = <75>;
};
+18 −0
Original line number Diff line number Diff line
HWRNG support for the timeriomem_rng driver

Required properties:
- compatible : "timeriomem_rng"
- reg : base address to sample from
- period : wait time in microseconds to use between samples

N.B. currently 'reg' must be four bytes wide and aligned

Example:

hwrng@44 {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "timeriomem_rng";
	reg = <0x44 0x04>;
	period = <1000000>;
};
+13 −0
Original line number Diff line number Diff line
BCM2835 Random number generator

Required properties:

- compatible : should be "brcm,bcm2835-rng"
- reg : Specifies base physical address and size of the registers.

Example:

rng {
        compatible = "brcm,bcm2835-rng";
        reg = <0x7e104000 0x10>;
};
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ Intel RNG Driver notes:

	* FIXME: support poll(2)

	NOTE: request_mem_region was removed, for two reasons:
	NOTE: request_mem_region was removed, for three reasons:
	1) Only one RNG is supported by this driver, 2) The location
	used by the RNG is a fixed location in MMIO-addressable memory,
	3) users with properly working BIOS e820 handling will always
+6 −8
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
#include <linux/platform_device.h>
#include <linux/i2c-gpio.h>
#include <linux/atmel-mci.h>
#include <linux/platform_data/atmel-aes.h>
#include <linux/platform_data/crypto-atmel.h>

#include <linux/platform_data/at91_adc.h>

@@ -1900,7 +1900,8 @@ static void __init at91_add_device_tdes(void) {}
 * -------------------------------------------------------------------- */

#if defined(CONFIG_CRYPTO_DEV_ATMEL_AES) || defined(CONFIG_CRYPTO_DEV_ATMEL_AES_MODULE)
static struct aes_platform_data aes_data;
static struct crypto_platform_data aes_data;
static struct crypto_dma_data alt_atslave;
static u64 aes_dmamask = DMA_BIT_MASK(32);

static struct resource aes_resources[] = {
@@ -1931,23 +1932,20 @@ static struct platform_device at91sam9g45_aes_device = {
static void __init at91_add_device_aes(void)
{
	struct at_dma_slave	*atslave;
	struct aes_dma_data	*alt_atslave;

	alt_atslave = kzalloc(sizeof(struct aes_dma_data), GFP_KERNEL);

	/* DMA TX slave channel configuration */
	atslave = &alt_atslave->txdata;
	atslave = &alt_atslave.txdata;
	atslave->dma_dev = &at_hdmac_device.dev;
	atslave->cfg = ATC_FIFOCFG_ENOUGHSPACE	| ATC_SRC_H2SEL_HW |
						ATC_SRC_PER(AT_DMA_ID_AES_RX);

	/* DMA RX slave channel configuration */
	atslave = &alt_atslave->rxdata;
	atslave = &alt_atslave.rxdata;
	atslave->dma_dev = &at_hdmac_device.dev;
	atslave->cfg = ATC_FIFOCFG_ENOUGHSPACE	| ATC_DST_H2SEL_HW |
						ATC_DST_PER(AT_DMA_ID_AES_TX);

	aes_data.dma_slave = alt_atslave;
	aes_data.dma_slave = &alt_atslave;
	platform_device_register(&at91sam9g45_aes_device);
}
#else
Loading