OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [powerpc/] [shared/] [bootloader/] [ppcboot.lds] - Rev 30

Go to most recent revision | Compare with Previous | Blame | View Log

OUTPUT_ARCH(powerpc)
/* OUTPUT_FORMAT(ppcboot) */
/* Do we need any of these for elf?
   __DYNAMIC = 0;    */
SECTIONS
{
  .text :
  {
    /* We have to build the header by hand, painful since ppcboot
        format support is very poor in binutils. 
        objdump -b ppcboot zImage --all-headers can be used to check. */
    /* The following line can be added as a branch to use the same image
     * for netboot as for prepboots, the only problem is that objdump
     * did not in this case recognize the format since it insisted
     * in checking the x86 code area held only zeroes. 
     */
    LONG(0x48000000+start);
    . = 0x1be; BYTE(0x80); BYTE(0)
    BYTE(2); BYTE(0); BYTE(0x41); BYTE(1);
    BYTE(0x12); BYTE(0x4f); LONG(0);
    BYTE(((_edata + 0x1ff)>>9)&0xff); 
    BYTE(((_edata + 0x1ff)>>17)&0xff); 
    BYTE(((_edata + 0x1ff)>>25)&0xff);
    . = 0x1fe;
    BYTE(0x55);
    BYTE(0xaa);
    BYTE(start&0xff);
    BYTE((start>>8)&0xff);
    BYTE((start>>16)&0xff);
    BYTE((start>>24)&0xff);
    BYTE(_edata&0xff);
    BYTE((_edata>>8)&0xff);
    BYTE((_edata>>16)&0xff);
    BYTE((_edata>>24)&0xff);
    BYTE(0); /* flags */
    BYTE(0); /* os_id */
    BYTE(0x4C); BYTE(0x69); BYTE(0x6e); 
    BYTE(0x75); BYTE(0x78); /* Partition name */
    . = 0x400;
    *(.text)
    *(.sdata2)
    *(.rodata)
  }
/*  . = ALIGN(16); */
  .image :
  {
    rtems.gz(*)
    . = ALIGN(4);
    *.gz(*)
  }
  /* Read-write section, merged into data segment: */
  /* . = ALIGN(4096); */
  .reloc   :
  {
    *(.got)
    _GOT2_TABLE_ = .;
    *(.got2)
    _FIXUP_TABLE_ = .;
    *(.fixup)
  }

  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
  __fixup_entries = (. - _FIXUP_TABLE_)>>2;

  .handlers : 
  {
    *(.exception)
  }

  .data    :
  {
    *(.data)
    *(.sdata)
    . = ALIGN(4);
    _edata = .;
  }
  PROVIDE(_binary_initrd_gz_start = 0);
  PROVIDE(_binary_initrd_gz_end = 0);
  _rtems_gz_size = _binary_rtems_gz_end - _binary_rtems_gz_start;
  _rtems_size = __rtems_end - __rtems_start;
  .bss :
  {
    *(.sbss)
    *(.bss)
    . = ALIGN(4);
  }
  __bss_words = SIZEOF(.bss)>>2;
  __size = . ;
  /DISCARD/ : 
  {
    *(.comment)
  }
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.