diff --git a/board/siemens/common/board.c b/board/siemens/common/board.c
index fb2de48..c127f6c 100644
--- a/board/siemens/common/board.c
+++ b/board/siemens/common/board.c
@@ -75,8 +75,9 @@
 	i2c_set_bus_num(0);
 	if (read_eeprom() < 0)
 		puts("Could not get board ID.\n");
-
+#ifdef CONFIG_MACH_TYPE
 	gd->bd->bi_arch_number = CONFIG_MACH_TYPE;
+#endif
 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
 
 #ifdef CONFIG_FACTORYSET
@@ -102,21 +103,29 @@
 }
 
 #ifndef CONFIG_SPL_BUILD
+
+#define MAX_NR_LEDS	10
+#define MAX_PIN_NUMBER	128
+#define STARTUP	0
+
 #if defined(BOARD_DFU_BUTTON_GPIO)
-/*
- * This command returns the status of the user button on
- * Input - none
- * Returns -	1 if button is held down
- *		0 if button is not held down
- */
-static int
-do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+unsigned char get_button_state(char * const envname, unsigned char def)
 {
 	int button = 0;
 	int gpio;
+	char *ptr_env;
 
-	gpio = BOARD_DFU_BUTTON_GPIO;
-	gpio_request(gpio, "DFU");
+	/* If button is not found we take default */
+	ptr_env = getenv(envname);
+	if (NULL == ptr_env) {
+		gpio = def;
+	} else {
+		gpio = (unsigned char)simple_strtoul(ptr_env, NULL, 0);
+		if (gpio > MAX_PIN_NUMBER)
+			gpio = def;
+	}
+
+	gpio_request(gpio, "");
 	gpio_direction_input(gpio);
 	if (gpio_get_value(gpio))
 		button = 1;
@@ -127,53 +136,27 @@
 
 	return button;
 }
-
-U_BOOT_CMD(
-	dfubutton, CONFIG_SYS_MAXARGS, 1, do_userbutton,
-	"Return the status of the DFU button",
-	""
-);
-#endif
-/*
- * This command sets led
- * Input -	name of led
- *		value of led
- * Returns -	1 if input does not match
- *		0 if led was set
+/**
+ * This command returns the status of the user button on
+ * Input - none
+ * Returns -	1 if button is held down
+ *		0 if button is not held down
  */
 static int
-do_setled(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
-	int gpio = 0;
-	if (argc != 3)
-		goto exit;
-#if defined(BOARD_STATUS_LED)
-	if (!strcmp(argv[1], "stat"))
-		gpio = BOARD_STATUS_LED;
-#endif
-#if defined(BOARD_DFU_BUTTON_LED)
-	if (!strcmp(argv[1], "dfu"))
-		gpio = BOARD_DFU_BUTTON_LED;
-#endif
-	/* If argument does not mach exit */
-	if (gpio == 0)
-		goto exit;
-	gpio_request(gpio, "");
-	gpio_direction_output(gpio, 1);
-	if (!strcmp(argv[2], "1"))
-		gpio_set_value(gpio, 1);
-	else
-		gpio_set_value(gpio, 0);
-	return 0;
-exit:
-	return 1;
+	int button = 0;
+	button = get_button_state("button_dfu0", BOARD_DFU_BUTTON_GPIO);
+	button |= get_button_state("button_dfu1", BOARD_DFU_BUTTON_GPIO);
+	return button;
 }
 
 U_BOOT_CMD(
-	led, CONFIG_SYS_MAXARGS, 2, do_setled,
-	"Set led on or off",
-	"dfu val - set dfu led\nled stat val - set status led"
+	dfubutton, CONFIG_SYS_MAXARGS, 1, do_userbutton,
+	"Return the status of the DFU button",
+	""
 );
+#endif
 
 static int
 do_usertestwdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
@@ -189,4 +172,95 @@
 	"Sends U-Boot into infinite loop",
 	""
 );
+
+/**
+ * Get led gpios from env and set them.
+ * The led define in environment need to need to be of the form ledN=NN,S0,S1
+ * where N is an unsigned integer from 0 to 9 and S0 and S1 is 0 or 1. S0
+ * defines the startup state of the led, S1 the special state of the led when
+ * it enters e.g. dfu mode.
+ */
+void set_env_gpios(unsigned char state)
+{
+	char *ptr_env;
+	char str_tmp[5];	/* must contain "ledX"*/
+	char num[1];
+	unsigned char i, idx, pos1, pos2, ccount;
+	unsigned char gpio_n, gpio_s0, gpio_s1;
+
+	for (i = 0; i < MAX_NR_LEDS; i++) {
+		strcpy(str_tmp, "led");
+		sprintf(num, "%d", i);
+		strcat(str_tmp, num);
+
+		/* If env var is not found we stop */
+		ptr_env = getenv(str_tmp);
+		if (NULL == ptr_env)
+			break;
+
+		/* Find sperators position */
+		pos1 = 0;
+		pos2 = 0;
+		ccount = 0;
+		for (idx = 0; ptr_env[idx] != '\0'; idx++) {
+			if (ptr_env[idx] == ',') {
+				if (ccount++ < 1)
+					pos1 = idx;
+				else
+					pos2 = idx;
+			}
+		}
+		/* Bad led description skip this definition */
+		if (pos2 <= pos1 || ccount > 2)
+			continue;
+
+		/* Get pin number and request gpio */
+		memset(str_tmp, 0, sizeof(str_tmp));
+		strncpy(str_tmp, ptr_env, pos1*sizeof(char));
+		gpio_n = (unsigned char)simple_strtoul(str_tmp, NULL, 0);
+
+		/* Invalid gpio number skip definition */
+		if (gpio_n > MAX_PIN_NUMBER)
+			continue;
+
+		gpio_request(gpio_n, "");
+
+		if (state == STARTUP) {
+			/* get pin state 0 and set */
+			memset(str_tmp, 0, sizeof(str_tmp));
+			strncpy(str_tmp, ptr_env+pos1+1,
+				(pos2-pos1-1)*sizeof(char));
+			gpio_s0 = (unsigned char)simple_strtoul(str_tmp, NULL,
+								0);
+
+			gpio_direction_output(gpio_n, gpio_s0);
+
+		} else {
+			/* get pin state 1 and set */
+			memset(str_tmp, 0, sizeof(str_tmp));
+			strcpy(str_tmp, ptr_env+pos2+1);
+			gpio_s1 = (unsigned char)simple_strtoul(str_tmp, NULL,
+								0);
+			gpio_direction_output(gpio_n, gpio_s1);
+		}
+	} /* loop through defined led in environment */
+}
+
+static int do_board_led(cmd_tbl_t *cmdtp, int flag, int argc,
+			   char *const argv[])
+{
+	if (argc != 2)
+		return CMD_RET_USAGE;
+	if ((unsigned char)simple_strtoul(argv[1], NULL, 0) == STARTUP)
+		set_env_gpios(0);
+	else
+		set_env_gpios(1);
+	return 0;
+};
+
+U_BOOT_CMD(
+	draco_led, CONFIG_SYS_MAXARGS, 2,	do_board_led,
+	"Set LEDs defined in environment",
+	"<0|1>"
+);
 #endif /* !CONFIG_SPL_BUILD */
diff --git a/board/siemens/draco/board.c b/board/siemens/draco/board.c
index ede73ba..2697762 100644
--- a/board/siemens/draco/board.c
+++ b/board/siemens/draco/board.c
@@ -43,7 +43,7 @@
 /* Default@303MHz-i0 */
 const struct ddr3_data ddr3_default = {
 	0x33524444, 0x56312e35, 0x0080, 0x0000, 0x003A, 0x003F, 0x009F,
-	0x0079, 0x0888A39B, 0x26247FDA, 0x501F821F, 0x00100206, 0x61A44A32,
+	0x0079, 0x0888A39B, 0x26517FDA, 0x501F84EF, 0x00100206, 0x61A44A32,
 	0x0000093B, 0x0000014A,
 	"default name @303MHz           \0",
 	"default marking                \0",
@@ -71,8 +71,8 @@
 	printf("clock:\t\t%d MHz\n", DDR_PLL_FREQ);
 	printf("device:\t\t%s\n", settings.ddr3.manu_name);
 	printf("marking:\t%s\n", settings.ddr3.manu_marking);
-	printf("timing parameters\n");
-	printf("diff\teeprom\tdefault\n");
+	printf("%-20s, %-8s, %-8s, %-4s\n", "timing parameters", "eeprom",
+	       "default", "diff");
 	PRINTARGS(magic);
 	PRINTARGS(version);
 	PRINTARGS(ddr3_sratio);
@@ -96,9 +96,12 @@
 
 static void print_chip_data(void)
 {
+	struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
+	dpll_mpu_opp100.m = am335x_get_efuse_mpu_max_freq(cdev);
 	printf("\nCPU BOARD\n");
 	printf("device: \t'%s'\n", settings.chip.sdevname);
 	printf("hw version: \t'%s'\n", settings.chip.shwver);
+	printf("max freq: \t%d MHz\n", dpll_mpu_opp100.m);
 }
 #endif /* CONFIG_SPL_BUILD */
 
@@ -193,6 +196,11 @@
 
 	config_ddr(DDR_PLL_FREQ, &draco_ddr3_ioregs, &draco_ddr3_data,
 		   &draco_ddr3_cmd_ctrl_data, &draco_ddr3_emif_reg_data, 0);
+
+	/* For Samsung 2Gbit RAM we need this delay otherwise config fails after
+	 * soft reset.
+	 */
+	udelay(2000);
 }
 
 static void spl_siemens_board_init(void)
@@ -201,6 +209,26 @@
 }
 #endif /* if def CONFIG_SPL_BUILD */
 
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+	omap_nand_switch_ecc(1, 8);
+#ifdef CONFIG_FACTORYSET
+	/* Set ASN in environment*/
+	if (factory_dat.asn[0] != 0) {
+		setenv("dtb_name", (char *)factory_dat.asn);
+	} else {
+		/* dtb suffix gets added in load script */
+		setenv("dtb_name", "am335x-draco");
+	}
+#else
+	setenv("dtb_name", "am335x-draco");
+#endif
+
+	return 0;
+}
+#endif
+
 #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \
 	(defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD))
 static void cpsw_control(int enabled)
@@ -280,13 +308,4 @@
 #endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */
 #endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */
 
-#ifdef CONFIG_BOARD_LATE_INIT
-int board_late_init(void)
-{
-	omap_nand_switch_ecc(1, 8);
-
-	return 0;
-}
-#endif
-
 #include "../common/board.c"
diff --git a/board/siemens/draco/board.h b/board/siemens/draco/board.h
index ff8ab76..8856fd0 100644
--- a/board/siemens/draco/board.h
+++ b/board/siemens/draco/board.h
@@ -16,9 +16,13 @@
 #ifndef _BOARD_H_
 #define _BOARD_H_
 
-#define PARGS3(x)	settings.ddr3.x-ddr3_default.x, \
-			settings.ddr3.x, ddr3_default.x
-#define PRINTARGS(y)	printf("%x, %8x, %8x : "#y"\n", PARGS3(y))
+#define PARGS(x)	#x , /* Parameter Name */ \
+			settings.ddr3.x, /* EEPROM Value */ \
+			ddr3_default.x, /* Default Value */ \
+			settings.ddr3.x-ddr3_default.x /* Difference */
+
+#define PRINTARGS(y)	printf("%-20s, %8x, %8x, %4d\n", PARGS(y))
+
 #define MAGIC_CHIP	0x50494843
 
 /* Automatic generated definition */
@@ -69,4 +73,7 @@
 void enable_uart5_pin_mux(void);
 void enable_i2c0_pin_mux(void);
 void enable_board_pin_mux(void);
+
+/* Forwared declaration, defined in common board.c */
+void set_env_gpios(unsigned char state);
 #endif
diff --git a/board/siemens/draco/mux.c b/board/siemens/draco/mux.c
index eaa3c70..dbcc80b 100644
--- a/board/siemens/draco/mux.c
+++ b/board/siemens/draco/mux.c
@@ -60,7 +60,7 @@
 
 static struct module_pin_mux gpios_pin_mux[] = {
 	/* DFU button GPIO0_27*/
-	{OFFSET(gpmc_ad11), (MODE(7) | PULLUDEN | RXACTIVE)},
+	{OFFSET(gpmc_ad11), (MODE(7) | PULLUDEN | PULLUP_EN | RXACTIVE)},
 	{OFFSET(gpmc_csn3), MODE(7) },			/* LED0 GPIO2_0 */
 	{OFFSET(emu0), MODE(7)},			/* LED1 GPIO3_7 */
 	/* Triacs in HW Rev 2 */
@@ -222,7 +222,7 @@
 	{OFFSET(vrefp), MODE(7) | RXACTIVE | PULLUDDIS},
 	{OFFSET(vrefn), MODE(7) | RXACTIVE | PULLUDDIS},
 	/* nRST for SMSC LAN9303 switch - GPIO2_24 */
-	{OFFSET(lcd_pclk), MODE(7) },			/* LAN9303 nRST */
+	{OFFSET(lcd_pclk), MODE(7) | PULLUDEN | PULLUP_EN }, /* LAN9303 nRST */
 	{-1},
 };
 
diff --git a/include/configs/draco.h b/include/configs/draco.h
index a2438d8..acefd3e 100644
--- a/include/configs/draco.h
+++ b/include/configs/draco.h
@@ -19,18 +19,23 @@
 
 #include "siemens-am33x-common.h"
 
-#define CONFIG_SYS_MPUCLK	275
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_SYS_MPUCLK	300
 #define DDR_PLL_FREQ	303
 #undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
 
-#define BOARD_DFU_BUTTON_GPIO	27
-#define BOARD_DFU_BUTTON_LED	64	/* red LED */
-#define BOARD_STATUS_LED	103	/* green LED */
+#define BOARD_DFU_BUTTON_GPIO	27	/* Use as default */
 #define GPIO_LAN9303_NRST	88	/* GPIO2_24 = gpio88 */
 
+#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
+	"button_dfu0=27\0" \
+	"led0=103,1,0\0" \
+	"led1=64,0,1\0"
+
 #undef CONFIG_DOS_PARTITION
 #undef CONFIG_CMD_FAT
 
+#define CONFIG_BOARD_LATE_INIT
 
  /* Physical Memory Map */
 #define CONFIG_MAX_RAM_BANK_SIZE	(1024 << 20)	/* 1GB */
@@ -57,13 +62,25 @@
 /* Watchdog */
 #define CONFIG_OMAP_WATCHDOG
 
+/* Define own nand partitions */
+#define CONFIG_ENV_OFFSET_REDUND    0x2E0000
+#define CONFIG_ENV_SIZE_REDUND      0x2000
+#define CONFIG_ENV_RANGE        (4 * CONFIG_SYS_ENV_SECT_SIZE)
+
+
+#define MTDPARTS_DEFAULT	MTDPARTS_DEFAULT_V2
+
 #ifndef CONFIG_SPL_BUILD
 
 /* Default env settings */
 #define CONFIG_EXTRA_ENV_SETTINGS \
+	"hostname=draco\0" \
 	"nand_img_size=0x400000\0" \
 	"optargs=\0" \
-	CONFIG_COMMON_ENV_SETTINGS
+	"preboot=draco_led 0\0" \
+	CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
+	CONFIG_ENV_SETTINGS_V2 \
+	CONFIG_ENV_SETTINGS_NAND_V2
 
 #ifndef CONFIG_RESTORE_FLASH
 /* set to negative value for no autoboot */
@@ -75,6 +92,7 @@
 	"reset; " \
 "fi;" \
 "run nand_boot;" \
+"run nand_boot_backup;" \
 "reset;"
 
 
diff --git a/include/configs/dxr2.h b/include/configs/dxr2.h
index 76e6cac..fa74070 100644
--- a/include/configs/dxr2.h
+++ b/include/configs/dxr2.h
@@ -19,7 +19,8 @@
 
 #include "siemens-am33x-common.h"
 
-#define CONFIG_SYS_MPUCLK	275
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_SYS_MPUCLK	300
 #define DDR_PLL_FREQ	303
 #undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
 
@@ -28,9 +29,15 @@
 #define BOARD_STATUS_LED	103	/* green LED */
 #define GPIO_LAN9303_NRST	88	/* GPIO2_24 = gpio88 */
 
+#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
+	"button_dfu0=27\0" \
+	"led0=103,1,0\0" \
+	"led1=64,0,1\0"
+
 #undef CONFIG_DOS_PARTITION
 #undef CONFIG_CMD_FAT
 
+#define CONFIG_BOARD_LATE_INIT
 
  /* Physical Memory Map */
 #define CONFIG_MAX_RAM_BANK_SIZE	(1024 << 20)	/* 1GB */
@@ -57,6 +64,14 @@
 /* Watchdog */
 #define CONFIG_OMAP_WATCHDOG
 
+/* Define own nand partitions */
+#define CONFIG_ENV_OFFSET_REDUND	0x2E0000
+#define CONFIG_ENV_SIZE_REDUND		0x2000
+#define CONFIG_ENV_RANGE		(4 * CONFIG_SYS_ENV_SECT_SIZE)
+
+
+#define MTDPARTS_DEFAULT	MTDPARTS_DEFAULT_V2
+
 #ifndef CONFIG_SPL_BUILD
 
 /* Default env settings */
@@ -64,7 +79,10 @@
 	"hostname=dxr2\0" \
 	"nand_img_size=0x400000\0" \
 	"optargs=\0" \
-	CONFIG_COMMON_ENV_SETTINGS
+	"preboot=draco_led 0\0" \
+	CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
+	CONFIG_ENV_SETTINGS_V2 \
+	CONFIG_ENV_SETTINGS_NAND_V2
 
 #ifndef CONFIG_RESTORE_FLASH
 /* set to negative value for no autoboot */
@@ -76,6 +94,7 @@
 	"reset; " \
 "fi;" \
 "run nand_boot;" \
+"run nand_boot_backup;" \
 "reset;"
 
 
diff --git a/include/configs/pxm2.h b/include/configs/pxm2.h
index 946b2c8..d896bca 100644
--- a/include/configs/pxm2.h
+++ b/include/configs/pxm2.h
@@ -25,11 +25,14 @@
 #define DDR_PLL_FREQ		266
 
 #define BOARD_DFU_BUTTON_GPIO	59
-#define BOARD_DFU_BUTTON_LED	117
 #define BOARD_LCD_POWER		111
 #define BOARD_BACK_LIGHT	112
 #define BOARD_TOUCH_POWER	57
 
+#define CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
+	"button_dfu0=59\0" \
+	"led0=117,0,1\0" \
+
  /* Physical Memory Map */
 #define CONFIG_MAX_RAM_BANK_SIZE	(512 << 20)	/* 1GB */
 
@@ -48,29 +51,25 @@
 
 #define CONFIG_FACTORYSET
 
-/* UBI Support */
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_CMD_MTDPARTS
-#define CONFIG_MTD_PARTITIONS
-#define CONFIG_MTD_DEVICE
-#define CONFIG_RBTREE
-#define CONFIG_LZO
-#define CONFIG_CMD_UBI
-#define CONFIG_CMD_UBIFS
-#endif
 
 /* Watchdog */
 #define CONFIG_OMAP_WATCHDOG
 
 #ifndef CONFIG_SPL_BUILD
 
+/* Use common default */
+#define MTDPARTS_DEFAULT	MTDPARTS_DEFAULT_V1
+
 /* Default env settings */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"hostname=pxm2\0" \
 	"nand_img_size=0x500000\0" \
 	"optargs=\0" \
+	"preboot=draco_led 0\0" \
+	CONFIG_ENV_SETTINGS_BUTTONS_AND_LEDS \
 	"splashpos=m,m\0"	\
-	CONFIG_COMMON_ENV_SETTINGS \
+	CONFIG_ENV_SETTINGS_V1 \
+	CONFIG_ENV_SETTINGS_NAND_V1 \
 	"mmc_dev=0\0" \
 	"mmc_root=/dev/mmcblk0p2 rw\0" \
 	"mmc_root_fs_type=ext4 rootwait\0" \
diff --git a/include/configs/rut.h b/include/configs/rut.h
index 0067ea4..78264ba 100644
--- a/include/configs/rut.h
+++ b/include/configs/rut.h
@@ -45,29 +45,23 @@
 
 #define CONFIG_FACTORYSET
 
-/* UBI Support */
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_CMD_MTDPARTS
-#define CONFIG_MTD_PARTITIONS
-#define CONFIG_MTD_DEVICE
-#define CONFIG_RBTREE
-#define CONFIG_LZO
-#define CONFIG_CMD_UBI
-#define CONFIG_CMD_UBIFS
-#endif
 
 /* Watchdog */
 #define WATCHDOG_TRIGGER_GPIO	14
 
 #ifndef CONFIG_SPL_BUILD
 
+/* Use common default */
+#define MTDPARTS_DEFAULT	MTDPARTS_DEFAULT_V1
+
 /* Default env settings */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"hostname=rut\0" \
 	"nand_img_size=0x500000\0" \
 	"splashpos=m,m\0" \
 	"optargs=fixrtc --no-log consoleblank=0 \0" \
-	CONFIG_COMMON_ENV_SETTINGS \
+	CONFIG_ENV_SETTINGS_V1 \
+	CONFIG_ENV_SETTINGS_NAND_V1 \
 	"mmc_dev=0\0" \
 	"mmc_root=/dev/mmcblk0p2 rw\0" \
 	"mmc_root_fs_type=ext4 rootwait\0" \
diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
index b005c86..7b602b3 100644
--- a/include/configs/siemens-am33x-common.h
+++ b/include/configs/siemens-am33x-common.h
@@ -45,6 +45,7 @@
 #define CONFIG_CMD_ASKENV
 #define CONFIG_CMD_ECHO
 #define CONFIG_CMD_CACHE
+#define CONFIG_CMD_TIME
 
 #define CONFIG_SYS_GENERIC_BOARD
 
@@ -69,7 +70,7 @@
 #define CONFIG_SYS_MAXARGS		32
 
 /* Console I/O Buffer Size */
-#define CONFIG_SYS_CBSIZE		512
+#define CONFIG_SYS_CBSIZE		1024
 
 /* Print Buffer Size */
 #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE \
@@ -309,22 +310,87 @@
 /* NAND support */
 #ifdef CONFIG_NAND
 #define CONFIG_CMD_NAND
+
+/* UBI Support */
+#ifndef CONFIG_SPL_BUILD
 #define CONFIG_CMD_MTDPARTS
+#define CONFIG_MTD_PARTITIONS
+#define CONFIG_MTD_DEVICE
+#define CONFIG_RBTREE
+#define CONFIG_LZO
+#define CONFIG_CMD_UBI
+#define CONFIG_CMD_UBIFS
+#endif
 
-#define MTDIDS_NAME_STR		"omap2-nand.0"
-#define MTDIDS_DEFAULT		"nand0=" MTDIDS_NAME_STR
-#define MTDPARTS_DEFAULT	"mtdparts=" MTDIDS_NAME_STR ":" \
-					"128k(spl),"		\
-					"128k(spl.backup1),"	\
-					"128k(spl.backup2),"	\
-					"128k(spl.backup3),"	\
-					"1920k(u-boot),"	\
-					"128k(uboot.env),"	\
-					"5120k(kernel_a),"	\
-					"5120k(kernel_b),"	\
-					"8192k(mtdoops),"	\
-					"-(rootfs)"
+/* Commen environment */
+#define CONFIG_PREBOOT
+#define COMMON_ENV_DFU_ARGS	"dfu_args=run bootargs_defaults;" \
+				"setenv bootargs ${bootargs};" \
+				"mtdparts default;" \
+				"draco_led 1;" \
+				"dfu 0 nand 0;" \
+				"draco_led 0;\0" \
+
+#define COMMON_ENV_NAND_BOOT \
+		"nand_boot=echo Booting from nand; " \
+		"if test ${upgrade_available} -eq 1; then " \
+			"if test ${bootcount} -gt ${bootlimit}; " \
+				"then " \
+				"setenv upgrade_available 0;" \
+				"setenv ${partitionset_active} true;" \
+				"if test -n ${A}; then " \
+					"setenv partitionset_active B; " \
+					"env delete A; " \
+				"fi;" \
+				"if test -n ${B}; then " \
+					"setenv partitionset_active A; " \
+					"env delete B; " \
+				"fi;" \
+				"saveenv; " \
+			"fi;" \
+		"fi;" \
+		"echo set ${partitionset_active}...;" \
+		"run nand_args; "
+
+#define COMMON_ENV_NAND_CMDS	"flash_self=run nand_boot\0" \
+				"flash_self_test=setenv testargs test; " \
+					"run nand_boot\0" \
+				"dfu_start=echo Preparing for dfu mode ...; " \
+				"run dfu_args; \0"
+
+#define COMMON_ENV_SETTINGS \
+	"verify=no \0" \
+	"project_dir=targetdir\0" \
+	"upgrade_available=0\0" \
+	"altbootcmd=run bootcmd\0" \
+	"bootlimit=3\0" \
+	"partitionset_active=A\0" \
+	"loadaddr=0x82000000\0" \
+	"kloadaddr=0x81000000\0" \
+	"script_addr=0x81900000\0" \
+	"console=console=ttyMTD,mtdoops console=ttyO0,115200n8 panic=5\0" \
+	"nfsopts=nolock rw\0" \
+	"ip_method=none\0" \
+	"bootenv=uEnv.txt\0" \
+	"bootargs_defaults=setenv bootargs " \
+		"console=${console} " \
+		"${testargs} " \
+		"${optargs}\0" \
+	"siemens_help=echo; "\
+		"echo Type 'run flash_self' to use kernel and root " \
+		"filesystem on memory; echo Type 'run flash_self_test' to " \
+		"use kernel and root filesystem on memory, boot in test " \
+		"mode; echo Not ready yet: 'run flash_nfs' to use kernel " \
+		"from memory and root filesystem over NFS; echo Type " \
+		"'run net_nfs' to get Kernel over TFTP and mount root " \
+		"filesystem over NFS; " \
+		"echo Set partitionset_active variable to 'A' " \
+		"or 'B' to select kernel and rootfs partition; " \
+		"echo" \
+		"\0"
+
 /*
+ * Variant 1 partition layout
  * chip-size = 256MiB
  *|         name |        size |           address area |
  *-------------------------------------------------------
@@ -340,8 +406,21 @@
  *|       rootfs | 235.500 MiB | 0x 1480000..0x fffffff |
  *-------------------------------------------------------
  */
+#define MTDIDS_NAME_STR		"omap2-nand.0"
+#define MTDIDS_DEFAULT		"nand0=" MTDIDS_NAME_STR
+#define MTDPARTS_DEFAULT_V1	"mtdparts=" MTDIDS_NAME_STR ":" \
+					"128k(spl),"		\
+					"128k(spl.backup1),"	\
+					"128k(spl.backup2),"	\
+					"128k(spl.backup3),"	\
+					"1920k(u-boot),"	\
+					"128k(uboot.env),"	\
+					"5120k(kernel_a),"	\
+					"5120k(kernel_b),"	\
+					"8192k(mtdoops),"	\
+					"-(rootfs)"
 
-#define DFU_ALT_INFO_NAND \
+#define DFU_ALT_INFO_NAND_V1 \
 	"spl part 0 1;" \
 	"spl.backup1 part 0 2;" \
 	"spl.backup2 part 0 3;" \
@@ -352,17 +431,7 @@
 	"kernel_b part 0 8;" \
 	"rootfs partubi 0 10"
 
-#define CONFIG_COMMON_ENV_SETTINGS \
-	"verify=no \0" \
-	"project_dir=targetdir\0" \
-	"upgrade_available=0\0" \
-	"altbootcmd=run bootcmd\0" \
-	"bootlimit=3\0" \
-	"partitionset_active=A\0" \
-	"loadaddr=0x82000000\0" \
-	"kloadaddr=0x81000000\0" \
-	"script_addr=0x81900000\0" \
-	"console=console=ttyMTD,mtdoops console=ttyO0,115200n8 panic=5\0" \
+#define CONFIG_ENV_SETTINGS_NAND_V1 \
 	"nand_active_ubi_vol=rootfs_a\0" \
 	"nand_active_ubi_vol_A=rootfs_a\0" \
 	"nand_active_ubi_vol_B=rootfs_b\0" \
@@ -370,13 +439,6 @@
 	"nand_src_addr=0x280000\0" \
 	"nand_src_addr_A=0x280000\0" \
 	"nand_src_addr_B=0x780000\0" \
-	"nfsopts=nolock rw mem=128M\0" \
-	"ip_method=none\0" \
-	"bootenv=uEnv.txt\0" \
-	"bootargs_defaults=setenv bootargs " \
-		"console=${console} " \
-		"${testargs} " \
-		"${optargs}\0" \
 	"nand_args=run bootargs_defaults;" \
 		"mtdparts default;" \
 		"setenv ${partitionset_active} true;" \
@@ -395,15 +457,15 @@
 		"rootfstype=${nand_root_fs_type} ip=${ip_method} " \
 		"console=ttyMTD,mtdoops console=ttyO0,115200n8 mtdoops.mtddev" \
 		"=mtdoops\0" \
-	"dfu_args=run bootargs_defaults;" \
-		"setenv bootargs ${bootargs} ;" \
-		"mtdparts default; " \
-		"led dfu 1;" \
-		"led stat 0;" \
-		"dfu 0 nand 0;" \
-		"led dfu 0;" \
-		"led stat 1;\0" \
-		"dfu_alt_info=" DFU_ALT_INFO_NAND "\0" \
+	COMMON_ENV_DFU_ARGS \
+		"dfu_alt_info=" DFU_ALT_INFO_NAND_V1 "\0" \
+	COMMON_ENV_NAND_BOOT \
+		"nand read.i ${kloadaddr} ${nand_src_addr} " \
+		"${nand_img_size}; bootm ${kloadaddr}\0" \
+	COMMON_ENV_NAND_CMDS
+
+#define CONFIG_ENV_SETTINGS_V1 \
+		COMMON_ENV_SETTINGS \
 	"net_args=run bootargs_defaults;" \
 		"mtdparts default;" \
 		"setenv bootfile ${project_dir}/kernel/uImage;" \
@@ -413,48 +475,103 @@
 		"nfsroot=${serverip}:${rootpath},${nfsopts} " \
 		"ip=${ipaddr}:${serverip}:" \
 		"${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
-	"nand_boot=echo Booting from nand; " \
-		"if test ${upgrade_available} -eq 1; then " \
-			"if test ${bootcount} -gt ${bootlimit}; " \
-				"then " \
-				"setenv upgrade_available 0;" \
-				"setenv ${partitionset_active} true;" \
-				"if test -n ${A}; then " \
-					"setenv partitionset_active B; " \
-					"env delete A; " \
-				"fi;" \
-				"if test -n ${B}; then " \
-					"setenv partitionset_active A; " \
-					"env delete B; " \
-				"fi;" \
-				"saveenv; " \
-			"fi;" \
+	"net_nfs=echo Booting from network ...; " \
+		"run net_args; " \
+		"tftpboot ${kloadaddr} ${serverip}:${bootfile}; " \
+		"bootm ${kloadaddr}\0"
+
+/*
+ * Variant 2 partition layout
+ * chip-size = 256MiB
+ *|         name |        size |           address area |
+ *-------------------------------------------------------
+ *|          spl | 128.000 KiB | 0x       0..0x   1ffff |
+ *|  spl.backup1 | 128.000 KiB | 0x   20000..0x   3ffff |
+ *|  spl.backup2 | 128.000 KiB | 0x   40000..0x   5ffff |
+ *|  spl.backup3 | 128.000 KiB | 0x   60000..0x   7ffff |
+ *|       u-boot |   1.875 MiB | 0x   80000..0x  25ffff |
+ *|   uboot.env0 | 512.000 KiB | 0x  260000..0x  2Dffff |
+ *|   uboot.env1 | 512.000 KiB | 0x  2E0000..0x  35ffff |
+ *|       rootfs | 148.000 MiB | 0x  360000..0x 975ffff |
+ *|      mtdoops | 512.000 KiB | 0x 9760000..0x 98Dffff |
+ *|configuration | 104.125 MiB | 0x 97E0000..0x fffffff |
+ *-------------------------------------------------------
+ */
+
+#define MTDPARTS_DEFAULT_V2	"mtdparts=" MTDIDS_NAME_STR ":" \
+					"128k(spl),"		\
+					"128k(spl.backup1),"	\
+					"128k(spl.backup2),"	\
+					"128k(spl.backup3),"	\
+					"1920k(u-boot),"	\
+					"512k(u-boot.env0),"	\
+					"512k(u-boot.env1),"	\
+					"148m(rootfs),"		\
+					"512k(mtdoops),"	\
+					"-(configuration)"
+
+#define DFU_ALT_INFO_NAND_V2 \
+	"spl part 0 1;" \
+	"spl.backup1 part 0 2;" \
+	"spl.backup2 part 0 3;" \
+	"spl.backup3 part 0 4;" \
+	"u-boot part 0 5;" \
+	"u-boot.env0 part 0 6;" \
+	"u-boot.env1 part 0 7;" \
+	"rootfs partubi 0 8;" \
+	"configuration partubi 0 10"
+
+#define CONFIG_ENV_SETTINGS_NAND_V2 \
+	"nand_active_ubi_vol=rootfs_a\0" \
+	"rootfs_name=rootfs\0" \
+	"kernel_name=uImage\0"\
+	"nand_root_fs_type=ubifs rootwait=1\0" \
+	"nand_args=run bootargs_defaults;" \
+		"mtdparts default;" \
+		"setenv ${partitionset_active} true;" \
+		"if test -n ${A}; then " \
+			"setenv nand_active_ubi_vol ${rootfs_name}_a;" \
 		"fi;" \
-		"echo set ${partitionset_active}...;" \
-		"run nand_args; " \
-		"nand read.i ${kloadaddr} ${nand_src_addr} " \
-		"${nand_img_size}; bootm ${kloadaddr}\0" \
+		"if test -n ${B}; then " \
+			"setenv nand_active_ubi_vol ${rootfs_name}_b;" \
+		"fi;" \
+		"setenv nand_root ubi0:${nand_active_ubi_vol} rw " \
+		"ubi.mtd=7,2048 ubi.mtd=9,2048;" \
+		"setenv bootargs ${bootargs} " \
+		"root=${nand_root} noinitrd ${mtdparts} " \
+		"rootfstype=${nand_root_fs_type} ip=${ip_method} " \
+		"console=ttyMTD,mtdoops console=ttyO0,115200n8 mtdoops.mtddev" \
+		"=mtdoops\0" \
+	COMMON_ENV_DFU_ARGS \
+		"dfu_alt_info=" DFU_ALT_INFO_NAND_V2 "\0" \
+	COMMON_ENV_NAND_BOOT \
+		"ubi part rootfs 2048;" \
+		"ubifsmount ubi0:${nand_active_ubi_vol};" \
+		"ubifsload ${kloadaddr} boot/${kernel_name};" \
+		"ubifsload ${loadaddr} boot/${dtb_name}.dtb;" \
+		"bootm ${kloadaddr} - ${loadaddr}\0" \
+	"nand_boot_backup=ubifsload ${loadaddr} boot/am335x-draco.dtb;" \
+		"bootm ${kloadaddr} - ${loadaddr}\0" \
+	COMMON_ENV_NAND_CMDS
+
+#define CONFIG_ENV_SETTINGS_V2 \
+		COMMON_ENV_SETTINGS \
+	"net_args=run bootargs_defaults;" \
+		"mtdparts default;" \
+		"setenv bootfile ${project_dir}/kernel/uImage;" \
+		"setenv bootdtb ${project_dir}/kernel/dtb;" \
+		"setenv rootpath /home/projects/${project_dir}/rootfs;" \
+		"setenv bootargs ${bootargs} " \
+		"root=/dev/nfs ${mtdparts} " \
+		"nfsroot=${serverip}:${rootpath},${nfsopts} " \
+		"ip=${ipaddr}:${serverip}:" \
+		"${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
 	"net_nfs=echo Booting from network ...; " \
 		"run net_args; " \
 		"tftpboot ${kloadaddr} ${serverip}:${bootfile}; " \
-		"bootm ${kloadaddr}\0" \
-	"flash_self=run nand_boot\0" \
-	"flash_self_test=setenv testargs test; " \
-		"run nand_boot\0" \
-	"dfu_start=echo Preparing for dfu mode ...; " \
-		"run dfu_args; \0" \
-	"preboot=echo; "\
-		"echo Type 'run flash_self' to use kernel and root " \
-		"filesystem on memory; echo Type 'run flash_self_test' to " \
-		"use kernel and root filesystem on memory, boot in test " \
-		"mode; echo Not ready yet: 'run flash_nfs' to use kernel " \
-		"from memory and root filesystem over NFS; echo Type " \
-		"'run net_nfs' to get Kernel over TFTP and mount root " \
-		"filesystem over NFS; " \
-		"echo Set partitionset_active variable to 'A' " \
-		"or 'B' to select kernel and rootfs partition; " \
-		"echo" \
-		"\0"
+		"tftpboot ${loadaddr} ${serverip}:${bootdtb}; " \
+		"bootm ${kloadaddr} - ${loadaddr}\0"
+
 
 #define CONFIG_NAND_OMAP_GPMC
 #define CONFIG_NAND_OMAP_ELM
@@ -473,6 +590,9 @@
 
 #define CONFIG_OMAP_GPIO
 
+/* Gpio cmd support */
+#define CONFIG_CMD_GPIO
+
 /* Watchdog */
 #define CONFIG_HW_WATCHDOG
 
