summaryrefslogtreecommitdiff
path: root/src/main.ld
blob: 9b6e8c48d9dcf64e0edcb79ada1f969fd2e003e1 (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
79
/*
 * Open Hack'Ware BIOS main.
 * 
 *   Copyright (C) 2004-2005 Jocelyn Mayer (l_indien@magic.fr)
 *   
 *   This program is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU General Public License V2
 *   as published by the Free Software Foundation
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

OUTPUT_ARCH(powerpc)

MEMORY
{
        start (rwx) : ORIGIN = 0x05800000, LENGTH = 0x00000400
        bios (rwx)  : ORIGIN = 0x05800400, LENGTH = 0x0007FC00
        ram  (rw)   : ORIGIN = 0x06000000, LENGTH = 0x00200000
}

SECTIONS
{
        .start    : { *(.start)   } > start
        . = ALIGN(4) ;
        .text     : { *(.text)    } > bios
        . = ALIGN(4) ;
        .OpenFirmware : { *(.OpenFirmware) } > bios
        . = ALIGN(4) ;
        _data_start = . ;
        .data     : { *(.data)    } > bios
        _data_end = . ;
        . = ALIGN(4) ;
        _OF_vars_start = . ;
        .OpenFirmware_vars : { *(.OpenFirmware_vars) } > bios
        _OF_vars_end = . ;
        . = ALIGN(4) ;
        _sdata_start = . ;
        .sdata    : { *(.sdata)   } > bios
        . = ALIGN(4) ;
        .sdata2   : { *(.sdata2)  } > bios
        _sdata_end = . ;
        . = ALIGN(4) ;
        _ro_start = . ;
        .rodata    : { *(.rodata) } > bios
        _ro_end = . ;
        . = ALIGN(4) ;
        _RTAS_start = .;
        .RTAS     : { *(.RTAS)    } > bios
        _RTAS_end = .;
        . = ALIGN(4) ;
        _RTAS_data_start = .;
        .RTAS_vars : { *(.RTAS_vars) } > bios
        . = ALIGN(4) ;
        _RTAS_data_end = .;
        _bss_start = . ;
        .sbss     : {
          *(.sbss) *(.scommon)
        } > bios
        . = ALIGN(4) ;
        .bss      : { *(.bss) *(COMMON) } > bios
        _bss_end = . ;
        . = ALIGN(4) ;
        _ram_start = . ;
        .ram      : {
          *(.ram)
        } > ram
        /DISCARD/ : { *(.stab)    }
        /DISCARD/ : { *(.stabstr) }
        /DISCARD/ : { *(.comment) }
        /DISCARD/ : { *(.note)    }
}