diff options
| author | Stefan Roese <sr@denx.de> | 2007-08-15 21:06:27 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2007-08-15 21:06:27 +0200 | 
| commit | b706d63559aeec352bc72dd86d7d5423c15f6a60 (patch) | |
| tree | fdeda4d61970fef239d9d66ecd851fa46cfe5ec0 /common/cmd_nand.c | |
| parent | c8603cfbd4573379a6076c9c208545ba2bbf019a (diff) | |
| parent | 594e79838ce5078a90d0c27abb2b2d61d5f8e8a7 (diff) | |
| download | olio-uboot-2014.01-b706d63559aeec352bc72dd86d7d5423c15f6a60.tar.xz olio-uboot-2014.01-b706d63559aeec352bc72dd86d7d5423c15f6a60.zip | |
Merge with git://www.denx.de/git/u-boot.git
Diffstat (limited to 'common/cmd_nand.c')
| -rw-r--r-- | common/cmd_nand.c | 70 | 
1 files changed, 38 insertions, 32 deletions
| diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 9ef31d456..254a7755f 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -19,24 +19,16 @@   */  #include <common.h> -#if (CONFIG_COMMANDS & CFG_CMD_NAND) +#if defined(CONFIG_CMD_NAND)  #include <command.h>  #include <watchdog.h>  #include <malloc.h>  #include <asm/byteorder.h> - -#ifdef CONFIG_SHOW_BOOT_PROGRESS -# include <status_led.h> -# define SHOW_BOOT_PROGRESS(arg)	show_boot_progress(arg) -#else -# define SHOW_BOOT_PROGRESS(arg) -#endif -  #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); @@ -104,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; @@ -152,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); @@ -503,17 +495,19 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,  	if (r) {  		puts("** Read error\n"); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress (-56);  		return 1;  	} +	show_boot_progress (56);  	hdr = (image_header_t *) addr;  	if (ntohl(hdr->ih_magic) != IH_MAGIC) {  		printf("\n** Bad Magic Number 0x%x **\n", hdr->ih_magic); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress (-57);  		return 1;  	} +	show_boot_progress (57);  	print_image_hdr(hdr); @@ -532,9 +526,10 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,  	if (r) {  		puts("** Read error\n"); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress (-58);  		return 1;  	} +	show_boot_progress (58);  	/* Loading ok, update default load address */ @@ -561,7 +556,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; @@ -586,6 +581,7 @@ int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  	}  #endif +	show_boot_progress(52);  	switch (argc) {  	case 1:  		addr = CFG_LOAD_ADDR; @@ -605,27 +601,30 @@ 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); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress(-53);  		return 1;  	} +	show_boot_progress(53);  	if (!boot_device) {  		puts("\n** No boot device **\n"); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress(-54);  		return 1;  	} +	show_boot_progress(54);  	idx = simple_strtoul(boot_device, NULL, 16);  	if (idx < 0 || idx >= CFG_MAX_NAND_DEVICE || !nand_info[idx].name) {  		printf("\n** Device %d not available\n", idx); -		SHOW_BOOT_PROGRESS(-1); +		show_boot_progress(-55);  		return 1;  	} +	show_boot_progress(55);  	return nand_load_image(cmdtp, &nand_info[idx], offset, addr, argv[0]);  } @@ -634,7 +633,7 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,  	"nboot   - boot from NAND device\n",  	"[.jffs2] [partition] | [[[loadAddr] dev] offset]\n"); -#endif				/* (CONFIG_COMMANDS & CFG_CMD_NAND) */ +#endif  #else /* CFG_NAND_LEGACY */  /* @@ -647,14 +646,14 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,  #include <asm/io.h>  #include <watchdog.h> -#ifdef CONFIG_SHOW_BOOT_PROGRESS +#ifdef CONFIG_show_boot_progress  # include <status_led.h> -# define SHOW_BOOT_PROGRESS(arg)	show_boot_progress(arg) +# define show_boot_progress(arg)	show_boot_progress(arg)  #else -# define SHOW_BOOT_PROGRESS(arg) +# 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> @@ -914,6 +913,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	ulong offset = 0;  	image_header_t *hdr;  	int rcode = 0; +	show_boot_progress (52);  	switch (argc) {  	case 1:  		addr = CFG_LOAD_ADDR; @@ -934,24 +934,27 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		break;  	default:  		printf ("Usage:\n%s\n", cmdtp->usage); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-53);  		return 1;  	} +	show_boot_progress (53);  	if (!boot_device) {  		puts ("\n** No boot device **\n"); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-54);  		return 1;  	} +	show_boot_progress (54);  	dev = simple_strtoul(boot_device, &ep, 16);  	if ((dev >= CFG_MAX_NAND_DEVICE) ||  	    (nand_dev_desc[dev].ChipID == NAND_ChipID_UNKNOWN)) {  		printf ("\n** Device %d not available\n", dev); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-55);  		return 1;  	} +	show_boot_progress (55);  	printf ("\nLoading from device %d: %s at 0x%lx (offset 0x%lx)\n",  		dev, nand_dev_desc[dev].name, nand_dev_desc[dev].IO_ADDR, @@ -960,9 +963,10 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	if (nand_legacy_rw (nand_dev_desc + dev, NANDRW_READ, offset,  			SECTORSIZE, NULL, (u_char *)addr)) {  		printf ("** Read error on %d\n", dev); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-56);  		return 1;  	} +	show_boot_progress (56);  	hdr = (image_header_t *)addr; @@ -974,17 +978,19 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  		cnt -= SECTORSIZE;  	} else {  		printf ("\n** Bad Magic Number 0x%x **\n", ntohl(hdr->ih_magic)); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-57);  		return 1;  	} +	show_boot_progress (57);  	if (nand_legacy_rw (nand_dev_desc + dev, NANDRW_READ,  			offset + SECTORSIZE, cnt, NULL,  			(u_char *)(addr+SECTORSIZE))) {  		printf ("** Read error on %d\n", dev); -		SHOW_BOOT_PROGRESS (-1); +		show_boot_progress (-58);  		return 1;  	} +	show_boot_progress (58);  	/* Loading ok, update default load address */ @@ -1012,6 +1018,6 @@ U_BOOT_CMD(  	"loadAddr dev\n"  ); -#endif /* (CONFIG_COMMANDS & CFG_CMD_NAND) */ +#endif  #endif /* CFG_NAND_LEGACY */ |