Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Jan 2015 18:28:06 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r276846 - in head: share/mk sys/arm/conf sys/conf sys/modules/dtb sys/modules/dtb/atmel
Message-ID:  <201501081828.t08IS6Kf021746@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Thu Jan  8 18:28:06 2015
New Revision: 276846
URL: https://svnweb.freebsd.org/changeset/base/276846

Log:
  Add infrastructure to build dtb files from dts files.

Added:
  head/share/mk/bsd.dtb.mk   (contents, props changed)
  head/sys/conf/dtb.mk   (contents, props changed)
  head/sys/modules/dtb/
  head/sys/modules/dtb/atmel/
  head/sys/modules/dtb/atmel/Makefile   (contents, props changed)
Modified:
  head/share/mk/Makefile
  head/sys/arm/conf/ATMEL

Modified: head/share/mk/Makefile
==============================================================================
--- head/share/mk/Makefile	Thu Jan  8 18:09:36 2015	(r276845)
+++ head/share/mk/Makefile	Thu Jan  8 18:28:06 2015	(r276846)
@@ -11,6 +11,7 @@ FILES=	\
 	bsd.crunchgen.mk \
 	bsd.dep.mk \
 	bsd.doc.mk \
+	bsd.dtb.mk \
 	bsd.endian.mk \
 	bsd.files.mk \
 	bsd.incs.mk \

Added: head/share/mk/bsd.dtb.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/mk/bsd.dtb.mk	Thu Jan  8 18:28:06 2015	(r276846)
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+# Search for kernel source tree in standard places.
+.for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
+    ${.CURDIR}/../../../../.. /sys /usr/src/sys
+.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
+SYSDIR=	${_dir}
+.endif
+.endfor
+.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
+    !exists(${SYSDIR}/conf/kmod.mk)
+.error Unable to locate the kernel source tree. Set SYSDIR to override.
+.endif
+
+.include "${SYSDIR}/conf/dtb.mk"
+
+.include <bsd.sys.mk>

Modified: head/sys/arm/conf/ATMEL
==============================================================================
--- head/sys/arm/conf/ATMEL	Thu Jan  8 18:09:36 2015	(r276845)
+++ head/sys/arm/conf/ATMEL	Thu Jan  8 18:28:06 2015	(r276846)
@@ -15,7 +15,7 @@ makeoptions	KERNVIRTADDR=0xc0000000
 options 	KERNPHYSADDR=0x20000000
 options 	KERNVIRTADDR=0xc0000000
 
-makeoptions	MODULES_OVERRIDE=""
+makeoptions	MODULES_OVERRIDE="dtb/atmel"
 
 # list all boards here, but not just yet (no multiboard in mainline).
 options 	ARM_MANY_BOARD

Added: head/sys/conf/dtb.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/conf/dtb.mk	Thu Jan  8 18:28:06 2015	(r276846)
@@ -0,0 +1,75 @@
+# $FreeBSD$
+#
+# The include file <dtb.mk> handles building and installing dtb files.
+#
+# +++ variables +++
+#
+# DTS		List of the dts files to build and install.
+#
+# DTBDIR	Base path for dtb modules [/boot/dtb]
+#
+# DTBOWN	.dtb file owner. [${BINOWN}]
+#
+# DTBGRP	.dtb file group. [${BINGRP}]
+#
+# DTBMODE	Module file mode. [${BINMODE}]
+#
+# DESTDIR	The tree where the module gets installed. [not set]
+#
+# +++ targets +++
+#
+# 	install:
+#               install the kernel module; if the Makefile
+#               does not itself define the target install, the targets
+#               beforeinstall and afterinstall may also be used to cause
+#               actions immediately before and after the install target
+#		is executed.
+#
+
+.include <bsd.init.mk>
+# Grab all the options for a kernel build. For backwards compat, we need to
+# do this after bsd.own.mk.
+.include "kern.opts.mk"
+
+# Search for kernel source tree in standard places.
+.for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
+.if !defined(SYSDIR) && exists(${_dir}/kern/)
+SYSDIR=	${_dir}
+.endif
+.endfor
+.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/)
+.error "can't find kernel source tree"
+.endif
+
+.SUFFIXES: .dtb .dts
+
+.PATH: ${SYSDIR}/gnu/dts/${MACHINE} ${SYSDIR}/boot/fdt/dts/${MACHINE}
+
+DTBDIR?=/boot/dtb
+DTB=${DTS:R:S/$/.dtb/}
+
+all: ${DTB}
+
+.if defined(DTS)
+.for _dts in ${DTS}
+${_dts:R:S/$/.dtb/}:	${_dts}
+	@echo Generating ${.TARGET} from ${_dts}
+	@${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} ${.OBJDIR}
+CLEANFILES+=${_dts:R:S/$/.dtb/}
+.endfor
+.endif
+
+.if !target(install)
+.if !target(realinstall)
+realinstall: _dtbinstall
+.ORDER: beforeinstall _kmodinstall
+_dtbinstall:
+.for _dtb in ${DTB}
+	${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
+	    ${_INSTALLFLAGS} ${_dtb} ${DESTDIR}${DTBDIR}
+.endfor
+.endif # !target(realinstall)
+.endif # !target(install)
+
+.include <bsd.dep.mk>
+.include <bsd.obj.mk>

Added: head/sys/modules/dtb/atmel/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/modules/dtb/atmel/Makefile	Thu Jan  8 18:28:06 2015	(r276846)
@@ -0,0 +1,9 @@
+# $FreeBSD$
+# All the dts files for the boards we might likely support made by Atmel,
+# plus the SAMA5 offerings.
+DTS=at91-sama5d3_xplained.dts at91sam9g20ek.dts ethernut5.dts \
+	at91-qil_a9260.dts sama5d31ek.dts sama5d33ek.dts  sama5d34ek.dts \
+	sama5d35ek.dts sama5d36ek.dts tny_a9260.dts tny_a9g20.dts \
+	usb_a9260.dts usb_a9g20.dts
+
+.include <bsd.dtb.mk>



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