Module Name:    src
Committed By:   thorpej
Date:           Mon Dec 17 04:37:15 UTC 2018

Modified Files:
        src/sys/conf: dts.mk

Log Message:
Add support for building overlay DT blobs specified in the kernel
config file like so:

makeoptions     DTS_OVERLAYDIR="${THISARM}/conf"
makeoptions     DTS_OVERLAYS="
        my-cool-overlay.dts
"

The result is my-cool-overlay.dtbo in the kernel compile directory.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/conf/dts.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/conf/dts.mk
diff -u src/sys/conf/dts.mk:1.9 src/sys/conf/dts.mk:1.10
--- src/sys/conf/dts.mk:1.9	Fri May 25 19:48:12 2018
+++ src/sys/conf/dts.mk	Mon Dec 17 04:37:15 2018
@@ -1,4 +1,4 @@
-# $NetBSD: dts.mk,v 1.9 2018/05/25 19:48:12 jakllsch Exp $
+# $NetBSD: dts.mk,v 1.10 2018/12/17 04:37:15 thorpej Exp $
 
 DTSARCH?=${MACHINE_CPU}
 DTSGNUARCH?=${DTSARCH}
@@ -25,9 +25,9 @@ DTSDIR+=$S/external/gpl2/dts/dist/arch/$
 .endfor
 .endfor
 
-DTSPATH=${DTSINC} ${DTSDIR} dts
+DTSPATH=${DTSINC} ${DTSDIR} ${DTS_OVERLAYDIR} dts
 
-.SUFFIXES: .dtd .dtb .dts
+.SUFFIXES: .dtd .dtdo .dtb .dtbo .dts
 
 .dts.dtd:
 	(${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \
@@ -41,6 +41,17 @@ DTSPATH=${DTSINC} ${DTSDIR} dts
 	${TOOL_SED} -e 's@null.o@${.TARGET:.dtd=.dtb}@' \
 	    -e 's@/dev/null@@') > ${.TARGET}
 
+.dts.dtdo:
+	(${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \
+	    -include ${.IMPSRC} /dev/null | \
+	${TOOL_DTC} ${DTSPATH:@v@-i ${v}@} -I dts -O dtb \
+	    -@ -o /dev/null -d /dev/stdout | \
+	${TOOL_SED} -e 's@/dev/null@${.TARGET:.dtdo=.dtbo}@' \
+	    -e 's@<stdin>@${.IMPSRC}@' && \
+	${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \
+	    -include ${.IMPSRC} -M /dev/null | \
+	${TOOL_SED} -e 's@null.o@${.TARGET:.dtdo=.dtbo}@' \
+	    -e 's@/dev/null@@') > ${.TARGET}
 
 .dts.dtb:
 	${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \
@@ -48,9 +59,17 @@ DTSPATH=${DTSINC} ${DTSDIR} dts
 	${TOOL_DTC} ${DTSPATH:@v@-i ${v}@} -I dts -O dtb \
 	    -p ${DTSPADDING} -b 0 -@ -o ${.TARGET}
 
-.PATH.dts: ${DTSDIR}
+.dts.dtbo:
+	${CPP} -P -xassembler-with-cpp ${DTSPATH:@v@-I ${v}@} \
+	    -include ${.IMPSRC} /dev/null | \
+	${TOOL_DTC} ${DTSPATH:@v@-i ${v}@} -I dts -O dtb \
+	    -@ -o ${.TARGET}
+
+.PATH.dts: ${DTSDIR} ${DTS_OVERLAYDIR}
 
 DEPS+= ${DTS:.dts=.dtd}
-DTB= ${DTS:.dts=.dtb}
+DEPS+= ${DTS_OVERLAYS:.dts=.dtdo}
+DTB=  ${DTS:.dts=.dtb}
+DTBO= ${DTS_OVERLAYS:.dts=.dtbo}
 
-all: ${DTB}
+all: ${DTB} ${DTBO}

Reply via email to