summaryrefslogtreecommitdiffstats
path: root/qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c')
-rw-r--r--qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c b/qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c
new file mode 100644
index 000000000..51e53ff2c
--- /dev/null
+++ b/qemu/roms/u-boot/post/cpu/ppc4xx/fpu.c
@@ -0,0 +1,41 @@
+/*
+ * (C) Copyright 2007
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * Author: Sergei Poselenov <sposelenov@emcraft.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <config.h>
+
+#if defined(CONFIG_440EP) || \
+ defined(CONFIG_440EPX)
+
+#include <asm/processor.h>
+#include <asm/ppc4xx.h>
+
+
+int fpu_status(void)
+{
+ if (mfspr(SPRN_CCR0) & CCR0_DAPUIB)
+ return 0; /* Disabled */
+ else
+ return 1; /* Enabled */
+}
+
+
+void fpu_disable(void)
+{
+ mtspr(SPRN_CCR0, mfspr(SPRN_CCR0) | CCR0_DAPUIB);
+ mtmsr(mfmsr() & ~MSR_FP);
+}
+
+
+void fpu_enable(void)
+{
+ mtspr(SPRN_CCR0, mfspr(SPRN_CCR0) & ~CCR0_DAPUIB);
+ mtmsr(mfmsr() | MSR_FP);
+}
+
+#endif