[lkml]   [2011]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip
    On 12/17/2011 08:35 AM, Artem Bityutskiy wrote:
    > On Mon, 2011-12-12 at 15:30 -0600, Scott Wood wrote:
    >> On 12/12/2011 03:19 PM, Artem Bityutskiy wrote:
    >>> On Mon, 2011-12-12 at 15:15 -0600, Scott Wood wrote:
    >>>> NAND chips come from the factory with bad blocks marked at a certain
    >>>> offset into each page. This offset is normally in the OOB area, but
    >>>> since we change the layout from "4k data, 128 byte oob" to "2k data, 64
    >>>> byte oob, 2k data, 64 byte oob" the marker is no longer in the oob. On
    >>>> first use we need to migrate the markers so that they are still in the oob.
    >>> Ah, I see, thanks. Are you planning to implement in-kernel migration or
    >>> use a user-space tool?
    >> That's the kind of answer I was hoping to get from Shuo. :-)
    >> Most likely is a firmware-based tool, but I'd like there to be some way
    >> for the tool to mark that this has happened, so that the Linux driver
    >> can refuse to do non-raw accesses to a chip that isn't marked as having
    >> been migrated (or at least yell loudly in the log).
    >> Speaking of raw accesses, these are currently broken in the eLBC
    >> driver... we need some way for the generic layer to tell us what kind of
    >> access it is before the transaction starts, not once it wants to read
    >> out the buffer (unless we add more hacks to delay the start of a read
    >> transaction until first buffer access...). We'd be better off with a
    >> high-level "read page/write page" function that does the whole thing
    >> (not just buffer access, but command issuance as well).
    > It looks like currently you can re-define chip->read_page, so I guess
    > you should rework MTD and make chip->write_page re-definable?

    Unless something has changed very recently, there is no chip->read_page
    or chip->write_page. There is chip->ecc.read_page and
    chip->ecc.write_page, but they are too low-level. What we'd need to
    replace is a portion of nand_do_read_ops()/nand_do_write_ops().


     \ /
      Last update: 2011-12-19 19:41    [W:0.023 / U:3.596 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site