Module Name: src Committed By: skrll Date: Thu Oct 18 09:01:54 UTC 2018
Modified Files: src/sys/arch/aarch64/aarch64: locore.S pmap.c start.S src/sys/arch/aarch64/conf: files.aarch64 src/sys/arch/aarch64/include: cpu.h machdep.h pmap.h src/sys/arch/arm/acpi: cpu_acpi.c src/sys/arch/arm/altera: cycv_platform.c cycv_reg.h src/sys/arch/arm/arm: cpufunc.c src/sys/arch/arm/arm32: arm32_boot.c arm32_kvminit.c arm32_machdep.c cpu.c genassym.cf locore.S pmap.c src/sys/arch/arm/broadcom: bcm283x_platform.c files.bcm2835 src/sys/arch/arm/conf: files.arm src/sys/arch/arm/fdt: arm_fdtvar.h cpu_fdt.c src/sys/arch/arm/imx: imx6_board.c imx6_srcreg.h imx6var.h src/sys/arch/arm/include: cpu.h param.h types.h src/sys/arch/arm/include/arm32: machdep.h pmap.h src/sys/arch/arm/nvidia: soc_tegra124.c tegra_platform.c tegra_var.h src/sys/arch/arm/rockchip: rk_platform.c src/sys/arch/arm/samsung: exynos_combiner.c exynos_platform.c exynos_soc.c files.exynos src/sys/arch/arm/sunxi: sunxi_platform.c src/sys/arch/arm/vexpress: vexpress_platform.c src/sys/arch/arm/virt: virt_platform.c src/sys/arch/arm/zynq: zynq7000_board.c zynq7000_reg.h zynq7000_var.h src/sys/arch/evbarm/altera: platform.h src/sys/arch/evbarm/amlogic: amlogic_machdep.c src/sys/arch/evbarm/bcm53xx: bcm53xx_machdep.c src/sys/arch/evbarm/beagle: beagle_machdep.c src/sys/arch/evbarm/conf: EXYNOS GENERIC HUMMINGBOARD IMX6UL-STARTER NANOSOC ODROID-C1 PARALLELLA RPI RPI2 VEXPRESS_A15 VIRT files.exynos files.generic files.generic64 files.rpi files.sunxi files.tegra mk.altera mk.amlogic mk.bcm53xx mk.exynos mk.generic mk.imx6ul mk.nitrogen6 mk.rpi mk.sunxi mk.tegra mk.vexpress mk.virt mk.zynq std.altera std.amlogic std.bcm53xx std.exynos std.generic std.imx6ul std.nitrogen6 std.rpi std.sunxi std.tegra std.vexpress std.virt std.zynq src/sys/arch/evbarm/fdt: fdt_machdep.c src/sys/arch/evbarm/nitrogen6: nitrogen6_machdep.c src/sys/arch/evbarm/zynq: platform.h zynq_machdep.c Added Files: src/sys/arch/arm/arm: armv6_start.S Removed Files: src/sys/arch/evbarm/altera: altera_start.S genassym.cf src/sys/arch/evbarm/amlogic: amlogic_start.S genassym.cf src/sys/arch/evbarm/exynos: exynos_start.S genassym.cf src/sys/arch/evbarm/nitrogen6: genassym.cf nitrogen6_start.S src/sys/arch/evbarm/rpi: genassym.cf rpi2_start.S rpi_start.S src/sys/arch/evbarm/sunxi: genassym.cf sunxi_start.S src/sys/arch/evbarm/tegra: genassym.cf tegra_start.S src/sys/arch/evbarm/vexpress: vexpress_start.S src/sys/arch/evbarm/virt: virt_start.S src/sys/arch/evbarm/zynq: genassym.cf zynq_start.S Log Message: Provide generic start code that assumes the MMU is off and caches are disabled as per the linux booting protocol for ARMv6 and ARMv7 boards. u-boot image type should be changed to 'linux' for correct behaviour. The new start code builds a minimal "bootstrap" L1PT with cached access disabled and uses the same table for all processors. AP startup is performed in less steps and more code is written in C. The bootstrap tables and stack are placed into an (orphaned) section "_init_memory" which is given to uvm when it is no longer used. Various kernels have been converted to use this code and tested. Some boards were provided by TNF. Thanks! The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS kernels. The GENERIC kernel will also work on RPI2 using u-boot. Thanks to martin@ and aymeric@ for testing on parallella and nanosoc respectively To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/aarch64/aarch64/locore.S cvs rdiff -u -r1.30 -r1.31 src/sys/arch/aarch64/aarch64/pmap.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/aarch64/aarch64/start.S cvs rdiff -u -r1.7 -r1.8 src/sys/arch/aarch64/conf/files.aarch64 cvs rdiff -u -r1.9 -r1.10 src/sys/arch/aarch64/include/cpu.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/aarch64/include/machdep.h cvs rdiff -u -r1.15 -r1.16 src/sys/arch/aarch64/include/pmap.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/acpi/cpu_acpi.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/altera/cycv_platform.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/altera/cycv_reg.h cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/arm/armv6_start.S cvs rdiff -u -r1.173 -r1.174 src/sys/arch/arm/arm/cpufunc.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/arm32/arm32_boot.c cvs rdiff -u -r1.45 -r1.46 src/sys/arch/arm/arm32/arm32_kvminit.c cvs rdiff -u -r1.122 -r1.123 src/sys/arch/arm/arm32/arm32_machdep.c \ src/sys/arch/arm/arm32/cpu.c cvs rdiff -u -r1.79 -r1.80 src/sys/arch/arm/arm32/genassym.cf cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/arm32/locore.S cvs rdiff -u -r1.369 -r1.370 src/sys/arch/arm/arm32/pmap.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/broadcom/bcm283x_platform.c cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/broadcom/files.bcm2835 cvs rdiff -u -r1.144 -r1.145 src/sys/arch/arm/conf/files.arm cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/fdt/arm_fdtvar.h cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/fdt/cpu_fdt.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/imx/imx6_board.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/imx/imx6_srcreg.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/imx/imx6var.h cvs rdiff -u -r1.97 -r1.98 src/sys/arch/arm/include/cpu.h cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/include/param.h cvs rdiff -u -r1.36 -r1.37 src/sys/arch/arm/include/types.h cvs rdiff -u -r1.26 -r1.27 src/sys/arch/arm/include/arm32/machdep.h cvs rdiff -u -r1.155 -r1.156 src/sys/arch/arm/include/arm32/pmap.h cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/nvidia/soc_tegra124.c cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/nvidia/tegra_platform.c cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/nvidia/tegra_var.h cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/rockchip/rk_platform.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/samsung/exynos_combiner.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/samsung/exynos_platform.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/samsung/exynos_soc.c cvs rdiff -u -r1.33 -r1.34 src/sys/arch/arm/samsung/files.exynos cvs rdiff -u -r1.28 -r1.29 src/sys/arch/arm/sunxi/sunxi_platform.c cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/vexpress/vexpress_platform.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/virt/virt_platform.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/zynq/zynq7000_board.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/zynq/zynq7000_reg.h \ src/sys/arch/arm/zynq/zynq7000_var.h cvs rdiff -u -r1.1 -r0 src/sys/arch/evbarm/altera/altera_start.S \ src/sys/arch/evbarm/altera/genassym.cf cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/altera/platform.h cvs rdiff -u -r1.25 -r1.26 src/sys/arch/evbarm/amlogic/amlogic_machdep.c cvs rdiff -u -r1.2 -r0 src/sys/arch/evbarm/amlogic/amlogic_start.S cvs rdiff -u -r1.1 -r0 src/sys/arch/evbarm/amlogic/genassym.cf cvs rdiff -u -r1.17 -r1.18 src/sys/arch/evbarm/bcm53xx/bcm53xx_machdep.c cvs rdiff -u -r1.75 -r1.76 src/sys/arch/evbarm/beagle/beagle_machdep.c cvs rdiff -u -r1.33 -r1.34 src/sys/arch/evbarm/conf/EXYNOS cvs rdiff -u -r1.8 -r1.9 src/sys/arch/evbarm/conf/GENERIC \ src/sys/arch/evbarm/conf/VIRT src/sys/arch/evbarm/conf/mk.tegra \ src/sys/arch/evbarm/conf/std.nitrogen6 cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbarm/conf/HUMMINGBOARD \ src/sys/arch/evbarm/conf/mk.rpi src/sys/arch/evbarm/conf/mk.sunxi \ src/sys/arch/evbarm/conf/std.zynq cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbarm/conf/IMX6UL-STARTER \ src/sys/arch/evbarm/conf/std.exynos cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbarm/conf/NANOSOC \ src/sys/arch/evbarm/conf/files.sunxi src/sys/arch/evbarm/conf/mk.altera \ src/sys/arch/evbarm/conf/mk.nitrogen6 \ src/sys/arch/evbarm/conf/std.generic cvs rdiff -u -r1.23 -r1.24 src/sys/arch/evbarm/conf/ODROID-C1 \ src/sys/arch/evbarm/conf/VEXPRESS_A15 src/sys/arch/evbarm/conf/std.rpi cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbarm/conf/PARALLELLA \ src/sys/arch/evbarm/conf/files.exynos \ src/sys/arch/evbarm/conf/files.tegra src/sys/arch/evbarm/conf/mk.bcm53xx \ src/sys/arch/evbarm/conf/mk.exynos src/sys/arch/evbarm/conf/std.altera \ src/sys/arch/evbarm/conf/std.imx6ul cvs rdiff -u -r1.84 -r1.85 src/sys/arch/evbarm/conf/RPI cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbarm/conf/RPI2 \ src/sys/arch/evbarm/conf/mk.vexpress src/sys/arch/evbarm/conf/std.virt cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/conf/files.generic \ src/sys/arch/evbarm/conf/mk.amlogic src/sys/arch/evbarm/conf/mk.generic \ src/sys/arch/evbarm/conf/mk.imx6ul src/sys/arch/evbarm/conf/mk.virt \ src/sys/arch/evbarm/conf/mk.zynq cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/conf/files.generic64 \ src/sys/arch/evbarm/conf/std.amlogic src/sys/arch/evbarm/conf/std.sunxi cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbarm/conf/files.rpi \ src/sys/arch/evbarm/conf/std.vexpress cvs rdiff -u -r1.17 -r1.18 src/sys/arch/evbarm/conf/std.bcm53xx cvs rdiff -u -r1.19 -r1.20 src/sys/arch/evbarm/conf/std.tegra cvs rdiff -u -r1.9 -r0 src/sys/arch/evbarm/exynos/exynos_start.S cvs rdiff -u -r1.2 -r0 src/sys/arch/evbarm/exynos/genassym.cf cvs rdiff -u -r1.43 -r1.44 src/sys/arch/evbarm/fdt/fdt_machdep.c cvs rdiff -u -r1.1 -r0 src/sys/arch/evbarm/nitrogen6/genassym.cf cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbarm/nitrogen6/nitrogen6_machdep.c cvs rdiff -u -r1.3 -r0 src/sys/arch/evbarm/nitrogen6/nitrogen6_start.S cvs rdiff -u -r1.4 -r0 src/sys/arch/evbarm/rpi/genassym.cf cvs rdiff -u -r1.8 -r0 src/sys/arch/evbarm/rpi/rpi2_start.S cvs rdiff -u -r1.20 -r0 src/sys/arch/evbarm/rpi/rpi_start.S cvs rdiff -u -r1.2 -r0 src/sys/arch/evbarm/sunxi/genassym.cf cvs rdiff -u -r1.4 -r0 src/sys/arch/evbarm/sunxi/sunxi_start.S cvs rdiff -u -r1.1 -r0 src/sys/arch/evbarm/tegra/genassym.cf cvs rdiff -u -r1.18 -r0 src/sys/arch/evbarm/tegra/tegra_start.S cvs rdiff -u -r1.7 -r0 src/sys/arch/evbarm/vexpress/vexpress_start.S cvs rdiff -u -r1.3 -r0 src/sys/arch/evbarm/virt/virt_start.S cvs rdiff -u -r1.1 -r0 src/sys/arch/evbarm/zynq/genassym.cf cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/zynq/platform.h cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbarm/zynq/zynq_machdep.c cvs rdiff -u -r1.2 -r0 src/sys/arch/evbarm/zynq/zynq_start.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.