Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jan 2018 00:04:13 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r327658 - in stable/11/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 ar...
Message-ID:  <201801070004.w0704D8K031297@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sun Jan  7 00:04:13 2018
New Revision: 327658
URL: https://svnweb.freebsd.org/changeset/base/327658

Log:
  MFC r327367:
  
  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:
  stable/11/sys/arm/allwinner/std.allwinner
  stable/11/sys/arm/allwinner/std.allwinner_up
  stable/11/sys/arm/altera/socfpga/std.socfpga
  stable/11/sys/arm/arm/dump_machdep.c
  stable/11/sys/arm/arm/elf_trampoline.c
  stable/11/sys/arm/arm/genassym.c
  stable/11/sys/arm/arm/machdep_boot.c
  stable/11/sys/arm/broadcom/bcm2835/std.rpi
  stable/11/sys/arm/conf/NOTES
  stable/11/sys/arm/freescale/imx/std.imx51
  stable/11/sys/arm/freescale/imx/std.imx53
  stable/11/sys/arm/freescale/imx/std.imx6
  stable/11/sys/arm/freescale/vybrid/std.vybrid
  stable/11/sys/arm/include/vmparam.h
  stable/11/sys/arm/mv/armada38x/std.armada38x
  stable/11/sys/arm/mv/armadaxp/std.armadaxp
  stable/11/sys/arm/nvidia/tegra124/std.tegra124
  stable/11/sys/arm/rockchip/std.rk30xx
  stable/11/sys/arm/samsung/exynos/std.exynos5250
  stable/11/sys/arm/samsung/exynos/std.exynos5420
  stable/11/sys/arm/ti/am335x/std.am335x
  stable/11/sys/arm/ti/omap4/std.omap4
  stable/11/sys/arm/xilinx/std.zynq7
  stable/11/sys/conf/Makefile.arm
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/arm/allwinner/std.allwinner
==============================================================================
--- stable/11/sys/arm/allwinner/std.allwinner	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/allwinner/std.allwinner	Sun Jan  7 00:04:13 2018	(r327658)
@@ -5,9 +5,6 @@ cpu		CPU_CORTEXA
 machine 	arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0200000
-options 	KERNVIRTADDR=0xc0200000
-
 options 	IPI_IRQ_START=0
 options 	IPI_IRQ_END=15
 

Modified: stable/11/sys/arm/allwinner/std.allwinner_up
==============================================================================
--- stable/11/sys/arm/allwinner/std.allwinner_up	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/allwinner/std.allwinner_up	Sun Jan  7 00:04:13 2018	(r327658)
@@ -5,9 +5,6 @@ cpu		CPU_CORTEXA
 machine 	arm armv6
 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: stable/11/sys/arm/altera/socfpga/std.socfpga
==============================================================================
--- stable/11/sys/arm/altera/socfpga/std.socfpga	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/altera/socfpga/std.socfpga	Sun Jan  7 00:04:13 2018	(r327658)
@@ -4,9 +4,6 @@ cpu		CPU_CORTEXA
 machine		arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0f00000
-options		KERNVIRTADDR=0xc0f00000
-
 options		IPI_IRQ_START=0
 options		IPI_IRQ_END=15
 

Modified: stable/11/sys/arm/arm/dump_machdep.c
==============================================================================
--- stable/11/sys/arm/arm/dump_machdep.c	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/arm/dump_machdep.c	Sun Jan  7 00:04:13 2018	(r327658)
@@ -44,6 +44,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: stable/11/sys/arm/arm/elf_trampoline.c
==============================================================================
--- stable/11/sys/arm/arm/elf_trampoline.c	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/arm/elf_trampoline.c	Sun Jan  7 00:04:13 2018	(r327658)
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/pte-v4.h>
 #include <machine/cpufunc.h>
 #include <machine/armreg.h>
+#include <machine/vmparam.h>	/* For KERNVIRTADDR */
 
 extern char kernel_start[];
 extern char kernel_end[];

Modified: stable/11/sys/arm/arm/genassym.c
==============================================================================
--- stable/11/sys/arm/arm/genassym.c	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/arm/genassym.c	Sun Jan  7 00:04:13 2018	(r327658)
@@ -49,6 +49,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>
@@ -57,6 +58,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: stable/11/sys/arm/arm/machdep_boot.c
==============================================================================
--- stable/11/sys/arm/arm/machdep_boot.c	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/arm/machdep_boot.c	Sun Jan  7 00:04:13 2018	(r327658)
@@ -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: stable/11/sys/arm/broadcom/bcm2835/std.rpi
==============================================================================
--- stable/11/sys/arm/broadcom/bcm2835/std.rpi	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/broadcom/bcm2835/std.rpi	Sun Jan  7 00:04:13 2018	(r327658)
@@ -1,5 +1,3 @@
 # $FreeBSD$
 
-options		KERNVIRTADDR=0xc0100000
-makeoptions	KERNVIRTADDR=0xc0100000
 options		LINUX_BOOT_ABI

Modified: stable/11/sys/arm/conf/NOTES
==============================================================================
--- stable/11/sys/arm/conf/NOTES	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/conf/NOTES	Sun Jan  7 00:04:13 2018	(r327658)
@@ -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: stable/11/sys/arm/freescale/imx/std.imx51
==============================================================================
--- stable/11/sys/arm/freescale/imx/std.imx51	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/freescale/imx/std.imx51	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,9 +3,6 @@ machine		arm	armv6
 cpu 		CPU_CORTEXA
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-options		KERNVIRTADDR=0xc0100000
-makeoptions	KERNVIRTADDR=0xc0100000
-
 device  	fdt_pinctrl
 
 files "../freescale/imx/files.imx5"

Modified: stable/11/sys/arm/freescale/imx/std.imx53
==============================================================================
--- stable/11/sys/arm/freescale/imx/std.imx53	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/freescale/imx/std.imx53	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,9 +3,6 @@ machine		arm	armv6
 cpu 		CPU_CORTEXA
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-options		KERNVIRTADDR=0xc0100000
-makeoptions	KERNVIRTADDR=0xc0100000
-
 device  	fdt_pinctrl
 
 files "../freescale/imx/files.imx5"

Modified: stable/11/sys/arm/freescale/imx/std.imx6
==============================================================================
--- stable/11/sys/arm/freescale/imx/std.imx6	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/freescale/imx/std.imx6	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,9 +3,6 @@ machine		arm	armv6
 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: stable/11/sys/arm/freescale/vybrid/std.vybrid
==============================================================================
--- stable/11/sys/arm/freescale/vybrid/std.vybrid	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/freescale/vybrid/std.vybrid	Sun Jan  7 00:04:13 2018	(r327658)
@@ -4,7 +4,4 @@ cpu		CPU_CORTEXA
 machine		arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0100000
-options		KERNVIRTADDR=0xc0100000
-
 files		"../freescale/vybrid/files.vybrid"

Modified: stable/11/sys/arm/include/vmparam.h
==============================================================================
--- stable/11/sys/arm/include/vmparam.h	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/include/vmparam.h	Sun Jan  7 00:04:13 2018	(r327658)
@@ -73,6 +73,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: stable/11/sys/arm/mv/armada38x/std.armada38x
==============================================================================
--- stable/11/sys/arm/mv/armada38x/std.armada38x	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/mv/armada38x/std.armada38x	Sun Jan  7 00:04:13 2018	(r327658)
@@ -5,8 +5,6 @@ cpu		CPU_CORTEXA
 machine		arm	armv6
 
 makeoptions	CONF_CFLAGS="-march=armv7a"
-makeoptions	KERNVIRTADDR=0xc0000000
 
-options         KERNVIRTADDR=0xc0000000
 options		IPI_IRQ_START=0
 options		IPI_IRQ_END=15

Modified: stable/11/sys/arm/mv/armadaxp/std.armadaxp
==============================================================================
--- stable/11/sys/arm/mv/armadaxp/std.armadaxp	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/mv/armadaxp/std.armadaxp	Sun Jan  7 00:04:13 2018	(r327658)
@@ -1,4 +1,2 @@
 # $FreeBSD$
 
-makeoptions	KERNVIRTADDR=0xc0200000
-options		KERNVIRTADDR=0xc0200000

Modified: stable/11/sys/arm/nvidia/tegra124/std.tegra124
==============================================================================
--- stable/11/sys/arm/nvidia/tegra124/std.tegra124	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/nvidia/tegra124/std.tegra124	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,9 +3,6 @@ cpu 		CPU_CORTEXA
 machine		arm	armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-options		KERNVIRTADDR		= 0xc0200000
-makeoptions	KERNVIRTADDR		= 0xc0200000
-
 options		INTRNG
 
 options		IPI_IRQ_START=0

Modified: stable/11/sys/arm/rockchip/std.rk30xx
==============================================================================
--- stable/11/sys/arm/rockchip/std.rk30xx	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/rockchip/std.rk30xx	Sun Jan  7 00:04:13 2018	(r327658)
@@ -5,9 +5,6 @@ cpu		CPU_CORTEXA
 machine		arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0400000
-options		KERNVIRTADDR=0xc0400000
-
 options		IPI_IRQ_START=0
 options		IPI_IRQ_END=15
 

Modified: stable/11/sys/arm/samsung/exynos/std.exynos5250
==============================================================================
--- stable/11/sys/arm/samsung/exynos/std.exynos5250	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/samsung/exynos/std.exynos5250	Sun Jan  7 00:04:13 2018	(r327658)
@@ -4,9 +4,6 @@ cpu		CPU_CORTEXA
 machine		arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0f00000
-options		KERNVIRTADDR=0xc0f00000
-
 options		IPI_IRQ_START=0
 options		IPI_IRQ_END=15
 

Modified: stable/11/sys/arm/samsung/exynos/std.exynos5420
==============================================================================
--- stable/11/sys/arm/samsung/exynos/std.exynos5420	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/samsung/exynos/std.exynos5420	Sun Jan  7 00:04:13 2018	(r327658)
@@ -4,9 +4,6 @@ cpu		CPU_CORTEXA
 machine		arm armv6
 makeoptions	CONF_CFLAGS="-march=armv7a"
 
-makeoptions	KERNVIRTADDR=0xc0f00000
-options		KERNVIRTADDR=0xc0f00000
-
 options		IPI_IRQ_START=0
 options		IPI_IRQ_END=15
 

Modified: stable/11/sys/arm/ti/am335x/std.am335x
==============================================================================
--- stable/11/sys/arm/ti/am335x/std.am335x	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/ti/am335x/std.am335x	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,7 +3,4 @@
 files		"../ti/am335x/files.am335x"
 include		"../ti/std.ti"
 
-options		KERNVIRTADDR=0xc0200000		# Used in ldscript.arm
-makeoptions	KERNVIRTADDR=0xc0200000
-
 options		SOC_TI_AM335X

Modified: stable/11/sys/arm/ti/omap4/std.omap4
==============================================================================
--- stable/11/sys/arm/ti/omap4/std.omap4	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/ti/omap4/std.omap4	Sun Jan  7 00:04:13 2018	(r327658)
@@ -3,7 +3,4 @@
 files		"../ti/omap4/files.omap4"
 include		"../ti/std.ti"
 
-options		KERNVIRTADDR=0xc0200000		# Used in ldscript.arm
-makeoptions	KERNVIRTADDR=0xc0200000
-
 options		SOC_OMAP4

Modified: stable/11/sys/arm/xilinx/std.zynq7
==============================================================================
--- stable/11/sys/arm/xilinx/std.zynq7	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/arm/xilinx/std.zynq7	Sun Jan  7 00:04:13 2018	(r327658)
@@ -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: stable/11/sys/conf/Makefile.arm
==============================================================================
--- stable/11/sys/conf/Makefile.arm	Sat Jan  6 23:44:14 2018	(r327657)
+++ stable/11/sys/conf/Makefile.arm	Sun Jan  7 00:04:13 2018	(r327658)
@@ -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
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801070004.w0704D8K031297>