summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2013-08-17 18:51:38 +0000
committerandrew <andrew@FreeBSD.org>2013-08-17 18:51:38 +0000
commit06c57264bc4627b043244c3f34745e71aa626651 (patch)
tree12aad6f3eedaa4d846950fe7432161ad4732f7a4
parent17f8b7cb0b8421fd2269fa021669c9b6b07c7e0a (diff)
downloadFreeBSD-src-06c57264bc4627b043244c3f34745e71aa626651.zip
FreeBSD-src-06c57264bc4627b043244c3f34745e71aa626651.tar.gz
Rename device vfp to option VFP and retire the ARM_VFP_SUPPORT option. This
simplifies enabling as previously both options were required to be enabled, now we only need a single option. While here enable VFP on the PandaBoard.
-rw-r--r--sys/arm/arm/genassym.c2
-rw-r--r--sys/arm/arm/machdep.c2
-rw-r--r--sys/arm/arm/mp_machdep.c4
-rw-r--r--sys/arm/arm/swtch.S12
-rw-r--r--sys/arm/arm/undefined.c4
-rw-r--r--sys/arm/arm/vfp.c5
-rw-r--r--sys/arm/conf/PANDABOARD3
-rw-r--r--sys/arm/conf/RPI-B3
-rw-r--r--sys/arm/include/pcpu.h2
-rw-r--r--sys/conf/files.arm2
-rw-r--r--sys/conf/options.arm1
11 files changed, 21 insertions, 19 deletions
diff --git a/sys/arm/arm/genassym.c b/sys/arm/arm/genassym.c
index 4b8f4cc..0a7399d 100644
--- a/sys/arm/arm/genassym.c
+++ b/sys/arm/arm/genassym.c
@@ -113,7 +113,7 @@ ASSYM(ARM_RAS_START, ARM_RAS_START);
ASSYM(ARM_RAS_END, ARM_RAS_END);
#endif
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
ASSYM(PCB_VFPSTATE, offsetof(struct pcb, pcb_vfpstate));
ASSYM(PCB_VFPCPU, offsetof(struct pcb, pcb_vfpcpu));
diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c
index ddedd9b..12e7fd1 100644
--- a/sys/arm/arm/machdep.c
+++ b/sys/arm/arm/machdep.c
@@ -875,7 +875,7 @@ pcpu0_init(void)
#endif
pcpu_init(pcpup, 0, sizeof(struct pcpu));
PCPU_SET(curthread, &thread0);
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
PCPU_SET(cpu, 0);
#endif
}
diff --git a/sys/arm/arm/mp_machdep.c b/sys/arm/arm/mp_machdep.c
index 4db6da4..2e5e1d3 100644
--- a/sys/arm/arm/mp_machdep.c
+++ b/sys/arm/arm/mp_machdep.c
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
#include <machine/pte.h>
#include <machine/intr.h>
#include <machine/vmparam.h>
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
#include <machine/vfp.h>
#endif
@@ -199,7 +199,7 @@ init_secondary(int cpu)
KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread"));
pc->pc_curthread = pc->pc_idlethread;
pc->pc_curpcb = pc->pc_idlethread->td_pcb;
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
pc->pc_cpu = cpu;
vfp_init();
diff --git a/sys/arm/arm/swtch.S b/sys/arm/arm/swtch.S
index 8439a51..92c420b 100644
--- a/sys/arm/arm/swtch.S
+++ b/sys/arm/arm/swtch.S
@@ -114,7 +114,7 @@ ENTRY(cpu_throw)
GET_PCPU(r7)
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
/*
* vfp_discard will clear pcpu->pc_vfpcthread, and modify
* and modify the control as needed.
@@ -124,7 +124,7 @@ ENTRY(cpu_throw)
bne 3f
bl _C_LABEL(vfp_discard) /* yes, shut down vfp */
3:
-#endif /* ARM_VFP_SUPPORT */
+#endif /* VFP */
ldr r7, [r5, #(TD_PCB)] /* r7 = new thread's PCB */
@@ -303,7 +303,7 @@ ENTRY(cpu_switch)
/* rem: r9 = new PCB */
/* rem: interrupts are enabled */
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
/*
* vfp_store will clear pcpu->pc_vfpcthread, save
* registers and state, and modify the control as needed.
@@ -325,7 +325,7 @@ ENTRY(cpu_switch)
add r0, r2, #(PCB_VFPSTATE)
bl _C_LABEL(vfp_store)
1:
-#endif /* ARM_VFP_SUPPORT */
+#endif /* VFP */
/* r1 now free! */
@@ -505,7 +505,7 @@ ENTRY(savectx)
/* Store all the registers in the process's pcb */
add r2, r0, #(PCB_R8)
stmia r2, {r8-r13}
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
/*
* vfp_store will clear pcpu->pc_vfpcthread, save
* registers and state, and modify the control as needed.
@@ -525,7 +525,7 @@ ENTRY(savectx)
add r0, r0, #(PCB_VFPSTATE)
bl _C_LABEL(vfp_store)
1:
-#endif /* ARM_VFP_SUPPORT */
+#endif /* VFP */
add sp, sp, #4;
ldmfd sp!, {r4-r7, pc}
END(savectx)
diff --git a/sys/arm/arm/undefined.c b/sys/arm/arm/undefined.c
index 41f2f64..476dd60 100644
--- a/sys/arm/arm/undefined.c
+++ b/sys/arm/arm/undefined.c
@@ -234,13 +234,13 @@ undefinedinstruction(trapframe_t *frame)
coprocessor = 0;
if ((fault_instruction & (1 << 27)) != 0)
coprocessor = (fault_instruction >> 8) & 0x0f;
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
else { /* check for special instructions */
if (((fault_instruction & 0xfe000000) == 0xf2000000) ||
((fault_instruction & 0xff100000) == 0xf4000000))
coprocessor = 10; /* vfp / simd */
}
-#endif /* ARM_VFP_SUPPORT */
+#endif /* VFP */
if ((frame->tf_spsr & PSR_MODE) == PSR_USR32_MODE) {
/*
diff --git a/sys/arm/arm/vfp.c b/sys/arm/arm/vfp.c
index b9dce13..8e8dbad 100644
--- a/sys/arm/arm/vfp.c
+++ b/sys/arm/arm/vfp.c
@@ -24,10 +24,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-
+#ifdef VFP
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/proc.h>
@@ -281,3 +282,5 @@ vfp_enable()
tmp |= VFPEXC_EN;
fmxr(VFPEXC, tmp);
}
+#endif
+
diff --git a/sys/arm/conf/PANDABOARD b/sys/arm/conf/PANDABOARD
index 788a0ed..0ebcf52 100644
--- a/sys/arm/conf/PANDABOARD
+++ b/sys/arm/conf/PANDABOARD
@@ -140,5 +140,4 @@ options FDT
options FDT_DTB_STATIC
makeoptions FDT_DTS_FILE=pandaboard.dts
-#device vfp # vfp/neon
-#options ARM_VFP_SUPPORT # vfp/neon
+options VFP # vfp/neon
diff --git a/sys/arm/conf/RPI-B b/sys/arm/conf/RPI-B
index 251bf55..20f1198 100644
--- a/sys/arm/conf/RPI-B
+++ b/sys/arm/conf/RPI-B
@@ -109,5 +109,4 @@ options FDT
#options FDT_DTB_STATIC
makeoptions FDT_DTS_FILE=rpi.dts
-device vfp # vfp/neon
-options ARM_VFP_SUPPORT # vfp/neon
+options VFP # vfp/neon
diff --git a/sys/arm/include/pcpu.h b/sys/arm/include/pcpu.h
index cd5006c..1995030 100644
--- a/sys/arm/include/pcpu.h
+++ b/sys/arm/include/pcpu.h
@@ -41,7 +41,7 @@ struct vmspace;
#endif /* _KERNEL */
-#ifdef ARM_VFP_SUPPORT
+#ifdef VFP
#define PCPU_MD_FIELDS \
unsigned int pc_cpu; \
unsigned int pc_vfpsid; \
diff --git a/sys/conf/files.arm b/sys/conf/files.arm
index 0f18b13..dbb9ffc2 100644
--- a/sys/conf/files.arm
+++ b/sys/conf/files.arm
@@ -50,7 +50,7 @@ arm/arm/uio_machdep.c standard
arm/arm/undefined.c standard
arm/arm/vectors.S standard
arm/arm/vm_machdep.c standard
-arm/arm/vfp.c optional vfp
+arm/arm/vfp.c standard
board_id.h standard \
dependency "$S/arm/conf/genboardid.awk $S/arm/conf/mach-types" \
compile-with "${AWK} -f $S/arm/conf/genboardid.awk $S/arm/conf/mach-types > board_id.h" \
diff --git a/sys/conf/options.arm b/sys/conf/options.arm
index b5e6064..1d67645 100644
--- a/sys/conf/options.arm
+++ b/sys/conf/options.arm
@@ -60,3 +60,4 @@ GFB_DEBUG opt_gfb.h
GFB_NO_FONT_LOADING opt_gfb.h
GFB_NO_MODE_CHANGE opt_gfb.h
AT91C_MAIN_CLOCK opt_at91.h
+VFP opt_global.h
OpenPOWER on IntegriCloud