printf "\n\t-l ==> legacy mode character (@ etc otherwise -)"
printf "\n\t-o ==> create output file 'its_file'"
printf "\n\t-O ==> create config with dt overlay 'name:dtb'"
+ printf "\n\t-s ==> set FDT load address to 'addr' (hex)"
printf "\n\t\t(can be specified more than once)\n"
exit 1
}
DTOVERLAY=
DTADDR=
-while getopts ":A:a:c:C:D:d:e:f:i:k:l:n:o:O:v:r:H:" OPTION
+while getopts ":A:a:c:C:D:d:e:f:i:k:l:n:o:O:v:r:s:H:" OPTION
do
case $OPTION in
A ) ARCH=$OPTARG;;
o ) OUTPUT=$OPTARG;;
O ) DTOVERLAY="$DTOVERLAY ${OPTARG}";;
r ) ROOTFS=$OPTARG;;
+ s ) FDTADDR=$OPTARG;;
H ) HASH=$OPTARG;;
v ) VERSION=$OPTARG;;
* ) echo "Invalid option passed to '$0' (options:$*)"
fi
[ "$DTOVERLAY" ] && {
- dtbsize=$(wc -c "$DTB" | cut -d' ' -f1)
+ dtbsize=$(wc -c "$DTB" | awk '{print $1}')
DTADDR=$(printf "0x%08x" $(($LOAD_ADDR - $dtbsize)) )
}
+[ "$FDTADDR" ] && {
+ DTADDR="$FDTADDR"
+}
+
# Conditionally create fdt information
if [ -n "${DTB}" ]; then
FDT_NODE="
if [ -n "${ROOTFS}" ]; then
dd if="${ROOTFS}" of="${ROOTFS}.pagesync" bs=4096 conv=sync
ROOTFS_NODE="
- rootfs-$ROOTFSNUM {
+ rootfs${REFERENCE_CHAR}$ROOTFSNUM {
description = \"${ARCH_UPPER} OpenWrt ${DEVICE} rootfs\";
${COMPATIBLE_PROP}
data = /incbin/(\"${ROOTFS}.pagesync\");
overlay_blob=${overlay##*:}
ovname=${overlay%%:*}
ovnode="fdt-$ovname"
- ovsize=$(wc -c "$overlay_blob" | cut -d' ' -f1)
+ ovsize=$(wc -c "$overlay_blob" | awk '{print $1}')
echo "$ovname ($overlay_blob) : $ovsize" >&2
DTADDR=$(printf "0x%08x" $(($DTADDR - $ovsize)))
FDTOVERLAY_NODE="$FDTOVERLAY_NODE