Skip to content
  • Tomas Vanek's avatar
    flash/nor: handle flash write alignment/padding in the infrastructure · c8c20b7c
    Tomas Vanek authored
    
    
    Most of flash drivers have to ensure proper flash write block alignment
    and padding. As there was no support for it in the flash infrastructure,
    each driver does it its own way. Sometimes this part of code is not properly
    tested and contains bugs.
    
    flash_write(_unlock) joins all image sections targeted to one flash bank
    using padded areas as a glue. This solves alignment problems on section
    boundaries but imposes other problems.
    
    Introduce new flash bank parameters write_start_alignment,
    write_end_alignment and minimal_write_gap.
    New flash drivers can just properly set these values instead of handling
    alignment by its own.
    
    Adapt infrastructure (namely flash_write_unlock(), handle_flash_fill_command()
    and handle_flash_write_bank_command()) to prepare write data padded
    to an alignment required by the flash bank.
    
    Rework flash_write_unlock() to discontinue write block when the gap
    between sections is bigger than minimum specified in minimal_write_gap.
    minimal_write_gap is set to one sector by default.
    
    Change-Id: I4368dd402dfaf51c193bcbf1332cffff092b239b
    Signed-off-by: default avatarTomas Vanek <vanekt@fbl.cz>
    Reviewed-on: http://openocd.zylin.com/4399
    
    
    Tested-by: jenkins
    Reviewed-by: default avatarAndreas Bolsch <hyphen0break@gmail.com>
    c8c20b7c