need suggestions

Brian Kuschak bkuschak at yahoo.com
Wed Nov 24 08:57:33 EST 1999


Jim,

Here's yet another way to do it.  We used a section
called .gzimage, but you could just as easily add it
to .text instead.  Instead of using the
link/objcopy/compile/link method in the Makefile, do
this instead:


zvmlinux: $(OBJECTS) ../coffboot/vmlinux.gz
      $(OBJCOPY) $(OBJCOPY_ARGS) -R .gzimage gzimage.o
      $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment
--add-section=.gzimage=../coffboot/vmlinux.gz
--set-section-flags=.gzimage=alloc,load,readonly,data
gzimage.o
      $(LD) $(ZLINKFLAGS) -o $@ $(OBJECTS)
     powerpc-elf-strip --strip-all $@

Create a dummy file called gzimage.c, where the zImage
data will be copied into section .gzimage:

/*
 * gzimage.c
 *
 * dummy file to allow a compressed zImage to be added
 * into a linker section, accessible by the boot code.
 */
char dummydummy;


Then add the following to the vmlinux.lds script, and
reference these symbols in your loader as extern
char[].  Modify the loader to load zImage data from
these addresses instead.  I think this method will
work for initrd as well.

/* For loader only: Put the zImage after everything
 * else
 */
  _gzstart = . ;
  .gzimage : { *(.gzimage) }
  _gzend = . ;



-Brian Kuschak


> ... had to find
> a way to put the
> image section inside the text segment so that the
> image data would be
> copied by the vxworks bootrom. There may be a clever
> way to do that
> using ld scripts...


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list