Skip to contentSkip to conversation

nandwrite and contiguous space

DISCUSSION Stas Sergeev 3 participants 6 messages Apr 1, 2014 – Apr 12, 2014 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

Hello.

I am looking for a NAND flasher that supports searching for the contiguous region of good blocks (within a specified range), and flashes an image to it. It seems nandwrite - the default linux flasher - can only skip bad blocks, but the scenario I need, doesn't seem to be supported.
Is there any other flasher that does support this?
Or maybe some trick with nandwrite exists?
If not, how difficult is it to implement such a capability into nandwrite?

#1 lore raw
Quoted 6 lines · Stas Sergeev

I am looking for a NAND flasher that supports searching for the contiguous region of good blocks (within a specified range), and flashes an image to it. It seems nandwrite - the default linux flasher - can only skip bad blocks, but the scenario I need, doesn't seem to be supported.

Isn't the point that the set of good blocks keeps changing over time? What might be good now, may be bad a second later or next year, doesn't matter as long as it won't stay good forever.

Quoted 4 lines

Is there any other flasher that does support this?
Or maybe some trick with nandwrite exists?
If not, how difficult is it to implement such a capability into nandwrite?

If you want a sequence of good blocks, this very much sounds like the LEBs which UBI provides. Aren't you asking for an UBI volume? What am I missing?

virtually yours
Gerhard Sittig

Signature · 3 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [email protected]
#2 lore raw

01.04.2014 22:23, Gerhard Sittig пишет:

Quoted 9 lines · Stas Sergeev
Quoted 5 lines

I am looking for a NAND flasher that supports searching for the contiguous region of good blocks (within a specified range), and flashes an image to it. It seems nandwrite - the default linux flasher - can only skip bad blocks, but the scenario I need, doesn't seem to be supported.

Isn't the point that the set of good blocks keeps changing over time? What might be good now, may be bad a second later or next year, doesn't matter as long as it won't stay good forever.

Hi, I think the point is that if they are no longer ever written, they won't change its goodness...
Anyway, this is how the ST soc chips work.
They search NAND for a specific signature, and once found, they map the contiguous block, starting from that signature, to memory, which allows to run u-boot in a nor-alike fashion. They do not do BBT lookups when mapping, AFAIK, and so such a requirement for flasher does exist.

Quoted 7 lines
Quoted 4 lines

Is there any other flasher that does support this?
Or maybe some trick with nandwrite exists?
If not, how difficult is it to implement such a capability into nandwrite?

If you want a sequence of good blocks, this very much sounds like the LEBs which UBI provides. Aren't you asking for an UBI volume? What am I missing?

Unfortunately, I don't think the aforementioned ST chips can boot from UBI. Once booted, I want UBI for sure. But the only alternative to the aforementioned requirement would be to assume that 2 first blocks are good, and fit u-boot there, and it they are bad - throw away such a nand. I am considering this too, but I wonder how many nands will be wasted this way... Likely none, but who knows. :)

#3 lore raw
In reply to Gerhard Sittig

01.04.2014 22:23, Gerhard Sittig пишет:

Quoted 3 lines

If you want a sequence of good blocks, this very much sounds like the LEBs which UBI provides. Aren't you asking for an UBI volume? What am I missing?

Is is possible to configure ubi leb size to be multiple physically contiguous eraseblocks? With some googling it seems not, or what am I missing?

#4 lore raw
Quoted 10 lines · Stas Sergeev

01.04.2014 22:23, Gerhard Sittig пишет:

Quoted 5 lines

If you want a sequence of good blocks, this very much sounds like

the LEBs which UBI provides. Aren't you asking for an UBI volume? What am I missing?

Is is possible to configure ubi leb size to be multiple physically contiguous eraseblocks? With some googling it seems not, or what am I missing?

No, this is not possible.

Signature · 2 lines
Thanks,
//richard
#5 lore raw

05.04.2014 02:00, Richard Weinberger пишет:

Quoted 10 lines · Stas Sergeev
Quoted 8 lines

01.04.2014 22:23, Gerhard Sittig пишет:

Quoted 4 lines

If you want a sequence of good blocks, this very much sounds like

the LEBs which UBI provides. Aren't you asking for an UBI volume? What am I missing?

Is is possible to configure ubi leb size to be multiple physically contiguous eraseblocks? With some googling it seems not, or what am I missing?

No, this is not possible.

OK so I patched nandwrite.
The patch is attached only for the preliminary review or if someone wants to help me with testing this. The problem is that I don't know how to even test it. What tool should I use to mark blocks as bad, test the patch, and then unmark the blocks back to good?