1#---------------------------------------------------------------------------
2#  Project:  NitroSDK - tools - makelcf
3#  File:     ARM9-TS.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-TS.lcf,v $
14#  Revision 1.14  2005/04/14 00:04:17  terui
15#  Update copyright.
16#
17#  Revision 1.13  2005/04/13 12:51:15  terui
18#  Change SDK_AUTOLOAD_DTCM_START 0x027c0000 -> 0x027e0000
19#
20#  Revision 1.12  2004/08/18 01:59:16  yasu
21#  DTCM moves to 0x027c0000
22#
23#  Revision 1.11  2004/07/26 02:22:32  yasu
24#  Change DTCM address to 0x023c0000
25#
26#  Revision 1.10  2004/07/26 00:08:27  yasu
27#  Fix label of exception table
28#
29#  Revision 1.9  2004/07/24 05:42:25  yasu
30#  Set default values for SDK_AUTOGEN_xTCM_START
31#
32#  Revision 1.8  2004/07/23 11:32:14  yasu
33#  Define labels for __exception_table_start__ and _end__
34#
35#  Revision 1.7  2004/07/13 00:03:46  yasu
36#  Add SDK_AUTOLOAD_[ID]TCM_BSS_END
37#
38#  Revision 1.6  2004/07/02 08:34:20  yasu
39#  Add .itcm/.dtcm section
40#
41#  Revision 1.5  2004/07/01 10:41:46  yasu
42#  support autoload
43#
44#  Revision 1.4  2004/06/08 07:46:40  yasu
45#  move start address  0x02004000 ->  0x02000000
46#
47#  Revision 1.3  2004/06/02 07:42:09  yasu
48#  Set libsyscall.a in FORCE_ACTIVE
49#  Put NitroMain at the top of ROM image
50#
51#  Revision 1.2  2004/05/07 05:13:47  yasu
52#  remove STATICINIT for cw0.5
53#
54#  Revision 1.1  2004/04/06 01:59:54  yasu
55#  newly added
56#
57#  $NoKeywords: $
58#---------------------------------------------------------------------------
59MEMORY
60{
61	main       (RWX) : ORIGIN = 0x02000000,  LENGTH = 0x0
62	bss        (RWX) : ORIGIN = AFTER(main), LENGTH = 0x0
63	arena      (RW)  : ORIGIN = AFTER(bss),  LENGTH = 0x0
64}
65
66KEEP_SECTION
67{
68	.ctor
69}
70
71FORCE_ACTIVE
72{
73	SVC_SoftReset
74}
75
76SECTIONS
77{
78	.main: AT 0x02000000
79	{
80	ALIGNALL(4);		. = ALIGN(32);
81
82	SDK_STATIC_START	=.;
83	SDK_STATIC_TEXT_START	=.;
84				#:::::::::: text
85				libsyscall.a (.text)
86				OBJECT (NitroMain,*)
87				* (.text)
88				* (.itcm)
89				* (.init)
90				* (.exception)
91				. = ALIGN(4);
92	__exception_table_start__ =.;
93				EXCEPTION
94	__exception_table_end__	=.;
95				. = ALIGN(4);
96				* (.rodata)
97	__sinit__		=.;
98				* (.ctor)
99				WRITEW	0;
100				#:::::::::: text
101				. = ALIGN(32);
102	SDK_STATIC_TEXT_END	=.;
103
104	SDK_STATIC_DATA_START	=.;
105				#:::::::::: data
106				* (.sdata)
107				* (.data)
108				* (.dtcm)
109				#:::::::::: data
110				. = ALIGN(32);
111	SDK_STATIC_DATA_END	=.;
112	SDK_STATIC_END		=.;
113
114	SDK_STATIC_TEXT_SIZE	= SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
115	SDK_STATIC_DATA_SIZE	= SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
116	SDK_STATIC_SIZE		= SDK_STATIC_END      - SDK_STATIC_START;
117
118	} > main
119
120
121	.bss: AT 0x02000000 + SIZEOF(main)
122	{
123	ALIGNALL(4);		. = ALIGN(32);
124
125	SDK_STATIC_BSS_START	=.;
126				#:::::::::: bss
127				* (.sbss)
128				* (.bss)
129				#:::::::::: bss
130	SDK_STATIC_BSS_END	=.;
131
132	SDK_STATIC_BSS_SIZE	= SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
133
134	} > bss
135
136	.area:
137	{
138				. = ALIGN(4);
139	SDK_SECTION_ARENA_START =.;
140
141	} > arena
142
143	############################ AUTOLOAD_INFO ##########################
144	SDK_AUTOLOAD_ITCM_START		= 0x01ff8000;
145	SDK_AUTOLOAD_ITCM_END		= SDK_AUTOLOAD_ITCM_START;
146	SDK_AUTOLOAD_ITCM_BSS_END	= SDK_AUTOLOAD_ITCM_START;
147	SDK_AUTOLOAD_DTCM_START		= 0x027e0000;
148	SDK_AUTOLOAD_DTCM_END		= SDK_AUTOLOAD_DTCM_START;
149	SDK_AUTOLOAD_DTCM_BSS_END	= SDK_AUTOLOAD_DTCM_START;
150	SDK_AUTOLOAD_START		= SDK_STATIC_END;
151	SDK_AUTOLOAD_SIZE		= 0;
152	SDK_AUTOLOAD_NUMBER		= 0;
153	SDK_AUTOLOAD_LIST		= SDK_AUTOLOAD_START;
154	SDK_AUTOLOAD_LIST_END		= SDK_AUTOLOAD_START;
155
156	############################ OVERLAYS ###############################
157	SDK_OVERLAY_NUMBER 		= 0;
158
159	############################ OTHERS #################################
160	SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
161	SDK_IRQ_STACKSIZE = 0x400;	# allocated in DTCM
162	SDK_SYS_STACKSIZE = 0;		# when 0 means all remains of DTCM
163}
164