Hi Kyungmin, Thanks for revisit the patch.
2013/2/5 Kyungmin Park <kmp...@infradead.org>: > Hi, > > On Tue, Feb 5, 2013 at 6:23 PM, Enric Balletbo i Serra > <eballe...@gmail.com> wrote: >> From: Enric Balletbo i Serra <eballe...@iseebcn.com> >> >> This patch will allow use SPL to boot an u-boot from the OneNAND. >> >> Tested with IGEPv2 board with a OneNAND from Numonyx. >> >> Signed-off-by: Enric Balletbo i Serra <eballe...@iseebcn.com> >> --- >> arch/arm/cpu/armv7/omap3/board.c | 2 +- > It's not related with OneNAND SPL patch, can you split it two patches? Ok, I'll do in v2. >> common/spl/Makefile | 1 + >> common/spl/spl.c | 5 +++++ >> common/spl/spl_onenand.c | 45 >> ++++++++++++++++++++++++++++++++++++++ >> 4 files changed, 52 insertions(+), 1 deletion(-) >> create mode 100644 common/spl/spl_onenand.c >> >> diff --git a/arch/arm/cpu/armv7/omap3/board.c >> b/arch/arm/cpu/armv7/omap3/board.c >> index 89c587e..63063c8 100644 >> --- a/arch/arm/cpu/armv7/omap3/board.c >> +++ b/arch/arm/cpu/armv7/omap3/board.c >> @@ -110,7 +110,7 @@ int board_mmc_init(bd_t *bis) >> >> void spl_board_init(void) >> { >> -#ifdef CONFIG_SPL_NAND_SUPPORT >> +#if defined(CONFIG_SPL_NAND_SUPPORT) || defined(CONFIG_SPL_ONENAND_SUPPORT) >> gpmc_init(); >> #endif >> #ifdef CONFIG_SPL_I2C_SUPPORT >> diff --git a/common/spl/Makefile b/common/spl/Makefile >> index 5698a23..da2afc1 100644 >> --- a/common/spl/Makefile >> +++ b/common/spl/Makefile >> @@ -18,6 +18,7 @@ COBJS-$(CONFIG_SPL_FRAMEWORK) += spl.o >> COBJS-$(CONFIG_SPL_NOR_SUPPORT) += spl_nor.o >> COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += spl_ymodem.o >> COBJS-$(CONFIG_SPL_NAND_SUPPORT) += spl_nand.o >> +COBJS-$(CONFIG_SPL_ONENAND_SUPPORT) += spl_onenand.o >> COBJS-$(CONFIG_SPL_NET_SUPPORT) += spl_net.o >> endif >> >> diff --git a/common/spl/spl.c b/common/spl/spl.c >> index ff9ba7b..c584247 100644 >> --- a/common/spl/spl.c >> +++ b/common/spl/spl.c >> @@ -197,6 +197,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2) >> spl_nand_load_image(); >> break; >> #endif >> +#ifdef CONFIG_SPL_ONENAND_SUPPORT >> + case BOOT_DEVICE_ONE_NAND: > ONE_NAND? It should be ONENAND. Well, I used ONE_NAND because this define was already defined in arch/arm/include/asm/arch-omap3/spl.h:29:#define BOOT_DEVICE_ONE_NAND 3 arch/arm/include/asm/arch-omap5/spl.h:30:#define BOOT_DEVICE_ONE_NAND 4 arch/arm/include/asm/arch-omap4/spl.h:30:#define BOOT_DEVICE_ONE_NAND 4 arch/arm/include/asm/arch-mx35/spl.h:30:#define BOOT_DEVICE_ONE_NAND 4 For me, also looks better use ONENAND, but then, I need to change all these defines. What do you prefer ? Maintain the use of ONE_NAND or change these defines ? >> + spl_onenand_load_image(); >> + break; >> +#endif >> #ifdef CONFIG_SPL_NOR_SUPPORT >> case BOOT_DEVICE_NOR: >> spl_nor_load_image(); >> diff --git a/common/spl/spl_onenand.c b/common/spl/spl_onenand.c >> new file mode 100644 >> index 0000000..247f97b >> --- /dev/null >> +++ b/common/spl/spl_onenand.c >> @@ -0,0 +1,45 @@ >> +/* >> + * Copyright (C) 2011 >> + * Corscience GmbH & Co. KG - Simon Schwarz <schw...@corscience.de> >> + * >> + * See file CREDITS for list of people who contributed to this >> + * project. >> + * >> + * This program is free software; you can redistribute it and/or >> + * modify it under the terms of the GNU General Public License as >> + * published by the Free Software Foundation; either version 2 of >> + * the License, or (at your option) any later version. >> + * >> + * This program is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> + * GNU General Public License for more details. >> + * >> + * You should have received a copy of the GNU General Public License >> + * along with this program; if not, write to the Free Software >> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, >> + * MA 02111-1307 USA >> + */ >> +#include <common.h> >> +#include <config.h> >> +#include <spl.h> >> +#include <asm/io.h> >> +#include <onenand_uboot.h> >> + >> +void spl_onenand_load_image(void) >> +{ >> + struct image_header *header; >> + int *src __attribute__((unused)); >> + int *dst __attribute__((unused)); > why these are needed? just remove these. > Right, I'll remove. > Thank you, > Kyungmin Park >> + >> + debug("spl: onenand\n"); >> + >> + /*use CONFIG_SYS_TEXT_BASE as temporary storage area */ >> + header = (struct image_header *)(CONFIG_SYS_TEXT_BASE); >> + /* Load u-boot */ >> + onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, >> + CONFIG_SYS_ONENAND_PAGE_SIZE, (void *)header); >> + spl_parse_image_header(header); >> + onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, >> + spl_image.size, (void *)spl_image.load_addr); >> +} >> -- >> 1.7.10.4 >> >> _______________________________________________ >> U-Boot mailing list >> U-Boot@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot Thanks, Enric _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot