summaryrefslogtreecommitdiffstats
path: root/arch/nds32/cpu/n1213/ag101/lowlevel_init.S
diff options
context:
space:
mode:
authorken kuo <ken.kuoky@gmail.com>2013-07-25 02:17:11 +0800
committerMacpaul Lin <macpaul@gmail.com>2013-07-25 16:54:19 +0800
commitc54fd3efa497876a33cc3c6e7df514ae53abc729 (patch)
treed641418958a482f81e19df6ebba951497f373186 /arch/nds32/cpu/n1213/ag101/lowlevel_init.S
parent99ca91b6d77aeb983008d33dba0ef06c8e644d94 (diff)
downloadblackbird-obmc-uboot-c54fd3efa497876a33cc3c6e7df514ae53abc729.tar.gz
blackbird-obmc-uboot-c54fd3efa497876a33cc3c6e7df514ae53abc729.zip
nds32: Enable FPU if the version of CPU supported
Some version of Andes core support FPU coprocessor, if this is the case, and toolchain support FPU instruction set, we should enable it at low level initialization time. Signed-off-by: Kuan-Yu Kuo <ken.kuoky@gmail.com> Cc: Macpaul Lin <macpaul@gmail.com>
Diffstat (limited to 'arch/nds32/cpu/n1213/ag101/lowlevel_init.S')
-rw-r--r--arch/nds32/cpu/n1213/ag101/lowlevel_init.S26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/nds32/cpu/n1213/ag101/lowlevel_init.S b/arch/nds32/cpu/n1213/ag101/lowlevel_init.S
index 55985cf559..021de8608c 100644
--- a/arch/nds32/cpu/n1213/ag101/lowlevel_init.S
+++ b/arch/nds32/cpu/n1213/ag101/lowlevel_init.S
@@ -98,6 +98,11 @@ lowlevel_init:
led 0x10
jal remap
+#if (defined(NDS32_EXT_FPU_DP) || defined(NDS32_EXT_FPU_SP))
+ led 0x1f
+ jal enable_fpu
+#endif
+
led 0x20
ret $r10
@@ -234,6 +239,27 @@ relo_base:
2:
ret
+ /*
+ * enable_fpu:
+ * Some of Andes CPU version support FPU coprocessor, if so,
+ * and toolchain support FPU instruction set, we should enable it.
+ */
+#if (defined(NDS32_EXT_FPU_DP) || defined(NDS32_EXT_FPU_SP))
+enable_fpu:
+ mfsr $r0, $CPU_VER /* enable FPU if it exists */
+ srli $r0, $r0, 3
+ andi $r0, $r0, 1
+ beqz $r0, 1f /* skip if no COP */
+ mfsr $r0, $FUCOP_EXIST
+ srli $r0, $r0, 31
+ beqz $r0, 1f /* skip if no FPU */
+ mfsr $r0, $FUCOP_CTL
+ ori $r0, $r0, 1
+ mtsr $r0, $FUCOP_CTL
+1:
+ ret
+#endif
+
.globl show_led
show_led:
li $r8, (CONFIG_DEBUG_LED)
OpenPOWER on IntegriCloud