diff options
| -rw-r--r-- | CHANGELOG | 11 | ||||
| -rw-r--r-- | board/at91rm9200dk/at91rm9200dk.c | 10 | ||||
| -rw-r--r-- | board/dave/PPChameleonEVB/PPChameleonEVB.c | 10 | ||||
| -rw-r--r-- | board/esd/ash405/ash405.c | 10 | ||||
| -rw-r--r-- | board/mpl/vcma9/vcma9.c | 9 | ||||
| -rw-r--r-- | board/netvia/netvia.c | 11 | ||||
| -rw-r--r-- | board/sixnet/sixnet.c | 8 | ||||
| -rw-r--r-- | common/cmd_nand.c | 16 | ||||
| -rw-r--r-- | common/usb_storage.c | 4 | ||||
| -rw-r--r-- | cpu/arm920t/usb_ohci.c | 9 | ||||
| -rw-r--r-- | fs/fat/fat.c | 6 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 2 | ||||
| -rw-r--r-- | include/version.h | 2 | ||||
| -rw-r--r-- | lib_arm/board.c | 1 | ||||
| -rw-r--r-- | lib_ppc/board.c | 2 | 
15 files changed, 70 insertions, 41 deletions
| @@ -1,4 +1,15 @@  ====================================================================== +Changes for U-Boot 1.0.0: +====================================================================== + +* Patch by Denis Peter, 11 Sep 2003: +  - fix USB data pointer assignment for bulk only transfer. +  - prevent to display erased directories in FAT filesystem. + +* Change output format for NAND flash - make it look like for other +  memory, too + +======================================================================  Changes for U-Boot 0.4.8:  ====================================================================== diff --git a/board/at91rm9200dk/at91rm9200dk.c b/board/at91rm9200dk/at91rm9200dk.c index ffd9687bf..8a05c5321 100644 --- a/board/at91rm9200dk/at91rm9200dk.c +++ b/board/at91rm9200dk/at91rm9200dk.c @@ -66,7 +66,7 @@ int dram_init (void)   * The NAND lives in the CS2* space   */  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -extern void nand_probe (ulong physadr); +extern ulong nand_probe (ulong physadr);  #define AT91_SMARTMEDIA_BASE 0x40000000	/* physical address to access memory on NCS3 */  void nand_init (void) @@ -103,10 +103,12 @@ void nand_init (void)  	*AT91C_PIOB_ODR = AT91C_PIO_PB1;	/* disable output */  	if (*AT91C_PIOB_PDSR & AT91C_PIO_PB1) -		printf ("No "); -	printf ("SmartMedia card inserted\n"); +		printf ("  No SmartMedia card inserted\n"); +#ifdef DEBUG +	printf ("  SmartMedia card inserted\n");  	printf ("Probing at 0x%.8x\n", AT91_SMARTMEDIA_BASE); -	nand_probe (AT91_SMARTMEDIA_BASE); +#endif +	printf ("%4lu MB\n", nand_probe(AT91_SMARTMEDIA_BASE) >> 20);  }  #endif diff --git a/board/dave/PPChameleonEVB/PPChameleonEVB.c b/board/dave/PPChameleonEVB/PPChameleonEVB.c index d015f69a9..47670fa21 100644 --- a/board/dave/PPChameleonEVB/PPChameleonEVB.c +++ b/board/dave/PPChameleonEVB/PPChameleonEVB.c @@ -255,16 +255,20 @@ int testdram (void)  /* ------------------------------------------------------------------------- */  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -extern void +extern ulong  nand_probe(ulong physadr);  void  nand_init(void)  { +	ulong totlen; +  	debug ("Probing at 0x%.8x\n", CFG_NAND0_BASE); -	nand_probe (CFG_NAND0_BASE); +	totlen = nand_probe (CFG_NAND0_BASE);  	debug ("Probing at 0x%.8x\n", CFG_NAND1_BASE); -	nand_probe (CFG_NAND1_BASE); +	totlen += nand_probe (CFG_NAND1_BASE); + +	printf ("%4lu MB\n", totlen >>20);  }  #endif diff --git a/board/esd/ash405/ash405.c b/board/esd/ash405/ash405.c index 50dbadedd..edca8b28c 100644 --- a/board/esd/ash405/ash405.c +++ b/board/esd/ash405/ash405.c @@ -239,15 +239,11 @@ int testdram (void)  /* ------------------------------------------------------------------------- */  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -#include <linux/mtd/nand.h> -extern struct nand_chip nand_dev_desc[CFG_MAX_NAND_DEVICE];  void nand_init(void)  { -	nand_probe(CFG_NAND_BASE); -	if (nand_dev_desc[0].ChipID != NAND_ChipID_UNKNOWN) { -		puts("NAND:  "); -		print_size(nand_dev_desc[0].totlen, "\n"); -	} +	unsigned long totlen = nand_probe(CFG_NAND_BASE); + +	printf ("%4lu MB\n", totlen >> 20);  }  #endif diff --git a/board/mpl/vcma9/vcma9.c b/board/mpl/vcma9/vcma9.c index 1df5c38fa..359e56576 100644 --- a/board/mpl/vcma9/vcma9.c +++ b/board/mpl/vcma9/vcma9.c @@ -144,7 +144,7 @@ int dram_init(void)   * NAND flash initialization.   */  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -extern void +extern ulong  nand_probe(ulong physadr); @@ -177,10 +177,15 @@ void  nand_init(void)  {  	S3C2410_NAND * const nand = S3C2410_GetBase_NAND(); +	unsigned totlen;  	NF_Init(); +#ifdef DEBUG  	printf("NAND flash probing at 0x%.8lX\n", (ulong)nand); -	nand_probe((ulong)nand); +#endif +	totlen = nand_probe((ulong)nand) >> 20; + +	printf ("%4lu MB\n", totlen >> 20);  }  #endif diff --git a/board/netvia/netvia.c b/board/netvia/netvia.c index 9dd732b3c..db36b228b 100644 --- a/board/netvia/netvia.c +++ b/board/netvia/netvia.c @@ -420,16 +420,13 @@ int board_pre_init(void)  #include <linux/mtd/nand.h> -extern void nand_probe(ulong physadr); +extern ulong nand_probe(ulong physadr);  extern struct nand_chip nand_dev_desc[CFG_MAX_NAND_DEVICE];  void nand_init(void)  { -	nand_probe(CFG_NAND_BASE); -	if (nand_dev_desc[0].ChipID != NAND_ChipID_UNKNOWN) { -		nand_dev_desc[0].name = "NetVia NAND flash"; -		puts("NAND:  "); -		print_size(nand_dev_desc[0].totlen, "\n"); -	} +	unsigned long totlen = nand_probe(CFG_NAND_BASE); + +	printf ("%4lu MB\n", totlen >> 20);  }  #endif diff --git a/board/sixnet/sixnet.c b/board/sixnet/sixnet.c index 4025b4789..63c57c93f 100644 --- a/board/sixnet/sixnet.c +++ b/board/sixnet/sixnet.c @@ -330,11 +330,9 @@ int misc_init_r (void)  #if (CONFIG_COMMANDS & CFG_CMD_NAND)  void nand_init(void)  { -	nand_probe(CFG_DFLASH_BASE);	/* see if any NAND flash present */ -	if (nand_dev_desc[0].ChipID != NAND_ChipID_UNKNOWN) { -		puts("NAND:  "); -		print_size(nand_dev_desc[0].totlen, "\n"); -	} +	unsigned long totlen = nand_probe(CFG_NAND_BASE); + +	printf ("%4lu MB\n", totlen >> 20);  }  #endif diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 60cdd8eb4..0e49e9f08 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -38,7 +38,7 @@ struct nand_oob_config {  	int eccvalid_pos;	/* position of ECC valid flag inside oob -1 = inactive */  } oob_config = { {0}, 0, 0}; -#define	NAND_DEBUG +#undef	NAND_DEBUG  #undef	PSYCHO_DEBUG  /* ****************** WARNING ********************* @@ -734,7 +734,9 @@ static void NanD_ScanChips(struct nand_chip *nand)  	/* If there are none at all that we recognise, bail */  	if (!nand->numchips) { +#ifdef NAND_DEBUG  		puts ("No NAND flash chips recognised.\n"); +#endif  		return;  	} @@ -1408,7 +1410,7 @@ static inline int nandcheck(unsigned long potential, unsigned long physadr)  	return 0;  } -void nand_probe(unsigned long physadr) +unsigned long nand_probe(unsigned long physadr)  {  	struct nand_chip *nand = NULL;  	int i = 0, ChipID = 1; @@ -1434,10 +1436,12 @@ void nand_probe(unsigned long physadr)  	for (i=0; i<CFG_MAX_NAND_DEVICE; i++) {  		if (nand_dev_desc[i].ChipID == NAND_ChipID_UNKNOWN) { -			nand = nand_dev_desc + i; +			nand = &nand_dev_desc[i];  			break;  		}  	} +	if (!nand) +		return (0);  	memset((char *)nand, 0, sizeof(struct nand_chip)); @@ -1449,7 +1453,7 @@ void nand_probe(unsigned long physadr)  		/* no chips found, clean up and quit */  		memset((char *)nand, 0, sizeof(struct nand_chip));  		nand->ChipID = NAND_ChipID_UNKNOWN; -		return; +		return (0);  	}  	nand->ChipID = ChipID; @@ -1459,8 +1463,10 @@ void nand_probe(unsigned long physadr)  	nand->data_buf = malloc (nand->oobblock + nand->oobsize);  	if (!nand->data_buf) {  		puts ("Cannot allocate memory for data structures.\n"); -		return; +		return (0);  	} + +	return (nand->totlen);  }  #ifdef CONFIG_MTD_NAND_ECC diff --git a/common/usb_storage.c b/common/usb_storage.c index 70890361b..f95a1d39b 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -613,7 +613,7 @@ int usb_stor_BBB_transport(ccb *srb, struct us_data *us)  	result = usb_bulk_msg(us->pusb_dev, pipe, srb->pdata, srb->datalen, &data_actlen, USB_CNTL_TIMEOUT*5);  	/* special handling of STALL in DATA phase */  	if((result < 0) && (us->pusb_dev->status & USB_ST_STALLED)) { -		printf("DATA:stall\n"); +		USB_STOR_PRINTF("DATA:stall\n");  		/* clear the STALL on the endpoint */  		result = usb_stor_BBB_clear_endpt_stall(us, dir_in? us->ep_in : us->ep_out);  		if (result >= 0) @@ -1081,8 +1081,8 @@ int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,struct us_data  		ss->irqpipe = usb_rcvintpipe(ss->pusb_dev, ss->ep_int);  		ss->irqmaxp = usb_maxpacket(dev, ss->irqpipe);  		dev->irq_handle=usb_stor_irq; -		dev->privptr=(void *)ss;  	} +	dev->privptr=(void *)ss;  	return 1;  } diff --git a/cpu/arm920t/usb_ohci.c b/cpu/arm920t/usb_ohci.c index 41ba233c4..55af0348d 100644 --- a/cpu/arm920t/usb_ohci.c +++ b/cpu/arm920t/usb_ohci.c @@ -1197,8 +1197,15 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,  	wait_ms(10);  	/* ohci_dump_status(&gohci); */ +	 +	/* allow more time for a BULK device to react - some are slow */ +#define BULK_TO	 2000	/* timeout in milliseconds */ +	if (usb_pipetype (pipe) == PIPE_BULK) +		timeout = BULK_TO; +	else +		timeout = 100; +  	/* wait for it to complete */ -	timeout = 100;  	for (;;) {  		/* check whether the controller is done */  		stat = hc_interrupt(); diff --git a/fs/fat/fat.c b/fs/fat/fat.c index 6a6c5be01..972ef33d0 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -860,9 +860,11 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,  		int doit = 0;  		if (isdir) { -		    dirs++;  		    dirc = '/'; -		    doit = 1; +		    if (s_name[0] != 0) { +			dirs++; +			doit = 1; +		    }  		} else {  		    dirc = ' ';  		    if (s_name[0] != 0) { diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index bb13431dd..af2033c5b 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -193,6 +193,6 @@ struct nand_flash_dev {  #define NAND_JFFS2_OOB8_FSDALEN		2  #define NAND_JFFS2_OOB16_FSDALEN	8 -void nand_probe(unsigned long physadr); +unsigned long nand_probe(unsigned long physadr);  #endif /* __LINUX_MTD_NAND_H */ diff --git a/include/version.h b/include/version.h index f0e19d5bf..ef22f7ac0 100644 --- a/include/version.h +++ b/include/version.h @@ -24,6 +24,6 @@  #ifndef	__VERSION_H__  #define	__VERSION_H__ -#define	U_BOOT_VERSION	"U-Boot 0.4.8" +#define	U_BOOT_VERSION	"U-Boot 1.0.0-pre"  #endif	/* __VERSION_H__ */ diff --git a/lib_arm/board.c b/lib_arm/board.c index eebf5e40d..6e19ddc8c 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -248,6 +248,7 @@ void start_armboot (void)  #endif /* CONFIG_VFD */  #if (CONFIG_COMMANDS & CFG_CMD_NAND) +	puts ("NAND:");  	nand_init();		/* go init the NAND */  #endif diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 6a2686aa3..329bc0a2f 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -865,7 +865,7 @@ void board_init_r (gd_t *id, ulong dest_addr)  #if (CONFIG_COMMANDS & CFG_CMD_NAND)  	WATCHDOG_RESET (); -	puts ("NAND:  "); +	puts ("NAND:");  	nand_init();		/* go init the NAND */  #endif |