diff --git a/board/keymile/scripts/README b/board/keymile/scripts/README
new file mode 100644
index 0000000000000000000000000000000000000000..86c2b5a26a9069c193016f358316ab7d4640c9a2
--- /dev/null
+++ b/board/keymile/scripts/README
@@ -0,0 +1,23 @@
+debug-common-env.txt
+============================
+This file defines environment variables which are valid for powerpc boards
+and for arm boards.
+
+addramfs: add phram device for the rootfilesysten in ram
+develop: for development, laod kernel via tftp and mount  rootfs via NFS
+nfsargs: default arguments for nfs boot
+ramfs: load rootfilesystem in RAM  kernel
+rootfsfile: loacation of the rootfs file for ramfs
+setramfspram: compute PRAM size for ramfs target
+setrootfsaddr: compute rootfilesystem address for phram
+tftpkernel: load a kernel with tftp into ram
+tftpramfs: load rootfs with tftp into ram
+
+debug-ppc-env.txt
+============================
+fdt_file: location of the dtb file on the tftp server
+tftpfdt: load dtb file and set fdt address
+
+debug-arm-env.txt
+============================
+tftpfdt: for arm only a dummy variable, because we have no fdt on arm
diff --git a/board/keymile/scripts/debug-arm-env.txt b/board/keymile/scripts/debug-arm-env.txt
new file mode 100644
index 0000000000000000000000000000000000000000..84498afc687f9867a71209739a56719133b837a6
--- /dev/null
+++ b/board/keymile/scripts/debug-arm-env.txt
@@ -0,0 +1,2 @@
+debug_env_common=tftpboot 0x200000 scripts/debug-common-env.txt && env import -t 0x200000 ${filesize}
+tftpfdt=true
diff --git a/board/keymile/scripts/debug-common-env.txt b/board/keymile/scripts/debug-common-env.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1fd4b0c4a6bb02b89881939eddf80f85798227ee
--- /dev/null
+++ b/board/keymile/scripts/debug-common-env.txt
@@ -0,0 +1,9 @@
+addramfs=setenv bootargs "${bootargs} phram.phram=rootfs${boot_bank},${rootfsaddr},${rootfssize}"
+develop=setenv subbootcmds "tftpfdt tftpkernel nfsargs ${commonargs} boot " && setenv bootcmd 'run bootrunner' && setenv altbootcmd 'run bootcmd' && km_setboardid && saveenv && reset
+nfsargs=setenv bootargs ubi.mtd=ubi0 root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
+ramfs=setenv actual_bank -1 && setenv subbootcmds "tftpfdt tftpkernel setrootfsaddr tftpramfs flashargs ${commonargs} addpanic addramfs boot " && setenv bootcmd 'run bootrunner' && setenv altbootcmd 'run bootcmd' && run setboardid && run setramfspram && run setpnvramaddr && saveenv && reset
+rootfsfile=${hostname}/rootfsImage
+setramfspram=setexpr value 0 + ${reservedpram} && setexpr value 0x${value} + ${rootfssize} && setexpr value 0x${value} + ${varsize} && setexpr value 0x${value} + ${pnvramsize} && setexpr value 0x${value} / 0x400 && setenv pram 0x${value}
+tftpkernel=tftpboot ${kernel_addr_r} ${hostname}/uImage && setenv actual_kernel_addr ${kernel_addr_r}
+tftpramfs=tftpboot ${rootfsaddr} ${hostname}/rootfsImage && setenv loadaddr
+setrootfsaddr=setexpr value ${pnvramsize} - ${rootfssize} && setenv rootfsaddr 0x${value}
diff --git a/board/keymile/scripts/debug-ppc-env.txt b/board/keymile/scripts/debug-ppc-env.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3c06ff10f22d4107aa354ee0275d235ed3fcd6e9
--- /dev/null
+++ b/board/keymile/scripts/debug-ppc-env.txt
@@ -0,0 +1,2 @@
+debug_env_common=tftpboot 0x200000 scripts/debug-common-env.txt && env import -t 0x200000 ${filesize}
+tftpfdt=tftpboot ${fdt_addr_r} ${hostname}/${hostname}.dtb && setenv actual_fdt_addr ${fdt_addr_r}
diff --git a/include/configs/km/keymile-common.h b/include/configs/km/keymile-common.h
index 6a5ecc6d747dbac1b6dc6bc8e7dacf8af252c247..9ad2e5b3495335a197305a06940764882a2ceddd 100644
--- a/include/configs/km/keymile-common.h
+++ b/include/configs/km/keymile-common.h
@@ -169,13 +169,8 @@
 		"break=0; "						\
 		"for subbootcmd in ${subbootcmds}; do "			\
 		"if test ${break} -eq 0; then; "			\
-		"echo \"[INFO] running \\c\"; "				\
 		"print ${subbootcmd}; "					\
 		"run ${subbootcmd} || break=1; "			\
-		"if test ${break} -eq 1; then; "			\
-		"echo \"[ERR] failed \\c\"; "				\
-		"print ${subbootcmd}; "					\
-		"fi; "							\
 		"fi; "							\
 		"done\0"						\
 	""
@@ -186,8 +181,6 @@
  * - set 'bootcmd' and 'altbootcmd'
  * available targets:
  * - 'release': for a standalone system		kernel/rootfs from flash
- * - 'develop': for development			kernel(tftp)/rootfs(NFS)
- * - 'ramfs': rootfilesystem in RAM		kernel(tftp)/rootfs(RAM)
  *
  * - 'commonargs': bootargs common to all targets
  */
@@ -201,40 +194,6 @@
 		"addmtdparts "						\
 		"addbootcount "						\
 		"\0"							\
-	"develop="							\
-		"setenv subbootcmds \""					\
-		"tftpfdt tftpkernel "					\
-		"nfsargs ${commonargs} "				\
-		"printbootargs boot "					\
-		"\" && "						\
-		"setenv bootcmd \'"					\
-		"run bootrunner"					\
-		"\' && "						\
-		"setenv altbootcmd \'"					\
-		"run bootcmd"						\
-		"\' && "						\
-		"run setboardid && "					\
-		"saveenv && "						\
-		"reset\0"						\
-	"ramfs="							\
-		"setenv actual_bank -1 && "				\
-		"setenv subbootcmds \""					\
-		"tftpfdt tftpkernel "					\
-		"setrootfsaddr tftpramfs "				\
-		"flashargs ${commonargs} "				\
-		"addpanic addramfs "					\
-		"printbootargs boot "					\
-		"\" && "						\
-		"setenv bootcmd \'"					\
-		"run bootrunner"					\
-		"\' && "						\
-		"setenv altbootcmd \'"					\
-		"run bootcmd"						\
-		"\' && "						\
-		"run setboardid && "					\
-		"run setramfspram && "					\
-		"saveenv && "						\
-		"reset\0"						\
 	"release="							\
 		"setenv actual_bank ${initial_boot_bank} && "		\
 		"setenv subbootcmds \""					\
@@ -242,8 +201,7 @@
 		"ubiattach ubicopy "					\
 		"cramfsloadfdt cramfsloadkernel "			\
 		"flashargs ${commonargs} "				\
-		"addpanic "						\
-		"printbootargs boot "					\
+		"addpanic boot "					\
 		"\" && "						\
 		"setenv bootcmd \'"					\
 		"run actual bootrunner; reset"				\
@@ -251,8 +209,12 @@
 		"setenv altbootcmd \'"					\
 		"run backup bootrunner; reset"				\
 		"\' && "						\
-		"saveenv && "						\
+		"saveenv && saveenv && "				\
 		"reset\0"						\
+	"debug_env="							\
+		"tftp 200000 " CONFIG_KM_ARCH_DBG_FILE " && "		\
+		"env import -t 200000 ${filesize} && "			\
+		"run debug_env_common\0"				\
 	""
 
 /*
@@ -262,10 +224,8 @@
  * - 'addip': add ip configuration
  * - 'addmem': limit kernel memory mem=
  * - 'addpanic': add kernel panic options
- * - 'addramfs': add phram device for the rootfilesysten in ram
  * - 'addtty': add console=...
  * - 'addvar': add phram device for /var
- * - 'nfsargs': default arguments for nfs boot
  * - 'flashargs': defaults arguments for flash base boot
  *
  * processor specific settings
@@ -280,25 +240,15 @@
 		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\
 		":${hostname}:${netdev}:off\0"				\
 	"addmem="							\
-		"setenv bootargs ${bootargs} mem=0x${pnvramaddr}\0"	\
+		"setenv bootargs ${bootargs} mem=${pnvramaddr}\0"	\
 	"addpanic="							\
-		"setenv bootargs ${bootargs} "				\
-		"panic=1 panic_on_oops=1\0"				\
-	"addramfs="							\
-		"setenv bootargs \""					\
-		"${bootargs} phram.phram="				\
-		"rootfs${boot_bank},${rootfsaddr},${rootfssize}\"\0"	\
+		"setenv bootargs ${bootargs} panic=1 panic_on_oops=1\0"	\
 	"addtty="							\
 		"setenv bootargs ${bootargs}"				\
 		" console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}\0"	\
 	"addvar="							\
 		"setenv bootargs ${bootargs} phram.phram=phvar,"	\
-		"${varaddr},0x" xstr(CONFIG_KM_PHRAM) "\0"		\
-	"nfsargs="							\
-		"setenv bootargs "					\
-		"ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "		\
-		"root=/dev/nfs rw "					\
-		"nfsroot=${serverip}:${rootpath}\0"			\
+		"${varaddr}," xstr(CONFIG_KM_PHRAM) "\0"		\
 	"flashargs="							\
 		"setenv bootargs "					\
 		"ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "		\
@@ -306,72 +256,26 @@
 		"rootfstype=squashfs ro\0"				\
 	""
 
-/*
- * compute_addr
- * - compute addresses and sizes
- * - addresses are calculated form the end of memory 'memsize'
- *
- * - 'setramfspram': compute PRAM size for ramfs target
- * - 'setrootfsaddr': compute rootfilesystem address for phram
- */
-#define CONFIG_KM_DEF_ENV_COMPUTE_ADDR					\
-	"setboardid="							\
-		"if test \"x${boardId}\" = \"x\"; then; "		\
-		"setenv boardId ${IVM_BoardId} && "			\
-		"setenv hwKey ${IVM_HWKey}; "				\
-		"else; "						\
-		"echo \\\\c; "						\
-		"fi\0"							\
-	"setramfspram="							\
-		"setexpr value ${rootfssize} / 0x400 && "		\
-		"setexpr value 0x${value} + ${pram} && "		\
-		"setenv pram 0x${value}\0"				\
-	"setrootfsaddr="						\
-		"setexpr value ${pnvramaddr} - ${rootfssize} && "	\
-		"setenv rootfsaddr 0x${value}\0"			\
-	""
-
 /*
  * flash_boot
  * - commands for booting from flash
  *
- * - 'cramfsaddr': address to the cramfs (in ram)
  * - 'cramfsloadkernel': copy kernel from a cramfs to ram
  * - 'ubiattach': attach ubi partition
  * - 'ubicopy': copy ubi volume to ram
  *              - volume names: bootfs0, bootfs1, bootfs2, ...
- * - 'ubiparition': mtd parition name for ubi
  *
  * processor specific settings
  * - 'cramfsloadfdt': copy fdt from a cramfs to ram
  */
 #define CONFIG_KM_DEF_ENV_FLASH_BOOT					\
-	"cramfsaddr="xstr(CONFIG_KM_CRAMFS_ADDR) "\0"			\
+	"cramfsaddr=" xstr(CONFIG_KM_CRAMFS_ADDR) "\0"			\
 	"cramfsloadkernel="						\
 		"cramfsload ${kernel_addr_r} uImage && "		\
 		"setenv actual_kernel_addr ${kernel_addr_r}\0"		\
-	"ubiattach=ubi part ${ubipartition}\0"				\
-	"ubicopy=ubi read ${cramfsaddr} bootfs${boot_bank}\0"		\
-	"ubipartition=" CONFIG_KM_UBI_PARTITION_NAME "\0"		\
-	""
-
-/*
- * net_boot
- * - commands for booting over the network
- *
- * - 'tftpkernel': load a kernel with tftp into ram
- * - 'tftpramfs': load rootfs with tftp into ram
- *
- * processor specific settings
- * - 'tftpfdt': load fdt with tftp into ram
- */
-#define CONFIG_KM_DEF_ENV_NET_BOOT					\
-	"tftpkernel="							\
-		"tftpboot ${kernel_addr_r} ${kernel_file} && "		\
-		"setenv actual_kernel_addr ${kernel_addr_r}\0"		\
-	"tftpramfs="							\
-		"tftpboot ${rootfsaddr} \"\\\"${rootfsfile}\\\"\" && "	\
-		"setenv loadaddr\0"					\
+	"ubiattach=ubi part " CONFIG_KM_UBI_PARTITION_NAME "\0"		\
+	"ubicopy=ubi read "xstr(CONFIG_KM_CRAMFS_ADDR)			\
+			" bootfs${boot_bank}\0"				\
 	""
 
 /*
@@ -388,8 +292,6 @@
 	"default="							\
 		"setenv default 'run newenv; reset' &&  "		\
 		"run release && saveenv; reset\0"			\
-	"printbootargs=print bootargs\0"				\
-	"rootfsfile="xstr(CONFIG_HOSTNAME) "/rootfsImage\0"		\
 	"checkboardid=km_checkbidhwk\0"					\
 	""
 
@@ -401,17 +303,13 @@
 	CONFIG_KM_DEF_ENV_BOOTRUNNER					\
 	CONFIG_KM_DEF_ENV_BOOTTARGETS					\
 	CONFIG_KM_DEF_ENV_BOOTARGS					\
-	CONFIG_KM_DEF_ENV_COMPUTE_ADDR					\
 	CONFIG_KM_DEF_ENV_FLASH_BOOT					\
-	CONFIG_KM_DEF_ENV_NET_BOOT					\
 	CONFIG_KM_DEF_ENV_CONSTANTS					\
 	"altbootcmd=run bootcmd\0"					\
 	"bootcmd=run default\0"						\
 	"bootlimit=2\0"							\
 	"init=/sbin/init-overlay.sh\0"					\
 	"kernel_addr_r="xstr(CONFIG_KM_KERNEL_ADDR) "\0"		\
-	"kernel_file="xstr(CONFIG_HOSTNAME) "/uImage\0"			\
-	"kernel_name=uImage\0"						\
 	"load=tftpboot ${u-boot_addr_r} ${u-boot}\0"			\
 	"mtdids=" MTDIDS_DEFAULT "\0"					\
 	"mtdparts=" MTDPARTS_DEFAULT "\0"				\
diff --git a/include/configs/km/km-powerpc.h b/include/configs/km/km-powerpc.h
index 3351609980c292740952ba13a3634ac9922d3379..d6db8d79f1a51e6c3b79630d1a3f0b2571cabf8a 100644
--- a/include/configs/km/km-powerpc.h
+++ b/include/configs/km/km-powerpc.h
@@ -67,20 +67,14 @@
 #define CONFIG_KM_FDT_ADDR	0x7E0000	/* 128Kbytes */
 
 #define CONFIG_KM_DEF_ENV_CPU						\
-	"addbootcount=echo \\\\c\0"					\
-	"addmtdparts=echo \\\\c\0"					\
+	"addbootcount=true\0"						\
+	"addmtdparts=true\0"						\
 	"boot=bootm ${actual_kernel_addr} - ${actual_fdt_addr}\0"	\
 	"cramfsloadfdt="						\
 		"cramfsload ${fdt_addr_r} "				\
 		"fdt_0x${IVM_BoardId}_0x${IVM_HWKey}.dtb && "		\
 		"setenv actual_fdt_addr ${fdt_addr_r}\0"		\
 	"fdt_addr_r=" xstr(CONFIG_KM_FDT_ADDR) "\0"			\
-	"fdt_file="							\
-		xstr(CONFIG_HOSTNAME) "/"				\
-		xstr(CONFIG_HOSTNAME) ".dtb\0"				\
-	"tftpfdt="							\
-		"tftpboot ${fdt_addr_r} ${fdt_file} && "		\
-		"setenv actual_fdt_addr ${fdt_addr_r} \0"		\
 	"update="							\
 		"protect off " xstr(BOOTFLASH_START) " +${filesize} && "\
 		"erase " xstr(BOOTFLASH_START) "  +${filesize} && "	\
@@ -89,4 +83,6 @@
 		"protect on " xstr(BOOTFLASH_START) "  +${filesize}\0"  \
 	""
 
+#define CONFIG_KM_ARCH_DBG_FILE		"scripts/debug-ppc-env.txt"
+
 #endif /* __CONFIG_KEYMILE_POWERPC_H */
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index a38a07085e3f3d464451f4cd3299e82d44f0539b..aa9f1ae464ef363a487caf1f41bb60fd56e65476 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -66,12 +66,11 @@
 #define CONFIG_KM_DEF_ENV_CPU						\
 	"addmtdparts=setenv bootargs ${bootargs} ${mtdparts}\0"		\
 	"boot=bootm ${actual_kernel_addr} - -\0"			\
-	"cramfsloadfdt=echo \\\\c\0"					\
-	"tftpfdt=echo \\\\c\0"						\
+	"cramfsloadfdt=true\0"						\
 	CONFIG_KM_DEF_ENV_UPDATE					\
 	""
 
-
+#define CONFIG_KM_ARCH_DBG_FILE		"scripts/debug-arm-env.txt"
 
 #define CONFIG_MD5	/* get_random_hex on krikwood needs MD5 support */
 #define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */