diff options
-rwxr-xr-x | sys/tools/fdt/embed_dtb.sh | 44 | ||||
-rwxr-xr-x | sys/tools/fdt/make_dtbh.sh | 8 |
2 files changed, 52 insertions, 0 deletions
diff --git a/sys/tools/fdt/embed_dtb.sh b/sys/tools/fdt/embed_dtb.sh new file mode 100755 index 0000000..7869a20 --- /dev/null +++ b/sys/tools/fdt/embed_dtb.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# +# Copyright (c) 2010 The FreeBSD Foundation +# All rights reserved. +# +# This software was developed by Semihalf under sponsorship from +# the FreeBSD Foundation. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ + +# $1: kernel filename +# $2: device tree blob filename + +dtbsize=`ls -l $2 | awk '{print $5}'` +obs=`strings -at d $1 | grep "Device Tree Blob STARTS here" | awk '{print $1}'` +eol=`strings -at d $1 | grep "Device Tree Blob STOPS here" | awk '{print $1}'` +sz=$((eol - obs)); +if [ $sz -lt $dtbsize ] +then + echo "Selected blob is too big to reembed. Please rebuild the kernel." + exit +fi +dd if=$2 ibs=${dtbsize} of=$1 obs=${obs} oseek=1 conv=notrunc 2> /dev/null diff --git a/sys/tools/fdt/make_dtbh.sh b/sys/tools/fdt/make_dtbh.sh new file mode 100755 index 0000000..c2d41b6 --- /dev/null +++ b/sys/tools/fdt/make_dtbh.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +# $FreeBSD$ + +# Script generates a $2/fdt_static_dtb.h file. + +dtb_base_name=`basename $1 .dts` +echo '#define FDT_DTB_FILE "'${dtb_base_name}.dtb'"' > $2/fdt_static_dtb.h |