Fix NAND erase progress error
Subsystems (2)
PATCH 1/1 Fix NAND erase progress error
This patch fixes an error when reporting the NAND erase progress as in this example:
U-Boot > nand erase 0000 800
NAND erase: device 0 offset 0x0, size 0x800 Erasing at 0x0 -- 6400% complete.
---
drivers/mtd/nand/nand_util.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)
drivers/mtd/nand/nand_util.c +8 -3
@@ -209,10 +209,15 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts) }if (!opts->quiet) { -unsigned long long n =(unsigned long long ) - (erase.addr + meminfo->erasesize - opts->offset) - *100 ; +unsigned long long n;int percent; +size_t erased_size = erase.addr - opts->offset + meminfo->erasesize; + +if (erased_size > erase_length) { + erased_size = erase_length; + } + + n = (unsigned long long ) erased_size *100 ;do_div (n, erase_length); percent = (int )n;
PATCH 1/1 Fix NAND erase progress error
Quoted 5 lines · Hugo Villeneuve
This patch fixes an error when reporting the NAND erase progress as in this example:
U-Boot > nand erase 0000 800
NAND erase: device 0 offset0x0, size0x800Erasing at0x0-- 6400% complete.
So the problem is when trying to erase less than an erase block boundary? That should be an error.
The mtd-2.6.22.1 branch emits a warning and increases the length to be erased if it's less than one block, but that's still wrong as it won't deal with unaligned lengths that are greater than one blocksize, and more importantly because it's rather dangerous to erase more than was asked for without the user having the ability to stop it after the warning is printed.
-Scott
PATCH 1/1 Fix NAND erase progress error
Quoted 8 lines · Scott Wood
Quoted 4 lines · Hugo Villeneuve
This patch fixes an error when reporting the NAND erase progress as
in this example: U-Boot > nand erase 0000 800
NAND erase: device 0 offset0x0, size0x800
Erasing at0x0-- 6400% complete.So the problem is when trying to erase less than an erase block boundary?
The problem seems to be present if the requested erase size is not an exact multiple of the block size.
Quoted 1 line
That should be an error.
What should be an error, the fact that 6400% is displayed, or the fact that the user is trying to erase less than a block? :)
Quoted 6 lines
The mtd-2.6.22.1 branch emits a warning and increases the length to be erased if it's less than one block, but that's still wrong as it won't deal with unaligned lengths that are greater than one blocksize, and more importantly because it's rather dangerous to erase more than was asked for without the user having the ability to stop it after the warning is printed.
Here are other examples:
---
U-Boot > nand erase 100000 00800
NAND erase: device 0 offset 0x100000, size 0x800
Erasing at 0x100000 -- 6400% complete.
OK
U-Boot > nand erase 100000 20000
NAND erase: device 0 offset 0x100000, size 0x20000 Erasing at 0x100000 -- 100% complete.
OK
U-Boot > nand erase 100000 40000
NAND erase: device 0 offset 0x100000, size 0x40000 Erasing at 0x120000 -- 100% complete.
OK
U-Boot > nand erase 100000 40800
NAND erase: device 0 offset 0x100000, size 0x40800 Erasing at 0x140000 -- 148% complete.
OK
---
Hugo Villeneuve
Hardware developer | Concepteur mat?riel
Lyrtech
Phone/T?l. : (1) (418) 877-4644 #2395
Toll-free/Sans frais - Canada & USA : (1) (888) 922-4644 #2395 Fax/T?l?c. : (1) (418) 877-7710
www.lyrtech.com
Infinite possibilities...TM
THIS MESSAGE AND ALL ATTACHED DOCUMENTS ARE EXCLUSIVELY INTENDED TO THE INDICATED RECIPIENTS AND ITS CONTENTS MAY BE CONFIDENTIAL. IT IS STRICTLY FORBIDDEN TO ANYONE TO TAKE COGNIZANCE, USE, OR DIVULGE THE INFORMATION CONTAINED HEREIN. IF YOU MISTAKENLY RECEIVE THIS MESSAGE, IMMEDIATELY INFORM LYRTECH AND DESTROY THE MESSAGE AND ATTACHMENTS FORTHWITH.THANK YOU.
LE PRESENT MESSAGE ET LES DOCUMENTS QUI Y SONT JOINTS S'ADRESSENT EXCLUSIVEMENT AU(X)DESTINATAIRE(S) INDIQUE(S) ET LEUR TENEUR PEUT ETRE CONFIDENTIELLE. IL EST STRICTEMENT INTERDIT A QUICONQUE D'EN PRENDRE CONNAISSANCE, DE LES UTILISER OU DE LES DIVULGUER. SI VOUS RECEVEZ LE PRESENT MESSAGE PAR ERREUR, VEUILLEZ EN AVISER LYRTECH IMMEDIATEMENT ET DETRUIRE LE MESSAGE SEANCE TENANTE, AINSI QUE LES DOCUMENTS QUI Y SONT JOINTS.
PATCH 1/1 Fix NAND erase progress error
Quoted 5 lines · Hugo Villeneuve
Quoted 1 line · Scott Wood
That should be an error.
What should be an error, the fact that 6400% is displayed, or the fact that the user is trying to erase less than a block? :)
The latter. It should tell the user what the erase block size is, and abort.
-Scott
PATCH 1/1 Fix NAND erase progress error
Quoted 11 lines · Scott Wood
Quoted 5 lines · Hugo Villeneuve
Quoted 1 line · Scott Wood
That should be an error.
What should be an error, the fact that 6400% is displayed, or the fact that the user is trying to erase less than a block? :)
The latter. It should tell the user what the erase block size is, and abort.
-Scott
I would be perfectly happy if the mtd driver reported a warning when the requested erase size is not an exact multiple of the block size, and allow the whole block erase to proceed. Then my patch would make sense. Right now, there is not even a warning displayed...
Hugo V.
Hugo Villeneuve
Hardware developer | Concepteur mat?riel
Lyrtech
Phone/T?l. : (1) (418) 877-4644 #2395
Toll-free/Sans frais - Canada & USA : (1) (888) 922-4644 #2395 Fax/T?l?c. : (1) (418) 877-7710
www.lyrtech.com
Infinite possibilities...TM
THIS MESSAGE AND ALL ATTACHED DOCUMENTS ARE EXCLUSIVELY INTENDED TO THE INDICATED RECIPIENTS AND ITS CONTENTS MAY BE CONFIDENTIAL. IT IS STRICTLY FORBIDDEN TO ANYONE TO TAKE COGNIZANCE, USE, OR DIVULGE THE INFORMATION CONTAINED HEREIN. IF YOU MISTAKENLY RECEIVE THIS MESSAGE, IMMEDIATELY INFORM LYRTECH AND DESTROY THE MESSAGE AND ATTACHMENTS FORTHWITH.THANK YOU.
LE PRESENT MESSAGE ET LES DOCUMENTS QUI Y SONT JOINTS S'ADRESSENT EXCLUSIVEMENT AU(X)DESTINATAIRE(S) INDIQUE(S) ET LEUR TENEUR PEUT ETRE CONFIDENTIELLE. IL EST STRICTEMENT INTERDIT A QUICONQUE D'EN PRENDRE CONNAISSANCE, DE LES UTILISER OU DE LES DIVULGUER. SI VOUS RECEVEZ LE PRESENT MESSAGE PAR ERREUR, VEUILLEZ EN AVISER LYRTECH IMMEDIATEMENT ET DETRUIRE LE MESSAGE SEANCE TENANTE, AINSI QUE LES DOCUMENTS QUI Y SONT JOINTS.
PATCH 1/1 Fix NAND erase progress error
Quoted 3 lines · Hugo Villeneuve
I would be perfectly happy if the mtd driver reported a warning when the requested erase size is not an exact multiple of the block size, and allow the whole block erase to proceed. Then my patch would make sense.
That's what the mtd-2.6.22.1 branch in the NAND repository does. I think it should reject such requests, though.
-Scott
PATCH 1/1 Fix NAND erase progress error
Quoted 8 lines · Scott Wood
Quoted 4 lines · Hugo Villeneuve
I would be perfectly happy if the mtd driver reported a warning when the requested erase size is not an exact multiple of the block size, and allow the whole block erase to proceed. Then my patch would make sense.
That's what the mtd-2.6.22.1 branch in the NAND repository does. I think it should reject such requests, though.
I don?t like that behavior. Let?s say that I want to program a new binary application of 2.8MB. I want to be able to simply erase 2.8MB, without having to do fancy math computations on my calculator based on the block size :)
Hugo V.
Hugo Villeneuve
Hardware developer | Concepteur mat?riel
Lyrtech
Phone/T?l. : (1) (418) 877-4644 #2395
Toll-free/Sans frais - Canada & USA : (1) (888) 922-4644 #2395 Fax/T?l?c. : (1) (418) 877-7710
www.lyrtech.com
Infinite possibilities...TM
THIS MESSAGE AND ALL ATTACHED DOCUMENTS ARE EXCLUSIVELY INTENDED TO THE INDICATED RECIPIENTS AND ITS CONTENTS MAY BE CONFIDENTIAL. IT IS STRICTLY FORBIDDEN TO ANYONE TO TAKE COGNIZANCE, USE, OR DIVULGE THE INFORMATION CONTAINED HEREIN. IF YOU MISTAKENLY RECEIVE THIS MESSAGE, IMMEDIATELY INFORM LYRTECH AND DESTROY THE MESSAGE AND ATTACHMENTS FORTHWITH.THANK YOU.
LE PRESENT MESSAGE ET LES DOCUMENTS QUI Y SONT JOINTS S'ADRESSENT EXCLUSIVEMENT AU(X)DESTINATAIRE(S) INDIQUE(S) ET LEUR TENEUR PEUT ETRE CONFIDENTIELLE. IL EST STRICTEMENT INTERDIT A QUICONQUE D'EN PRENDRE CONNAISSANCE, DE LES UTILISER OU DE LES DIVULGUER. SI VOUS RECEVEZ LE PRESENT MESSAGE PAR ERREUR, VEUILLEZ EN AVISER LYRTECH IMMEDIATEMENT ET DETRUIRE LE MESSAGE SEANCE TENANTE, AINSI QUE LES DOCUMENTS QUI Y SONT JOINTS.
PATCH 1/1 Fix NAND erase progress error
Quoted 6 lines · Hugo Villeneuve
Quoted 5 lines · Scott Wood
Quoted 4 lines · Hugo Villeneuve
I would be perfectly happy if the mtd driver reported a warning when the requested erase size is not an exact multiple of the block size, and allow the whole block erase to proceed. Then my patch would make sense.
Quoted 7 lines
Quoted 2 lines
That's what the mtd-2.6.22.1 branch in the NAND repository does. I think it should reject such requests, though.
I don?t like that behavior. Let?s say that I want to program a new binary application of 2.8MB. I want to be able to simply erase 2.8MB, without having to do fancy math computations on my calculator based on the block size :)
Hmm... maybe a flag to request round-up? Or at the very least, have "help nand" mention the rounding-up behavior.
-Scott
PATCH 1/1 Fix NAND erase progress error
Quoted 10 lines · Scott Wood
Quoted 9 lines · Hugo Villeneuve
Quoted 7 lines · Scott Wood
Quoted 4 lines · Hugo Villeneuve
I would be perfectly happy if the mtd driver reported a warning when the requested erase size is not an exact multiple of the block size, and allow the whole block erase to proceed. Then my patch would make sense.
That's what the mtd-2.6.22.1 branch in the NAND repository does. I think it should reject such requests, though.
Quoted 6 lines
Quoted 4 lines
I don?t like that behavior. Let?s say that I want to program a new binary application of 2.8MB. I want to be able to simply erase 2.8MB, without having to do fancy math computations on my calculator based on the block size :)
Hmm... maybe a flag to request round-up?
Yes, maybe some kind of "-f" force flag to continue even if the requested size is less than a block...
Quoted 2 lines
Or at the very least, have
"help nand" mention the rounding-up behavior.
I agree.
Either way, I think my patch, or a variation of it, should need to be applied to get rid of that ugly 6400%.
Hugo V.
Hugo Villeneuve
Hardware developer | Concepteur mat?riel
Lyrtech
Phone/T?l. : (1) (418) 877-4644 #2395
Toll-free/Sans frais - Canada & USA : (1) (888) 922-4644 #2395 Fax/T?l?c. : (1) (418) 877-7710
www.lyrtech.com
Infinite possibilities...TM
THIS MESSAGE AND ALL ATTACHED DOCUMENTS ARE EXCLUSIVELY INTENDED TO THE INDICATED RECIPIENTS AND ITS CONTENTS MAY BE CONFIDENTIAL. IT IS STRICTLY FORBIDDEN TO ANYONE TO TAKE COGNIZANCE, USE, OR DIVULGE THE INFORMATION CONTAINED HEREIN. IF YOU MISTAKENLY RECEIVE THIS MESSAGE, IMMEDIATELY INFORM LYRTECH AND DESTROY THE MESSAGE AND ATTACHMENTS FORTHWITH.THANK YOU.
LE PRESENT MESSAGE ET LES DOCUMENTS QUI Y SONT JOINTS S'ADRESSENT EXCLUSIVEMENT AU(X)DESTINATAIRE(S) INDIQUE(S) ET LEUR TENEUR PEUT ETRE CONFIDENTIELLE. IL EST STRICTEMENT INTERDIT A QUICONQUE D'EN PRENDRE CONNAISSANCE, DE LES UTILISER OU DE LES DIVULGUER. SI VOUS RECEVEZ LE PRESENT MESSAGE PAR ERREUR, VEUILLEZ EN AVISER LYRTECH IMMEDIATEMENT ET DETRUIRE LE MESSAGE SEANCE TENANTE, AINSI QUE LES DOCUMENTS QUI Y SONT JOINTS.
PATCH 1/1 Fix NAND erase progress error
Quoted 2 lines · Hugo Villeneuve
Either way, I think my patch, or a variation of it, should need to be applied to get rid of that ugly 6400%.
Agreed -- the patch in mtd-2.6.22.1 takes care of the percentage issue at the same time as issuing the warning.
-Scott