[PATCH 4/5] UBI: introduce attach ioctls
Frank Haverkamp
haver at vnet.ibm.com
Thu Jan 3 07:51:39 EST 2008
Hi Arnd and Artem,
On Wed, 2007-12-19 at 16:42 +0200, Artem Bityutskiy wrote:
> On Wed, 2007-12-19 at 15:17 +0100, Arnd Bergmann wrote:
> > > +struct ubi_attach_req {
> > > + int32_t vid_hdr_offset;
> > > + int32_t data_offset;
> > > };
> >
> > Can you explain why you need to pass vid_hdr_offset /and/ data_offset here?
> > What is the difference between the two?
Data in flash:
EC-hdr | VID-hdr | Data
-------> VID-hdr-offs
-----------------> Data-offset
> Can't you autoprobe them if you
> > have the device?
>
> vid_hdr_offset is the offset of the VID header withing an eraseblock.
> data_offs is where the data starts. We want to be able to let users
> select the VID header offset.
> Vs data offset - indeed it is redundant
> and might be dropped because UBI may just assume data starts at the next
> min. I/O unit after the VID header.
Traditionally NAND could only be written only in page-chunks e.g. 2KiB.
Thomas Gleixner introduced that subpages could be written too e.g. 512B.
In our usage example we decided, that we wanted to have the EC-hdr at
offset 0, and the VID-hdr at the end of the last subpage of page 0 in
the NAND-erase block. We wanted the data to start at a page boundary so
that e.g. JFFS2 can use the pagesize as minimum write size and not the
sub-pagesize.
Our layout:
page 0 | page 1 | ...
subpage | ... | subpage | subpage | ... | subpage | ...
EC-hdr | ... | VID-hdr | Data
Default layout (Artem, correct me if I am wrong):
page 0 | page 1 | ...
subpage | ... | subpage ... | subpage | ... | subpage | ...
EC-hdr | VID-hdr | Data
> We can autoprobe the VID header offset, unless the MTD device is empty,
> in which case UBI automatically formats it.
I do not like auto-probing the VID hdr offset. In my eyes the user
should have the flexibility to define where his VID-hdr and data start
e.g. like in our case to have influence on if data is starting on
subpage- or page-boundaries. I also think that the autoprobe feature
would add more complexity to the code.
> > The reason I'm asking is that I'd really like to make this a simple
> > attribute in sysfs, in the mtd object. The question there is what a
> > user would need to store into that attribute. The device is identified
> > implicitly already, but this looks like you still need two distint
> > integers in order to create an UBI device.
I think with our current usage calculating the data offset as next free
min-io-offset would work, although the fact that we want to store our
data at a page-offset would be done implicitly than.
I wonder which layout Thomas Gleixner and Josh Boyer are using? Would it
work to calculate the data offset in your case?
Frank
--
IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032
Boeblingen, Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Herbert Kircher, Sitz der Gesellschaft: Böblingen,
Registergericht: Amtsgericht Stuttgart, HRB 243294
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5269 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20080103/49b77cdf/attachment-0001.bin
More information about the linux-mtd
mailing list