ppc: Set up TOC base for ppc64
[openbios/afaerber.git] / arch / ppc64 / qemu / ldscript
blob7a229038d125d1a011193f456d8360f0b3c6ba39
1 OUTPUT_FORMAT(elf64-powerpc)
2 OUTPUT_ARCH(powerpc:common64)
4 /* Initial load address
5  */
6 BASE_ADDR = 0xfff00000;
8 /* As NVRAM is at 0xfff04000, the .text needs to be after that
9  */
10 TEXT_ADDR = 0xfff08000;
12 /* Hard reset vector address
13  */
14 HRESET_ADDR = 0xfffffffc;
16 CSTACK_SIZE = 32768;    /* client stack size */
18 SECTIONS
20     . = BASE_ADDR;
22     _start = BASE_ADDR + 0x0100;
23     .text.vectors ALIGN(4096): {
24         *(.text.vectors)
25     }
27     . = TEXT_ADDR;
28     /* Normal sections */
29     .text ALIGN(4096): {
30         *(.text)
31         *(.text.*)
32     }
34     .rodata ALIGN(4096): {
35         _rodata = .;
36         *(.rodata)
37         *(.rodata.*)
38         *(.note.ELFBoot)
39     }
40     .data ALIGN(4096): {
41         _data = .;
42         *(.data)
43         *(.data.*)
44         *(.toc1)
45         *(.branch_lt)
46         _edata = .;
47     }
48     .opd : {
49         *(.opd)
50     }
51     .got : {
52         __toc_start = .;
53         *(.got)
54         *(.toc)
55     }
57     .bss ALIGN(4096): {
58         _bss = .;
59         *(.sbss)
60         *(.sbss.*)
61         *(.bss)
62         *(.bss.*)
63         *(COMMON)
64         _ebss = .;
65     }
67     . = HRESET_ADDR;
69     .romentry : { *(.romentry) }
71     . = ALIGN(4096);
72     _end = .;
74     /* We discard .note sections other than .note.ELFBoot,
75      * because some versions of GCC generates useless ones. */
77     /DISCARD/ : { *(.comment*) *(.note.*) }