[U-Boot] [PATCH 2/3 V5] Remove board_init_f function from nand_boot.c

Remove the board_init_f function from nand_spl/nand_boot.c. This function is to be defined by all boards using the nand_spl functionality in their individual board directory.
Currently this function was being used by the smdk6400 board. Added the board specific function definition.
Signed-off-by: Sughosh Ganu urwithsughosh@gmail.com Acked-by: Scott Wood scottwood@freescale.com --- Changes since V4: * Modified the subject line to indicate the correct function name being deleted * Updated w.r.t mainline tot.
board/samsung/smdk6400/smdk6400_nand_spl.c | 37 ++++++++++++++++++++++++++++ nand_spl/board/samsung/smdk6400/Makefile | 6 ++++- nand_spl/nand_boot.c | 8 ------ 3 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 board/samsung/smdk6400/smdk6400_nand_spl.c
diff --git a/board/samsung/smdk6400/smdk6400_nand_spl.c b/board/samsung/smdk6400/smdk6400_nand_spl.c new file mode 100644 index 0000000..a023284 --- /dev/null +++ b/board/samsung/smdk6400/smdk6400_nand_spl.c @@ -0,0 +1,37 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Marius Groeger mgroeger@sysgo.de + * + * (C) Copyright 2002 + * David Mueller, ELSOFT AG, d.mueller@elsoft.ch + * + * (C) Copyright 2008 + * Guennadi Liakhovetki, DENX Software Engineering, lg@denx.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> + +void board_init_f(unsigned long bootflag) +{ + relocate_code(CONFIG_SYS_TEXT_BASE - TOTAL_MALLOC_LEN, NULL, + CONFIG_SYS_TEXT_BASE); +} diff --git a/nand_spl/board/samsung/smdk6400/Makefile b/nand_spl/board/samsung/smdk6400/Makefile index 2111e57..18cee10 100644 --- a/nand_spl/board/samsung/smdk6400/Makefile +++ b/nand_spl/board/samsung/smdk6400/Makefile @@ -35,7 +35,7 @@ AFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL
SOBJS = start.o cpu_init.o lowlevel_init.o -COBJS = nand_boot.o nand_ecc.o s3c64xx.o +COBJS = nand_boot.o nand_ecc.o s3c64xx.o smdk6400_nand_spl.o
SRCS := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c)) OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) @@ -93,6 +93,10 @@ $(obj)s3c64xx.c: @rm -f $@ @ln -s $(TOPDIR)/drivers/mtd/nand/s3c64xx.c $@
+$(obj)smdk6400_nand_spl.c: + @rm -f $@ + @ln -s $(TOPDIR)/board/samsung/smdk6400/smdk6400_nand_spl.c $@ + #########################################################################
$(obj)%.o: $(obj)%.S diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c index d624418..b9fd6f5 100644 --- a/nand_spl/nand_boot.c +++ b/nand_spl/nand_boot.c @@ -221,14 +221,6 @@ static int nand_load(struct mtd_info *mtd, unsigned int offs, return 0; }
-#if defined(CONFIG_ARM) -void board_init_f (ulong bootflag) -{ - relocate_code (CONFIG_SYS_TEXT_BASE - TOTAL_MALLOC_LEN, NULL, - CONFIG_SYS_TEXT_BASE); -} -#endif - /* * 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

Le 01/11/2010 18:59, Sughosh Ganu a écrit :
Remove the board_init_f function from nand_spl/nand_boot.c. This function is to be defined by all boards using the nand_spl functionality in their individual board directory.
Sorry, there's one thing I don't get, but I must admit I don't know the intricacies of NAND booting yet. Why should this be individualized? Seems to me that all boards using nand_spl will have the same board_init_f(), won't they?
Amicalement,

On Mon, Nov 1, 2010 at 11:38 PM, Albert ARIBAUD albert.aribaud@free.frwrote:
Le 01/11/2010 18:59, Sughosh Ganu a écrit :
Remove the board_init_f function from nand_spl/nand_boot.c. This
function is to be defined by all boards using the nand_spl functionality in their individual board directory.
Sorry, there's one thing I don't get, but I must admit I don't know the intricacies of NAND booting yet. Why should this be individualized? Seems to me that all boards using nand_spl will have the same board_init_f(), won't they?
This particular function in nand_boot.c was being used only by the smdk6400. All other boards(notably freescale one's) define their own board_init_f under their board directory. I have made the change on similar lines, as different boards might want to do their own set of initialisations, e.g init console, which was not done here.
-sughosh

On Mon, 1 Nov 2010 19:08:36 +0100 Albert ARIBAUD albert.aribaud@free.fr wrote:
Le 01/11/2010 18:59, Sughosh Ganu a écrit :
Remove the board_init_f function from nand_spl/nand_boot.c. This function is to be defined by all boards using the nand_spl functionality in their individual board directory.
Sorry, there's one thing I don't get, but I must admit I don't know the intricacies of NAND booting yet. Why should this be individualized? Seems to me that all boards using nand_spl will have the same board_init_f(), won't they?
No, some boards could easily require board-specific init during the nand spl phase. There's lots of this on the powerpc side, but it hadn't been required on ARM yet (maybe they do more init in assembly?) -- until now.
-Scott

Le 01/11/2010 19:14, Scott Wood a écrit :
On Mon, 1 Nov 2010 19:08:36 +0100 Albert ARIBAUDalbert.aribaud@free.fr wrote:
Le 01/11/2010 18:59, Sughosh Ganu a écrit :
Remove the board_init_f function from nand_spl/nand_boot.c. This function is to be defined by all boards using the nand_spl functionality in their individual board directory.
Sorry, there's one thing I don't get, but I must admit I don't know the intricacies of NAND booting yet. Why should this be individualized? Seems to me that all boards using nand_spl will have the same board_init_f(), won't they?
No, some boards could easily require board-specific init during the nand spl phase. There's lots of this on the powerpc side, but it hadn't been required on ARM yet (maybe they do more init in assembly?) -- until now.
That answers it -- thanks.
Amicalement,
participants (4)
-
Albert ARIBAUD
-
Scott Wood
-
Sughosh Ganu
-
sughosh ganu