Skip to contentSkip to conversation

omap-sham: OMAP SHA1/MD5 driver

PATCH In review Dmitry Kasatkin 3 participants 6 messages Apr 28, 2010 – May 10, 2010

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

v4 cover omap-sham: OMAP SHA1/MD5 driver

Changes to v4:
- concurrent requests support via queue
- hmac
- shash support removed

Dmitry Kasatkin (2):
crypto: updates omap sham device related platform code
crypto: omap-sham - omap sha1 & md5 driver

 arch/arm/mach-omap2/clock2420_data.c       |    2 +-
 arch/arm/mach-omap2/clock2430_data.c       |    2 +-
 arch/arm/mach-omap2/clock3xxx_data.c       |    2 +-
 arch/arm/mach-omap2/devices.c              |   58 ++-
 arch/arm/plat-omap/include/plat/omap34xx.h |    5 +
 drivers/crypto/Kconfig                     |    9 +
 drivers/crypto/Makefile                    |    2 +
 drivers/crypto/omap-sham.c                 | 1259 ++++++++++++++++++++++++++++
 8 files changed, 1326 insertions(+), 13 deletions(-)
 create mode 100644 drivers/crypto/omap-sham.c
#1 lore raw

PATCH v4 1/2 crypto: updates omap sham device related platform code

- registration with multi OMAP kernels support
- clocks

---
 arch/arm/mach-omap2/clock2420_data.c       |    2 +-
 arch/arm/mach-omap2/clock2430_data.c       |    2 +-
 arch/arm/mach-omap2/clock3xxx_data.c       |    2 +-
 arch/arm/mach-omap2/devices.c              |   58 +++++++++++++++++++++++-----
 arch/arm/plat-omap/include/plat/omap34xx.h |    5 ++
 5 files changed, 56 insertions(+), 13 deletions(-)
arch/arm/mach-omap2/clock2420_data.c +1 -1
index d932b14..1820a55 100644
@@ -1836,7 +1836,7 @@ static struct omap_clk omap2420_clks[] = {
 	CLK(NULL,	"vlynq_ick",	&vlynq_ick,	CK_242X),
 	CLK(NULL,	"vlynq_fck",	&vlynq_fck,	CK_242X),
 	CLK(NULL,	"des_ick",	&des_ick,	CK_242X),
-	CLK(NULL,	"sha_ick",	&sha_ick,	CK_242X),
+	CLK("omap-sham",	"ick",	&sha_ick,	CK_242X),
 	CLK("omap_rng",	"ick",		&rng_ick,	CK_242X),
 	CLK(NULL,	"aes_ick",	&aes_ick,	CK_242X),
 	CLK(NULL,	"pka_ick",	&pka_ick,	CK_242X),
arch/arm/mach-omap2/clock2430_data.c +1 -1
index 0438b6e..5884ac6 100644
@@ -1924,7 +1924,7 @@ static struct omap_clk omap2430_clks[] = {
 	CLK(NULL,	"sdma_ick",	&sdma_ick,	CK_243X),
 	CLK(NULL,	"sdrc_ick",	&sdrc_ick,	CK_243X),
 	CLK(NULL,	"des_ick",	&des_ick,	CK_243X),
-	CLK(NULL,	"sha_ick",	&sha_ick,	CK_243X),
+	CLK("omap-sham",	"ick",	&sha_ick,	CK_243X),
 	CLK("omap_rng",	"ick",		&rng_ick,	CK_243X),
 	CLK(NULL,	"aes_ick",	&aes_ick,	CK_243X),
 	CLK(NULL,	"pka_ick",	&pka_ick,	CK_243X),
arch/arm/mach-omap2/clock3xxx_data.c +1 -1
index 9cba556..52638df 100644
@@ -3360,7 +3360,7 @@ static struct omap_clk omap3xxx_clks[] = {
 	CLK("mmci-omap-hs.2",	"ick",	&mmchs3_ick,	CK_3430ES2 | CK_AM35XX),
 	CLK(NULL,	"icr_ick",	&icr_ick,	CK_343X),
 	CLK(NULL,	"aes2_ick",	&aes2_ick,	CK_343X),
-	CLK(NULL,	"sha12_ick",	&sha12_ick,	CK_343X),
+	CLK("omap-sham",	"ick",	&sha12_ick,	CK_343X),
 	CLK(NULL,	"des2_ick",	&des2_ick,	CK_343X),
 	CLK("mmci-omap-hs.1",	"ick",	&mmchs2_ick,	CK_3XXX),
 	CLK("mmci-omap-hs.0",	"ick",	&mmchs1_ick,	CK_3XXX),
arch/arm/mach-omap2/devices.c +48 -10

89 lines not on this page · raw message

arch/arm/plat-omap/include/plat/omap34xx.h +5 -0
index 2845fdc..98fc8b4 100644
@@ -82,5 +82,10 @@
 
 #define OMAP34XX_MAILBOX_BASE		(L4_34XX_BASE + 0x94000)
 
+/* Security */
+#define OMAP34XX_SEC_BASE	(L4_34XX_BASE + 0xA0000)
+#define OMAP34XX_SEC_SHA1MD5_BASE	(OMAP34XX_SEC_BASE + 0x23000)
+#define OMAP34XX_SEC_AES_BASE	(OMAP34XX_SEC_BASE + 0x25000)
+
 #endif /* __ASM_ARCH_OMAP3_H */
 
Signature · 1 line
1.6.3.3
#2 lore raw

PATCH v4 2/2 crypto: omap-sham - omap sha1 & md5 driver

In reply to Dmitry Kasatkin

Earlier kernel contained omap sha1 and md5 driver, which was not maintained, was not ported to new crypto APIs and removed from the source tree.

- implements async crypto API using dma and cpu.
- supports multiple sham instances if available
- hmac
- concurrent requests

---
 drivers/crypto/Kconfig     |    9 +
 drivers/crypto/Makefile    |    2 +
 drivers/crypto/omap-sham.c | 1259 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 1270 insertions(+), 0 deletions(-)
 create mode 100644 drivers/crypto/omap-sham.c
drivers/crypto/Kconfig +9 -0
index b08403d..9073aa0 100644
@@ -222,4 +222,13 @@ config CRYPTO_DEV_PPC4XX
 	help
 	  This option allows you to have support for AMCC crypto acceleration.
 
+config CRYPTO_DEV_OMAP_SHAM
+	tristate "Support for OMAP SHA1/MD5 hw accelerator"
+	depends on ARCH_OMAP2 || ARCH_OMAP3
+	select CRYPTO_SHA1
+	select CRYPTO_MD5
+	help
+	  OMAP processors have SHA1/MD5 hw accelerator. Select this if you
+	  want to use the OMAP module for SHA1/MD5 algorithms.
+
 endif # CRYPTO_HW
drivers/crypto/Makefile +2 -0
index 6ffcb3f..c9494e1 100644
@@ -6,3 +6,5 @@ obj-$(CONFIG_CRYPTO_DEV_MV_CESA) += mv_cesa.o
 obj-$(CONFIG_CRYPTO_DEV_TALITOS) += talitos.o
 obj-$(CONFIG_CRYPTO_DEV_IXP4XX) += ixp4xx_crypto.o
 obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/
+obj-$(CONFIG_CRYPTO_DEV_OMAP_SHAM) += omap-sham.o
+
drivers/crypto/omap-sham.c new file +1259 -0

1,259 lines not on this page · raw message

Signature · 1 line
1.6.3.3
maintainer
#3 lore raw
In reply to Dmitry Kasatkin
Quoted 8 lines · Dmitry Kasatkin

Changes to v4:
- concurrent requests support via queue
- hmac
- shash support removed

Dmitry Kasatkin (2):
crypto: updates omap sham device related platform code
crypto: omap-sham - omap sha1 & md5 driver

Both patches applied. Thanks for all your hard work Dmitry!

Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
maintainer
#4 lore raw
Quoted 11 lines · Herbert Xu
Quoted 8 lines · Dmitry Kasatkin

Changes to v4:
- concurrent requests support via queue
- hmac
- shash support removed

Dmitry Kasatkin (2):
crypto: updates omap sham device related platform code
crypto: omap-sham - omap sha1 & md5 driver

Both patches applied. Thanks for all your hard work Dmitry!

Just noticed that the first patch should be updated:

CONFIG_ARCH_OMAP2 instead of CONFIG_ARCH_OMAP24XX
CONFIG_ARCH_OMAP3 instead of CONFIG_ARCH_OMAP34XX

BTW, chances are that this part will conflict with other omap patches. But if that happens, we can move it to the omap for-next.

Regards,

Tony

#5 lore raw

Hi,

Hmm.. yes. in my first patch I had OMAP3 and 2
Should I send updated patch above that?

- Dmitry

Quoted 28 lines · ext Tony Lindgren
Quoted 7 lines · Herbert Xu
Quoted 5 lines · Dmitry Kasatkin

Changes to v4:
- concurrent requests support via queue
- hmac
- shash support removed

Quoted 6 lines
Quoted 4 lines

Dmitry Kasatkin (2):
crypto: updates omap sham device related platform code
crypto: omap-sham - omap sha1 & md5 driver

Both patches applied. Thanks for all your hard work Dmitry!

Just noticed that the first patch should be updated:

CONFIG_ARCH_OMAP2 instead of CONFIG_ARCH_OMAP24XX
CONFIG_ARCH_OMAP3 instead of CONFIG_ARCH_OMAP34XX

BTW, chances are that this part will conflict with other omap patches. But if that happens, we can move it to the omap for-next.

Regards,

Tony