public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [linux_mtd]bad eraseblock in nandflash when booting linux-2.6.12
@ 2005-07-29  9:40 JianZhang
  2005-07-29 10:23 ` Thomas Gleixner
  0 siblings, 1 reply; 2+ messages in thread
From: JianZhang @ 2005-07-29  9:40 UTC (permalink / raw)
  To: linux mtd

Hi!
     	I am running 2.6.12 on EDB9312 platform, using Samsung nand flash K9F1208UOM. and the GPIO pins connect to nand 
flash's ALE,CLE,NCE,but the BUSY pin is float.so i declared" this->dev_ready = NULL;" in function"int __init ep9312_init (void)".
	Now,it boot with NFS,the kernel can detect the nand flash,but it report there are many "Bad eraseblock",The 
following is part of my booting info:
 	
 	
	NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
	
	NAND_ECC_NONE selected by board driver. This is not recommended !!

	Scanning device for bad blocks

	Bad eraseblock 6 at 0x00018000

	Bad eraseblock 43 at 0x000ac000

	Bad eraseblock 68 at 0x00110000

	Bad eraseblock 101 at 0x00194000

	Bad eraseblock 159 at 0x0027c000

	Bad eraseblock 171 at 0x002ac000
	...
	(maybe the total"bad block" is 160)

	
	Bad eraseblock 3951 at 0x03dbc000

	Bad eraseblock 4011 at 0x03eac000

	Bad eraseblock 4021 at 0x03ed4000

	Bad eraseblock 4048 at 0x03f40000

	Bad eraseblock 4074 at 0x03fa8000

	cmdlinepart partition parsing not available

	sing static partition definition

	reating 1 MTD partitions on "edb9312-nand":

	0x00000000-0x04000000 : "EP9312 Nand Flash"
	...
	/******************************/
	But when i reboot system it report:
	/******************************/
		
	
	NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)

	NAND_ECC_NONE selected by board driver. This is not recommended !!

	Scanning device for bad blocks

	Bad eraseblock 1 at 0x00004000

	Bad eraseblock 12 at 0x00030000

	Bad eraseblock 48 at 0x000c0000

	Bad eraseblock 83 at 0x0014c000

	Bad erasblock 89 at 0x00164000

	Bad eraseblock 110 at 0x001b8000
	...
	
	Bad eraseblock 4046 at 0x03f38000

	Bad eraseblock 4051 at 0x03f4c000

	Bad eraseblock 4079 at 0x03fbc000

	Bad eraseblock 4090 at 0x03fe8000

	/******************************/
	It seem that the location of bad eraseblocks is random in every booting time.
	I want to use flash_eraseall to erase all block,but it  skiped the bad block.so i hacked ../util/flash_eraseall.c
	by comment out the bbttest:
	../util/flash_eraseall.c
	main()
	{
		...
		/***comment out not to check bbt**/
		/*
                if (bbtest) {
                ...
                }
                */
                if (!quiet) {
                ...
	}
	
	compile it and make out flash_eraseall_hack
	/***************************************/
	~#flash_eraseall_hack  -j /dev/mtd5 
	MTD_open

	MTD_ioctl

	MTD_ioctl


	rasing 16 KibyMTD_ioctl

	e @ 0 --  0 % complete.MTD_ioctl

 	leanmarker wriMTD_ioctl

	ten at 0.
	...
	Erasing 16 MTD_ioctl

	ibyte @ 80000 -nand_erase: Failed erase, page 0x00000680

	  0 % complete. Cleanmarker wriMTD_ioctl

	ten at 80000.
	....
	
	/************************************/
	there is a little "Failed erase" in this operation. but also it is random in every time i do flash_eraseall_hack.
	
	Now i don't know the problem is caused by my nand flash device driver or MTD driver.can anybody help me!
	Thanks advanced!
	

			Best Regards, 				
        JianZhang
        JianZhang@SoftHome.net
          2005-07-29

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

* Re: [linux_mtd]bad eraseblock in nandflash when booting linux-2.6.12
  2005-07-29  9:40 [linux_mtd]bad eraseblock in nandflash when booting linux-2.6.12 JianZhang
@ 2005-07-29 10:23 ` Thomas Gleixner
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Gleixner @ 2005-07-29 10:23 UTC (permalink / raw)
  To: JianZhang; +Cc: linux mtd

Please fix your mail client and wrap lines at 76.
Also we really don't need all the empty lines between the information
you want to send us. Reduce the information to the necessary amount to
describe your problem and do not flood us with redundant crap.

On Fri, 2005-07-29 at 17:40 +0800, JianZhang wrote:
> NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
> NAND_ECC_NONE selected by board driver. This is not recommended !!

Use software ECC !

> Scanning device for bad blocks
> Bad eraseblock 6 at 0x00018000
<SNIP>
> Scanning device for bad blocks
> Bad eraseblock 1 at 0x00004000

> It seem that the location of bad eraseblocks is random in every
> booting time.

Yes, it's probably related to timing. Did you set this->chip_delay
correct ? Is the timing of your CPU setup to match the NAND timing
specs ?

> I want to use flash_eraseall to erase all block,but it  skiped the bad
> block.so i hacked ....

What are you trying to solve ? Erase random bad blocks ? Fix the random
read problem first before messing with your FLASH chip. 

I really start to question the quality of engineering schools. Did
nobody ever tell you to solve basic problems first instead of trying to
work around them without even having a clue whats going on ?

> there is a little "Failed erase" in this operation. but also it is
> random in every time i do flash_eraseall_hack.

The kernel refuses to erase bad blocks, even if you remove the check in
flash_erase_all. And I recommend you not to touch that check in the
kernel, unless you exactly know what you are doing.

tglx

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

end of thread, other threads:[~2005-07-29 10:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-29  9:40 [linux_mtd]bad eraseblock in nandflash when booting linux-2.6.12 JianZhang
2005-07-29 10:23 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox