
Dear "Hu Mingkai-B21284",
In message 73839B4A0818E747864426270AC332C303E411DE@zmy16exm20.fsl.freescale.net you wrote:
Cannot this be done with U-Boot, or with Linux running on any other system that das a SDCard reader/writer attached to it?
It's hard to do that, in order to support booting from the SDCard, we place the data structure onto the unused space on the MBR on the SDCard.
What exactly is the difficault part there?
Reading and modifying the MBR is just like reading or writing any other block on the device. Where is the problem?
@@ -2360,6 +2360,18 @@ ATUM8548_config: unconfig MPC8536DS_config: unconfig @$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8536ds freescale
+MPC8536DS_SPIFLASH_config \ +MPC8536DS_SDCARD_config: unconfig
- @echo "" >$(obj)include/config.h;
- @if [ "$(findstring _SPIFLASH_,$@)" ] ; then \
echo "#define CONFIG_SPIFLASH_U_BOOT" >>
$(obj)include/config.h ; \
- fi ;
- @echo "#define CONFIG_SDCARD_U_BOOT" >> $(obj)include/config.h ;
- @$(MKCONFIG) -a MPC8536DS ppc mpc85xx mpc8536ds freescale ; \
echo "TEXT_BASE = 0x11001000" >
$(obj)board/freescale/mpc8536ds/config.tmp ; \
echo "#define CONFIG_SDCARD_U_BOOT" >>
$(obj)include/config.h ; \
echo "CONFIG_SDCARD_U_BOOT = y" >>
$(obj)include/config.mk ;
Please do noty swamp the top level Makefile with configuration options for one board.
Could you give me some suggestion? ;-) Where is the proper position to handle this?
Options if a board has (or uses) SPI flash and/or a SDCard and/or other things belong into the board config file. It makes no sense to provide long lists of make targets and then again long code to analyze these options in the top level Makefile. For example, above code would not allow for the case that a customer wants to use a board with SPI flash *and* SDCard - it covers only the *or* case. And no, please do not attempt to add even more such targets. This is not the way to go. It doesn't scale.
Assume each of the hundrets of boards would add code like this.
--- a/config.mk +++ b/config.mk @@ -112,8 +112,8 @@ DBGFLAGS= -g # -DDEBUG OPTFLAGS= -Os #-fomit-frame-pointer ifndef LDSCRIPT #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug -ifeq ($(CONFIG_NAND_U_BOOT),y) -LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds +ifeq ($(CONFIG_SDCARD_U_BOOT),y) +LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-sdboot.lds else LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds endif
Is it absolutely necessary to set this in the top level config.mk file?
Maybe combined with u-boot.lds.
Or moved to a processor or board specific config.mk.
Best regards,
Wolfgang Denk