changeset 2991:1368d5ff0323

nand_bbt.c: Fix logic error on initial scan (introduced 2009-11-09)
author Ross Younger <wry@ecoscentric.com>
date Fri, 13 Nov 2009 17:23:51 +0000
parents 436d18a77629
children d0daa15943a5
files packages/io/nand/current/ChangeLog packages/io/nand/current/src/nand_bbt.c
diffstat 2 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/packages/io/nand/current/ChangeLog
+++ b/packages/io/nand/current/ChangeLog
@@ -4,6 +4,7 @@ 2009-11-13  Ross Younger  <wry@eCosCentr
 	* nand_device.h nand.c: Further refine CYGSEM_IO_NAND_USE_BBT,
 	drop the relevant parts of the struct when not enabled.
 	* utils/erase_bbt_dangerous.c: Build fix for non-default config
+	* nand_bbt.c: Fix logic error on initial scan
 
 2009-11-12  Ross Younger  <wry@eCosCentric.com>
 
--- a/packages/io/nand/current/src/nand_bbt.c
+++ b/packages/io/nand/current/src/nand_bbt.c
@@ -552,10 +552,6 @@ int cyg_nand_bbti_build_tables(cyg_nand_
      * write_tables() takes care of choosing where.
      */
 
-    if (dev->bbt.primary != 0xFFFFFFFF)
-        bbti_mark_raw(dev, dev->bbt.primary, CYG_NAND_BBT_RESERVED);
-    if (dev->bbt.mirror != 0xFFFFFFFF)
-        bbti_mark_raw(dev, dev->bbt.mirror,  CYG_NAND_BBT_RESERVED);
     dev->bbt.version = 0; /* write_tables() will bump to 1, which is correct */
 
     int rv = cyg_nand_bbti_write_tables(dev, 1);
@@ -564,6 +560,11 @@ int cyg_nand_bbti_build_tables(cyg_nand_
     else
         NAND_CHATTER(3,dev, "Chosen BBT locations: primary %u, mirror %u\n", dev->bbt.primary, dev->bbt.mirror);
 
+    if (dev->bbt.primary != 0xFFFFFFFF)
+        bbti_mark_raw(dev, dev->bbt.primary, CYG_NAND_BBT_RESERVED);
+    if (dev->bbt.mirror != 0xFFFFFFFF)
+        bbti_mark_raw(dev, dev->bbt.mirror,  CYG_NAND_BBT_RESERVED);
+
     return rv;
 #endif
 }