aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/include/mach
diff options
context:
space:
mode:
authorJoakim Bech <joakim.xx.bech@stericsson.com>2010-04-15 14:07:13 +0200
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:03 -0600
commit528d6a6f7895b08a4838d821aae41cc0990968af (patch)
tree03efced44af616afbc71e4b1f772fa167604fdbe /arch/arm/mach-ux500/include/mach
parenta1c59b378a5697caac07536a24bc2e9cbd211acc (diff)
HCL driver implementation (hash).
Major refactoring, checkpatch fixes, documentation of functions, structures, enums. Also moved a lot of code from hash_alg.c to hash_core.c. Fixed problem with incorrect digest when doing HMAC calculations. The problem was that the function that did message pad seems to handle padding for keys incorrectly. Now we do not say how many valid bits there are in the last word when it comes to the key and then the hardware seems to handle the key correctly. Fixed contextsaving so hmac(sha1) passes. There was an if statement checking the DINF bit which was never set. I have removed this and then contextsaving for hmac(sha1) is working. Code up to date with the new arch/arm/mach-ux500 folder structure. Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com>
Diffstat (limited to 'arch/arm/mach-ux500/include/mach')
-rw-r--r--arch/arm/mach-ux500/include/mach/db5500-regs.h2
-rw-r--r--arch/arm/mach-ux500/include/mach/db8500-regs.h6
-rwxr-xr-xarch/arm/mach-ux500/include/mach/devices.h1
-rwxr-xr-xarch/arm/mach-ux500/include/mach/hardware.h2
4 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm/mach-ux500/include/mach/db5500-regs.h b/arch/arm/mach-ux500/include/mach/db5500-regs.h
index c65aedffdca..d724dae2fde 100644
--- a/arch/arm/mach-ux500/include/mach/db5500-regs.h
+++ b/arch/arm/mach-ux500/include/mach/db5500-regs.h
@@ -85,7 +85,7 @@
#define U5500_HASH0_BASE (U5500_PER6_BASE + 0x1000)
#define U5500_HASH1_BASE (U5500_PER6_BASE + 0x2000)
#define U5500_PKA_BASE (U5500_PER6_BASE + 0x4000)
-#define U5500_PKAM_BASE (U5500_PER6_BASE + 0x5000)
+#define U5500_PKAM_BASE (U5500_PER6_BASE + 0x5100)
#define U5500_MTU0_BASE (U5500_PER6_BASE + 0x6000)
#define U5500_MTU1_BASE (U5500_PER6_BASE + 0x7000)
#define U5500_CR_BASE (U5500_PER6_BASE + 0x8000)
diff --git a/arch/arm/mach-ux500/include/mach/db8500-regs.h b/arch/arm/mach-ux500/include/mach/db8500-regs.h
index 7c274165581..15e168ed91f 100644
--- a/arch/arm/mach-ux500/include/mach/db8500-regs.h
+++ b/arch/arm/mach-ux500/include/mach/db8500-regs.h
@@ -62,8 +62,10 @@
/* per6 base addressess */
#define U8500_RNG_BASE (U8500_PER6_BASE + 0x0000)
-#define U8500_PKA_BASE (U8500_PER6_BASE + 0x1000)
-#define U8500_PKAM_BASE (U8500_PER6_BASE + 0x2000)
+#define U8500_HASH0_BASE (U8500_PER6_BASE + 0x1000)
+#define U8500_HASH1_BASE (U8500_PER6_BASE + 0x2000)
+#define U8500_PKA_BASE (U8500_PER6_BASE + 0x4000)
+#define U8500_PKAM_BASE (U8500_PER6_BASE + 0x5100)
#define U8500_MTU0_BASE (U8500_PER6_BASE + 0x6000) /* v1 */
#define U8500_MTU1_BASE (U8500_PER6_BASE + 0x7000) /* v1 */
#define U8500_CR_BASE (U8500_PER6_BASE + 0x8000) /* v1 */
diff --git a/arch/arm/mach-ux500/include/mach/devices.h b/arch/arm/mach-ux500/include/mach/devices.h
index 03590910bcd..0c998217275 100755
--- a/arch/arm/mach-ux500/include/mach/devices.h
+++ b/arch/arm/mach-ux500/include/mach/devices.h
@@ -40,6 +40,7 @@ extern struct platform_device u8500_pmem_mio_device;
extern struct platform_device u8500_pmem_hwb_device;
extern struct amba_device ux500_rtc_device;
extern struct platform_device ux500_dma_device;
+extern struct platform_device ux500_hash1_device;
extern struct amba_device u8500_ssp0_device;
extern struct amba_device u8500_ssp1_device;
extern struct amba_device ux500_spi0_device;
diff --git a/arch/arm/mach-ux500/include/mach/hardware.h b/arch/arm/mach-ux500/include/mach/hardware.h
index b4de7c03598..031ad6213fe 100755
--- a/arch/arm/mach-ux500/include/mach/hardware.h
+++ b/arch/arm/mach-ux500/include/mach/hardware.h
@@ -57,6 +57,8 @@
#define UX500_PRCMU_BASE UX500(PRCMU)
#define UX500_RNG_BASE UX500(RNG)
+#define UX500_HASH0_BASE UX500(HASH0)
+#define UX500_HASH1_BASE UX500(HASH1)
#define UX500_RTC_BASE UX500(RTC)
#define UX500_SCU_BASE UX500(SCU)