diff options
author | Ricard Wanderlof <ricard.wanderlof@axis.com> | 2015-11-13 14:17:28 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2015-11-25 14:27:43 +0100 |
commit | 8e37ca6d0be8aae2887c167da783fd2d9536c962 (patch) | |
tree | f27acfd9275a1ce3e0efd892b312f9d0f3609824 | |
parent | 7595ed743914b9de1d146213dedc1e007283f723 (diff) | |
download | qemu-8e37ca6d0be8aae2887c167da783fd2d9536c962.zip qemu-8e37ca6d0be8aae2887c167da783fd2d9536c962.tar.gz qemu-8e37ca6d0be8aae2887c167da783fd2d9536c962.tar.bz2 |
nand: fix flash erase when oob is in memory
For the "main area on file, oob in memory" case, fix the shifts so that
we erase the correct number of pages.
Signed-off-by: Ricard Wanderlöf <ricardw@axis.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r-- | hw/block/nand.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/block/nand.c b/hw/block/nand.c index a68266f..f0e3413 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -712,7 +712,7 @@ static void glue(nand_blk_erase_, PAGE_SIZE)(NANDFlashState *s) memset(s->storage + (PAGE(addr) << OOB_SHIFT), 0xff, OOB_SIZE << s->erase_shift); i = SECTOR(addr); - page = SECTOR(addr + (ADDR_SHIFT + s->erase_shift)); + page = SECTOR(addr + (1 << (ADDR_SHIFT + s->erase_shift))); for (; i < page; i ++) if (blk_write(s->blk, i, iobuf, 1) < 0) { printf("%s: write error in sector %" PRIu64 "\n", __func__, i); |