From fc8eccdf0b7b131fb0c51892dfc19fc977f77276 Mon Sep 17 00:00:00 2001 From: Vaibhav Hiremath Date: Mon, 20 Jul 2009 22:14:59 +0530 Subject: [PATCH] board.c: check for u-boot on mmc on all configurations, not just those with managed nand Pulled from 9fc86b52c5770575b9b02c0049446fa8e266e714 commit of sakoman's tree --- lib/board.c | 60 +++++++++++++++++++++++++--------------------------------- 1 files changed, 26 insertions(+), 34 deletions(-) diff --git a/lib/board.c b/lib/board.c index 9dcc31a..11e87da 100644 --- a/lib/board.c +++ b/lib/board.c @@ -50,7 +50,7 @@ init_fnc_t *init_sequence[] = { serial_init, /* serial communications setup */ print_info, #endif - nand_init, /* board specific nand init */ + nand_init, /* board specific nand init */ NULL, }; @@ -68,42 +68,34 @@ void start_armboot (void) buf = (uchar*) CFG_LOADADDR; -#if defined (CONFIG_OMAP34XX) - if ((get_mem_type() == MMC_ONENAND) || (get_mem_type() == MMC_NAND)){ - printf("Booting from mmc . . .\n"); - buf += mmc_boot(buf); - } - - if (get_mem_type() == GPMC_ONENAND){ - printf("Booting from onenand . . .\n"); - for (i = ONENAND_START_BLOCK; i < ONENAND_END_BLOCK; i++){ - if (!onenand_read_block(buf, i)) - buf += ONENAND_BLOCK_SIZE; - } - } - - if (get_mem_type() == GPMC_NAND){ - printf("Booting from nand . . .\n"); - for (i = NAND_UBOOT_START; i < NAND_UBOOT_END; i+= NAND_BLOCK_SIZE){ - if (!nand_read_block(buf, i)) - buf += NAND_BLOCK_SIZE; /* advance buf ptr */ - } - } -#elif defined (CONFIG_OMAP3517EVM) - if (get_mem_type() == GPMC_NAND){ - printf("Booting from mmc . . .\n"); - buf += mmc_boot(buf); - } +#ifdef CONFIG_MMC + /* first try mmc */ + buf += mmc_boot(buf); +#endif - if (buf == (uchar *)CFG_LOADADDR){ - printf("Booting from nand . . .\n"); - for (i = NAND_UBOOT_START; i < NAND_UBOOT_END; i+= NAND_BLOCK_SIZE){ - if (!nand_read_block(buf, i)) - buf += NAND_BLOCK_SIZE; /* advance buf ptr */ + if (buf == (uchar *)CFG_LOADADDR) { + /* if no u-boot on mmc, try onenand and nand */ +#if !defined (CONFIG_OMAP3517EVM) + if (get_mem_type() == GPMC_ONENAND){ +#ifdef CFG_PRINTF + printf("Booting from onenand . . .\n"); +#endif + for (i = ONENAND_START_BLOCK; i < ONENAND_END_BLOCK; i++){ + if (!onenand_read_block(buf, i)) + buf += ONENAND_BLOCK_SIZE; + } } - } #endif - + if (get_mem_type() == GPMC_NAND){ +#ifdef CFG_PRINTF + printf("Booting from nand . . .\n"); +#endif + for (i = NAND_UBOOT_START; i < NAND_UBOOT_END; i+= NAND_BLOCK_SIZE){ + if (!nand_read_block(buf, i)) + buf += NAND_BLOCK_SIZE; /* advance buf ptr */ + } + } + } if (buf == (uchar *)CFG_LOADADDR) hang(); -- 1.5.4.3