Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F140113437
D14782.id40710.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D14782.id40710.diff
View Options
Index: head/share/mk/bsd.own.mk
===================================================================
--- head/share/mk/bsd.own.mk
+++ head/share/mk/bsd.own.mk
@@ -146,6 +146,7 @@
KMODGRP?= ${BINGRP}
KMODMODE?= ${BINMODE}
DTBDIR?= /boot/dtb
+DTBODIR?= /boot/dtb/overlays
DTBOWN?= root
DTBGRP?= wheel
DTBMODE?= 444
Index: head/sys/arm/conf/GENERIC
===================================================================
--- head/sys/arm/conf/GENERIC
+++ head/sys/arm/conf/GENERIC
@@ -246,4 +246,4 @@
# Flattened Device Tree
options FDT # Configure using FDT/DTB data
-makeoptions MODULES_EXTRA="dtb/allwinner dtb/am335x dtb/imx6 dtb/nvidia dtb/rpi dtb/zynq dtb/omap4"
+makeoptions MODULES_EXTRA="dtb/allwinner dtb/am335x dtb/imx6 dtb/nvidia dtb/rpi dtb/zynq dtb/omap4 dtb/overlays"
Index: head/sys/conf/dtb.mk
===================================================================
--- head/sys/conf/dtb.mk
+++ head/sys/conf/dtb.mk
@@ -45,13 +45,14 @@
.error "can't find kernel source tree"
.endif
-.SUFFIXES: .dtb .dts
+.SUFFIXES: .dtb .dts .dtbo .dtso
-.PATH: ${SYSDIR}/gnu/dts/${MACHINE} ${SYSDIR}/dts/${MACHINE}
+.PATH: ${SYSDIR}/gnu/dts/${MACHINE} ${SYSDIR}/dts/${MACHINE} ${SYSDIR}/dts/${MACHINE}/overlays
DTB=${DTS:R:S/$/.dtb/}
+DTBO=${DTSO:R:S/$/.dtbo/}
-all: ${DTB}
+all: ${DTB} ${DTBO}
.if defined(DTS)
.export DTC
@@ -63,6 +64,16 @@
.endfor
.endif
+.if defined(DTSO)
+.export DTC
+.for _dtso in ${DTSO}
+${_dtso:R:S/$/.dtbo/}: ${_dtso} ${OP_META}
+ @echo Generating ${.TARGET} from ${_dtso}
+ @${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} overlays/${_dtso} ${.OBJDIR}
+CLEANFILES+=${_dtso:R:S/$/.dtbo/}
+.endfor
+.endif
+
.if !target(install)
.if !target(realinstall)
realinstall: _dtbinstall
@@ -75,6 +86,11 @@
.for _dtb in ${DTB}
${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
${_INSTALLFLAGS} ${_dtb} ${DESTDIR}${DTBDIR}/
+.endfor
+ test -d ${DESTDIR}${DTBODIR} || ${INSTALL} -d -o ${DTBOWN} -g ${DTBGRP} ${DESTDIR}${DTBODIR}
+.for _dtbo in ${DTBO}
+ ${INSTALL} -o ${DTBOWN} -g ${DTBGRP} -m ${DTBMODE} \
+ ${_INSTALLFLAGS} ${_dtbo} ${DESTDIR}${DTBODIR}/
.endfor
.endif # !target(realinstall)
.endif # !target(install)
Index: head/sys/dts/Makefile.inc
===================================================================
--- head/sys/dts/Makefile.inc
+++ head/sys/dts/Makefile.inc
@@ -6,5 +6,8 @@
.for dts in ${DTS}
@env MACHINE=`basename ${.CURDIR}` ${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${dts} /tmp
-.endfor
+test-dtso:
+.for dtso in ${DTSO}
+ @env MACHINE=`basename ${.CURDIR}` ${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} ${dtso} /tmp
+.endfor
Index: head/sys/dts/arm/overlays/Makefile
===================================================================
--- head/sys/dts/arm/overlays/Makefile
+++ head/sys/dts/arm/overlays/Makefile
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+DTSO!=ls *.dtso
+
+all: test-dtso
+
+.include <bsd.init.mk>
Index: head/sys/dts/arm/overlays/sun8i-h3-sid.dtso
===================================================================
--- head/sys/dts/arm/overlays/sun8i-h3-sid.dtso
+++ head/sys/dts/arm/overlays/sun8i-h3-sid.dtso
@@ -0,0 +1,18 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun8i-h3";
+
+ fragment@0 {
+ target-path = "/soc";
+
+ __overlay__ {
+ sid: eeprom@1c14000 {
+ compatible = "allwinner,sun8i-h3-sid";
+ reg = <0x1c14000 0x400>;
+ status = "okay";
+ };
+ };
+ };
+};
Index: head/sys/modules/dtb/overlays/Makefile
===================================================================
--- head/sys/modules/dtb/overlays/Makefile
+++ head/sys/modules/dtb/overlays/Makefile
@@ -0,0 +1,5 @@
+# $FreeBSD$
+# All the dtso files
+DTSO= sun8i-h3-sid.dtso
+
+.include <bsd.dtb.mk>
Index: head/sys/tools/fdt/make_dtbo.sh
===================================================================
--- head/sys/tools/fdt/make_dtbo.sh
+++ head/sys/tools/fdt/make_dtbo.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $FreeBSD$
+
+# Script generates dtbo file ($3) from dtso source ($2) in build tree S ($1)
+S=$1
+dtso="$2"
+dtbo_path=$3
+
+if [ -z "$dtso" ]; then
+ echo "No DTS overlays specified"
+ exit 1
+fi
+
+if [ -z "${MACHINE}" ]; then
+ MACHINE=$(uname -m)
+fi
+
+: ${DTC:=dtc}
+
+for d in ${dtso}; do
+ dtb=${dtbo_path}/`basename $d .dtso`.dtbo
+ echo "converting $d -> $dtb"
+ cpp -P -x assembler-with-cpp -I $S/gnu/dts/include -I $S/dts/${MACHINE} -I $S/gnu/dts/${MACHINE} -include $d /dev/null |
+ ${DTC} -@ -O dtb -o $dtb -i $S/dts/${MACHINE} -i $S/gnu/dts/${MACHINE}
+done
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 21, 10:13 AM (13 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27111279
Default Alt Text
D14782.id40710.diff (4 KB)
Attached To
Mode
D14782: Add dtb overlays support
Attached
Detach File
Event Timeline
Log In to Comment