Dear Chander Kashyap,
Sorry to late review.
On 21 April 2011 16:02, Chander Kashyap chander.kashyap@linaro.org wrote:
Added MMC SPL boot support for SMDKV310. This framework design is based on nand_spl support.
Signed-off-by: Chander Kashyap chander.kashyap@linaro.org
Makefile | 9 ++ spl/board/samsung/smdkv310/Makefile | 103 +++++++++++++++++++++++ spl/board/samsung/smdkv310/mmc_boot.c | 82 ++++++++++++++++++ spl/board/samsung/smdkv310/tools/mkv310_image.c | 103 +++++++++++++++++++++++ spl/board/samsung/smdkv310/u-boot.lds | 86 +++++++++++++++++++ 5 files changed, 383 insertions(+), 0 deletions(-) create mode 100644 spl/board/samsung/smdkv310/Makefile create mode 100644 spl/board/samsung/smdkv310/mmc_boot.c create mode 100644 spl/board/samsung/smdkv310/tools/mkv310_image.c create mode 100644 spl/board/samsung/smdkv310/u-boot.lds
diff --git a/Makefile b/Makefile index 713dba1..a298221 100644 --- a/Makefile +++ b/Makefile @@ -321,6 +321,10 @@ ALL += $(obj)u-boot-onenand.bin ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin endif
+ifeq ($(CONFIG_MMC_U_BOOT),y) +ALL += $(obj)spl/v310_mmc_spl.bin
NAK. This naming is SoC specific. And binary is should be located in root directory, I think.. e.g) ALL += $(obj)u-boot-mmc.bin
+endif
all: $(ALL)
$(obj)u-boot.hex: $(obj)u-boot @@ -412,6 +416,11 @@ onenand_ipl: $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk $(obj)u-boot-onenand.bin: onenand_ipl $(obj)u-boot.bin cat $(ONENAND_BIN) $(obj)u-boot.bin > $(obj)u-boot-onenand.bin
+spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend
mmc_spl is better.
- $(MAKE) -C spl/board/$(BOARDDIR) all
+$(obj)spl/v310_mmc_spl.bin: spl
$(VERSION_FILE): @( localvers='$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ; \ printf '#define PLAIN_VERSION "%s%s"\n' \
And you missed clean and clobber sections.
diff --git a/spl/board/samsung/smdkv310/Makefile b/spl/board/samsung/smdkv310/Makefile new file mode 100644 index 0000000..fdede6b --- /dev/null +++ b/spl/board/samsung/smdkv310/Makefile @@ -0,0 +1,103 @@ +# +# (C) Copyright 2006-2007 +# Stefan Roese, DENX Software Engineering, sr@denx.de. +# +# (C) Copyright 2008 +# Guennadi Liakhovetki, DENX Software Engineering, lg@denx.de +# +# (C) Copyright 2011 +# Chander Kashyap, Samsung Electronics, k.chander@samsung.com +# +# 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 +#
+CONFIG_MMC_SPL = y
+include $(TOPDIR)/config.mk
+LDSCRIPT= $(TOPDIR)/spl/board/$(BOARDDIR)/u-boot.lds +LDFLAGS = -Bstatic -T $(mmcobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS) +AFLAGS += -DCONFIG_MMC_SPL +CFLAGS += -DCONFIG_MMC_SPL
Please add -DCONFIG_PRELOADER also.
+SOBJS = start.o mem_setup.o lowlevel_init.o +COBJS = mmc_boot.o
+SRCS := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c)) +OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) +__OBJS := $(SOBJS) $(COBJS) +LNDIR := $(OBJTREE)/spl/board/$(BOARDDIR)
+mmcobj := $(OBJTREE)/spl/
+MKBIN_V310_MMC_SPL_BIN = mkv310_mmc_spl_bin +MMC_SPL_BIN = v310_mmc_spl.bin
+ALL = $(mmcobj)u-boot-spl $(mmcobj)u-boot-spl.bin $(mmcobj)$(MMC_SPL_BIN)
+all: $(obj).depend $(ALL)
+$(mmcobj)$(MMC_SPL_BIN): $(mmcobj)u-boot-spl.bin tools/$(MKBIN_V310_MMC_SPL_BIN)
- ./tools/$(MKBIN_V310_MMC_SPL_BIN) $(mmcobj)u-boot-spl.bin $(mmcobj)$(MMC_SPL_BIN)
+tools/$(MKBIN_V310_MMC_SPL_BIN): tools/mkv310_image.c
- $(HOSTCC) tools/mkv310_image.c -o tools/$(MKBIN_V310_MMC_SPL_BIN)
+$(mmcobj)u-boot-spl.bin: $(mmcobj)u-boot-spl
- $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
+$(mmcobj)u-boot-spl: $(OBJS) $(mmcobj)u-boot.lds
- cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
- -Map $(mmcobj)u-boot-spl.map \
- -o $(mmcobj)u-boot-spl
+$(mmcobj)u-boot.lds: $(LDSCRIPT)
- $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# create symbolic links for common files
+# from cpu directory +$(obj)start.S:
- @rm -f $@
- @ln -s $(TOPDIR)/arch/arm/cpu/armv7/start.S $@
+# from board directory +$(obj)mem_setup.S:
- @rm -f $@
- @ln -s $(TOPDIR)/board/samsung/smdkv310/mem_setup.S $@
+$(obj)lowlevel_init.S:
- @rm -f $@
- @ln -s $(TOPDIR)/board/samsung/smdkv310/lowlevel_init.S $@
+#########################################################################
+$(obj)%.o: $(obj)%.S
- $(CC) $(AFLAGS) -c -o $@ $<
+$(obj)%.o: $(obj)%.c
- $(CC) $(CFLAGS) -c -o $@ $<
+# defines $(obj).depend target +include $(SRCTREE)/rules.mk
+sinclude $(obj).depend
+######################################################################### diff --git a/spl/board/samsung/smdkv310/mmc_boot.c b/spl/board/samsung/smdkv310/mmc_boot.c new file mode 100644 index 0000000..ebb70cf --- /dev/null +++ b/spl/board/samsung/smdkv310/mmc_boot.c @@ -0,0 +1,82 @@ +/*
- Copyright (C) 2011 Samsung Electronics
- 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>
+typedef u32(*copy_sd_mmc_to_mem) \
- (u32 start_block, u32 block_count, u32 *dest_addr);
+void copy_uboot_to_ram(void) +{
- copy_sd_mmc_to_mem copy_bl2 = (copy_sd_mmc_to_mem)(0x00002488);
- copy_bl2(65, BL2_SIZE_BLOC_COUNT, (u32 *)CONFIG_SYS_PHY_UBOOT_BASE);
CONFIG_SYS_PHY_UBOOT_BASE -> CONFIG_SYS_TEXT_BASE?
+}
+void board_init_f(unsigned long bootflag) +{
- __attribute__((noreturn)) void (*uboot)(void);
- copy_uboot_to_ram();
- /*
- * Jump to U-Boot image
- */
please fix this comment
- uboot = (void *)CONFIG_SYS_MMC_UBOOT_START;
- (*uboot)();
- /* Never returns Here */
+}
+#endif diff --git a/spl/board/samsung/smdkv310/tools/mkv310_image.c b/spl/board/samsung/smdkv310/tools/mkv310_image.c new file mode 100644 index 0000000..f28583c --- /dev/null +++ b/spl/board/samsung/smdkv310/tools/mkv310_image.c
Need comment or document for this file. So that people know what is purpose of this file.
Thanks Minkyu Kang