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.
This commit is contained in:
Ian Lepore 2019-06-24 01:42:09 +00:00
parent d8ddb98a5e
commit 5364951d98
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=349327
4 changed files with 117 additions and 51 deletions

View File

@ -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
options ARM_MANY_BOARD
device nand
# IIC
device twsi
nooptions SMP
nooptions MAXCPU
# Undo options from sys/conf/NOTES that we do not want...
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

38
sys/arm/conf/NOTES.armv5 Normal file
View File

@ -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

64
sys/arm/conf/NOTES.armv7 Normal file
View File

@ -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"

View File

@ -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