diff options
author | Joe Hershberger <joe.hershberger@ni.com> | 2012-08-22 16:49:45 -0500 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2012-09-17 17:33:43 -0500 |
commit | e70bfa2986f9c028e3c21e0995285047a9baec27 (patch) | |
tree | 5379f528e5b17be0ac20932f9369a704cd5ab2ef /common | |
parent | 33b1d5cae3defdbeb30333ffac41bcbff85c5019 (diff) | |
download | u-boot-imx-e70bfa2986f9c028e3c21e0995285047a9baec27.zip u-boot-imx-e70bfa2986f9c028e3c21e0995285047a9baec27.tar.gz u-boot-imx-e70bfa2986f9c028e3c21e0995285047a9baec27.tar.bz2 |
nand: Make NAND lock status compatible with Micron
Micron NAND flash (e.g. MT29F4G08ABADAH4) BLOCK LOCK READ STATUS is not
the same as others. Instead of bit 1 being lock, it is #lock_tight.
To make the driver support either format, ignore bit 1 and use only
bit 0 and bit 2.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_nand.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/common/cmd_nand.c b/common/cmd_nand.c index f737c06..9c6dabe 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -231,12 +231,18 @@ print: #ifdef CONFIG_CMD_NAND_LOCK_UNLOCK static void print_status(ulong start, ulong end, ulong erasesize, int status) { + /* + * Micron NAND flash (e.g. MT29F4G08ABADAH4) BLOCK LOCK READ STATUS is + * not the same as others. Instead of bit 1 being lock, it is + * #lock_tight. To make the driver support either format, ignore bit 1 + * and use only bit 0 and bit 2. + */ printf("%08lx - %08lx: %08lx blocks %s%s%s\n", start, end - 1, (end - start) / erasesize, ((status & NAND_LOCK_STATUS_TIGHT) ? "TIGHT " : ""), - ((status & NAND_LOCK_STATUS_LOCK) ? "LOCK " : ""), + (!(status & NAND_LOCK_STATUS_UNLOCK) ? "LOCK " : ""), ((status & NAND_LOCK_STATUS_UNLOCK) ? "UNLOCK " : "")); } |