diff options
author | Andrew Turner <andrew@FreeBSD.org> | 2016-10-04 12:25:44 +0000 |
---|---|---|
committer | Andrew Turner <andrew@FreeBSD.org> | 2016-10-04 12:25:44 +0000 |
commit | 1834282de6b9f6fd30291bfe1cc9c3ecf5547c40 (patch) | |
tree | 21afc3d068e0fcf6f3725b0103bde6dc51f09bb7 /sys/arm | |
parent | d029cb6152ecc692603ec44312805f84aa4f0140 (diff) | |
download | src-1834282de6b9f6fd30291bfe1cc9c3ecf5547c40.tar.gz src-1834282de6b9f6fd30291bfe1cc9c3ecf5547c40.zip |
Split CPU_CORTEXA into CPU_CORTEXA8, for the Cortex-A8, and CPU_CORTEXA_MP,
for later Cortex-A CPUs that support the Multiprocessor Extensions. This
will be needed to support both in a single GENERIC kernel while still
being able to only build for a single SoC.
Reviewed by: mmel
Relnotes: yes
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D8138
Notes
Notes:
svn path=/head/; revision=306672
Diffstat (limited to 'sys/arm')
26 files changed, 40 insertions, 33 deletions
diff --git a/sys/arm/allwinner/std.allwinner b/sys/arm/allwinner/std.allwinner index 5a1bf94e474b..44fe8d10916e 100644 --- a/sys/arm/allwinner/std.allwinner +++ b/sys/arm/allwinner/std.allwinner @@ -1,7 +1,7 @@ # Allwinner common options #$FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/allwinner/std.allwinner_up b/sys/arm/allwinner/std.allwinner_up index 6294cd0b461c..09a913851510 100644 --- a/sys/arm/allwinner/std.allwinner_up +++ b/sys/arm/allwinner/std.allwinner_up @@ -1,7 +1,7 @@ # Allwinner Uniprocessor common options #$FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA8 machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/altera/socfpga/std.socfpga b/sys/arm/altera/socfpga/std.socfpga index 687c5a7f7a22..66fdc39ac2fe 100644 --- a/sys/arm/altera/socfpga/std.socfpga +++ b/sys/arm/altera/socfpga/std.socfpga @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/amlogic/aml8726/std.aml8726 b/sys/arm/amlogic/aml8726/std.aml8726 index bd1c12e1c417..948dee294e16 100644 --- a/sys/arm/amlogic/aml8726/std.aml8726 +++ b/sys/arm/amlogic/aml8726/std.aml8726 @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/annapurna/alpine/std.alpine b/sys/arm/annapurna/alpine/std.alpine index 002b4ce5fa78..29b2b4fcdc5a 100644 --- a/sys/arm/annapurna/alpine/std.alpine +++ b/sys/arm/annapurna/alpine/std.alpine @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a -DAL_HAVE_TYPES" diff --git a/sys/arm/arm/cpufunc.c b/sys/arm/arm/cpufunc.c index 9a114677fd76..caef32cdc398 100644 --- a/sys/arm/arm/cpufunc.c +++ b/sys/arm/arm/cpufunc.c @@ -438,7 +438,7 @@ struct cpu_functions arm1176_cpufuncs = { }; #endif /*CPU_ARM1176 */ -#if defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) struct cpu_functions cortexa_cpufuncs = { /* MMU functions */ .cf_control = cpufunc_control, @@ -463,7 +463,7 @@ struct cpu_functions cortexa_cpufuncs = { /* Soft functions */ .cf_setup = cortexa_setup }; -#endif /* CPU_CORTEXA */ +#endif /* CPU_CORTEXA8 || CPU_CORTEXA_MP || CPU_KRAIT */ /* * Global constants also used by locore.s @@ -481,7 +481,7 @@ u_int cpu_reset_needs_v4_MMU_disable; /* flag used in locore-v4.s */ defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425) || \ defined(CPU_FA526) || defined(CPU_MV_PJ4B) || \ defined(CPU_XSCALE_81342) || \ - defined(CPU_CORTEXA) || defined(CPU_KRAIT) + defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) /* Global cache line sizes, use 32 as default */ int arm_dcache_min_line_size = 32; @@ -672,7 +672,7 @@ set_cpufuncs() goto out; } #endif /* CPU_ARM1176 */ -#if defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) switch(cputype & CPU_ID_SCHEME_MASK) { case CPU_ID_CORTEXA5: case CPU_ID_CORTEXA7: @@ -690,7 +690,7 @@ set_cpufuncs() default: break; } -#endif /* CPU_CORTEXA */ +#endif /* CPU_CORTEXA8 || CPU_CORTEXA_MP || CPU_KRAIT */ #if defined(CPU_MV_PJ4B) if (cputype == CPU_ID_MV88SV581X_V7 || @@ -843,7 +843,7 @@ arm10_setup(void) #if defined(CPU_ARM1176) \ || defined(CPU_MV_PJ4B) \ - || defined(CPU_CORTEXA) || defined(CPU_KRAIT) + || defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) static __inline void cpu_scc_setup_ccnt(void) { @@ -913,7 +913,7 @@ pj4bv7_setup(void) } #endif /* CPU_MV_PJ4B */ -#if defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) void cortexa_setup(void) @@ -921,7 +921,7 @@ cortexa_setup(void) cpu_scc_setup_ccnt(); } -#endif /* CPU_CORTEXA */ +#endif /* CPU_CORTEXA8 || CPU_CORTEXA_MP || CPU_KRAIT */ #if defined(CPU_FA526) void diff --git a/sys/arm/arm/elf_trampoline.c b/sys/arm/arm/elf_trampoline.c index 53bf23ad04b6..4b3e2fc88700 100644 --- a/sys/arm/arm/elf_trampoline.c +++ b/sys/arm/arm/elf_trampoline.c @@ -88,7 +88,7 @@ extern void xscalec3_l2cache_purge(void); #elif defined(SOC_MV_KIRKWOOD) || defined(SOC_MV_DISCOVERY) #define cpu_l2cache_wbinv_all sheeva_l2cache_wbinv_all extern void sheeva_l2cache_wbinv_all(void); -#elif defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#elif defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || defined(CPU_KRAIT) #define cpu_idcache_wbinv_all armv7_idcache_wbinv_all #define cpu_l2cache_wbinv_all() #else diff --git a/sys/arm/broadcom/bcm2835/std.bcm2836 b/sys/arm/broadcom/bcm2835/std.bcm2836 index 789450f4fab9..83ba9ffd7b6a 100644 --- a/sys/arm/broadcom/bcm2835/std.bcm2836 +++ b/sys/arm/broadcom/bcm2835/std.bcm2836 @@ -1,7 +1,7 @@ # $FreeBSD$ machine arm armv6 -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP makeoptions CONF_CFLAGS="-march=armv7a" options SOC_BCM2836 diff --git a/sys/arm/conf/GENERIC b/sys/arm/conf/GENERIC index 3445b22e92ea..fb396194b019 100644 --- a/sys/arm/conf/GENERIC +++ b/sys/arm/conf/GENERIC @@ -20,7 +20,7 @@ ident GENERIC -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/freescale/imx/std.imx51 b/sys/arm/freescale/imx/std.imx51 index 4f9ac1454b9a..6149b50f1b8b 100644 --- a/sys/arm/freescale/imx/std.imx51 +++ b/sys/arm/freescale/imx/std.imx51 @@ -1,6 +1,6 @@ # $FreeBSD$ machine arm armv6 -cpu CPU_CORTEXA +cpu CPU_CORTEXA8 makeoptions CONF_CFLAGS="-march=armv7a" options KERNVIRTADDR=0xc0100000 diff --git a/sys/arm/freescale/imx/std.imx53 b/sys/arm/freescale/imx/std.imx53 index 4f9ac1454b9a..6149b50f1b8b 100644 --- a/sys/arm/freescale/imx/std.imx53 +++ b/sys/arm/freescale/imx/std.imx53 @@ -1,6 +1,6 @@ # $FreeBSD$ machine arm armv6 -cpu CPU_CORTEXA +cpu CPU_CORTEXA8 makeoptions CONF_CFLAGS="-march=armv7a" options KERNVIRTADDR=0xc0100000 diff --git a/sys/arm/freescale/imx/std.imx6 b/sys/arm/freescale/imx/std.imx6 index 5c6c39c2f6b7..4d14a5247d3d 100644 --- a/sys/arm/freescale/imx/std.imx6 +++ b/sys/arm/freescale/imx/std.imx6 @@ -1,6 +1,6 @@ # $FreeBSD$ machine arm armv6 -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP makeoptions CONF_CFLAGS="-march=armv7a" options KERNVIRTADDR = 0xc2000000 diff --git a/sys/arm/freescale/vybrid/std.vybrid b/sys/arm/freescale/vybrid/std.vybrid index 6baf9489ae0b..d257d478f356 100644 --- a/sys/arm/freescale/vybrid/std.vybrid +++ b/sys/arm/freescale/vybrid/std.vybrid @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/include/cpuconf.h b/sys/arm/include/cpuconf.h index 24a3b8f1c2cd..7b4bd85ff8ff 100644 --- a/sys/arm/include/cpuconf.h +++ b/sys/arm/include/cpuconf.h @@ -56,7 +56,8 @@ defined(CPU_XSCALE_PXA2X0) + \ defined(CPU_FA526) + \ defined(CPU_XSCALE_IXP425)) + \ - defined(CPU_CORTEXA) + \ + defined(CPU_CORTEXA8) + \ + defined(CPU_CORTEXA_MP) + \ defined(CPU_KRAIT) + \ defined(CPU_MV_PJ4B) @@ -85,7 +86,8 @@ #endif #endif -#if defined(CPU_CORTEXA) || defined(CPU_KRAIT) || defined(CPU_MV_PJ4B) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || \ + defined(CPU_KRAIT) || defined(CPU_MV_PJ4B) #define ARM_ARCH_7A 1 #else #define ARM_ARCH_7A 0 @@ -155,7 +157,8 @@ #define ARM_MMU_V6 0 #endif -#if defined(CPU_CORTEXA) || defined(CPU_KRAIT) || defined(CPU_MV_PJ4B) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || \ + defined(CPU_KRAIT) || defined(CPU_MV_PJ4B) #define ARM_MMU_V7 1 #else #define ARM_MMU_V7 0 diff --git a/sys/arm/include/cpufunc.h b/sys/arm/include/cpufunc.h index ed348c49c595..3bf52c7e36ca 100644 --- a/sys/arm/include/cpufunc.h +++ b/sys/arm/include/cpufunc.h @@ -278,7 +278,8 @@ void sheeva_l2cache_wbinv_all (void); #if defined(CPU_MV_PJ4B) void armv6_idcache_wbinv_all (void); #endif -#if defined(CPU_MV_PJ4B) || defined(CPU_CORTEXA) || defined(CPU_KRAIT) +#if defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) || \ + defined(CPU_MV_PJ4B) || defined(CPU_KRAIT) void armv7_setttb (u_int); void armv7_idcache_wbinv_all (void); void armv7_cpu_sleep (int); diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h index 7a91525a909d..c202eb5c466e 100644 --- a/sys/arm/include/intr.h +++ b/sys/arm/include/intr.h @@ -76,7 +76,7 @@ int intr_pic_ipi_setup(u_int, const char *, intr_ipi_handler_t *, void *); #elif defined(CPU_ARM9) || defined(SOC_MV_KIRKWOOD) || \ defined(CPU_XSCALE_IXP435) #define NIRQ 64 -#elif defined(CPU_CORTEXA) +#elif defined(CPU_CORTEXA8) || defined(CPU_CORTEXA_MP) #define NIRQ 1020 #elif defined(CPU_KRAIT) #define NIRQ 288 diff --git a/sys/arm/mv/armada38x/std.armada38x b/sys/arm/mv/armada38x/std.armada38x index 732fd90124c1..a1d5e721775a 100644 --- a/sys/arm/mv/armada38x/std.armada38x +++ b/sys/arm/mv/armada38x/std.armada38x @@ -1,7 +1,7 @@ # $FreeBSD$ files "../mv/armada38x/files.armada38x" files "../mv/files.mv" -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/nvidia/tegra124/std.tegra124 b/sys/arm/nvidia/tegra124/std.tegra124 index 35de22534f46..e963ba638107 100644 --- a/sys/arm/nvidia/tegra124/std.tegra124 +++ b/sys/arm/nvidia/tegra124/std.tegra124 @@ -1,5 +1,5 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/qemu/std.virt b/sys/arm/qemu/std.virt index 858e195914ce..aff78f208fb8 100644 --- a/sys/arm/qemu/std.virt +++ b/sys/arm/qemu/std.virt @@ -1,6 +1,6 @@ # $FreeBSD$ machine arm armv6 -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP makeoptions CONF_CFLAGS="-march=armv7a" options KERNVIRTADDR = 0xc1000000 diff --git a/sys/arm/rockchip/std.rk30xx b/sys/arm/rockchip/std.rk30xx index 431526b1c36e..a8d37037ac5a 100644 --- a/sys/arm/rockchip/std.rk30xx +++ b/sys/arm/rockchip/std.rk30xx @@ -1,7 +1,7 @@ # Rockchip rk30xx common options #$FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/samsung/exynos/std.exynos5250 b/sys/arm/samsung/exynos/std.exynos5250 index 52e450823d74..9d62d3f3887d 100644 --- a/sys/arm/samsung/exynos/std.exynos5250 +++ b/sys/arm/samsung/exynos/std.exynos5250 @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/samsung/exynos/std.exynos5420 b/sys/arm/samsung/exynos/std.exynos5420 index 52e450823d74..9d62d3f3887d 100644 --- a/sys/arm/samsung/exynos/std.exynos5420 +++ b/sys/arm/samsung/exynos/std.exynos5420 @@ -1,6 +1,6 @@ # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/ti/am335x/std.am335x b/sys/arm/ti/am335x/std.am335x index b5565c29df92..5ad0c5329148 100644 --- a/sys/arm/ti/am335x/std.am335x +++ b/sys/arm/ti/am335x/std.am335x @@ -3,6 +3,8 @@ files "../ti/am335x/files.am335x" include "../ti/std.ti" +cpu CPU_CORTEXA8 + options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm makeoptions KERNVIRTADDR=0xc0200000 diff --git a/sys/arm/ti/omap4/std.omap4 b/sys/arm/ti/omap4/std.omap4 index 8d5764bbf52d..d5cfb9a03dcf 100644 --- a/sys/arm/ti/omap4/std.omap4 +++ b/sys/arm/ti/omap4/std.omap4 @@ -3,6 +3,8 @@ files "../ti/omap4/files.omap4" include "../ti/std.ti" +cpu CPU_CORTEXA_MP + options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm makeoptions KERNVIRTADDR=0xc0200000 diff --git a/sys/arm/ti/std.ti b/sys/arm/ti/std.ti index 7509fd7fe3c4..5eb69fdbdae1 100644 --- a/sys/arm/ti/std.ti +++ b/sys/arm/ti/std.ti @@ -1,6 +1,5 @@ # $FreeBSD$ -cpu CPU_CORTEXA machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" diff --git a/sys/arm/xilinx/std.zynq7 b/sys/arm/xilinx/std.zynq7 index addf7bcb663c..4b631bda43d3 100644 --- a/sys/arm/xilinx/std.zynq7 +++ b/sys/arm/xilinx/std.zynq7 @@ -3,7 +3,7 @@ # # $FreeBSD$ -cpu CPU_CORTEXA +cpu CPU_CORTEXA_MP machine arm armv6 makeoptions CONF_CFLAGS="-march=armv7a" |