mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-17 23:37:01 +00:00
mtd: spinand: enable erasing of bad mtd blocks
U-Boot is able to erase bad mtd blocks on raw nand devices, but this is not true for spinand flashes. Lets enable this feature for spinand flashes as well. This is extemelly useful for flash testing. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@oktetlabs.ru>
This commit is contained in:
parent
031b89e51b
commit
25f068aa3e
1 changed files with 9 additions and 1 deletions
|
@ -130,10 +130,18 @@ EXPORT_SYMBOL_GPL(nanddev_isreserved);
|
|||
*/
|
||||
int nanddev_erase(struct nand_device *nand, const struct nand_pos *pos)
|
||||
{
|
||||
unsigned int entry;
|
||||
|
||||
if (nanddev_isbad(nand, pos) || nanddev_isreserved(nand, pos)) {
|
||||
pr_warn("attempt to erase a bad/reserved block @%llx\n",
|
||||
nanddev_pos_to_offs(nand, pos));
|
||||
return -EIO;
|
||||
if (nanddev_isreserved(nand, pos))
|
||||
return -EIO;
|
||||
|
||||
/* remove bad block from BBT */
|
||||
entry = nanddev_bbt_pos_to_entry(nand, pos);
|
||||
nanddev_bbt_set_block_status(nand, entry,
|
||||
NAND_BBT_BLOCK_STATUS_UNKNOWN);
|
||||
}
|
||||
|
||||
return nand->ops->erase(nand, pos);
|
||||
|
|
Loading…
Add table
Reference in a new issue