ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/uboot/lib/sha_neon/armv7-neon.S b/marvell/uboot/lib/sha_neon/armv7-neon.S
new file mode 100644
index 0000000..ab13f3e
--- /dev/null
+++ b/marvell/uboot/lib/sha_neon/armv7-neon.S
@@ -0,0 +1,48 @@
+#include <linux/linkage.h>
+
+.text
+.code   32
+.fpu neon
+
+ENTRY(neon_en_check)
+	mrc	p15, 0, r1, c1, c0, 2
+	tst	r1, #(0x3 << 20)
+    beq no_neon
+
+	fmrx	r1, FPEXC
+    tst r1, #(1 << 30)
+    beq no_neon
+
+    mov r0, #1
+    b exit
+
+no_neon:
+    mov r0, #0
+
+exit:
+    mov pc, lr
+ENDPROC(neon_en_check)
+
+ENTRY(neon_enable)
+	/* Enable the the VFP */
+	mrc	p15, 0, r1, c1, c0, 2
+	orr	r1, r1, #(0x3 << 20)
+	mcr	p15, 0, r1, c1, c0, 2
+	isb
+	fmrx	r1, FPEXC
+	orr	r1, r1, #(1 << 30)
+	fmxr	FPEXC, r1
+
+	/* Move back to caller */
+	mov	pc, lr
+ENDPROC(neon_enable)
+
+ENTRY(neon_disable)
+	/* Enable the the VFP */
+	fmrx	r1, FPEXC
+	bic	r1, r1, #(1 << 30)
+	fmxr	FPEXC, r1
+
+	/* Move back to caller */
+	mov	pc, lr
+ENDPROC(neon_disable)
\ No newline at end of file