blob: a5800e249962906cfbb8d32fe69ea2e3bbd4d820 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
This patch makes nand_block_checkbad check both the BBT and the actual
OOB data. This avoids accidently passing blocks as good when BBT and
OOB markers are not synchronized, e.g., before "nand createbbt".
Experimental.
- Werner Almesberger <werner@openmoko.org>
Index: u-boot/drivers/nand/nand_base.c
===================================================================
--- u-boot.orig/drivers/nand/nand_base.c
+++ u-boot/drivers/nand/nand_base.c
@@ -517,11 +517,14 @@ static int nand_block_checkbad (struct m
{
struct nand_chip *this = mtd->priv;
- if (!this->bbt)
- return this->block_bad(mtd, ofs, getchip);
+ if (this->block_bad(mtd, ofs, getchip))
+ return 1;
/* Return info from the table */
- return nand_isbad_bbt (mtd, ofs, allowbbt);
+ if (this->bbt && nand_isbad_bbt (mtd, ofs, allowbbt))
+ return 1;
+
+ return 0;
}
/**
|