public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
[parent not found: <01139FC052A0D411900B00508B9535FC13AC404A@ZCH07EXM04.corp.mot.com>]
* ECC byte 4 and 5 not equal to what have just been writen
@ 2004-04-20  7:35 Shen Aaron-r62966
  2004-04-20  8:24 ` Charles Manning
  2004-04-20  9:18 ` Thomas Gleixner
  0 siblings, 2 replies; 5+ messages in thread
From: Shen Aaron-r62966 @ 2004-04-20  7:35 UTC (permalink / raw)
  To: linux-mtd

Hi,

  Is there anyone aware of such problem about ECC?
  When I read back the OOB data after writing to a page, I find the offset 06 and 07 are not equal to what have just been writen into the page.

  The part of codes are :
==========================================
  ......
  // char spare[16] is for oob data in spare area
  mx2_write_ecc((char*)p, spare, last);		// My function to set the spare[16] before write a page
  printOut("The spare[ ] to write in flash is :\n");	// Messege printed out
  printOut(spare);					// Print out the spare[ ]
  if(NAND_Write_OnePage(page, (char*)p, spare))	// Write the page with spare[ ] into NAND flash
	return;
  NAND_Read_OOB(0, page, spare, 16);		// Read back the oob data into spare[ ]
  printOut("The spare[ ] to read back from flash is :\n");
  printOut(spare);					// Print out the spare[ ]
  ......
===========================================

  While, I got the follow output:
===========================================
......
The spare[ ] to write in flash is :
spare[00] = 56
spare[01] = 5A
spare[02] = 6B
spare[03] = 66
spare[04] = 00
spare[05] = FF
spare[06] = A6
spare[07] = 9B
spare[08] = FF
spare[09] = FF
spare[0A] = FF
spare[0B] = FF
spare[0C] = FF
spare[0D] = FF
spare[0E] = FF
spare[0F] = FF
The spare[ ] to read back from flash is :
spare[00] = 56
spare[01] = 5A
spare[02] = 6B
spare[03] = 66
spare[04] = 00
spare[05] = FF
spare[06] = C0
spare[07] = 33
spare[08] = C3
spare[09] = A9
spare[0A] = 02
spare[0B] = FF
spare[0C] = FF
spare[0D] = FF
spare[0E] = FF
spare[0F] = FF
......
===========================================

  As you may have found out, the spare[0]~spare[5] are the same as writen. But spare[6] and spare[7] are different, while spare[8], spare[9] and spare[A] are so strange.

  This will cause the failure of ecc correction for the upper 256 bytes of data in each page. Can you give me some comments?

  Is this a known problem of NAND_Read_OOB( )?

Thanks.
Aaron

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

end of thread, other threads:[~2004-04-20 10:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <01139FC052A0D411900B00508B9535FC13AC4049@ZCH07EXM04.corp.mot.com>
2004-04-20 10:09 ` ECC byte 4 and 5 not equal to what have just been writen Thomas Gleixner
     [not found] <01139FC052A0D411900B00508B9535FC13AC404A@ZCH07EXM04.corp.mot.com>
2004-04-20 10:47 ` Thomas Gleixner
2004-04-20  7:35 Shen Aaron-r62966
2004-04-20  8:24 ` Charles Manning
2004-04-20  9:18 ` Thomas Gleixner

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