Author: raj
Date: Sun Jun 13 13:02:43 2010
New Revision: 209128
URL: http://svn.freebsd.org/changeset/base/209128

Log:
  Connect FDT infrastructure to the build system.
  
  Reviewed by:  imp
  Sponsored by: The FreeBSD Foundation

Modified:
  head/Makefile
  head/Makefile.inc1
  head/gnu/usr.bin/Makefile
  head/sys/conf/files

Modified: head/Makefile
==============================================================================
--- head/Makefile       Sun Jun 13 12:58:31 2010        (r209127)
+++ head/Makefile       Sun Jun 13 13:02:43 2010        (r209128)
@@ -89,7 +89,8 @@ TGTS= all all-man buildenv buildenvvars 
        obj objlink regress rerelease showconfig tags toolchain update \
        _worldtmp _legacy _bootstrap-tools _cleanobj _obj \
        _build-tools _cross-tools _includes _libraries _depend \
-       build32 distribute32 install32 xdev xdev-build xdev-install
+       build32 builddtb distribute32 install32 xdev xdev-build xdev-install \
+
 TGTS+= ${SUBDIR_TARGETS}
 
 BITGTS=        files includes

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1  Sun Jun 13 12:58:31 2010        (r209127)
+++ head/Makefile.inc1  Sun Jun 13 13:02:43 2010        (r209128)
@@ -968,6 +968,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/
     lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge
 .endif
 
+.if ${MK_FDT} != "no"
+_dtc= gnu/usr.bin/dtc
+.endif
+
 bootstrap-tools:
 .for _tool in \
     ${_clang_tblgen} \
@@ -976,6 +980,7 @@ bootstrap-tools:
     ${_gperf} \
     ${_groff} \
     ${_ar} \
+    ${_dtc} \
     usr.bin/lorder \
     usr.bin/makewhatis \
     ${_mklocale} \
@@ -1448,3 +1453,39 @@ _xi-links:
                            ../../../../usr/bin/${XDDIR}${OSREL}-$$i; \
                done
 .endif
+
+.if !empty(KRNLOBJDIR) && !empty(KERNCONF)
+DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/
+
+.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE)
+FDT_DTS_FILE!=  grep "^makeoptions[[:space:]]\+FDT_DTS_FILE" \
+       ${KERNCONFDIR}/${KERNCONF} 2> /dev/null | cut -d= -f2
+.endif
+
+.endif
+
+.if !defined(DTBOUTPUTPATH) || !exists(${DTBOUTPUTPATH})
+DTBOUTPUTPATH= ${.CURDIR}
+.endif
+
+#
+# Build 'standalone' Device Tree Blob
+#
+builddtb:
+       @if [ "${FDT_DTS_FILE}" = "" ]; then \
+               echo "ERROR: FDT_DTS_FILE must be specified!"; \
+               exit 1; \
+       fi;     \
+       if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ]; then \
+               echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \
+                       exist!"; \
+               exit 1; \
+       fi;     \
+       if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then  \
+               echo "WARNING: DTB will be placed in the current working \
+                       directory"; \
+       fi
+       @PATH=${TMPPATH} \
+       dtc -O dtb -o \
+           ${DTBOUTPUTPATH}/`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 \
+           -p 1024 ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE}

Modified: head/gnu/usr.bin/Makefile
==============================================================================
--- head/gnu/usr.bin/Makefile   Sun Jun 13 12:58:31 2010        (r209127)
+++ head/gnu/usr.bin/Makefile   Sun Jun 13 13:02:43 2010        (r209128)
@@ -8,6 +8,7 @@ SUBDIR= ${_binutils} \
        dialog \
        diff \
        diff3 \
+       ${_dtc} \
        ${_gdb} \
        ${_gperf} \
        ${_grep} \
@@ -31,6 +32,10 @@ _groff=              groff
 _cvs=          cvs
 .endif
 
+.if ${MK_FDT}  != "no"
+_dtc=          dtc
+.endif
+
 .if ${MK_GNU_GREP} != "no"
 _grep=         grep
 .endif

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Sun Jun 13 12:58:31 2010        (r209127)
+++ head/sys/conf/files Sun Jun 13 13:02:43 2010        (r209128)
@@ -55,6 +55,18 @@ emu10k1-alsa%diked.h         optional snd_emu10
        compile-with    "CC='${CC}' AWK=${AWK} sh 
$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h 
emu10k1-alsa%diked.h" \
        no-obj no-implicit-rule before-depend                              \
        clean           "emu10k1-alsa%diked.h"
+#
+# The 'fdt_dtb_file' target covers an actual DTB file name, which is derived
+# from the specified source (DTS) file: <platform>.dts -> <platform>.dtb
+#
+fdt_dtb_file                   optional fdt \
+       compile-with "if [ -f $S/boot/fdt/dts/${FDT_DTS_FILE} ]; then dtc -O 
dtb -o `echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 -p 1024 
$S/boot/fdt/dts/${FDT_DTS_FILE}; fi" \
+       no-obj no-implicit-rule before-depend   \
+       clean           "`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb"
+fdt_static_dtb.h               optional fdt fdt_dtb_static \
+       compile-with "sh $S/tools/fdt/make_dtbh.sh ${FDT_DTS_FILE} ." \
+       no-obj no-implicit-rule before-depend \
+       clean           "fdt_static_dtb.h"
 p16v-alsa%diked.h              optional snd_emu10kx pci                        
   \
        dependency      "$S/tools/sound/emu10k1-mkalsa.sh 
$S/gnu/dev/sound/pci/p16v-alsa.h" \
        compile-with    "CC='${CC}' AWK=${AWK} sh 
$S/tools/sound/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h 
p16v-alsa%diked.h" \
@@ -302,6 +314,12 @@ contrib/ipfilter/netinet/ip_sync.c optio
        compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
 contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet \
        compile-with "${NORMAL_C} -I$S/contrib/ipfilter"
+contrib/libfdt/fdt.c                   optional        fdt
+contrib/libfdt/fdt_ro.c                        optional        fdt
+contrib/libfdt/fdt_rw.c                        optional        fdt
+contrib/libfdt/fdt_strerror.c          optional        fdt
+contrib/libfdt/fdt_sw.c                        optional        fdt
+contrib/libfdt/fdt_wip.c               optional        fdt
 contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm \
        compile-with "${NORMAL_C_NOWERROR} -I$S/contrib/ngatm"
 contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm \
@@ -961,6 +979,11 @@ dev/ex/if_ex_pccard.c              optional ex pccar
 dev/exca/exca.c                        optional cbb
 dev/fatm/if_fatm.c             optional fatm pci
 dev/fb/splash.c                        optional splash
+dev/fdt/fdt_common.c           optional fdt
+dev/fdt/fdt_pci.c              optional fdt pci
+dev/fdt/fdt_static_dtb.S       optional fdt fdt_dtb_static
+dev/fdt/fdtbus.c               optional fdt
+dev/fdt/simplebus.c            optional fdt
 dev/fe/if_fe.c                 optional fe
 dev/fe/if_fe_pccard.c          optional fe pccard
 dev/firewire/firewire.c                optional firewire
@@ -1659,6 +1682,7 @@ dev/txp/if_txp.c          optional txp inet
 dev/uart/uart_bus_acpi.c       optional uart acpi
 #dev/uart/uart_bus_cbus.c      optional uart cbus
 dev/uart/uart_bus_ebus.c       optional uart ebus
+dev/uart/uart_bus_fdt.c                optional uart fdt
 dev/uart/uart_bus_isa.c                optional uart isa
 dev/uart/uart_bus_pccard.c     optional uart pccard
 dev/uart/uart_bus_pci.c                optional uart pci
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to