[U-Boot] [PATCH] [ONENAND] Add markbad function

Add missing markbad function If not, it's hang when it entered the mtd->mard_bad().
It's not against the u-boot-nand.
Signed-off-by: Kyungmin Park kyungmin.park@samsung.com --- diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index a54098c..0dc99be 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c @@ -1589,6 +1589,37 @@ int onenand_block_isbad(struct mtd_info *mtd, loff_t ofs) }
/** + * onenand_default_block_markbad - [DEFAULT] mark a block bad + * @param mtd MTD device structure + * @param ofs offset from device start + * + * This is the default implementation, which can be overridden by + * a hardware specific driver. + */ +static int onenand_default_block_markbad(struct mtd_info *mtd, loff_t ofs) +{ + struct onenand_chip *this = mtd->priv; + struct bbm_info *bbm = this->bbm; + u_char buf[2] = {0, 0}; + struct mtd_oob_ops ops = { + .mode = MTD_OOB_PLACE, + .ooblen = 2, + .oobbuf = buf, + .ooboffs = 0, + }; + int block; + + /* Get block number */ + block = ((int) ofs) >> bbm->bbt_erase_shift; + if (bbm->bbt) + bbm->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1); + + /* We write two bytes, so we dont have to mess with 16 bit access */ + ofs += mtd->oobsize + (bbm->badblockpos & ~0x01); + return onenand_write_oob_nolock(mtd, ofs, &ops); +} + +/** * onenand_block_markbad - [MTD Interface] Mark the block at the given offset as bad * @param mtd MTD device structure * @param ofs offset relative to mtd start @@ -2051,6 +2082,8 @@ int onenand_scan(struct mtd_info *mtd, int maxchips) if (!this->write_bufferram) this->write_bufferram = onenand_write_bufferram;
+ if (!this->block_markbad) + this->block_markbad = onenand_default_block_markbad; if (!this->scan_bbt) this->scan_bbt = onenand_default_bbt;

On Thu, Nov 13, 2008 at 03:14:33PM +0900, Kyungmin Park wrote:
Add missing markbad function If not, it's hang when it entered the mtd->mard_bad().
Applied to u-boot-nand-flash/next.
It's not against the u-boot-nand.
Hmm? It appears to apply to the NAND next branch, and not mainline...
-Scott
participants (2)
-
Kyungmin Park
-
Scott Wood