Hi Lei Wen, On 31 July 2011 12:26, Lei Wen <adrian.w...@gmail.com> wrote:
> 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? > > 0x02020030 is iROM address, which contains pointer to API (copy from mmc from DDR) in iROM. Best regards, > Lei > -- with warm regards, Chander Kashyap
_______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev