From c7350ec513de59038376248e38dac5c2c43a3fd4 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 5 Dec 2012 19:30:10 +0000 Subject: [PATCH] For armv7 (cortex), disable access to the upper 16 FP registers (restrict the register space to 16 64-bit FP registers). --- sys/arch/arm/vfp/vfp_init.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/arch/arm/vfp/vfp_init.c b/sys/arch/arm/vfp/vfp_init.c index fe057eca5657..061faf8e4412 100644 --- a/sys/arch/arm/vfp/vfp_init.c +++ b/sys/arch/arm/vfp/vfp_init.c @@ -1,4 +1,4 @@ -/* $NetBSD: vfp_init.c,v 1.8 2012/12/05 19:05:46 matt Exp $ */ +/* $NetBSD: vfp_init.c,v 1.9 2012/12/05 19:30:10 matt Exp $ */ /* * Copyright (c) 2008 ARM Ltd @@ -231,6 +231,12 @@ vfp_attach(void) uint32_t cpacr = armreg_cpacr_read(); cpacr |= __SHIFTIN(CPACR_ALL, cpacr_vfp); cpacr |= __SHIFTIN(CPACR_ALL, cpacr_vfp2); + if (CPU_ID_CORTEX_P(curcpu()->ci_arm_cpuid)) { + /* + * Disable access to the upper 16 FP registers. + */ + cpacr |= CPACR_V7_D32DIS; + } armreg_cpacr_write(cpacr); /*