X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fmtd%2Fonenand%2Fonenand_uboot.c;h=c642016c2d2ed482a903ecf6f2ead3f119008c76;hb=09b4a9cf4003599f2cd609587dfa5f0b754640ed;hp=bd7466ac9d95dc8155790c36ff4f46f3d18e6d74;hpb=2468592d79891fea4f39d0a414c7316f3af03f4c;p=u-boot diff --git a/drivers/mtd/onenand/onenand_uboot.c b/drivers/mtd/onenand/onenand_uboot.c index bd7466ac9d..c642016c2d 100644 --- a/drivers/mtd/onenand/onenand_uboot.c +++ b/drivers/mtd/onenand/onenand_uboot.c @@ -14,28 +14,43 @@ */ #include - -#ifdef CONFIG_CMD_ONENAND - #include #include #include struct mtd_info onenand_mtd; struct onenand_chip onenand_chip; +static __attribute__((unused)) char dev_name[] = "onenand0"; void onenand_init(void) { memset(&onenand_mtd, 0, sizeof(struct mtd_info)); memset(&onenand_chip, 0, sizeof(struct onenand_chip)); - onenand_chip.base = (void *) CFG_ONENAND_BASE; onenand_mtd.priv = &onenand_chip; +#ifdef CONFIG_USE_ONENAND_BOARD_INIT + /* + * It's used for some board init required + */ + onenand_board_init(&onenand_mtd); +#else + onenand_chip.base = (void *) CONFIG_SYS_ONENAND_BASE; +#endif + onenand_scan(&onenand_mtd, 1); + if (onenand_chip.device_id & DEVICE_IS_FLEXONENAND) + puts("Flex-"); puts("OneNAND: "); - print_size(onenand_mtd.size, "\n"); + print_size(onenand_chip.chipsize, "\n"); + +#ifdef CONFIG_MTD_DEVICE + /* + * Add MTD device so that we can reference it later + * via the mtdcore infrastructure (e.g. ubi). + */ + onenand_mtd.name = dev_name; + add_mtd_device(&onenand_mtd); +#endif } - -#endif /* CONFIG_CMD_ONENAND */