+
+#
+# U-Boot style memory copy functions
+#
+
+define _cp
+ set $$src = $arg0
+ set $$dst = $arg1
+ set $$count = $arg2
+ while $$count-- > 0
+ set *$$dst = *$$src
+ set $$src += 1
+ set $$dst += 1
+ end
+ printf "Copied %#x units from %#x to %#x\n", $arg2, $arg0, $arg1
+ dont-repeat
+end
+document _cp
+Usage: cp[bwl] <src> <dst> <count>
+Copy <count> <bytes|words|longs> from <src> to <dst>.
+end
+
+define cpb
+ if $argc == 3
+ set $$addr1 = (unsigned char *)$arg0
+ set $$addr2 = (unsigned char *)$arg1
+ _cp $$addr1 $$addr2 $arg2
+ else
+ help _cp
+ end
+end
+document cpb
+Use 'help _cp'
+end
+define cpw
+ if $argc == 3
+ set $$addr1 = (unsigned short *)$arg0
+ set $$addr2 = (unsigned short *)$arg1
+ _cp $$addr1 $$addr2 $arg2
+ else
+ help _cp