[PATCH] ARM: Support VFP-D16

Martin Galvan martin.galvan at tallertechnologies.com
Fri Feb 20 13:08:01 UTC 2015


This patch allows the existing FPU code to support both VFP-D16 and VFP-D32. According to the ARM ARM, writes to D32DIS are ignored for D16 so there's no need to enclose the bic instruction with an #ifdef. We tested it on a TMS570LS3137 using TI initialization code and it works fine.

Signed-off by: Martin Galvan <martin.galvan at tallertechnologies.com>

---
diff --git a/c/src/lib/libbsp/arm/shared/start/start.S b/c/src/lib/libbsp/arm/shared/start/start.S
index ff970e1..4341e27 100644
--- a/c/src/lib/libbsp/arm/shared/start/start.S
+++ b/c/src/lib/libbsp/arm/shared/start/start.S
@@ -187,7 +187,7 @@ _start:

     /* Stay in SVC mode */

-#ifdef ARM_MULTILIB_VFP_D32
+#ifdef ARM_MULTILIB_VFP
     /* Read CPACR */
     mrc p15, 0, r0, c1, c0, 2

@@ -196,6 +196,7 @@ _start:
     orr r0, r0, #(1 << 22)

     /* Clear ASEDIS and D32DIS */
+    /* Writes to D32DIS are ignored for VFP-D16 */
     bic r0, r0, #(3 << 30)

     /* Write CPACR */
@@ -205,7 +206,7 @@ _start:
     /* Enable FPU */
     mov r0, #(1 << 30)
     vmsr FPEXC, r0
-#endif
+#endif /* ARM_MULTILIB_VFP */

     /*
      * Branch to start hook 0.


More information about the devel mailing list