blob: 501acc40dc26949e7cc62c98fa9e74d8e3f6508e (
plain) (
tree)
|
|
OUTPUT_ARCH(powerpc)
OUTPUT_FORMAT ("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
/* 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)
*(.text*)
*(.sdata2)
*(.sdata2*)
*(.rodata)
*(.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)
_FIXUP_END_ = .;
}
.handlers :
{
*(.exception)
}
.data :
{
*(.data)
*(.data*)
*(.sdata)
*(.sdata*)
. = ALIGN(4);
_data_end = .;
}
.bss :
{
*(.sbss)
*(.sbss*)
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_bss_end = .;
}
.abs 0 : {
__got2_entries = ABSOLUTE((_FIXUP_TABLE_ - _GOT2_TABLE_) >>2);
__fixup_entries = ABSOLUTE((_FIXUP_END_ - _FIXUP_TABLE_)>>2);
_edata = ABSOLUTE(_data_end);
PROVIDE(_binary_initrd_gz_start = ABSOLUTE(0));
PROVIDE(_binary_initrd_gz_end = ABSOLUTE(0));
_rtems_gz_size = ABSOLUTE(_binary_rtems_gz_end - _binary_rtems_gz_start);
_rtems_size = ABSOLUTE(__rtems_end - __rtems_start);
__bss_words = ABSOLUTE(SIZEOF(.bss)>>2);
__size = ABSOLUTE(_bss_end);
}
/DISCARD/ :
{
*(.comment*)
*(.debug*)
}
}
|