From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 31 Oct 2011 17:09:43 -0500 Subject: [U-Boot] [PATCH v5 05/11] arm, davinci: add support for new spl framework In-Reply-To: <1320036790-24283-6-git-send-email-hs@denx.de> References: <1320036790-24283-1-git-send-email-hs@denx.de> <1320036790-24283-6-git-send-email-hs@denx.de> Message-ID: <4EAF1CA7.5010403@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 10/30/2011 11:53 PM, Heiko Schocher wrote: > diff --git a/arch/arm/cpu/arm926ejs/davinci/spl_nand.c b/arch/arm/cpu/arm926ejs/davinci/spl_nand.c > new file mode 100644 > index 0000000..efc0521 > --- /dev/null > +++ b/arch/arm/cpu/arm926ejs/davinci/spl_nand.c > @@ -0,0 +1,57 @@ > +/* > + * Copyright (C) 2011 > + * Heiko Schocher, DENX Software Engineering, hs at denx.de. > + * > + * 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 > +#include > +#include Does this file use anything from asm/io.h? > +/* > + * The main entry for NAND booting. It's necessary that SDRAM is already > + * configured and available since this code loads the main U-Boot image > + * from NAND into SDRAM and starts it from there. > + */ > +void nand_boot(void) > +{ > + int ret; > + __attribute__((noreturn)) void (*uboot)(void); > + > + /* > + * Load U-Boot image from NAND into RAM > + */ > + ret = nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS, > + CONFIG_SYS_NAND_U_BOOT_SIZE, > + (void *)CONFIG_SYS_NAND_U_BOOT_DST); > + > +#ifdef CONFIG_NAND_ENV_DST > + ret = nand_spl_load_image(CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, > + (void *)CONFIG_NAND_ENV_DST); > + > +#ifdef CONFIG_ENV_OFFSET_REDUND > + ret = nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND, CONFIG_ENV_SIZE, > + (void *)CONFIG_NAND_ENV_DST + CONFIG_ENV_SIZE); > +#endif > +#endif > + > + /* > + * Jump to U-Boot image > + */ > + uboot = (void *)CONFIG_SYS_NAND_U_BOOT_START; > + (*uboot)(); > +} This is common to most NAND SPLs. It would be nice to stick this in a common place (at least the loading part, maybe not the jump). Not nand_spl_simple.c, as it's utility is not limited to the simple driver. Maybe drivers/mtd/nand/nand_spl_load.c? -Scott