svn commit: r327367 - in head/sys: arm/allwinner arm/altera/socfpga arm/arm arm/broadcom/bcm2835 arm/conf arm/freescale/imx arm/freescale/vybrid arm/include arm/mv/armada38x arm/mv/armadaxp arm/nvi...
Ian Lepore
ian at FreeBSD.org
Sat Dec 30 00:20:53 UTC 2017
Author: ian
Date: Sat Dec 30 00:20:49 2017
New Revision: 327367
URL: https://svnweb.freebsd.org/changeset/base/327367
Log:
Make kernel option KERNVIRTADDR optional, remove it from std.<platform>
files that can use the default value.
It used to be required that the low-order bits of KERNVIRTADDR matched
the low-order bits of the physical load address for all arm platforms.
That hasn't been a requirement for armv6 platforms since FreeBSD 10.
There is no longer any relationship between load addr and KERNVIRTADDR
except that both must be aligned to a 2 MiB boundary.
This change makes the default KERNVIRTADDR value 0xc0000000, and removes the
options from all the platforms that can use the default value. The default
is now defined in vmparam.h, and that file is now included in a few new
places that reference KERNVIRTADDR, since it may not come in via the
forced-include of opt_global.h on the compile command line.
Modified:
head/sys/arm/allwinner/std.allwinner
head/sys/arm/allwinner/std.allwinner_up
head/sys/arm/altera/socfpga/std.socfpga
head/sys/arm/arm/dump_machdep.c
head/sys/arm/arm/elf_trampoline.c
head/sys/arm/arm/genassym.c
head/sys/arm/arm/machdep_boot.c
head/sys/arm/broadcom/bcm2835/std.rpi
head/sys/arm/conf/GENERIC
head/sys/arm/conf/NOTES
head/sys/arm/freescale/imx/std.imx51
head/sys/arm/freescale/imx/std.imx53
head/sys/arm/freescale/imx/std.imx6
head/sys/arm/freescale/vybrid/std.vybrid
head/sys/arm/include/vmparam.h
head/sys/arm/mv/armada38x/std.armada38x
head/sys/arm/mv/armadaxp/std.armadaxp
head/sys/arm/nvidia/tegra124/std.tegra124
head/sys/arm/rockchip/std.rk30xx
head/sys/arm/samsung/exynos/std.exynos5250
head/sys/arm/samsung/exynos/std.exynos5420
head/sys/arm/ti/am335x/std.am335x
head/sys/arm/ti/omap4/std.omap4
head/sys/arm/xilinx/std.zynq7
head/sys/conf/Makefile.arm
Modified: head/sys/arm/allwinner/std.allwinner
==============================================================================
--- head/sys/arm/allwinner/std.allwinner Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/allwinner/std.allwinner Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,9 +5,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0200000
-options KERNVIRTADDR=0xc0200000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/allwinner/std.allwinner_up
==============================================================================
--- head/sys/arm/allwinner/std.allwinner_up Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/allwinner/std.allwinner_up Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,9 +5,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0200000
-options KERNVIRTADDR=0xc0200000
-
files "../allwinner/files.allwinner_up"
files "../allwinner/files.allwinner"
files "../allwinner/a10/files.a10"
Modified: head/sys/arm/altera/socfpga/std.socfpga
==============================================================================
--- head/sys/arm/altera/socfpga/std.socfpga Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/altera/socfpga/std.socfpga Sat Dec 30 00:20:49 2017 (r327367)
@@ -4,9 +4,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0f00000
-options KERNVIRTADDR=0xc0f00000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/arm/dump_machdep.c
==============================================================================
--- head/sys/arm/arm/dump_machdep.c Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/arm/dump_machdep.c Sat Dec 30 00:20:49 2017 (r327367)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <machine/md_var.h>
#include <machine/pcb.h>
#include <machine/armreg.h>
+#include <machine/vmparam.h> /* For KERNVIRTADDR */
int do_minidump = 1;
SYSCTL_INT(_debug, OID_AUTO, minidump, CTLFLAG_RWTUN, &do_minidump, 0,
Modified: head/sys/arm/arm/elf_trampoline.c
==============================================================================
--- head/sys/arm/arm/elf_trampoline.c Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/arm/elf_trampoline.c Sat Dec 30 00:20:49 2017 (r327367)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <machine/cpufunc.h>
#include <machine/armreg.h>
#include <machine/cpu.h>
+#include <machine/vmparam.h> /* For KERNVIRTADDR */
#if __ARM_ARCH >= 6
#error "elf_trampline is not supported on ARMv6/v7 platforms"
Modified: head/sys/arm/arm/genassym.c
==============================================================================
--- head/sys/arm/arm/genassym.c Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/arm/genassym.c Sat Dec 30 00:20:49 2017 (r327367)
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
#include <machine/cpuinfo.h>
#include <machine/intr.h>
#include <machine/sysarch.h>
+#include <machine/vmparam.h> /* For KERNVIRTADDR */
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -59,6 +60,7 @@ __FBSDID("$FreeBSD$");
#include <netinet/ip_var.h>
ASSYM(KERNBASE, KERNBASE);
+ASSYM(KERNVIRTADDR, KERNVIRTADDR);
#if __ARM_ARCH >= 6
ASSYM(CPU_ASID_KERNEL,CPU_ASID_KERNEL);
#endif
Modified: head/sys/arm/arm/machdep_boot.c
==============================================================================
--- head/sys/arm/arm/machdep_boot.c Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/arm/machdep_boot.c Sat Dec 30 00:20:49 2017 (r327367)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <machine/machdep.h>
#include <machine/metadata.h>
#include <machine/physmem.h>
+#include <machine/vmparam.h> /* For KERNVIRTADDR */
#ifdef FDT
#include <contrib/libfdt/libfdt.h>
Modified: head/sys/arm/broadcom/bcm2835/std.rpi
==============================================================================
--- head/sys/arm/broadcom/bcm2835/std.rpi Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/broadcom/bcm2835/std.rpi Sat Dec 30 00:20:49 2017 (r327367)
@@ -1,5 +1,3 @@
# $FreeBSD$
-options KERNVIRTADDR=0xc0100000
-makeoptions KERNVIRTADDR=0xc0100000
options LINUX_BOOT_ABI
Modified: head/sys/arm/conf/GENERIC
==============================================================================
--- head/sys/arm/conf/GENERIC Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/conf/GENERIC Sat Dec 30 00:20:49 2017 (r327367)
@@ -25,9 +25,6 @@ options SMP_ON_UP
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0000000
-options KERNVIRTADDR=0xc0000000
-
include "std.armv7"
files "../allwinner/files.allwinner"
files "../allwinner/files.allwinner_up"
Modified: head/sys/arm/conf/NOTES
==============================================================================
--- head/sys/arm/conf/NOTES Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/conf/NOTES Sat Dec 30 00:20:49 2017 (r327367)
@@ -24,11 +24,9 @@ files "../xscale/ixp425/files.ixp425"
files "../xscale/pxa/files.pxa"
options PHYSADDR=0x00000000
-options KERNVIRTADDR=0xc0000000
makeoptions LDFLAGS="-zmuldefs"
makeoptions KERNPHYSADDR=0x00000000
-makeoptions KERNVIRTADDR=0xc0000000
options FDT
Modified: head/sys/arm/freescale/imx/std.imx51
==============================================================================
--- head/sys/arm/freescale/imx/std.imx51 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/freescale/imx/std.imx51 Sat Dec 30 00:20:49 2017 (r327367)
@@ -3,9 +3,6 @@ machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"
-options KERNVIRTADDR=0xc0100000
-makeoptions KERNVIRTADDR=0xc0100000
-
device fdt_pinctrl
files "../freescale/imx/files.imx5"
Modified: head/sys/arm/freescale/imx/std.imx53
==============================================================================
--- head/sys/arm/freescale/imx/std.imx53 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/freescale/imx/std.imx53 Sat Dec 30 00:20:49 2017 (r327367)
@@ -3,9 +3,6 @@ machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"
-options KERNVIRTADDR=0xc0100000
-makeoptions KERNVIRTADDR=0xc0100000
-
device fdt_pinctrl
files "../freescale/imx/files.imx5"
Modified: head/sys/arm/freescale/imx/std.imx6
==============================================================================
--- head/sys/arm/freescale/imx/std.imx6 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/freescale/imx/std.imx6 Sat Dec 30 00:20:49 2017 (r327367)
@@ -3,9 +3,6 @@ machine arm armv7
cpu CPU_CORTEXA
makeoptions CONF_CFLAGS="-march=armv7a"
-options KERNVIRTADDR = 0xc2000000
-makeoptions KERNVIRTADDR = 0xc2000000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/freescale/vybrid/std.vybrid
==============================================================================
--- head/sys/arm/freescale/vybrid/std.vybrid Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/freescale/vybrid/std.vybrid Sat Dec 30 00:20:49 2017 (r327367)
@@ -4,7 +4,4 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0100000
-options KERNVIRTADDR=0xc0100000
-
files "../freescale/vybrid/files.vybrid"
Modified: head/sys/arm/include/vmparam.h
==============================================================================
--- head/sys/arm/include/vmparam.h Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/include/vmparam.h Sat Dec 30 00:20:49 2017 (r327367)
@@ -75,6 +75,19 @@
#endif
/*
+ * The virtual address the kernel is linked to run at. For armv4/5 platforms
+ * the low-order 30 bits of this must match the low-order bits of the physical
+ * address the kernel is loaded at, so the value is most often provided as a
+ * kernel config option in the std.platform file. For armv6/7 the kernel can
+ * be loaded at any 2MB boundary, and KERNVIRTADDR can also be set to any 2MB
+ * boundary. It is typically overridden in the std.platform file only when
+ * KERNBASE is also set to a lower address to provide more KVA.
+ */
+#ifndef KERNVIRTADDR
+#define KERNVIRTADDR 0xc0000000
+#endif
+
+/*
* max number of non-contig chunks of physical RAM you can have
*/
Modified: head/sys/arm/mv/armada38x/std.armada38x
==============================================================================
--- head/sys/arm/mv/armada38x/std.armada38x Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/mv/armada38x/std.armada38x Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,8 +5,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0000000
-options KERNVIRTADDR=0xc0000000
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/mv/armadaxp/std.armadaxp
==============================================================================
--- head/sys/arm/mv/armadaxp/std.armadaxp Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/mv/armadaxp/std.armadaxp Sat Dec 30 00:20:49 2017 (r327367)
@@ -1,4 +1,2 @@
# $FreeBSD$
-makeoptions KERNVIRTADDR=0xc0200000
-options KERNVIRTADDR=0xc0200000
Modified: head/sys/arm/nvidia/tegra124/std.tegra124
==============================================================================
--- head/sys/arm/nvidia/tegra124/std.tegra124 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/nvidia/tegra124/std.tegra124 Sat Dec 30 00:20:49 2017 (r327367)
@@ -3,9 +3,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-options KERNVIRTADDR = 0xc0200000
-makeoptions KERNVIRTADDR = 0xc0200000
-
options INTRNG
options IPI_IRQ_START=0
Modified: head/sys/arm/rockchip/std.rk30xx
==============================================================================
--- head/sys/arm/rockchip/std.rk30xx Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/rockchip/std.rk30xx Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,9 +5,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0400000
-options KERNVIRTADDR=0xc0400000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/samsung/exynos/std.exynos5250
==============================================================================
--- head/sys/arm/samsung/exynos/std.exynos5250 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/samsung/exynos/std.exynos5250 Sat Dec 30 00:20:49 2017 (r327367)
@@ -4,9 +4,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0f00000
-options KERNVIRTADDR=0xc0f00000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/samsung/exynos/std.exynos5420
==============================================================================
--- head/sys/arm/samsung/exynos/std.exynos5420 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/samsung/exynos/std.exynos5420 Sat Dec 30 00:20:49 2017 (r327367)
@@ -4,9 +4,6 @@ cpu CPU_CORTEXA
machine arm armv7
makeoptions CONF_CFLAGS="-march=armv7a"
-makeoptions KERNVIRTADDR=0xc0f00000
-options KERNVIRTADDR=0xc0f00000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/arm/ti/am335x/std.am335x
==============================================================================
--- head/sys/arm/ti/am335x/std.am335x Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/ti/am335x/std.am335x Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,7 +5,4 @@ include "../ti/std.ti"
cpu CPU_CORTEXA
-options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
-makeoptions KERNVIRTADDR=0xc0200000
-
options SOC_TI_AM335X
Modified: head/sys/arm/ti/omap4/std.omap4
==============================================================================
--- head/sys/arm/ti/omap4/std.omap4 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/ti/omap4/std.omap4 Sat Dec 30 00:20:49 2017 (r327367)
@@ -5,7 +5,4 @@ include "../ti/std.ti"
cpu CPU_CORTEXA
-options KERNVIRTADDR=0xc0200000 # Used in ldscript.arm
-makeoptions KERNVIRTADDR=0xc0200000
-
options SOC_OMAP4
Modified: head/sys/arm/xilinx/std.zynq7
==============================================================================
--- head/sys/arm/xilinx/std.zynq7 Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/arm/xilinx/std.zynq7 Sat Dec 30 00:20:49 2017 (r327367)
@@ -9,8 +9,5 @@ makeoptions CONF_CFLAGS="-march=armv7a"
files "../xilinx/files.zynq7"
-options KERNVIRTADDR=0xc0100000 # Used in ldscript.arm
-makeoptions KERNVIRTADDR=0xc0100000
-
options IPI_IRQ_START=0
options IPI_IRQ_END=15
Modified: head/sys/conf/Makefile.arm
==============================================================================
--- head/sys/conf/Makefile.arm Fri Dec 29 23:58:05 2017 (r327366)
+++ head/sys/conf/Makefile.arm Sat Dec 30 00:20:49 2017 (r327367)
@@ -53,6 +53,11 @@ CFLAGS += -mllvm -arm-enable-ehabi
.endif
.endif
+# "makeoptions KERNVIRTADDR=" is now optional, supply the default value.
+.if empty(KERNVIRTADDR)
+KERNVIRTADDR= 0xc0000000
+.endif
+
# hack because genassym.c includes sys/bus.h which includes these.
genassym.o: bus_if.h device_if.h
More information about the svn-src-all
mailing list