diff options
author | Dima Zavin <dima@android.com> | 2010-02-12 20:31:36 -0800 |
---|---|---|
committer | Dima Zavin <dima@android.com> | 2010-02-12 20:31:36 -0800 |
commit | 72b967ace4d2d73d2bc30706f2e6266b8ad9e41d (patch) | |
tree | b8b8bb637dcbe5d2a90518a2e1f01357260f8898 | |
parent | 8bc1f67f75fa6ce4164e324539017e81af2e70fc (diff) | |
download | lk-72b967ace4d2d73d2bc30706f2e6266b8ad9e41d.tar.gz |
msm: nand: fix write verification, nand_read_page for oob.
Signed-off-by: Dima Zavin <dima@android.com>
-rwxr-xr-x | platform/msm_shared/nand.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/platform/msm_shared/nand.c b/platform/msm_shared/nand.c index a374b81d..03286112 100755 --- a/platform/msm_shared/nand.c +++ b/platform/msm_shared/nand.c @@ -102,6 +102,9 @@ static int dmov_exec_cmdptr(unsigned id, unsigned *ptr) return 0; } +static int _flash_read_page(dmov_s *cmdlist, unsigned *ptrlist, unsigned page, + void *_addr, void *_spareaddr); + static struct flash_info flash_info; static unsigned flash_pagesize = 0; @@ -476,7 +479,7 @@ static int _flash_nand_read_page(dmov_s *cmdlist, unsigned *ptrlist, /* read extra data */ cmd->cmd = 0; - cmd->src = NAND_FLASH_BUFFER + 500; + cmd->src = NAND_FLASH_BUFFER + 512 - (((flash_pagesize >> 9) - 1) * 4); cmd->dst = spareaddr; cmd->len = 16; cmd++; @@ -651,11 +654,11 @@ static int _flash_nand_write_page(dmov_s *cmdlist, unsigned *ptrlist, unsigned p #if VERIFY_WRITE n = _flash_read_page(cmdlist, ptrlist, page, flash_data, - flash_data + 2048); + flash_data + flash_pagesize); if (n != 0) return -1; - if (memcmp(flash_data, _addr, 2048) || - memcmp(flash_data + 2048, _spareaddr, 16)) { + if (memcmp(flash_data, _addr, flash_pagesize) || + memcmp(flash_data + flash_pagesize, _spareaddr, 16)) { dprintf(CRITICAL, "verify error @ page %d\n", page); return -1; } |