* [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management
@ 2012-12-06 7:21 Vipin Kumar
2012-12-06 19:27 ` Scott Wood
0 siblings, 1 reply; 4+ messages in thread
From: Vipin Kumar @ 2012-12-06 7:21 UTC (permalink / raw)
To: u-boot
This patch forces to read the bad block marker from location 0 in large page
nand devices and location 5 in small page devices.
Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Reviewed-by: Shiraz Hashim <shiraz.hashim@st.com>
---
drivers/mtd/nand/fsmc_nand.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
index 7a61d88..bce4298 100644
--- a/drivers/mtd/nand/fsmc_nand.c
+++ b/drivers/mtd/nand/fsmc_nand.c
@@ -433,7 +433,7 @@ int fsmc_nand_init(struct nand_chip *nand)
writel(FSMC_THIZ_1 | FSMC_THOLD_4 | FSMC_TWAIT_6 | FSMC_TSET_0,
&fsmc_regs_p->attrib);
- nand->options = 0;
+ nand->options = NAND_SKIP_BBTSCAN;
#if defined(CONFIG_SYS_FSMC_NAND_16BIT)
nand->options |= NAND_BUSWIDTH_16;
#endif
--
1.8.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management
2012-12-06 7:21 [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management Vipin Kumar
@ 2012-12-06 19:27 ` Scott Wood
2012-12-07 4:38 ` Vipin Kumar
0 siblings, 1 reply; 4+ messages in thread
From: Scott Wood @ 2012-12-06 19:27 UTC (permalink / raw)
To: u-boot
On 12/06/2012 01:21:28 AM, Vipin Kumar wrote:
> This patch forces to read the bad block marker from location 0 in
> large page
> nand devices and location 5 in small page devices.
>
> Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
> Reviewed-by: Shiraz Hashim <shiraz.hashim@st.com>
> ---
> drivers/mtd/nand/fsmc_nand.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/fsmc_nand.c
> b/drivers/mtd/nand/fsmc_nand.c
> index 7a61d88..bce4298 100644
> --- a/drivers/mtd/nand/fsmc_nand.c
> +++ b/drivers/mtd/nand/fsmc_nand.c
> @@ -433,7 +433,7 @@ int fsmc_nand_init(struct nand_chip *nand)
> writel(FSMC_THIZ_1 | FSMC_THOLD_4 | FSMC_TWAIT_6 | FSMC_TSET_0,
> &fsmc_regs_p->attrib);
>
> - nand->options = 0;
> + nand->options = NAND_SKIP_BBTSCAN;
> #if defined(CONFIG_SYS_FSMC_NAND_16BIT)
> nand->options |= NAND_BUSWIDTH_16;
> #endif
I don't think this will change the bad block marker behavior -- just
whether you use a BBT. Why do you need this? Why not
NAND_USE_FLASH_BBT instead?
-Scott
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management
2012-12-06 19:27 ` Scott Wood
@ 2012-12-07 4:38 ` Vipin Kumar
2012-12-08 0:18 ` Scott Wood
0 siblings, 1 reply; 4+ messages in thread
From: Vipin Kumar @ 2012-12-07 4:38 UTC (permalink / raw)
To: u-boot
On 12/7/2012 12:57 AM, Scott Wood wrote:
> On 12/06/2012 01:21:28 AM, Vipin Kumar wrote:
>> This patch forces to read the bad block marker from location 0 in
>> large page
>> nand devices and location 5 in small page devices.
>>
>> Signed-off-by: Vipin Kumar<vipin.kumar@st.com>
>> Reviewed-by: Shiraz Hashim<shiraz.hashim@st.com>
>> ---
>> drivers/mtd/nand/fsmc_nand.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/nand/fsmc_nand.c
>> b/drivers/mtd/nand/fsmc_nand.c
>> index 7a61d88..bce4298 100644
>> --- a/drivers/mtd/nand/fsmc_nand.c
>> +++ b/drivers/mtd/nand/fsmc_nand.c
>> @@ -433,7 +433,7 @@ int fsmc_nand_init(struct nand_chip *nand)
>> writel(FSMC_THIZ_1 | FSMC_THOLD_4 | FSMC_TWAIT_6 | FSMC_TSET_0,
>> &fsmc_regs_p->attrib);
>>
>> - nand->options = 0;
>> + nand->options = NAND_SKIP_BBTSCAN;
>> #if defined(CONFIG_SYS_FSMC_NAND_16BIT)
>> nand->options |= NAND_BUSWIDTH_16;
>> #endif
>
> I don't think this will change the bad block marker behavior -- just
> whether you use a BBT. Why do you need this? Why not
> NAND_USE_FLASH_BBT instead?
>
It's because the BootROM which is fused in the device itself (ie
non-modifiable) is going to read the bad block markers from the oob area.
Which means that anything written via u-boot is non-readable if it uses
flash bbt
> -Scott
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management
2012-12-07 4:38 ` Vipin Kumar
@ 2012-12-08 0:18 ` Scott Wood
0 siblings, 0 replies; 4+ messages in thread
From: Scott Wood @ 2012-12-08 0:18 UTC (permalink / raw)
To: u-boot
On 12/06/2012 10:38:32 PM, Vipin Kumar wrote:
> On 12/7/2012 12:57 AM, Scott Wood wrote:
>> On 12/06/2012 01:21:28 AM, Vipin Kumar wrote:
>>> This patch forces to read the bad block marker from location 0 in
>>> large page
>>> nand devices and location 5 in small page devices.
>>>
>>> Signed-off-by: Vipin Kumar<vipin.kumar@st.com>
>>> Reviewed-by: Shiraz Hashim<shiraz.hashim@st.com>
>>> ---
>>> drivers/mtd/nand/fsmc_nand.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/mtd/nand/fsmc_nand.c
>>> b/drivers/mtd/nand/fsmc_nand.c
>>> index 7a61d88..bce4298 100644
>>> --- a/drivers/mtd/nand/fsmc_nand.c
>>> +++ b/drivers/mtd/nand/fsmc_nand.c
>>> @@ -433,7 +433,7 @@ int fsmc_nand_init(struct nand_chip *nand)
>>> writel(FSMC_THIZ_1 | FSMC_THOLD_4 | FSMC_TWAIT_6 | FSMC_TSET_0,
>>> &fsmc_regs_p->attrib);
>>>
>>> - nand->options = 0;
>>> + nand->options = NAND_SKIP_BBTSCAN;
>>> #if defined(CONFIG_SYS_FSMC_NAND_16BIT)
>>> nand->options |= NAND_BUSWIDTH_16;
>>> #endif
>>
>> I don't think this will change the bad block marker behavior -- just
>> whether you use a BBT. Why do you need this? Why not
>> NAND_USE_FLASH_BBT instead?
>>
>
> It's because the BootROM which is fused in the device itself (ie
> non-modifiable) is going to read the bad block markers from the oob
> area.
>
> Which means that anything written via u-boot is non-readable if it
> uses flash bbt
The factory bad block markers will still be there. The BBT is based on
those markers, so you'll still avoid them when writing your boot
image. So I don't follow why you're having trouble with your current
settings. The main difference that NAND_SKIP_BBTSCAN makes is whether
you scan for bad blocks up front, or whether you check each block on
demand (and don't cache the results for next time).
Is your concern blocks that get marked bad later on -- not by the
factory? In that case, you're still writing real bad block markers
with "nand->options = 0". It's only when you specify
NAND_USE_FLASH_BBT that you'll be updating an on-flash BBT instead of
writing bad block markers.
Do you really expect to be marking blocks bad in your boot image?
Normally that happens as part of a filesystem (or block management
layer such as ubi) that does active bad-block management.
BTW, I've found an on-chip BBT to be nice during development. A bug in
the NAND driver can cause the filesystem to mark every block as bad.
If you wipe the BBT, you still keep the factory bad block information.
If you have to scrub everything, you lose that.
-Scott
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-12-08 0:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-06 7:21 [U-Boot] [PATCH] fsmc: Skip BBT scan for bad block management Vipin Kumar
2012-12-06 19:27 ` Scott Wood
2012-12-07 4:38 ` Vipin Kumar
2012-12-08 0:18 ` Scott Wood
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox