blob: 03d356d96e5d30b066480ad8db2358f21dbccee5 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <asm-generic/vmlinux.lds.h>
Tim Abbotteb121d12009-09-24 10:36:21 -04002#include <asm/page.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
4/* target memory map */
5#ifdef CONFIG_H8300H_GENERIC
6#define ROMTOP 0x000000
7#define ROMSIZE 0x400000
8#define RAMTOP 0x400000
9#define RAMSIZE 0x400000
10#endif
11
12#ifdef CONFIG_H8300H_AKI3068NET
13#define ROMTOP 0x000000
14#define ROMSIZE 0x080000
15#define RAMTOP 0x400000
16#define RAMSIZE 0x200000
17#endif
18
19#ifdef CONFIG_H8300H_H8MAX
20#define ROMTOP 0x000000
21#define ROMSIZE 0x080000
22#define RAMTOP 0x400000
23#define RAMSIZE 0x200000
24#endif
25
26#ifdef CONFIG_H8300H_SIM
27#define ROMTOP 0x000000
28#define ROMSIZE 0x400000
29#define RAMTOP 0x400000
30#define RAMSIZE 0x400000
31#endif
32
33#ifdef CONFIG_H8S_SIM
34#define ROMTOP 0x000000
35#define ROMSIZE 0x400000
36#define RAMTOP 0x400000
37#define RAMSIZE 0x800000
38#endif
39
40#ifdef CONFIG_H8S_EDOSK2674
41#define ROMTOP 0x000000
42#define ROMSIZE 0x400000
43#define RAMTOP 0x400000
44#define RAMSIZE 0x800000
45#endif
46
47#if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
48INPUT(romfs.o)
49#endif
50
51_jiffies = _jiffies_64 + 4;
52
53ENTRY(__start)
54
55SECTIONS
56{
57#if defined(CONFIG_ROMKERNEL)
58 . = ROMTOP;
59 .vectors :
60 {
61 __vector = . ;
62 *(.vectors*)
63 }
64#else
65 . = RAMTOP;
66 .bootvec :
67 {
68 *(.bootvec)
69 }
70#endif
71 .text :
72 {
Eric W. Biedermanfd593d12006-12-07 02:14:04 +010073 _text = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070074#if defined(CONFIG_ROMKERNEL)
75 *(.int_redirect)
76#endif
77 __stext = . ;
Sam Ravnborg76647092007-05-13 00:31:33 +020078 TEXT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070079 SCHED_TEXT
80 LOCK_TEXT
81 __etext = . ;
Linus Torvalds1da177e2005-04-16 15:20:36 -070082 }
Tim Abbotteb121d12009-09-24 10:36:21 -040083 EXCEPTION_TABLE(16)
Linus Torvalds1da177e2005-04-16 15:20:36 -070084
85 RODATA
86#if defined(CONFIG_ROMKERNEL)
87 SECURITY_INIT
88#endif
89 ROEND = .;
90#if defined(CONFIG_ROMKERNEL)
91 . = RAMTOP;
92 .data : AT(ROEND)
93#else
94 .data :
95#endif
96 {
97 __sdata = . ;
98 ___data_start = . ;
99
Tim Abbotteb121d12009-09-24 10:36:21 -0400100 INIT_TASK_DATA(0x2000)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101 . = ALIGN(0x4) ;
Sam Ravnborgca967252007-05-17 13:38:44 +0200102 DATA_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700103 . = ALIGN(0x4) ;
104 *(.data.*)
105
106 . = ALIGN(0x4) ;
107 ___init_begin = .;
108 __sinittext = .;
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100109 INIT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110 __einittext = .;
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100111 INIT_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112 . = ALIGN(0x4) ;
Tim Abbotteb121d12009-09-24 10:36:21 -0400113 INIT_SETUP(0x4)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700114 ___setup_start = .;
115 *(.init.setup)
116 . = ALIGN(0x4) ;
117 ___setup_end = .;
Tim Abbotteb121d12009-09-24 10:36:21 -0400118 INIT_CALLS
119 CON_INITCALL
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100120 EXIT_TEXT
121 EXIT_DATA
Tim Abbotteb121d12009-09-24 10:36:21 -0400122 INIT_RAM_FS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123 . = ALIGN(0x4) ;
124 ___init_end = .;
125 __edata = . ;
126 }
127#if defined(CONFIG_RAMKERNEL)
128 SECURITY_INIT
129#endif
130 __begin_data = LOADADDR(.data);
131 .bss :
132 {
133 . = ALIGN(0x4) ;
134 __sbss = . ;
135 *(.bss*)
136 . = ALIGN(0x4) ;
137 *(COMMON)
138 . = ALIGN(0x4) ;
139 __ebss = . ;
140 __end = . ;
141 __ramstart = .;
142 }
Linus Torvalds1da177e2005-04-16 15:20:36 -0700143 .romfs :
144 {
145 *(.romfs*)
146 }
147 . = RAMTOP+RAMSIZE;
148 .dummy :
149 {
150 COMMAND_START = . - 0x200 ;
151 __ramend = . ;
152 }
Tejun Heo023bf6f2009-07-09 11:27:40 +0900153
154 DISCARDS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700155}