* [PATCH] [MTD][OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR
@ 2007-12-12 8:33 Kyungmin Park
2007-12-12 10:57 ` Adrian Hunter
0 siblings, 1 reply; 3+ messages in thread
From: Kyungmin Park @ 2007-12-12 8:33 UTC (permalink / raw)
To: linux-mtd; +Cc: dwmw2
Some chips don't set the ONENAND_CTRL_LOAD bit.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
drivers/mtd/onenand/onenand_base.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index bfc8399..e9aac83 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -1121,8 +1121,8 @@ static int onenand_bbt_wait(struct mtd_info *mtd, int state)
if (ctrl & ONENAND_CTRL_ERROR) {
printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
- /* Initial bad block case */
- if (ctrl & ONENAND_CTRL_LOAD)
+ /* Initial bad block case: 0x2400 or 0x0400 */
+ if (ctrl & ONENAND_CTRL_ERROR)
return ONENAND_BBT_READ_ERROR;
return ONENAND_BBT_READ_FATAL_ERROR;
}
--
1.5.0.6
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] [MTD][OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR
2007-12-12 8:33 [PATCH] [MTD][OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR Kyungmin Park
@ 2007-12-12 10:57 ` Adrian Hunter
2007-12-12 11:52 ` Kyungmin Park
0 siblings, 1 reply; 3+ messages in thread
From: Adrian Hunter @ 2007-12-12 10:57 UTC (permalink / raw)
To: ext Kyungmin Park; +Cc: linux-mtd
ext Kyungmin Park wrote:
> Some chips don't set the ONENAND_CTRL_LOAD bit.
>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> drivers/mtd/onenand/onenand_base.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
> index bfc8399..e9aac83 100644
> --- a/drivers/mtd/onenand/onenand_base.c
> +++ b/drivers/mtd/onenand/onenand_base.c
> @@ -1121,8 +1121,8 @@ static int onenand_bbt_wait(struct mtd_info *mtd, int state)
>
> if (ctrl & ONENAND_CTRL_ERROR) {
> printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
> - /* Initial bad block case */
> - if (ctrl & ONENAND_CTRL_LOAD)
> + /* Initial bad block case: 0x2400 or 0x0400 */
> + if (ctrl & ONENAND_CTRL_ERROR)
> return ONENAND_BBT_READ_ERROR;
> return ONENAND_BBT_READ_FATAL_ERROR;
> }
You have:
if (ctrl & ONENAND_CTRL_ERROR) {
printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
/* Initial bad block case: 0x2400 or 0x0400 */
if (ctrl & ONENAND_CTRL_ERROR)
return ONENAND_BBT_READ_ERROR;
return ONENAND_BBT_READ_FATAL_ERROR;
}
which is the same as:
if (ctrl & ONENAND_CTRL_ERROR) {
printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
return ONENAND_BBT_READ_ERROR;
}
Is that what you intended?
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] [MTD][OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR
2007-12-12 10:57 ` Adrian Hunter
@ 2007-12-12 11:52 ` Kyungmin Park
0 siblings, 0 replies; 3+ messages in thread
From: Kyungmin Park @ 2007-12-12 11:52 UTC (permalink / raw)
To: Adrian Hunter; +Cc: linux-mtd
Hi,
> You have:
>
> if (ctrl & ONENAND_CTRL_ERROR) {
> printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
> /* Initial bad block case: 0x2400 or 0x0400 */
> if (ctrl & ONENAND_CTRL_ERROR)
> return ONENAND_BBT_READ_ERROR;
> return ONENAND_BBT_READ_FATAL_ERROR;
> }
>
> which is the same as:
>
> if (ctrl & ONENAND_CTRL_ERROR) {
> printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
> return ONENAND_BBT_READ_ERROR;
> }
>
> Is that what you intended?
>
Aha, You're right.
The original goal is to find a initial bad block and other unknown errors.
First it checks the controller error and try to find a initial bad
block with load error.
But some chips are not set the load error. it only sets the error bit (10).
Strictly to find a initial bad block, it checks the non 0xff pattern
from oob area.
But now it checks the controller error as initial bad block.
I'm not sure it have to check the non 0xff pattern after controller error.
I think it's enough to check controller error at least onenand_bbt_wait. :)
I will change it as you suggested.
Thank you,
Kyungmin Park
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-12-12 11:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-12 8:33 [PATCH] [MTD][OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR Kyungmin Park
2007-12-12 10:57 ` Adrian Hunter
2007-12-12 11:52 ` Kyungmin Park
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox