Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Jun 2019 01:42:09 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r349327 - in head/sys: arm/conf conf
Message-ID:  <201906240142.x5O1g9LA062382@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Mon Jun 24 01:42:09 2019
New Revision: 349327
URL: https://svnweb.freebsd.org/changeset/base/349327

Log:
  Build an armv7 LINT kernel in addition to armv5 LINT.  You might think this
  had been done years ago.  I did.  All this time we've only compiled a LINT
  kernel for TARGET_ARCH=arm.  Now separate LINT-V5 and LINT-V7 configs are
  generated and built.
  
  There are two new files in arm/conf, NOTES.armv5 and NOTES.armv7, containing
  some of what used to be in the arm NOTES file.  That file now contains only
  the bits that are common to v5 and v7.
  
  The makeLINT.mk file now creates the LINT-V5 and LINT-V7 files by concatening
  sys/conf/NOTES, arm/conf/NOTES, and arm/conf/NOTES.armv{5,7} in that order.

Added:
  head/sys/arm/conf/NOTES.armv5   (contents, props changed)
  head/sys/arm/conf/NOTES.armv7   (contents, props changed)
Modified:
  head/sys/arm/conf/NOTES
  head/sys/conf/makeLINT.mk

Modified: head/sys/arm/conf/NOTES
==============================================================================
--- head/sys/arm/conf/NOTES	Sun Jun 23 21:21:11 2019	(r349326)
+++ head/sys/arm/conf/NOTES	Mon Jun 24 01:42:09 2019	(r349327)
@@ -1,44 +1,22 @@
 # $FreeBSD$
 
-machine	arm
-
-cpu	CPU_ARM9E
-
-files	"../mv/files.mv"
-files	"../mv/discovery/files.db78xxx"
-files	"../mv/kirkwood/files.kirkwood"
-files	"../mv/orion/files.db88f5xxx"
-files	"../mv/orion/files.ts7800"
-
-makeoptions	CONF_CFLAGS+="-march=armv5te"
-makeoptions	LDFLAGS="-zmuldefs"
-makeoptions	KERNPHYSADDR=0x00000000
-
 options 	FDT
 
-options 	SOC_MV_DISCOVERY
-options 	SOC_MV_KIRKWOOD
-options 	SOC_MV_ORION
+# Undo options from sys/conf/NOTES that we do not want...
 
-options 	ARM_MANY_BOARD
-device		nand
-
-# IIC
-device		twsi
-
-nooptions	SMP
-nooptions	MAXCPU
-
 nooptions	COMPAT_FREEBSD4
 nooptions	COMPAT_FREEBSD5
 nooptions	COMPAT_FREEBSD6
 nooptions	COMPAT_FREEBSD7
 nooptions	COMPAT_FREEBSD9
-nooption	PPC_PROBE_CHIPSET
+nooptions	PPC_PROBE_CHIPSET
+nooptions	MAXCPU		# value is set in machine/param.h
 
+# Devices in sys/conf/NOTES for which no such hardware exists on arm,
+# or the drivers don't compile...
+
 nodevice	fdc
 nodevice	sym
-nodevice	ukbd
 
 nodevice	sc
 nodevice	blank_saver
@@ -58,28 +36,9 @@ nodevice	cxgbe
 nodevice	cxgbev
 nodevice	snd_cmi
 
-#
-# Enable the kernel DTrace hooks which are required to load the DTrace
-# kernel modules.
-#
-options 	KDTRACE_HOOKS
-
-# DTrace core
-# NOTE: introduces CDDL-licensed components into the kernel
-#device		dtrace
-
-# DTrace modules
-#device		dtrace_profile
-#device		dtrace_sdt
-#device		dtrace_fbt
-#device		dtrace_systrace
-#device		dtrace_prototype
-#device		dtnfscl
-#device		dtmalloc
-
-# Alternatively include all the DTrace modules
-#device		dtraceall
-
-# These aren't known to work on arm and/or don't compile
 nodevice	mpr
 nodevice	mps
+
+# Add devices which are specific to various arm platforms...
+
+device		twsi		# i2c controller on Marvel and Allwinner

Added: head/sys/arm/conf/NOTES.armv5
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/NOTES.armv5	Mon Jun 24 01:42:09 2019	(r349327)
@@ -0,0 +1,38 @@
+# armv5-specific changes for doing a LINT build.
+#
+# The contents of sys/conf/NOTES, sys/arm/conf/NOTES, and this file are
+# concatenated (in that order) to create the LINT-V5 kernel config file.
+#
+# $FreeBSD$
+
+#NO_UNIVERSE  
+
+machine		arm arm
+cpu		CPU_ARM9E
+
+files	"../mv/files.mv"
+files	"../mv/discovery/files.db78xxx"
+files	"../mv/kirkwood/files.kirkwood"
+files	"../mv/orion/files.db88f5xxx"
+files	"../mv/orion/files.ts7800"
+
+makeoptions	CONF_CFLAGS+="-march=armv5te"
+makeoptions	LDFLAGS="-zmuldefs"
+makeoptions	KERNPHYSADDR=0x00000000
+
+# Undo options from sys/conf/NOTES that we do not want...
+
+nooptions 	SMP		# All armv5 are single-core
+
+# Add options for armv5 that are not in sys/conf/NOTES...
+
+options 	ARM_MANY_BOARD
+
+options 	SOC_MV_DISCOVERY
+options 	SOC_MV_KIRKWOOD
+options 	SOC_MV_ORION
+
+# Add devices which are specific to various arm platforms...
+
+device		nand
+

Added: head/sys/arm/conf/NOTES.armv7
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/arm/conf/NOTES.armv7	Mon Jun 24 01:42:09 2019	(r349327)
@@ -0,0 +1,64 @@
+# armv7-specific changes for doing a LINT build.
+#
+# The contents of sys/conf/NOTES, sys/arm/conf/NOTES, and this file are
+# concatenated (in that order) to create the LINT-V7 kernel config file.
+#
+# $FreeBSD$
+
+
+#NO_UNIVERSE
+
+machine		arm armv7
+cpu		CPU_CORTEXA
+cpu		CPU_MV_PJ4B
+makeoptions	CONF_CFLAGS+="-march=armv7a"
+
+# Add options for armv7 that are not in sys/conf/NOTES...
+
+options 	ARM_L2_PIPT		# Only L2 PIPT is supported
+options 	FREEBSD_BOOT_LOADER	# Process metadata passed from loader(8)
+options 	INTRNG			# Include INTRNG framework
+options 	LINUX_BOOT_ABI		# Process metadata passed from U-Boot
+options 	PLATFORM		# Include platform_if support
+options 	SMP			# Most v7 SoCs are multicore
+options 	VFP			# Enable floating point hardware support
+
+# NOTE: dtrace introduces CDDL-licensed components into the kernel
+device		dtrace			# dtrace core
+device		dtraceall		# include all dtrace modules
+options 	KDTRACE_HOOKS
+
+# Add misc devices which are specific to various arm platforms...
+
+device		generic_timer   # ARM Generic Timer
+device		gic		# Interrupt controller
+device		gpio		# gpio interface and bus
+device		mpcore_timer	# ARM MPCore Timer
+device		pl310		# PL310 L2 cache controller
+device		pmu		# PMU support (for CCNT).
+
+# Add EXT_RESOURCES pseudo devices...
+
+options 	EXT_RESOURCES
+device		clk
+device		phy
+device		hwreset
+device		nvmem
+device		regulator
+device		syscon
+
+# Build SOC-specific modules...
+
+makeoptions	MODULES_EXTRA+="allwinner"
+makeoptions	MODULES_EXTRA+="arm_ti"
+makeoptions	MODULES_EXTRA+="imx"
+
+# Build dtb files...
+
+makeoptions	MODULES_EXTRA+="dtb/allwinner"
+makeoptions	MODULES_EXTRA+="dtb/am335x"
+makeoptions	MODULES_EXTRA+="dtb/imx6"
+makeoptions	MODULES_EXTRA+="dtb/nvidia"
+makeoptions	MODULES_EXTRA+="dtb/omap4"
+makeoptions	MODULES_EXTRA+="dtb/rpi"
+makeoptions	MODULES_EXTRA+="dtb/zynq"

Modified: head/sys/conf/makeLINT.mk
==============================================================================
--- head/sys/conf/makeLINT.mk	Sun Jun 23 21:21:11 2019	(r349326)
+++ head/sys/conf/makeLINT.mk	Mon Jun 24 01:42:09 2019	(r349327)
@@ -47,6 +47,11 @@ LINT: ${NOTES} ${MAKELINT_SED}
 	echo "nodevice txp"		>> ${.TARGET}-NOIP
 	echo "nodevice netmap"		>> ${.TARGET}-NOIP
 .endif
+.if ${TARGET} == "arm"
+	cat ${.TARGET} ${.CURDIR}/NOTES.armv5 > ${.TARGET}-V5
+	cat ${.TARGET} ${.CURDIR}/NOTES.armv7 > ${.TARGET}-V7
+	rm ${.TARGET}
+.endif
 .if ${TARGET} == "mips"
 	echo "machine	${TARGET} ${TARGET_ARCH}" >> ${.TARGET}
 .endif



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