summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/arch/ppc/qemu/ldscript
blob: 8027b39dbcc0e6097410c9122a3769ecb9c92845 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
OUTPUT_FORMAT(elf32-powerpc)
OUTPUT_ARCH(powerpc:common)

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

/* As NVRAM is at 0xfff04000, the .text needs to be after that
 */
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 */
    .text ALIGN(4096): {
        *(.text)
        *(.text.*)
    }

    .rodata ALIGN(4096): {
        _rodata = .;
	*(.rodata)
	*(.rodata.*)
        *(.note.ELFBoot)
    }
    .data ALIGN(4096): {
        _data = .;
        *(.data)
        *(.data.*)
	_edata = .;
    }

    .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.*) }
}