changeset 3372:0975f663163d

synth nand: straggling fixups for when we moved to partition-based addressing (oops)
author Ross Younger <wry@ecoscentric.com>
date Fri, 09 Jul 2010 13:42:07 +0100
parents b2d53f2081c5
children 62b2c0f5902b
files packages/devs/nand/synth/current/ChangeLog packages/devs/nand/synth/current/src/nand_synth.c packages/devs/nand/synth/current/tests/bbt.c
diffstat 3 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/packages/devs/nand/synth/current/ChangeLog
+++ b/packages/devs/nand/synth/current/ChangeLog
@@ -2,6 +2,12 @@ 2014-08-01  Ross Younger  <wry@ecoscentr
 
 	* nand_synth.c: Make it build with recent gcc
 
+2010-07-09  Ross Younger  <wry@ecoscentric.com>
+
+	* nand_synth.c: Cope with CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES not
+	being defined.
+	* tests/bbt.c: Build fix.
+
 2010-05-11  Ross Younger  <wry@ecoscentric.com>
 
 	* nand_synth.c, nand_synth.cdl: Allow simulation of multiple
--- a/packages/devs/nand/synth/current/src/nand_synth.c
+++ b/packages/devs/nand/synth/current/src/nand_synth.c
@@ -1604,7 +1604,7 @@ synth_writebegin(cyg_nand_device *dev, c
     // Do we make it bad this time?
     if (0 == result) _page_going_bad = write_check_injections(page);
 
-#if CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES == 1
+#ifdef CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES_1
     (void) i;
 #else
     // Do not allow multiple writes to a single page, for now.
@@ -1651,7 +1651,7 @@ synth_writestride(cyg_nand_device *dev, 
     }
 
     if (src && (size > 0)) {
-#if CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES == 1
+#ifdef CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES_1
         for (i=0; i<size; i++)
             image_data[_offset + _stridden + i] &= ((unsigned char*)src)[i];
 #else
@@ -1708,7 +1708,7 @@ synth_writefinish(cyg_nand_device *dev, 
 
     if (0 == result) {
         if (spare && (spare_size > 0)) {
-#if CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES == 1
+#ifdef CYGSEM_NAND_SYNTH_ALLOW_MULTIPLE_WRITES_1
             for (i=0; i<spare_size; i++)
                 image_data[_offset + PAGESIZE + i] &= ((unsigned char*)spare)[i];
 #else
--- a/packages/devs/nand/synth/current/tests/bbt.c
+++ b/packages/devs/nand/synth/current/tests/bbt.c
@@ -110,16 +110,16 @@ int cyg_user_start(void)
         CYG_TEST_NA("nand partition 0 isn't big enough");
 
     do {
-        rblk = (rand() % lim) + prt->first;
+        rblk = (rand() % lim);
     } while (cyg_nand_bbti_query(dev, rblk) != CYG_NAND_BBT_OK);
 
-    cyg_nand_page_addr pg = rblk * NAND_PAGES_PER_BLOCK(dev);
-    MUST(0==cyg_nand_read_page(prt, pg, tmp, NAND_BYTES_PER_PAGE(dev), 0, 0));
+    cyg_nand_page_addr pg = rblk * CYG_NAND_PAGES_PER_BLOCK(dev);
+    MUST(0==cyg_nandp_read_page(prt, pg, tmp, 0, 0));
 
     /* Mark bad, check the table is as expected, ensure we can't read it */
     //MUST(0==cyg_nand_bbti_markbad(dev, rblk));
     //MUST(0==cyg_nand_bbt_markbad(prt, rblk));
-    MUST(0==cyg_nand_bbt_markbad_pageaddr(prt, pg));
+    MUST(0==cyg_nandp_bbt_markbad_pageaddr(prt, pg));
 
     bbt2 = malloc(MYBBTSIZE(dev));
     read_bbt(dev, bbt2);
@@ -134,14 +134,14 @@ int cyg_user_start(void)
             MUST(bbt1[i]==bbt2[i]);
         }
     }
-    MUST(0!=cyg_nand_read_page(prt, pg, tmp, NAND_BYTES_PER_PAGE(dev), 0, 0));
+    MUST(0!=cyg_nandp_read_page(prt, pg, tmp, 0, 0));
 
     /* Now revert */
     MUST(0==cyg_nand_bbti_markany(dev, rblk, CYG_NAND_BBT_OK));
     read_bbt(dev, bbt2);
     for (i=0; i<MYBBTSIZE(dev); i++)
         MUST(bbt1[i]==bbt2[i]);
-    MUST(0==cyg_nand_read_page(prt, pg, tmp, NAND_BYTES_PER_PAGE(dev), 0, 0));
+    MUST(0==cyg_nandp_read_page(prt, pg, tmp, 0, 0));
 
     CYG_TEST_PASS_FINISH("NAND read/BBT functional check");
     return 0;