MTD git repository status

Vitaly Wool vwool at ru.mvista.com
Mon Nov 7 15:43:26 EST 2005


Hi Thomas et al,

>- [MTD] NAND: OOB changes
>	Needs more thoughts. I'm particularly unhappy with the introduction of new 
>functions and the still pending problem of the automatic placement/retrieval 
>of oob data. The change should subsume and/or extend the oob_info 
>functionality rather than introducing a parallel solution.
>  
>
Yeah I do agree that this stuff has not been verified enough to go into 
git tree.
And I do understand your concerns, so let me elaborate on all that once 
more.

First, there's a hardware-driven need to support the OOB data 
distributed across the page. The fact is that nand_oobinfo *can't hold 
the info needed* for that since it implies that OOB data is contiguous. 
The adequate patcure can be derived only from nand_oobinfo plus 
eccsteps, but anyway handling all that in read/write functions will lead 
to the introduction of the structure similar to page_layout_item.
So, rather then trying to revise nand_oobinfo, I was moving towards 
creation of a new data structure, more say 'linear' and straightforward. 
I think that layout structure well fits.
Let's look at nand_oobinfo from the POV that page_layout_item has been 
introduced and autoplacement is the only option.
In this case the whole nand_oobinfo becomes redundant and will go away, 
and that's what I'm targeting.

I guess that the new functions introduced you're talking about are 
nand_read_oob_hwecc and nand_write_oob_hwecc.
I think that nand_read_oob and nand_write_oob will soon go away, as soon 
as the two new functions prove they are working in all the HW ECC cases. 
Extending them to support SW ECC case is trivial.
On the other hand, I do think that handling the layout in 
read_ecc/write_page should go to the separate function as now these two 
functions have become almost unreadable due to lotsa nesting levels.

Then, I'd like to point out once more that the approach introduced was 
intended to be absolutely transparent to both MTD users and particular 
NAND device drivers. This approach is capable of automated 
placement/retrieval of OOB data but that's gonna be a new stage which I 
deliberately wanted to separate from the approach introduction.
I can create a sort of design proposal for the OOB data handling and 
you/dedekind/Charles/whoever else will tear it apart :) We do need a 
good co-ordination on the changes that alter the behavior of MTD functions.

Hope that all makes sense,

Best regards,
   Vitaly




More information about the linux-mtd mailing list