OUTPUT_FORMAT(elf64-powerpc)
OUTPUT_ARCH(powerpc:common64)

/* Initial load address
 */
BASE_ADDR = 0xfff00000;

/* As NVRAM is at 0xfff04000, the .text needs to be after that
 * The value in arch/ppc/qemu/kernel.c must match this value!
 */
TEXT_ADDR = 0xfff08000;

/* Hard reset vector address
 */
HRESET_ADDR = 0xfffffffc;

CSTACK_SIZE = 32768;	/* client stack size */

SECTIONS
{
    . = BASE_ADDR;

    _start = BASE_ADDR + 0x0100;
    .text.vectors ALIGN(4096): {
        *(.text.vectors)
    }

    . = TEXT_ADDR;
    /* Normal sections */
    .data.dict ALIGN(4096): {
        _dict_start = .;
        *(.data.dict)
        _dict_end = .;
    }

    .text ALIGN(4096): {
        *(.text)
        *(.text.*)
    }

    .rodata ALIGN(4096): {
        _rodata = .;
	*(.rodata)
	*(.rodata.*)
        *(.note.ELFBoot)
    }
    .data ALIGN(4096): {
        _data = .;
        *(.data)
        *(.data.*)
        *(.toc1)
        *(.branch_lt)
	_edata = .;
    }
    .opd : {
        *(.opd)
    }
    .got : {
        __toc_start = .;
        *(.got)
        *(.toc)
    }

    .bss ALIGN(4096): {
        _bss = .;
	*(.sbss)
	*(.sbss.*)
	*(.bss)
	*(.bss.*)
	*(COMMON)
	_ebss = .;
    }

    . = HRESET_ADDR;

    .romentry : { *(.romentry) }

    . = ALIGN(4096);
    _end = .;

    /* We discard .note sections other than .note.ELFBoot,
     * because some versions of GCC generates useless ones. */

    /DISCARD/ : { *(.comment*) *(.note.*) }
}
