summaryrefslogtreecommitdiffstats
path: root/src/kernel.ld
blob: b3749aefbf91fd04270318a9463bf4d72b816dd4 (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
rom_offset = 0xfff00000;
base_load_address = 0x00000000;
text_load_address = 0x00003000;
hreset_load_address = 0x000ffffc;

SECTIONS
{
    . = base_load_address;

    .text.intvects ALIGN(0x1000): AT(base_load_address + rom_offset) {
	*(.text.intvects)
    }

    . = text_load_address;
    .text ALIGN(0x1000): {
	*(.text)
	*(.text._*)
	*(.rodata)
	*(.rodata.*)
	. = ALIGN(0x8);
	ctor_start_address = .;
	*(.ctors)
	ctor_end_address = .;

    }
    
    .data ALIGN(0x1000): {
	data_load_address = .;
	*(.data)
	*(.data.*)
	*(.branch_lt)

	toc_load_address = .;
	*(.toc)
	opd_load_address = .;
	*(.opd)
	*(.got)

	*(.bss)
	*(.bss.*)

    }

    end_load_address = .;

    . = hreset_load_address;
    .text.hreset : {
	*(.text.hreset)
    }

    /DISCARD/ : {
	*(.comment)
	*(.gnu.attributes)
	*(.dtors)
    }
}


OpenPOWER on IntegriCloud