This patch does what the comment tells the code should do. Actual code fails for width = 4 (verified : only half of the buffer is copied because len is divided by 8 instead of 4) and 8 where len will be divided by 128. The bug was introduced in 3d3c13d8f8238d0ed6e3e23841737de53b2c424f Signed-off-by: Eric Bénard <eric@xxxxxxxxxx> --- drivers/nor/cfi_flash_intel.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/nor/cfi_flash_intel.c b/drivers/nor/cfi_flash_intel.c index 6318cfe..3b325c1 100644 --- a/drivers/nor/cfi_flash_intel.c +++ b/drivers/nor/cfi_flash_intel.c @@ -68,7 +68,7 @@ static int intel_flash_write_cfibuffer (struct flash_info *info, ulong dest, con return retcode; /* reduce the number of loops by the width of the port */ - cnt = len >> (info->portwidth - 1); + cnt = len >> (info->portwidth == 8 ? 3 : info->portwidth >> 1); flash_write_cmd(info, sector, 0, (u32)cnt - 1); while (cnt-- > 0) { -- 1.7.7.6 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox