diff --git a/sys/arch/aarch64/conf/files.aarch64 b/sys/arch/aarch64/conf/files.aarch64 index b89a583d4e30..606d74741001 100644 --- a/sys/arch/aarch64/conf/files.aarch64 +++ b/sys/arch/aarch64/conf/files.aarch64 @@ -15,8 +15,9 @@ defflag opt_cputypes.h CPU_CORTEXA57: CPU_CORTEX defparam opt_arm_intr_impl.h ARM_INTR_IMPL # ARM-specific debug options (for compat arch/arm/*) -defflag opt_arm_debug.h ARM_LOCK_CAS_DEBUG -defflag opt_arm_debug.h VERBOSE_INIT_ARM +defflag opt_arm_debug.h ARM_LOCK_CAS_DEBUG +defflag opt_arm_debug.h VERBOSE_INIT_ARM +defparam opt_arm_debug.h EARLYCONS # Timer options defflag opt_arm_timer.h __HAVE_GENERIC_CPU_INITCLOCKS diff --git a/sys/arch/arm/arm/armv6_start.S b/sys/arch/arm/arm/armv6_start.S index db864a3f9bb1..125f43d5c8cb 100644 --- a/sys/arch/arm/arm/armv6_start.S +++ b/sys/arch/arm/arm/armv6_start.S @@ -32,6 +32,7 @@ #include "opt_arm_debug.h" #include "opt_cpuoptions.h" #include "opt_cputypes.h" +#include "opt_fdt.h" #include "opt_fdt_arm.h" #include "opt_multiprocessor.h" diff --git a/sys/arch/arm/arm/cpufunc.c b/sys/arch/arm/arm/cpufunc.c index 4940035fe702..b4fd1632771f 100644 --- a/sys/arch/arm/arm/cpufunc.c +++ b/sys/arch/arm/arm/cpufunc.c @@ -2962,16 +2962,28 @@ armv7_setup(char *args) #ifndef ARM32_DISABLE_ALIGNMENT_FAULTS cpuctrl |= CPU_CONTROL_AFLT_ENABLE; #endif -#ifdef ARM_MMU_EXTENDED - cpuctrl |= CPU_CONTROL_XP_ENABLE; -#endif + + /* SBOP */ + cpuctrl |= + // __BIT(18) + // __BIT(16) + // __BIT(6) + // __BIT(4) + // __BIT(3) + CPU_CONTROL_XP_ENABLE | // __BIT(23) + 0; + + /* SBZP */ + // __BIT(31) + // __BIT(25) + // __BIT(9) + // __BIT(8) int cpuctrlmask = cpuctrl | CPU_CONTROL_EX_BEND | CPU_CONTROL_AFLT_ENABLE | CPU_CONTROL_TR_ENABLE | CPU_CONTROL_VECRELOC | - CPU_CONTROL_XP_ENABLE | 0; cpuctrl = parse_cpu_options(args, armv7_options, cpuctrl); diff --git a/sys/arch/arm/arm32/genassym.cf b/sys/arch/arm/arm32/genassym.cf index 3431637bd633..e5da1be4cc19 100644 --- a/sys/arch/arm/arm32/genassym.cf +++ b/sys/arch/arm/arm32/genassym.cf @@ -103,7 +103,7 @@ define DOMAIN_DEFAULT DOMAIN_DEFAULT define L1_S_PROTO_generic L1_S_PROTO_generic define L1_S_PROTO_armv7 L1_S_PROTO_armv7 - +define L1_S_PROTO_armv6 L1_S_PROTO_armv6 define L1_S_PROTO_xscale L1_S_PROTO_xscale if ARM_NMMUS == 1 define L1_S_PROTO L1_S_PROTO @@ -119,6 +119,11 @@ define L1_S_V6_XN L1_S_V6_XN define L1_S_AP_KR L1_S_AP(AP_KR) define L1_S_AP_KRW L1_S_AP(AP_KRW) define L1_S_APv7_KRW L1_S_AP(AP7_KRW) +ifdef ARM11_COMPAT_MMU +define L1_S_APv6_KRW L1_S_AP(AP_KR) +else +define L1_S_APv6_KRW L1_S_AP(AP7_KRW) +endif define L1_S_DOM_MASK L1_S_DOM_MASK define L1_TABLE_SIZE L1_TABLE_SIZE define L1_TYPE_S L1_TYPE_S diff --git a/sys/arch/arm/arm32/locore.S b/sys/arch/arm/arm32/locore.S index 85c5b70f869d..cc009ad7df8e 100644 --- a/sys/arch/arm/arm32/locore.S +++ b/sys/arch/arm/arm32/locore.S @@ -31,6 +31,8 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "opt_arm_debug.h" + #include "assym.h" #include #include diff --git a/sys/arch/arm/conf/files.arm b/sys/arch/arm/conf/files.arm index 321b82174df9..c33fc39d20a9 100644 --- a/sys/arch/arm/conf/files.arm +++ b/sys/arch/arm/conf/files.arm @@ -74,8 +74,9 @@ defparam opt_cpuoptions.h ARM_CBAR defparam opt_arm_intr_impl.h ARM_INTR_IMPL # ARM-specific debug options -defflag opt_arm_debug.h ARM_LOCK_CAS_DEBUG -defflag opt_arm_debug.h VERBOSE_INIT_ARM +defflag opt_arm_debug.h ARM_LOCK_CAS_DEBUG +defflag opt_arm_debug.h VERBOSE_INIT_ARM +defparam opt_arm_debug.h EARLYCONS # Board-specific bus_space(9)/bus_dma(9) definitions defflag opt_arm_bus_space.h __BUS_SPACE_HAS_STREAM_METHODS @@ -90,7 +91,7 @@ defflag opt_arm_timer.h __HAVE_GENERIC_CPU_INITCLOCKS defflag opt_arm_start.h __HAVE_GENERIC_START # Floating point emulator -obsolete defflag ARMFPE +obsolete defflag ARMFPE # VFP support file arch/arm/vfp/vfp_init.c arm32 diff --git a/sys/arch/evbarm/conf/TEGRA b/sys/arch/evbarm/conf/TEGRA index 3ce9c4a6f88d..db00c5cd95c0 100644 --- a/sys/arch/evbarm/conf/TEGRA +++ b/sys/arch/evbarm/conf/TEGRA @@ -30,13 +30,13 @@ options MULTIPROCESSOR pseudo-device openfirm # /dev/openfirm -#options DIAGNOSTIC # internal consistency checks -#options DEBUG +options DIAGNOSTIC # internal consistency checks +options DEBUG #options LOCKDEBUG #options PMAP_DEBUG # Enable pmap_debug_level code -#options VERBOSE_INIT_ARM # verbose bootstrapping messages +options VERBOSE_INIT_ARM # verbose bootstrapping messages # CONSADDR is required for early init messages from VERBOSE_INIT_ARM. -#options EARLYCONS=tegra, CONSADDR=0x70006300 +options EARLYCONS=tegra, CONSADDR=0x70006300 makeoptions DEBUG="-g" # compile full symbol table makeoptions COPY_SYMTAB=1 diff --git a/sys/arch/evbarm/conf/files.exynos b/sys/arch/evbarm/conf/files.exynos index bdded7578920..41a2f3fd0646 100644 --- a/sys/arch/evbarm/conf/files.exynos +++ b/sys/arch/evbarm/conf/files.exynos @@ -2,7 +2,6 @@ # # EXYNOS board configuration info # -defparam opt_arm_debug.h EARLYCONS include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.generic b/sys/arch/evbarm/conf/files.generic index 9ca07bb49618..4da06d56593a 100644 --- a/sys/arch/evbarm/conf/files.generic +++ b/sys/arch/evbarm/conf/files.generic @@ -1,8 +1,7 @@ # $NetBSD: files.generic,v 1.1 2018/04/01 04:35:04 ryo Exp $ # # A generic (aarch32) kernel configuration info - -defparam opt_arm_debug.h EARLYCONS +# include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.generic64 b/sys/arch/evbarm/conf/files.generic64 index 236b02596f3e..274ad970fb1e 100644 --- a/sys/arch/evbarm/conf/files.generic64 +++ b/sys/arch/evbarm/conf/files.generic64 @@ -1,8 +1,7 @@ # $NetBSD: files.generic64,v 1.4 2018/08/26 21:06:46 rjs Exp $ # # A generic (aarch64) kernel configuration info - -defparam opt_arm_debug.h EARLYCONS +# include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.rpi b/sys/arch/evbarm/conf/files.rpi index 419bc24a4600..1629b0cb1e04 100644 --- a/sys/arch/evbarm/conf/files.rpi +++ b/sys/arch/evbarm/conf/files.rpi @@ -3,8 +3,6 @@ # Raspberry Pi # -defparam opt_arm_debug.h EARLYCONS - include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.sunxi b/sys/arch/evbarm/conf/files.sunxi index dfb128b517bb..9c0da2d9a3e9 100644 --- a/sys/arch/evbarm/conf/files.sunxi +++ b/sys/arch/evbarm/conf/files.sunxi @@ -2,7 +2,6 @@ # # Allwinner sunxi configuration info # -defparam opt_arm_debug.h EARLYCONS include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.tegra b/sys/arch/evbarm/conf/files.tegra index e68a2a2854b9..b48042dd3a14 100644 --- a/sys/arch/evbarm/conf/files.tegra +++ b/sys/arch/evbarm/conf/files.tegra @@ -2,7 +2,6 @@ # # NVIDIA Tegra configuration info # -defparam opt_arm_debug.h EARLYCONS include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/files.vexpress b/sys/arch/evbarm/conf/files.vexpress index 49aab0accc09..520604d0a25d 100644 --- a/sys/arch/evbarm/conf/files.vexpress +++ b/sys/arch/evbarm/conf/files.vexpress @@ -3,8 +3,6 @@ # Versatile Express board configuration info # -defparam opt_arm_debug.h EARLYCONS - include "arch/arm/pic/files.pic" include "arch/arm/cortex/files.cortex" diff --git a/sys/arch/evbarm/conf/mk.beagle b/sys/arch/evbarm/conf/mk.beagle index e9db25e0cd38..6bc03ed0bc51 100644 --- a/sys/arch/evbarm/conf/mk.beagle +++ b/sys/arch/evbarm/conf/mk.beagle @@ -8,8 +8,11 @@ CPPFLAGS+= -mcpu=cortex-a8 .endif CPPFLAGS+= -mfpu=neon -SYSTEM_FIRST_OBJ= beagle_start.o -SYSTEM_FIRST_SFILE= ${THISARM}/beagle/beagle_start.S +#SYSTEM_FIRST_OBJ= beagle_start.o +#SYSTEM_FIRST_SFILE= ${THISARM}/beagle/beagle_start.S + +SYSTEM_FIRST_OBJ= armv6_start.o +SYSTEM_FIRST_SFILE= ${ARM}/arm/armv6_start.S GENASSYM_EXTRAS+= ${THISARM}/beagle/genassym.cf diff --git a/sys/arch/evbarm/conf/std.beagle b/sys/arch/evbarm/conf/std.beagle index 64b7ce50e1a0..70589ab3cfb6 100644 --- a/sys/arch/evbarm/conf/std.beagle +++ b/sys/arch/evbarm/conf/std.beagle @@ -15,6 +15,7 @@ options __HAVE_CPU_COUNTER options __HAVE_CPU_UAREA_ALLOC_IDLELWP options CORTEX_PMC options __HAVE_FAST_SOFTINTS # should be in types.h +options __HAVE_GENERIC_START options ARM_HAS_VBAR options __HAVE_MM_MD_DIRECT_MAPPED_PHYS options TPIDRPRW_IS_CURCPU diff --git a/sys/arch/evbarm/fdt/fdt_start.S b/sys/arch/evbarm/fdt/fdt_start.S index 12d7c48831bf..0a52828acc2c 100644 --- a/sys/arch/evbarm/fdt/fdt_start.S +++ b/sys/arch/evbarm/fdt/fdt_start.S @@ -26,7 +26,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "opt_arm_debug.h" /* VERBOSE_INIT_ARM */ +#include "opt_arm_debug.h" /* VERBOSE_INIT_ARM and EARLYCONS*/ #include diff --git a/sys/arch/evbarm/rpi/rpi2_start.S b/sys/arch/evbarm/rpi/rpi2_start.S index fbf32a8d3bef..4bad73762be9 100644 --- a/sys/arch/evbarm/rpi/rpi2_start.S +++ b/sys/arch/evbarm/rpi/rpi2_start.S @@ -27,11 +27,11 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include "opt_arm_debug.h" #include "opt_com.h" #include "opt_cpuoptions.h" #include "opt_cputypes.h" #include "opt_multiprocessor.h" -#include "opt_arm_debug.h" #include "opt_fdt.h" #include