[U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards

Heiko Schocher
2010-04-12T07:33:14Z

- 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.huber@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Heiko Schocher <hs@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 | ...
+... ---------------------------------------- ...
+ at KERNEL_ADDR: address to place and boot the kernel
+ at 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 ------------------->|
+... ------------------------------------------------
+ at END_OF_RAM: denotes the RAM size found in variable 'memsize'
+ at reserved: reserved pram for special purpose (switch, bootcount, ...)
+ reserved space: 'reservedpram'
+ at varaddr: address for /var
+ reserved space: 'varsize'
+ at pnvramaddr: address for PNVRAM (for the application)
+ reserved space: 'pnvramsize'
+ at 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