All of lore.kernel.org
 help / color / mirror / Atom feed
* Help to understand error messages (MTD on Samsung NAND chips)
@ 2003-07-15 16:39 llandre
  2003-07-15 17:45 ` Thomas Gleixner
  0 siblings, 1 reply; 6+ messages in thread
From: llandre @ 2003-07-15 16:39 UTC (permalink / raw)
  To: linux-mtd

Hi all,

I've just intalled MTD on a Linux box equipped with the 2.4.21-pre5 kernel 
of the linuxppc_devel tree.
I have two NAND Flashes from Samsung (K9F5608U0B). I followed the 
istructions described in the "nand.html" documend released with the MTD 
source files. I statically linked the MTD drivers and the two chips are 
recognized correctly during boot:
----------------------------------------------------------------------------
NAND device: Manufacture ID: 0xec, Chip ID: 0x75 (Samsung NAND 32MB 3,3V)
Using static partition definition
Creating 1 MTD partitions on "NAND 32MB 3,3V":
0x00000000-0x02000000 : "PPChameleon Nand Flash"
mtd: Giving out device 0 to PPChameleon Nand Flash
NAND device: Manufacture ID: 0xec, Chip ID: 0x75 (Samsung NAND 32MB 3,3V)
Using static partition definition
Creating 1 MTD partitions on "NAND 32MB 3,3V":
0x00000000-0x02000000 : "PPChameleonEVB Nand Flash"
mtd: Giving out device 1 to PPChameleonEVB Nand Flash
----------------------------------------------------------------------------


When I try to erase the first one, I get these messages:
----------------------------------------------------------------------------
bash-2.05# eraseall /dev/mtd0
Erasing 16 Kibyte @ 0 --  0 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 4000 --  0 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 8000 --  0 % complete.
...
Erasing 16 Kibyte @ 158000 --  4 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 15c000 --  4 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 160000 --  4 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 164000 --  4 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 168000 --  4 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erased 32768 Kibyte @ 0 -- 100% complete.
bash-2.05#
----------------------------------------------------------------------------


Anybody can explain me the meaning of error messages?
Why do they occur only on the lowest addresses?


Many thanks in advance.


llandre

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

* Re: Help to understand error messages (MTD on Samsung NAND chips)
  2003-07-15 16:39 Help to understand error messages (MTD on Samsung NAND chips) llandre
@ 2003-07-15 17:45 ` Thomas Gleixner
  2003-07-16  8:51   ` llandre
  2003-07-31 16:16   ` llandre
  0 siblings, 2 replies; 6+ messages in thread
From: Thomas Gleixner @ 2003-07-15 17:45 UTC (permalink / raw)
  To: llandre, linux-mtd

On Tuesday 15 July 2003 18:39, llandre wrote:
> Hi all,
>
>- bash-2.05# eraseall /dev/mtd0
> Erasing 16 Kibyte @ 0 --  0 % complete.
> eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> Erasing 16 Kibyte @ 4000 --  0 % complete.
> eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> Erasing 16 Kibyte @ 8000 --  0 % complete.

This message comes either, if you try to erase a bad block, which is not 
likely, as all your blocks would be bad or the erasefunction is not 
successful

Do you use the latest CVS code ?
If yes, there were a lot of changes in NAND the last few days. 

Can you switch on the debugging in MTD and provide more detailed information. 
Please do a 
echo 9 >/proc/sys/kernel/printk 
before you start the erase .

-- 
Thomas
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail: tglx@linutronix.de

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

* Re: Help to understand error messages (MTD on Samsung NAND chips)
  2003-07-15 17:45 ` Thomas Gleixner
@ 2003-07-16  8:51   ` llandre
  2003-07-16 22:34     ` David Woodhouse
  2003-07-31 16:16   ` llandre
  1 sibling, 1 reply; 6+ messages in thread
From: llandre @ 2003-07-16  8:51 UTC (permalink / raw)
  To: tglx; +Cc: linux-mtd


> >- bash-2.05# eraseall /dev/mtd0
> > Erasing 16 Kibyte @ 0 --  0 % complete.
> > eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> > Erasing 16 Kibyte @ 4000 --  0 % complete.
> > eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> > Erasing 16 Kibyte @ 8000 --  0 % complete.
>
>This message comes either, if you try to erase a bad block, which is not
>likely, as all your blocks would be bad or the erasefunction is not
>successful
>
>Do you use the latest CVS code ?
>If yes, there were a lot of changes in NAND the last few days.

Hi Thomas,

thanks for your quick response. I downloaded and applied the latest 
snapshot (2003-07-15) but, after that, I can't build my own low-level 
driver, derived it from Marius Gröger's edb7312.c, anymore :-(
I have a very strange error about the __init end __exit keywords?!?!
Besides, I had a look at the new MTD's sources and I saw that some 
functions changed the formal parameteres (for example nand_scan).
Here is the errors:

make[4]: Entering directory 
`/Progetti/chameleon/sw/linuxppc_2_4_devel/drivers/mtd/nand'
ppc-linux-gcc -D__KERNEL__ 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/include 
-I/usr/local/eldk/ppc_4xx/usr/lib/gcc-lib/ppc-linux/2.95.4/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -g -fno-schedule-insns -fno-schedule-insns2 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/arch/ppc -fsigned-char 
-msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring 
-Wa,-m405   -nostdinc -iwithprefix include 
-DKBUILD_BASENAME=nand  -DEXPORT_SYMTAB -c nand.c
ppc-linux-gcc -D__KERNEL__ 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/include 
-I/usr/local/eldk/ppc_4xx/usr/lib/gcc-lib/ppc-linux/2.95.4/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -g -fno-schedule-insns -fno-schedule-insns2 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/arch/ppc -fsigned-char 
-msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring 
-Wa,-m405   -nostdinc -iwithprefix include 
-DKBUILD_BASENAME=nand_ecc  -DEXPORT_SYMTAB -c nand_ecc.c
ppc-linux-gcc -D__KERNEL__ 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/include 
-I/usr/local/eldk/ppc_4xx/usr/lib/gcc-lib/ppc-linux/2.95.4/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -g -fno-schedule-insns -fno-schedule-insns2 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/arch/ppc -fsigned-char 
-msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring 
-Wa,-m405   -nostdinc -iwithprefix include 
-DKBUILD_BASENAME=nand_ids  -DEXPORT_SYMTAB -c nand_ids.c
ppc-linux-gcc -D__KERNEL__ 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/include 
-I/usr/local/eldk/ppc_4xx/usr/lib/gcc-lib/ppc-linux/2.95.4/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -g -fno-schedule-insns -fno-schedule-insns2 
-I/Progetti/chameleon/sw/linuxppc_2_4_devel/arch/ppc -fsigned-char 
-msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring 
-Wa,-m405   -nostdinc -iwithprefix include 
-DKBUILD_BASENAME=ppchameleon  -c -o ppchameleon.o ppchameleon.c
ppchameleon.c:146: parse error before `ppchameleon_init'
ppchameleon.c:147: warning: return-type defaults to `int'
ppchameleon.c: In function `ppchameleon_init':
ppchameleon.c:192: warning: assignment from incompatible pointer type
ppchameleon.c:199: too few arguments to function `nand_scan'
ppchameleon.c:215: structure has no member named `data_cache'
ppchameleon.c:216: structure has no member named `data_cache'
ppchameleon.c:223: structure has no member named `cache_page'
ppchameleon.c: At top level:
ppchameleon.c:249: warning: type defaults to `int' in declaration of 
`module_init'
ppchameleon.c:249: warning: parameter names (without types) in function 
declaration
ppchameleon.c:249: warning: data definition has no type or storage class
ppchameleon.c:254: parse error before `ppchameleon_cleanup'
ppchameleon.c:255: warning: return-type defaults to `int'
ppchameleon.c: In function `ppchameleon_cleanup':
ppchameleon.c:267: structure has no member named `data_cache'
ppchameleon.c:271: warning: control reaches end of non-void function
ppchameleon.c: At top level:
ppchameleon.c:272: warning: type defaults to `int' in declaration of 
`module_exit'
ppchameleon.c:272: warning: parameter names (without types) in function 
declaration
ppchameleon.c:272: warning: data definition has no type or storage class
ppchameleon.c:139: warning: `ppchameleon_device_ready' defined but not used
make[4]: *** [ppchameleon.o] Error 1
make[4]: Leaving directory 
`/Progetti/chameleon/sw/linuxppc_2_4_devel/drivers/mtd/nand'
make[3]: *** [first_rule] Error 2
make[3]: Leaving directory 
`/Progetti/chameleon/sw/linuxppc_2_4_devel/drivers/mtd/nand'
make[2]: *** [_subdir_nand] Error 2
make[2]: Leaving directory 
`/Progetti/chameleon/sw/linuxppc_2_4_devel/drivers/mtd'
make[1]: *** [_subdir_mtd] Error 2
make[1]: Leaving directory `/Progetti/chameleon/sw/linuxppc_2_4_devel/drivers'
make: *** [_dir_drivers] Error 2


Any suggestions?


Best regards,

llandre

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

* Re: Help to understand error messages (MTD on Samsung NAND chips)
  2003-07-16  8:51   ` llandre
@ 2003-07-16 22:34     ` David Woodhouse
  0 siblings, 0 replies; 6+ messages in thread
From: David Woodhouse @ 2003-07-16 22:34 UTC (permalink / raw)
  To: llandre; +Cc: tglx, linux-mtd

On Wed, 2003-07-16 at 09:51, llandre wrote:
> thanks for your quick response. I downloaded and applied the latest 
> snapshot (2003-07-15) but, after that, I can't build my own low-level 
> driver, derived it from Marius Gröger's edb7312.c, anymore :-(

I changed a lot of stuff in the nand drivers. In drivers/mtd/nand, run
the command: cvs diff -up -D "last month" edb7312.c

> I have a very strange error about the __init end __exit keywords?!?!

#include <linux/init.h>

> Besides, I had a look at the new MTD's sources and I saw that some 
> functions changed the formal parameteres (for example nand_scan).

Add the extra 'struct mtd_info *' argument to your own methods; you can
ignore it if you want. Pass '1' as the second argument to nand_scan()
since you only have one chip there.

-- 
dwmw2

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

* Re: Help to understand error messages (MTD on Samsung NAND chips)
  2003-07-15 17:45 ` Thomas Gleixner
  2003-07-16  8:51   ` llandre
@ 2003-07-31 16:16   ` llandre
  2003-07-31 18:56     ` Thomas Gleixner
  1 sibling, 1 reply; 6+ messages in thread
From: llandre @ 2003-07-31 16:16 UTC (permalink / raw)
  To: tglx, linux-mtd


> >- bash-2.05# eraseall /dev/mtd0
> > Erasing 16 Kibyte @ 0 --  0 % complete.
> > eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> > Erasing 16 Kibyte @ 4000 --  0 % complete.
> > eraseall: /dev/mtd0: MTD Erase failure: Input/output error
> > Erasing 16 Kibyte @ 8000 --  0 % complete.
>
>This message comes either, if you try to erase a bad block, which is not
>likely, as all your blocks would be bad or the erasefunction is not
>successful
>
>Do you use the latest CVS code ?
>If yes, there were a lot of changes in NAND the last few days.
>
>Can you switch on the debugging in MTD and provide more detailed information.
>Please do a
>echo 9 >/proc/sys/kernel/printk
>before you start the erase .

Hi Thomas,

sorry for this late response, but I had to work for a couple of weeks on 
another project.

Anyway I restored the original source files included in the kernel and I 
collected the debug information printed during the execution of the 
eraseall command.
Here is a short dump of what I got:

---------------------------------------------------------------------------------------
bash-2.05# echo 9 >/proc/sys/kernel/printk
bash-2.05# eraseall /dev/mtd0
MTD_open
MTD_ioctl
Erasing 16 KibyMTD_ioctl
te @ 0 --  0 % cnand_erase: start = 0x00000000, len = 16384
omplete.nand_erase: attempt to erase a bad block at page 0x00000000

MTD_ioctl
eraseall: /dev/mnand_erase: start = 0x00004000, len = 16384
td0: MTD Erase fnand_erase: attempt to erase a bad block at page 0x00000020
ailure: Input/ouMTD_ioctl
tput error
Eranand_erase: start = 0x00008000, len = 16384
sing 16 Kibyte @nand_erase: attempt to erase a bad block at page 0x00000040
  4000 --  0 % coMTD_ioctl
mplete.
erasealnand_erase: start = 0x0000c000, len = 16384
l: /dev/mtd0: MTnand_erase: attempt to erase a bad block at page 0x00000060
D Erase failure:MTD_ioctl
  Input/output ernand_erase: start = 0x00010000, len = 16384
ror
Erasing 16nand_erase: attempt to erase a bad block at page 0x00000080
  Kibyte @ 8000 -MTD_ioctl
-  0 % complete.nand_erase: start = 0x00014000, len = 16384

eraseall: /devnand_erase: attempt to erase a bad block at page 0x000000a0
/mtd0: MTD EraseMTD_ioctl
  failure: Input/nand_erase: start = 0x00018000, len = 16384
output error
Enand_erase: attempt to erase a bad block at page 0x000000c0
rasing 16 KibyteMTD_ioctl
  @ c000 --  0 % nand_erase: start = 0x0001c000, len = 16384
complete.

erasenand_erase: attempt to erase a bad block at page 0x000000e0
all: /dev/mtd0: MTD_ioctl
MTD Erase failurnand_erase: start = 0x00020000, len = 16384
e: Input/output nand_erase: attempt to erase a bad block at page 0x00000100
error
[...]
Erasing 16nand_erase: attempt to erase a bad block at page 0x000008a0
  Kibyte @ 7c000 MTD_ioctl
--  1 % completenand_erase: start = 0x00118000, len = 16384
.
eraseall: /denand_erase: attempt to erase a bad block at page 0x000008c0
v/mtd0: MTD ErasMTD_ioctl
e failure: Inputnand_erase: start = 0x0011c000, len = 16384
/output error
nand_erase: attempt to erase a bad block at page 0x000008e0
Erasing 16 KibytMTD_ioctl
e @ 80000 --  1 nand_erase: start = 0x00120000, len = 16384
% complete.
eranand_erase: attempt to erase a bad block at page 0x00000900
seall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 88000 --  1 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 8c000 --  1 % complete.
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 90000 --  1 % complete.
[...]
eraseall: /dev/mtd0: MTD Erase failure: Input/output error
Erasing 16 Kibyte @ 118000 --  3 % complete.
eraseall: MTD_ioctl
/dev/mtd0: MTD Enand_erase: start = 0x00124000, len = 16384
rase failure: Innand_erase: attempt to erase a bad block at page 0x00000920
put/output errorMTD_ioctl

Erasing 16 Kinand_erase: start = 0x00128000, len = 16384
byte @ 11c000 --nand_erase: attempt to erase a bad block at page 0x00000940
MTD_ioctlplete.

eraseall: /dev/nand_erase: start = 0x0012c000, len = 16384
mtd0: MTD Erase nand_erase: attempt to erase a bad block at page 0x00000960
failure: Input/oMTD_ioctl
utput error
Ernand_erase: start = 0x00130000, len = 16384
asing 16 Kibyte nand_erase: attempt to erase a bad block at page 0x00000980
@ 120000 --  3 %MTD_ioctl
  complete.
erasnand_erase: start = 0x00134000, len = 16384
eall: /dev/mtd0:nand_erase: attempt to erase a bad block at page 0x000009a0
  MTD Erase failuMTD_ioctl
re: Input/outputnand_erase: start = 0x00138000, len = 16384
  error
Erasingnand_erase: attempt to erase a bad block at page 0x000009c0
  16 Kibyte @ 124MTD_ioctl
000 --  3 % compnand_erase: start = 0x0013c000, len = 16384
lete.
eraseall:nand_erase: attempt to erase a bad block at page 0x000009e0
  /dev/mtd0: MTD MTD_ioctl
Erase failure: Inand_erase: start = 0x00140000, len = 16384
nput/output erronand_erase: attempt to erase a bad block at page 0x00000a00
r
Erasing 16 KMTD_ioctl
ibyte @ 128000 -nand_erase: start = 0x00144000, len = 16384
-  3 % complete.nand_erase: attempt to erase a bad block at page 0x00000a20

eraseall: /devMTD_ioctl
/mtd0: MTD Erasenand_erase: start = 0x00148000, len = 16384
  failure: Input/nand_erase: attempt to erase a bad block at page 0x00000a40
output error
EMTD_ioctl
rasing 16 Kibytenand_erase: start = 0x0014c000, len = 16384
  @ 12c000 --  3 nand_erase: attempt to erase a bad block at page 0x00000a60
% complete.
eraMTD_ioctl
seall: /dev/mtd0nand_erase: start = 0x00150000, len = 16384
: MTD Erase failnand_erase: attempt to erase a bad block at page 0x00000a80
ure: Input/outpuMTD_ioctl
t error
Erasinnand_erase: start = 0x00154000, len = 16384
g 16 Kibyte @ 13nand_erase: attempt to erase a bad block at page 0x00000aa0
0000 --  3 % comMTD_ioctl
plete.
eraseallnand_erase: start = 0x00158000, len = 16384
: /dev/mtd0: MTDnand_erase: attempt to erase a bad block at page 0x00000ac0
  Erase failure: MTD_ioctl
Input/output errnand_erase: start = 0x0015c000, len = 16384
or
Erasing 16 nand_erase: attempt to erase a bad block at page 0x00000ae0
Kibyte @ 134000 MTD_ioctl
--  3 % completenand_erase: start = 0x00160000, len = 16384
.
eraseall: /denand_erase: attempt to erase a bad block at page 0x00000b00
v/mtd0: MTD ErasMTD_ioctl
e failure: Inputnand_erase: start = 0x00164000, len = 16384
/output error
nand_erase: attempt to erase a bad block at page 0x00000b20
Erasing 16 KibytMTD_ioctl
e @ 138000 --  3nand_erase: start = 0x00168000, len = 16384
  % complete.
ernand_erase: attempt to erase a bad block at page 0x00000b40
aseall: /dev/mtdMTD_ioctl
0: MTD Erase fainand_erase: start = 0x0016c000, len = 16384
lure: Input/outpMTD_ioctl
ut error
Erasinand_erase: start = 0x00170000, len = 16384
ng 16 Kibyte @ 1MTD_ioctl
3c000 --  3 % conand_erase: start = 0x00174000, len = 16384
mplete.
erasealMTD_ioctl
l: /dev/mtd0: MTnand_erase: start = 0x00178000, len = 16384
D Erase failure:MTD_ioctl
  Input/output ernand_erase: start = 0x0017c000, len = 16384
ror
Erasing 16MTD_ioctl
  Kibyte @ 140000nand_erase: start = 0x00180000, len = 16384
  --  3 % completMTD_ioctl
e.
eraseall: /dnand_erase: start = 0x00184000, len = 16384
ev/mtd0: MTD EraMTD_ioctl
se failure: Inpunand_erase: start = 0x00188000, len = 16384
t/output error
MTD_ioctl
Erasing 16 Kibynand_erase: start = 0x0018c000, len = 16384
te @ 144000 --  MTD_ioctl
3 % complete.
enand_erase: start = 0x00190000, len = 16384
raseall: /dev/mtMTD_ioctl
d0: MTD Erase fanand_erase: start = 0x00194000, len = 16384
ilure: Input/outMTD_ioctl
put error
Erasnand_erase: start = 0x00198000, len = 16384
ing 16 Kibyte @ MTD_ioctl
148000 --  4 % cnand_erase: start = 0x0019c000, len = 16384
omplete.
eraseaMTD_ioctl
ll: /dev/mtd0: Mnand_erase: start = 0x001a0000, len = 16384
TD Erase failureMTD_ioctl
: Input/output enand_erase: start = 0x001a4000, len = 16384
rror
Erasing 1MTD_ioctl
6 Kibyte @ 14c00nand_erase: start = 0x001a8000, len = 16384
0 --  4 % compleMTD_ioctl
te.
eraseall: /nand_erase: start = 0x001ac000, len = 16384
dev/mtd0: MTD ErMTD_ioctl
ase failure: Inpnand_erase: start = 0x001b0000, len = 16384
MTD_ioctl error

Erasing 16 Kibnand_erase: start = 0x001b4000, len = 16384
yte @ 150000 -- MTD_ioctl
  4 % complete.
nand_erase: start = 0x001b8000, len = 16384
eraseall: /dev/mMTD_ioctl
td0: MTD Erase fnand_erase: start = 0x001bc000, len = 16384
ailure: Input/ouMTD_ioctl
tput error
Eranand_erase: start = 0x001c0000, len = 16384
sing 16 Kibyte @MTD_ioctl
  154000 --  4 % nand_erase: start = 0x001c4000, len = 16384
complete.
eraseMTD_ioctl
all: /dev/mtd0: nand_erase: start = 0x001c8000, len = 16384
MTD Erase failurMTD_ioctl
e: Input/output nand_erase: start = 0x001cc000, len = 16384
error
Erasing MTD_ioctl
16 Kibyte @ 1580nand_erase: start = 0x001d0000, len = 16384
00 --  4 % complMTD_ioctl
ete.
eraseall: nand_erase: start = 0x001d4000, len = 16384
/dev/mtd0: MTD EMTD_ioctl
rase failure: Innand_erase: start = 0x001d8000, len = 16384
put/output errorMTD_ioctl

Erasing 16 Kinand_erase: start = 0x001dc000, len = 16384
byte @ 15c000 --MTD_ioctl
nand_erase: start = 0x001e0000, len = 16384

eraseall: /dev/MTD_ioctl
mtd0: MTD Erase nand_erase: start = 0x001e4000, len = 16384
failure: Input/oMTD_ioctl
utput error
Ernand_erase: start = 0x001e8000, len = 16384
asing 16 Kibyte MTD_ioctl
@ 160000 --  4 %nand_erase: start = 0x001ec000, len = 16384
  complete.
erasMTD_ioctl
eall: /dev/mtd0:nand_erase: start = 0x001f0000, len = 16384
  MTD Erase failuMTD_ioctl
re: Input/outputnand_erase: start = 0x001f4000, len = 16384
  error
ErasingMTD_ioctl
  16 Kibyte @ 164nand_erase: start = 0x001f8000, len = 16384
000 --  4 % compMTD_ioctl
lete.
eraseall:nand_erase: start = 0x001fc000, len = 16384
  /dev/mtd0: MTD MTD_ioctl
Erase failure: Inand_erase: start = 0x00200000, len = 16384
nput/output erroMTD_ioctl
r
Erasing 16 Knand_erase: start = 0x00204000, len = 16384
ibyte @ 168000 -MTD_ioctl
-  4 % complete.nand_erase: start = 0x00208000, len = 16384

eraseall: /devMTD_ioctl
/mtd0: MTD Erasenand_erase: start = 0x0020c000, len = 16384
  failure: Input/MTD_ioctl
output error
Enand_erase: start = 0x00210000, len = 16384
rasing 16 KibyteMTD_ioctl
  @ 16c000 --  4 nand_erase: start = 0x00214000, len = 16384
ErasMTD_ioctl
ing 16 Kibyte @ nand_erase: start = 0x00218000, len = 16384
170000 --  4 % cMTD_ioctl
Erasingnand_erase: start = 0x0021c000, len = 16384
  16 Kibyte @ 174MTD_ioctl
000 --  4 % compnand_erase: start = 0x00220000, len = 16384
Erasing 16MTD_ioctl
  Kibyte @ 178000nand_erase: start = 0x00224000, len = 16384
  --  4 % completMTD_ioctl
Erasing 16 Kinand_erase: start = 0x00228000, len = 16384
byte @ 17c000 --MTD_ioctl
nand_erase: start = 0x0022c000, len = 16384
Erasing 16 KibytMTD_ioctl
e @ 180000 --  4nand_erase: start = 0x00230000, len = 16384
EraMTD_ioctl
sing 16 Kibyte @nand_erase: start = 0x00234000, len = 16384
  184000 --  4 % MTD_ioctl
Erasinnand_erase: start = 0x00238000, len = 16384
g 16 Kibyte @ 18MTD_ioctl
8000 --  4 % comnand_erase: start = 0x0023c000, len = 16384
Erasing 1MTD_ioctl
6 Kibyte @ 18c00nand_erase: start = 0x00240000, len = 16384
0 --  4 % compleMTD_ioctl
Erasing 16 Knand_erase: start = 0x00244000, len = 16384
ibyte @ 190000 -MTD_ioctl
-  4 % complete.nand_erase: start = 0x00248000, len = 16384
Erasing 16 KibyMTD_ioctl
te @ 194000 --  nand_erase: start = 0x0024c000, len = 16384
ErMTD_ioctle.
asing 16 Kibyte nand_erase: start = 0x00250000, len = 16384
@ 198000 --  4 %MTD_ioctl
Erasinand_erase: start = 0x00254000, len = 16384
ng 16 Kibyte @ 1MTD_ioctl
9c000 --  5 % conand_erase: start = 0x00258000, len = 16384
Erasing MTD_ioctl
16 Kibyte @ 1a00nand_erase: start = 0x0025c000, len = 16384
00 --  5 % complMTD_ioctl
Erasing 16 nand_erase: start = 0x00260000, len = 16384
Kibyte @ 1a4000 MTD_ioctl
--  5 % completenand_erase: start = 0x00264000, len = 16384
Erasing 16 KibMTD_ioctl
yte @ 1a8000 -- nand_erase: start = 0x00268000, len = 16384
EMTD_ioctlete.
rasing 16 Kibytenand_erase: start = 0x0026c000, len = 16384
  @ 1ac000 --  5 MTD_ioctl
Erasnand_erase: start = 0x00270000, len = 16384
ing 16 Kibyte @ MTD_ioctl
1b0000 --  5 % cnand_erase: start = 0x00274000, len = 16384
ErasingMTD_ioctl
  16 Kibyte @ 1b4nand_erase: start = 0x00278000, len = 16384
000 --  5 % compMTD_ioctl
Erasing 16nand_erase: start = 0x0027c000, len = 16384
  Kibyte @ 1b8000MTD_ioctl
  --  5 % completnand_erase: start = 0x00280000, len = 16384
Erasing 16 KiMTD_ioctl
byte @ 1bc000 --nand_erase: start = 0x00284000, len = 16384
MTD_ioctlplete.
Erasing 16 Kibytnand_erase: start = 0x00288000, len = 16384
e @ 1c0000 --  5MTD_ioctl
Eranand_erase: start = 0x0028c000, len = 16384
sing 16 Kibyte @MTD_ioctl
  1c4000 --  5 % nand_erase: start = 0x00290000, len = 16384
ErasinMTD_ioctl
g 16 Kibyte @ 1cnand_erase: start = 0x00294000, len = 16384
8000 --  5 % comMTD_ioctl
Erasing 1nand_erase: start = 0x00298000, len = 16384
6 Kibyte @ 1cc00MTD_ioctl
0 --  5 % complenand_erase: start = 0x0029c000, len = 16384
Erasing 16 KMTD_ioctl
ibyte @ 1d0000 -nand_erase: start = 0x002a0000, len = 16384
-  5 % complete.MTD_ioctl
Erasing 16 Kibynand_erase: start = 0x002a4000, len = 16384
te @ 1d4000 --  MTD_ioctl
Ernand_erase: start = 0x002a8000, len = 16384
asing 16 Kibyte MTD_ioctl
@ 1d8000 --  5 %nand_erase: start = 0x002ac000, len = 16384
ErasiMTD_ioctl
ng 16 Kibyte @ 1nand_erase: start = 0x002b0000, len = 16384
dc000 --  5 % coMTD_ioctl
Erasing nand_erase: start = 0x002b4000, len = 16384
16 Kibyte @ 1e00MTD_ioctl
00 --  5 % complnand_erase: start = 0x002b8000, len = 16384
Erasing 16 MTD_ioctl
Kibyte @ 1e4000 nand_erase: start = 0x002bc000, len = 16384
--  5 % completeMTD_ioctl
Erasing 16 Kibnand_erase: start = 0x002c0000, len = 16384
yte @ 1e8000 -- MTD_ioctl
Enand_erase: start = 0x002c4000, len = 16384
rasing 16 KibyteMTD_ioctl
  @ 1ec000 --  6 nand_erase: start = 0x002c8000, len = 16384
ErasMTD_ioctl
ing 16 Kibyte @ nand_erase: start = 0x002cc000, len = 16384
1f0000 --  6 % cMTD_ioctl
Erasingnand_erase: start = 0x002d0000, len = 16384
  16 Kibyte @ 1f4MTD_ioctl
000 --  6 % compnand_erase: start = 0x002d4000, len = 16384
Erasing 16MTD_ioctl
  Kibyte @ 1f8000nand_erase: start = 0x002d8000, len = 16384
  --  6 % completMTD_ioctl
Erasing 16 Kinand_erase: start = 0x002dc000, len = 16384
byte @ 1fc000 --MTD_ioctl
nand_erase: start = 0x002e0000, len = 16384
Erasing 16 KibytMTD_ioctl
e @ 200000 --  6nand_erase: start = 0x002e4000, len = 16384
EraMTD_ioctl
sing 16 Kibyte @nand_erase: start = 0x002e8000, len = 16384
  204000 --  6 % MTD_ioctl
Erasinnand_erase: start = 0x002ec000, len = 16384
g 16 Kibyte @ 20MTD_ioctl
8000 --  6 % comnand_erase: start = 0x002f0000, len = 16384
Erasing 1MTD_ioctl
6 Kibyte @ 20c00nand_erase: start = 0x002f4000, len = 16384
0 --  6 % compleMTD_ioctl
Erasing 16 Knand_erase: start = 0x002f8000, len = 16384
ibyte @ 210000 -MTD_ioctl
-  6 % complete.nand_erase: start = 0x002fc000, len = 16384
Erasing 16 KibyMTD_ioctl
te @ 214000 --  nand_erase: start = 0x00300000, len = 16384
ErMTD_ioctle.
asing 16 Kibyte nand_erase: start = 0x00304000, len = 16384
@ 218000 --  6 %MTD_ioctl
Erasinand_erase: start = 0x00308000, len = 16384
ng 16 Kibyte @ 2MTD_ioctl
1c000 --  6 % conand_erase: start = 0x0030c000, len = 16384
Erasing MTD_ioctl
16 Kibyte @ 2200nand_erase: start = 0x00310000, len = 16384
00 --  6 % complMTD_ioctl
Erasing 16 nand_erase: start = 0x00314000, len = 16384
Kibyte @ 224000 MTD_ioctl
--  6 % completenand_erase: start = 0x00318000, len = 16384
Erasing 16 KibMTD_ioctl
yte @ 228000 -- nand_erase: start = 0x0031c000, len = 16384
EMTD_ioctlete.
rasing 16 Kibytenand_erase: start = 0x00320000, len = 16384
  @ 22c000 --  6 MTD_ioctl
Erasnand_erase: start = 0x00324000, len = 16384
ing 16 Kibyte @ MTD_ioctl
230000 --  6 % cnand_erase: start = 0x00328000, len = 16384
ErasingMTD_ioctl
  16 Kibyte @ 234nand_erase: start = 0x0032c000, len = 16384
000 --  6 % compMTD_ioctl
Erasing 16nand_erase: start = 0x00330000, len = 16384
  Kibyte @ 238000MTD_ioctl
  --  6 % completnand_erase: start = 0x00334000, len = 16384
Erasing 16 KiMTD_ioctl
byte @ 23c000 --nand_erase: start = 0x00338000, len = 16384
MTD_ioctlplete.
Erasing 16 Kibytnand_erase: start = 0x0033c000, len = 16384
e @ 240000 --  7MTD_ioctl
Eranand_erase: start = 0x00340000, len = 16384
sing 16 Kibyte @MTD_ioctl
  244000 --  7 % nand_erase: start = 0x00344000, len = 16384
ErasinMTD_ioctl
g 16 Kibyte @ 24nand_erase: start = 0x00348000, len = 16384
8000 --  7 % comMTD_ioctl
Erasing 1nand_erase: start = 0x0034c000, len = 16384
6 Kibyte @ 24c00MTD_ioctl
0 --  7 % complenand_erase: start = 0x00350000, len = 16384
Erasing 16 KMTD_ioctl
ibyte @ 250000 -nand_erase: start = 0x00354000, len = 16384
-  7 % complete.MTD_ioctl
Erasing 16 Kibynand_erase: start = 0x00358000, len = 16384
te @ 254000 --  MTD_ioctl
Ernand_erase: start = 0x0035c000, len = 16384
asing 16 Kibyte MTD_ioctl
@ 258000 --  7 %nand_erase: start = 0x00360000, len = 16384
ErasiMTD_ioctl
ng 16 Kibyte @ 2nand_erase: start = 0x00364000, len = 16384
5c000 --  7 % coMTD_ioctl
Erasing nand_erase: start = 0x00368000, len = 16384
16 Kibyte @ 2600MTD_ioctl
00 --  7 % complnand_erase: start = 0x0036c000, len = 16384
Erasing 16 MTD_ioctl
Kibyte @ 264000 nand_erase: start = 0x00370000, len = 16384
--  7 % completeMTD_ioctl
Erasing 16 Kibnand_erase: start = 0x00374000, len = 16384
yte @ 268000 -- MTD_ioctl
Enand_erase: start = 0x00378000, len = 16384
rasing 16 KibyteMTD_ioctl
  @ 26c000 --  7 nand_erase: start = 0x0037c000, len = 16384
ErasMTD_ioctl
ing 16 Kibyte @ nand_erase: start = 0x00380000, len = 16384
270000 --  7 % cMTD_ioctl
Erasingnand_erase: start = 0x00384000, len = 16384
  16 Kibyte @ 274MTD_ioctl
000 --  7 % compnand_erase: start = 0x00388000, len = 16384
Erasing 16MTD_ioctl
  Kibyte @ 278000nand_erase: start = 0x0038c000, len = 16384
  --  7 % completMTD_ioctl
Erasing 16 Kinand_erase: start = 0x00390000, len = 16384
byte @ 27c000 --MTD_ioctl
nand_erase: start = 0x00394000, len = 16384
Erasing 16 KibytMTD_ioctl
e @ 280000 --  7nand_erase: start = 0x00398000, len = 16384
EraMTD_ioctl
sing 16 Kibyte @nand_erase: start = 0x0039c000, len = 16384
  284000 --  7 % MTD_ioctl
Erasinnand_erase: start = 0x003a0000, len = 16384
g 16 Kibyte @ 28MTD_ioctl
8000 --  7 % comnand_erase: start = 0x003a4000, len = 16384
Erasing 1MTD_ioctl
6 Kibyte @ 28c00nand_erase: start = 0x003a8000, len = 16384
0 --  7 % compleMTD_ioctl
Erasing 16 Knand_erase: start = 0x003ac000, len = 16384
ibyte @ 290000 -MTD_ioctl
...
Erasing 16MTD_ioctl
  Kibyte @ 1fb400nand_erase: start = 0x01ff8000, len = 16384
0 -- 99 % compleMTD_ioctl
Erasing 16 Knand_erase: start = 0x01ffc000, len = 16384
ibyte @ 1fb8000 MTD_close
-- 99 % completenand_sync: called
Erased 32768 Kibyte @ 0 -- 100% complete.
bash-2.05#
---------------------------------------------------------------------------------------


Hope this helps,

llandre

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

* Re: Help to understand error messages (MTD on Samsung NAND  chips)
  2003-07-31 16:16   ` llandre
@ 2003-07-31 18:56     ` Thomas Gleixner
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Gleixner @ 2003-07-31 18:56 UTC (permalink / raw)
  To: llandre, linux-mtd

On Thursday 31 July 2003 18:16, llandre wrote:
> Hi Thomas,
>
> sorry for this late response, but I had to work for a couple of weeks on
> another project.
>
> Anyway I restored the original source files included in the kernel and I
> collected the debug information printed during the execution of the
> eraseall command.
> Here is a short dump of what I got:
>
> ---------------------------------------------------------------------------
>------------ bash-2.05# echo 9 >/proc/sys/kernel/printk
> bash-2.05# eraseall /dev/mtd0
> MTD_open
> MTD_ioctl
> Erasing 16 KibyMTD_ioctl
> te @ 0 --  0 % cnand_erase: start = 0x00000000, len = 16384
> omplete.nand_erase: attempt to erase a bad block at page 0x00000000

Byte 5 of the OOB area in the first page of the block is != 0xFF. 
That means, that this block is bad. Either it was set by the manufacturer, 
which is possible as NAND chips can contain bad blocks, or JFFS2 / YAFFS do 
it when they recognize a bad block, or you managed it anyhow to write the bad 
block markers. I assume the latter.

Bad blocks may not be erased, as the bad block information may be destroyed 
and you then would use a bad block for storing data.

-- 
Thomas
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail: tglx@linutronix.de

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

end of thread, other threads:[~2003-07-31 18:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-15 16:39 Help to understand error messages (MTD on Samsung NAND chips) llandre
2003-07-15 17:45 ` Thomas Gleixner
2003-07-16  8:51   ` llandre
2003-07-16 22:34     ` David Woodhouse
2003-07-31 16:16   ` llandre
2003-07-31 18:56     ` Thomas Gleixner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.