diff --git a/board/boundary/bootscripts/image-gzwrite.txt b/board/boundary/bootscripts/image-gzwrite.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5aeecdd08ece11bad8428b523fb1bdf6d71ce4b8
--- /dev/null
+++ b/board/boundary/bootscripts/image-gzwrite.txt
@@ -0,0 +1,51 @@
+setenv stdout serial,vga
+
+if itest.s "x" == "x${imagefile}" ; then
+	imagefile=ubuntu.img.gz
+fi
+if itest.s "x" == "x${gzdest}" ; then
+	echo "Please set gzdest. ie. setenv gzdest 'mmc 1';"
+	exit;
+fi
+
+a_base=0x10000000
+if itest.s x51 == "x${imx_cpu}" ; then
+	a_base=0x90000000
+elif itest.s x53 == "x${imx_cpu}"; then
+	a_base=0x70000000
+elif itest.s x6SX == "x${imx_cpu}" || itest.s x6ULL == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
+	a_base=0x80000000
+elif itest.s x8MQ == "x${imx_cpu}" || itest.s x8MM == "x${imx_cpu}"; then
+	a_base=0x40000000
+fi
+setexpr a_gz  ${a_base} + 0x00080000
+
+echo "Trying to load ${imagefile} (about 5...10 minutes)"
+
+setexpr i 0;
+setexpr offset 0;
+while test $i -le 99
+do
+	if load ${devtype} ${devnum} ${a_gz} ${imagefile}.$i ; then
+		echo "Extracting file ${imagefile}.$i to eMMC"
+		gzwrite ${gzdest} ${a_gz} 0x${filesize} 0x100000 0x${offset}00000 ;
+	else
+		if itest $i -eq 0 ; then
+			echo "image file not found or its too big to fit in the memory";
+			echo "expected file name : ${imagefile}.$i";
+			echo "exiting..."
+			exit
+		fi
+		echo "Done."
+		echo "Please remove the SD card, then reset board..."
+		exit;
+	fi
+	setexpr i $i + 1;
+	setexpr rem $i % 0x10;
+	if itest 0x$rem -eq 0x0a ; then
+		#this is to show a decimal number when really hex is output
+		setexpr i $i + 6;
+	fi;
+	# add 512M, units of offset is M
+	setexpr	offset $offset + 0x200
+done
diff --git a/board/boundary/bootscripts/split-for-gzwrite.sh b/board/boundary/bootscripts/split-for-gzwrite.sh
new file mode 100644
index 0000000000000000000000000000000000000000..5caeb6353ecc3339090f1c0b02d11a7f9cc15b4f
--- /dev/null
+++ b/board/boundary/bootscripts/split-for-gzwrite.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+let i=0
+let offset=0
+if [ -z "$1" ] ; then
+	echo specify file to split
+	exit
+fi
+
+zcat $1 >t.tmp
+while [ 1 ]
+do
+	dd if=t.tmp ibs=1M count=512 skip=$offset | gzip >$1.$i
+	let size=`zcat $1.$i | wc -c`
+	echo file $1.$i size is $size
+	if [ $size -lt 536870912 ] ; then
+		echo last is $size
+		break;
+	fi
+
+	let i=$i+1
+	let offset=$offset+512
+done
+rm t.tmp
+