msm7627a: Add support for secure boot image check

Change-Id: Id9dc943dc57a086f51bdbab6650fe566dbbe453e
diff --git a/lib/openssl/crypto/rules.mk b/lib/openssl/crypto/rules.mk
index d2fc6f0..ff710c4 100644
--- a/lib/openssl/crypto/rules.mk
+++ b/lib/openssl/crypto/rules.mk
@@ -313,7 +313,9 @@
 	$(LOCAL_DIR)/x509v3/v3_skey.o \
 	$(LOCAL_DIR)/x509v3/v3_sxnet.o \
 	$(LOCAL_DIR)/x509v3/v3err.o \
-	$(LOCAL_DIR)/x509v3/v3_utl.o
+	$(LOCAL_DIR)/x509v3/v3_utl.o \
+	$(LOCAL_DIR)/sha/asm/sha1-armv4-large.o \
+	$(LOCAL_DIR)/sha/asm/sha256-armv4.o
 
 include $(LOCAL_PATH)/android-config.mk
 
@@ -322,8 +324,6 @@
 arm_src_files := \
     $(LOCAL_DIR)/aes/asm/aes-armv4.o \
     $(LOCAL_DIR)/bn/asm/armv4-mont.o \
-    $(LOCAL_DIR)/sha/asm/sha1-armv4-large.o \
-    $(LOCAL_DIR)/sha/asm/sha256-armv4.o \
     $(LOCAL_DIR)/sha/asm/sha512-armv4.o
 
 non_arm_src_files := aes/aes_core.c
diff --git a/lib/openssl/crypto/sha/asm/sha1-armv4-large.s b/lib/openssl/crypto/sha/asm/sha1-armv4-large.S
similarity index 100%
rename from lib/openssl/crypto/sha/asm/sha1-armv4-large.s
rename to lib/openssl/crypto/sha/asm/sha1-armv4-large.S
diff --git a/lib/openssl/crypto/sha/asm/sha256-armv4.s b/lib/openssl/crypto/sha/asm/sha256-armv4.S
similarity index 100%
rename from lib/openssl/crypto/sha/asm/sha256-armv4.s
rename to lib/openssl/crypto/sha/asm/sha256-armv4.S
diff --git a/platform/msm7x27a/include/platform/iomap.h b/platform/msm7x27a/include/platform/iomap.h
index 1a9ce81..5ce8a02 100644
--- a/platform/msm7x27a/include/platform/iomap.h
+++ b/platform/msm7x27a/include/platform/iomap.h
@@ -113,4 +113,5 @@
 
 #define MDP_TEST_MODE_CLK                     REG_MDP(0xF0000)
 #define MDP_INTR_STATUS                       REG_MDP(0x00054)
+#define MSM_CRYPTO_BASE                       (0xA0C00000)
 #endif
diff --git a/platform/msm_shared/crypto_hash.c b/platform/msm_shared/crypto_hash.c
index d431f42..4993622 100644
--- a/platform/msm_shared/crypto_hash.c
+++ b/platform/msm_shared/crypto_hash.c
@@ -50,9 +50,19 @@
 	crypto_result_type ret_val = CRYPTO_SHA_ERR_NONE;
 
 	if (auth_alg == 1) {
+#ifdef NO_CRYPTO_ENG
+		/* Hardware CE is not present , use software hashing */
+		digest = SHA1(addr, size, digest);
+#else
 		ret_val = crypto_sha1(addr, size, digest);
+#endif
 	} else if (auth_alg == 2) {
+#ifdef NO_CRYPTO_ENG
+		/* Hardware CE is not present , use software hashing */
+		digest = SHA256(addr, size, digest);
+#else
 		ret_val = crypto_sha256(addr, size, digest);
+#endif
 	}
 
 	if (ret_val != CRYPTO_SHA_ERR_NONE) {
diff --git a/platform/msm_shared/rules.mk b/platform/msm_shared/rules.mk
index eb5635a..a59581f 100644
--- a/platform/msm_shared/rules.mk
+++ b/platform/msm_shared/rules.mk
@@ -52,7 +52,11 @@
 			$(LOCAL_DIR)/proc_comm.o \
 			$(LOCAL_DIR)/lcdc.o \
 			$(LOCAL_DIR)/mdp3.o \
-			$(LOCAL_DIR)/mipi_dsi.o
+			$(LOCAL_DIR)/mipi_dsi.o \
+			$(LOCAL_DIR)/crypto_eng.o \
+			$(LOCAL_DIR)/crypto_hash.o \
+			$(LOCAL_DIR)/certificate.o \
+			$(LOCAL_DIR)/image_verify.o
 endif
 
 ifeq ($(PLATFORM),msm7k)
diff --git a/target/msm7627a/rules.mk b/target/msm7627a/rules.mk
index d9b4fed..555ba90 100644
--- a/target/msm7627a/rules.mk
+++ b/target/msm7627a/rules.mk
@@ -21,6 +21,7 @@
 DEFINES += DISPLAY_SPLASH_SCREEN=1
 DEFINES += DISPLAY_TYPE_MIPI=1
 DEFINES += DISPLAY_MIPI_PANEL_RENESAS=1
+DEFINES += NO_CRYPTO_ENG=1
 
 MODULES += \
 	dev/keys \