Patchwork [U-Boot,01/20] keymile: rework headerfiles for keymile boards

login
register
mail settings
Submitter Heiko Schocher
Date March 8, 2011, 1:29 p.m.
Message ID <1299591018-8944-2-git-send-email-hs@denx.de>
Download mbox | patch
Permalink /patch/85998/
State Changes Requested
Headers show

Comments

Heiko Schocher - March 8, 2011, 1:29 p.m.
- This patch reworks all headerfiles for keymile boards (coge, supx4,
  eter1, suen3).
  Furthermore, a refactoring on the whole environment variables has been
  acomplished.

- Environment variables:
  - grouped into logical blocks (#defines) based on the functionality/purpose
  - short description for most of the variables
  - as much as possible is moved into the common headerfiles
  - keymile powerpc specific config settings are moved to km-powerpc.h
  - Keep the kernel command line clean from KM 'specialities'.
    The boardId and hwKey is no longer needed as kernel arguments.
    They are stored in the U-Boot environment and read out from userspace
    later with the help of fw_printenv or equivalent tools.
- km8xx: default environment partitioning corrected
- km_arm: MACH_TYPE changed to MACH_TYPE_KM_KIRKWOOD

Signed-off-by: Andreas Huber <andreas.huber@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
cc: Kim Phillips <kim.phillips@freescale.com>
cc: Wolfgang Denk <wd@denx.de>
---
 board/keymile/common/common.c    |    4 +-
 board/keymile/km_arm/km_arm.c    |    2 +-
 include/configs/keymile-common.h |  275 ++++++++++++++++++++++----------------
 include/configs/km-powerpc.h     |   92 +++++++++++++
 include/configs/km_arm.h         |   30 ++++-
 include/configs/kmeter1.h        |   40 +++---
 include/configs/mgcoge.h         |   38 +++---
 7 files changed, 316 insertions(+), 165 deletions(-)
 create mode 100644 include/configs/km-powerpc.h
Wolfgang Denk - March 13, 2011, 10 p.m.
Dear Heiko Schocher,

In message <1299591018-8944-2-git-send-email-hs@denx.de> you wrote:
> - This patch reworks all headerfiles for keymile boards (coge, supx4,
>   eter1, suen3).
>   Furthermore, a refactoring on the whole environment variables has been
>   acomplished.

Two independent changes => Please submit as two separate patches.

...
> +#define CONFIG_HUSH_INIT_VAR		1
...
> +#define CONFIG_I2C_MULTI_BUS		1
...
> +#define CONFIG_I2C_MUX			1

Defines like these that select functions only should not be assigned
any numeric (or other value).  Please omit thse.  Please fix globally.

> +#define CONFIG_KM_DEF_ENV_CONSTANTS					\
...
> +	"default="							\
> +		"setenv default \'run newenv; reset\' &&  "		\

These backslashes are redundant at best.  Why not drop them?

...
> +	"u-boot=" xstr(CONFIG_HOSTNAME) "/u-boot.bin \0" 		\

Are you sure you really want that trailing blank? [Please check
globally.]

...
> +#define CONFIG_SYS_MONITOR_LEN		(768 << 10)	/* Reserve 768KB for Monitor */

Line too long.  Please fix globally.

Best regards,

Wolfgang Denk
Heiko Schocher - March 14, 2011, 7:16 a.m.
Hello Wolfgang,

Wolfgang Denk wrote:
> In message <1299591018-8944-2-git-send-email-hs@denx.de> you wrote:
>> - This patch reworks all headerfiles for keymile boards (coge, supx4,
>>   eter1, suen3).
>>   Furthermore, a refactoring on the whole environment variables has been
>>   acomplished.
> 
> Two independent changes => Please submit as two separate patches.

Ok, I try to split this in two patches.

> ...
>> +#define CONFIG_HUSH_INIT_VAR		1
> ...
>> +#define CONFIG_I2C_MULTI_BUS		1
> ...
>> +#define CONFIG_I2C_MUX			1
> 
> Defines like these that select functions only should not be assigned
> any numeric (or other value).  Please omit thse.  Please fix globally.

Ok.

>> +#define CONFIG_KM_DEF_ENV_CONSTANTS					\
> ...
>> +	"default="							\
>> +		"setenv default \'run newenv; reset\' &&  "		\
> 
> These backslashes are redundant at best.  Why not drop them?

Ok, drop it.

> ...
>> +	"u-boot=" xstr(CONFIG_HOSTNAME) "/u-boot.bin \0" 		\
> 
> Are you sure you really want that trailing blank? [Please check
> globally.]

Good cathc, check this.

> ...
>> +#define CONFIG_SYS_MONITOR_LEN		(768 << 10)	/* Reserve 768KB for Monitor */
> 
> Line too long.  Please fix globally.

Ok.

bye,
Heiko

Patch

diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c
index 7b4eefd..86be9c2 100644
--- a/board/keymile/common/common.c
+++ b/board/keymile/common/common.c
@@ -500,7 +500,7 @@  void i2c_init_board(void)
 	out_8 (&dev->cr, (I2C_CR_MEN));
 
 #else
-#if defined(CONFIG_HARD_I2C) && !defined(CONFIG_MACH_SUEN3)
+#if defined(CONFIG_HARD_I2C) && !defined(MACH_TYPE_KM_KIRKWOOD)
 	volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR ;
 	volatile i2c8260_t *i2c	= (i2c8260_t *)&immap->im_i2c;
 
@@ -578,7 +578,7 @@  int fdt_get_node_and_value (void *blob,
 }
 #endif
 
-#if !defined(CONFIG_MACH_SUEN3)
+#if !defined(MACH_TYPE_KM_KIRKWOOD)
 int ethernet_present (void)
 {
 	return (in_8((u8 *)CONFIG_SYS_PIGGY_BASE + CONFIG_SYS_SLOT_ID_OFF) & 0x80);
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 2e20644..5c1e822 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -180,7 +180,7 @@  int board_init(void)
 	/*
 	 * arch number of board
 	 */
-	gd->bd->bi_arch_number = MACH_TYPE_SUEN3;
+	gd->bd->bi_arch_number = MACH_TYPE_KM_KIRKWOOD;
 
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
diff --git a/include/configs/keymile-common.h b/include/configs/keymile-common.h
index e3bd264..c6a1432 100644
--- a/include/configs/keymile-common.h
+++ b/include/configs/keymile-common.h
@@ -1,5 +1,5 @@ 
 /*
- * (C) Copyright 2008
+ * (C) Copyright 2008-2010
  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -25,9 +25,7 @@ 
 #define __CONFIG_KEYMILE_H
 
 /* Do boardspecific init for all boards */
-#define CONFIG_BOARD_EARLY_INIT_R       1
-
-#define CONFIG_BOOTCOUNT_LIMIT
+#define CONFIG_BOARD_EARLY_INIT_R	1
 
 /*
  * By default kwbimage.cfg from board specific folder is used
@@ -56,16 +54,15 @@ 
 #define CONFIG_CMD_IMMAP
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_PING
-#define CONFIG_CMD_DTT
 #define CONFIG_CMD_EEPROM
 #define CONFIG_CMD_I2C
 #define CONFIG_CMD_JFFS2
-#define CONFIG_JFFS2_CMDLINE
 #define CONFIG_CMD_MTDPARTS
+#define CONFIG_CMD_SETEXPR
 
 #undef	CONFIG_WATCHDOG			/* disable platform specific watchdog */
 
-#define CONFIG_BOOTDELAY	5	/* autoboot after 5 seconds */
+#define CONFIG_BOOTDELAY	2	/* autoboot after 2 seconds */
 #undef	CONFIG_BOOTARGS			/* the boot command will set bootargs */
 
 /*
@@ -78,25 +75,21 @@ 
 #if defined(CONFIG_CMD_KGDB)
 #define CONFIG_SYS_CBSIZE		1024	/* Console I/O Buffer Size  */
 #else
-#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size  */
+#define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size  */
 #endif
-#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)	/* Print Buffer Size  */
-#define CONFIG_SYS_MAXARGS		16	/* max number of command args */
-#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE	/* Boot Argument Buffer Size  */
-#define CONFIG_CMDLINE_EDITING		1	/* add command line history     */
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS		32 /* max number of command args */
+#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE
+#define CONFIG_CMDLINE_EDITING		1 /* add command line history   */
 #define CONFIG_AUTO_COMPLETE		/* add autocompletion support	*/
 
-#define CONFIG_HUSH_INIT_VAR	1
+#define CONFIG_HUSH_INIT_VAR		1
 
 #define CONFIG_SYS_ALT_MEMTEST		/* memory test, takes time */
-#define CONFIG_SYS_MEMTEST_START	0x00100000	/* memtest works on */
-#define CONFIG_SYS_MEMTEST_END		0x00f00000	/* 1 ... 15 MB in DRAM	*/
-
-#define CONFIG_SYS_LOAD_ADDR		0x100000	/* default load address */
 
 #define CONFIG_SYS_HZ			1000	/* decrementer freq: 1 ms ticks */
 
-#define CONFIG_BAUDRATE		115200
+#define CONFIG_BAUDRATE			115200
 #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200, 230400 }
 
 #define CONFIG_LOADS_ECHO	1	/* echo on for serial download */
@@ -113,23 +106,23 @@ 
 #define CONFIG_SYS_SLOT_ID_OFF		(0x07)	/* register offset */
 #define CONFIG_SYS_SLOT_ID_MASK		(0x3f)	/* mask for slot ID bits */
 
-#define CONFIG_I2C_MULTI_BUS	1
+#define CONFIG_I2C_MULTI_BUS		1
 #define CONFIG_SYS_MAX_I2C_BUS		1
 #define CONFIG_SYS_I2C_INIT_BOARD	1
-#define CONFIG_I2C_MUX		1
+#define CONFIG_I2C_MUX			1
 
 /* EEprom support */
-#define CONFIG_SYS_I2C_MULTI_EEPROMS	1
+#define CONFIG_SYS_I2C_MULTI_EEPROMS		1
 #define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 	3
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 	10
 
 /* Support the IVM EEprom */
 #define	CONFIG_SYS_IVM_EEPROM_ADR	0x50
 #define CONFIG_SYS_IVM_EEPROM_MAX_LEN	0x400
 #define CONFIG_SYS_IVM_EEPROM_PAGE_LEN	0x100
 
-#define	CONFIG_SYS_FLASH_PROTECTION 1
+#define	CONFIG_SYS_FLASH_PROTECTION	1
 
 /*
  * BOOTP options
@@ -139,15 +132,12 @@ 
 #define CONFIG_BOOTP_GATEWAY
 #define CONFIG_BOOTP_HOSTNAME
 
-#define CONFIG_ENV_SIZE		0x04000 /* Size of Environment */
-
-#define CONFIG_SYS_MALLOC_LEN	(4 * 1024 * 1024)
+#define CONFIG_SYS_MALLOC_LEN		(4 * 1024 * 1024)
 
 /* UBI Support for all Keymile boards */
 #define CONFIG_CMD_UBI
 #define CONFIG_RBTREE
 #define CONFIG_MTD_PARTITIONS
-#define CONFIG_FLASH_CFI_MTD
 #define CONFIG_MTD_DEVICE
 #define CONFIG_MTD_CONCAT
 
@@ -175,103 +165,152 @@ 
 	"kmprivate=empty\0"
 #endif
 
+#ifndef CONFIG_KM_DEF_NETDEV
+#define CONFIG_KM_DEF_NETDEV	\
+	"netdev=eth0\0"
+#endif
+
+#ifndef CONFIG_KM_UBI_PARTITION_NAME
+#define CONFIG_KM_UBI_PARTITION_NAME	"ubi0"
+#endif
+#ifndef CONFIG_KM_UBI_LINUX_MTD_NAME
+#define CONFIG_KM_UBI_LINUX_MTD_NAME	"ubi0"
+#endif
+
 #define xstr(s)	str(s)
 #define str(s)	#s
 
+/*
+ * bootargs
+ * - modify 'bootargs'
+ *
+ * - 'addip': add ip configuration
+ * - 'addpanic': add kernel panic options
+ * - 'addramfs': add phram device for the rootfilesysten in ram
+ * - 'addtty': add console=...
+ * - 'nfsargs': default arguments for nfs boot
+ * - 'flashargs': defaults arguments for flash base boot
+ *
+ * processor specific settings
+ * - 'addmtdparts': add mtd partition information
+ */
+#define CONFIG_KM_DEF_ENV_BOOTARGS					\
+	"addinit="							\
+		"setenv bootargs ${bootargs} init=${init}\0"		\
+	"addip="							\
+		"setenv bootargs ${bootargs} "				\
+		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\
+		":${hostname}:${netdev}:off\0"				\
+	"addpanic="							\
+		"setenv bootargs ${bootargs} "				\
+		"panic=1 panic_on_oops=1\0"				\
+	"addramfs="							\
+		"setenv bootargs \""					\
+		"${bootargs} phram.phram="				\
+		"rootfs${actual_bank},${rootfsaddr},${rootfssize}\"\0"	\
+	"addtty="							\
+		"setenv bootargs ${bootargs}"				\
+		" console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}\0"	\
+	"nfsargs="							\
+		"setenv bootargs "					\
+		"ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "		\
+		"root=/dev/nfs rw "					\
+		"nfsroot=${serverip}:${rootpath}\0"			\
+	"flashargs="							\
+		"setenv bootargs "					\
+		"ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "		\
+		"root=mtdblock:rootfs${actual_bank} "			\
+		"rootfstype=squashfs ro\0" 				\
+	""
+
+#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"
+
+/*
+ * 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"			\
+	"cramfsloadkernel="						\
+		"cramfsload ${kernel_addr_r} uImage && "		\
+		"setenv actual_kernel_addr ${kernel_addr_r}\0" 		\
+	"ubiattach=ubi part ${ubipartition}\0"				\
+	"ubicopy=ubi read ${cramfsaddr} bootfs${actual_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
+ *
+ * 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"
+
+/*
+ * constants
+ * - KM specific constants and commands
+ *
+ * - 'default': setup default environment
+ */
+#define CONFIG_KM_DEF_ENV_CONSTANTS					\
+	"actual=setenv actual_bank ${initial_boot_bank}\0"		\
+	"actual0=setenv actual_bank 0\0"				\
+	"actual_bank=${initial_boot_bank}\0"				\
+	"default="							\
+		"setenv default \'run newenv; reset\' &&  "		\
+		"run release && saveenv; reset\0"			\
+	"checkboardid="							\
+		"test \"x${boardId}\" = \"x${IVM_BoardId}\"\0"		\
+	"printbootargs=print bootargs\0"				\
+	"rootfsfile=" xstr(CONFIG_HOSTNAME) "/rootfsImage\0"		\
+	""
+
 #ifndef CONFIG_KM_DEF_ENV
 #define CONFIG_KM_DEF_ENV	\
-	"netdev=eth0\0"							\
-	"u-boot_addr_r=100000\0"					\
-	"kernel_addr_r=200000\0"					\
-	"fdt_addr_r=600000\0"						\
-	"ram_ws=800000 \0"						\
-	"script_ws=780000 \0"						\
-	"fdt_file=" xstr(CONFIG_HOSTNAME) "/" 				\
-		xstr(CONFIG_HOSTNAME) ".dtb\0"				\
-	"u-boot=" xstr(CONFIG_HOSTNAME) "/u-boot.bin \0" 		\
-	"kernel_file=" xstr(CONFIG_HOSTNAME) "/uImage \0" 		\
-	"load=tftp ${u-boot_addr_r} ${u-boot}\0"			\
-	"update=protect off " xstr(BOOTFLASH_START) " +${filesize};"	\
-		"erase " xstr(BOOTFLASH_START) "  +${filesize};"	\
-		"cp.b ${u-boot_addr_r} " xstr(BOOTFLASH_START) 		\
-		"  ${filesize};"					\
-		"protect on " xstr(BOOTFLASH_START) "  +${filesize}\0"	\
-	"load_fdt=tftp ${fdt_addr_r} ${fdt_file}; "			\
-		"setenv actual_fdt_addr ${fdt_addr_r} \0" 		\
-	"load_kernel=tftp ${kernel_addr_r} ${kernel_file}; " 		\
-		"setenv actual_kernel_addr ${kernel_addr_r} \0" 	\
-	"ramargs=setenv bootargs root=/dev/ram rw\0"			\
-	"nfsargs=setenv bootargs root=/dev/nfs rw "			\
-		"nfsroot=${serverip}:${rootpath}\0"			\
-	"mtdargs=setenv bootargs root=${actual_rootfs} rw "		\
-		"rootfstype=jffs2 \0" 					\
-	"altmtdargs=setenv bootargs root=${backup_rootfs} rw "		\
-		"rootfstype=jffs2 \0" 					\
-	"addmtd=setenv bootargs ${bootargs} ${mtdparts}\0"		\
-	"addip=setenv bootargs ${bootargs} "				\
-		"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"	\
-		":${hostname}:${netdev}:off panic=1\0"			\
-	"addboardid=setenv bootargs ${bootargs} " 			\
-		"hwKey=${IVM_HWKey} boardId=0x${IVM_BoardId} \0" 	\
-	"addpram=setenv bootargs ${bootargs} "				\
-		"mem=${mem} pram=${pram}\0"				\
-	"pram=" xstr(CONFIG_PRAM) "k\0"					\
-	"net_nfs=tftp ${kernel_addr_r} ${kernel_file}; "		\
-		"tftp ${fdt_addr_r} ${fdt_file}; "			\
-		"run nfsargs addip addcon addboardid addpram;"		\
-		"bootm ${kernel_addr_r} - ${fdt_addr_r}\0"		\
-	"net_self=tftp ${kernel_addr_r} ${kernel_file}; "		\
-		"tftp ${fdt_addr_r} ${fdt_file}; "			\
-		"tftp ${ramdisk_addr} ${ramdisk_file}; "		\
-		"run ramargs addip addboardid addpram; "		\
-		"bootm ${kernel_addr_r} ${ramdisk_addr} ${fdt_addr_r}\0"\
-	"flash_nfs=run nfsargs addip addcon;"				\
-		"bootm ${kernel_addr} - ${fdt_addr}\0"			\
-	"flash_self=run ramargs addip addcon addboardid addpram;"	\
-		"bootm ${kernel_addr} ${ramdisk_addr} ${fdt_addr}\0"	\
-	"bootcmd=run mtdargs addip addcon addboardid addpram; "		\
-		"bootm ${actual_kernel_addr} - ${actual_fdt_addr} \0"	\
-	"altbootcmd=run altmtdargs addip addcon addboardid addpram; "	\
-		"bootm ${backup_kernel_addr} - ${backup_fdt_addr} \0"	\
-	"actual0=setenv actual_bank 0; setenv actual_kernel_addr "	\
-		"${bank0_kernel_addr}; "				\
-		"setenv actual_fdt_addr ${bank0_fdt_addr}; "		\
-		"setenv actual_rootfs ${bank0_rootfs} \0" 		\
-	"actual1=setenv actual_bank 1; setenv actual_kernel_addr "	\
-		"${bank1_kernel_addr}; "				\
-		"setenv actual_fdt_addr ${bank1_fdt_addr}; "		\
-		"setenv actual_rootfs ${bank1_rootfs} \0" 		\
-	"backup0=setenv backup_bank 0; setenv backup_kernel_addr " 	\
-		"${bank0_kernel_addr}; "				\
-		"setenv backup_fdt_addr ${bank0_fdt_addr}; "		\
-		"setenv backup_rootfs ${bank0_rootfs} \0"		\
-	"backup1=setenv backup_bank 1; setenv backup_kernel_addr "	\
-		"${bank1_kernel_addr}; "				\
-		"setenv backup_fdt_addr ${bank1_fdt_addr}; " 		\
-		"setenv backup_rootfs ${bank1_rootfs} \0" 		\
-	"setbank0=run actual0 backup1 \0" 				\
-	"setbank1=run actual1 backup0 \0" 				\
-	"release=setenv bootcmd "					\
-		"\'run mtdargs addip addcon addboardid addpram;" 	\
-		"bootm ${actual_kernel_addr} - ${actual_fdt_addr} \'; "	\
-		"saveenv \0"						\
-	"develop=setenv bootcmd "					\
-		"\'run nfsargs addip addcon addboardid addpram;" 	\
-		"bootm ${actual_kernel_addr} - ${actual_fdt_addr} \'; "	\
-		"saveenv \0"						\
-	"developall=setenv bootcmd "					\
-		"\'run load_fdt load_kernel nfsargs "			\
-		"addip addcon addboardid addpram; "			\
-		"bootm ${actual_kernel_addr} - ${actual_fdt_addr} \'; "	\
-		"saveenv \0"						\
-	"set_new_esw_script=setenv new_esw_script "			\
-		"new_esw_0x${IVM_BoardId}_0x${IVM_HWKey}.scr \0"	\
-	"new_esw=run set_new_esw_script; "				\
-		"tftp ${script_ws} ${new_esw_script}; "			\
-		"iminfo ${script_ws}; source ${script_ws} \0"		\
-	"bootlimit=0 \0" 						\
 	CONFIG_KM_DEF_ENV_IOMUX						\
 	CONFIG_KM_DEF_ENV_PRIVATE					\
+	CONFIG_KM_DEF_NETDEV						\
+	CONFIG_KM_DEF_ENV_CPU						\
+	CONFIG_KM_DEF_ENV_BOOTARGS					\
+	CONFIG_KM_DEF_ENV_COMPUTE_ADDR					\
+	CONFIG_KM_DEF_ENV_FLASH_BOOT					\
+	CONFIG_KM_DEF_ENV_NET_BOOT					\
+	"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"				\
+	"u-boot=" xstr(CONFIG_HOSTNAME) "/u-boot.bin \0" 		\
+	"u-boot_addr_r=" xstr(CONFIG_KM_KERNEL_ADDR) "\0"		\
 	""
 #endif /* CONFIG_KM_DEF_ENV */
 
diff --git a/include/configs/km-powerpc.h b/include/configs/km-powerpc.h
new file mode 100644
index 0000000..02b2985
--- /dev/null
+++ b/include/configs/km-powerpc.h
@@ -0,0 +1,92 @@ 
+/*
+ * (C) Copyright 2010
+ * Heiko Schocher, DENX Software Engineering, hs@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_KEYMILE_POWERPC_H
+#define __CONFIG_KEYMILE_POWERPC_H
+
+#define CONFIG_BOOTCOUNT_LIMIT
+
+#define CONFIG_CMD_DTT
+#define CONFIG_JFFS2_CMDLINE
+
+#define CONFIG_ENV_SIZE		0x04000		/* Size of Environment */
+#define CONFIG_FLASH_CFI_MTD
+
+#define CONFIG_SYS_MEMTEST_START 0x00100000	/* memtest works on */
+
+#define CONFIG_SYS_MEMTEST_END	0x00f00000	/* 1 ... 15 MB in DRAM	*/
+
+#define CONFIG_SYS_LOAD_ADDR	0x100000	/* default load address */
+
+/******************************************************************************
+ * (PRAM usage)
+ * ... -------------------------------------------------------
+ * ... |ROOTFSSIZE | PNVRAM |PHRAM |RESERVED_PRAM | END_OF_RAM
+ * ... |<------------------- pram -------------------------->|
+ * ... -------------------------------------------------------
+ * @END_OF_RAM:
+ * @CONFIG_KM_RESERVED_PRAM: reserved pram for special purpose
+ * @CONFIG_KM_PHRAM: address for /var
+ * @CONFIG_KM_PNVRAM: address for PNVRAM (for the application)
+ * @CONFIG_KM_ROOTFSSIZE: address for rootfilesystem in RAM
+ */
+
+/* size of rootfs in RAM */
+#define CONFIG_KM_ROOTFSSIZE 	0x0
+/* pseudo-non volatile RAM [hex] */
+#define CONFIG_KM_PNVRAM	0x80000
+/* physical RAM MTD size [hex] */
+#define CONFIG_KM_PHRAM		0x100000
+/* resereved pram area at the end of memroy [hex] */
+#define CONFIG_KM_RESERVED_PRAM	0x0
+/* enable protected RAM */
+#define CONFIG_PRAM		0
+
+#define CONFIG_KM_CRAMFS_ADDR	0x800000
+#define CONFIG_KM_KERNEL_ADDR	0x400000	/* 3968Kbytes */
+#define CONFIG_KM_FDT_ADDR	0x7E0000	/* 128Kbytes */
+
+#define CONFIG_KM_DEF_ENV_CPU						\
+	"addbootcount=echo \\\\c\0"					\
+	"addmtdparts=echo \\\\c\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} && "	\
+		"cp.b ${u-boot_addr_r} " xstr(BOOTFLASH_START) 		\
+		"  ${filesize} && "					\
+		"protect on " xstr(BOOTFLASH_START) "  +${filesize}\0"  \
+	""
+
+#endif /* __CONFIG_KEYMILE_POWERPC_H */
diff --git a/include/configs/km_arm.h b/include/configs/km_arm.h
index bf77cc0..04a187e 100644
--- a/include/configs/km_arm.h
+++ b/include/configs/km_arm.h
@@ -6,6 +6,9 @@ 
  * (C) Copyright 2009
  * Stefan Roese, DENX Software Engineering, sr@denx.de.
  *
+ * (C) Copyright 2010
+ * Heiko Schocher, DENX Software Engineering, hs@denx.de.
+ *
  * See file CREDITS for list of people who contributed to this
  * project.
  *
@@ -38,12 +41,33 @@ 
 #define CONFIG_FEROCEON_88FR131		/* CPU Core subversion */
 #define CONFIG_KIRKWOOD			/* SOC Family Name */
 #define CONFIG_KW88F6281		/* SOC Name */
-#define CONFIG_MACH_SUEN3		/* Machine type */
+#define CONFIG_MACH_KM_KIRKWOOD		/* Machine type */
 
 /* include common defines/options for all Keymile boards */
 #include "keymile-common.h"
-#undef CONFIG_CMD_DTT
-#undef CONFIG_BOOTCOUNT_LIMIT
+
+#define CONFIG_ENV_SIZE		(128 << 10)	/* NAND chip block size	*/
+#define CONFIG_SYS_MEMTEST_START 0x00400000	/* 4M */
+#define CONFIG_SYS_MEMTEST_END	0x007fffff	/*(_8M -1) */
+#define CONFIG_SYS_LOAD_ADDR	0x00800000	/* default load adr- 8M */
+
+/* pseudo-non volatile RAM [hex] */
+#define CONFIG_KM_PNVRAM	0x80000
+/* physical RAM MTD size [hex] */
+#define CONFIG_KM_PHRAM		0x17F000
+
+#define CONFIG_KM_CRAMFS_ADDR	0x2400000
+#define CONFIG_KM_KERNEL_ADDR	0x2000000	/* 4096KBytes */
+
+#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"						\
+	CONFIG_KM_DEF_ENV_UPDATE					\
+	""
+
+
 
 #define CONFIG_MD5	/* get_random_hex on krikwood needs MD5 support */
 #define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
diff --git a/include/configs/kmeter1.h b/include/configs/kmeter1.h
index 8fcadfe..e8c1224 100644
--- a/include/configs/kmeter1.h
+++ b/include/configs/kmeter1.h
@@ -8,7 +8,7 @@ 
  * Copyright (C) 2007 MontaVista Software, Inc.
  *                    Anton Vorontsov <avorontsov@ru.mvista.com>
  *
- * (C) Copyright 2008
+ * (C) Copyright 2008-2010
  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  *
  * This program is free software; you can redistribute it and/or
@@ -31,16 +31,20 @@ 
 #define CONFIG_HOSTNAME		kmeter1
 
 #define	CONFIG_SYS_TEXT_BASE	0xF0000000
+#define CONFIG_KM_DEF_NETDEV	\
+	"netdev=eth2\0"		\
 
 /* include common defines/options for all Keymile boards */
 #include "keymile-common.h"
-
-#define CONFIG_KM_UBI_PARTITION_NAME	"ubi0"
+#include "km-powerpc.h"
 
 #define MTDIDS_DEFAULT		"nor0=boot"
-#define MTDPARTS_DEFAULT	\
-	"mtdparts=boot:768k(u-boot),128k(env),128k(envred),"	\
-	"-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+#define MTDPARTS_DEFAULT	"mtdparts="			\
+	"boot:"							\
+		"768k(u-boot),"					\
+		"128k(env),"					\
+		"128k(envred),"					\
+		"-(" CONFIG_KM_UBI_PARTITION_NAME ")"
 
 #define CONFIG_MISC_INIT_R	1
 /*
@@ -172,7 +176,7 @@ 
 #undef	CONFIG_SYS_RAMBOOT
 #endif
 
-#define CONFIG_SYS_MONITOR_LEN		(384 * 1024) /* Reserve 384 kB for Mon */
+#define CONFIG_SYS_MONITOR_LEN		(768 * 1024) /* Reserve 768 kB for Mon */
 
 /*
  * Initial RAM Base Address Setup
@@ -443,7 +447,7 @@ 
 
 #define BOOTFLASH_START	F0000000
 
-#define CONFIG_PRAM	512	/* protected RAM [KBytes] */
+#define CONFIG_KM_CONSOLE_TTY	"ttyS0"
 
 /*
  * Environment Configuration
@@ -455,22 +459,14 @@ 
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_KM_DEF_ENV						\
+	"dtt_bus=pca9547:70:a\0"					\
+	"EEprom_ivm=pca9547:70:9\0"					\
+	"newenv="							\
+		"prot off 0xF00C0000 +0x40000 && "			\
+		"era 0xF00C0000 +0x40000\0" 				\
 	"rootpath=/opt/eldk/ppc_82xx\0"					\
-	"addcon=setenv bootargs ${bootargs} console=ttyS0,${baudrate}\0"\
-	"ramdisk_file=/tftpboot/kmeter1/uRamdisk\0"			\
-	"loadram=tftp ${ramdisk_addr_r} ${ramdisk_file}\0"		\
-	"loadfdt=tftp ${fdt_addr_r} ${fdt_file}\0"			\
-	"loadkernel=tftp ${kernel_addr_r} ${bootfile}\0"		\
 	"unlock=yes\0"							\
-	"fdt_addr=F0080000\0"						\
-	"kernel_addr=F00a0000\0"					\
-	"ramdisk_addr=F03a0000\0"					\
-	"ramdisk_addr_r=F10000\0"					\
-	"EEprom_ivm=pca9547:70:9\0"					\
-	"dtt_bus=pca9547:70:a\0"					\
-	"mtdids=nor0=app \0"						\
-	"mtdparts=" MK_STR(MTDPARTS_DEFAULT) "\0"			\
-   ""
+	""
 
 #if defined(CONFIG_UEC_ETH)
 #define CONFIG_HAS_ETH0
diff --git a/include/configs/mgcoge.h b/include/configs/mgcoge.h
index 6dec0ee..27f50a6 100644
--- a/include/configs/mgcoge.h
+++ b/include/configs/mgcoge.h
@@ -1,5 +1,5 @@ 
 /*
- * (C) Copyright 2007
+ * (C) Copyright 2007-2010
  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -40,6 +40,7 @@ 
 
 /* include common defines/options for all Keymile boards */
 #include "keymile-common.h"
+#include "km-powerpc.h"
 
 /*
  * Select serial console configuration
@@ -81,31 +82,30 @@ 
 #define CONFIG_8260_CLKIN	66000000	/* in Hz */
 #endif
 
-#define BOOTFLASH_START	FE000000
-#define CONFIG_PRAM	512	/* protected RAM [KBytes] */
+#define BOOTFLASH_START		0xFE000000
 
-#define MTDIDS_DEFAULT		"nor0=boot,nor1=app"
-#define MTDPARTS_DEFAULT	\
-	"mtdparts=boot:384k(u-boot),128k(env),128k(envred),3456k(free);" \
-	"app:3m(esw0),10m(rootfs0),3m(esw1),10m(rootfs1),1m(var),5m(cfg)"
+#define CONFIG_KM_CONSOLE_TTY	"ttyCPM0"
+
+#define MTDIDS_DEFAULT		"nor3=app"
+#define MTDPARTS_DEFAULT	"mtdparts="				\
+	"app:"								\
+		"768k(u-boot),"						\
+		"128k(env),"						\
+		"128k(envred),"						\
+		"3072k(free),"						\
+		"-(" CONFIG_KM_UBI_PARTITION_NAME ")"
 
-#ifndef CONFIG_KM_DEF_ENV		/* if not set by keymile-common.h */
-#define CONFIG_KM_DEF_ENV "km-common=empty\0"
-#endif
 /*
  * Default environment settings
  */
-#define	CONFIG_EXTRA_ENV_SETTINGS	\
+#define	CONFIG_EXTRA_ENV_SETTINGS					\
 	CONFIG_KM_DEF_ENV						\
-	"rootpath=/opt/eldk/ppc_82xx\0"					\
-	"addcon=setenv bootargs ${bootargs} "				\
-		"console=ttyCPM0,${baudrate}\0"				\
-	"mtdids=nor0=boot,nor1=app \0"					\
-	"partition=nor1,5 \0"						\
-	"new_env=prot off FE060000 FE09FFFF; era FE060000 FE09FFFF \0" 	\
 	"EEprom_ivm=pca9544a:70:4 \0"					\
-	"mtdparts=" MK_STR(MTDPARTS_DEFAULT) "\0"			\
 	"unlock=yes\0"							\
+	"newenv="							\
+		"prot off 0xFE0C0000 +0x40000 && "			\
+		"era 0xFE0C0000 +0x40000\0" 				\
+	"rootpath=/opt/eldk/ppc_82xx\0"					\
 	""
 
 #define CONFIG_SYS_SDRAM_BASE		0x00000000
@@ -130,7 +130,7 @@ 
 #define CONFIG_SYS_RAMBOOT
 #endif
 
-#define CONFIG_SYS_MONITOR_LEN		(384 << 10)	/* Reserve 384KB for Monitor */
+#define CONFIG_SYS_MONITOR_LEN		(768 << 10)	/* Reserve 768KB for Monitor */
 
 #define CONFIG_ENV_IS_IN_FLASH