Module Name: src Committed By: skrll Date: Wed Nov 25 08:39:45 UTC 2015
Modified Files: src/sys/arch/arm/arm: cpufunc.c src/sys/arch/arm/cortex: a9_mpsubr.S src/sys/arch/evbarm/conf: std.tegra Log Message: G/C TEGRAK1_PMAP_WORKAROUND. Using XN (eXecute Never) properly means speculative reads from devices aren't done. Pretty sure this was the cause of the wedges. To generate a diff of this commit: cvs rdiff -u -r1.157 -r1.158 src/sys/arch/arm/arm/cpufunc.c cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/cortex/a9_mpsubr.S cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbarm/conf/std.tegra Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm/cpufunc.c diff -u src/sys/arch/arm/arm/cpufunc.c:1.157 src/sys/arch/arm/arm/cpufunc.c:1.158 --- src/sys/arch/arm/arm/cpufunc.c:1.157 Thu Oct 15 07:13:50 2015 +++ src/sys/arch/arm/arm/cpufunc.c Wed Nov 25 08:39:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: cpufunc.c,v 1.157 2015/10/15 07:13:50 skrll Exp $ */ +/* $NetBSD: cpufunc.c,v 1.158 2015/11/25 08:39:45 skrll Exp $ */ /* * arm7tdmi support code Copyright (c) 2001 John Fremlin @@ -49,7 +49,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.157 2015/10/15 07:13:50 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.158 2015/11/25 08:39:45 skrll Exp $"); #include "opt_compat_netbsd.h" #include "opt_cpuoptions.h" @@ -3165,17 +3165,6 @@ armv7_setup(char *args) cpuctrl |= CPU_CONTROL_VECRELOC; #endif -#ifdef TEGRAK1_PMAP_WORKAROUND - uint32_t auxctrl = armreg_auxctl_read(); - - // u-boot sets this incorrectly on boot cpu - auxctrl &= ~CORTEXA15_ACTLR_BTB; - auxctrl |= CORTEXA15_ACTLR_IOBEU; - - /* Update auxctlr */ - armreg_auxctl_write(auxctrl); -#endif - /* Clear out the cache */ cpu_idcache_wbinv_all(); Index: src/sys/arch/arm/cortex/a9_mpsubr.S diff -u src/sys/arch/arm/cortex/a9_mpsubr.S:1.43 src/sys/arch/arm/cortex/a9_mpsubr.S:1.44 --- src/sys/arch/arm/cortex/a9_mpsubr.S:1.43 Thu Oct 15 07:13:50 2015 +++ src/sys/arch/arm/cortex/a9_mpsubr.S Wed Nov 25 08:39:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: a9_mpsubr.S,v 1.43 2015/10/15 07:13:50 skrll Exp $ */ +/* $NetBSD: a9_mpsubr.S,v 1.44 2015/11/25 08:39:45 skrll Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -498,10 +498,6 @@ cortex_init: bfi r0, r2, #31, #1 // copy it to bit 31 in ACTRL #endif -#if defined(TEGRAK1_PMAP_WORKAROUND) - orr r0, r0, #CORTEXA15_ACTLR_IOBEU -#endif - #if defined(CPU_CORTEXA5) || defined(CPU_CORTEXA9) // // Step 4a (continued on A5/A9), ACTLR.FW=1) Index: src/sys/arch/evbarm/conf/std.tegra diff -u src/sys/arch/evbarm/conf/std.tegra:1.9 src/sys/arch/evbarm/conf/std.tegra:1.10 --- src/sys/arch/evbarm/conf/std.tegra:1.9 Sun Oct 18 00:38:37 2015 +++ src/sys/arch/evbarm/conf/std.tegra Wed Nov 25 08:39:45 2015 @@ -1,4 +1,4 @@ -# $NetBSD: std.tegra,v 1.9 2015/10/18 00:38:37 jmcneill Exp $ +# $NetBSD: std.tegra,v 1.10 2015/11/25 08:39:45 skrll Exp $ # machine evbarm arm @@ -20,7 +20,6 @@ options FPU_VFP options PCI_NETBSD_CONFIGURE options __HAVE_PCI_CONF_HOOK options __BUS_SPACE_HAS_STREAM_METHODS -options TEGRAK1_PMAP_WORKAROUND makeoptions KERNEL_BASE_PHYS="0x81000000" makeoptions KERNEL_BASE_VIRT="0x81000000"