Re: [PATCH] SPARC: added U-Boot build target: uImage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sam,

On Wed, 5 Jan 2011 20:19:15  0100, Sam Ravnborg  wrote:
Hi Daniel. >
 > On Wed, Jan 05, 2011 at 11:42:40AM  0100, Daniel Hellstrom wrote:
> > This is only for LEON as u-boot for SPARC only supports LEON. > >
 > > Signed-off-by: Daniel Hellstrom <daniel@xxxxxxxxxxx>
 > > ---
 > >  arch/sparc/Makefile      |    3   -
 > >  arch/sparc/boot/Makefile |   36
 > >  2 files changed, 38 insertions( ), 1 deletions(-)
 > >
 > > diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
 > > index 113225b..012d289 100644
 > > --- a/arch/sparc/Makefile
 > >     b/arch/sparc/Makefile
 > > @@ -88,7  88,7 @@ boot := arch/sparc/boot
 > >  # Default target
 > >  all: zImage
 > >
 > > -image zImage tftpboot.img vmlinux.aout: vmlinux
 > >  image zImage uImage tftpboot.img vmlinux.aout: vmlinux
 > >   $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 > >
 > >  archclean:
 > > @@ -102,6  102,7 @@ ifeq ($(ARCH),sparc)
 > >  define archhelp
 > >    echo  '* image        - kernel image ($(boot)/image)'
 > >    echo  '* zImage       - stripped kernel image ($(boot)/zImage)'
 > >    echo  '  uImage       - U-Boot SPARC32/LEON Image'
 > >    echo  '  tftpboot.img - image prepared for tftp'
 > >  endef
 > >  else
 > > diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
 > > index 97e3feb..9574958 100644
 > > --- a/arch/sparc/boot/Makefile
 > >     b/arch/sparc/boot/Makefile
 > > @@ -5,6  5,7 @@
 > >
 > >  ROOT_IMG := /usr/src/root.img
 > >  ELFTOAOUT := elftoaout
 > >  MKIMAGE  := $(srctree)/scripts/mkuboot.sh
 > >
 > >  hostprogs-y := piggyback_32 piggyback_64 btfixupprep
 > >  targets := tftpboot.img btfix.o btfix.S image zImage vmlinux.aout
> > @@ -90,5 91,40 @@ $(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback_64 System.map $(ROOT_IMG) FOR
 > >  $(obj)/vmlinux.aout: vmlinux FORCE
 > >   $(call if_changed,elftoaout)
 > >   @echo '  kernel: $@ is ready'
 > >  else
 > >
> > # The following lines make a readable image for U-Boot. > > # uImage - Binary file read by U-boot
 > >  #  uImage.o - object file of uImage for loading with a
> > # flash programmer understanding ELF. > >
 > >  OBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment
 > >  $(obj)/image.bin: $(obj)/image FORCE
 > >   $(call if_changed,objcopy)
 > >
 > >  $(obj)/image.gz: $(obj)/image.bin
 > >   $(call if_changed,gzip)
 > >
> > # Start of Main memory which this Linux kernel will be loaded to. > > ifndef UIMAGE_LOADADDR
 > >  UIMAGE_LOADADDR=0x40004000
 > >  endif
 > >
 >
 > Rather than hardcoding such addresses in the Makefile could
 > we come up with something so we get board support
 > included in the KConfig files?
 Â
Of course, however is that really good, I mean we don't want to rebuild the kernel just to change the load location. One kernel may end up at different addresses at different boards... Â It is not really hardcoded, it is just the default address, one can override the defualt address by adding a define at the make line, for example: $ make ARCH=sparc CROSS_COMPILE=sparc-linux- UIMAGE_LOADADDR=0x00004000 uImage
 Â
 >
 > I for once would love to be able to select
 > "GR-LEON4-ITX" in Kconfig and then everything is
> set correct up concerning LOADADDR for uimage. Â There are very many different boards to support, that is a lot of job maintaining, I'm not sure we want to go there. Note that the LEON is a SoC and that there a lot of different chips, and a lot of different boards... Why the LEON3 port works without a BSP between the different chips/boards are thanks to Plug&Play at the processor local bus... The standard location of all LEON3 is basically 0x40004000 or 0x60004000 (if two memory interfaces are supported), I can only think of one chip that has this different. Â
 >
> Same goes for the start address which is hardcoded to 0xf0004000. >
 > I looked briefly at the other archs but did not find a good one
> to copy this from. >
 >
> > # The first sector after the U-Boot image (512k). Override this accoring to > > # your u-boot binary size and FLASH block size. > > ifndef UIMAGE_FLASHADDR
 > >  UIMAGE_FLASHADDR=0x00080000
 > >  endif
 > >
 > >  quiet_cmd_uimage = UIMAGE  $@
> > cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sparc -O linux -T kernel \ > > -C gzip -a $(UIMAGE_LOADADDR) -e 0xf0004000 -n 'Linux-$(KERNELRELEASE)' \
 > >                 -d $< $@
 > >
 > >  targets  = uImage
 > >  $(obj)/uImage: $(obj)/image.gz
 > >   $(call if_changed,uimage)
> > sparc-linux-ld -Tdata $(UIMAGE_FLASHADDR) -r -b binary arch/sparc/boot/uImage -o arch/sparc/boot/uImage.o
 > >   @echo '  Image $@ is ready'
 >
 > What is the purpose of uImage.o?
The uImage is readable by u-boot and can be loaded into memory by U-BOOT, however sometimes is easier to load the uImage image directly into RAM/FLASH using a tool such as GRMON/TSIM/GRSIM. So the uImage.o is an ELF image ready to be loaded into memory using a debugger of some sort, just for convenience when networking isn't available for u-boot or when a system is first time programmed before shipping... Â > At least sh does not have it - but thay have a lot of other U-boot targets. > And can we fix is so we get a nice display when the command is executed?
 Â
 what do you what to be printed? is another echo enough?
 Â
 Best Regards,
 Daniel
 Â

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux