mtd: cfi_flash: Write buffer size adjustment for M29EW Numonyx devices

This patch addjusted the write buffer size for M29EW devices those
are operated in 8-bit mode.

The M29EW devices seem to report the CFI information wrong when
it's in 8 bit mode.

There's an app note from Numonyx on this issue and there's a patch
in the open source as well for Linux, but it doesn't seem to be in mainline.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tested-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
master
Jagannadha Sutradharudu Teki 11 years ago committed by Stefan Roese
parent 239cb9d904
commit c502321c4a
  1. 23
      drivers/mtd/cfi_flash.c

@ -2053,6 +2053,26 @@ static void flash_fixup_sst(flash_info_t *info, struct cfi_qry *qry)
}
}
static void flash_fixup_num(flash_info_t *info, struct cfi_qry *qry)
{
/*
* The M29EW devices seem to report the CFI information wrong
* when it's in 8 bit mode.
* There's an app note from Numonyx on this issue.
* So adjust the buffer size for M29EW while operating in 8-bit mode
*/
if (((qry->max_buf_write_size) > 0x8) &&
(info->device_id == 0x7E) &&
(info->device_id2 == 0x2201 ||
info->device_id2 == 0x2301 ||
info->device_id2 == 0x2801 ||
info->device_id2 == 0x4801)) {
debug("Adjusted buffer size on Numonyx flash"
" M29EW family in 8 bit mode\n");
qry->max_buf_write_size = 0x8;
}
}
/*
* The following code cannot be run from FLASH!
*
@ -2135,6 +2155,9 @@ ulong flash_get_size (phys_addr_t base, int banknum)
case 0x00bf: /* SST */
flash_fixup_sst(info, &qry);
break;
case 0x0089: /* Numonyx */
flash_fixup_num(info, &qry);
break;
}
debug ("manufacturer is %d\n", info->vendor);

Loading…
Cancel
Save