[PATCH] don't scan bbt if CONFIG_NAND_BBT not set
Sascha Hauer
s.hauer at pengutronix.de
Mon Nov 4 03:29:35 EST 2013
On Mon, Nov 04, 2013 at 11:36:49AM +0800, 张忠山 wrote:
> From: 张忠山 <zzs0213 at gmail.com>
>
> when CONFIG_NAND_BBT not set, chip->scan_bbt is NULL and
> NAND_SKIP_BBTSCAN not set. So barebox crashed, this is the message
>
> ......
>
> nand: ONFI param page 0 valid
> nand: ONFI flash detected
> nand: NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08AAD), 256MiB, page size: 2048, OOB size: 64
> prefetch abort
> pc : [<00000004>] lr : [<23f0b8d0>]
> sp : 23ffff08 ip : 7fffffff fp : 00000000
> r10: 04000000 r9 : 00000000 r8 : 00000001
> r7 : 23b637f8 r6 : 00000000 r5 : 23b63ad4 r4 : 23b638b4
> r3 : 00000000 r2 : fffff200 r1 : 0000000a r0 : 23b63ad4
> Flags: nZCv IRQs off FIQs off Mode SVC_32
>
> may be the best solution is set NAND_SKIP_BBTSCAN somewhere when
> CONFIG_NAND_BBT not selected, but I don't known where is the best
> position.
I think it's ok like you did.
>
> Signed-off-by: 张忠山 <zzs0213 at gmail.com>
> ---
> drivers/mtd/nand/nand_base.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index d249565..1dbd5bf 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3597,8 +3597,12 @@ int nand_scan_tail(struct mtd_info *mtd)
> if (chip->options & NAND_SKIP_BBTSCAN)
> return 0;
>
> +#ifdef CONFIG_NAND_BBT
> /* Build bad block table */
> return chip->scan_bbt(mtd);
> +#else
> + return 0;
> +#endif
I applied this with:
if (!IS_ENABLED(CONFIG_NAND_BBT))
return 0;
Please use IS_ENABLED() where appropriate in future since it's easier to
read and leads to better compile coverage.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list