1#---------------------------------------------------------------------------
2#  Project:  NitroSDK - tools - makelcf
3#  File:     ARM9-TEG.lcf
4#
5#  Copyright 2003-2008 Nintendo.  All rights reserved.
6#
7#  These coded instructions, statements, and computer programs contain
8#  proprietary information of Nintendo of America Inc. and/or Nintendo
9#  Company Ltd., and are protected by Federal copyright law.  They may
10#  not be disclosed to third parties or copied or duplicated in any form,
11#  in whole or in part, without the prior written consent of Nintendo.
12#
13#  $Log: ARM9-TEG.lcf,v $
14#  Revision 1.9  2004/07/26 00:08:27  yasu
15#  Fix label of exception table
16#
17#  Revision 1.8  2004/07/24 05:42:25  yasu
18#  Set default values for SDK_AUTOGEN_xTCM_START
19#
20#  Revision 1.7  2004/07/23 11:32:14  yasu
21#  Define labels for __exception_table_start__ and _end__
22#
23#  Revision 1.6  2004/07/13 00:03:46  yasu
24#  Add SDK_AUTOLOAD_[ID]TCM_BSS_END
25#
26#  Revision 1.5  2004/07/08 04:04:59  yasu
27#  fix small typo
28#
29#  Revision 1.4  2004/07/02 08:34:20  yasu
30#  Add .itcm/.dtcm section
31#
32#  Revision 1.3  2004/07/01 09:41:50  yasu
33#  support autoload
34#
35#  Revision 1.2  2004/05/07 05:13:47  yasu
36#  remove STATICINIT for cw0.5
37#
38#  Revision 1.1  2004/03/26 06:04:32  yasu
39#  move spec files
40#
41#  Revision 1.10  2004/02/20 04:06:52  yasu
42#  change default IRQ stack size 0xa0 -> 0x400
43#
44#  Revision 1.9  2004/02/14 03:34:00  yasu
45#  exchange .bss and .sbss
46#
47#  Revision 1.8  2004/02/13 07:13:16  yasu
48#  support SDK_IRQ_STACKSIZE
49#
50#  Revision 1.7  2004/02/05 12:21:14  yasu
51#  change SDK prefix iris -> nitro
52#
53#  Revision 1.6  2004/01/16 01:34:01  yasu
54#  Clean up lcf to support ARENA functions
55#
56#  Revision 1.5  2004/01/15 13:10:03  yasu
57#  clean unused variables
58#
59#  $NoKeywords: $
60#---------------------------------------------------------------------------
61MEMORY
62{
63	main       (RWX) : ORIGIN = 0x02004000,  LENGTH = 0x0
64	bss        (RWX) : ORIGIN = AFTER(main), LENGTH = 0x0
65	arena      (RW)  : ORIGIN = AFTER(bss),  LENGTH = 0x0
66}
67
68KEEP_SECTION
69{
70	.ctor
71}
72
73SECTIONS
74{
75	.main: AT 0x02004000
76	{
77	ALIGNALL(4);		. = ALIGN(32);
78
79	SDK_STATIC_START	=.;
80	SDK_STATIC_TEXT_START	=.;
81				#:::::::::: text
82				crt0.o (.text)
83				* (.text)
84				* (.itcm)
85				* (.init)
86				* (.exception)
87				. = ALIGN(4);
88	__exception_table_start__ =.;
89				EXCEPTION
90	__exception_table_end__	=.;
91				. = ALIGN(4);
92				* (.rodata)
93	__sinit__		=.;
94				* (.ctor)
95				WRITEW	0;
96				#:::::::::: text
97				. = ALIGN(32);
98	SDK_STATIC_TEXT_END	=.;
99
100	SDK_STATIC_DATA_START	=.;
101				#:::::::::: data
102				* (.sdata)
103				* (.data)
104				* (.dtcm)
105				#:::::::::: data
106				. = ALIGN(32);
107	SDK_STATIC_DATA_END	=.;
108	SDK_STATIC_END		=.;
109
110	SDK_STATIC_TEXT_SIZE	= SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
111	SDK_STATIC_DATA_SIZE	= SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
112	SDK_STATIC_SIZE		= SDK_STATIC_END      - SDK_STATIC_START;
113
114	} > main
115
116
117	.bss: AT 0x02004000 + SIZEOF(main)
118	{
119	ALIGNALL(4);		. = ALIGN(32);
120
121	SDK_STATIC_BSS_START	=.;
122				#:::::::::: bss
123				* (.sbss)
124				* (.bss)
125				#:::::::::: bss
126	SDK_STATIC_BSS_END	=.;
127
128	SDK_STATIC_BSS_SIZE	= SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
129
130	} > bss
131
132	.area:
133	{
134				. = ALIGN(4);
135	SDK_SECTION_ARENA_START =.;
136
137	} > arena
138
139	############################ AUTOLOAD_INFO ##########################
140	SDK_AUTOLOAD_ITCM_START		= 0x01ff8000;
141	SDK_AUTOLOAD_ITCM_END		= SDK_AUTOLOAD_ITCM_START;
142	SDK_AUTOLOAD_ITCM_BSS_END	= SDK_AUTOLOAD_ITCM_START;
143	SDK_AUTOLOAD_DTCM_START		= 0x02380000;
144	SDK_AUTOLOAD_DTCM_END		= SDK_AUTOLOAD_DTCM_START;
145	SDK_AUTOLOAD_DTCM_BSS_END	= SDK_AUTOLOAD_DTCM_START;
146	SDK_AUTOLOAD_START		= SDK_STATIC_END;
147	SDK_AUTOLOAD_SIZE		= 0;
148	SDK_AUTOLOAD_NUMBER		= 0;
149	SDK_AUTOLOAD_LIST		= SDK_AUTOLOAD_START;
150	SDK_AUTOLOAD_LIST_END		= SDK_AUTOLOAD_START;
151
152	############################ OVERLAYS ###############################
153	SDK_OVERLAY_NUMBER 		= 0;
154
155	############################ OTHERS #################################
156	SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
157	SDK_IRQ_STACKSIZE = 0x400;	# allocated in DTCM
158	SDK_SYS_STACKSIZE = 0;		# when 0 means all remains of DTCM
159}
160