Mercurial > nand-ecoscentric
diff packages/io/nand/current/src/nand.c @ 3384:1229083b0af1
cdl/nand.cdl src/nand.c utils/erasenand.c: Create CYGSEM_IO_NAND_ALLOW_ERASE_WORNBAD.
| author | Ross Younger <wry@ecoscentric.com> |
|---|---|
| date | Sat, 21 Jun 2014 22:52:44 +1200 |
| parents | 6d93cd3d3350 |
| children | 3ec9445648cd |
line wrap: on
line diff
--- a/packages/io/nand/current/src/nand.c +++ b/packages/io/nand/current/src/nand.c @@ -667,7 +667,7 @@ int cyg_nandp_erase_block(cyg_nand_parti #else PARTITION_CHECK(prt); cyg_nand_device *dev = prt->dev; - int rv; + int rv, state; DEV_INIT_CHECK(dev); cyg_nand_block_addr blk = BLOCK_P_TO_D(prt, pblk); @@ -677,7 +677,12 @@ int cyg_nandp_erase_block(cyg_nand_parti EG(valid_block_addr(prt, blk)); #ifdef CYGSEM_IO_NAND_USE_BBT - if (cyg_nand_bbti_query(dev, blk) != CYG_NAND_BBT_OK) { + state = cyg_nand_bbti_query(dev, blk); + if ( (state != CYG_NAND_BBT_OK) +#ifdef CYGSEM_IO_NAND_ALLOW_ERASE_WORNBAD + && (state != CYG_NAND_BBT_WORNBAD) +#endif + ) { NAND_CHATTER(1,dev,"Asked to erase bad block %u\n", blk); EG(-EINVAL); }
