[U-Boot] [PATCH 5/5] NAND: Add scrub.quiet command option

Marek Vasut
2011-09-13T22:41:29Z

[...]

> > ROM when loading firmware, copies back
> > the value at metadata[0] to BI offset in page data. The following figure
> > shows how the factory bad block marker is preserved.
>
> ...this is insane. It seems that they want you to swap this byte even
> in good blocks, so that you put the byte of real data that should go
> somewhere in the middle of the last 512-byte ECC chunk at offset zero in
> the page. This means that it will show up as a bad block when normal
> (but new-layout-using) software looks at it, which is why you need
> scrub. Ew.
>
> How many blocks are being loaded by this mechanism? Just block zero
> (which is normally supposed to be guaranteed good anyway...)? Or
> multiple blocks?

The first block, then the 64th block, 128th block and 192th block (in default
layout).
>
> Any chance you could blow the NAND_MEMBLOCK_MARKER_RESERVE fuse? :-)

No, they are one-time programable. Delivering a "damaged" chip isn't a good
practice.

> Otherwise, I guess you do need to scrub. Have you complained to
> Freescale sales/support?

In fact no. The BootROM is "broken" and I doubt they will be willing to do
anything about it.

>
> > But we want to write a block in our own format, so we need to scrub (wipe
> > the block completely).
>
> Erase always wipes the block completely, if it erases at all. Scrub in
> this context just means that U-Boot ignores the bad block indications
> (marker or table). Otherwise it would avoid erasing bad blocks, so that
> they stay bad, and you won't have scrubbed the entire region requested.
>
> >> I work for the PowerPC side of Freescale, in case you're wondering why
> >> I'm unfamiliar with this. :-)
> >
> > Interesting ... does everyone work for the PowerPC side of Freescale or
> > is there some other reason why I never met anyone working for the ARM
> > side of Freescale ? ;-)
>
> They exist, but don't seem to engage Open Source development communities
> to the same degree.
>
> -Scott

Cheers