1#define VMLINUX_SYMBOL(_sym_) _##_sym_
2#include <asm-generic/vmlinux.lds.h>
3
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	{
73	_text = .;
74#if defined(CONFIG_ROMKERNEL)
75	*(.int_redirect)
76#endif
77	__stext = . ;
78	TEXT_TEXT
79	SCHED_TEXT
80	LOCK_TEXT
81	__etext = . ;
82	. = ALIGN(16);          /* Exception table              */
83	___start___ex_table = .;
84		*(__ex_table)
85	___stop___ex_table = .;
86	}
87
88	RODATA
89#if defined(CONFIG_ROMKERNEL)
90	SECURITY_INIT
91#endif
92	ROEND = .;
93#if defined(CONFIG_ROMKERNEL)
94	. = RAMTOP;
95	.data :	AT(ROEND)
96#else
97	.data :
98#endif
99	{
100	__sdata = . ;
101	___data_start = . ;
102
103	. = ALIGN(0x2000) ;
104		*(.data.init_task)
105	. = ALIGN(0x4) ;
106		DATA_DATA
107	. = ALIGN(0x4) ;
108		*(.data.*)
109
110	. = ALIGN(0x4) ;
111	___init_begin = .;
112	__sinittext = .;
113		*(.init.text)
114	__einittext = .;
115		*(.init.data)
116	. = ALIGN(0x4) ;
117	___setup_start = .;
118		*(.init.setup)
119	. = ALIGN(0x4) ;
120	___setup_end = .;
121	___initcall_start = .;
122		INITCALLS
123	___initcall_end = .;
124	___con_initcall_start = .;
125		*(.con_initcall.init)
126	___con_initcall_end = .;
127		*(.exit.text)
128		*(.exit.data)
129#if defined(CONFIG_BLK_DEV_INITRD)
130		. = ALIGN(4);
131	___initramfs_start = .;
132  		*(.init.ramfs)
133  	___initramfs_end = .;
134#endif
135	. = ALIGN(0x4) ;
136	___init_end = .;
137	__edata = . ;
138	}
139#if defined(CONFIG_RAMKERNEL)
140	SECURITY_INIT
141#endif
142	__begin_data = LOADADDR(.data);
143        .bss :
144        {
145	. = ALIGN(0x4) ;
146	__sbss = . ;
147		*(.bss*)
148	. = ALIGN(0x4) ;
149		*(COMMON)
150	. = ALIGN(0x4) ;
151	__ebss = . ;
152	__end = . ;
153	__ramstart = .;
154	}
155	/DISCARD/ : {
156		*(.exitcall.exit)
157	}
158        .romfs :
159	{
160		*(.romfs*)
161	}
162	. = RAMTOP+RAMSIZE;
163        .dummy :
164        {
165	COMMAND_START = . - 0x200 ;
166	__ramend = . ;
167	}
168}
169