• Robert Jarzmik's avatar
    mtd: docg3: add fast mode · c3de8a8a
    Robert Jarzmik authored
    Docg3 chips can work in 3 modes : normal MLC mode, fast
    mode and reliable mode. Normally, as docg3 is a MLC chip, it
    should be configured to work in normal mode.
    
    In both normal mode, each page is distinct. This
    means that writing to page 12 of blocks 14,15 writes only to
    that page, and reading from page 12 of blocks 14,15 reads
    only from that page.
    
    In reliable and fast modes, pages are coupled by pairs, and
    are clones one of each other. This means that the available
    capacity of the chip is halved. Pages are coupled in each
    block, and page of index 2*n contains the same data as page
    2*n+1 of the same block.
    
    In fast mode, the reads occur a bit faster, but are a bit
    less reliable that in normal mode.
    
    When reading from page 2*n, the chip reads bytes from both
    page 2*n and page 2*n+1, makes a logical and for each byte,
    and returns the result. As programming a page means
    "clearing bits", even if a bit was not cleared on one page
    because the flash is worn out, the other page has the bit
    cleared, and the result of the "AND" gives a correct result.
    
    When writing to page 2*n, the chip writes data to both page
    2*n and page 2*n+1.
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Reviewed-by: default avatarIvan Djelic <ivan.djelic@parrot.com>
    Reviewed-by: default avatarMike Dunn <mikedunn@newsguy.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    c3de8a8a
docg3.c 54.1 KB