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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to