Module Name: src
Committed By: skrll
Date: Sun Mar 21 09:00:55 UTC 2021
Modified Files:
src/sys/arch/arm/arm32: arm32_kvminit.c
src/sys/arch/evbarm/conf: Makefile.evbarm.inc std.generic std.rpi
Log Message:
-DKERNEL_BASE_VOFFSET= has annoyed me for the last time...
Introduce KERNEL_VOFFSET_RUNTIME which prevents the addition of
-DKERNEL_BASE_VOFFSET= to the command line and use it on the
__HAVE_GENERIC_START kernels which do runtime calculation of the
offset.
To generate a diff of this commit:
cvs rdiff -u -r1.67 -r1.68 src/sys/arch/arm/arm32/arm32_kvminit.c
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/evbarm/conf/Makefile.evbarm.inc
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/evbarm/conf/std.generic
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/evbarm/conf/std.rpi
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/arm32/arm32_kvminit.c
diff -u src/sys/arch/arm/arm32/arm32_kvminit.c:1.67 src/sys/arch/arm/arm32/arm32_kvminit.c:1.68
--- src/sys/arch/arm/arm32/arm32_kvminit.c:1.67 Sat Dec 12 09:27:31 2020
+++ src/sys/arch/arm/arm32/arm32_kvminit.c Sun Mar 21 09:00:55 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: arm32_kvminit.c,v 1.67 2020/12/12 09:27:31 skrll Exp $ */
+/* $NetBSD: arm32_kvminit.c,v 1.68 2021/03/21 09:00:55 skrll Exp $ */
/*
* Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved.
@@ -127,7 +127,7 @@
#include "opt_multiprocessor.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.67 2020/12/12 09:27:31 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.68 2021/03/21 09:00:55 skrll Exp $");
#include <sys/param.h>
@@ -165,6 +165,12 @@ __KERNEL_RCSID(0, "$NetBSD: arm32_kvmini
#define VPRINTF(...) __nothing
#endif
+#if defined(__HAVE_GENERIC_START)
+#if defined(KERNEL_BASE_VOFFSET)
+#error KERNEL_BASE_VOFFSET should not be defined with __HAVE_GENERIC_START
+#endif
+#endif
+
struct bootmem_info bootmem_info;
extern void *msgbufaddr;
Index: src/sys/arch/evbarm/conf/Makefile.evbarm.inc
diff -u src/sys/arch/evbarm/conf/Makefile.evbarm.inc:1.34 src/sys/arch/evbarm/conf/Makefile.evbarm.inc:1.35
--- src/sys/arch/evbarm/conf/Makefile.evbarm.inc:1.34 Tue Aug 25 02:38:15 2015
+++ src/sys/arch/evbarm/conf/Makefile.evbarm.inc Sun Mar 21 09:00:55 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.evbarm.inc,v 1.34 2015/08/25 02:38:15 uebayasi Exp $
+# $NetBSD: Makefile.evbarm.inc,v 1.35 2021/03/21 09:00:55 skrll Exp $
#
# If this is a install kernel and the ramdisk image exists in the object
@@ -20,6 +20,11 @@ SYSTEM_LD_TAIL_EXTRA+=; \
.include "${BOARDMKFRAG}"
.endif
+#
+# All boards should use a runtime calculation of kern_vtopdiff, but
+# support the leagacy compile time method.
+#
+.if !defined(KERNEL_VOFFSET_RUNTIME)
.if defined(KERNEL_BASE_PHYS) && defined(KERNEL_BASE_VIRT)
. if ${KERNEL_BASE_PHYS} == ${KERNEL_BASE_VIRT}
CPPFLAGS+=-DKERNEL_BASES_EQUAL -DKERNEL_BASE_VOFFSET=0
@@ -27,6 +32,7 @@ CPPFLAGS+=-DKERNEL_BASES_EQUAL -DKERNEL_
CPPFLAGS+=-DKERNEL_BASE_VOFFSET="(${KERNEL_BASE_VIRT}-${KERNEL_BASE_PHYS})"
. endif
.endif
+.endif
EXTRA_CLEAN+= ${KERNELS:=.map}
Index: src/sys/arch/evbarm/conf/std.generic
diff -u src/sys/arch/evbarm/conf/std.generic:1.8 src/sys/arch/evbarm/conf/std.generic:1.9
--- src/sys/arch/evbarm/conf/std.generic:1.8 Fri Aug 14 16:18:37 2020
+++ src/sys/arch/evbarm/conf/std.generic Sun Mar 21 09:00:55 2021
@@ -1,4 +1,4 @@
-# $NetBSD: std.generic,v 1.8 2020/08/14 16:18:37 skrll Exp $
+# $NetBSD: std.generic,v 1.9 2021/03/21 09:00:55 skrll Exp $
#
# generic NetBSD/evbarm with FDT support
@@ -34,6 +34,10 @@ options __HAVE_PCI_MSI_MSIX
makeoptions BOARDMKFRAG="${THISARM}/conf/mk.generic"
+# Prevent the addition of a command line -DKERNEL_BASE_VOFFSET= as it
+# is done at runtime.
+makeoptions KERNEL_VOFFSET_RUNTIME=1
+
# The physical address is chosen by u-boot and determined by armv6_start.S.
# The 64 byte offset is due to u-boot header.
makeoptions KERNEL_BASE_PHYS="0x00000040"
Index: src/sys/arch/evbarm/conf/std.rpi
diff -u src/sys/arch/evbarm/conf/std.rpi:1.24 src/sys/arch/evbarm/conf/std.rpi:1.25
--- src/sys/arch/evbarm/conf/std.rpi:1.24 Thu Oct 18 09:01:54 2018
+++ src/sys/arch/evbarm/conf/std.rpi Sun Mar 21 09:00:55 2021
@@ -1,4 +1,4 @@
-# $NetBSD: std.rpi,v 1.24 2018/10/18 09:01:54 skrll Exp $
+# $NetBSD: std.rpi,v 1.25 2021/03/21 09:00:55 skrll Exp $
#
# standard NetBSD/evbarm for Raspberry Pi options
@@ -26,3 +26,7 @@ options __HAVE_MM_MD_DIRECT_MAPPED_PHYS
makeoptions BOARDMKFRAG="${THISARM}/conf/mk.rpi"
makeoptions LOADADDRESS="0x80008000"
+
+# Prevent the addition of a command line -DKERNEL_BASE_VOFFSET= as it
+# is done at runtime.
+makeoptions KERNEL_VOFFSET_RUNTIME=1