All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards
@ 2010-04-12  7:33 Heiko Schocher
  2010-04-15 22:27 ` Kim Phillips
  2010-04-22 11:09 ` Wolfgang Denk
  0 siblings, 2 replies; 5+ messages in thread
From: Heiko Schocher @ 2010-04-12  7:33 UTC (permalink / raw)
  To: u-boot

- 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

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards
  2010-04-12  7:33 [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards Heiko Schocher
@ 2010-04-15 22:27 ` Kim Phillips
  2010-04-22 11:21   ` Wolfgang Denk
  2010-04-22 11:09 ` Wolfgang Denk
  1 sibling, 1 reply; 5+ messages in thread
From: Kim Phillips @ 2010-04-15 22:27 UTC (permalink / raw)
  To: u-boot

On Mon, 12 Apr 2010 09:33:14 +0200
Heiko Schocher <hs@denx.de> wrote:

> - 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>
> ---

since 3 of these 4 patches are in the mpc83xx domain, I went ahead and
applied 1-4/4 and pushed to u-boot-mpc83xx.git.

Thanks everyone,

Kim

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards
  2010-04-12  7:33 [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards Heiko Schocher
  2010-04-15 22:27 ` Kim Phillips
@ 2010-04-22 11:09 ` Wolfgang Denk
  1 sibling, 0 replies; 5+ messages in thread
From: Wolfgang Denk @ 2010-04-22 11:09 UTC (permalink / raw)
  To: u-boot

Dear Heiko Schocher,


sorry for the late review.

In message <4BC2CCBA.9090002@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.

> - 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.

Please define what a "boot bank" or a "bootpackage" is. I have no clue
what you might mean.

> +/* protected RAM */
> +#define CONFIG_PRAM		0		/* enable PRAM */

This makes little sense to me. If you enable the feature, you probably
also want to define a non-zero amount of PRAM reserved, or why do you
enable this at all?

> +/* 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

What's this? PRAM support is a standard feature, with well-defined
behaviour, including the location of the PRAM area.

...
> +/* resereved pram area at the end of memroy [hex] */

[typo!]

> +/* 8Mbytes for switch + 4Kbytes for bootcount */
> +#define CONFIG_KM_RESERVED_PRAM	0x801000

???

> +#define CONFIG_KM_DEF_ENV_CPU						\
> +	"addbootcount="							\
> +		"setexpr bootcountaddr ${memsize} - ${reservedpram} && "\

Argh...

...
> + at END_OF_RAM: denotes the RAM size found in variable 'memsize'
> + at reserved: reserved pram for special purpose (switch, bootcount, ...)
> +		reserved space: 'reservedpram'
...
> +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.

???

> +	"addmem="							\
> +		"setexpr value ${pram} * 0x400 && "			\
> +		"setexpr value ${memsize} - 0x${value} && "		\
> +		"setenv bootargs ${bootargs} mem=0x${value}\0"		\
...


NAK.

I think this code is based on a serious misconception about how PRAM
is supposed to work.

Please re-read section "Protected RAM" in the README. None of what you
are doing here should be needed, as this is inherent functionality of
the PRAM feature. It seems to me that you are trying to use this on a
ARM system, where PRAM support seems to be missing. If so, it should
be implemented in a clean and generic way (similar to how it's done
for PowerPC, and according to the documentation in the REAME).
Manually computing this and that in a board-specific way is not
acceptable.



Other remarks:


> --- a/include/configs/keymile-common.h
> +++ b/include/configs/keymile-common.h

This is suposed to be a common file for Keymile boards, right?

> +#ifndef CONFIG_MACH_SUEN3
...
> +#else
...
> +#endif

Then this has no place here. The SUEN3 specific code should be moved
to the SUEN3 board config file.

> +/******************************************************************************/
> +/*********************************** COMMON ***********************************/
> +/******************************************************************************/

Incorrect multiline comment style. And hey, why do we need this? I
think all of this is common stuff?


....
> + at END_OF_RAM: denotes the RAM size found in variable 'memsize'

This should not be needed either.

...
> + * - 'falshargs': defaults arguments for flash base boot

This looks "fals[c]h" to me :-)

> +/*
> + * 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

Please clean up after fixing PRAM support.


In general, I fail to see what the purpose of this "refactoring" is.
The statistics are pretty clear:

>  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(-)

For each line you delete you have to insert 3 new lines. In general,
this is not an improvment.  Maybe you want to reconsider.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Hokey religions and ancient weapons are  no  substitute  for  a  good
blaster at your side.                                      - Han Solo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards
  2010-04-15 22:27 ` Kim Phillips
@ 2010-04-22 11:21   ` Wolfgang Denk
  2010-04-22 17:16     ` Kim Phillips
  0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2010-04-22 11:21 UTC (permalink / raw)
  To: u-boot

Dear Kim,

In message <20100415172711.a7cd388a.kim.phillips@freescale.com> you wrote:
> 
> since 3 of these 4 patches are in the mpc83xx domain, I went ahead and
> applied 1-4/4 and pushed to u-boot-mpc83xx.git.

Sorry for being slow with the review. I'm afraid I have to ask you to
undo this.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I object to intellect without discipline;  I object to power without
constructive purpose.
	-- Spock, "The Squire of Gothos", stardate 2124.5

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards
  2010-04-22 11:21   ` Wolfgang Denk
@ 2010-04-22 17:16     ` Kim Phillips
  0 siblings, 0 replies; 5+ messages in thread
From: Kim Phillips @ 2010-04-22 17:16 UTC (permalink / raw)
  To: u-boot

On Thu, 22 Apr 2010 13:21:18 +0200
Wolfgang Denk <wd@denx.de> wrote:

> Dear Kim,
> 
> In message <20100415172711.a7cd388a.kim.phillips@freescale.com> you wrote:
> > 
> > since 3 of these 4 patches are in the mpc83xx domain, I went ahead and
> > applied 1-4/4 and pushed to u-boot-mpc83xx.git.
> 
> Sorry for being slow with the review. I'm afraid I have to ask you to
> undo this.

no worries, Wolfgang - thanks for the thorough review.  I'll rebase and
wait for Heiko's repost.

Kim

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-04-22 17:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-12  7:33 [U-Boot] [PATCH 1/4] keymile: rework headerfiles for keymile boards Heiko Schocher
2010-04-15 22:27 ` Kim Phillips
2010-04-22 11:21   ` Wolfgang Denk
2010-04-22 17:16     ` Kim Phillips
2010-04-22 11:09 ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.