- 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 headerfile
  - 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
- Check the board id and the HW key stored in the environment with the values
  stored in IVM. Board id and hardware key are patched into the environment
  when building a keymile bootpackage.
- introduces the variable "initial_boot_bank" to the default
  environment. The "actual_bank" is set to this value on first
  startup.
  It is normally set to 0. So the behaviour is as before.
  If set to != 0, the first actual_bank is set to this
  value as well. Thus a bootpackage can define a boot
  bank other than 0.

Signed-off-by: Andreas Huber <andreas.hu...@keymile.com>
Signed-off-by: Holger Brunck <holger.bru...@keymile.com>
Signed-off-by: Heiko Schocher <h...@denx.de>
---
 include/configs/keymile-common.h |  577 ++++++++++++++++++++++++++++++--------
 include/configs/km8xx.h          |   35 ++--
 include/configs/km_arm.h         |    2 -
 include/configs/kmeter1.h        |   40 ++--
 include/configs/mgcoge.h         |   35 ++--
 5 files changed, 512 insertions(+), 177 deletions(-)

diff --git a/include/configs/keymile-common.h b/include/configs/keymile-common.h
index 729d1c0..e3585fc 100644
--- a/include/configs/keymile-common.h
+++ b/include/configs/keymile-common.h
@@ -25,7 +25,7 @@
 #define __CONFIG_KEYMILE_H

 /* Do boardspecific init for all boards */
-#define CONFIG_BOARD_EARLY_INIT_R       1
+#define CONFIG_BOARD_EARLY_INIT_R      1

 #define CONFIG_BOOTCOUNT_LIMIT

@@ -34,22 +34,115 @@
  */
 #include <config_cmd_default.h>

+#ifndef CONFIG_MACH_SUEN3
+/******************************************************************************/
+/********************************** PowerPC 
***********************************/
+/******************************************************************************/
+#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 */
+
+/* protected RAM */
+#define CONFIG_PRAM            0               /* enable PRAM */
+/* 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
+
+#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"  \
+       ""
+#else
+/******************************************************************************/
+/************************************ ARM 
*************************************/
+/******************************************************************************/
+
+#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 */
+
+/* resereved pram area at the end of memroy [hex] */
+/* 8Mbytes for switch + 4Kbytes for bootcount */
+#define CONFIG_KM_RESERVED_PRAM        0x801000
+/* address for the bootcount (taken from end of RAM) */
+#define BOOTCOUNT_ADDR         (CONFIG_KM_RESERVED_PRAM)
+
+/* 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                                          \
+       "addbootcount="                                                 \
+               "setexpr bootcountaddr ${memsize} - ${reservedpram} && "\
+               "setenv bootcountaddr 0x${bootcountaddr} && "           \
+               "setenv bootargs ${bootargs} "                          \
+               "bootcountaddr=${bootcountaddr}\0"                      \
+       "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                                        \
+       ""
+#endif
+/******************************************************************************/
+/*********************************** COMMON 
***********************************/
+/******************************************************************************/
+
 #define CONFIG_CMD_ASKENV
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_ECHO
 #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 */

 /*
@@ -62,30 +155,26 @@
 #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_COMMAND_HISTORY         1
 #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 */
-#define CONFIG_SYS_LOADS_BAUD_CHANGE   1       /* allow baudrate change */
+#define CONFIG_LOADS_ECHO              1 /* echo on for serial download */
+#define CONFIG_SYS_LOADS_BAUD_CHANGE   1 /* allow baudrate change */

 /*
  * How to get access to the slot ID.  Put this here to make it easy
@@ -97,23 +186,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
@@ -123,15 +212,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

@@ -159,103 +245,360 @@
        "kmprivate=empty\0"
 #endif

+/* common powerpc specific env settings */
+#ifndef CONFIG_KM_DEF_ENV_BOOTPARAMS
+#define CONFIG_KM_DEF_ENV_BOOTPARAMS \
+       "bootparams=empty\0"    \
+       "initial_boot_bank=0\0"
+#endif
+
+#ifndef CONFIG_KM_DEF_NETDEV
+#define CONFIG_KM_DEF_NETDEV   \
+       "netdev=eth0\0"
+#endif
+
+/******************************************************************************/
+/* RAM LAYOUT (compile time)
+... ---------------------------------------- ...
+... |@KERNEL_ADDR |@FDT_ADDR |@CRAMFS_ADDR | ...
+... ---------------------------------------- ...
+...@kernel_addr: address to place and boot the kernel
+...@fdt_addr: address to place the fdt (if available)
+...@cramfs_addr: address to place the cramfs containing kernel/fdt
+               (no cramfs support in ubi yet)
+
+(PRAM usage)
+... ------------------------------------------------
+... |@rootfsaddr |@pnvramaddr |@varaddr |@reserved |@END_OF_RAM
+... |<------------------- pram ------------------->|
+... ------------------------------------------------
+...@end_of_ram: denotes the RAM size found in variable 'memsize'
+...@reserved: reserved pram for special purpose (switch, bootcount, ...)
+               reserved space: 'reservedpram'
+...@varaddr: address for /var
+               reserved space: 'varsize'
+...@pnvramaddr: address for PNVRAM (for the application)
+               reserved space: 'pnvramsize'
+...@rootfsaddr: address for rootfilesystem in RAM
+               reserved space: 'rootfssize'
+This addresses are computed when running one of the boot 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)
+The variable 'pram' is set accordingly.
+*/
+/******************************************************************************/
+
+#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

+/*
+ * bootrunner
+ * - run all commands in 'subbootcmds'
+ * - on error, stop running the remaing commands
+ */
+#define CONFIG_KM_DEF_ENV_BOOTRUNNER                                   \
+       "bootrunner="                                                   \
+               "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"                                                \
+       ""
+
+/*
+ * boottargets
+ * - set 'subbootcmds' for the bootrunner
+ * - 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
+ */
+#define CONFIG_KM_DEF_ENV_BOOTTARGETS                                  \
+       "commonargs="                                                   \
+               "addip "                                                \
+               "addtty "                                               \
+               "addmem "                                               \
+               "addinit "                                              \
+               "addvar "                                               \
+               "addmtdparts "                                          \
+               "addbootcount "                                         \
+               "\0"                                                    \
+       "develop="                                                      \
+               "setenv subbootcmds \""                                 \
+               "tftpfdt tftpkernel "                                   \
+               "nfsargs ${commonargs} "                                \
+               "printbootargs boot "                                   \
+               "\" && "                                                \
+               "setenv bootcmd \'"                                     \
+               "run bootrunner"                                        \
+               "\' && "                                                \
+               "setenv altbootcmd \'"                                  \
+               "run bootcmd"                                           \
+               "\' && "                                                \
+               "run setboardid && "                                    \
+               "run setpram && "                                       \
+               "run setpnvramaddr && "                                 \
+               "saveenv && "                                           \
+               "reset\0"                                               \
+       "developall=run develop\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 && "                                  \
+               "run setpnvramaddr && "                                 \
+               "saveenv && "                                           \
+               "reset\0"                                               \
+       "ramfsall=run ramfs\0"                                          \
+       "release="                                                      \
+               "setenv actual_bank ${initial_boot_bank} && "           \
+               "setenv subbootcmds \""                                 \
+               "checkboardid "                                         \
+               "ubiattach ubicopy "                                    \
+               "cramfsloadfdt cramfsloadkernel "                       \
+               "flashargs ${commonargs} "                              \
+               "addpanic "                                             \
+               "printbootargs boot "                                   \
+               "\" && "                                                \
+               "setenv bootcmd \'"                                     \
+               "run bootrunner; reset"                                 \
+               "\' && "                                                \
+               "setenv altbootcmd \'"                                  \
+               "run actual0 bootcmd; reset"                            \
+               "\' && "                                                \
+               "run setpram && "                                       \
+               "run setpnvramaddr && "                                 \
+               "saveenv && "                                           \
+               "reset\0"                                               \
+       "releaseall=run release\0"                                      \
+       ""
+
+/*
+ * bootargs
+ * - modify 'bootargs'
+ *
+ * - '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
+ * - 'falshargs': defaults arguments for flash base boot
+ *
+ * processor specific settings
+ * - 'addbootcount': add boot counter
+ * - '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"                          \
+       "addmem="                                                       \
+               "setexpr value ${pram} * 0x400 && "                     \
+               "setexpr value ${memsize} - 0x${value} && "             \
+               "setenv bootargs ${bootargs} mem=0x${value}\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"      \
+       "addvar="                                                       \
+               "run setvaraddr && "                                    \
+               "setenv bootargs ${bootargs} phram.phram="              \
+               "${varname},${varaddr},${varsize}\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"                              \
+       ""
+
+/*
+ * compute_addr
+ * - compute addresses and sizes
+ * - addresses are calculated form the end of memory 'memsize'
+ *
+ * - 'setpnvramaddr': compute PNVRAM address
+ * - 'setpram': compute PRAM size for develop/release target
+ * - 'setramfspram': compute PRAM size for ramfs target
+ * - 'setrootfsaddr': compute rootfilesystem address for phram
+ * - 'setvaraddr': compute /var 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"                                                  \
+       "setpnvramaddr="                                                \
+               "setexpr value ${memsize} - ${reservedpram} && "        \
+               "setexpr value 0x${value} - ${varsize} && "             \
+               "setexpr value 0x${value} - ${pnvramsize} && "          \
+               "setenv pnvramaddr 0x${value}\0"                        \
+       "setpram="                                                      \
+               "setexpr value 0 + ${reservedpram} && "                 \
+               "setexpr value 0x${value} + ${varsize} && "             \
+               "setexpr value 0x${value} + ${pnvramsize} && "          \
+               "setexpr value 0x${value} / 0x400 && "                  \
+               "setenv pram 0x${value}\0"                              \
+       "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}\0"                              \
+       "setrootfsaddr="                                                \
+               "setexpr value ${memsize} - ${reservedpram} && "        \
+               "setexpr value 0x${value} - ${varsize} && "             \
+               "setexpr value 0x${value} - ${pnvramsize} && "          \
+               "setexpr value 0x${value} - ${rootfssize} && "          \
+               "setenv rootfsaddr 0x${value}\0"                        \
+       "setvaraddr="                                                   \
+               "setexpr value ${memsize} - ${reservedpram} && "        \
+               "setexpr value 0x${value} - ${varsize} && "             \
+               "setenv varaddr 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"                  \
+       "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
+ * - '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"                                     \
+       ""
+
+/*
+ * 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"          \
+       "pnvramsize=" xstr(CONFIG_KM_PNVRAM) "\0"                       \
+       "printbootargs=print bootargs\0"                                \
+       "reservedpram=" xstr(CONFIG_KM_RESERVED_PRAM) "\0"              \
+       "rootfsfile=" xstr(CONFIG_HOSTNAME) "/rootfsImage\0"            \
+       "varname=phvar\0"                                               \
+       "varsize=" xstr(CONFIG_KM_PHRAM) "\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_BOOTPARAMS                                    \
        CONFIG_KM_DEF_ENV_IOMUX                                         \
        CONFIG_KM_DEF_ENV_PRIVATE                                       \
+       CONFIG_KM_DEF_NETDEV                                            \
+       CONFIG_KM_DEF_ENV_CPU                                           \
+       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"                               \
+       "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/km8xx.h b/include/configs/km8xx.h
index b5552d2..04ef920 100644
--- a/include/configs/km8xx.h
+++ b/include/configs/km8xx.h
@@ -55,15 +55,13 @@
                                                 * working
                                                 */

-#define BOOTFLASH_START        F0000000
-#define CONFIG_PRAM    512     /* protected RAM [KBytes] */
-
 #define CONFIG_PREBOOT "echo;" \
        "echo Type \\\"run flash_nfs\\\" to mount root filesystem over NFS;" \
        "echo"

-#define BOOTFLASH_START        F0000000
-#define CONFIG_PRAM    512     /* protected RAM [KBytes] */
+#define BOOTFLASH_START        0xF0000000
+
+#define CONFIG_KM_CONSOLE_TTY  "ttyCPM0"

 #if defined(CONFIG_MGSUVD)
 #define CONFIG_ENV_IVM "EEprom_ivm=pca9544a:70:4 \0"
@@ -71,22 +69,23 @@
 #define CONFIG_ENV_IVM ""
 #endif

-#define MTDIDS_DEFAULT         "nor0=app"
-#define MTDPARTS_DEFAULT \
-       "mtdparts=app:384k(u-boot),128k(env),128k(envred),128k(free),"  \
-       "1536k(esw0),8704k(rootfs0),1536k(esw1),2432k(rootfs1),640k(var)," \
-       "768k(cfg)"
+#define MTDIDS_DEFAULT         "nor0=boot"
+#define MTDPARTS_DEFAULT       "mtdparts="                             \
+       "boot:"                                                         \
+               "768k(u-boot),"                                         \
+               "128k(env),"                                            \
+               "128k(envred),"                                         \
+               "-(" CONFIG_KM_UBI_PARTITION_NAME ")"

 #define CONFIG_EXTRA_ENV_SETTINGS                                      \
+       CONFIG_ENV_IVM                                                  \
        CONFIG_KM_DEF_ENV                                               \
+       "mtdids=" MTDIDS_DEFAULT "\0"                                   \
+       "mtdparts=" MTDPARTS_DEFAULT "\0"                               \
+       "newenv="                                                       \
+               "prot off 0xF00C0000 0xF00FFFFF && "                    \
+               "era 0xF00C0000 0xF00FFFFF\0"                           \
        "rootpath=/opt/eldk/ppc_8xx\0"                                  \
-       "addcon=setenv bootargs ${bootargs} "                           \
-               "console=ttyCPM0,${baudrate}\0"                         \
-       "mtdids=nor0=app \0"                                            \
-       "mtdparts=" MK_STR(MTDPARTS_DEFAULT) "\0"                       \
-       "partition=nor0,9 \0"                                           \
-       "new_env=prot off F0060000 F009FFFF; era F0060000 F009FFFF \0"  \
-       CONFIG_ENV_IVM                                                  \
        ""

 #undef CONFIG_RTC_MPC8xx               /* MPC866 does not support RTC  */
@@ -119,7 +118,7 @@
  */
 #define CONFIG_SYS_SDRAM_BASE          0x00000000
 #define CONFIG_SYS_FLASH_BASE          0xf0000000
-#define CONFIG_SYS_MONITOR_LEN         (384 << 10) /* 384 kB for Monitor */
+#define CONFIG_SYS_MONITOR_LEN         (768 << 10) /* 768 kB for Monitor */
 #define CONFIG_SYS_MONITOR_BASE        CONFIG_SYS_FLASH_BASE

 /*
diff --git a/include/configs/km_arm.h b/include/configs/km_arm.h
index a928c2c..c94c0b8 100644
--- a/include/configs/km_arm.h
+++ b/include/configs/km_arm.h
@@ -42,8 +42,6 @@

 /* include common defines/options for all Keymile boards */
 #include "keymile-common.h"
-#undef CONFIG_CMD_DTT
-#undef CONFIG_BOOTCOUNT_LIMIT

 #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 d27b75b..ed1e4b0 100644
--- a/include/configs/kmeter1.h
+++ b/include/configs/kmeter1.h
@@ -30,15 +30,19 @@
 #define CONFIG_KMETER1         1 /* KMETER1 board specific */
 #define CONFIG_HOSTNAME                kmeter1

+#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"
-
 #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
 /*
@@ -170,7 +174,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
@@ -448,9 +452,9 @@
 #define BOOTFLAG_COLD  0x01 /* Normal Power-On: Boot from FLASH */
 #define BOOTFLAG_WARM  0x02 /* Software reboot */

-#define BOOTFLASH_START        F0000000
+#define BOOTFLASH_START        0xF0000000

-#define CONFIG_PRAM    512     /* protected RAM [KBytes] */
+#define CONFIG_KM_CONSOLE_TTY  "ttyS0"

 /*
  * Environment Configuration
@@ -462,22 +466,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 55d1fc9..0073282 100644
--- a/include/configs/mgcoge.h
+++ b/include/configs/mgcoge.h
@@ -79,31 +79,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
@@ -128,7 +127,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

-- 
1.6.2.5

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to