diff options
Diffstat (limited to 'common')
65 files changed, 785 insertions, 693 deletions
| diff --git a/common/bedbug.c b/common/bedbug.c index 6966de744..3bf1fc3cc 100644 --- a/common/bedbug.c +++ b/common/bedbug.c @@ -2,7 +2,7 @@  #include <common.h> -#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG) +#if defined(CONFIG_CMD_BEDBUG)  #include <linux/ctype.h>  #include <bedbug/bedbug.h> @@ -1253,4 +1253,4 @@ int find_next_address (unsigned char *nextaddr, int step_over,   * purpose.   */ -#endif	/* CONFIG_COMMANDS & CFG_CMD_BEDBUG */ +#endif diff --git a/common/cmd_autoscript.c b/common/cmd_autoscript.c index e3253022d..a6038a6ef 100644 --- a/common/cmd_autoscript.c +++ b/common/cmd_autoscript.c @@ -47,8 +47,7 @@  #include <hush.h>  #endif -#if defined(CONFIG_AUTOSCRIPT) || \ -	 (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT ) +#if defined(CONFIG_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)  extern image_header_t header;		/* from cmd_bootm.c */  int @@ -150,9 +149,10 @@ autoscript (ulong addr)  	return rcode;  } -#endif	/* CONFIG_AUTOSCRIPT || CFG_CMD_AUTOSCRIPT */ +#endif +  /**************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) +#if defined(CONFIG_CMD_AUTOSCRIPT)  int  do_autoscript (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  { @@ -170,13 +170,13 @@ do_autoscript (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	return rcode;  } -#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) +#if defined(CONFIG_CMD_AUTOSCRIPT)  U_BOOT_CMD(  	autoscr, 2, 0,	do_autoscript,  	"autoscr - run script from memory\n",  	"[addr] - run script starting at addr"  	" - A valid autoscr header must be present\n"  ); -#endif /* CFG_CMD_AUTOSCRIPT */ +#endif -#endif /* CONFIG_AUTOSCRIPT || CFG_CMD_AUTOSCRIPT */ +#endif diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c index 9651b3097..58ee9f350 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -30,7 +30,7 @@  DECLARE_GLOBAL_DATA_PTR; -#if (CONFIG_COMMANDS & CFG_CMD_BDI) +#if defined(CONFIG_CMD_BDI)  static void print_num(const char *, ulong);  #ifndef CONFIG_ARM	/* PowerPC and other */ @@ -167,7 +167,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	print_num ("sram size",		(ulong)bd->bi_sramsize);  #endif -#if defined(CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  	puts ("ethaddr     =");  	for (i=0; i<6; ++i) {  		printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]); @@ -195,7 +195,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	print_num ("sram start     ",	(ulong)bd->bi_sramstart);  	print_num ("sram size      ",	(ulong)bd->bi_sramsize);  #endif -#if defined(CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  	puts ("ethaddr     =");  	for (i=0; i<6; ++i) {  		printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]); @@ -338,4 +338,4 @@ U_BOOT_CMD(  	"bdinfo  - print Board Info structure\n",  	NULL  ); -#endif	/* CFG_CMD_BDI */ +#endif diff --git a/common/cmd_bedbug.c b/common/cmd_bedbug.c index 48086a628..1c3547a1f 100644 --- a/common/cmd_bedbug.c +++ b/common/cmd_bedbug.c @@ -13,7 +13,7 @@  DECLARE_GLOBAL_DATA_PTR; -#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG) +#if defined(CONFIG_CMD_BEDBUG)  #ifndef MAX  #define MAX(a,b) ((a) > (b) ? (a) : (b)) @@ -413,7 +413,7 @@ int do_bedbug_rdump (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  U_BOOT_CMD (rdump, 1, 1, do_bedbug_rdump,  	    "rdump   - Show registers.\n", " - Show registers.\n");  /* ====================================================================== */ -#endif /* CFG_CMD_BEDBUG */ +#endif  /* diff --git a/common/cmd_bmp.c b/common/cmd_bmp.c index ad412c81e..241aa8357 100644 --- a/common/cmd_bmp.c +++ b/common/cmd_bmp.c @@ -31,7 +31,7 @@  #include <asm/byteorder.h>  #include <malloc.h> -#if (CONFIG_COMMANDS & CFG_CMD_BMP) +#if defined(CONFIG_CMD_BMP)  static int bmp_info (ulong addr);  static int bmp_display (ulong addr, int x, int y); @@ -188,4 +188,4 @@ static int bmp_display(ulong addr, int x, int y)  #endif  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */ +#endif /* defined(CONFIG_CMD_BMP) */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index ba286f1e6..8249dceb4 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -45,10 +45,10 @@  DECLARE_GLOBAL_DATA_PTR; - /*cmd_boot.c*/ - extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); +/*cmd_boot.c*/ +extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); -#if (CONFIG_COMMANDS & CFG_CMD_DATE) || defined(CONFIG_TIMESTAMP) +#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)  #include <rtc.h>  #endif @@ -82,11 +82,11 @@ int  gunzip (void *, int, unsigned char *, unsigned long *);  static void *zalloc(void *, unsigned, unsigned);  static void zfree(void *, void *, unsigned); -#if (CONFIG_COMMANDS & CFG_CMD_IMI) +#if defined(CONFIG_CMD_IMI)  static int image_info (unsigned long addr);  #endif -#if (CONFIG_COMMANDS & CFG_CMD_IMLS) +#if defined(CONFIG_CMD_IMLS)  #include <flash.h>  extern flash_info_t flash_info[]; /* info for FLASH chips */  static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); @@ -126,12 +126,12 @@ static void fixup_silent_linux (void);  #endif  static boot_os_Fcn do_bootm_netbsd;  static boot_os_Fcn do_bootm_rtems; -#if (CONFIG_COMMANDS & CFG_CMD_ELF) +#if defined(CONFIG_CMD_ELF)  static boot_os_Fcn do_bootm_vxworks;  static boot_os_Fcn do_bootm_qnxelf;  int do_bootvx ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] );  int do_bootelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] ); -#endif /* CFG_CMD_ELF */ +#endif  #if defined(CONFIG_ARTOS) && defined(CONFIG_PPC)  static boot_os_Fcn do_bootm_artos;  #endif @@ -362,7 +362,6 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		if (i != BZ_OK) {  			printf ("BUNZIP2 ERROR %d - must RESET board to recover\n", i);  			show_boot_progress (-6); -			udelay(100000);  			do_reset (cmdtp, flag, argc, argv);  		}  		break; @@ -433,7 +432,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  			     addr, len_ptr, verify);  	    break; -#if (CONFIG_COMMANDS & CFG_CMD_ELF) +#if defined(CONFIG_CMD_ELF)  	case IH_OS_VXWORKS:  	    do_bootm_vxworks (cmdtp, flag, argc, argv,  			      addr, len_ptr, verify); @@ -442,7 +441,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	    do_bootm_qnxelf (cmdtp, flag, argc, argv,  			      addr, len_ptr, verify);  	    break; -#endif /* CFG_CMD_ELF */ +#endif  #ifdef CONFIG_ARTOS  	case IH_OS_ARTOS:  	    do_bootm_artos  (cmdtp, flag, argc, argv, @@ -741,59 +740,65 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  	if(argc > 3) {  		of_flat_tree = (char *) simple_strtoul(argv[3], NULL, 16);  		hdr = (image_header_t *)of_flat_tree; -#if defined(CONFIG_OF_LIBFDT) -		if (fdt_check_header(of_flat_tree) == 0) { +#if defined(CONFIG_OF_FLAT_TREE) +		if (*((ulong *)(of_flat_tree + sizeof(image_header_t))) != OF_DT_HEADER) {  #else -		if (*(ulong *)of_flat_tree == OF_DT_HEADER) { +		if (fdt_check_header(of_flat_tree + sizeof(image_header_t)) != 0) {  #endif  #ifndef CFG_NO_FLASH  			if (addr2info((ulong)of_flat_tree) != NULL)  				of_data = (ulong)of_flat_tree;  #endif  		} else if (ntohl(hdr->ih_magic) == IH_MAGIC) { -			printf("## Flat Device Tree Image at %08lX\n", hdr); +			printf("## Flat Device Tree at %08lX\n", hdr);  			print_image_hdr(hdr);  			if ((ntohl(hdr->ih_load) <  ((unsigned long)hdr + ntohl(hdr->ih_size) + sizeof(hdr))) &&  			   ((ntohl(hdr->ih_load) + ntohl(hdr->ih_size)) > (unsigned long)hdr)) { -				printf ("ERROR: Load address overwrites Flat Device Tree uImage\n"); -				return; +				puts ("ERROR: fdt overwritten - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			} -			printf("   Verifying Checksum ... "); +			puts ("   Verifying Checksum ... ");  			memmove (&header, (char *)hdr, sizeof(image_header_t));  			checksum = ntohl(header.ih_hcrc);  			header.ih_hcrc = 0;  			if(checksum != crc32(0, (uchar *)&header, sizeof(image_header_t))) { -				printf("ERROR: Flat Device Tree header checksum is invalid\n"); -				return; +				puts ("ERROR: fdt header checksum invalid - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			}  			checksum = ntohl(hdr->ih_dcrc);  			addr = (ulong)((uchar *)(hdr) + sizeof(image_header_t));  			if(checksum != crc32(0, (uchar *)addr, ntohl(hdr->ih_size))) { -				printf("ERROR: Flat Device Tree checksum is invalid\n"); -				return; +				puts ("ERROR: fdt checksum invalid - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			} -			printf("OK\n"); +			puts ("OK\n");  			if (ntohl(hdr->ih_type) != IH_TYPE_FLATDT) { -				printf ("ERROR: uImage not Flat Device Tree type\n"); -				return; +				puts ("ERROR: uImage is not a fdt - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			}  			if (ntohl(hdr->ih_comp) != IH_COMP_NONE) { -				printf("ERROR: uImage is not uncompressed\n"); -				return; +				puts ("ERROR: uImage is compressed - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			} -#if defined(CONFIG_OF_LIBFDT) -			if (fdt_check_header(of_flat_tree + sizeof(image_header_t)) == 0) { -#else +#if defined(CONFIG_OF_FLAT_TREE)  			if (*((ulong *)(of_flat_tree + sizeof(image_header_t))) != OF_DT_HEADER) { +#else +			if (fdt_check_header(of_flat_tree + sizeof(image_header_t)) != 0) {  #endif -				printf ("ERROR: uImage data is not a flat device tree\n"); -				return; +				puts ("ERROR: uImage data is not a fdt - " +					"must RESET the board to recover.\n"); +				do_reset (cmdtp, flag, argc, argv);  			}  			memmove((void *)ntohl(hdr->ih_load), @@ -801,10 +806,11 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  				ntohl(hdr->ih_size));  			of_flat_tree = (char *)ntohl(hdr->ih_load);  		} else { -			printf ("Did not find a flat flat device tree at address %08lX\n", of_flat_tree); -			return; +			puts ("Did not find a flat Flat Device Tree.\n" +				"Must RESET the board to recover.\n"); +			do_reset (cmdtp, flag, argc, argv);  		} -		printf ("   Booting using flat device tree at 0x%x\n", +		printf ("   Booting using the fdt at 0x%x\n",  				of_flat_tree);  	} else if ((hdr->ih_type==IH_TYPE_MULTI) && (len_ptr[1]) && (len_ptr[2])) {  		u_long tail    = ntohl(len_ptr[0]) % 4; @@ -828,22 +834,24 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  			of_data += 4 - tail;  		} -#if defined(CONFIG_OF_LIBFDT) -		if (fdt_check_header((void *)of_data) != 0) { +#if defined(CONFIG_OF_FLAT_TREE) +		if (*((ulong *)(of_flat_tree + sizeof(image_header_t))) != OF_DT_HEADER) {  #else -		if (((struct boot_param_header *)of_data)->magic != OF_DT_HEADER) { +		if (fdt_check_header(of_flat_tree + sizeof(image_header_t)) != 0) {  #endif -			printf ("ERROR: image is not a flat device tree\n"); -			return; +			puts ("ERROR: image is not a fdt - " +				"must RESET the board to recover.\n"); +			do_reset (cmdtp, flag, argc, argv);  		} -#if defined(CONFIG_OF_LIBFDT) -		if (be32_to_cpu(fdt_totalsize(of_data)) !=  ntohl(len_ptr[2])) { -#else +#if defined(CONFIG_OF_FLAT_TREE)  		if (((struct boot_param_header *)of_data)->totalsize != ntohl(len_ptr[2])) { +#else +		if (be32_to_cpu(fdt_totalsize(of_data)) !=  ntohl(len_ptr[2])) {  #endif -			printf ("ERROR: flat device tree size does not agree with image\n"); -			return; +			puts ("ERROR: fdt size != image size - " +				"must RESET the board to recover.\n"); +			do_reset (cmdtp, flag, argc, argv);  		}  	}  #endif @@ -916,13 +924,13 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  		initrd_end = 0;  	} -	debug ("## Transferring control to Linux (at address %08lx) ...\n", -		(ulong)kernel); - -	show_boot_progress (15); - -#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500) -	unlock_ram_in_cache(); +#ifdef CFG_BOOTMAPSZ +	/* +	 * The blob must be within CFG_BOOTMAPSZ, +	 * so we flag it to be copied if it is +	 */ +	if (of_flat_tree >= (char *)CFG_BOOTMAPSZ) +		of_data = of_flat_tree;  #endif  #if defined(CONFIG_OF_LIBFDT) @@ -932,11 +940,9 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  		ulong of_start, of_len;  		of_len = be32_to_cpu(fdt_totalsize(of_data)); -		/* position on a 4K boundary before the initrd/kbd */ -		if (initrd_start) -			of_start = initrd_start - of_len; -		else -			of_start  = (ulong)kbd - of_len; + +		/* position on a 4K boundary before the kbd */ +		of_start  = (ulong)kbd - of_len;  		of_start &= ~(4096 - 1);	/* align on page */  		debug ("## device tree at 0x%08lX ... 0x%08lX (len=%ld=0x%lX)\n",  			of_data, of_data + of_len - 1, of_len, of_len); @@ -944,42 +950,49 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  		of_flat_tree = (char *)of_start;  		printf ("   Loading Device Tree to %08lx, end %08lx ... ",  			of_start, of_start + of_len - 1); -		err = fdt_open_into((void *)of_start, (void *)of_data, of_len); +		err = fdt_open_into((void *)of_data, (void *)of_start, of_len);  		if (err != 0) { -			printf ("libfdt: %s " __FILE__ " %d\n", fdt_strerror(err), __LINE__); -		} -		/* -		 * Add the chosen node if it doesn't exist, add the env and bd_t -		 * if the user wants it (the logic is in the subroutines). -		 */ -		if (fdt_chosen(of_flat_tree, initrd_start, initrd_end, 0) < 0) { -				printf("Failed creating the /chosen node (0x%08X), aborting.\n", of_flat_tree); -				return; +			puts ("ERROR: fdt move failed - " +				"must RESET the board to recover.\n"); +			do_reset (cmdtp, flag, argc, argv);  		} +	} +	/* +	 * Add the chosen node if it doesn't exist, add the env and bd_t +	 * if the user wants it (the logic is in the subroutines). +	 */ +	if (fdt_chosen(of_flat_tree, initrd_start, initrd_end, 0) < 0) { +		puts ("ERROR: /chosen node create failed - " +			"must RESET the board to recover.\n"); +		do_reset (cmdtp, flag, argc, argv); +	}  #ifdef CONFIG_OF_HAS_UBOOT_ENV -		if (fdt_env(of_flat_tree) < 0) { -				printf("Failed creating the /u-boot-env node, aborting.\n"); -				return; -		} +	if (fdt_env(of_flat_tree) < 0) { +		puts ("ERROR: /u-boot-env node create failed - " +			"must RESET the board to recover.\n"); +		do_reset (cmdtp, flag, argc, argv); +	}  #endif  #ifdef CONFIG_OF_HAS_BD_T -		if (fdt_bd_t(of_flat_tree) < 0) { -				printf("Failed creating the /bd_t node, aborting.\n"); -				return; -		} -#endif +	if (fdt_bd_t(of_flat_tree) < 0) { +		puts ("ERROR: /bd_t node create failed - " +			"must RESET the board to recover.\n"); +		do_reset (cmdtp, flag, argc, argv);  	}  #endif +#ifdef CONFIG_OF_BOARD_SETUP +	/* Call the board-specific fixup routine */ +	ft_board_setup(of_flat_tree, gd->bd); +#endif +#endif /* CONFIG_OF_LIBFDT */  #if defined(CONFIG_OF_FLAT_TREE)  	/* move of_flat_tree if needed */  	if (of_data) {  		ulong of_start, of_len;  		of_len = ((struct boot_param_header *)of_data)->totalsize; +  		/* provide extra 8k pad */ -		if (initrd_start) -			of_start = initrd_start - of_len - 8192; -		else -			of_start  = (ulong)kbd - of_len - 8192; +		of_start  = (ulong)kbd - of_len - 8192;  		of_start &= ~(4096 - 1);	/* align on page */  		debug ("## device tree at 0x%08lX ... 0x%08lX (len=%ld=0x%lX)\n",  			of_data, of_data + of_len - 1, of_len, of_len); @@ -989,8 +1002,36 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  			of_start, of_start + of_len - 1);  		memmove ((void *)of_start, (void *)of_data, of_len);  	} +	/* +	 * Create the /chosen node and modify the blob with board specific +	 * values as needed. +	 */ +	ft_setup(of_flat_tree, kbd, initrd_start, initrd_end); +	/* ft_dump_blob(of_flat_tree); */ +#endif +	debug ("## Transferring control to Linux (at address %08lx) ...\n", +		(ulong)kernel); + +	show_boot_progress (15); + +#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500) +	unlock_ram_in_cache();  #endif +#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT) +	if (of_flat_tree) {	/* device tree; boot new style */ +		/* +		 * Linux Kernel Parameters (passing device tree): +		 *   r3: pointer to the fdt, followed by the board info data +		 *   r4: physical pointer to the kernel itself +		 *   r5: NULL +		 *   r6: NULL +		 *   r7: NULL +		 */ +		(*kernel) ((bd_t *)of_flat_tree, (ulong)kernel, 0, 0, 0); +		/* does not return */ +	} +#endif  	/*  	 * Linux Kernel Parameters (passing board info data):  	 *   r3: ptr to board info data @@ -999,46 +1040,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,  	 *   r6: Start of command line string  	 *   r7: End   of command line string  	 */ -#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT) -	if (!of_flat_tree)	/* no device tree; boot old style */ -#endif -		(*kernel) (kbd, initrd_start, initrd_end, cmd_start, cmd_end); -		/* does not return */ - -#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT) -	/* -	 * Linux Kernel Parameters (passing device tree): -	 *   r3: ptr to OF flat tree, followed by the board info data -	 *   r4: physical pointer to the kernel itself -	 *   r5: NULL -	 *   r6: NULL -	 *   r7: NULL -	 */ -#if defined(CONFIG_OF_FLAT_TREE) -	ft_setup(of_flat_tree, kbd, initrd_start, initrd_end); -	/* ft_dump_blob(of_flat_tree); */ -#endif -#if defined(CONFIG_OF_LIBFDT) -	if (fdt_chosen(of_flat_tree, initrd_start, initrd_end, 0) < 0) { -		printf("Failed creating the /chosen node (0x%08X), aborting.\n", of_flat_tree); -		return; -	} -#ifdef CONFIG_OF_HAS_UBOOT_ENV -	if (fdt_env(of_flat_tree) < 0) { -		printf("Failed creating the /u-boot-env node, aborting.\n"); -		return; -	} -#endif -#ifdef CONFIG_OF_HAS_BD_T -	if (fdt_bd_t(of_flat_tree) < 0) { -		printf("Failed creating the /bd_t node, aborting.\n"); -		return; -	} -#endif -#endif /* if defined(CONFIG_OF_LIBFDT) */ - -	(*kernel) ((bd_t *)of_flat_tree, (ulong)kernel, 0, 0, 0); -#endif +	(*kernel) (kbd, initrd_start, initrd_end, cmd_start, cmd_end); +	/* does not return */  }  #endif /* CONFIG_PPC */ @@ -1212,7 +1215,7 @@ do_bootm_artos (cmd_tbl_t *cmdtp, int flag,  #endif -#if (CONFIG_COMMANDS & CFG_CMD_BOOTD) +#if defined(CONFIG_CMD_BOOTD)  int do_bootd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	int rcode = 0; @@ -1240,7 +1243,7 @@ U_BOOT_CMD(  #endif -#if (CONFIG_COMMANDS & CFG_CMD_IMI) +#if defined(CONFIG_CMD_IMI)  int do_iminfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	int	arg; @@ -1308,9 +1311,9 @@ U_BOOT_CMD(  	"      image contents (magic number, header and payload checksums)\n"  ); -#endif	/* CFG_CMD_IMI */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_IMLS) +#if defined(CONFIG_CMD_IMLS)  /*-----------------------------------------------------------------------   * List all images found in flash.   */ @@ -1366,23 +1369,23 @@ U_BOOT_CMD(  	"    - Prints information about all images found at sector\n"  	"      boundaries in flash.\n"  ); -#endif	/* CFG_CMD_IMLS */ +#endif  void  print_image_hdr (image_header_t *hdr)  { -#if (CONFIG_COMMANDS & CFG_CMD_DATE) || defined(CONFIG_TIMESTAMP) +#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)  	time_t timestamp = (time_t)ntohl(hdr->ih_time);  	struct rtc_time tm;  #endif  	printf ("   Image Name:   %.*s\n", IH_NMLEN, hdr->ih_name); -#if (CONFIG_COMMANDS & CFG_CMD_DATE) || defined(CONFIG_TIMESTAMP) +#if defined(CONFIG_TIMESTAMP) || defined(CONFIG_CMD_DATE)  	to_tm (timestamp, &tm);  	printf ("   Created:      %4d-%02d-%02d  %2d:%02d:%02d UTC\n",  		tm.tm_year, tm.tm_mon, tm.tm_mday,  		tm.tm_hour, tm.tm_min, tm.tm_sec); -#endif	/* CFG_CMD_DATE, CONFIG_TIMESTAMP */ +#endif  	puts ("   Image Type:   "); print_type(hdr);  	printf ("\n   Data Size:    %d Bytes = ", ntohl(hdr->ih_size));  	print_size (ntohl(hdr->ih_size), "\n"); @@ -1581,7 +1584,7 @@ do_bootm_rtems (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],  	(*entry_point ) ( gd->bd );  } -#if (CONFIG_COMMANDS & CFG_CMD_ELF) +#if defined(CONFIG_CMD_ELF)  static void  do_bootm_vxworks (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],  		  ulong addr, ulong *len_ptr, int verify) @@ -1607,7 +1610,7 @@ do_bootm_qnxelf (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],  	local_args[1] = str;	/* and provide it via the arguments */  	do_bootelf(cmdtp, 0, 2, local_args);  } -#endif /* CFG_CMD_ELF */ +#endif  #ifdef CONFIG_LYNXKDI  static void diff --git a/common/cmd_cache.c b/common/cmd_cache.c index 6c250bc1c..675d43fa1 100644 --- a/common/cmd_cache.c +++ b/common/cmd_cache.c @@ -27,7 +27,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_CACHE) +#if defined(CONFIG_CMD_CACHE)  static int on_off (const char *); @@ -109,4 +109,4 @@ U_BOOT_CMD(  	"    - enable or disable data (writethrough) cache\n"  ); -#endif	/* CFG_CMD_CACHE */ +#endif diff --git a/common/cmd_console.c b/common/cmd_console.c index 1bd3709bd..5e0f99072 100644 --- a/common/cmd_console.c +++ b/common/cmd_console.c @@ -28,7 +28,7 @@  #include <command.h>  #include <devices.h> -#if (CONFIG_COMMANDS & CFG_CMD_CONSOLE) +#if defined(CONFIG_CMD_CONSOLE)  extern void _do_coninfo (void);  int do_coninfo (cmd_tbl_t * cmd, int flag, int argc, char *argv[]) @@ -68,4 +68,4 @@ U_BOOT_CMD(  	""  ); -#endif /* CFG_CMD_CONSOLE */ +#endif diff --git a/common/cmd_date.c b/common/cmd_date.c index 33d2e5661..4a4253490 100644 --- a/common/cmd_date.c +++ b/common/cmd_date.c @@ -31,7 +31,7 @@  DECLARE_GLOBAL_DATA_PTR; -#if (CONFIG_COMMANDS & CFG_CMD_DATE) +#if defined(CONFIG_CMD_DATE)  const char *weekdays[] = {  	"Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur", @@ -211,4 +211,4 @@ U_BOOT_CMD(  	"  - with 'reset' argument: reset the RTC\n"  ); -#endif	/* CFG_CMD_DATE */ +#endif diff --git a/common/cmd_dcr.c b/common/cmd_dcr.c index 7221a865e..12fa9db08 100644 --- a/common/cmd_dcr.c +++ b/common/cmd_dcr.c @@ -29,7 +29,7 @@  #include <config.h>  #include <command.h> -#if defined(CONFIG_4xx) && (CONFIG_COMMANDS & CFG_CMD_SETGETDCR) +#if defined(CONFIG_4xx) && defined(CONFIG_CMD_SETGETDCR)  unsigned long get_dcr (unsigned short);  unsigned long set_dcr (unsigned short, unsigned long); @@ -246,4 +246,4 @@ U_BOOT_CMD(  	"adr_dcrn[.dat_dcrn] offset value - write offset to adr_dcrn, write value to dat_dcrn.\n"  ); -#endif /* CONFIG_4xx & CFG_CMD_SETGETDCR */ +#endif diff --git a/common/cmd_diag.c b/common/cmd_diag.c index 45c4b31f5..cb99b7700 100644 --- a/common/cmd_diag.c +++ b/common/cmd_diag.c @@ -28,7 +28,7 @@  #include <command.h>  #include <post.h> -#if (CONFIG_COMMANDS & CFG_CMD_DIAG) && defined(CONFIG_POST) +#if defined(CONFIG_CMD_DIAG) && defined(CONFIG_POST)  int do_diag (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  { @@ -77,4 +77,4 @@ U_BOOT_CMD(  	"         - run specified tests\n"  ); -#endif /* CFG_CMD_DIAG */ +#endif diff --git a/common/cmd_display.c b/common/cmd_display.c index abee8444e..d19f41281 100644 --- a/common/cmd_display.c +++ b/common/cmd_display.c @@ -24,7 +24,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_DISPLAY) +#if defined(CONFIG_CMD_DISPLAY)  #undef DEBUG_DISP @@ -79,4 +79,4 @@ U_BOOT_CMD(  	"    - without arguments: clear dot matrix display\n"  ); -#endif	/* CFG_CMD_DISPLAY */ +#endif diff --git a/common/cmd_doc.c b/common/cmd_doc.c index 9814d754f..d6d3aff8c 100644 --- a/common/cmd_doc.c +++ b/common/cmd_doc.c @@ -12,7 +12,7 @@  #include <malloc.h>  #include <asm/io.h> -#if (CONFIG_COMMANDS & CFG_CMD_DOC) +#if defined(CONFIG_CMD_DOC)  #include <linux/mtd/nftl.h>  #include <linux/mtd/doc2000.h> @@ -1608,4 +1608,4 @@ void doc_probe(unsigned long physadr)  	}  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_DOC) */ +#endif diff --git a/common/cmd_dtt.c b/common/cmd_dtt.c index 4f7b049d7..8da95bf9d 100644 --- a/common/cmd_dtt.c +++ b/common/cmd_dtt.c @@ -25,7 +25,7 @@  #include <config.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_DTT) +#if defined(CONFIG_CMD_DTT)  #include <dtt.h>  #include <i2c.h> @@ -61,4 +61,4 @@ U_BOOT_CMD(  	  "        - Read temperature from digital thermometer and thermostat.\n"  ); -#endif /* CONFIG_COMMANDS & CFG_CMD_DTT */ +#endif diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index d15a41205..e5000e9ff 100644 --- a/common/cmd_eeprom.c +++ b/common/cmd_eeprom.c @@ -42,7 +42,7 @@  #include <command.h>  #include <i2c.h> -#if (CONFIG_COMMANDS & CFG_CMD_EEPROM) || defined(CFG_ENV_IS_IN_EEPROM) +#if defined(CFG_ENV_IS_IN_EEPROM) || defined(CONFIG_CMD_EEPROM)  extern void eeprom_init  (void);  extern int  eeprom_read  (unsigned dev_addr, unsigned offset, @@ -62,7 +62,7 @@ extern int eeprom_write_enable (unsigned dev_addr, int state);  /* ------------------------------------------------------------------------- */ -#if (CONFIG_COMMANDS & CFG_CMD_EEPROM) +#if defined(CONFIG_CMD_EEPROM)  int do_eeprom ( cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  {  	const char *const fmt = @@ -110,7 +110,7 @@ int do_eeprom ( cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	printf ("Usage:\n%s\n", cmdtp->usage);  	return 1;  } -#endif	/* CFG_CMD_EEPROM */ +#endif  /*-----------------------------------------------------------------------   * @@ -121,7 +121,7 @@ int do_eeprom ( cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])   *   0x00000nxx for EEPROM address selectors and page number at n.   */ -#if (CONFIG_COMMANDS & CFG_CMD_EEPROM) || defined(CFG_ENV_IS_IN_EEPROM) +#if defined(CFG_ENV_IS_IN_EEPROM) || defined(CONFIG_CMD_EEPROM)  #ifndef CONFIG_SPI  #if !defined(CFG_I2C_EEPROM_ADDR_LEN) || CFG_I2C_EEPROM_ADDR_LEN < 1 || CFG_I2C_EEPROM_ADDR_LEN > 2 @@ -422,10 +422,11 @@ void eeprom_init  (void)  }  /*-----------------------------------------------------------------------   */ -#endif	/* CFG_CMD_EEPROM */ +#endif +  /***************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_EEPROM) +#if defined(CONFIG_CMD_EEPROM)  #ifdef CFG_I2C_MULTI_EEPROMS  U_BOOT_CMD( @@ -445,4 +446,4 @@ U_BOOT_CMD(  );  #endif /* CFG_I2C_MULTI_EEPROMS */ -#endif	/* CFG_CMD_EEPROM */ +#endif diff --git a/common/cmd_elf.c b/common/cmd_elf.c index 0e3d56f6b..63a5593e4 100644 --- a/common/cmd_elf.c +++ b/common/cmd_elf.c @@ -23,7 +23,7 @@  DECLARE_GLOBAL_DATA_PTR;  #endif -#if (CONFIG_COMMANDS & CFG_CMD_ELF) +#if defined(CONFIG_CMD_ELF)  #ifndef MAX  #define MAX(a,b) ((a) > (b) ? (a) : (b)) @@ -101,7 +101,7 @@ int do_bootvx (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	else  		addr = simple_strtoul (argv[1], NULL, 16); -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  	/* Check to see if we need to tftp the image ourselves before starting */  	if ((argc == 2) && (strcmp (argv[1], "tftp") == 0)) { @@ -324,4 +324,4 @@ U_BOOT_CMD(  	" [address] - load address of vxWorks ELF image.\n"  ); -#endif	/* CFG_CMD_ELF */ +#endif diff --git a/common/cmd_ext2.c b/common/cmd_ext2.c index 94bd9b61e..8bd2b476e 100644 --- a/common/cmd_ext2.c +++ b/common/cmd_ext2.c @@ -35,14 +35,14 @@  #include <common.h>  #include <part.h> -#if (CONFIG_COMMANDS & CFG_CMD_EXT2) +#if defined(CONFIG_CMD_EXT2)  #include <config.h>  #include <command.h>  #include <image.h>  #include <linux/ctype.h>  #include <asm/byteorder.h>  #include <ext2fs.h> -#if ((CONFIG_COMMANDS & CFG_CMD_USB) && defined(CONFIG_USB_STORAGE)) +#if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)  #include <usb.h>  #endif @@ -260,4 +260,4 @@ U_BOOT_CMD(  	"      to address 'addr' from ext2 filesystem\n"  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_EXT2 */ +#endif diff --git a/common/cmd_fat.c b/common/cmd_fat.c index afaf29956..54f0f9f9c 100644 --- a/common/cmd_fat.c +++ b/common/cmd_fat.c @@ -31,7 +31,7 @@  #include <ata.h>  #include <part.h> -#if (CONFIG_COMMANDS & CFG_CMD_FAT) +#if defined(CONFIG_CMD_FAT)  #undef	DEBUG @@ -324,4 +324,4 @@ void hexdump (int cnt, unsigned char *data)  }  #endif	/* NOT_IMPLEMENTED_YET */ -#endif	/* CFG_CMD_FAT */ +#endif diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c index 03f4ce6d3..7349412c7 100644 --- a/common/cmd_fdc.c +++ b/common/cmd_fdc.c @@ -47,11 +47,11 @@  #endif -/*#if (CONFIG_COMMANDS & CFG_CMD_DATE) */ +/*#if defined(CONFIG_CMD_DATE) */  /*#include <rtc.h> */  /*#endif */ -#if ((CONFIG_COMMANDS & CFG_CMD_FDC) || (CONFIG_COMMANDS & CFG_CMD_FDOS)) +#if defined(CONFIG_CMD_FDC) || defined(CONFIG_CMD_FDOS)  typedef struct { @@ -707,9 +707,9 @@ int fdc_setup(int drive, FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)  	return TRUE;  } -#endif /* ((CONFIG_COMMANDS & CFG_CMD_FDC)||(CONFIG_COMMANDS & CFG_CMD_FDOS))*/ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_FDOS) +#if defined(CONFIG_CMD_FDOS)  /* Low level functions for the Floppy-DOS layer                              */ @@ -772,9 +772,9 @@ int fdc_fdos_read (void *buffer, int len)  	return (fdc_read_data (buffer, len, pCMD, pFG));  } -#endif  /* (CONFIG_COMMANDS & CFG_CMD_FDOS)                                  */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_FDC) +#if defined(CONFIG_CMD_FDC)  /****************************************************************************   * main routine do_fdcboot   */ @@ -880,13 +880,13 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  } -#endif /* CONFIG_COMMANDS & CFG_CMD_FDC */ +#endif  /***************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_FDC) +#if defined(CONFIG_CMD_FDC)  U_BOOT_CMD(  	fdcboot,	3,	1,	do_fdcboot, diff --git a/common/cmd_fdos.c b/common/cmd_fdos.c index dc02b3595..f9da98ddc 100644 --- a/common/cmd_fdos.c +++ b/common/cmd_fdos.c @@ -31,7 +31,7 @@  #include <command.h>  #include <fdc.h> -#if (CONFIG_COMMANDS & CFG_CMD_FDOS) +#if defined(CONFIG_CMD_FDOS)  /*-----------------------------------------------------------------------------   * do_fdosboot -- @@ -154,4 +154,4 @@ U_BOOT_CMD(  	"[directory]\n"  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_FDOS */ +#endif diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index 08fe3512d..571b8f14d 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -37,46 +37,32 @@  #include <fdt_support.h>  #define MAX_LEVEL	32		/* how deeply nested we will go */ -#define SCRATCHPAD	1024	/* bytes of scratchpad memory */ +#define SCRATCHPAD	1024		/* bytes of scratchpad memory */  /*   * Global data (for the gd->bd)   */  DECLARE_GLOBAL_DATA_PTR; -/* - * Scratchpad memory. - */ -static char data[SCRATCHPAD]; - - -/* - * Function prototypes/declarations. - */  static int fdt_valid(void); -static void print_data(const void *data, int len); - +static int fdt_parse_prop(char *pathp, char *prop, char *newval, +	char *data, int *len); +static int fdt_print(char *pathp, char *prop, int depth);  /*   * Flattened Device Tree command, see the help for parameter definitions.   */  int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  { -	char		op; -  	if (argc < 2) {  		printf ("Usage:\n%s\n", cmdtp->usage);  		return 1;  	} -	/* -	 * Figure out which subcommand was given -	 */ -	op = argv[1][0];  	/********************************************************************  	 * Set the address of the fdt  	 ********************************************************************/ -	if (op == 'a') { +	if (argv[1][0] == 'a') {  		/*  		 * Set the address [and length] of the fdt.  		 */ @@ -94,7 +80,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  			 */  			len =  simple_strtoul(argv[3], NULL, 16);  			if (len < fdt_totalsize(fdt)) { -				printf ("New length %d < existing length %d, ignoring.\n", +				printf ("New length %d < existing length %d, " +					"ignoring.\n",  					len, fdt_totalsize(fdt));  			} else {  				/* @@ -102,7 +89,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  				 */  				err = fdt_open_into(fdt, fdt, len);  				if (err != 0) { -					printf ("libfdt: %s\n", fdt_strerror(err)); +					printf ("libfdt fdt_open_into(): %s\n", +						fdt_strerror(err));  				}  			}  		} @@ -110,12 +98,12 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	/********************************************************************  	 * Move the fdt  	 ********************************************************************/ -	} else if (op == 'm') { +	} else if ((argv[1][0] == 'm') && (argv[1][1] == 'o')) {  		struct fdt_header *newaddr;  		int  len;  		int  err; -		if (argc != 5) { +		if (argc < 4) {  			printf ("Usage:\n%s\n", cmdtp->usage);  			return 1;  		} @@ -128,12 +116,22 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  			return 1;  		} -		newaddr = (struct fdt_header *)simple_strtoul(argv[3], NULL, 16); -		len     =  simple_strtoul(argv[4], NULL, 16); -		if (len < fdt_totalsize(fdt)) { -			printf ("New length %d < existing length %d, aborting.\n", -				len, fdt_totalsize(fdt)); -			return 1; +		newaddr = (struct fdt_header *)simple_strtoul(argv[3],NULL,16); + +		/* +		 * If the user specifies a length, use that.  Otherwise use the +		 * current length. +		 */ +		if (argc <= 4) { +			len = fdt_totalsize(fdt); +		} else { +			len = simple_strtoul(argv[4], NULL, 16); +			if (len < fdt_totalsize(fdt)) { +				printf ("New length 0x%X < existing length " +					"0x%X, aborting.\n", +					len, fdt_totalsize(fdt)); +				return 1; +			}  		}  		/* @@ -141,26 +139,59 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		 */  		err = fdt_open_into(fdt, newaddr, len);  		if (err != 0) { -			printf ("libfdt: %s\n", fdt_strerror(err)); +			printf ("libfdt fdt_open_into(): %s\n", +				fdt_strerror(err));  			return 1;  		}  		fdt = newaddr;  	/******************************************************************** -	 * Set the value of a node in the fdt. +	 * Make a new node  	 ********************************************************************/ -	} else if (op == 's') { +	} else if ((argv[1][0] == 'm') && (argv[1][1] == 'k')) {  		char *pathp;		/* path */ -		char *prop;			/* property */ -		struct fdt_property *nodep;	/* node struct pointer */ +		char *nodep;		/* new node to add */ +		int  nodeoffset;	/* node offset from libfdt */ +		int  err; + +		/* +		 * Parameters: Node path, new node to be appended to the path. +		 */ +		if (argc < 4) { +			printf ("Usage:\n%s\n", cmdtp->usage); +			return 1; +		} + +		pathp = argv[2]; +		nodep = argv[3]; + +		nodeoffset = fdt_find_node_by_path (fdt, pathp); +		if (nodeoffset < 0) { +			/* +			 * Not found or something else bad happened. +			 */ +			printf ("libfdt fdt_find_node_by_path() returned %s\n", +				fdt_strerror(nodeoffset)); +			return 1; +		} +		err = fdt_add_subnode(fdt, nodeoffset, nodep); +		if (err < 0) { +			printf ("libfdt fdt_add_subnode(): %s\n", +				fdt_strerror(err)); +			return 1; +		} + +	/******************************************************************** +	 * Set the value of a property in the fdt. +	 ********************************************************************/ +	} else if (argv[1][0] == 's') { +		char *pathp;		/* path */ +		char *prop;		/* property */  		char *newval;		/* value from the user (as a string) */ -		char *vp;			/* temporary value pointer */ -		char *cp;			/* temporary char pointer */  		int  nodeoffset;	/* node offset from libfdt */ -		int  len;			/* new length of the property */ -		int  oldlen;		/* original length of the property */ -		unsigned long tmp;	/* holds converted values */ -		int  ret;			/* return value */ +		static char data[SCRATCHPAD];	/* storage for the property */ +		int  len;		/* new length of the property */ +		int  ret;		/* return value */  		/*  		 * Parameters: Node path, property, value. @@ -174,121 +205,38 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		prop   = argv[3];  		newval = argv[4]; -		if (strcmp(pathp, "/") == 0) { -			nodeoffset = 0; -		} else { -			nodeoffset = fdt_path_offset (fdt, pathp); -			if (nodeoffset < 0) { -				/* -			 	 * Not found or something else bad happened. -			 	 */ -				printf ("libfdt: %s\n", fdt_strerror(nodeoffset)); -				return 1; -			} -		} -		nodep = fdt_getprop (fdt, nodeoffset, prop, &oldlen); -		if (oldlen < 0) { -			printf ("libfdt %s\n", fdt_strerror(oldlen)); -			return 1; -		} else if (oldlen == 0) { +		nodeoffset = fdt_find_node_by_path (fdt, pathp); +		if (nodeoffset < 0) {  			/* -			 * The specified property has no value +			 * Not found or something else bad happened.  			 */ -			printf("%s has no value, cannot set one (yet).\n", prop); +			printf ("libfdt fdt_find_node_by_path() returned %s\n", +				fdt_strerror(nodeoffset));  			return 1; -		} else { -			/* -			 * Convert the new property -			 */ -			vp = data; -			if (*newval == '<') { -				/* -				 * Bigger values than bytes. -				 */ -				len = 0; -				newval++; -				while ((*newval != '>') && (*newval != '\0')) { -					cp = newval; -					tmp = simple_strtoul(cp, &newval, 16); -					if ((newval - cp) <= 2) { -						*vp = tmp & 0xFF; -						vp  += 1; -						len += 1; -					} else if ((newval - cp) <= 4) { -						*(uint16_t *)vp = __cpu_to_be16(tmp); -						vp  += 2; -						len += 2; -					} else if ((newval - cp) <= 8) { -						*(uint32_t *)vp = __cpu_to_be32(tmp); -						vp  += 4; -						len += 4; -					} else { -						printf("Sorry, I could not convert \"%s\"\n", cp); -						return 1; -					} -					while (*newval == ' ') -						newval++; -				} -				if (*newval != '>') { -					printf("Unexpected character '%c'\n", *newval); -					return 1; -				} -			} else if (*newval == '[') { -				/* -				 * Byte stream.  Convert the values. -				 */ -				len = 0; -				newval++; -				while ((*newval != ']') && (*newval != '\0')) { -					tmp = simple_strtoul(newval, &newval, 16); -					*vp++ = tmp & 0xFF; -					len++; -					while (*newval == ' ') -						newval++; -				} -				if (*newval != ']') { -					printf("Unexpected character '%c'\n", *newval); -					return 1; -				} -			} else { -				/* -				 * Assume it is a string.  Copy it into our data area for -				 * convenience (including the terminating '\0'). -				 */ -				len = strlen(newval) + 1; -				strcpy(data, newval); -			} +		} +		ret = fdt_parse_prop(pathp, prop, newval, data, &len); +		if (ret != 0) +			return ret; -			ret = fdt_setprop(fdt, nodeoffset, prop, data, len); -			if (ret < 0) { -				printf ("libfdt %s\n", fdt_strerror(ret)); -				return 1; -			} +		ret = fdt_setprop(fdt, nodeoffset, prop, data, len); +		if (ret < 0) { +			printf ("libfdt fdt_setprop(): %s\n", fdt_strerror(ret)); +			return 1;  		}  	/********************************************************************  	 * Print (recursive) / List (single level)  	 ********************************************************************/ -	} else if ((op == 'p') || (op == 'l')) { -		/* -		 * Recursively print (a portion of) the fdt. -		 */ -		static int offstack[MAX_LEVEL]; -		static char tabs[MAX_LEVEL+1] = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; +	} else if ((argv[1][0] == 'p') || (argv[1][0] == 'l')) {  		int depth = MAX_LEVEL;	/* how deep to print */  		char *pathp;		/* path */ -		char *prop;			/* property */ -		void *nodep;		/* property node pointer */ -		int  nodeoffset;	/* node offset from libfdt */ -		int  nextoffset;	/* next node offset from libfdt */ -		uint32_t tag;		/* tag */ -		int  len;			/* length of the property */ -		int  level = 0;		/* keep track of nesting level */ +		char *prop;		/* property */ +		int  ret;		/* return value */  		/*  		 * list is an alias for print, but limited to 1 level  		 */ -		if (op == 'l') { +		if (argv[1][0] == 'l') {  			depth = 1;  		} @@ -302,99 +250,14 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		else  			prop = NULL; -		if (strcmp(pathp, "/") == 0) { -			nodeoffset = 0; -			printf("/"); -		} else { -			nodeoffset = fdt_path_offset (fdt, pathp); -			if (nodeoffset < 0) { -				/* -				 * Not found or something else bad happened. -				 */ -				printf ("libfdt %s\n", fdt_strerror(nodeoffset)); -				return 1; -			} -		} -		/* -		 * The user passed in a property as well as node path.  Print only -		 * the given property and then return. -		 */ -		if (prop) { -			nodep = fdt_getprop (fdt, nodeoffset, prop, &len); -			if (len == 0) { -				printf("%s %s\n", pathp, prop);	/* no property value */ -				return 0; -			} else if (len > 0) { -				printf("%s=", prop); -				print_data (nodep, len); -				printf("\n"); -				return 0; -			} else { -				printf ("libfdt %s\n", fdt_strerror(len)); -				return 1; -			} -		} - -		/* -		 * The user passed in a node path and no property, print the node -		 * and all subnodes. -		 */ -		offstack[0] = nodeoffset; - -		while(level >= 0) { -			tag = fdt_next_tag(fdt, nodeoffset, &nextoffset, &pathp); -			switch(tag) { -			case FDT_BEGIN_NODE: -				if(level <= depth) -					printf("%s%s {\n", &tabs[MAX_LEVEL - level], pathp); -				level++; -				offstack[level] = nodeoffset; -				if (level >= MAX_LEVEL) { -					printf("Aaaiii <splat> nested too deep.\n"); -					return 1; -				} -				break; -			case FDT_END_NODE: -				level--; -				if(level <= depth) -					printf("%s};\n", &tabs[MAX_LEVEL - level]); -				if (level == 0) { -					level = -1;		/* exit the loop */ -				} -				break; -			case FDT_PROP: -				nodep = fdt_getprop (fdt, offstack[level], pathp, &len); -				if (len < 0) { -					printf ("libfdt %s\n", fdt_strerror(len)); -					return 1; -				} else if (len == 0) { -					/* the property has no value */ -					if(level <= depth) -						printf("%s%s;\n", &tabs[MAX_LEVEL - level], pathp); -				} else { -					if(level <= depth) { -						printf("%s%s=", &tabs[MAX_LEVEL - level], pathp); -						print_data (nodep, len); -						printf(";\n"); -					} -				} -				break; -			case FDT_NOP: -				break; -			case FDT_END: -				return 1; -			default: -				if(level <= depth) -					printf("Unknown tag 0x%08X\n", tag); -				return 1; -			} -			nodeoffset = nextoffset; -		} +		ret = fdt_print(pathp, prop, depth); +		if (ret != 0) +			return ret;  	/********************************************************************  	 * Remove a property/node  	 ********************************************************************/ -	} else if (op == 'r') { +	} else if (argv[1][0] == 'r') {  		int  nodeoffset;	/* node offset from libfdt */  		int  err; @@ -402,17 +265,14 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		 * Get the path.  The root node is an oddball, the offset  		 * is zero and has no name.  		 */ -		if (strcmp(argv[2], "/") == 0) { -			nodeoffset = 0; -		} else { -			nodeoffset = fdt_path_offset (fdt, argv[2]); -			if (nodeoffset < 0) { -				/* -				 * Not found or something else bad happened. -				 */ -				printf ("libfdt %s\n", fdt_strerror(nodeoffset)); -				return 1; -			} +		nodeoffset = fdt_find_node_by_path (fdt, argv[2]); +		if (nodeoffset < 0) { +			/* +			 * Not found or something else bad happened. +			 */ +			printf ("libfdt fdt_find_node_by_path() returned %s\n", +				fdt_strerror(nodeoffset)); +			return 1;  		}  		/*  		 * Do the delete.  A fourth parameter means delete a property, @@ -421,39 +281,40 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		if (argc > 3) {  			err = fdt_delprop(fdt, nodeoffset, argv[3]);  			if (err < 0) { -				printf("fdt_delprop libfdt: %s\n", fdt_strerror(err)); +				printf("libfdt fdt_delprop():  %s\n", +					fdt_strerror(err));  				return err;  			}  		} else {  			err = fdt_del_node(fdt, nodeoffset);  			if (err < 0) { -				printf("fdt_del_node libfdt: %s\n", fdt_strerror(err)); +				printf("libfdt fdt_del_node():  %s\n", +					fdt_strerror(err));  				return err;  			}  		} - -	/******************************************************************** -	 * Create a chosen node -	 ********************************************************************/ -	} else if (op == 'c') { +	} +#ifdef CONFIG_OF_BOARD_SETUP +	/* Call the board-specific fixup routine */ +	else if (argv[1][0] == 'b') +		ft_board_setup(fdt, gd->bd); +#endif +	/* Create a chosen node */ +	else if (argv[1][0] == 'c')  		fdt_chosen(fdt, 0, 0, 1); -	/******************************************************************** -	 * Create a u-boot-env node -	 ********************************************************************/ -	} else if (op == 'e') { +#ifdef CONFIG_OF_HAS_UBOOT_ENV +	/* Create a u-boot-env node */ +	else if (argv[1][0] == 'e')  		fdt_env(fdt); - -	/******************************************************************** -	 * Create a bd_t node -	 ********************************************************************/ -	} else if (op == 'b') { +#endif +#ifdef CONFIG_OF_HAS_BD_T +	/* Create a bd_t node */ +	else if (argv[1][0] == 'b')  		fdt_bd_t(fdt); - -	/******************************************************************** -	 * Unrecognized command -	 ********************************************************************/ -	} else { +#endif +	else { +		/* Unrecognized command */  		printf ("Usage:\n%s\n", cmdtp->usage);  		return 1;  	} @@ -461,7 +322,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	return 0;  } -/********************************************************************/ +/****************************************************************************/  static int fdt_valid(void)  { @@ -477,19 +338,21 @@ static int fdt_valid(void)  		return 1;	/* valid */  	if (err < 0) { -		printf("libfdt: %s", fdt_strerror(err)); +		printf("libfdt fdt_check_header(): %s", fdt_strerror(err));  		/*  		 * Be more informative on bad version.  		 */  		if (err == -FDT_ERR_BADVERSION) {  			if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) {  				printf (" - too old, fdt $d < %d", -					fdt_version(fdt), FDT_FIRST_SUPPORTED_VERSION); +					fdt_version(fdt), +					FDT_FIRST_SUPPORTED_VERSION);  				fdt = NULL;  			}  			if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION) {  				printf (" - too new, fdt $d > %d", -					fdt_version(fdt), FDT_LAST_SUPPORTED_VERSION); +					fdt_version(fdt), +					FDT_LAST_SUPPORTED_VERSION);  				fdt = NULL;  			}  			return 0; @@ -500,13 +363,91 @@ static int fdt_valid(void)  	return 1;  } -/********************************************************************/ +/****************************************************************************/ + +/* + * Parse the user's input, partially heuristic.  Valid formats: + * <00>		- hex byte + * <0011>	- hex half word (16 bits) + * <00112233>	- hex word (32 bits) + *		- hex double words (64 bits) are not supported, must use + *			a byte stream instead. + * [00 11 22 .. nn] - byte stream + * "string"	- If the the value doesn't start with "<" or "[", it is + *			treated as a string.  Note that the quotes are + *			stripped by the parser before we get the string. + */ +static int fdt_parse_prop(char *pathp, char *prop, char *newval, +	char *data, int *len) +{ +	char *cp;		/* temporary char pointer */ +	unsigned long tmp;	/* holds converted values */ + +	if (*newval == '<') { +		/* +		 * Bigger values than bytes. +		 */ +		*len = 0; +		newval++; +		while ((*newval != '>') && (*newval != '\0')) { +			cp = newval; +			tmp = simple_strtoul(cp, &newval, 16); +			if ((newval - cp) <= 2) { +				*data = tmp & 0xFF; +				data  += 1; +				*len += 1; +			} else if ((newval - cp) <= 4) { +				*(uint16_t *)data = __cpu_to_be16(tmp); +				data  += 2; +				*len += 2; +			} else if ((newval - cp) <= 8) { +				*(uint32_t *)data = __cpu_to_be32(tmp); +				data  += 4; +				*len += 4; +			} else { +				printf("Sorry, I could not convert \"%s\"\n", +					cp); +				return 1; +			} +			while (*newval == ' ') +				newval++; +		} +		if (*newval != '>') { +			printf("Unexpected character '%c'\n", *newval); +			return 1; +		} +	} else if (*newval == '[') { +		/* +		 * Byte stream.  Convert the values. +		 */ +		*len = 0; +		newval++; +		while ((*newval != ']') && (*newval != '\0')) { +			tmp = simple_strtoul(newval, &newval, 16); +			*data++ = tmp & 0xFF; +			*len    = *len + 1; +			while (*newval == ' ') +				newval++; +		} +		if (*newval != ']') { +			printf("Unexpected character '%c'\n", *newval); +			return 1; +		} +	} else { +		/* +		 * Assume it is a string.  Copy it into our data area for +		 * convenience (including the terminating '\0'). +		 */ +		*len = strlen(newval) + 1; +		strcpy(data, newval); +	} +	return 0; +} + +/****************************************************************************/  /* - * OF flat tree handling - * Written by: Pantelis Antoniou <pantelis.antoniou@gmail.com> - * Updated by: Matthew McClintock <msm@freescale.com> - * Converted to libfdt by: Gerald Van Baren <vanbaren@cideas.com> + * Heuristic to guess if this is a string or concatenated strings.   */  static int is_printable_string(const void *data, int len) @@ -546,6 +487,12 @@ static int is_printable_string(const void *data, int len)  	return 1;  } + +/* + * Print the property in the best format, a heuristic guess.  Print as + * a string, concatenated strings, a byte, word, double word, or (if all + * else fails) it is printed as a stream of bytes. + */  static void print_data(const void *data, int len)  {  	int j; @@ -601,32 +548,146 @@ static void print_data(const void *data, int len)  	}  } +/****************************************************************************/ + +/* + * Recursively print (a portion of) the fdt.  The depth parameter + * determines how deeply nested the fdt is printed. + */ +static int fdt_print(char *pathp, char *prop, int depth) +{ +	static int offstack[MAX_LEVEL]; +	static char tabs[MAX_LEVEL+1] = +		"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" +		"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"; +	void *nodep;		/* property node pointer */ +	int  nodeoffset;	/* node offset from libfdt */ +	int  nextoffset;	/* next node offset from libfdt */ +	uint32_t tag;		/* tag */ +	int  len;		/* length of the property */ +	int  level = 0;		/* keep track of nesting level */ + +	nodeoffset = fdt_find_node_by_path (fdt, pathp); +	if (nodeoffset < 0) { +		/* +		 * Not found or something else bad happened. +		 */ +		printf ("libfdt fdt_find_node_by_path() returned %s\n", +			fdt_strerror(nodeoffset)); +		return 1; +	} +	/* +	 * The user passed in a property as well as node path. +	 * Print only the given property and then return. +	 */ +	if (prop) { +		nodep = fdt_getprop (fdt, nodeoffset, prop, &len); +		if (len == 0) { +			/* no property value */ +			printf("%s %s\n", pathp, prop); +			return 0; +		} else if (len > 0) { +			printf("%s=", prop); +			print_data (nodep, len); +			printf("\n"); +			return 0; +		} else { +			printf ("libfdt fdt_getprop(): %s\n", +				fdt_strerror(len)); +			return 1; +		} +	} + +	/* +	 * The user passed in a node path and no property, +	 * print the node and all subnodes. +	 */ +	offstack[0] = nodeoffset; + +	while(level >= 0) { +		tag = fdt_next_tag(fdt, nodeoffset, &nextoffset, &pathp); +		switch(tag) { +		case FDT_BEGIN_NODE: +			if(level <= depth) +				printf("%s%s {\n", +					&tabs[MAX_LEVEL - level], pathp); +			level++; +			offstack[level] = nodeoffset; +			if (level >= MAX_LEVEL) { +				printf("Aaaiii <splat> nested too deep. " +					"Aborting.\n"); +				return 1; +			} +			break; +		case FDT_END_NODE: +			level--; +			if(level <= depth) +				printf("%s};\n", &tabs[MAX_LEVEL - level]); +			if (level == 0) { +				level = -1;		/* exit the loop */ +			} +			break; +		case FDT_PROP: +			nodep = fdt_getprop (fdt, offstack[level], pathp, &len); +			if (len < 0) { +				printf ("libfdt fdt_getprop(): %s\n", +					fdt_strerror(len)); +				return 1; +			} else if (len == 0) { +				/* the property has no value */ +				if(level <= depth) +					printf("%s%s;\n", +						&tabs[MAX_LEVEL - level], +						pathp); +			} else { +				if(level <= depth) { +					printf("%s%s=", +						&tabs[MAX_LEVEL - level], +						pathp); +					print_data (nodep, len); +					printf(";\n"); +				} +			} +			break; +		case FDT_NOP: +			break; +		case FDT_END: +			return 1; +		default: +			if(level <= depth) +				printf("Unknown tag 0x%08X\n", tag); +			return 1; +		} +		nodeoffset = nextoffset; +	} +	return 0; +} +  /********************************************************************/  U_BOOT_CMD(  	fdt,	5,	0,	do_fdt,  	"fdt     - flattened device tree utility commands\n",  	    "addr   <addr> [<length>]        - Set the fdt location to <addr>\n" +#ifdef CONFIG_OF_BOARD_SETUP +	"fdt boardsetup                      - Do board-specific set up\n" +#endif  	"fdt move   <fdt> <newaddr> <length> - Copy the fdt to <addr>\n"  	"fdt print  <path> [<prop>]          - Recursive print starting at <path>\n"  	"fdt list   <path> [<prop>]          - Print one level starting at <path>\n"  	"fdt set    <path> <prop> [<val>]    - Set <property> [to <val>]\n"  	"fdt mknode <path> <node>            - Create a new node after <path>\n"  	"fdt rm     <path> [<prop>]          - Delete the node or <property>\n" -	"fdt chosen - Add/update the \"/chosen\" branch in the tree\n" +	"fdt chosen - Add/update the /chosen branch in the tree\n"  #ifdef CONFIG_OF_HAS_UBOOT_ENV -	"fdt env    - Add/replace the \"/u-boot-env\" branch in the tree\n" +	"fdt env    - Add/replace the /u-boot-env branch in the tree\n"  #endif  #ifdef CONFIG_OF_HAS_BD_T -	"fdt bd_t   - Add/replace the \"/bd_t\" branch in the tree\n" +	"fdt bd_t   - Add/replace the /bd_t branch in the tree\n"  #endif  	"Hints:\n" -	" * Set a larger length with the fdt addr command to add to the blob.\n" -	" * If the property you are setting/printing has a '#' character,\n" -	"     you MUST escape it with a \\ character or quote it with \" or\n" -	"     it will be ignored as a comment.\n" -	" * If the value has spaces in it, you MUST escape the spaces with\n" -	"     \\ characters or quote it with \"\"\n" +	" If the property you are setting/printing has a '#' character or spaces,\n" +	"     you MUST escape it with a \\ character or quote it with \".\n"  	"Examples: fdt print /               # print the whole tree\n"  	"          fdt print /cpus \"#address-cells\"\n"  	"          fdt set   /cpus \"#address-cells\" \"[00 00 00 01]\"\n" diff --git a/common/cmd_flash.c b/common/cmd_flash.c index a34ab79c3..11c885731 100644 --- a/common/cmd_flash.c +++ b/common/cmd_flash.c @@ -31,9 +31,9 @@  #include <dataflash.h>  #endif -#if (CONFIG_COMMANDS & CFG_CMD_FLASH) +#if defined(CONFIG_CMD_FLASH) -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  #include <jffs2/jffs2.h>  /* parition handling routines */ @@ -311,7 +311,7 @@ int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	flash_info_t *info;  	ulong bank, addr_first, addr_last;  	int n, sect_first, sect_last; -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	struct mtd_device *dev;  	struct part_info *part;  	u8 dev_type, dev_num, pnum; @@ -343,7 +343,7 @@ int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		return rcode;  	} -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	/* erase <part-id> - erase partition */  	if ((argc == 2) && (id_parse(argv[1], NULL, &dev_type, &dev_num) == 0)) {  		mtdparts_init(); @@ -447,7 +447,7 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	flash_info_t *info;  	ulong bank, addr_first, addr_last;  	int i, p, n, sect_first, sect_last; -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	struct mtd_device *dev;  	struct part_info *part;  	u8 dev_type, dev_num, pnum; @@ -539,7 +539,7 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		return rcode;  	} -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	/* protect on/off <part-id> */  	if ((argc == 3) && (id_parse(argv[2], NULL, &dev_type, &dev_num) == 0)) {  		mtdparts_init(); @@ -672,7 +672,7 @@ int flash_sect_protect (int p, ulong addr_first, ulong addr_last)  /**************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  # define TMP_ERASE	"erase <part-id>\n    - erase partition\n"  # define TMP_PROT_ON	"protect on <part-id>\n    - protect partition\n"  # define TMP_PROT_OFF	"protect off <part-id>\n    - make partition writable\n" @@ -732,4 +732,4 @@ U_BOOT_CMD(  #undef	TMP_PROT_ON  #undef	TMP_PROT_OFF -#endif	/* CFG_CMD_FLASH */ +#endif diff --git a/common/cmd_fpga.c b/common/cmd_fpga.c index 344409185..3fc4fca9a 100644 --- a/common/cmd_fpga.c +++ b/common/cmd_fpga.c @@ -27,7 +27,7 @@   */  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  #include <net.h>  #endif  #include <fpga.h> @@ -43,7 +43,7 @@  #define PRINTF(fmt,args...)  #endif -#if defined (CONFIG_FPGA) && ( CONFIG_COMMANDS & CFG_CMD_FPGA ) +#if defined (CONFIG_FPGA) && defined(CONFIG_CMD_FPGA)  /* Local functions */  static void fpga_usage (cmd_tbl_t * cmdtp); @@ -321,4 +321,4 @@ U_BOOT_CMD (fpga, 6, 1, do_fpga,  	    "\tloadb\tLoad device from bitstream buffer (Xilinx devices only)\n"  	    "\tloadmk\tLoad device generated with mkimage\n"  	    "\tdump\tLoad device to memory buffer\n"); -#endif /* CONFIG_FPGA && CONFIG_COMMANDS & CFG_CMD_FPGA */ +#endif diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c index 755810d59..a684a580e 100644 --- a/common/cmd_i2c.c +++ b/common/cmd_i2c.c @@ -86,7 +86,7 @@  #include <i2c.h>  #include <asm/byteorder.h> -#if (CONFIG_COMMANDS & CFG_CMD_I2C) +#if defined(CONFIG_CMD_I2C)  /* Display values from last command. @@ -657,7 +657,7 @@ int do_i2c_loop(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])   * The SDRAM command is separately configured because many   * (most?) embedded boards don't use SDRAM DIMMs.   */ -#if (CONFIG_COMMANDS & CFG_CMD_SDRAM) +#if defined(CONFIG_CMD_SDRAM)  /*   * Syntax: @@ -877,7 +877,7 @@ int do_sdram  ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	return 0;  } -#endif	/* CFG_CMD_SDRAM */ +#endif  #if defined(CONFIG_I2C_CMD_TREE)  #if defined(CONFIG_I2C_MULTI_BUS) @@ -938,10 +938,10 @@ int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		return do_i2c_probe(cmdtp, flag, --argc, ++argv);  	if (!strncmp(argv[1], "lo", 2))  		return do_i2c_loop(cmdtp, flag, --argc, ++argv); -#if (CONFIG_COMMANDS & CFG_CMD_SDRAM) +#if defined(CONFIG_CMD_SDRAM)  	if (!strncmp(argv[1], "sd", 2))  		return do_sdram(cmdtp, flag, --argc, ++argv); -#endif	/* CFG_CMD_SDRAM */ +#endif  	else  		printf ("Usage:\n%s\n", cmdtp->usage);  	return 0; @@ -965,9 +965,9 @@ U_BOOT_CMD(  	"i2c crc32 chip address[.0, .1, .2] count - compute CRC32 checksum\n"  	"i2c probe - show devices on the I2C bus\n"  	"i2c loop chip address[.0, .1, .2] [# of objects] - looping read of device\n" -#if (CONFIG_COMMANDS & CFG_CMD_SDRAM) +#if defined(CONFIG_CMD_SDRAM)  	"i2c sdram chip - print SDRAM configuration information\n" -#endif  /* CFG_CMD_SDRAM */ +#endif  );  #endif /* CONFIG_I2C_CMD_TREE */  U_BOOT_CMD( @@ -1016,7 +1016,7 @@ U_BOOT_CMD(  	"    - loop, reading a set of addresses\n"  ); -#if (CONFIG_COMMANDS & CFG_CMD_SDRAM) +#if defined(CONFIG_CMD_SDRAM)  U_BOOT_CMD(  	isdram,	2,	1,	do_sdram,  	"isdram  - print SDRAM configuration information\n", @@ -1025,4 +1025,4 @@ U_BOOT_CMD(  );  #endif -#endif	/* CFG_CMD_I2C */ +#endif diff --git a/common/cmd_ide.c b/common/cmd_ide.c index 877915694..89fefed33 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -71,7 +71,7 @@ DECLARE_GLOBAL_DATA_PTR;  # define SYNC		/* nothing */  #endif -#if (CONFIG_COMMANDS & CFG_CMD_IDE) +#if defined(CONFIG_CMD_IDE)  #ifdef CONFIG_IDE_8xx_DIRECT  /* Timings for IDE Interface @@ -2105,4 +2105,4 @@ U_BOOT_CMD(  	"loadAddr dev:part\n"  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_IDE */ +#endif diff --git a/common/cmd_immap.c b/common/cmd_immap.c index fa79b45a3..ae9575824 100644 --- a/common/cmd_immap.c +++ b/common/cmd_immap.c @@ -28,7 +28,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_IMMAP) && \ +#if defined(CONFIG_CMD_IMMAP) && \      (defined(CONFIG_8xx) || defined(CONFIG_8260))  #if defined(CONFIG_8xx) @@ -720,4 +720,4 @@ U_BOOT_CMD(  ); -#endif	/* CFG_CMD_IMMAP && (CONFIG_8xx || CONFIG_8260) */ +#endif diff --git a/common/cmd_itest.c b/common/cmd_itest.c index 8ad134f4a..8e2051714 100644 --- a/common/cmd_itest.c +++ b/common/cmd_itest.c @@ -32,7 +32,7 @@  #include <config.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_ITEST) +#if defined(CONFIG_CMD_ITEST)  #define EQ	0  #define NE	1 @@ -197,4 +197,4 @@ U_BOOT_CMD(  	"itest\t- return true/false on integer compare\n",  	"[.b, .w, .l, .s] [*]value1 <op> [*]value2\n"  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_ITEST */ +#endif diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c index 7fd1fa33d..513a226c4 100644 --- a/common/cmd_jffs2.c +++ b/common/cmd_jffs2.c @@ -94,18 +94,18 @@  #include <linux/list.h>  #include <linux/ctype.h> -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) +#if defined(CONFIG_CMD_JFFS2)  #include <cramfs/cramfs_fs.h> -#if (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_CMD_NAND)  #ifdef CFG_NAND_LEGACY  #include <linux/mtd/nand_legacy.h>  #else /* !CFG_NAND_LEGACY */  #include <linux/mtd/nand.h>  #include <nand.h>  #endif /* !CFG_NAND_LEGACY */ -#endif /* (CONFIG_COMMANDS & CFG_CMD_NAND) */ +#endif  /* enable/disable debugging messages */  #define	DEBUG_JFFS  #undef	DEBUG_JFFS @@ -321,7 +321,7 @@ static void current_save(void)   */  static int part_validate_nor(struct mtdids *id, struct part_info *part)  { -#if (CONFIG_COMMANDS & CFG_CMD_FLASH) +#if defined(CONFIG_CMD_FLASH)  	/* info for FLASH chips */  	extern flash_info_t flash_info[];  	flash_info_t *flash; @@ -370,7 +370,7 @@ static int part_validate_nor(struct mtdids *id, struct part_info *part)   */  static int part_validate_nand(struct mtdids *id, struct part_info *part)  { -#if defined(CONFIG_JFFS2_NAND) && (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_JFFS2_NAND) && defined(CONFIG_CMD_NAND)  	/* info for NAND chips */  	nand_info_t *nand; @@ -719,7 +719,7 @@ static int part_parse(const char *const partdef, const char **ret, struct part_i  static int device_validate(u8 type, u8 num, u32 *size)  {  	if (type == MTD_DEV_TYPE_NOR) { -#if (CONFIG_COMMANDS & CFG_CMD_FLASH) +#if defined(CONFIG_CMD_FLASH)  		if (num < CFG_MAX_FLASH_BANKS) {  			extern flash_info_t flash_info[];  			*size = flash_info[num].size; @@ -733,7 +733,7 @@ static int device_validate(u8 type, u8 num, u32 *size)  		printf("support for FLASH devices not present\n");  #endif  	} else if (type == MTD_DEV_TYPE_NAND) { -#if defined(CONFIG_JFFS2_NAND) && (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_JFFS2_NAND) && defined(CONFIG_CMD_NAND)  		if (num < CFG_MAX_NAND_DEVICE) {  #ifndef CFG_NAND_LEGACY  			*size = nand_info[num].size; @@ -2192,4 +2192,4 @@ U_BOOT_CMD(  /***************************************************/ -#endif /* CFG_CMD_JFFS2 */ +#endif diff --git a/common/cmd_load.c b/common/cmd_load.c index f63b8e805..204c3ebf1 100644 --- a/common/cmd_load.c +++ b/common/cmd_load.c @@ -33,24 +33,24 @@  DECLARE_GLOBAL_DATA_PTR; -#if (CONFIG_COMMANDS & CFG_CMD_LOADB) +#if defined(CONFIG_CMD_LOADB)  static ulong load_serial_ymodem (ulong offset);  #endif -#if (CONFIG_COMMANDS & CFG_CMD_LOADS) +#if defined(CONFIG_CMD_LOADS)  static ulong load_serial (ulong offset);  static int read_record (char *buf, ulong len); -# if (CONFIG_COMMANDS & CFG_CMD_SAVES) +# if defined(CONFIG_CMD_SAVES)  static int save_serial (ulong offset, ulong size);  static int write_record (char *buf); -# endif /* CFG_CMD_SAVES */ +#endif  static int do_echo = 1; -#endif /* CFG_CMD_LOADS */ +#endif  /* -------------------------------------------------------------------- */ -#if (CONFIG_COMMANDS & CFG_CMD_LOADS) +#if defined(CONFIG_CMD_LOADS)  int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	ulong offset = 0; @@ -253,7 +253,7 @@ read_record (char *buf, ulong len)  	return (p - buf);  } -#if (CONFIG_COMMANDS & CFG_CMD_SAVES) +#if defined(CONFIG_CMD_SAVES)  int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  { @@ -399,13 +399,15 @@ write_record (char *buf)  	}  	return (0);  } -# endif /* CFG_CMD_SAVES */ - -#endif	/* CFG_CMD_LOADS */ +# endif +#endif -#if (CONFIG_COMMANDS & CFG_CMD_LOADB)  /* loadb command (load binary) included */ +#if defined(CONFIG_CMD_LOADB) +/* + * loadb command (load binary) included + */  #define XON_CHAR        17  #define XOFF_CHAR       19  #define START_CHAR      0x01 @@ -1036,11 +1038,11 @@ static ulong load_serial_ymodem (ulong offset)  	return offset;  } -#endif	/* CFG_CMD_LOADB */ +#endif  /* -------------------------------------------------------------------- */ -#if (CONFIG_COMMANDS & CFG_CMD_LOADS) +#if defined(CONFIG_CMD_LOADS)  #ifdef	CFG_LOADS_BAUD_CHANGE  U_BOOT_CMD( @@ -1065,7 +1067,7 @@ U_BOOT_CMD(   */ -#if (CONFIG_COMMANDS & CFG_CMD_SAVES) +#if defined(CONFIG_CMD_SAVES)  #ifdef	CFG_LOADS_BAUD_CHANGE  U_BOOT_CMD(  	saves, 4, 0,	do_save_serial, @@ -1082,11 +1084,11 @@ U_BOOT_CMD(  	"    - save S-Record file over serial line with offset 'off' and size 'size'\n"  );  #endif	/* CFG_LOADS_BAUD_CHANGE */ -#endif	/* CFG_CMD_SAVES */ -#endif	/* CFG_CMD_LOADS */ +#endif +#endif -#if (CONFIG_COMMANDS & CFG_CMD_LOADB) +#if defined(CONFIG_CMD_LOADB)  U_BOOT_CMD(  	loadb, 3, 0,	do_load_serial_bin,  	"loadb   - load binary file over serial line (kermit mode)\n", @@ -1103,11 +1105,11 @@ U_BOOT_CMD(  	" with offset 'off' and baudrate 'baud'\n"  ); -#endif	/* CFG_CMD_LOADB */ +#endif  /* -------------------------------------------------------------------- */ -#if (CONFIG_COMMANDS & CFG_CMD_HWFLOW) +#if defined(CONFIG_CMD_HWFLOW)  int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	extern int hwflow_onoff(int); @@ -1133,4 +1135,4 @@ U_BOOT_CMD(  	"[on|off]\n - change RTS/CTS hardware flow control over serial line\n"  ); -#endif /* CFG_CMD_HWFLOW */ +#endif diff --git a/common/cmd_mem.c b/common/cmd_mem.c index fcbb0236d..a99421113 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -29,18 +29,19 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_MMC) +#if defined(CONFIG_CMD_MMC)  #include <mmc.h>  #endif  #ifdef CONFIG_HAS_DATAFLASH  #include <dataflash.h>  #endif -#if (CONFIG_COMMANDS & (CFG_CMD_MEMORY	| \ -			CFG_CMD_I2C	| \ -			CFG_CMD_ITEST	| \ -			CFG_CMD_PCI	| \ -			CMD_CMD_PORTIO	) ) +#if defined(CONFIG_CMD_MEMORY)		\ +    || defined(CONFIG_CMD_I2C)		\ +    || defined(CONFIG_CMD_ITEST)	\ +    || defined(CONFIG_CMD_PCI)		\ +    || defined(CONFIG_CMD_PORTIO) +  int cmd_get_data_size(char* arg, int default_size)  {  	/* Check for a size specification .b, .w or .l. @@ -64,7 +65,7 @@ int cmd_get_data_size(char* arg, int default_size)  }  #endif -#if (CONFIG_COMMANDS & CFG_CMD_MEMORY) +#if defined(CONFIG_CMD_MEMORY)  #ifdef	CMD_MEM_DEBUG  #define	PRINTF(fmt,args...)	printf (fmt ,##args) @@ -403,7 +404,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	}  #endif -#if (CONFIG_COMMANDS & CFG_CMD_MMC) +#if defined(CONFIG_CMD_MMC)  	if (mmc2info(dest)) {  		int rc; @@ -1149,7 +1150,7 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  #endif	/* CONFIG_CRC32_VERIFY */  /**************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_MEMORY) +#if defined(CONFIG_CMD_MEMORY)  U_BOOT_CMD(  	md,     3,     1,      do_mem_md,  	"md      - memory display\n", @@ -1252,4 +1253,4 @@ U_BOOT_CMD(  #endif /* CONFIG_MX_CYCLIC */  #endif -#endif	/* CFG_CMD_MEMORY */ +#endif diff --git a/common/cmd_mfsl.c b/common/cmd_mfsl.c index ffa266693..8d4c1a38d 100644 --- a/common/cmd_mfsl.c +++ b/common/cmd_mfsl.c @@ -30,7 +30,7 @@  #include <config.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_MFSL) +#if defined(CONFIG_CMD_MFSL)  #include <asm/asm.h>  int do_frd (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) @@ -414,4 +414,4 @@ U_BOOT_CMD (rspr, 3, 1, do_rspr,  		" 1 - EAR - Exception address register\n"  		" 2 - ESR - Exception status register\n"); -#endif				/* CONFIG_MICROBLAZE & CFG_CMD_MFSL */ +#endif diff --git a/common/cmd_mii.c b/common/cmd_mii.c index c3f43d7f4..72e11d544 100644 --- a/common/cmd_mii.c +++ b/common/cmd_mii.c @@ -28,7 +28,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_MII) +#if defined(CONFIG_CMD_MII)  #include <miiphy.h>  #ifdef CONFIG_TERSE_MII @@ -595,4 +595,4 @@ U_BOOT_CMD(  #endif /* CONFIG_TERSE_MII */ -#endif /* CFG_CMD_MII */ +#endif diff --git a/common/cmd_misc.c b/common/cmd_misc.c index a99222d3e..c0c6b8f05 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -27,7 +27,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_MISC) +#if defined(CONFIG_CMD_MISC)  int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  { @@ -52,7 +52,7 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  }  /* Implemented in $(CPU)/interrupts.c */ -#if (CONFIG_COMMANDS & CFG_CMD_IRQ) +#if defined(CONFIG_CMD_IRQ)  int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);  U_BOOT_CMD( @@ -60,7 +60,7 @@ U_BOOT_CMD(  	"irqinfo - print information about IRQs\n",  	NULL  ); -#endif  /* CONFIG_COMMANDS & CFG_CMD_IRQ */ +#endif  U_BOOT_CMD(  	sleep ,    2,    1,     do_sleep, @@ -69,4 +69,4 @@ U_BOOT_CMD(  	"    - delay execution for N seconds (N is _decimal_ !!!)\n"  ); -#endif	/* CFG_CMD_MISC */ +#endif diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 573eb97ea..069c6d02a 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -24,7 +24,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_MMC) +#if defined(CONFIG_CMD_MMC)  #include <mmc.h> @@ -43,4 +43,4 @@ U_BOOT_CMD(  	NULL  ); -#endif	/* CFG_CMD_MMC */ +#endif diff --git a/common/cmd_nand.c b/common/cmd_nand.c index cb62661ec..c72612d0d 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -19,7 +19,7 @@   */  #include <common.h> -#if (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_CMD_NAND)  #include <command.h>  #include <watchdog.h> @@ -28,7 +28,7 @@  #include <jffs2/jffs2.h>  #include <nand.h> -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  /* parition handling routines */  int mtdparts_init(void); @@ -96,7 +96,7 @@ static int  arg_off_size(int argc, char *argv[], nand_info_t *nand, ulong *off, ulong *size)  {  	int idx = nand_curr_device; -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	struct mtd_device *dev;  	struct part_info *part;  	u8 pnum; @@ -144,7 +144,7 @@ arg_off_size(int argc, char *argv[], nand_info_t *nand, ulong *off, ulong *size)  		*size = nand->size - *off;  	} -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if  defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  out:  #endif  	printf("device %d ", idx); @@ -529,7 +529,7 @@ int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	char *boot_device = NULL;  	int idx;  	ulong addr, offset = 0; -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  	struct mtd_device *dev;  	struct part_info *part;  	u8 pnum; @@ -574,7 +574,7 @@ int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  		offset = simple_strtoul(argv[3], NULL, 16);  		break;  	default: -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE) +#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)  usage:  #endif  		printf("Usage:\n%s\n", cmdtp->usage); @@ -606,7 +606,7 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,  	"nboot   - boot from NAND device\n",  	"[partition] | [[[loadAddr] dev] offset]\n"); -#endif				/* (CONFIG_COMMANDS & CFG_CMD_NAND) */ +#endif  #else /* CFG_NAND_LEGACY */  /* @@ -626,7 +626,7 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,  # define show_boot_progress(arg)  #endif -#if (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_CMD_NAND)  #include <linux/mtd/nand_legacy.h>  #if 0  #include <linux/mtd/nand_ids.h> @@ -991,6 +991,6 @@ U_BOOT_CMD(  	"loadAddr dev\n"  ); -#endif /* (CONFIG_COMMANDS & CFG_CMD_NAND) */ +#endif  #endif /* CFG_NAND_LEGACY */ diff --git a/common/cmd_net.c b/common/cmd_net.c index f1097a995..0715fbc20 100644 --- a/common/cmd_net.c +++ b/common/cmd_net.c @@ -28,7 +28,7 @@  #include <command.h>  #include <net.h> -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  extern int do_bootm (cmd_tbl_t *, int, int, char *[]); @@ -67,7 +67,7 @@ U_BOOT_CMD(  	"[loadAddress] [bootfilename]\n"  ); -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  int do_dhcp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	return netboot_common(DHCP, cmdtp, argc, argv); @@ -78,9 +78,9 @@ U_BOOT_CMD(  	"dhcp\t- invoke DHCP client to obtain IP/boot params\n",  	"\n"  ); -#endif	/* CFG_CMD_DHCP */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_NFS) +#if defined(CONFIG_CMD_NFS)  int do_nfs (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	return netboot_common(NFS, cmdtp, argc, argv); @@ -91,7 +91,7 @@ U_BOOT_CMD(  	"nfs\t- boot image via network using NFS protocol\n",  	"[loadAddress] [host ip addr:bootfilename]\n"  ); -#endif	/* CFG_CMD_NFS */ +#endif  static void netboot_update_env (void)  { @@ -127,7 +127,7 @@ static void netboot_update_env (void)  		ip_to_string (NetOurDNSIP, tmp);  		setenv ("dnsip", tmp);  	} -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2) +#if defined(CONFIG_BOOTP_DNS2)  	if (NetOurDNS2IP) {  		ip_to_string (NetOurDNS2IP, tmp);  		setenv ("dnsip2", tmp); @@ -136,13 +136,15 @@ static void netboot_update_env (void)  	if (NetOurNISDomain[0])  		setenv ("domain", NetOurNISDomain); -#if (CONFIG_COMMANDS & CFG_CMD_SNTP) && (CONFIG_BOOTP_MASK & CONFIG_BOOTP_TIMEOFFSET) +#if defined(CONFIG_CMD_SNTP) \ +    && defined(CONFIG_BOOTP_TIMEOFFSET)  	if (NetTimeOffset) {  		sprintf (tmp, "%d", NetTimeOffset);  		setenv ("timeoffset", tmp);  	}  #endif -#if (CONFIG_COMMANDS & CFG_CMD_SNTP) && (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NTPSERVER) +#if defined(CONFIG_CMD_SNTP) \ +    && defined(CONFIG_BOOTP_NTPSERVER)  	if (NetNtpServerIP) {  		ip_to_string (NetNtpServerIP, tmp);  		setenv ("ntpserverip", tmp); @@ -232,7 +234,7 @@ netboot_common (proto_t proto, cmd_tbl_t *cmdtp, int argc, char *argv[])  	return rcode;  } -#if (CONFIG_COMMANDS & CFG_CMD_PING) +#if defined(CONFIG_CMD_PING)  int do_ping (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	if (argc < 2) @@ -259,9 +261,9 @@ U_BOOT_CMD(  	"ping\t- send ICMP ECHO_REQUEST to network host\n",  	"pingAddress\n"  ); -#endif	/* CFG_CMD_PING */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_CDP) +#if defined(CONFIG_CMD_CDP)  static void cdp_update_env(void)  { @@ -302,9 +304,9 @@ U_BOOT_CMD(  	cdp,	1,	1,	do_cdp,  	"cdp\t- Perform CDP network configuration\n",  ); -#endif	/* CFG_CMD_CDP */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_SNTP) +#if defined(CONFIG_CMD_SNTP)  int do_sntp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	char *toff; @@ -340,6 +342,6 @@ U_BOOT_CMD(  	"sntp\t- synchronize RTC via network\n",  	"[NTP server IP]\n"  ); -#endif	/* CFG_CMD_SNTP */ +#endif -#endif	/* CFG_CMD_NET */ +#endif diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index 977ec5bae..1db0fc3c0 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -46,7 +46,7 @@  #include <serial.h>  #include <linux/stddef.h>  #include <asm/byteorder.h> -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  #include <net.h>  #endif @@ -193,7 +193,12 @@ int _do_setenv (int flag, int argc, char *argv[])  		 * Ethernet Address and serial# can be set only once,  		 * ver is readonly.  		 */ +#ifdef CONFIG_HAS_UID +		/* Allow serial# forced overwrite with 0xdeaf4add flag */ +		if ( ((strcmp (name, "serial#") == 0) && (flag != 0xdeaf4add)) || +#else  		if ( (strcmp (name, "serial#") == 0) || +#endif  		    ((strcmp (name, "ethaddr") == 0)  #if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR)  		     && (strcmp ((char *)env_get_addr(oldval),MK_STR(CONFIG_ETHADDR)) != 0) @@ -367,12 +372,12 @@ int _do_setenv (int flag, int argc, char *argv[])  		load_addr = simple_strtoul(argv[2], NULL, 16);  		return 0;  	} -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  	if (strcmp(argv[1],"bootfile") == 0) {  		copy_filename (BootFile, argv[2], sizeof(BootFile));  		return 0;  	} -#endif	/* CFG_CMD_NET */ +#endif  #ifdef CONFIG_AMIGAONEG3SE  	if (strcmp(argv[1], "vga_fg_color") == 0 || @@ -397,7 +402,15 @@ void setenv (char *varname, char *varvalue)  		_do_setenv (0, 3, argv);  } -int do_setenv ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +#ifdef CONFIG_HAS_UID +void forceenv (char *varname, char *varvalue) +{ +	char *argv[4] = { "forceenv", varname, varvalue, NULL }; +	_do_setenv (0xdeaf4add, 3, argv); +} +#endif + +int do_setenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	if (argc < 2) {  		printf ("Usage:\n%s\n", cmdtp->usage); @@ -411,7 +424,7 @@ int do_setenv ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])   * Prompt for environment variable   */ -#if (CONFIG_COMMANDS & CFG_CMD_ASKENV) +#if defined(CONFIG_CMD_ASKENV)  int do_askenv ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	extern char console_buffer[CFG_CBSIZE]; @@ -483,7 +496,7 @@ int do_askenv ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	/* Continue calling setenv code */  	return _do_setenv (flag, len, local_args);  } -#endif	/* CFG_CMD_ASKENV */ +#endif  /************************************************************************   * Look up variable from environment, @@ -538,11 +551,9 @@ int getenv_r (char *name, char *buf, unsigned len)  	return (-1);  } -#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) || \ -    ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == \ -      (CFG_CMD_ENV|CFG_CMD_FLASH)) || \ -    ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_NAND)) == \ -      (CFG_CMD_ENV|CFG_CMD_NAND)) +#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ +    || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \ +    || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND))  int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  {  	extern char * env_name_spec; @@ -552,7 +563,6 @@ int do_saveenv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	return (saveenv() ? 1 : 0);  } -  #endif @@ -596,20 +606,18 @@ U_BOOT_CMD(  	"    - delete environment variable 'name'\n"  ); -#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) || \ -    ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == \ -      (CFG_CMD_ENV|CFG_CMD_FLASH)) || \ -    ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_NAND)) == \ -      (CFG_CMD_ENV|CFG_CMD_NAND)) +#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) \ +    || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)) \ +    || (defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND))  U_BOOT_CMD(  	saveenv, 1, 0,	do_saveenv,  	"saveenv - save environment variables to persistent storage\n",  	NULL  ); -#endif	/* CFG_CMD_ENV */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_ASKENV) +#if defined(CONFIG_CMD_ASKENV)  U_BOOT_CMD(  	askenv,	CFG_MAXARGS,	1,	do_askenv, @@ -624,9 +632,9 @@ U_BOOT_CMD(  	"    - display 'message' string and get environment variable 'name'"  	"from stdin (max 'size' chars)\n"  ); -#endif	/* CFG_CMD_ASKENV */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_RUN) +#if defined(CONFIG_CMD_RUN)  int do_run (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);  U_BOOT_CMD(  	run,	CFG_MAXARGS,	1,	do_run, @@ -634,4 +642,4 @@ U_BOOT_CMD(  	"var [...]\n"  	"    - run the commands in the environment variable(s) 'var'\n"  ); -#endif  /* CFG_CMD_RUN */ +#endif diff --git a/common/cmd_pci.c b/common/cmd_pci.c index 45085462f..8be6da93f 100644 --- a/common/cmd_pci.c +++ b/common/cmd_pci.c @@ -38,7 +38,7 @@  #include <asm/io.h>  #include <pci.h> -#if (CONFIG_COMMANDS & CFG_CMD_PCI) +#if defined(CONFIG_CMD_PCI)  extern int cmd_get_data_size(char* arg, int default_size); @@ -565,6 +565,6 @@ U_BOOT_CMD(  	"    - write to CFG address\n"  ); -#endif /* (CONFIG_COMMANDS & CFG_CMD_PCI) */ +#endif  #endif /* CONFIG_PCI */ diff --git a/common/cmd_pcmcia.c b/common/cmd_pcmcia.c index b1a594f18..dcd07c05e 100644 --- a/common/cmd_pcmcia.c +++ b/common/cmd_pcmcia.c @@ -61,7 +61,7 @@  /* -------------------------------------------------------------------- */ -#if	(CONFIG_COMMANDS & CFG_CMD_PCMCIA) +#if defined(CONFIG_CMD_PCMCIA)  extern int pcmcia_on (void);  extern int pcmcia_off (void); @@ -93,13 +93,13 @@ U_BOOT_CMD(  			"pinit off - power off PCMCIA socket\n"  	  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_PCMCIA */ +#endif  /* -------------------------------------------------------------------- */  #undef	CHECK_IDE_DEVICE -#if	(CONFIG_COMMANDS & CFG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD) +#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)  #define	CHECK_IDE_DEVICE  #endif diff --git a/common/cmd_portio.c b/common/cmd_portio.c index d2e4c4b50..bfe33e3a8 100644 --- a/common/cmd_portio.c +++ b/common/cmd_portio.c @@ -30,7 +30,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_PORTIO) +#if defined(CONFIG_CMD_PORTIO)  extern int cmd_get_data_size (char *arg, int default_size); @@ -166,4 +166,4 @@ U_BOOT_CMD(  	"    - read datum from IO port\n"  ); -#endif	/* CFG_CMD_PORTIO */ +#endif diff --git a/common/cmd_reginfo.c b/common/cmd_reginfo.c index f428f7e9a..17e9cd907 100644 --- a/common/cmd_reginfo.c +++ b/common/cmd_reginfo.c @@ -32,7 +32,8 @@  #elif defined (CONFIG_MPC5200)  #include <mpc5xxx.h>  #endif -#if (CONFIG_COMMANDS & CFG_CMD_REGINFO) + +#if defined(CONFIG_CMD_REGINFO)  int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  { @@ -334,14 +335,14 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	return 0;  } -#endif	/* CONFIG_COMMANDS & CFG_CMD_REGINFO */ +#endif   /**************************************************/  #if ( defined(CONFIG_8xx)   || defined(CONFIG_405GP) || \        defined(CONFIG_405EP) || defined(CONFIG_MPC5200)  ) && \ -    (CONFIG_COMMANDS & CFG_CMD_REGINFO) +    defined(CONFIG_CMD_REGINFO)  U_BOOT_CMD(   	reginfo,	2,	1,	do_reginfo, diff --git a/common/cmd_reiser.c b/common/cmd_reiser.c index d83c31ab3..1ba392990 100644 --- a/common/cmd_reiser.c +++ b/common/cmd_reiser.c @@ -28,7 +28,7 @@   */  #include <common.h> -#if (CONFIG_COMMANDS & CFG_CMD_REISER) +#if defined(CONFIG_CMD_REISER)  #include <config.h>  #include <command.h>  #include <image.h> @@ -240,4 +240,4 @@ U_BOOT_CMD(  	"      to address 'addr' from dos filesystem\n"  ); -#endif	/* CONFIG_COMMANDS & CFG_CMD_REISER */ +#endif diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index 00b84fad1..f56393107 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -34,7 +34,7 @@  #include <image.h>  #include <pci.h> -#if (CONFIG_COMMANDS & CFG_CMD_SCSI) +#if defined(CONFIG_CMD_SCSI)  #ifdef CONFIG_SCSI_SYM53C8XX  #define SCSI_VEND_ID	0x1000 @@ -609,4 +609,4 @@ U_BOOT_CMD(  	"loadAddr dev:part\n"  ); -#endif /* #if (CONFIG_COMMANDS & CFG_CMD_SCSI) */ +#endif diff --git a/common/cmd_spi.c b/common/cmd_spi.c index a6fdf7fdd..3118d279b 100644 --- a/common/cmd_spi.c +++ b/common/cmd_spi.c @@ -29,7 +29,7 @@  #include <command.h>  #include <spi.h> -#if (CONFIG_COMMANDS & CFG_CMD_SPI) +#if defined(CONFIG_CMD_SPI)  /*-----------------------------------------------------------------------   * Definitions @@ -140,4 +140,4 @@ U_BOOT_CMD(  	"<dout>    - Hexadecimal string that gets sent\n"  ); -#endif	/* CFG_CMD_SPI */ +#endif diff --git a/common/cmd_universe.c b/common/cmd_universe.c index 8d7b6fee1..8bf0b1f1e 100644 --- a/common/cmd_universe.c +++ b/common/cmd_universe.c @@ -28,7 +28,7 @@  #include <universe.h> -#if (CONFIG_COMMANDS & CFG_CMD_UNIVERSE) +#if defined(CONFIG_CMD_UNIVERSE)  #define PCI_VENDOR PCI_VENDOR_ID_TUNDRA  #define PCI_DEVICE PCI_DEVICE_ID_TUNDRA_CA91C042 @@ -387,4 +387,4 @@ U_BOOT_CMD(  	"                                      03 -> D32 Data Width\n"  ); -#endif /* (CONFIG_COMMANDS & CFG_CMD_UNIVERSE) */ +#endif diff --git a/common/cmd_usb.c b/common/cmd_usb.c index 904df7159..45e07f175 100644 --- a/common/cmd_usb.c +++ b/common/cmd_usb.c @@ -30,7 +30,7 @@  #include <asm/byteorder.h>  #include <part.h> -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  #include <usb.h> @@ -609,10 +609,10 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_USB) */ +#endif -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  #ifdef CONFIG_USB_STORAGE  U_BOOT_CMD( diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c index 5e623a270..29c349dab 100644 --- a/common/cmd_vfd.c +++ b/common/cmd_vfd.c @@ -35,7 +35,7 @@  #include <common.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_VFD) +#if defined(CONFIG_CMD_VFD)  #include <vfd_logo.h>  #define VFD_TEST_LOGO_BMPNR 0 @@ -73,7 +73,7 @@ U_BOOT_CMD(  	"vfd ADDR\n"  	"    - load bitmap at address ADDR\n"  ); -#endif	/* CFG_CMD_VFD */ +#endif  #ifdef CONFIG_VFD  int trab_vfd (ulong bitmap) diff --git a/common/cmd_ximg.c b/common/cmd_ximg.c index 8359153b2..52e061449 100644 --- a/common/cmd_ximg.c +++ b/common/cmd_ximg.c @@ -24,7 +24,7 @@   * MA 02111-1307 USA   */ -#if (CONFIG_COMMANDS & CFG_CMD_XIMG) +#if defined(CONFIG_CMD_XIMG)  /*   * Multi Image extract @@ -141,4 +141,4 @@ U_BOOT_CMD(imxtract, 4, 1, do_imgextract,  	   "addr part [dest]\n"  	   "    - extract <part> from image at <addr> and copy to <dest>\n"); -#endif	/* CONFIG_COMMANDS & CFG_CMD_XIMG */ +#endif diff --git a/common/command.c b/common/command.c index e917975a7..af2f8cbf7 100644 --- a/common/command.c +++ b/common/command.c @@ -42,7 +42,7 @@ U_BOOT_CMD(  	NULL  ); -#if (CONFIG_COMMANDS & CFG_CMD_ECHO) +#if defined(CONFIG_CMD_ECHO)  int  do_echo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) @@ -76,7 +76,7 @@ U_BOOT_CMD(  	"    - echo args to console; \\c suppresses newline\n"  ); -#endif	/*  CFG_CMD_ECHO */ +#endif  #ifdef CFG_HUSH_PARSER @@ -409,7 +409,7 @@ void install_auto_complete(void)  {  	install_auto_complete_handler("printenv", var_complete);  	install_auto_complete_handler("setenv", var_complete); -#if (CONFIG_COMMANDS & CFG_CMD_RUN) +#if defined(CONFIG_CMD_RUN)  	install_auto_complete_handler("run", var_complete);  #endif  } diff --git a/common/docecc.c b/common/docecc.c index 79adb4895..5daa6fc40 100644 --- a/common/docecc.c +++ b/common/docecc.c @@ -31,7 +31,7 @@  #undef ECC_DEBUG  #undef PSYCHO_DEBUG -#if (CONFIG_COMMANDS & CFG_CMD_DOC) +#if defined(CONFIG_CMD_DOC)  #include <linux/mtd/doc2000.h> @@ -514,4 +514,4 @@ int doc_decode_ecc(unsigned char sector[SECTOR_SIZE], unsigned char ecc1[6])      return nb_errors;  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_DOC) */ +#endif diff --git a/common/env_flash.c b/common/env_flash.c index 1674b30e1..7a37e550d 100644 --- a/common/env_flash.c +++ b/common/env_flash.c @@ -37,10 +37,10 @@  DECLARE_GLOBAL_DATA_PTR; -#if ((CONFIG_COMMANDS&(CFG_CMD_ENV|CFG_CMD_FLASH)) == (CFG_CMD_ENV|CFG_CMD_FLASH)) +#if defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_FLASH)  #define CMD_SAVEENV  #elif defined(CFG_ENV_ADDR_REDUND) -#error Cannot use CFG_ENV_ADDR_REDUND without CFG_CMD_ENV & CFG_CMD_FLASH +#error Cannot use CFG_ENV_ADDR_REDUND without CONFIG_CMD_ENV & CONFIG_CMD_FLASH  #endif  #if defined(CFG_ENV_SIZE_REDUND) && (CFG_ENV_SIZE_REDUND < CFG_ENV_SIZE) diff --git a/common/env_nand.c b/common/env_nand.c index 67c4a4e01..38a07f899 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -39,10 +39,10 @@  #include <malloc.h>  #include <nand.h> -#if ((CONFIG_COMMANDS&(CFG_CMD_ENV|CFG_CMD_NAND)) == (CFG_CMD_ENV|CFG_CMD_NAND)) +#if defined(CONFIG_CMD_ENV) && defined(CONFIG_CMD_NAND)  #define CMD_SAVEENV  #elif defined(CFG_ENV_OFFSET_REDUND) -#error Cannot use CFG_ENV_OFFSET_REDUND without CFG_CMD_ENV & CFG_CMD_NAND +#error Cannot use CFG_ENV_OFFSET_REDUND without CONFIG_CMD_ENV & CONFIG_CMD_NAND  #endif  #if defined(CFG_ENV_SIZE_REDUND) && (CFG_ENV_SIZE_REDUND != CFG_ENV_SIZE) diff --git a/common/exports.c b/common/exports.c index 0cb4396ea..ec4656bfb 100644 --- a/common/exports.c +++ b/common/exports.c @@ -28,12 +28,14 @@ void jumptable_init (void)  	gd->jt[XF_get_timer] = (void *) get_timer;  	gd->jt[XF_simple_strtoul] = (void *) simple_strtoul;  	gd->jt[XF_udelay] = (void *) udelay; +	gd->jt[XF_simple_strtol] = (void *) simple_strtol; +	gd->jt[XF_strcmp] = (void *) strcmp;  #if defined(CONFIG_I386) || defined(CONFIG_PPC)  	gd->jt[XF_install_hdlr] = (void *) irq_install_handler;  	gd->jt[XF_free_hdlr] = (void *) irq_free_handler;  #endif	/* I386 || PPC */ -#if (CONFIG_COMMANDS & CFG_CMD_I2C) +#if defined(CONFIG_CMD_I2C)  	gd->jt[XF_i2c_write] = (void *) i2c_write;  	gd->jt[XF_i2c_read] = (void *) i2c_read; -#endif	/* CFG_CMD_I2C */ +#endif  } diff --git a/common/fdt_support.c b/common/fdt_support.c index 69099c427..caaa682a4 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -37,6 +37,10 @@   */  DECLARE_GLOBAL_DATA_PTR; +/* + * fdt points to our working device tree. + */ +struct fdt_header *fdt;  /********************************************************************/ @@ -45,13 +49,12 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  	bd_t *bd = gd->bd;  	int   nodeoffset;  	int   err; -	u32   tmp;			/* used to set 32 bit integer properties */ -	char  *str;			/* used to set string properties */ -	ulong clock; +	u32   tmp;		/* used to set 32 bit integer properties */ +	char  *str;		/* used to set string properties */  	err = fdt_check_header(fdt);  	if (err < 0) { -		printf("libfdt: %s\n", fdt_strerror(err)); +		printf("fdt_chosen: %s\n", fdt_strerror(err));  		return err;  	} @@ -63,11 +66,12 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  		err = fdt_num_reservemap(fdt, &used, &total);  		if (err < 0) { -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("fdt_chosen: %s\n", fdt_strerror(err));  			return err;  		}  		if (used >= total) { -			printf("fdt_chosen: no room in the reserved map (%d of %d)\n", +			printf("WARNING: " +				"no room in the reserved map (%d of %d)\n",  				used, total);  			return -1;  		} @@ -84,7 +88,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  		err = fdt_replace_reservemap_entry(fdt, j,  			initrd_start, initrd_end - initrd_start + 1);  		if (err < 0) { -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("fdt_chosen: %s\n", fdt_strerror(err));  			return err;  		}  	} @@ -92,7 +96,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  	/*  	 * Find the "chosen" node.  	 */ -	nodeoffset = fdt_path_offset (fdt, "/chosen"); +	nodeoffset = fdt_find_node_by_path (fdt, "/chosen");  	/*  	 * If we have a "chosen" node already the "force the writing" @@ -110,7 +114,8 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  		 */  		nodeoffset = fdt_add_subnode(fdt, 0, "chosen");  		if (nodeoffset < 0) { -			printf("libfdt: %s\n", fdt_strerror(nodeoffset)); +			printf("WARNING: could not create /chosen %s.\n", +				fdt_strerror(nodeoffset));  			return nodeoffset;  		}  	} @@ -120,42 +125,35 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)  	 */  	str = getenv("bootargs");  	if (str != NULL) { -		err = fdt_setprop(fdt, nodeoffset, "bootargs", str, strlen(str)+1); +		err = fdt_setprop(fdt, nodeoffset, +			"bootargs", str, strlen(str)+1);  		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("WARNING: could not set bootargs %s.\n", +				fdt_strerror(err));  	}  	if (initrd_start && initrd_end) {  		tmp = __cpu_to_be32(initrd_start); -		err = fdt_setprop(fdt, nodeoffset, "linux,initrd-start", &tmp, sizeof(tmp)); +		err = fdt_setprop(fdt, nodeoffset, +			 "linux,initrd-start", &tmp, sizeof(tmp));  		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("WARNING: " +				"could not set linux,initrd-start %s.\n", +				fdt_strerror(err));  		tmp = __cpu_to_be32(initrd_end); -		err = fdt_setprop(fdt, nodeoffset, "linux,initrd-end", &tmp, sizeof(tmp)); +		err = fdt_setprop(fdt, nodeoffset, +			"linux,initrd-end", &tmp, sizeof(tmp));  		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("WARNING: could not set linux,initrd-end %s.\n", +				fdt_strerror(err));  	}  #ifdef OF_STDOUT_PATH -	err = fdt_setprop(fdt, nodeoffset, "linux,stdout-path", OF_STDOUT_PATH, strlen(OF_STDOUT_PATH)+1); +	err = fdt_setprop(fdt, nodeoffset, +		"linux,stdout-path", OF_STDOUT_PATH, strlen(OF_STDOUT_PATH)+1);  	if (err < 0) -		printf("libfdt: %s\n", fdt_strerror(err)); +		printf("WARNING: could not set linux,stdout-path %s.\n", +			fdt_strerror(err));  #endif -	nodeoffset = fdt_path_offset (fdt, "/cpus"); -	if (nodeoffset >= 0) { -		clock = cpu_to_be32(bd->bi_intfreq); -		err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4); -		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); -	} -#ifdef OF_TBCLK -	nodeoffset = fdt_path_offset (fdt, "/cpus/" OF_CPU "/timebase-frequency"); -	if (nodeoffset >= 0) { -		clock = cpu_to_be32(OF_TBCLK); -		err = fdt_setprop(fdt, nodeoffset, "clock-frequency", &clock, 4); -		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); -	} -#endif  	return err;  } @@ -177,7 +175,7 @@ int fdt_env(void *fdt)  	err = fdt_check_header(fdt);  	if (err < 0) { -		printf("libfdt: %s\n", fdt_strerror(err)); +		printf("fdt_env: %s\n", fdt_strerror(err));  		return err;  	} @@ -185,11 +183,11 @@ int fdt_env(void *fdt)  	 * See if we already have a "u-boot-env" node, delete it if so.  	 * Then create a new empty node.  	 */ -	nodeoffset = fdt_path_offset (fdt, "/u-boot-env"); +	nodeoffset = fdt_find_node_by_path (fdt, "/u-boot-env");  	if (nodeoffset >= 0) {  		err = fdt_del_node(fdt, nodeoffset);  		if (err < 0) { -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("fdt_env: %s\n", fdt_strerror(err));  			return err;  		}  	} @@ -198,7 +196,8 @@ int fdt_env(void *fdt)  	 */  	nodeoffset = fdt_add_subnode(fdt, 0, "u-boot-env");  	if (nodeoffset < 0) { -		printf("libfdt: %s\n", fdt_strerror(nodeoffset)); +		printf("WARNING: could not create /u-boot-env %s.\n", +			fdt_strerror(nodeoffset));  		return nodeoffset;  	} @@ -226,7 +225,8 @@ int fdt_env(void *fdt)  			continue;  		err = fdt_setprop(fdt, nodeoffset, lval, rval, strlen(rval)+1);  		if (err < 0) { -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("WARNING: could not set %s %s.\n", +				lval, fdt_strerror(err));  			return err;  		}  	} @@ -292,12 +292,12 @@ int fdt_bd_t(void *fdt)  	bd_t *bd = gd->bd;  	int   nodeoffset;  	int   err; -	u32   tmp;			/* used to set 32 bit integer properties */ +	u32   tmp;		/* used to set 32 bit integer properties */  	int i;  	err = fdt_check_header(fdt);  	if (err < 0) { -		printf("libfdt: %s\n", fdt_strerror(err)); +		printf("fdt_bd_t: %s\n", fdt_strerror(err));  		return err;  	} @@ -305,11 +305,11 @@ int fdt_bd_t(void *fdt)  	 * See if we already have a "bd_t" node, delete it if so.  	 * Then create a new empty node.  	 */ -	nodeoffset = fdt_path_offset (fdt, "/bd_t"); +	nodeoffset = fdt_find_node_by_path (fdt, "/bd_t");  	if (nodeoffset >= 0) {  		err = fdt_del_node(fdt, nodeoffset);  		if (err < 0) { -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("fdt_bd_t: %s\n", fdt_strerror(err));  			return err;  		}  	} @@ -318,7 +318,9 @@ int fdt_bd_t(void *fdt)  	 */  	nodeoffset = fdt_add_subnode(fdt, 0, "bd_t");  	if (nodeoffset < 0) { -		printf("libfdt: %s\n", fdt_strerror(nodeoffset)); +		printf("WARNING: could not create /bd_t %s.\n", +			fdt_strerror(nodeoffset)); +		printf("fdt_bd_t: %s\n", fdt_strerror(nodeoffset));  		return nodeoffset;  	}  	/* @@ -326,20 +328,23 @@ int fdt_bd_t(void *fdt)  	 */  	for (i = 0; i < sizeof(bd_map)/sizeof(bd_map[0]); i++) {  		tmp = cpu_to_be32(getenv("bootargs")); -		err = fdt_setprop(fdt, nodeoffset, bd_map[i].name, &tmp, sizeof(tmp)); +		err = fdt_setprop(fdt, nodeoffset, +			bd_map[i].name, &tmp, sizeof(tmp));  		if (err < 0) -			printf("libfdt: %s\n", fdt_strerror(err)); +			printf("WARNING: could not set %s %s.\n", +				bd_map[i].name, fdt_strerror(err));  	}  	/*  	 * Add a couple of oddball entries...  	 */  	err = fdt_setprop(fdt, nodeoffset, "enetaddr", &bd->bi_enetaddr, 6);  	if (err < 0) -		printf("libfdt: %s\n", fdt_strerror(err)); +		printf("WARNING: could not set enetaddr %s.\n", +			fdt_strerror(err));  	err = fdt_setprop(fdt, nodeoffset, "ethspeed", &bd->bi_ethspeed, 4);  	if (err < 0) -		printf("libfdt: %s\n", fdt_strerror(err)); - +		printf("WARNING: could not set ethspeed %s.\n", +			fdt_strerror(err));  	return 0;  }  #endif /* ifdef CONFIG_OF_HAS_BD_T */ diff --git a/common/flash.c b/common/flash.c index a64bc9852..888ff9c67 100644 --- a/common/flash.c +++ b/common/flash.c @@ -47,16 +47,16 @@ flash_protect (int flag, ulong from, ulong to, flash_info_t *info)  	short s_end = info->sector_count - 1;	/* index of last sector */  	int i; -	debug ("flash_protect %s: from 0x%08lX to 0x%08lX\n", -		(flag & FLAG_PROTECT_SET) ? "ON" : -			(flag & FLAG_PROTECT_CLEAR) ? "OFF" : "???", -		from, to); -  	/* Do nothing if input data is bad. */  	if (info->sector_count == 0 || info->size == 0 || to < from) {  		return;  	} +	debug ("flash_protect %s: from 0x%08lX to 0x%08lX\n", +		(flag & FLAG_PROTECT_SET) ? "ON" : +			(flag & FLAG_PROTECT_CLEAR) ? "OFF" : "???", +		from, to); +  	/* There is nothing to do if we have no data about the flash  	 * or the protect range and flash range don't overlap.  	 */ diff --git a/common/hush.c b/common/hush.c index feb5627ff..582635c04 100644 --- a/common/hush.c +++ b/common/hush.c @@ -1682,7 +1682,7 @@ static int run_pipe_real(struct pipe *pi)  				return -1;	/* give up after bad command */  			} else {  				int rcode; -#if (CONFIG_COMMANDS & CFG_CMD_BOOTD) +#if defined(CONFIG_CMD_BOOTD)  	    extern int do_bootd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);  				/* avoid "bootd" recursion */ @@ -1694,7 +1694,7 @@ static int run_pipe_real(struct pipe *pi)  				else  					flag |= CMD_FLAG_BOOTD;  				} -#endif	/* CFG_CMD_BOOTD */ +#endif  				/* found - check max args */  				if ((child->argc - i) > cmdtp->maxargs) {  					printf ("Usage:\n%s\n", cmdtp->usage); diff --git a/common/kgdb.c b/common/kgdb.c index 6de6ec99a..1d346699a 100644 --- a/common/kgdb.c +++ b/common/kgdb.c @@ -92,7 +92,7 @@  #include <kgdb.h>  #include <command.h> -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  #undef KGDB_DEBUG @@ -591,4 +591,4 @@ U_BOOT_CMD(  int kgdb_not_configured = 1; -#endif /* CFG_CMD_KGDB */ +#endif diff --git a/common/lcd.c b/common/lcd.c index eaed2abd8..914dc2ef7 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -571,7 +571,7 @@ void bitmap_plot (int x, int y)  #endif /* CONFIG_LCD_LOGO */  /*----------------------------------------------------------------------*/ -#if (CONFIG_COMMANDS & CFG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN) +#if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)  /*   * Display the BMP file located at address bmp_image.   * Only uncompressed. @@ -700,7 +700,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)  	return (0);  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) || CONFIG_SPLASH_SCREEN */ +#endif  static void *lcd_logo (void) diff --git a/common/main.c b/common/main.c index 000686d85..379695cc4 100644 --- a/common/main.c +++ b/common/main.c @@ -1317,7 +1317,7 @@ int run_command (const char *cmd, int flag)  			continue;  		} -#if (CONFIG_COMMANDS & CFG_CMD_BOOTD) +#if defined(CONFIG_CMD_BOOTD)  		/* avoid "bootd" recursion */  		if (cmdtp->cmd == do_bootd) {  #ifdef DEBUG_PARSER @@ -1331,7 +1331,7 @@ int run_command (const char *cmd, int flag)  				flag |= CMD_FLAG_BOOTD;  			}  		} -#endif	/* CFG_CMD_BOOTD */ +#endif  		/* OK - call function to do the command */  		if ((cmdtp->cmd) (cmdtp, flag, argc, argv) != 0) { @@ -1350,7 +1350,7 @@ int run_command (const char *cmd, int flag)  /****************************************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_RUN) +#if defined(CONFIG_CMD_RUN)  int do_run (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  {  	int i; @@ -1378,4 +1378,4 @@ int do_run (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	}  	return 0;  } -#endif	/* CFG_CMD_RUN */ +#endif diff --git a/common/miiphyutil.c b/common/miiphyutil.c index e411e573c..c69501fed 100644 --- a/common/miiphyutil.c +++ b/common/miiphyutil.c @@ -29,7 +29,7 @@  #include <common.h>  #include <miiphy.h> -#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) +#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)  #include <asm/types.h>  #include <linux/list.h>  #include <malloc.h> @@ -470,4 +470,4 @@ int miiphy_link (char *devname, unsigned char addr)  }  #endif -#endif /* CONFIG_MII || (CONFIG_COMMANDS & CFG_CMD_MII) */ +#endif /* CONFIG_MII */ diff --git a/common/soft_i2c.c b/common/soft_i2c.c index 0f6e3a938..c5d7e205e 100644 --- a/common/soft_i2c.c +++ b/common/soft_i2c.c @@ -29,7 +29,7 @@  #ifdef	CONFIG_MPC8260			/* only valid for MPC8260 */  #include <ioports.h>  #endif -#ifdef CONFIG_AT91RM9200DK		/* need this for the at91rm9200dk */ +#ifdef	CONFIG_AT91RM9200		/* need this for the at91rm9200 */  #include <asm/io.h>  #include <asm/arch/hardware.h>  #endif diff --git a/common/soft_spi.c b/common/soft_spi.c index 00a57de8a..e4250616c 100644 --- a/common/soft_spi.c +++ b/common/soft_spi.c @@ -79,7 +79,9 @@ void spi_init (void)   */  int  spi_xfer(spi_chipsel_type chipsel, int bitlen, uchar *dout, uchar *din)  { +#ifdef CFG_IMMR  	volatile immap_t *immr = (immap_t *)CFG_IMMR; +#endif  	uchar tmpdin  = 0;  	uchar tmpdout = 0;  	int   j; diff --git a/common/usb.c b/common/usb.c index 0857494b2..933afa9e7 100644 --- a/common/usb.c +++ b/common/usb.c @@ -49,7 +49,7 @@  #include <asm/processor.h>  #include <linux/ctype.h> -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  #include <usb.h>  #ifdef CONFIG_4xx @@ -1247,6 +1247,6 @@ int usb_hub_probe(struct usb_device *dev, int ifnum)  	return ret;  } -#endif /* (CONFIG_COMMANDS & CFG_CMD_USB) */ +#endif  /* EOF */ diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 56c21660f..aec558ad2 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -129,7 +129,11 @@ static int usb_kbd_testc(void)  static int usb_kbd_getc(void)  {  	char c; -	while(usb_in_pointer==usb_out_pointer); +	while(usb_in_pointer==usb_out_pointer) { +#ifdef CFG_USB_EVENT_POLL +		usb_event_poll(); +#endif +	}  	if((usb_out_pointer+1)==USB_KBD_BUFFER_LEN)  		usb_out_pointer=0;  	else diff --git a/common/usb_storage.c b/common/usb_storage.c index 196ceb735..0f79f367c 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -55,7 +55,7 @@  #include <asm/processor.h> -#if (CONFIG_COMMANDS & CFG_CMD_USB) +#if defined(CONFIG_CMD_USB)  #include <part.h>  #include <usb.h> @@ -1249,4 +1249,4 @@ int usb_stor_get_info(struct usb_device *dev,struct us_data *ss,block_dev_desc_t  }  #endif /* CONFIG_USB_STORAGE */ -#endif /* CFG_CMD_USB */ +#endif |