Hi Chander, On Fri, Jul 29, 2011 at 12:41 PM, Chander Kashyap <chander.kash...@linaro.org> wrote: > Adds mmc boot support. > > Signed-off-by: Chander Kashyap <chander.kash...@linaro.org> > --- > mmc_spl/board/samsung/origen/Makefile | 106 ++++++++++++++++ > mmc_spl/board/samsung/origen/mmc_boot.c | 57 +++++++++ > mmc_spl/board/samsung/origen/tools/mkv310_image.c | 140 > +++++++++++++++++++++ > mmc_spl/board/samsung/origen/u-boot.lds | 88 +++++++++++++ > 4 files changed, 391 insertions(+), 0 deletions(-) > create mode 100644 mmc_spl/board/samsung/origen/Makefile > create mode 100644 mmc_spl/board/samsung/origen/mmc_boot.c > create mode 100644 mmc_spl/board/samsung/origen/tools/mkv310_image.c > create mode 100644 mmc_spl/board/samsung/origen/u-boot.lds > > diff --git a/mmc_spl/board/samsung/origen/Makefile > b/mmc_spl/board/samsung/origen/Makefile > new file mode 100644 > index 0000000..1d61cc0 > --- /dev/null > +++ b/mmc_spl/board/samsung/origen/Makefile > @@ -0,0 +1,106 @@ > +# > +# (C) Copyright 2006-2007 > +# Stefan Roese, DENX Software Engineering, s...@denx.de. > +# > +# (C) Copyright 2008 > +# Guennadi Liakhovetki, DENX Software Engineering, <l...@denx.de> > +# > +# (C) Copyright 2011 > +# Chander Kashyap, Samsung Electronics, <k.chan...@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)/mmc_spl/board/$(BOARDDIR)/u-boot.lds > +LDFLAGS = -Bstatic -T $(mmcobj)u-boot.lds -Ttext > $(CONFIG_SYS_TEXT_BASE) $(PLATFORM_LDFLAGS) > +AFLAGS += -DCONFIG_MMC_SPL > +AFLAGS += -DCONFIG_SPL_BUILD > +CFLAGS += -DCONFIG_MMC_SPL > +CFLAGS += -DCONFIG_SPL_BUILD > + > +SOBJS = start.o mem_setup.o lowlevel_init.o > +COBJS = mmc_boot.o > + > +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) > +OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) > +__OBJS := $(SOBJS) $(COBJS) > +LNDIR := $(OBJTREE)/mmc_spl/board/$(BOARDDIR) > + > +mmcobj := $(OBJTREE)/mmc_spl/ > + > + > +MKV310_MMC_SPL_EXEC = mkv310_mmc_spl_exec > +MMC_SPL_BIN = u-boot-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/$(MKV310_MMC_SPL_EXEC) > + ./tools/$(MKV310_MMC_SPL_EXEC) $(mmcobj)u-boot-spl.bin > $(mmcobj)$(MMC_SPL_BIN) > + rm -f tools/$(MKV310_MMC_SPL_EXEC) > + > +tools/$(MKV310_MMC_SPL_EXEC): tools/mkv310_image.c > + $(HOSTCC) tools/mkv310_image.c -o tools/$(MKV310_MMC_SPL_EXEC) > + > +$(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 > +start.S: > + @rm -f $@ > + @ln -s $(TOPDIR)/arch/arm/cpu/armv7/start.S $@ > + > +# from board directory > +mem_setup.S: > + @rm -f $@ > + @ln -s $(TOPDIR)/board/samsung/origen/mem_setup.S $@ > + > +lowlevel_init.S: > + @rm -f $@ > + @ln -s $(TOPDIR)/board/samsung/origen/lowlevel_init.S $@ > + > +######################################################################### > + > +$(obj)%.o: %.S > + $(CC) $(AFLAGS) -c -o $@ $< > + > +$(obj)%.o: %.c > + $(CC) $(CFLAGS) -c -o $@ $< > + > +# defines $(obj).depend target > +include $(SRCTREE)/rules.mk > + > +sinclude $(obj).depend > + > +######################################################################### > diff --git a/mmc_spl/board/samsung/origen/mmc_boot.c > b/mmc_spl/board/samsung/origen/mmc_boot.c > new file mode 100644 > index 0000000..d9b44d8 > --- /dev/null > +++ b/mmc_spl/board/samsung/origen/mmc_boot.c > @@ -0,0 +1,57 @@ > +/* > + * 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)*(u32 > *)(0x02020030); > + copy_bl2(BL2_START_OFFSET,\ > + BL2_SIZE_BLOC_COUNT, (u32 *)CONFIG_SYS_TEXT_BASE); > +}
Curious to know, what the 0x02020030 hardcoding number means here? It is a pointer to a API or hardware register, or anything else, how this simple function perform the data transfer from mmc to ram? Best regards, Lei _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot