summaryrefslogtreecommitdiff
path: root/tools/splat/test/basic_app/basic_app.ld
blob: 7a94e16d392c60413a7c44e0500da8e377fcbd89 (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
69
70
71
72
73
74
75
76
77
78
SECTIONS
{
    __romPos = 0;
    _gp = 0x0;
    header_ROM_START = __romPos;
    header_VRAM = ADDR(.header);
    .header : AT(header_ROM_START) SUBALIGN(16)
    {
        header_DATA_START = .;
        build/header.o(.data);
        header_DATA_END = .;
        header_DATA_SIZE = ABSOLUTE(header_DATA_END - header_DATA_START);
    }
    __romPos += SIZEOF(.header);
    header_ROM_END = __romPos;
    header_VRAM_END = .;

    dummy_ipl3_ROM_START = __romPos;
    dummy_ipl3_VRAM = ADDR(.dummy_ipl3);
    .dummy_ipl3 0xA4000040 : AT(dummy_ipl3_ROM_START) SUBALIGN(16)
    {
        dummy_ipl3_DATA_START = .;
        build/dummy_ipl3.o(.data);
        dummy_ipl3_DATA_END = .;
        dummy_ipl3_DATA_SIZE = ABSOLUTE(dummy_ipl3_DATA_END - dummy_ipl3_DATA_START);
    }
    __romPos += SIZEOF(.dummy_ipl3);
    __romPos = ALIGN(__romPos, 16);
    dummy_ipl3_ROM_END = __romPos;
    dummy_ipl3_VRAM_END = .;

    boot_ROM_START = __romPos;
    boot_VRAM = ADDR(.boot);
    .boot 0x80000400 : AT(boot_ROM_START) SUBALIGN(16)
    {
        boot_TEXT_START = .;
        build/main.o(.text);
        build/handwritten.o(.text);
        boot_TEXT_END = .;
        boot_TEXT_SIZE = ABSOLUTE(boot_TEXT_END - boot_TEXT_START);

        boot_DATA_START = .;
        build/main.o(.data);
        build/handwritten.o(.data);
        boot_DATA_END = .;
        boot_DATA_SIZE = ABSOLUTE(boot_DATA_END - boot_DATA_START);

        boot_RODATA_START = .;
        build/main.o(.rodata);
        build/handwritten.o(.rodata);
        boot_RODATA_END = .;
        boot_RODATA_SIZE = ABSOLUTE(boot_RODATA_END - boot_RODATA_START);
    }

    boot_bss_VRAM = ADDR(.boot_bss);
    .boot_bss (NOLOAD) : SUBALIGN(16)
    {
        boot_BSS_START = .;
        build/main.o(.bss);
        build/main.o(.scommon);
        build/main.o(COMMON);
        build/handwritten.o(.bss);
        build/handwritten.o(.scommon);
        build/handwritten.o(COMMON);
        boot_BSS_END = .;
        boot_BSS_SIZE = ABSOLUTE(boot_BSS_END - boot_BSS_START);
    }

    __romPos += SIZEOF(.boot);
    __romPos = ALIGN(__romPos, 16);
    boot_ROM_END = __romPos;
    boot_VRAM_END = .;

    /DISCARD/ :
    {
        *(*);
    }
}