1/*
2 * BCM53XXX ARM/Cortext A9 boot code for standalone apps.
3 *
4 * Copyright (C) 2015, Broadcom Corporation. All Rights Reserved.
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
13 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
15 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 *
18 * $Id$
19 */
20
21#include <arminc.h>
22#include <sbhndarm.h>
23#include <hndrte_armtrap.h>
24#include <hndsoc.h>
25#include <sbchipc.h>
26#include <bcmdevs.h>
27#include <ddr_core.h>
28#include <pcieg2_core.h>
29#include <armca9_core.h>
30
31#ifdef _CFE_
32
33#include <armmacros.h>
34#include "initdata.h"
35#include "bsp_config.h"
36#include "cfe_devfuncs.h"
37
38#define c_main	cfe_main
39
40/*
41 * This is the size of the stack, rounded to KByte boundaries.
42 */
43
44#ifndef CFG_STACK_SIZE
45#error "CFG_STACK_SIZE not defined"
46#else
47#define STACK_SIZE	((CFG_STACK_SIZE+1023) & ~1023)
48#endif
49
50#define envram_ofs	0x1000
51
52#else /* !_CFE_ */
53
54#if defined(__thumb__)
55#define FUNC(x)	THUMBLEAF(x)
56#else
57#define FUNC(x)	LEAF(x)
58#endif
59
60/* Debug macro */
61#ifdef TRACE
62#undef TRACE
63#endif
64#ifdef BCMDBG
65#define TRACE(x) \
66	ldr	r9,=(x); \
67	ldr     r10,=SI_ENUM_BASE; \
68	str	r9,[r10,#0x64]
69#else
70#define TRACE(x)
71#endif
72
73#define envram_ofs	0x400
74
75#if CFG_BIENDIAN
76#define CFE_EPTSEAL_REV 0x31454643
77#endif
78#define CFE_EPTSEAL 0x43464531
79#define cfe_command_restart 0
80
81#endif /* _CFE_ */
82
83#ifdef CFG_SHMOO
84/* MMU table */
85	.section section_mmu_table
86page_table:
87	.word	0x00004c06
88	.word	0x00104c06
89	.word	0x00204c06
90	.word	0x00304c06
91	.word	0x00404c06
92	.word	0x00504c06
93	.word	0x00604c06
94	.word	0x00704c06
95	.word	0x00804c06
96	.word	0x00904c06
97	.word	0x00a04c06
98	.word	0x00b04c06
99	.word	0x00c04c06
100	.word	0x00d04c06
101	.word	0x00e04c06
102	.word	0x00f04c06
103	.word	0x01004c06 @DDR_SHMOO_RELATED_CHANGE: make 16MB-32MB area as L1 cacheable write-back mode requested by shmoo memory test
104	.word	0x01104c06
105	.word	0x01204c06
106	.word	0x01304c06
107	.word	0x01404c06
108	.word	0x01504c06
109	.word	0x01604c06
110	.word	0x01704c06
111	.word	0x01804c06
112	.word	0x01904c06
113	.word	0x01a04c06
114	.word	0x01b04c06
115	.word	0x01c04c06
116	.word	0x01d04c06
117	.word	0x01e04c06
118	.word	0x01f04c06
119	.word	0x02004c06 @DDR_SHMOO_RELATED_CHANGE: make 32MB-128MB area as L1&L2 cacheable write-back mode requested by stress memory test
120	.word	0x02104c06
121	.word	0x02204c06
122	.word	0x02304c06
123	.word	0x02404c06
124	.word	0x02504c06
125	.word	0x02604c06
126	.word	0x02704c06
127	.word	0x02804c06
128	.word	0x02904c06
129	.word	0x02a04c06
130	.word	0x02b04c06
131	.word	0x02c04c06
132	.word	0x02d04c06
133	.word	0x02e04c06
134	.word	0x02f04c06
135	.word	0x03004c06
136	.word	0x03104c06
137	.word	0x03204c06
138	.word	0x03304c06
139	.word	0x03404c06
140	.word	0x03504c06
141	.word	0x03604c06
142	.word	0x03704c06
143	.word	0x03804c06
144	.word	0x03904c06
145	.word	0x03a04c06
146	.word	0x03b04c06
147	.word	0x03c04c06
148	.word	0x03d04c06
149	.word	0x03e04c06
150	.word	0x03f04c06
151	.word	0x04004c06
152	.word	0x04104c06
153	.word	0x04204c06
154	.word	0x04304c06
155	.word	0x04404c06
156	.word	0x04504c06
157	.word	0x04604c06
158	.word	0x04704c06
159	.word	0x04804c06
160	.word	0x04904c06
161	.word	0x04a04c06
162	.word	0x04b04c06
163	.word	0x04c04c06
164	.word	0x04d04c06
165	.word	0x04e04c06
166	.word	0x04f04c06
167	.word	0x05004c06
168	.word	0x05104c06
169	.word	0x05204c06
170	.word	0x05304c06
171	.word	0x05404c06
172	.word	0x05504c06
173	.word	0x05604c06
174	.word	0x05704c06
175	.word	0x05804c06
176	.word	0x05904c06
177	.word	0x05a04c06
178	.word	0x05b04c06
179	.word	0x05c04c06
180	.word	0x05d04c06
181	.word	0x05e04c06
182	.word	0x05f04c06
183	.word	0x06004c06
184	.word	0x06104c06
185	.word	0x06204c06
186	.word	0x06304c06
187	.word	0x06404c06
188	.word	0x06504c06
189	.word	0x06604c06
190	.word	0x06704c06
191	.word	0x06804c06
192	.word	0x06904c06
193	.word	0x06a04c06
194	.word	0x06b04c06
195	.word	0x06c04c06
196	.word	0x06d04c06
197	.word	0x06e04c06
198	.word	0x06f04c06
199	.word	0x07004c06
200	.word	0x07104c06
201	.word	0x07204c06
202	.word	0x07304c06
203	.word	0x07404c06
204	.word	0x07504c06
205	.word	0x07604c06
206	.word	0x07704c06
207	.word	0x07804c06
208	.word	0x07904c06
209	.word	0x07a04c06
210	.word	0x07b04c06
211	.word	0x07c04c06
212	.word	0x07d04c06
213	.word	0x07e04c06
214	.word	0x07f04c06 @ DDR_SHMOO_RELATED_CHANGE: end of L1&L2 cacheable write-back mode
215	.word	0x08002c02
216	.word	0x08102c02
217	.word	0x08202c02
218	.word	0x08302c02
219	.word	0x08402c02
220	.word	0x08502c02
221	.word	0x08602c02
222	.word	0x08702c02
223	.word	0x08802c02
224	.word	0x08902c02
225	.word	0x08a02c02
226	.word	0x08b02c02
227	.word	0x08c02c02
228	.word	0x08d02c02
229	.word	0x08e02c02
230	.word	0x08f02c02
231	.word	0x09002c02
232	.word	0x09102c02
233	.word	0x09202c02
234	.word	0x09302c02
235	.word	0x09402c02
236	.word	0x09502c02
237	.word	0x09602c02
238	.word	0x09702c02
239	.word	0x09802c02
240	.word	0x09902c02
241	.word	0x09a02c02
242	.word	0x09b02c02
243	.word	0x09c02c02
244	.word	0x09d02c02
245	.word	0x09e02c02
246	.word	0x09f02c02
247	.word	0x0a002c02
248	.word	0x0a102c02
249	.word	0x0a202c02
250	.word	0x0a302c02
251	.word	0x0a402c02
252	.word	0x0a502c02
253	.word	0x0a602c02
254	.word	0x0a702c02
255	.word	0x0a802c02
256	.word	0x0a902c02
257	.word	0x0aa02c02
258	.word	0x0ab02c02
259	.word	0x0ac02c02
260	.word	0x0ad02c02
261	.word	0x0ae02c02
262	.word	0x0af02c02
263	.word	0x0b002c02
264	.word	0x0b102c02
265	.word	0x0b202c02
266	.word	0x0b302c02
267	.word	0x0b402c02
268	.word	0x0b502c02
269	.word	0x0b602c02
270	.word	0x0b702c02
271	.word	0x0b802c02
272	.word	0x0b902c02
273	.word	0x0ba02c02
274	.word	0x0bb02c02
275	.word	0x0bc02c02
276	.word	0x0bd02c02
277	.word	0x0be02c02
278	.word	0x0bf02c02
279	.word	0x0c002c02
280	.word	0x0c102c02
281	.word	0x0c202c02
282	.word	0x0c302c02
283	.word	0x0c402c02
284	.word	0x0c502c02
285	.word	0x0c602c02
286	.word	0x0c702c02
287	.word	0x0c802c02
288	.word	0x0c902c02
289	.word	0x0ca02c02
290	.word	0x0cb02c02
291	.word	0x0cc02c02
292	.word	0x0cd02c02
293	.word	0x0ce02c02
294	.word	0x0cf02c02
295	.word	0x0d002c02
296	.word	0x0d102c02
297	.word	0x0d202c02
298	.word	0x0d302c02
299	.word	0x0d402c02
300	.word	0x0d502c02
301	.word	0x0d602c02
302	.word	0x0d702c02
303	.word	0x0d802c02
304	.word	0x0d902c02
305	.word	0x0da02c02
306	.word	0x0db02c02
307	.word	0x0dc02c02
308	.word	0x0dd02c02
309	.word	0x0de02c02
310	.word	0x0df02c02
311	.word	0x0e002c02
312	.word	0x0e102c02
313	.word	0x0e202c02
314	.word	0x0e302c02
315	.word	0x0e402c02
316	.word	0x0e502c02
317	.word	0x0e602c02
318	.word	0x0e702c02
319	.word	0x0e802c02
320	.word	0x0e902c02
321	.word	0x0ea02c02
322	.word	0x0eb02c02
323	.word	0x0ec02c02
324	.word	0x0ed02c02
325	.word	0x0ee02c02
326	.word	0x0ef02c02
327	.word	0x0f002c02
328	.word	0x0f102c02
329	.word	0x0f202c02
330	.word	0x0f302c02
331	.word	0x0f402c02
332	.word	0x0f502c02
333	.word	0x0f602c02
334	.word	0x0f702c02
335	.word	0x0f802c02
336	.word	0x0f902c02
337	.word	0x0fa02c02
338	.word	0x0fb02c02
339	.word	0x0fc02c02
340	.word	0x0fd02c02
341	.word	0x0fe02c02
342	.word	0x0ff02c02
343	.word	0x10002c02
344	.word	0x10102c02
345	.word	0x10202c02
346	.word	0x10302c02
347	.word	0x10402c02
348	.word	0x10502c02
349	.word	0x10602c02
350	.word	0x10702c02
351	.word	0x10802c02
352	.word	0x10902c02
353	.word	0x10a02c02
354	.word	0x10b02c02
355	.word	0x10c02c02
356	.word	0x10d02c02
357	.word	0x10e02c02
358	.word	0x10f02c02
359	.word	0x11002c02
360	.word	0x11102c02
361	.word	0x11202c02
362	.word	0x11302c02
363	.word	0x11402c02
364	.word	0x11502c02
365	.word	0x11602c02
366	.word	0x11702c02
367	.word	0x11802c02
368	.word	0x11902c02
369	.word	0x11a02c02
370	.word	0x11b02c02
371	.word	0x11c02c02
372	.word	0x11d02c02
373	.word	0x11e02c02
374	.word	0x11f02c02
375	.word	0x12002c02
376	.word	0x12102c02
377	.word	0x12202c02
378	.word	0x12302c02
379	.word	0x12402c02
380	.word	0x12502c02
381	.word	0x12602c02
382	.word	0x12702c02
383	.word	0x12802c02
384	.word	0x12902c02
385	.word	0x12a02c02
386	.word	0x12b02c02
387	.word	0x12c02c02
388	.word	0x12d02c02
389	.word	0x12e02c02
390	.word	0x12f02c02
391	.word	0x13002c02
392	.word	0x13102c02
393	.word	0x13202c02
394	.word	0x13302c02
395	.word	0x13402c02
396	.word	0x13502c02
397	.word	0x13602c02
398	.word	0x13702c02
399	.word	0x13802c02
400	.word	0x13902c02
401	.word	0x13a02c02
402	.word	0x13b02c02
403	.word	0x13c02c02
404	.word	0x13d02c02
405	.word	0x13e02c02
406	.word	0x13f02c02
407	.word	0x14002c02
408	.word	0x14102c02
409	.word	0x14202c02
410	.word	0x14302c02
411	.word	0x14402c02
412	.word	0x14502c02
413	.word	0x14602c02
414	.word	0x14702c02
415	.word	0x14802c02
416	.word	0x14902c02
417	.word	0x14a02c02
418	.word	0x14b02c02
419	.word	0x14c02c02
420	.word	0x14d02c02
421	.word	0x14e02c02
422	.word	0x14f02c02
423	.word	0x15002c02
424	.word	0x15102c02
425	.word	0x15202c02
426	.word	0x15302c02
427	.word	0x15402c02
428	.word	0x15502c02
429	.word	0x15602c02
430	.word	0x15702c02
431	.word	0x15802c02
432	.word	0x15902c02
433	.word	0x15a02c02
434	.word	0x15b02c02
435	.word	0x15c02c02
436	.word	0x15d02c02
437	.word	0x15e02c02
438	.word	0x15f02c02
439	.word	0x16002c02
440	.word	0x16102c02
441	.word	0x16202c02
442	.word	0x16302c02
443	.word	0x16402c02
444	.word	0x16502c02
445	.word	0x16602c02
446	.word	0x16702c02
447	.word	0x16802c02
448	.word	0x16902c02
449	.word	0x16a02c02
450	.word	0x16b02c02
451	.word	0x16c02c02
452	.word	0x16d02c02
453	.word	0x16e02c02
454	.word	0x16f02c02
455	.word	0x17002c02
456	.word	0x17102c02
457	.word	0x17202c02
458	.word	0x17302c02
459	.word	0x17402c02
460	.word	0x17502c02
461	.word	0x17602c02
462	.word	0x17702c02
463	.word	0x17802c02
464	.word	0x17902c02
465	.word	0x17a02c02
466	.word	0x17b02c02
467	.word	0x17c02c02
468	.word	0x17d02c02
469	.word	0x17e02c02
470	.word	0x17f02c02
471	.word	0x18002c02
472	.word	0x18102c02
473	.word	0x18202c02
474	.word	0x18302c02
475	.word	0x18402c02
476	.word	0x18502c02
477	.word	0x18602c02
478	.word	0x18702c02
479	.word	0x18802c02
480	.word	0x18902c02
481	.word	0x18a02c02
482	.word	0x18b02c02
483	.word	0x18c02c02
484	.word	0x18d02c02
485	.word	0x18e02c02
486	.word	0x18f02c02
487	.word	0x19002c02
488	.word	0x19102c02
489	.word	0x19202c02
490	.word	0x19302c02
491	.word	0x19402c02
492	.word	0x19502c02
493	.word	0x19602c02
494	.word	0x19702c02
495	.word	0x19802c02
496	.word	0x19902c02
497	.word	0x19a02c02
498	.word	0x19b02c02
499	.word	0x19c02c02
500	.word	0x19d02c02
501	.word	0x19e02c02
502	.word	0x19f02c02
503	.word	0x1a002c02
504	.word	0x1a102c02
505	.word	0x1a202c02
506	.word	0x1a302c02
507	.word	0x1a402c02
508	.word	0x1a502c02
509	.word	0x1a602c02
510	.word	0x1a702c02
511	.word	0x1a802c02
512	.word	0x1a902c02
513	.word	0x1aa02c02
514	.word	0x1ab02c02
515	.word	0x1ac02c02
516	.word	0x1ad02c02
517	.word	0x1ae02c02
518	.word	0x1af02c02
519	.word	0x1b002c02
520	.word	0x1b102c02
521	.word	0x1b202c02
522	.word	0x1b302c02
523	.word	0x1b402c02
524	.word	0x1b502c02
525	.word	0x1b602c02
526	.word	0x1b702c02
527	.word	0x1b802c02
528	.word	0x1b902c02
529	.word	0x1ba02c02
530	.word	0x1bb02c02
531	.word	0x1bc02c02
532	.word	0x1bd02c02
533	.word	0x1be02c02
534	.word	0x1bf02c02
535	.word	0x1c002c02   @ bcm95301x_svk_iproc_nand_config: make NAND flash code L1&L2 cachable
536	.word	0x1c102c02
537	.word	0x1c202c02
538	.word	0x1c302c02
539	.word	0x1c402c02
540	.word	0x1c502c02
541	.word	0x1c602c02
542	.word	0x1c702c02
543	.word	0x1c802c02
544	.word	0x1c902c02
545	.word	0x1ca02c02
546	.word	0x1cb02c02
547	.word	0x1cc02c02
548	.word	0x1cd02c02
549	.word	0x1ce02c02
550	.word	0x1cf02c02
551	.word	0x1d002c02
552	.word	0x1d102c02
553	.word	0x1d202c02
554	.word	0x1d302c02
555	.word	0x1d402c02
556	.word	0x1d502c02
557	.word	0x1d602c02
558	.word	0x1d702c02
559	.word	0x1d802c02
560	.word	0x1d902c02
561	.word	0x1da02c02
562	.word	0x1db02c02
563	.word	0x1dc02c02
564	.word	0x1dd02c02
565	.word	0x1de02c02
566	.word	0x1df02c02
567	.word	0x1e004c02  @DDR_SHMOO_RELATED_CHANGE: change 0x1e014ca2 to 0x1e016caa to make flash code L1&L2 cachable
568	.word	0x1e104c02
569	.word	0x1e204c02
570	.word	0x1e304c02
571	.word	0x1e404c02
572	.word	0x1e504c02
573	.word	0x1e604c02
574	.word	0x1e704c02
575	.word	0x1e804c0a
576	.word	0x1e904c0a
577	.word	0x1ea04c0a
578	.word	0x1eb04c0a
579	.word	0x1ec04c0a
580	.word	0x1ed04c0a
581	.word	0x1ee04c0a
582	.word	0x1ef04c0a
583	.word	0x1f004c0a
584	.word	0x1f104c0a
585	.word	0x1f204c0a
586	.word	0x1f304c0a
587	.word	0x1f404c0a
588	.word	0x1f504c0a
589	.word	0x1f604c0a
590	.word	0x1f704c0a
591	.word	0x1f804c0a
592	.word	0x1f904c0a
593	.word	0x1fa04c0a
594	.word	0x1fb04c0a
595	.word	0x1fc04c0a
596	.word	0x1fd04c0a
597	.word	0x1fe04c0a
598	.word	0x1ff04c0a
599	.word	0x20002c02
600	.word	0x20102c02
601	.word	0x20202c02
602	.word	0x20302c02
603	.word	0x20402c02
604	.word	0x20502c02
605	.word	0x20602c02
606	.word	0x20702c02
607	.word	0x20802c02
608	.word	0x20902c02
609	.word	0x20a02c02
610	.word	0x20b02c02
611	.word	0x20c02c02
612	.word	0x20d02c02
613	.word	0x20e02c02
614	.word	0x20f02c02
615	.word	0x21002c02
616	.word	0x21102c02
617	.word	0x21202c02
618	.word	0x21302c02
619	.word	0x21402c02
620	.word	0x21502c02
621	.word	0x21602c02
622	.word	0x21702c02
623	.word	0x21802c02
624	.word	0x21902c02
625	.word	0x21a02c02
626	.word	0x21b02c02
627	.word	0x21c02c02
628	.word	0x21d02c02
629	.word	0x21e02c02
630	.word	0x21f02c02
631	.word	0x22002c02
632	.word	0x22102c02
633	.word	0x22202c02
634	.word	0x22302c02
635	.word	0x22402c02
636	.word	0x22502c02
637	.word	0x22602c02
638	.word	0x22702c02
639	.word	0x22802c02
640	.word	0x22902c02
641	.word	0x22a02c02
642	.word	0x22b02c02
643	.word	0x22c02c02
644	.word	0x22d02c02
645	.word	0x22e02c02
646	.word	0x22f02c02
647	.word	0x23002c02
648	.word	0x23102c02
649	.word	0x23202c02
650	.word	0x23302c02
651	.word	0x23402c02
652	.word	0x23502c02
653	.word	0x23602c02
654	.word	0x23702c02
655	.word	0x23802c02
656	.word	0x23902c02
657	.word	0x23a02c02
658	.word	0x23b02c02
659	.word	0x23c02c02
660	.word	0x23d02c02
661	.word	0x23e02c02
662	.word	0x23f02c02
663	.word	0x24002c02
664	.word	0x24102c02
665	.word	0x24202c02
666	.word	0x24302c02
667	.word	0x24402c02
668	.word	0x24502c02
669	.word	0x24602c02
670	.word	0x24702c02
671	.word	0x24802c02
672	.word	0x24902c02
673	.word	0x24a02c02
674	.word	0x24b02c02
675	.word	0x24c02c02
676	.word	0x24d02c02
677	.word	0x24e02c02
678	.word	0x24f02c02
679	.word	0x25002c02
680	.word	0x25102c02
681	.word	0x25202c02
682	.word	0x25302c02
683	.word	0x25402c02
684	.word	0x25502c02
685	.word	0x25602c02
686	.word	0x25702c02
687	.word	0x25802c02
688	.word	0x25902c02
689	.word	0x25a02c02
690	.word	0x25b02c02
691	.word	0x25c02c02
692	.word	0x25d02c02
693	.word	0x25e02c02
694	.word	0x25f02c02
695	.word	0x26002c02
696	.word	0x26102c02
697	.word	0x26202c02
698	.word	0x26302c02
699	.word	0x26402c02
700	.word	0x26502c02
701	.word	0x26602c02
702	.word	0x26702c02
703	.word	0x26802c02
704	.word	0x26902c02
705	.word	0x26a02c02
706	.word	0x26b02c02
707	.word	0x26c02c02
708	.word	0x26d02c02
709	.word	0x26e02c02
710	.word	0x26f02c02
711	.word	0x27002c02
712	.word	0x27102c02
713	.word	0x27202c02
714	.word	0x27302c02
715	.word	0x27402c02
716	.word	0x27502c02
717	.word	0x27602c02
718	.word	0x27702c02
719	.word	0x27802c02
720	.word	0x27902c02
721	.word	0x27a02c02
722	.word	0x27b02c02
723	.word	0x27c02c02
724	.word	0x27d02c02
725	.word	0x27e02c02
726	.word	0x27f02c02
727	.word	0x28002c02
728	.word	0x28102c02
729	.word	0x28202c02
730	.word	0x28302c02
731	.word	0x28402c02
732	.word	0x28502c02
733	.word	0x28602c02
734	.word	0x28702c02
735	.word	0x28802c02
736	.word	0x28902c02
737	.word	0x28a02c02
738	.word	0x28b02c02
739	.word	0x28c02c02
740	.word	0x28d02c02
741	.word	0x28e02c02
742	.word	0x28f02c02
743	.word	0x29002c02
744	.word	0x29102c02
745	.word	0x29202c02
746	.word	0x29302c02
747	.word	0x29402c02
748	.word	0x29502c02
749	.word	0x29602c02
750	.word	0x29702c02
751	.word	0x29802c02
752	.word	0x29902c02
753	.word	0x29a02c02
754	.word	0x29b02c02
755	.word	0x29c02c02
756	.word	0x29d02c02
757	.word	0x29e02c02
758	.word	0x29f02c02
759	.word	0x2a002c02
760	.word	0x2a102c02
761	.word	0x2a202c02
762	.word	0x2a302c02
763	.word	0x2a402c02
764	.word	0x2a502c02
765	.word	0x2a602c02
766	.word	0x2a702c02
767	.word	0x2a802c02
768	.word	0x2a902c02
769	.word	0x2aa02c02
770	.word	0x2ab02c02
771	.word	0x2ac02c02
772	.word	0x2ad02c02
773	.word	0x2ae02c02
774	.word	0x2af02c02
775	.word	0x2b002c02
776	.word	0x2b102c02
777	.word	0x2b202c02
778	.word	0x2b302c02
779	.word	0x2b402c02
780	.word	0x2b502c02
781	.word	0x2b602c02
782	.word	0x2b702c02
783	.word	0x2b802c02
784	.word	0x2b902c02
785	.word	0x2ba02c02
786	.word	0x2bb02c02
787	.word	0x2bc02c02
788	.word	0x2bd02c02
789	.word	0x2be02c02
790	.word	0x2bf02c02
791	.word	0x2c002c02
792	.word	0x2c102c02
793	.word	0x2c202c02
794	.word	0x2c302c02
795	.word	0x2c402c02
796	.word	0x2c502c02
797	.word	0x2c602c02
798	.word	0x2c702c02
799	.word	0x2c802c02
800	.word	0x2c902c02
801	.word	0x2ca02c02
802	.word	0x2cb02c02
803	.word	0x2cc02c02
804	.word	0x2cd02c02
805	.word	0x2ce02c02
806	.word	0x2cf02c02
807	.word	0x2d002c02
808	.word	0x2d102c02
809	.word	0x2d202c02
810	.word	0x2d302c02
811	.word	0x2d402c02
812	.word	0x2d502c02
813	.word	0x2d602c02
814	.word	0x2d702c02
815	.word	0x2d802c02
816	.word	0x2d902c02
817	.word	0x2da02c02
818	.word	0x2db02c02
819	.word	0x2dc02c02
820	.word	0x2dd02c02
821	.word	0x2de02c02
822	.word	0x2df02c02
823	.word	0x2e002c02
824	.word	0x2e102c02
825	.word	0x2e202c02
826	.word	0x2e302c02
827	.word	0x2e402c02
828	.word	0x2e502c02
829	.word	0x2e602c02
830	.word	0x2e702c02
831	.word	0x2e802c02
832	.word	0x2e902c02
833	.word	0x2ea02c02
834	.word	0x2eb02c02
835	.word	0x2ec02c02
836	.word	0x2ed02c02
837	.word	0x2ee02c02
838	.word	0x2ef02c02
839	.word	0x2f002c02
840	.word	0x2f102c02
841	.word	0x2f202c02
842	.word	0x2f302c02
843	.word	0x2f402c02
844	.word	0x2f502c02
845	.word	0x2f602c02
846	.word	0x2f702c02
847	.word	0x2f802c02
848	.word	0x2f902c02
849	.word	0x2fa02c02
850	.word	0x2fb02c02
851	.word	0x2fc02c02
852	.word	0x2fd02c02
853	.word	0x2fe02c02
854	.word	0x2ff02c02
855	.word	0x30002c02
856	.word	0x30102c02
857	.word	0x30202c02
858	.word	0x30302c02
859	.word	0x30402c02
860	.word	0x30502c02
861	.word	0x30602c02
862	.word	0x30702c02
863	.word	0x30802c02
864	.word	0x30902c02
865	.word	0x30a02c02
866	.word	0x30b02c02
867	.word	0x30c02c02
868	.word	0x30d02c02
869	.word	0x30e02c02
870	.word	0x30f02c02
871	.word	0x31002c02
872	.word	0x31102c02
873	.word	0x31202c02
874	.word	0x31302c02
875	.word	0x31402c02
876	.word	0x31502c02
877	.word	0x31602c02
878	.word	0x31702c02
879	.word	0x31802c02
880	.word	0x31902c02
881	.word	0x31a02c02
882	.word	0x31b02c02
883	.word	0x31c02c02
884	.word	0x31d02c02
885	.word	0x31e02c02
886	.word	0x31f02c02
887	.word	0x32002c02
888	.word	0x32102c02
889	.word	0x32202c02
890	.word	0x32302c02
891	.word	0x32402c02
892	.word	0x32502c02
893	.word	0x32602c02
894	.word	0x32702c02
895	.word	0x32802c02
896	.word	0x32902c02
897	.word	0x32a02c02
898	.word	0x32b02c02
899	.word	0x32c02c02
900	.word	0x32d02c02
901	.word	0x32e02c02
902	.word	0x32f02c02
903	.word	0x33002c02
904	.word	0x33102c02
905	.word	0x33202c02
906	.word	0x33302c02
907	.word	0x33402c02
908	.word	0x33502c02
909	.word	0x33602c02
910	.word	0x33702c02
911	.word	0x33802c02
912	.word	0x33902c02
913	.word	0x33a02c02
914	.word	0x33b02c02
915	.word	0x33c02c02
916	.word	0x33d02c02
917	.word	0x33e02c02
918	.word	0x33f02c02
919	.word	0x34002c02
920	.word	0x34102c02
921	.word	0x34202c02
922	.word	0x34302c02
923	.word	0x34402c02
924	.word	0x34502c02
925	.word	0x34602c02
926	.word	0x34702c02
927	.word	0x34802c02
928	.word	0x34902c02
929	.word	0x34a02c02
930	.word	0x34b02c02
931	.word	0x34c02c02
932	.word	0x34d02c02
933	.word	0x34e02c02
934	.word	0x34f02c02
935	.word	0x35002c02
936	.word	0x35102c02
937	.word	0x35202c02
938	.word	0x35302c02
939	.word	0x35402c02
940	.word	0x35502c02
941	.word	0x35602c02
942	.word	0x35702c02
943	.word	0x35802c02
944	.word	0x35902c02
945	.word	0x35a02c02
946	.word	0x35b02c02
947	.word	0x35c02c02
948	.word	0x35d02c02
949	.word	0x35e02c02
950	.word	0x35f02c02
951	.word	0x36002c02
952	.word	0x36102c02
953	.word	0x36202c02
954	.word	0x36302c02
955	.word	0x36402c02
956	.word	0x36502c02
957	.word	0x36602c02
958	.word	0x36702c02
959	.word	0x36802c02
960	.word	0x36902c02
961	.word	0x36a02c02
962	.word	0x36b02c02
963	.word	0x36c02c02
964	.word	0x36d02c02
965	.word	0x36e02c02
966	.word	0x36f02c02
967	.word	0x37002c02
968	.word	0x37102c02
969	.word	0x37202c02
970	.word	0x37302c02
971	.word	0x37402c02
972	.word	0x37502c02
973	.word	0x37602c02
974	.word	0x37702c02
975	.word	0x37802c02
976	.word	0x37902c02
977	.word	0x37a02c02
978	.word	0x37b02c02
979	.word	0x37c02c02
980	.word	0x37d02c02
981	.word	0x37e02c02
982	.word	0x37f02c02
983	.word	0x38002c02
984	.word	0x38102c02
985	.word	0x38202c02
986	.word	0x38302c02
987	.word	0x38402c02
988	.word	0x38502c02
989	.word	0x38602c02
990	.word	0x38702c02
991	.word	0x38802c02
992	.word	0x38902c02
993	.word	0x38a02c02
994	.word	0x38b02c02
995	.word	0x38c02c02
996	.word	0x38d02c02
997	.word	0x38e02c02
998	.word	0x38f02c02
999	.word	0x39002c02
1000	.word	0x39102c02
1001	.word	0x39202c02
1002	.word	0x39302c02
1003	.word	0x39402c02
1004	.word	0x39502c02
1005	.word	0x39602c02
1006	.word	0x39702c02
1007	.word	0x39802c02
1008	.word	0x39902c02
1009	.word	0x39a02c02
1010	.word	0x39b02c02
1011	.word	0x39c02c02
1012	.word	0x39d02c02
1013	.word	0x39e02c02
1014	.word	0x39f02c02
1015	.word	0x3a002c02
1016	.word	0x3a102c02
1017	.word	0x3a202c02
1018	.word	0x3a302c02
1019	.word	0x3a402c02
1020	.word	0x3a502c02
1021	.word	0x3a602c02
1022	.word	0x3a702c02
1023	.word	0x3a802c02
1024	.word	0x3a902c02
1025	.word	0x3aa02c02
1026	.word	0x3ab02c02
1027	.word	0x3ac02c02
1028	.word	0x3ad02c02
1029	.word	0x3ae02c02
1030	.word	0x3af02c02
1031	.word	0x3b002c02
1032	.word	0x3b102c02
1033	.word	0x3b202c02
1034	.word	0x3b302c02
1035	.word	0x3b402c02
1036	.word	0x3b502c02
1037	.word	0x3b602c02
1038	.word	0x3b702c02
1039	.word	0x3b802c02
1040	.word	0x3b902c02
1041	.word	0x3ba02c02
1042	.word	0x3bb02c02
1043	.word	0x3bc02c02
1044	.word	0x3bd02c02
1045	.word	0x3be02c02
1046	.word	0x3bf02c02
1047	.word	0x3c002c02
1048	.word	0x3c102c02
1049	.word	0x3c202c02
1050	.word	0x3c302c02
1051	.word	0x3c402c02
1052	.word	0x3c502c02
1053	.word	0x3c602c02
1054	.word	0x3c702c02
1055	.word	0x3c802c02
1056	.word	0x3c902c02
1057	.word	0x3ca02c02
1058	.word	0x3cb02c02
1059	.word	0x3cc02c02
1060	.word	0x3cd02c02
1061	.word	0x3ce02c02
1062	.word	0x3cf02c02
1063	.word	0x3d002c02
1064	.word	0x3d102c02
1065	.word	0x3d202c02
1066	.word	0x3d302c02
1067	.word	0x3d402c02
1068	.word	0x3d502c02
1069	.word	0x3d602c02
1070	.word	0x3d702c02
1071	.word	0x3d802c02
1072	.word	0x3d902c02
1073	.word	0x3da02c02
1074	.word	0x3db02c02
1075	.word	0x3dc02c02
1076	.word	0x3dd02c02
1077	.word	0x3de02c02
1078	.word	0x3df02c02
1079	.word	0x3e002c02
1080	.word	0x3e102c02
1081	.word	0x3e202c02
1082	.word	0x3e302c02
1083	.word	0x3e402c02
1084	.word	0x3e502c02
1085	.word	0x3e602c02
1086	.word	0x3e702c02
1087	.word	0x3e802c02
1088	.word	0x3e902c02
1089	.word	0x3ea02c02
1090	.word	0x3eb02c02
1091	.word	0x3ec02c02
1092	.word	0x3ed02c02
1093	.word	0x3ee02c02
1094	.word	0x3ef02c02
1095	.word	0x3f002c02
1096	.word	0x3f102c02
1097	.word	0x3f202c02
1098	.word	0x3f302c02
1099	.word	0x3f402c02
1100	.word	0x3f502c02
1101	.word	0x3f602c02
1102	.word	0x3f702c02
1103	.word	0x3f802c02
1104	.word	0x3f902c02
1105	.word	0x3fa02c02
1106	.word	0x3fb02c02
1107	.word	0x3fc02c02
1108	.word	0x3fd02c02
1109	.word	0x3fe02c02
1110	.word	0x3ff02c02
1111	.word	0x40002c02
1112	.word	0x40102c02
1113	.word	0x40202c02
1114	.word	0x40302c02
1115	.word	0x40402c02
1116	.word	0x40502c02
1117	.word	0x40602c02
1118	.word	0x40702c02
1119	.word	0x40802c02
1120	.word	0x40902c02
1121	.word	0x40a02c02
1122	.word	0x40b02c02
1123	.word	0x40c02c02
1124	.word	0x40d02c02
1125	.word	0x40e02c02
1126	.word	0x40f02c02
1127	.word	0x41002c02
1128	.word	0x41102c02
1129	.word	0x41202c02
1130	.word	0x41302c02
1131	.word	0x41402c02
1132	.word	0x41502c02
1133	.word	0x41602c02
1134	.word	0x41702c02
1135	.word	0x41802c02
1136	.word	0x41902c02
1137	.word	0x41a02c02
1138	.word	0x41b02c02
1139	.word	0x41c02c02
1140	.word	0x41d02c02
1141	.word	0x41e02c02
1142	.word	0x41f02c02
1143	.word	0x42002c02
1144	.word	0x42102c02
1145	.word	0x42202c02
1146	.word	0x42302c02
1147	.word	0x42402c02
1148	.word	0x42502c02
1149	.word	0x42602c02
1150	.word	0x42702c02
1151	.word	0x42802c02
1152	.word	0x42902c02
1153	.word	0x42a02c02
1154	.word	0x42b02c02
1155	.word	0x42c02c02
1156	.word	0x42d02c02
1157	.word	0x42e02c02
1158	.word	0x42f02c02
1159	.word	0x43002c02
1160	.word	0x43102c02
1161	.word	0x43202c02
1162	.word	0x43302c02
1163	.word	0x43402c02
1164	.word	0x43502c02
1165	.word	0x43602c02
1166	.word	0x43702c02
1167	.word	0x43802c02
1168	.word	0x43902c02
1169	.word	0x43a02c02
1170	.word	0x43b02c02
1171	.word	0x43c02c02
1172	.word	0x43d02c02
1173	.word	0x43e02c02
1174	.word	0x43f02c02
1175	.word	0x44002c02
1176	.word	0x44102c02
1177	.word	0x44202c02
1178	.word	0x44302c02
1179	.word	0x44402c02
1180	.word	0x44502c02
1181	.word	0x44602c02
1182	.word	0x44702c02
1183	.word	0x44802c02
1184	.word	0x44902c02
1185	.word	0x44a02c02
1186	.word	0x44b02c02
1187	.word	0x44c02c02
1188	.word	0x44d02c02
1189	.word	0x44e02c02
1190	.word	0x44f02c02
1191	.word	0x45002c02
1192	.word	0x45102c02
1193	.word	0x45202c02
1194	.word	0x45302c02
1195	.word	0x45402c02
1196	.word	0x45502c02
1197	.word	0x45602c02
1198	.word	0x45702c02
1199	.word	0x45802c02
1200	.word	0x45902c02
1201	.word	0x45a02c02
1202	.word	0x45b02c02
1203	.word	0x45c02c02
1204	.word	0x45d02c02
1205	.word	0x45e02c02
1206	.word	0x45f02c02
1207	.word	0x46002c02
1208	.word	0x46102c02
1209	.word	0x46202c02
1210	.word	0x46302c02
1211	.word	0x46402c02
1212	.word	0x46502c02
1213	.word	0x46602c02
1214	.word	0x46702c02
1215	.word	0x46802c02
1216	.word	0x46902c02
1217	.word	0x46a02c02
1218	.word	0x46b02c02
1219	.word	0x46c02c02
1220	.word	0x46d02c02
1221	.word	0x46e02c02
1222	.word	0x46f02c02
1223	.word	0x47002c02
1224	.word	0x47102c02
1225	.word	0x47202c02
1226	.word	0x47302c02
1227	.word	0x47402c02
1228	.word	0x47502c02
1229	.word	0x47602c02
1230	.word	0x47702c02
1231	.word	0x47802c02
1232	.word	0x47902c02
1233	.word	0x47a02c02
1234	.word	0x47b02c02
1235	.word	0x47c02c02
1236	.word	0x47d02c02
1237	.word	0x47e02c02
1238	.word	0x47f02c02
1239	.word	0x48002c02
1240	.word	0x48102c02
1241	.word	0x48202c02
1242	.word	0x48302c02
1243	.word	0x48402c02
1244	.word	0x48502c02
1245	.word	0x48602c02
1246	.word	0x48702c02
1247	.word	0x48802c02
1248	.word	0x48902c02
1249	.word	0x48a02c02
1250	.word	0x48b02c02
1251	.word	0x48c02c02
1252	.word	0x48d02c02
1253	.word	0x48e02c02
1254	.word	0x48f02c02
1255	.word	0x49002c02
1256	.word	0x49102c02
1257	.word	0x49202c02
1258	.word	0x49302c02
1259	.word	0x49402c02
1260	.word	0x49502c02
1261	.word	0x49602c02
1262	.word	0x49702c02
1263	.word	0x49802c02
1264	.word	0x49902c02
1265	.word	0x49a02c02
1266	.word	0x49b02c02
1267	.word	0x49c02c02
1268	.word	0x49d02c02
1269	.word	0x49e02c02
1270	.word	0x49f02c02
1271	.word	0x4a002c02
1272	.word	0x4a102c02
1273	.word	0x4a202c02
1274	.word	0x4a302c02
1275	.word	0x4a402c02
1276	.word	0x4a502c02
1277	.word	0x4a602c02
1278	.word	0x4a702c02
1279	.word	0x4a802c02
1280	.word	0x4a902c02
1281	.word	0x4aa02c02
1282	.word	0x4ab02c02
1283	.word	0x4ac02c02
1284	.word	0x4ad02c02
1285	.word	0x4ae02c02
1286	.word	0x4af02c02
1287	.word	0x4b002c02
1288	.word	0x4b102c02
1289	.word	0x4b202c02
1290	.word	0x4b302c02
1291	.word	0x4b402c02
1292	.word	0x4b502c02
1293	.word	0x4b602c02
1294	.word	0x4b702c02
1295	.word	0x4b802c02
1296	.word	0x4b902c02
1297	.word	0x4ba02c02
1298	.word	0x4bb02c02
1299	.word	0x4bc02c02
1300	.word	0x4bd02c02
1301	.word	0x4be02c02
1302	.word	0x4bf02c02
1303	.word	0x4c002c02
1304	.word	0x4c102c02
1305	.word	0x4c202c02
1306	.word	0x4c302c02
1307	.word	0x4c402c02
1308	.word	0x4c502c02
1309	.word	0x4c602c02
1310	.word	0x4c702c02
1311	.word	0x4c802c02
1312	.word	0x4c902c02
1313	.word	0x4ca02c02
1314	.word	0x4cb02c02
1315	.word	0x4cc02c02
1316	.word	0x4cd02c02
1317	.word	0x4ce02c02
1318	.word	0x4cf02c02
1319	.word	0x4d002c02
1320	.word	0x4d102c02
1321	.word	0x4d202c02
1322	.word	0x4d302c02
1323	.word	0x4d402c02
1324	.word	0x4d502c02
1325	.word	0x4d602c02
1326	.word	0x4d702c02
1327	.word	0x4d802c02
1328	.word	0x4d902c02
1329	.word	0x4da02c02
1330	.word	0x4db02c02
1331	.word	0x4dc02c02
1332	.word	0x4dd02c02
1333	.word	0x4de02c02
1334	.word	0x4df02c02
1335	.word	0x4e002c02
1336	.word	0x4e102c02
1337	.word	0x4e202c02
1338	.word	0x4e302c02
1339	.word	0x4e402c02
1340	.word	0x4e502c02
1341	.word	0x4e602c02
1342	.word	0x4e702c02
1343	.word	0x4e802c02
1344	.word	0x4e902c02
1345	.word	0x4ea02c02
1346	.word	0x4eb02c02
1347	.word	0x4ec02c02
1348	.word	0x4ed02c02
1349	.word	0x4ee02c02
1350	.word	0x4ef02c02
1351	.word	0x4f002c02
1352	.word	0x4f102c02
1353	.word	0x4f202c02
1354	.word	0x4f302c02
1355	.word	0x4f402c02
1356	.word	0x4f502c02
1357	.word	0x4f602c02
1358	.word	0x4f702c02
1359	.word	0x4f802c02
1360	.word	0x4f902c02
1361	.word	0x4fa02c02
1362	.word	0x4fb02c02
1363	.word	0x4fc02c02
1364	.word	0x4fd02c02
1365	.word	0x4fe02c02
1366	.word	0x4ff02c02
1367	.word	0x50002c02
1368	.word	0x50102c02
1369	.word	0x50202c02
1370	.word	0x50302c02
1371	.word	0x50402c02
1372	.word	0x50502c02
1373	.word	0x50602c02
1374	.word	0x50702c02
1375	.word	0x50802c02
1376	.word	0x50902c02
1377	.word	0x50a02c02
1378	.word	0x50b02c02
1379	.word	0x50c02c02
1380	.word	0x50d02c02
1381	.word	0x50e02c02
1382	.word	0x50f02c02
1383	.word	0x51002c02
1384	.word	0x51102c02
1385	.word	0x51202c02
1386	.word	0x51302c02
1387	.word	0x51402c02
1388	.word	0x51502c02
1389	.word	0x51602c02
1390	.word	0x51702c02
1391	.word	0x51802c02
1392	.word	0x51902c02
1393	.word	0x51a02c02
1394	.word	0x51b02c02
1395	.word	0x51c02c02
1396	.word	0x51d02c02
1397	.word	0x51e02c02
1398	.word	0x51f02c02
1399	.word	0x52002c02
1400	.word	0x52102c02
1401	.word	0x52202c02
1402	.word	0x52302c02
1403	.word	0x52402c02
1404	.word	0x52502c02
1405	.word	0x52602c02
1406	.word	0x52702c02
1407	.word	0x52802c02
1408	.word	0x52902c02
1409	.word	0x52a02c02
1410	.word	0x52b02c02
1411	.word	0x52c02c02
1412	.word	0x52d02c02
1413	.word	0x52e02c02
1414	.word	0x52f02c02
1415	.word	0x53002c02
1416	.word	0x53102c02
1417	.word	0x53202c02
1418	.word	0x53302c02
1419	.word	0x53402c02
1420	.word	0x53502c02
1421	.word	0x53602c02
1422	.word	0x53702c02
1423	.word	0x53802c02
1424	.word	0x53902c02
1425	.word	0x53a02c02
1426	.word	0x53b02c02
1427	.word	0x53c02c02
1428	.word	0x53d02c02
1429	.word	0x53e02c02
1430	.word	0x53f02c02
1431	.word	0x54002c02
1432	.word	0x54102c02
1433	.word	0x54202c02
1434	.word	0x54302c02
1435	.word	0x54402c02
1436	.word	0x54502c02
1437	.word	0x54602c02
1438	.word	0x54702c02
1439	.word	0x54802c02
1440	.word	0x54902c02
1441	.word	0x54a02c02
1442	.word	0x54b02c02
1443	.word	0x54c02c02
1444	.word	0x54d02c02
1445	.word	0x54e02c02
1446	.word	0x54f02c02
1447	.word	0x55002c02
1448	.word	0x55102c02
1449	.word	0x55202c02
1450	.word	0x55302c02
1451	.word	0x55402c02
1452	.word	0x55502c02
1453	.word	0x55602c02
1454	.word	0x55702c02
1455	.word	0x55802c02
1456	.word	0x55902c02
1457	.word	0x55a02c02
1458	.word	0x55b02c02
1459	.word	0x55c02c02
1460	.word	0x55d02c02
1461	.word	0x55e02c02
1462	.word	0x55f02c02
1463	.word	0x56002c02
1464	.word	0x56102c02
1465	.word	0x56202c02
1466	.word	0x56302c02
1467	.word	0x56402c02
1468	.word	0x56502c02
1469	.word	0x56602c02
1470	.word	0x56702c02
1471	.word	0x56802c02
1472	.word	0x56902c02
1473	.word	0x56a02c02
1474	.word	0x56b02c02
1475	.word	0x56c02c02
1476	.word	0x56d02c02
1477	.word	0x56e02c02
1478	.word	0x56f02c02
1479	.word	0x57002c02
1480	.word	0x57102c02
1481	.word	0x57202c02
1482	.word	0x57302c02
1483	.word	0x57402c02
1484	.word	0x57502c02
1485	.word	0x57602c02
1486	.word	0x57702c02
1487	.word	0x57802c02
1488	.word	0x57902c02
1489	.word	0x57a02c02
1490	.word	0x57b02c02
1491	.word	0x57c02c02
1492	.word	0x57d02c02
1493	.word	0x57e02c02
1494	.word	0x57f02c02
1495	.word	0x58002c02
1496	.word	0x58102c02
1497	.word	0x58202c02
1498	.word	0x58302c02
1499	.word	0x58402c02
1500	.word	0x58502c02
1501	.word	0x58602c02
1502	.word	0x58702c02
1503	.word	0x58802c02
1504	.word	0x58902c02
1505	.word	0x58a02c02
1506	.word	0x58b02c02
1507	.word	0x58c02c02
1508	.word	0x58d02c02
1509	.word	0x58e02c02
1510	.word	0x58f02c02
1511	.word	0x59002c02
1512	.word	0x59102c02
1513	.word	0x59202c02
1514	.word	0x59302c02
1515	.word	0x59402c02
1516	.word	0x59502c02
1517	.word	0x59602c02
1518	.word	0x59702c02
1519	.word	0x59802c02
1520	.word	0x59902c02
1521	.word	0x59a02c02
1522	.word	0x59b02c02
1523	.word	0x59c02c02
1524	.word	0x59d02c02
1525	.word	0x59e02c02
1526	.word	0x59f02c02
1527	.word	0x5a002c02
1528	.word	0x5a102c02
1529	.word	0x5a202c02
1530	.word	0x5a302c02
1531	.word	0x5a402c02
1532	.word	0x5a502c02
1533	.word	0x5a602c02
1534	.word	0x5a702c02
1535	.word	0x5a802c02
1536	.word	0x5a902c02
1537	.word	0x5aa02c02
1538	.word	0x5ab02c02
1539	.word	0x5ac02c02
1540	.word	0x5ad02c02
1541	.word	0x5ae02c02
1542	.word	0x5af02c02
1543	.word	0x5b002c02
1544	.word	0x5b102c02
1545	.word	0x5b202c02
1546	.word	0x5b302c02
1547	.word	0x5b402c02
1548	.word	0x5b502c02
1549	.word	0x5b602c02
1550	.word	0x5b702c02
1551	.word	0x5b802c02
1552	.word	0x5b902c02
1553	.word	0x5ba02c02
1554	.word	0x5bb02c02
1555	.word	0x5bc02c02
1556	.word	0x5bd02c02
1557	.word	0x5be02c02
1558	.word	0x5bf02c02
1559	.word	0x5c002c02
1560	.word	0x5c102c02
1561	.word	0x5c202c02
1562	.word	0x5c302c02
1563	.word	0x5c402c02
1564	.word	0x5c502c02
1565	.word	0x5c602c02
1566	.word	0x5c702c02
1567	.word	0x5c802c02
1568	.word	0x5c902c02
1569	.word	0x5ca02c02
1570	.word	0x5cb02c02
1571	.word	0x5cc02c02
1572	.word	0x5cd02c02
1573	.word	0x5ce02c02
1574	.word	0x5cf02c02
1575	.word	0x5d002c02
1576	.word	0x5d102c02
1577	.word	0x5d202c02
1578	.word	0x5d302c02
1579	.word	0x5d402c02
1580	.word	0x5d502c02
1581	.word	0x5d602c02
1582	.word	0x5d702c02
1583	.word	0x5d802c02
1584	.word	0x5d902c02
1585	.word	0x5da02c02
1586	.word	0x5db02c02
1587	.word	0x5dc02c02
1588	.word	0x5dd02c02
1589	.word	0x5de02c02
1590	.word	0x5df02c02
1591	.word	0x5e002c02
1592	.word	0x5e102c02
1593	.word	0x5e202c02
1594	.word	0x5e302c02
1595	.word	0x5e402c02
1596	.word	0x5e502c02
1597	.word	0x5e602c02
1598	.word	0x5e702c02
1599	.word	0x5e802c02
1600	.word	0x5e902c02
1601	.word	0x5ea02c02
1602	.word	0x5eb02c02
1603	.word	0x5ec02c02
1604	.word	0x5ed02c02
1605	.word	0x5ee02c02
1606	.word	0x5ef02c02
1607	.word	0x5f002c02
1608	.word	0x5f102c02
1609	.word	0x5f202c02
1610	.word	0x5f302c02
1611	.word	0x5f402c02
1612	.word	0x5f502c02
1613	.word	0x5f602c02
1614	.word	0x5f702c02
1615	.word	0x5f802c02
1616	.word	0x5f902c02
1617	.word	0x5fa02c02
1618	.word	0x5fb02c02
1619	.word	0x5fc02c02
1620	.word	0x5fd02c02
1621	.word	0x5fe02c02
1622	.word	0x5ff02c02
1623	.word	0x60002c02
1624	.word	0x60102c02
1625	.word	0x60202c02
1626	.word	0x60302c02
1627	.word	0x60402c02
1628	.word	0x60502c02
1629	.word	0x60602c02
1630	.word	0x60702c02
1631	.word	0x60802c02
1632	.word	0x60902c02
1633	.word	0x60a02c02
1634	.word	0x60b02c02
1635	.word	0x60c02c02
1636	.word	0x60d02c02
1637	.word	0x60e02c02
1638	.word	0x60f02c02
1639	.word	0x61002c02
1640	.word	0x61102c02
1641	.word	0x61202c02
1642	.word	0x61302c02
1643	.word	0x61402c02
1644	.word	0x61502c02
1645	.word	0x61602c02
1646	.word	0x61702c02
1647	.word	0x61802c02
1648	.word	0x61902c02
1649	.word	0x61a02c02
1650	.word	0x61b02c02
1651	.word	0x61c02c02
1652	.word	0x61d02c02
1653	.word	0x61e02c02
1654	.word	0x61f02c02
1655	.word	0x62002c02
1656	.word	0x62102c02
1657	.word	0x62202c02
1658	.word	0x62302c02
1659	.word	0x62402c02
1660	.word	0x62502c02
1661	.word	0x62602c02
1662	.word	0x62702c02
1663	.word	0x62802c02
1664	.word	0x62902c02
1665	.word	0x62a02c02
1666	.word	0x62b02c02
1667	.word	0x62c02c02
1668	.word	0x62d02c02
1669	.word	0x62e02c02
1670	.word	0x62f02c02
1671	.word	0x63002c02
1672	.word	0x63102c02
1673	.word	0x63202c02
1674	.word	0x63302c02
1675	.word	0x63402c02
1676	.word	0x63502c02
1677	.word	0x63602c02
1678	.word	0x63702c02
1679	.word	0x63802c02
1680	.word	0x63902c02
1681	.word	0x63a02c02
1682	.word	0x63b02c02
1683	.word	0x63c02c02
1684	.word	0x63d02c02
1685	.word	0x63e02c02
1686	.word	0x63f02c02
1687	.word	0x64002c02
1688	.word	0x64102c02
1689	.word	0x64202c02
1690	.word	0x64302c02
1691	.word	0x64402c02
1692	.word	0x64502c02
1693	.word	0x64602c02
1694	.word	0x64702c02
1695	.word	0x64802c02
1696	.word	0x64902c02
1697	.word	0x64a02c02
1698	.word	0x64b02c02
1699	.word	0x64c02c02
1700	.word	0x64d02c02
1701	.word	0x64e02c02
1702	.word	0x64f02c02
1703	.word	0x65002c02
1704	.word	0x65102c02
1705	.word	0x65202c02
1706	.word	0x65302c02
1707	.word	0x65402c02
1708	.word	0x65502c02
1709	.word	0x65602c02
1710	.word	0x65702c02
1711	.word	0x65802c02
1712	.word	0x65902c02
1713	.word	0x65a02c02
1714	.word	0x65b02c02
1715	.word	0x65c02c02
1716	.word	0x65d02c02
1717	.word	0x65e02c02
1718	.word	0x65f02c02
1719	.word	0x66002c02
1720	.word	0x66102c02
1721	.word	0x66202c02
1722	.word	0x66302c02
1723	.word	0x66402c02
1724	.word	0x66502c02
1725	.word	0x66602c02
1726	.word	0x66702c02
1727	.word	0x66802c02
1728	.word	0x66902c02
1729	.word	0x66a02c02
1730	.word	0x66b02c02
1731	.word	0x66c02c02
1732	.word	0x66d02c02
1733	.word	0x66e02c02
1734	.word	0x66f02c02
1735	.word	0x67002c02
1736	.word	0x67102c02
1737	.word	0x67202c02
1738	.word	0x67302c02
1739	.word	0x67402c02
1740	.word	0x67502c02
1741	.word	0x67602c02
1742	.word	0x67702c02
1743	.word	0x67802c02
1744	.word	0x67902c02
1745	.word	0x67a02c02
1746	.word	0x67b02c02
1747	.word	0x67c02c02
1748	.word	0x67d02c02
1749	.word	0x67e02c02
1750	.word	0x67f02c02
1751	.word	0x68002c02
1752	.word	0x68102c02
1753	.word	0x68202c02
1754	.word	0x68302c02
1755	.word	0x68402c02
1756	.word	0x68502c02
1757	.word	0x68602c02
1758	.word	0x68702c02
1759	.word	0x68802c02
1760	.word	0x68902c02
1761	.word	0x68a02c02
1762	.word	0x68b02c02
1763	.word	0x68c02c02
1764	.word	0x68d02c02
1765	.word	0x68e02c02
1766	.word	0x68f02c02
1767	.word	0x69002c02
1768	.word	0x69102c02
1769	.word	0x69202c02
1770	.word	0x69302c02
1771	.word	0x69402c02
1772	.word	0x69502c02
1773	.word	0x69602c02
1774	.word	0x69702c02
1775	.word	0x69802c02
1776	.word	0x69902c02
1777	.word	0x69a02c02
1778	.word	0x69b02c02
1779	.word	0x69c02c02
1780	.word	0x69d02c02
1781	.word	0x69e02c02
1782	.word	0x69f02c02
1783	.word	0x6a002c02
1784	.word	0x6a102c02
1785	.word	0x6a202c02
1786	.word	0x6a302c02
1787	.word	0x6a402c02
1788	.word	0x6a502c02
1789	.word	0x6a602c02
1790	.word	0x6a702c02
1791	.word	0x6a802c02
1792	.word	0x6a902c02
1793	.word	0x6aa02c02
1794	.word	0x6ab02c02
1795	.word	0x6ac02c02
1796	.word	0x6ad02c02
1797	.word	0x6ae02c02
1798	.word	0x6af02c02
1799	.word	0x6b002c02
1800	.word	0x6b102c02
1801	.word	0x6b202c02
1802	.word	0x6b302c02
1803	.word	0x6b402c02
1804	.word	0x6b502c02
1805	.word	0x6b602c02
1806	.word	0x6b702c02
1807	.word	0x6b802c02
1808	.word	0x6b902c02
1809	.word	0x6ba02c02
1810	.word	0x6bb02c02
1811	.word	0x6bc02c02
1812	.word	0x6bd02c02
1813	.word	0x6be02c02
1814	.word	0x6bf02c02
1815	.word	0x6c002c02
1816	.word	0x6c102c02
1817	.word	0x6c202c02
1818	.word	0x6c302c02
1819	.word	0x6c402c02
1820	.word	0x6c502c02
1821	.word	0x6c602c02
1822	.word	0x6c702c02
1823	.word	0x6c802c02
1824	.word	0x6c902c02
1825	.word	0x6ca02c02
1826	.word	0x6cb02c02
1827	.word	0x6cc02c02
1828	.word	0x6cd02c02
1829	.word	0x6ce02c02
1830	.word	0x6cf02c02
1831	.word	0x6d002c02
1832	.word	0x6d102c02
1833	.word	0x6d202c02
1834	.word	0x6d302c02
1835	.word	0x6d402c02
1836	.word	0x6d502c02
1837	.word	0x6d602c02
1838	.word	0x6d702c02
1839	.word	0x6d802c02
1840	.word	0x6d902c02
1841	.word	0x6da02c02
1842	.word	0x6db02c02
1843	.word	0x6dc02c02
1844	.word	0x6dd02c02
1845	.word	0x6de02c02
1846	.word	0x6df02c02
1847	.word	0x6e002c02
1848	.word	0x6e102c02
1849	.word	0x6e202c02
1850	.word	0x6e302c02
1851	.word	0x6e402c02
1852	.word	0x6e502c02
1853	.word	0x6e602c02
1854	.word	0x6e702c02
1855	.word	0x6e802c02
1856	.word	0x6e902c02
1857	.word	0x6ea02c02
1858	.word	0x6eb02c02
1859	.word	0x6ec02c02
1860	.word	0x6ed02c02
1861	.word	0x6ee02c02
1862	.word	0x6ef02c02
1863	.word	0x6f002c02
1864	.word	0x6f102c02
1865	.word	0x6f202c02
1866	.word	0x6f302c02
1867	.word	0x6f402c02
1868	.word	0x6f502c02
1869	.word	0x6f602c02
1870	.word	0x6f702c02
1871	.word	0x6f802c02
1872	.word	0x6f902c02
1873	.word	0x6fa02c02
1874	.word	0x6fb02c02
1875	.word	0x6fc02c02
1876	.word	0x6fd02c02
1877	.word	0x6fe02c02
1878	.word	0x6ff02c02
1879	.word	0x70002c02
1880	.word	0x70102c02
1881	.word	0x70202c02
1882	.word	0x70302c02
1883	.word	0x70402c02
1884	.word	0x70502c02
1885	.word	0x70602c02
1886	.word	0x70702c02
1887	.word	0x70802c02
1888	.word	0x70902c02
1889	.word	0x70a02c02
1890	.word	0x70b02c02
1891	.word	0x70c02c02
1892	.word	0x70d02c02
1893	.word	0x70e02c02
1894	.word	0x70f02c02
1895	.word	0x71002c02
1896	.word	0x71102c02
1897	.word	0x71202c02
1898	.word	0x71302c02
1899	.word	0x71402c02
1900	.word	0x71502c02
1901	.word	0x71602c02
1902	.word	0x71702c02
1903	.word	0x71802c02
1904	.word	0x71902c02
1905	.word	0x71a02c02
1906	.word	0x71b02c02
1907	.word	0x71c02c02
1908	.word	0x71d02c02
1909	.word	0x71e02c02
1910	.word	0x71f02c02
1911	.word	0x72002c02
1912	.word	0x72102c02
1913	.word	0x72202c02
1914	.word	0x72302c02
1915	.word	0x72402c02
1916	.word	0x72502c02
1917	.word	0x72602c02
1918	.word	0x72702c02
1919	.word	0x72802c02
1920	.word	0x72902c02
1921	.word	0x72a02c02
1922	.word	0x72b02c02
1923	.word	0x72c02c02
1924	.word	0x72d02c02
1925	.word	0x72e02c02
1926	.word	0x72f02c02
1927	.word	0x73002c02
1928	.word	0x73102c02
1929	.word	0x73202c02
1930	.word	0x73302c02
1931	.word	0x73402c02
1932	.word	0x73502c02
1933	.word	0x73602c02
1934	.word	0x73702c02
1935	.word	0x73802c02
1936	.word	0x73902c02
1937	.word	0x73a02c02
1938	.word	0x73b02c02
1939	.word	0x73c02c02
1940	.word	0x73d02c02
1941	.word	0x73e02c02
1942	.word	0x73f02c02
1943	.word	0x74002c02
1944	.word	0x74102c02
1945	.word	0x74202c02
1946	.word	0x74302c02
1947	.word	0x74402c02
1948	.word	0x74502c02
1949	.word	0x74602c02
1950	.word	0x74702c02
1951	.word	0x74802c02
1952	.word	0x74902c02
1953	.word	0x74a02c02
1954	.word	0x74b02c02
1955	.word	0x74c02c02
1956	.word	0x74d02c02
1957	.word	0x74e02c02
1958	.word	0x74f02c02
1959	.word	0x75002c02
1960	.word	0x75102c02
1961	.word	0x75202c02
1962	.word	0x75302c02
1963	.word	0x75402c02
1964	.word	0x75502c02
1965	.word	0x75602c02
1966	.word	0x75702c02
1967	.word	0x75802c02
1968	.word	0x75902c02
1969	.word	0x75a02c02
1970	.word	0x75b02c02
1971	.word	0x75c02c02
1972	.word	0x75d02c02
1973	.word	0x75e02c02
1974	.word	0x75f02c02
1975	.word	0x76002c02
1976	.word	0x76102c02
1977	.word	0x76202c02
1978	.word	0x76302c02
1979	.word	0x76402c02
1980	.word	0x76502c02
1981	.word	0x76602c02
1982	.word	0x76702c02
1983	.word	0x76802c02
1984	.word	0x76902c02
1985	.word	0x76a02c02
1986	.word	0x76b02c02
1987	.word	0x76c02c02
1988	.word	0x76d02c02
1989	.word	0x76e02c02
1990	.word	0x76f02c02
1991	.word	0x77002c02
1992	.word	0x77102c02
1993	.word	0x77202c02
1994	.word	0x77302c02
1995	.word	0x77402c02
1996	.word	0x77502c02
1997	.word	0x77602c02
1998	.word	0x77702c02
1999	.word	0x77802c02
2000	.word	0x77902c02
2001	.word	0x77a02c02
2002	.word	0x77b02c02
2003	.word	0x77c02c02
2004	.word	0x77d02c02
2005	.word	0x77e02c02
2006	.word	0x77f02c02
2007	.word	0x78002c02
2008	.word	0x78102c02
2009	.word	0x78202c02
2010	.word	0x78302c02
2011	.word	0x78402c02
2012	.word	0x78502c02
2013	.word	0x78602c02
2014	.word	0x78702c02
2015	.word	0x78802c02
2016	.word	0x78902c02
2017	.word	0x78a02c02
2018	.word	0x78b02c02
2019	.word	0x78c02c02
2020	.word	0x78d02c02
2021	.word	0x78e02c02
2022	.word	0x78f02c02
2023	.word	0x79002c02
2024	.word	0x79102c02
2025	.word	0x79202c02
2026	.word	0x79302c02
2027	.word	0x79402c02
2028	.word	0x79502c02
2029	.word	0x79602c02
2030	.word	0x79702c02
2031	.word	0x79802c02
2032	.word	0x79902c02
2033	.word	0x79a02c02
2034	.word	0x79b02c02
2035	.word	0x79c02c02
2036	.word	0x79d02c02
2037	.word	0x79e02c02
2038	.word	0x79f02c02
2039	.word	0x7a002c02
2040	.word	0x7a102c02
2041	.word	0x7a202c02
2042	.word	0x7a302c02
2043	.word	0x7a402c02
2044	.word	0x7a502c02
2045	.word	0x7a602c02
2046	.word	0x7a702c02
2047	.word	0x7a802c02
2048	.word	0x7a902c02
2049	.word	0x7aa02c02
2050	.word	0x7ab02c02
2051	.word	0x7ac02c02
2052	.word	0x7ad02c02
2053	.word	0x7ae02c02
2054	.word	0x7af02c02
2055	.word	0x7b002c02
2056	.word	0x7b102c02
2057	.word	0x7b202c02
2058	.word	0x7b302c02
2059	.word	0x7b402c02
2060	.word	0x7b502c02
2061	.word	0x7b602c02
2062	.word	0x7b702c02
2063	.word	0x7b802c02
2064	.word	0x7b902c02
2065	.word	0x7ba02c02
2066	.word	0x7bb02c02
2067	.word	0x7bc02c02
2068	.word	0x7bd02c02
2069	.word	0x7be02c02
2070	.word	0x7bf02c02
2071	.word	0x7c002c02
2072	.word	0x7c102c02
2073	.word	0x7c202c02
2074	.word	0x7c302c02
2075	.word	0x7c402c02
2076	.word	0x7c502c02
2077	.word	0x7c602c02
2078	.word	0x7c702c02
2079	.word	0x7c802c02
2080	.word	0x7c902c02
2081	.word	0x7ca02c02
2082	.word	0x7cb02c02
2083	.word	0x7cc02c02
2084	.word	0x7cd02c02
2085	.word	0x7ce02c02
2086	.word	0x7cf02c02
2087	.word	0x7d002c02
2088	.word	0x7d102c02
2089	.word	0x7d202c02
2090	.word	0x7d302c02
2091	.word	0x7d402c02
2092	.word	0x7d502c02
2093	.word	0x7d602c02
2094	.word	0x7d702c02
2095	.word	0x7d802c02
2096	.word	0x7d902c02
2097	.word	0x7da02c02
2098	.word	0x7db02c02
2099	.word	0x7dc02c02
2100	.word	0x7dd02c02
2101	.word	0x7de02c02
2102	.word	0x7df02c02
2103	.word	0x7e002c02
2104	.word	0x7e102c02
2105	.word	0x7e202c02
2106	.word	0x7e302c02
2107	.word	0x7e402c02
2108	.word	0x7e502c02
2109	.word	0x7e602c02
2110	.word	0x7e702c02
2111	.word	0x7e802c02
2112	.word	0x7e902c02
2113	.word	0x7ea02c02
2114	.word	0x7eb02c02
2115	.word	0x7ec02c02
2116	.word	0x7ed02c02
2117	.word	0x7ee02c02
2118	.word	0x7ef02c02
2119	.word	0x7f002c02
2120	.word	0x7f102c02
2121	.word	0x7f202c02
2122	.word	0x7f302c02
2123	.word	0x7f402c02
2124	.word	0x7f502c02
2125	.word	0x7f602c02
2126	.word	0x7f702c02
2127	.word	0x7f802c02
2128	.word	0x7f902c02
2129	.word	0x7fa02c02
2130	.word	0x7fb02c02
2131	.word	0x7fc02c02
2132	.word	0x7fd02c02
2133	.word	0x7fe02c02
2134	.word	0x7ff02c02
2135	.word	0x80002c02
2136	.word	0x80102c02
2137	.word	0x80202c02
2138	.word	0x80302c02
2139	.word	0x80402c02
2140	.word	0x80502c02
2141	.word	0x80602c02
2142	.word	0x80702c02
2143	.word	0x80802c02
2144	.word	0x80902c02
2145	.word	0x80a02c02
2146	.word	0x80b02c02
2147	.word	0x80c02c02
2148	.word	0x80d02c02
2149	.word	0x80e02c02
2150	.word	0x80f02c02
2151	.word	0x81002c02
2152	.word	0x81102c02
2153	.word	0x81202c02
2154	.word	0x81302c02
2155	.word	0x81402c02
2156	.word	0x81502c02
2157	.word	0x81602c02
2158	.word	0x81702c02
2159	.word	0x81802c02
2160	.word	0x81902c02
2161	.word	0x81a02c02
2162	.word	0x81b02c02
2163	.word	0x81c02c02
2164	.word	0x81d02c02
2165	.word	0x81e02c02
2166	.word	0x81f02c02
2167	.word	0x82002c02
2168	.word	0x82102c02
2169	.word	0x82202c02
2170	.word	0x82302c02
2171	.word	0x82402c02
2172	.word	0x82502c02
2173	.word	0x82602c02
2174	.word	0x82702c02
2175	.word	0x82802c02
2176	.word	0x82902c02
2177	.word	0x82a02c02
2178	.word	0x82b02c02
2179	.word	0x82c02c02
2180	.word	0x82d02c02
2181	.word	0x82e02c02
2182	.word	0x82f02c02
2183	.word	0x83002c02
2184	.word	0x83102c02
2185	.word	0x83202c02
2186	.word	0x83302c02
2187	.word	0x83402c02
2188	.word	0x83502c02
2189	.word	0x83602c02
2190	.word	0x83702c02
2191	.word	0x83802c02
2192	.word	0x83902c02
2193	.word	0x83a02c02
2194	.word	0x83b02c02
2195	.word	0x83c02c02
2196	.word	0x83d02c02
2197	.word	0x83e02c02
2198	.word	0x83f02c02
2199	.word	0x84002c02
2200	.word	0x84102c02
2201	.word	0x84202c02
2202	.word	0x84302c02
2203	.word	0x84402c02
2204	.word	0x84502c02
2205	.word	0x84602c02
2206	.word	0x84702c02
2207	.word	0x84802c02
2208	.word	0x84902c02
2209	.word	0x84a02c02
2210	.word	0x84b02c02
2211	.word	0x84c02c02
2212	.word	0x84d02c02
2213	.word	0x84e02c02
2214	.word	0x84f02c02
2215	.word	0x85002c02
2216	.word	0x85102c02
2217	.word	0x85202c02
2218	.word	0x85302c02
2219	.word	0x85402c02
2220	.word	0x85502c02
2221	.word	0x85602c02
2222	.word	0x85702c02
2223	.word	0x85802c02
2224	.word	0x85902c02
2225	.word	0x85a02c02
2226	.word	0x85b02c02
2227	.word	0x85c02c02
2228	.word	0x85d02c02
2229	.word	0x85e02c02
2230	.word	0x85f02c02
2231	.word	0x86002c02
2232	.word	0x86102c02
2233	.word	0x86202c02
2234	.word	0x86302c02
2235	.word	0x86402c02
2236	.word	0x86502c02
2237	.word	0x86602c02
2238	.word	0x86702c02
2239	.word	0x86802c02
2240	.word	0x86902c02
2241	.word	0x86a02c02
2242	.word	0x86b02c02
2243	.word	0x86c02c02
2244	.word	0x86d02c02
2245	.word	0x86e02c02
2246	.word	0x86f02c02
2247	.word	0x87002c02
2248	.word	0x87102c02
2249	.word	0x87202c02
2250	.word	0x87302c02
2251	.word	0x87402c02
2252	.word	0x87502c02
2253	.word	0x87602c02
2254	.word	0x87702c02
2255	.word	0x87802c02
2256	.word	0x87902c02
2257	.word	0x87a02c02
2258	.word	0x87b02c02
2259	.word	0x87c02c02
2260	.word	0x87d02c02
2261	.word	0x87e02c02
2262	.word	0x87f02c02
2263	.word	0x88002c02
2264	.word	0x88102c02
2265	.word	0x88202c02
2266	.word	0x88302c02
2267	.word	0x88402c02
2268	.word	0x88502c02
2269	.word	0x88602c02
2270	.word	0x88702c02
2271	.word	0x88802c02
2272	.word	0x88902c02
2273	.word	0x88a02c02
2274	.word	0x88b02c02
2275	.word	0x88c02c02
2276	.word	0x88d02c02
2277	.word	0x88e02c02
2278	.word	0x88f02c02
2279	.word	0x89002c02
2280	.word	0x89102c02
2281	.word	0x89202c02
2282	.word	0x89302c02
2283	.word	0x89402c02
2284	.word	0x89502c02
2285	.word	0x89602c02
2286	.word	0x89702c02
2287	.word	0x89802c02
2288	.word	0x89902c02
2289	.word	0x89a02c02
2290	.word	0x89b02c02
2291	.word	0x89c02c02
2292	.word	0x89d02c02
2293	.word	0x89e02c02
2294	.word	0x89f02c02
2295	.word	0x8a002c02
2296	.word	0x8a102c02
2297	.word	0x8a202c02
2298	.word	0x8a302c02
2299	.word	0x8a402c02
2300	.word	0x8a502c02
2301	.word	0x8a602c02
2302	.word	0x8a702c02
2303	.word	0x8a802c02
2304	.word	0x8a902c02
2305	.word	0x8aa02c02
2306	.word	0x8ab02c02
2307	.word	0x8ac02c02
2308	.word	0x8ad02c02
2309	.word	0x8ae02c02
2310	.word	0x8af02c02
2311	.word	0x8b002c02
2312	.word	0x8b102c02
2313	.word	0x8b202c02
2314	.word	0x8b302c02
2315	.word	0x8b402c02
2316	.word	0x8b502c02
2317	.word	0x8b602c02
2318	.word	0x8b702c02
2319	.word	0x8b802c02
2320	.word	0x8b902c02
2321	.word	0x8ba02c02
2322	.word	0x8bb02c02
2323	.word	0x8bc02c02
2324	.word	0x8bd02c02
2325	.word	0x8be02c02
2326	.word	0x8bf02c02
2327	.word	0x8c002c02
2328	.word	0x8c102c02
2329	.word	0x8c202c02
2330	.word	0x8c302c02
2331	.word	0x8c402c02
2332	.word	0x8c502c02
2333	.word	0x8c602c02
2334	.word	0x8c702c02
2335	.word	0x8c802c02
2336	.word	0x8c902c02
2337	.word	0x8ca02c02
2338	.word	0x8cb02c02
2339	.word	0x8cc02c02
2340	.word	0x8cd02c02
2341	.word	0x8ce02c02
2342	.word	0x8cf02c02
2343	.word	0x8d002c02
2344	.word	0x8d102c02
2345	.word	0x8d202c02
2346	.word	0x8d302c02
2347	.word	0x8d402c02
2348	.word	0x8d502c02
2349	.word	0x8d602c02
2350	.word	0x8d702c02
2351	.word	0x8d802c02
2352	.word	0x8d902c02
2353	.word	0x8da02c02
2354	.word	0x8db02c02
2355	.word	0x8dc02c02
2356	.word	0x8dd02c02
2357	.word	0x8de02c02
2358	.word	0x8df02c02
2359	.word	0x8e002c02
2360	.word	0x8e102c02
2361	.word	0x8e202c02
2362	.word	0x8e302c02
2363	.word	0x8e402c02
2364	.word	0x8e502c02
2365	.word	0x8e602c02
2366	.word	0x8e702c02
2367	.word	0x8e802c02
2368	.word	0x8e902c02
2369	.word	0x8ea02c02
2370	.word	0x8eb02c02
2371	.word	0x8ec02c02
2372	.word	0x8ed02c02
2373	.word	0x8ee02c02
2374	.word	0x8ef02c02
2375	.word	0x8f002c02
2376	.word	0x8f102c02
2377	.word	0x8f202c02
2378	.word	0x8f302c02
2379	.word	0x8f402c02
2380	.word	0x8f502c02
2381	.word	0x8f602c02
2382	.word	0x8f702c02
2383	.word	0x8f802c02
2384	.word	0x8f902c02
2385	.word	0x8fa02c02
2386	.word	0x8fb02c02
2387	.word	0x8fc02c02
2388	.word	0x8fd02c02
2389	.word	0x8fe02c02
2390	.word	0x8ff02c02
2391	.word	0x90002c02
2392	.word	0x90102c02
2393	.word	0x90202c02
2394	.word	0x90302c02
2395	.word	0x90402c02
2396	.word	0x90502c02
2397	.word	0x90602c02
2398	.word	0x90702c02
2399	.word	0x90802c02
2400	.word	0x90902c02
2401	.word	0x90a02c02
2402	.word	0x90b02c02
2403	.word	0x90c02c02
2404	.word	0x90d02c02
2405	.word	0x90e02c02
2406	.word	0x90f02c02
2407	.word	0x91002c02
2408	.word	0x91102c02
2409	.word	0x91202c02
2410	.word	0x91302c02
2411	.word	0x91402c02
2412	.word	0x91502c02
2413	.word	0x91602c02
2414	.word	0x91702c02
2415	.word	0x91802c02
2416	.word	0x91902c02
2417	.word	0x91a02c02
2418	.word	0x91b02c02
2419	.word	0x91c02c02
2420	.word	0x91d02c02
2421	.word	0x91e02c02
2422	.word	0x91f02c02
2423	.word	0x92002c02
2424	.word	0x92102c02
2425	.word	0x92202c02
2426	.word	0x92302c02
2427	.word	0x92402c02
2428	.word	0x92502c02
2429	.word	0x92602c02
2430	.word	0x92702c02
2431	.word	0x92802c02
2432	.word	0x92902c02
2433	.word	0x92a02c02
2434	.word	0x92b02c02
2435	.word	0x92c02c02
2436	.word	0x92d02c02
2437	.word	0x92e02c02
2438	.word	0x92f02c02
2439	.word	0x93002c02
2440	.word	0x93102c02
2441	.word	0x93202c02
2442	.word	0x93302c02
2443	.word	0x93402c02
2444	.word	0x93502c02
2445	.word	0x93602c02
2446	.word	0x93702c02
2447	.word	0x93802c02
2448	.word	0x93902c02
2449	.word	0x93a02c02
2450	.word	0x93b02c02
2451	.word	0x93c02c02
2452	.word	0x93d02c02
2453	.word	0x93e02c02
2454	.word	0x93f02c02
2455	.word	0x94002c02
2456	.word	0x94102c02
2457	.word	0x94202c02
2458	.word	0x94302c02
2459	.word	0x94402c02
2460	.word	0x94502c02
2461	.word	0x94602c02
2462	.word	0x94702c02
2463	.word	0x94802c02
2464	.word	0x94902c02
2465	.word	0x94a02c02
2466	.word	0x94b02c02
2467	.word	0x94c02c02
2468	.word	0x94d02c02
2469	.word	0x94e02c02
2470	.word	0x94f02c02
2471	.word	0x95002c02
2472	.word	0x95102c02
2473	.word	0x95202c02
2474	.word	0x95302c02
2475	.word	0x95402c02
2476	.word	0x95502c02
2477	.word	0x95602c02
2478	.word	0x95702c02
2479	.word	0x95802c02
2480	.word	0x95902c02
2481	.word	0x95a02c02
2482	.word	0x95b02c02
2483	.word	0x95c02c02
2484	.word	0x95d02c02
2485	.word	0x95e02c02
2486	.word	0x95f02c02
2487	.word	0x96002c02
2488	.word	0x96102c02
2489	.word	0x96202c02
2490	.word	0x96302c02
2491	.word	0x96402c02
2492	.word	0x96502c02
2493	.word	0x96602c02
2494	.word	0x96702c02
2495	.word	0x96802c02
2496	.word	0x96902c02
2497	.word	0x96a02c02
2498	.word	0x96b02c02
2499	.word	0x96c02c02
2500	.word	0x96d02c02
2501	.word	0x96e02c02
2502	.word	0x96f02c02
2503	.word	0x97002c02
2504	.word	0x97102c02
2505	.word	0x97202c02
2506	.word	0x97302c02
2507	.word	0x97402c02
2508	.word	0x97502c02
2509	.word	0x97602c02
2510	.word	0x97702c02
2511	.word	0x97802c02
2512	.word	0x97902c02
2513	.word	0x97a02c02
2514	.word	0x97b02c02
2515	.word	0x97c02c02
2516	.word	0x97d02c02
2517	.word	0x97e02c02
2518	.word	0x97f02c02
2519	.word	0x98002c02
2520	.word	0x98102c02
2521	.word	0x98202c02
2522	.word	0x98302c02
2523	.word	0x98402c02
2524	.word	0x98502c02
2525	.word	0x98602c02
2526	.word	0x98702c02
2527	.word	0x98802c02
2528	.word	0x98902c02
2529	.word	0x98a02c02
2530	.word	0x98b02c02
2531	.word	0x98c02c02
2532	.word	0x98d02c02
2533	.word	0x98e02c02
2534	.word	0x98f02c02
2535	.word	0x99002c02
2536	.word	0x99102c02
2537	.word	0x99202c02
2538	.word	0x99302c02
2539	.word	0x99402c02
2540	.word	0x99502c02
2541	.word	0x99602c02
2542	.word	0x99702c02
2543	.word	0x99802c02
2544	.word	0x99902c02
2545	.word	0x99a02c02
2546	.word	0x99b02c02
2547	.word	0x99c02c02
2548	.word	0x99d02c02
2549	.word	0x99e02c02
2550	.word	0x99f02c02
2551	.word	0x9a002c02
2552	.word	0x9a102c02
2553	.word	0x9a202c02
2554	.word	0x9a302c02
2555	.word	0x9a402c02
2556	.word	0x9a502c02
2557	.word	0x9a602c02
2558	.word	0x9a702c02
2559	.word	0x9a802c02
2560	.word	0x9a902c02
2561	.word	0x9aa02c02
2562	.word	0x9ab02c02
2563	.word	0x9ac02c02
2564	.word	0x9ad02c02
2565	.word	0x9ae02c02
2566	.word	0x9af02c02
2567	.word	0x9b002c02
2568	.word	0x9b102c02
2569	.word	0x9b202c02
2570	.word	0x9b302c02
2571	.word	0x9b402c02
2572	.word	0x9b502c02
2573	.word	0x9b602c02
2574	.word	0x9b702c02
2575	.word	0x9b802c02
2576	.word	0x9b902c02
2577	.word	0x9ba02c02
2578	.word	0x9bb02c02
2579	.word	0x9bc02c02
2580	.word	0x9bd02c02
2581	.word	0x9be02c02
2582	.word	0x9bf02c02
2583	.word	0x9c002c02
2584	.word	0x9c102c02
2585	.word	0x9c202c02
2586	.word	0x9c302c02
2587	.word	0x9c402c02
2588	.word	0x9c502c02
2589	.word	0x9c602c02
2590	.word	0x9c702c02
2591	.word	0x9c802c02
2592	.word	0x9c902c02
2593	.word	0x9ca02c02
2594	.word	0x9cb02c02
2595	.word	0x9cc02c02
2596	.word	0x9cd02c02
2597	.word	0x9ce02c02
2598	.word	0x9cf02c02
2599	.word	0x9d002c02
2600	.word	0x9d102c02
2601	.word	0x9d202c02
2602	.word	0x9d302c02
2603	.word	0x9d402c02
2604	.word	0x9d502c02
2605	.word	0x9d602c02
2606	.word	0x9d702c02
2607	.word	0x9d802c02
2608	.word	0x9d902c02
2609	.word	0x9da02c02
2610	.word	0x9db02c02
2611	.word	0x9dc02c02
2612	.word	0x9dd02c02
2613	.word	0x9de02c02
2614	.word	0x9df02c02
2615	.word	0x9e002c02
2616	.word	0x9e102c02
2617	.word	0x9e202c02
2618	.word	0x9e302c02
2619	.word	0x9e402c02
2620	.word	0x9e502c02
2621	.word	0x9e602c02
2622	.word	0x9e702c02
2623	.word	0x9e802c02
2624	.word	0x9e902c02
2625	.word	0x9ea02c02
2626	.word	0x9eb02c02
2627	.word	0x9ec02c02
2628	.word	0x9ed02c02
2629	.word	0x9ee02c02
2630	.word	0x9ef02c02
2631	.word	0x9f002c02
2632	.word	0x9f102c02
2633	.word	0x9f202c02
2634	.word	0x9f302c02
2635	.word	0x9f402c02
2636	.word	0x9f502c02
2637	.word	0x9f602c02
2638	.word	0x9f702c02
2639	.word	0x9f802c02
2640	.word	0x9f902c02
2641	.word	0x9fa02c02
2642	.word	0x9fb02c02
2643	.word	0x9fc02c02
2644	.word	0x9fd02c02
2645	.word	0x9fe02c02
2646	.word	0x9ff02c02
2647	.word	0xa0002c02
2648	.word	0xa0102c02
2649	.word	0xa0202c02
2650	.word	0xa0302c02
2651	.word	0xa0402c02
2652	.word	0xa0502c02
2653	.word	0xa0602c02
2654	.word	0xa0702c02
2655	.word	0xa0802c02
2656	.word	0xa0902c02
2657	.word	0xa0a02c02
2658	.word	0xa0b02c02
2659	.word	0xa0c02c02
2660	.word	0xa0d02c02
2661	.word	0xa0e02c02
2662	.word	0xa0f02c02
2663	.word	0xa1002c02
2664	.word	0xa1102c02
2665	.word	0xa1202c02
2666	.word	0xa1302c02
2667	.word	0xa1402c02
2668	.word	0xa1502c02
2669	.word	0xa1602c02
2670	.word	0xa1702c02
2671	.word	0xa1802c02
2672	.word	0xa1902c02
2673	.word	0xa1a02c02
2674	.word	0xa1b02c02
2675	.word	0xa1c02c02
2676	.word	0xa1d02c02
2677	.word	0xa1e02c02
2678	.word	0xa1f02c02
2679	.word	0xa2002c02
2680	.word	0xa2102c02
2681	.word	0xa2202c02
2682	.word	0xa2302c02
2683	.word	0xa2402c02
2684	.word	0xa2502c02
2685	.word	0xa2602c02
2686	.word	0xa2702c02
2687	.word	0xa2802c02
2688	.word	0xa2902c02
2689	.word	0xa2a02c02
2690	.word	0xa2b02c02
2691	.word	0xa2c02c02
2692	.word	0xa2d02c02
2693	.word	0xa2e02c02
2694	.word	0xa2f02c02
2695	.word	0xa3002c02
2696	.word	0xa3102c02
2697	.word	0xa3202c02
2698	.word	0xa3302c02
2699	.word	0xa3402c02
2700	.word	0xa3502c02
2701	.word	0xa3602c02
2702	.word	0xa3702c02
2703	.word	0xa3802c02
2704	.word	0xa3902c02
2705	.word	0xa3a02c02
2706	.word	0xa3b02c02
2707	.word	0xa3c02c02
2708	.word	0xa3d02c02
2709	.word	0xa3e02c02
2710	.word	0xa3f02c02
2711	.word	0xa4002c02
2712	.word	0xa4102c02
2713	.word	0xa4202c02
2714	.word	0xa4302c02
2715	.word	0xa4402c02
2716	.word	0xa4502c02
2717	.word	0xa4602c02
2718	.word	0xa4702c02
2719	.word	0xa4802c02
2720	.word	0xa4902c02
2721	.word	0xa4a02c02
2722	.word	0xa4b02c02
2723	.word	0xa4c02c02
2724	.word	0xa4d02c02
2725	.word	0xa4e02c02
2726	.word	0xa4f02c02
2727	.word	0xa5002c02
2728	.word	0xa5102c02
2729	.word	0xa5202c02
2730	.word	0xa5302c02
2731	.word	0xa5402c02
2732	.word	0xa5502c02
2733	.word	0xa5602c02
2734	.word	0xa5702c02
2735	.word	0xa5802c02
2736	.word	0xa5902c02
2737	.word	0xa5a02c02
2738	.word	0xa5b02c02
2739	.word	0xa5c02c02
2740	.word	0xa5d02c02
2741	.word	0xa5e02c02
2742	.word	0xa5f02c02
2743	.word	0xa6002c02
2744	.word	0xa6102c02
2745	.word	0xa6202c02
2746	.word	0xa6302c02
2747	.word	0xa6402c02
2748	.word	0xa6502c02
2749	.word	0xa6602c02
2750	.word	0xa6702c02
2751	.word	0xa6802c02
2752	.word	0xa6902c02
2753	.word	0xa6a02c02
2754	.word	0xa6b02c02
2755	.word	0xa6c02c02
2756	.word	0xa6d02c02
2757	.word	0xa6e02c02
2758	.word	0xa6f02c02
2759	.word	0xa7002c02
2760	.word	0xa7102c02
2761	.word	0xa7202c02
2762	.word	0xa7302c02
2763	.word	0xa7402c02
2764	.word	0xa7502c02
2765	.word	0xa7602c02
2766	.word	0xa7702c02
2767	.word	0xa7802c02
2768	.word	0xa7902c02
2769	.word	0xa7a02c02
2770	.word	0xa7b02c02
2771	.word	0xa7c02c02
2772	.word	0xa7d02c02
2773	.word	0xa7e02c02
2774	.word	0xa7f02c02
2775	.word	0xa8002c02
2776	.word	0xa8102c02
2777	.word	0xa8202c02
2778	.word	0xa8302c02
2779	.word	0xa8402c02
2780	.word	0xa8502c02
2781	.word	0xa8602c02
2782	.word	0xa8702c02
2783	.word	0xa8802c02
2784	.word	0xa8902c02
2785	.word	0xa8a02c02
2786	.word	0xa8b02c02
2787	.word	0xa8c02c02
2788	.word	0xa8d02c02
2789	.word	0xa8e02c02
2790	.word	0xa8f02c02
2791	.word	0xa9002c02
2792	.word	0xa9102c02
2793	.word	0xa9202c02
2794	.word	0xa9302c02
2795	.word	0xa9402c02
2796	.word	0xa9502c02
2797	.word	0xa9602c02
2798	.word	0xa9702c02
2799	.word	0xa9802c02
2800	.word	0xa9902c02
2801	.word	0xa9a02c02
2802	.word	0xa9b02c02
2803	.word	0xa9c02c02
2804	.word	0xa9d02c02
2805	.word	0xa9e02c02
2806	.word	0xa9f02c02
2807	.word	0xaa002c02
2808	.word	0xaa102c02
2809	.word	0xaa202c02
2810	.word	0xaa302c02
2811	.word	0xaa402c02
2812	.word	0xaa502c02
2813	.word	0xaa602c02
2814	.word	0xaa702c02
2815	.word	0xaa802c02
2816	.word	0xaa902c02
2817	.word	0xaaa02c02
2818	.word	0xaab02c02
2819	.word	0xaac02c02
2820	.word	0xaad02c02
2821	.word	0xaae02c02
2822	.word	0xaaf02c02
2823	.word	0xab002c02
2824	.word	0xab102c02
2825	.word	0xab202c02
2826	.word	0xab302c02
2827	.word	0xab402c02
2828	.word	0xab502c02
2829	.word	0xab602c02
2830	.word	0xab702c02
2831	.word	0xab802c02
2832	.word	0xab902c02
2833	.word	0xaba02c02
2834	.word	0xabb02c02
2835	.word	0xabc02c02
2836	.word	0xabd02c02
2837	.word	0xabe02c02
2838	.word	0xabf02c02
2839	.word	0xac002c02
2840	.word	0xac102c02
2841	.word	0xac202c02
2842	.word	0xac302c02
2843	.word	0xac402c02
2844	.word	0xac502c02
2845	.word	0xac602c02
2846	.word	0xac702c02
2847	.word	0xac802c02
2848	.word	0xac902c02
2849	.word	0xaca02c02
2850	.word	0xacb02c02
2851	.word	0xacc02c02
2852	.word	0xacd02c02
2853	.word	0xace02c02
2854	.word	0xacf02c02
2855	.word	0xad002c02
2856	.word	0xad102c02
2857	.word	0xad202c02
2858	.word	0xad302c02
2859	.word	0xad402c02
2860	.word	0xad502c02
2861	.word	0xad602c02
2862	.word	0xad702c02
2863	.word	0xad802c02
2864	.word	0xad902c02
2865	.word	0xada02c02
2866	.word	0xadb02c02
2867	.word	0xadc02c02
2868	.word	0xadd02c02
2869	.word	0xade02c02
2870	.word	0xadf02c02
2871	.word	0xae002c02
2872	.word	0xae102c02
2873	.word	0xae202c02
2874	.word	0xae302c02
2875	.word	0xae402c02
2876	.word	0xae502c02
2877	.word	0xae602c02
2878	.word	0xae702c02
2879	.word	0xae802c02
2880	.word	0xae902c02
2881	.word	0xaea02c02
2882	.word	0xaeb02c02
2883	.word	0xaec02c02
2884	.word	0xaed02c02
2885	.word	0xaee02c02
2886	.word	0xaef02c02
2887	.word	0xaf002c02
2888	.word	0xaf102c02
2889	.word	0xaf202c02
2890	.word	0xaf302c02
2891	.word	0xaf402c02
2892	.word	0xaf502c02
2893	.word	0xaf602c02
2894	.word	0xaf702c02
2895	.word	0xaf802c02
2896	.word	0xaf902c02
2897	.word	0xafa02c02
2898	.word	0xafb02c02
2899	.word	0xafc02c02
2900	.word	0xafd02c02
2901	.word	0xafe02c02
2902	.word	0xaff02c02
2903	.word	0xb0002c02
2904	.word	0xb0102c02
2905	.word	0xb0202c02
2906	.word	0xb0302c02
2907	.word	0xb0402c02
2908	.word	0xb0502c02
2909	.word	0xb0602c02
2910	.word	0xb0702c02
2911	.word	0xb0802c02
2912	.word	0xb0902c02
2913	.word	0xb0a02c02
2914	.word	0xb0b02c02
2915	.word	0xb0c02c02
2916	.word	0xb0d02c02
2917	.word	0xb0e02c02
2918	.word	0xb0f02c02
2919	.word	0xb1002c02
2920	.word	0xb1102c02
2921	.word	0xb1202c02
2922	.word	0xb1302c02
2923	.word	0xb1402c02
2924	.word	0xb1502c02
2925	.word	0xb1602c02
2926	.word	0xb1702c02
2927	.word	0xb1802c02
2928	.word	0xb1902c02
2929	.word	0xb1a02c02
2930	.word	0xb1b02c02
2931	.word	0xb1c02c02
2932	.word	0xb1d02c02
2933	.word	0xb1e02c02
2934	.word	0xb1f02c02
2935	.word	0xb2002c02
2936	.word	0xb2102c02
2937	.word	0xb2202c02
2938	.word	0xb2302c02
2939	.word	0xb2402c02
2940	.word	0xb2502c02
2941	.word	0xb2602c02
2942	.word	0xb2702c02
2943	.word	0xb2802c02
2944	.word	0xb2902c02
2945	.word	0xb2a02c02
2946	.word	0xb2b02c02
2947	.word	0xb2c02c02
2948	.word	0xb2d02c02
2949	.word	0xb2e02c02
2950	.word	0xb2f02c02
2951	.word	0xb3002c02
2952	.word	0xb3102c02
2953	.word	0xb3202c02
2954	.word	0xb3302c02
2955	.word	0xb3402c02
2956	.word	0xb3502c02
2957	.word	0xb3602c02
2958	.word	0xb3702c02
2959	.word	0xb3802c02
2960	.word	0xb3902c02
2961	.word	0xb3a02c02
2962	.word	0xb3b02c02
2963	.word	0xb3c02c02
2964	.word	0xb3d02c02
2965	.word	0xb3e02c02
2966	.word	0xb3f02c02
2967	.word	0xb4002c02
2968	.word	0xb4102c02
2969	.word	0xb4202c02
2970	.word	0xb4302c02
2971	.word	0xb4402c02
2972	.word	0xb4502c02
2973	.word	0xb4602c02
2974	.word	0xb4702c02
2975	.word	0xb4802c02
2976	.word	0xb4902c02
2977	.word	0xb4a02c02
2978	.word	0xb4b02c02
2979	.word	0xb4c02c02
2980	.word	0xb4d02c02
2981	.word	0xb4e02c02
2982	.word	0xb4f02c02
2983	.word	0xb5002c02
2984	.word	0xb5102c02
2985	.word	0xb5202c02
2986	.word	0xb5302c02
2987	.word	0xb5402c02
2988	.word	0xb5502c02
2989	.word	0xb5602c02
2990	.word	0xb5702c02
2991	.word	0xb5802c02
2992	.word	0xb5902c02
2993	.word	0xb5a02c02
2994	.word	0xb5b02c02
2995	.word	0xb5c02c02
2996	.word	0xb5d02c02
2997	.word	0xb5e02c02
2998	.word	0xb5f02c02
2999	.word	0xb6002c02
3000	.word	0xb6102c02
3001	.word	0xb6202c02
3002	.word	0xb6302c02
3003	.word	0xb6402c02
3004	.word	0xb6502c02
3005	.word	0xb6602c02
3006	.word	0xb6702c02
3007	.word	0xb6802c02
3008	.word	0xb6902c02
3009	.word	0xb6a02c02
3010	.word	0xb6b02c02
3011	.word	0xb6c02c02
3012	.word	0xb6d02c02
3013	.word	0xb6e02c02
3014	.word	0xb6f02c02
3015	.word	0xb7002c02
3016	.word	0xb7102c02
3017	.word	0xb7202c02
3018	.word	0xb7302c02
3019	.word	0xb7402c02
3020	.word	0xb7502c02
3021	.word	0xb7602c02
3022	.word	0xb7702c02
3023	.word	0xb7802c02
3024	.word	0xb7902c02
3025	.word	0xb7a02c02
3026	.word	0xb7b02c02
3027	.word	0xb7c02c02
3028	.word	0xb7d02c02
3029	.word	0xb7e02c02
3030	.word	0xb7f02c02
3031	.word	0xb8002c02
3032	.word	0xb8102c02
3033	.word	0xb8202c02
3034	.word	0xb8302c02
3035	.word	0xb8402c02
3036	.word	0xb8502c02
3037	.word	0xb8602c02
3038	.word	0xb8702c02
3039	.word	0xb8802c02
3040	.word	0xb8902c02
3041	.word	0xb8a02c02
3042	.word	0xb8b02c02
3043	.word	0xb8c02c02
3044	.word	0xb8d02c02
3045	.word	0xb8e02c02
3046	.word	0xb8f02c02
3047	.word	0xb9002c02
3048	.word	0xb9102c02
3049	.word	0xb9202c02
3050	.word	0xb9302c02
3051	.word	0xb9402c02
3052	.word	0xb9502c02
3053	.word	0xb9602c02
3054	.word	0xb9702c02
3055	.word	0xb9802c02
3056	.word	0xb9902c02
3057	.word	0xb9a02c02
3058	.word	0xb9b02c02
3059	.word	0xb9c02c02
3060	.word	0xb9d02c02
3061	.word	0xb9e02c02
3062	.word	0xb9f02c02
3063	.word	0xba002c02
3064	.word	0xba102c02
3065	.word	0xba202c02
3066	.word	0xba302c02
3067	.word	0xba402c02
3068	.word	0xba502c02
3069	.word	0xba602c02
3070	.word	0xba702c02
3071	.word	0xba802c02
3072	.word	0xba902c02
3073	.word	0xbaa02c02
3074	.word	0xbab02c02
3075	.word	0xbac02c02
3076	.word	0xbad02c02
3077	.word	0xbae02c02
3078	.word	0xbaf02c02
3079	.word	0xbb002c02
3080	.word	0xbb102c02
3081	.word	0xbb202c02
3082	.word	0xbb302c02
3083	.word	0xbb402c02
3084	.word	0xbb502c02
3085	.word	0xbb602c02
3086	.word	0xbb702c02
3087	.word	0xbb802c02
3088	.word	0xbb902c02
3089	.word	0xbba02c02
3090	.word	0xbbb02c02
3091	.word	0xbbc02c02
3092	.word	0xbbd02c02
3093	.word	0xbbe02c02
3094	.word	0xbbf02c02
3095	.word	0xbc002c02
3096	.word	0xbc102c02
3097	.word	0xbc202c02
3098	.word	0xbc302c02
3099	.word	0xbc402c02
3100	.word	0xbc502c02
3101	.word	0xbc602c02
3102	.word	0xbc702c02
3103	.word	0xbc802c02
3104	.word	0xbc902c02
3105	.word	0xbca02c02
3106	.word	0xbcb02c02
3107	.word	0xbcc02c02
3108	.word	0xbcd02c02
3109	.word	0xbce02c02
3110	.word	0xbcf02c02
3111	.word	0xbd002c02
3112	.word	0xbd102c02
3113	.word	0xbd202c02
3114	.word	0xbd302c02
3115	.word	0xbd402c02
3116	.word	0xbd502c02
3117	.word	0xbd602c02
3118	.word	0xbd702c02
3119	.word	0xbd802c02
3120	.word	0xbd902c02
3121	.word	0xbda02c02
3122	.word	0xbdb02c02
3123	.word	0xbdc02c02
3124	.word	0xbdd02c02
3125	.word	0xbde02c02
3126	.word	0xbdf02c02
3127	.word	0xbe002c02
3128	.word	0xbe102c02
3129	.word	0xbe202c02
3130	.word	0xbe302c02
3131	.word	0xbe402c02
3132	.word	0xbe502c02
3133	.word	0xbe602c02
3134	.word	0xbe702c02
3135	.word	0xbe802c02
3136	.word	0xbe902c02
3137	.word	0xbea02c02
3138	.word	0xbeb02c02
3139	.word	0xbec02c02
3140	.word	0xbed02c02
3141	.word	0xbee02c02
3142	.word	0xbef02c02
3143	.word	0xbf002c02
3144	.word	0xbf102c02
3145	.word	0xbf202c02
3146	.word	0xbf302c02
3147	.word	0xbf402c02
3148	.word	0xbf502c02
3149	.word	0xbf602c02
3150	.word	0xbf702c02
3151	.word	0xbf802c02
3152	.word	0xbf902c02
3153	.word	0xbfa02c02
3154	.word	0xbfb02c02
3155	.word	0xbfc02c02
3156	.word	0xbfd02c02
3157	.word	0xbfe02c02
3158	.word	0xbff02c02
3159	.word	0xc0015ca2
3160	.word	0xc0102c02
3161	.word	0xc0202c02
3162	.word	0xc0302c02
3163	.word	0xc0402c02
3164	.word	0xc0502c02
3165	.word	0xc0602c02
3166	.word	0xc0702c02
3167	.word	0xc0802c02
3168	.word	0xc0902c02
3169	.word	0xc0a02c02
3170	.word	0xc0b02c02
3171	.word	0xc0c02c02
3172	.word	0xc0d02c02
3173	.word	0xc0e02c02
3174	.word	0xc0f02c02
3175	.word	0xc1002c02
3176	.word	0xc1102c02
3177	.word	0xc1202c02
3178	.word	0xc1302c02
3179	.word	0xc1402c02
3180	.word	0xc1502c02
3181	.word	0xc1602c02
3182	.word	0xc1702c02
3183	.word	0xc1802c02
3184	.word	0xc1902c02
3185	.word	0xc1a02c02
3186	.word	0xc1b02c02
3187	.word	0xc1c02c02
3188	.word	0xc1d02c02
3189	.word	0xc1e02c02
3190	.word	0xc1f02c02
3191	.word	0xc2002c02
3192	.word	0xc2102c02
3193	.word	0xc2202c02
3194	.word	0xc2302c02
3195	.word	0xc2402c02
3196	.word	0xc2502c02
3197	.word	0xc2602c02
3198	.word	0xc2702c02
3199	.word	0xc2802c02
3200	.word	0xc2902c02
3201	.word	0xc2a02c02
3202	.word	0xc2b02c02
3203	.word	0xc2c02c02
3204	.word	0xc2d02c02
3205	.word	0xc2e02c02
3206	.word	0xc2f02c02
3207	.word	0xc3002c02
3208	.word	0xc3102c02
3209	.word	0xc3202c02
3210	.word	0xc3302c02
3211	.word	0xc3402c02
3212	.word	0xc3502c02
3213	.word	0xc3602c02
3214	.word	0xc3702c02
3215	.word	0xc3802c02
3216	.word	0xc3902c02
3217	.word	0xc3a02c02
3218	.word	0xc3b02c02
3219	.word	0xc3c02c02
3220	.word	0xc3d02c02
3221	.word	0xc3e02c02
3222	.word	0xc3f02c02
3223	.word	0xc4002c02
3224	.word	0xc4102c02
3225	.word	0xc4202c02
3226	.word	0xc4302c02
3227	.word	0xc4402c02
3228	.word	0xc4502c02
3229	.word	0xc4602c02
3230	.word	0xc4702c02
3231	.word	0xc4802c02
3232	.word	0xc4902c02
3233	.word	0xc4a02c02
3234	.word	0xc4b02c02
3235	.word	0xc4c02c02
3236	.word	0xc4d02c02
3237	.word	0xc4e02c02
3238	.word	0xc4f02c02
3239	.word	0xc5002c02
3240	.word	0xc5102c02
3241	.word	0xc5202c02
3242	.word	0xc5302c02
3243	.word	0xc5402c02
3244	.word	0xc5502c02
3245	.word	0xc5602c02
3246	.word	0xc5702c02
3247	.word	0xc5802c02
3248	.word	0xc5902c02
3249	.word	0xc5a02c02
3250	.word	0xc5b02c02
3251	.word	0xc5c02c02
3252	.word	0xc5d02c02
3253	.word	0xc5e02c02
3254	.word	0xc5f02c02
3255	.word	0xc6002c02
3256	.word	0xc6102c02
3257	.word	0xc6202c02
3258	.word	0xc6302c02
3259	.word	0xc6402c02
3260	.word	0xc6502c02
3261	.word	0xc6602c02
3262	.word	0xc6702c02
3263	.word	0xc6802c02
3264	.word	0xc6902c02
3265	.word	0xc6a02c02
3266	.word	0xc6b02c02
3267	.word	0xc6c02c02
3268	.word	0xc6d02c02
3269	.word	0xc6e02c02
3270	.word	0xc6f02c02
3271	.word	0xc7002c02
3272	.word	0xc7102c02
3273	.word	0xc7202c02
3274	.word	0xc7302c02
3275	.word	0xc7402c02
3276	.word	0xc7502c02
3277	.word	0xc7602c02
3278	.word	0xc7702c02
3279	.word	0xc7802c02
3280	.word	0xc7902c02
3281	.word	0xc7a02c02
3282	.word	0xc7b02c02
3283	.word	0xc7c02c02
3284	.word	0xc7d02c02
3285	.word	0xc7e02c02
3286	.word	0xc7f02c02
3287	.word	0xc8002c02
3288	.word	0xc8102c02
3289	.word	0xc8202c02
3290	.word	0xc8302c02
3291	.word	0xc8402c02
3292	.word	0xc8502c02
3293	.word	0xc8602c02
3294	.word	0xc8702c02
3295	.word	0xc8802c02
3296	.word	0xc8902c02
3297	.word	0xc8a02c02
3298	.word	0xc8b02c02
3299	.word	0xc8c02c02
3300	.word	0xc8d02c02
3301	.word	0xc8e02c02
3302	.word	0xc8f02c02
3303	.word	0xc9002c02
3304	.word	0xc9102c02
3305	.word	0xc9202c02
3306	.word	0xc9302c02
3307	.word	0xc9402c02
3308	.word	0xc9502c02
3309	.word	0xc9602c02
3310	.word	0xc9702c02
3311	.word	0xc9802c02
3312	.word	0xc9902c02
3313	.word	0xc9a02c02
3314	.word	0xc9b02c02
3315	.word	0xc9c02c02
3316	.word	0xc9d02c02
3317	.word	0xc9e02c02
3318	.word	0xc9f02c02
3319	.word	0xca002c02
3320	.word	0xca102c02
3321	.word	0xca202c02
3322	.word	0xca302c02
3323	.word	0xca402c02
3324	.word	0xca502c02
3325	.word	0xca602c02
3326	.word	0xca702c02
3327	.word	0xca802c02
3328	.word	0xca902c02
3329	.word	0xcaa02c02
3330	.word	0xcab02c02
3331	.word	0xcac02c02
3332	.word	0xcad02c02
3333	.word	0xcae02c02
3334	.word	0xcaf02c02
3335	.word	0xcb002c02
3336	.word	0xcb102c02
3337	.word	0xcb202c02
3338	.word	0xcb302c02
3339	.word	0xcb402c02
3340	.word	0xcb502c02
3341	.word	0xcb602c02
3342	.word	0xcb702c02
3343	.word	0xcb802c02
3344	.word	0xcb902c02
3345	.word	0xcba02c02
3346	.word	0xcbb02c02
3347	.word	0xcbc02c02
3348	.word	0xcbd02c02
3349	.word	0xcbe02c02
3350	.word	0xcbf02c02
3351	.word	0xcc002c02
3352	.word	0xcc102c02
3353	.word	0xcc202c02
3354	.word	0xcc302c02
3355	.word	0xcc402c02
3356	.word	0xcc502c02
3357	.word	0xcc602c02
3358	.word	0xcc702c02
3359	.word	0xcc802c02
3360	.word	0xcc902c02
3361	.word	0xcca02c02
3362	.word	0xccb02c02
3363	.word	0xccc02c02
3364	.word	0xccd02c02
3365	.word	0xcce02c02
3366	.word	0xccf02c02
3367	.word	0xcd002c02
3368	.word	0xcd102c02
3369	.word	0xcd202c02
3370	.word	0xcd302c02
3371	.word	0xcd402c02
3372	.word	0xcd502c02
3373	.word	0xcd602c02
3374	.word	0xcd702c02
3375	.word	0xcd802c02
3376	.word	0xcd902c02
3377	.word	0xcda02c02
3378	.word	0xcdb02c02
3379	.word	0xcdc02c02
3380	.word	0xcdd02c02
3381	.word	0xcde02c02
3382	.word	0xcdf02c02
3383	.word	0xce002c02
3384	.word	0xce102c02
3385	.word	0xce202c02
3386	.word	0xce302c02
3387	.word	0xce402c02
3388	.word	0xce502c02
3389	.word	0xce602c02
3390	.word	0xce702c02
3391	.word	0xce802c02
3392	.word	0xce902c02
3393	.word	0xcea02c02
3394	.word	0xceb02c02
3395	.word	0xcec02c02
3396	.word	0xced02c02
3397	.word	0xcee02c02
3398	.word	0xcef02c02
3399	.word	0xcf002c02
3400	.word	0xcf102c02
3401	.word	0xcf202c02
3402	.word	0xcf302c02
3403	.word	0xcf402c02
3404	.word	0xcf502c02
3405	.word	0xcf602c02
3406	.word	0xcf702c02
3407	.word	0xcf802c02
3408	.word	0xcf902c02
3409	.word	0xcfa02c02
3410	.word	0xcfb02c02
3411	.word	0xcfc02c02
3412	.word	0xcfd02c02
3413	.word	0xcfe02c02
3414	.word	0xcff02c02
3415	.word	0xd0002c02
3416	.word	0xd0102c02
3417	.word	0xd0202c02
3418	.word	0xd0302c02
3419	.word	0xd0402c02
3420	.word	0xd0502c02
3421	.word	0xd0602c02
3422	.word	0xd0702c02
3423	.word	0xd0802c02
3424	.word	0xd0902c02
3425	.word	0xd0a02c02
3426	.word	0xd0b02c02
3427	.word	0xd0c02c02
3428	.word	0xd0d02c02
3429	.word	0xd0e02c02
3430	.word	0xd0f02c02
3431	.word	0xd1002c02
3432	.word	0xd1102c02
3433	.word	0xd1202c02
3434	.word	0xd1302c02
3435	.word	0xd1402c02
3436	.word	0xd1502c02
3437	.word	0xd1602c02
3438	.word	0xd1702c02
3439	.word	0xd1802c02
3440	.word	0xd1902c02
3441	.word	0xd1a02c02
3442	.word	0xd1b02c02
3443	.word	0xd1c02c02
3444	.word	0xd1d02c02
3445	.word	0xd1e02c02
3446	.word	0xd1f02c02
3447	.word	0xd2002c02
3448	.word	0xd2102c02
3449	.word	0xd2202c02
3450	.word	0xd2302c02
3451	.word	0xd2402c02
3452	.word	0xd2502c02
3453	.word	0xd2602c02
3454	.word	0xd2702c02
3455	.word	0xd2802c02
3456	.word	0xd2902c02
3457	.word	0xd2a02c02
3458	.word	0xd2b02c02
3459	.word	0xd2c02c02
3460	.word	0xd2d02c02
3461	.word	0xd2e02c02
3462	.word	0xd2f02c02
3463	.word	0xd3002c02
3464	.word	0xd3102c02
3465	.word	0xd3202c02
3466	.word	0xd3302c02
3467	.word	0xd3402c02
3468	.word	0xd3502c02
3469	.word	0xd3602c02
3470	.word	0xd3702c02
3471	.word	0xd3802c02
3472	.word	0xd3902c02
3473	.word	0xd3a02c02
3474	.word	0xd3b02c02
3475	.word	0xd3c02c02
3476	.word	0xd3d02c02
3477	.word	0xd3e02c02
3478	.word	0xd3f02c02
3479	.word	0xd4002c02
3480	.word	0xd4102c02
3481	.word	0xd4202c02
3482	.word	0xd4302c02
3483	.word	0xd4402c02
3484	.word	0xd4502c02
3485	.word	0xd4602c02
3486	.word	0xd4702c02
3487	.word	0xd4802c02
3488	.word	0xd4902c02
3489	.word	0xd4a02c02
3490	.word	0xd4b02c02
3491	.word	0xd4c02c02
3492	.word	0xd4d02c02
3493	.word	0xd4e02c02
3494	.word	0xd4f02c02
3495	.word	0xd5002c02
3496	.word	0xd5102c02
3497	.word	0xd5202c02
3498	.word	0xd5302c02
3499	.word	0xd5402c02
3500	.word	0xd5502c02
3501	.word	0xd5602c02
3502	.word	0xd5702c02
3503	.word	0xd5802c02
3504	.word	0xd5902c02
3505	.word	0xd5a02c02
3506	.word	0xd5b02c02
3507	.word	0xd5c02c02
3508	.word	0xd5d02c02
3509	.word	0xd5e02c02
3510	.word	0xd5f02c02
3511	.word	0xd6002c02
3512	.word	0xd6102c02
3513	.word	0xd6202c02
3514	.word	0xd6302c02
3515	.word	0xd6402c02
3516	.word	0xd6502c02
3517	.word	0xd6602c02
3518	.word	0xd6702c02
3519	.word	0xd6802c02
3520	.word	0xd6902c02
3521	.word	0xd6a02c02
3522	.word	0xd6b02c02
3523	.word	0xd6c02c02
3524	.word	0xd6d02c02
3525	.word	0xd6e02c02
3526	.word	0xd6f02c02
3527	.word	0xd7002c02
3528	.word	0xd7102c02
3529	.word	0xd7202c02
3530	.word	0xd7302c02
3531	.word	0xd7402c02
3532	.word	0xd7502c02
3533	.word	0xd7602c02
3534	.word	0xd7702c02
3535	.word	0xd7802c02
3536	.word	0xd7902c02
3537	.word	0xd7a02c02
3538	.word	0xd7b02c02
3539	.word	0xd7c02c02
3540	.word	0xd7d02c02
3541	.word	0xd7e02c02
3542	.word	0xd7f02c02
3543	.word	0xd8002c02
3544	.word	0xd8102c02
3545	.word	0xd8202c02
3546	.word	0xd8302c02
3547	.word	0xd8402c02
3548	.word	0xd8502c02
3549	.word	0xd8602c02
3550	.word	0xd8702c02
3551	.word	0xd8802c02
3552	.word	0xd8902c02
3553	.word	0xd8a02c02
3554	.word	0xd8b02c02
3555	.word	0xd8c02c02
3556	.word	0xd8d02c02
3557	.word	0xd8e02c02
3558	.word	0xd8f02c02
3559	.word	0xd9002c02
3560	.word	0xd9102c02
3561	.word	0xd9202c02
3562	.word	0xd9302c02
3563	.word	0xd9402c02
3564	.word	0xd9502c02
3565	.word	0xd9602c02
3566	.word	0xd9702c02
3567	.word	0xd9802c02
3568	.word	0xd9902c02
3569	.word	0xd9a02c02
3570	.word	0xd9b02c02
3571	.word	0xd9c02c02
3572	.word	0xd9d02c02
3573	.word	0xd9e02c02
3574	.word	0xd9f02c02
3575	.word	0xda002c02
3576	.word	0xda102c02
3577	.word	0xda202c02
3578	.word	0xda302c02
3579	.word	0xda402c02
3580	.word	0xda502c02
3581	.word	0xda602c02
3582	.word	0xda702c02
3583	.word	0xda802c02
3584	.word	0xda902c02
3585	.word	0xdaa02c02
3586	.word	0xdab02c02
3587	.word	0xdac02c02
3588	.word	0xdad02c02
3589	.word	0xdae02c02
3590	.word	0xdaf02c02
3591	.word	0xdb002c02
3592	.word	0xdb102c02
3593	.word	0xdb202c02
3594	.word	0xdb302c02
3595	.word	0xdb402c02
3596	.word	0xdb502c02
3597	.word	0xdb602c02
3598	.word	0xdb702c02
3599	.word	0xdb802c02
3600	.word	0xdb902c02
3601	.word	0xdba02c02
3602	.word	0xdbb02c02
3603	.word	0xdbc02c02
3604	.word	0xdbd02c02
3605	.word	0xdbe02c02
3606	.word	0xdbf02c02
3607	.word	0xdc002c02
3608	.word	0xdc102c02
3609	.word	0xdc202c02
3610	.word	0xdc302c02
3611	.word	0xdc402c02
3612	.word	0xdc502c02
3613	.word	0xdc602c02
3614	.word	0xdc702c02
3615	.word	0xdc802c02
3616	.word	0xdc902c02
3617	.word	0xdca02c02
3618	.word	0xdcb02c02
3619	.word	0xdcc02c02
3620	.word	0xdcd02c02
3621	.word	0xdce02c02
3622	.word	0xdcf02c02
3623	.word	0xdd002c02
3624	.word	0xdd102c02
3625	.word	0xdd202c02
3626	.word	0xdd302c02
3627	.word	0xdd402c02
3628	.word	0xdd502c02
3629	.word	0xdd602c02
3630	.word	0xdd702c02
3631	.word	0xdd802c02
3632	.word	0xdd902c02
3633	.word	0xdda02c02
3634	.word	0xddb02c02
3635	.word	0xddc02c02
3636	.word	0xddd02c02
3637	.word	0xdde02c02
3638	.word	0xddf02c02
3639	.word	0xde002c02
3640	.word	0xde102c02
3641	.word	0xde202c02
3642	.word	0xde302c02
3643	.word	0xde402c02
3644	.word	0xde502c02
3645	.word	0xde602c02
3646	.word	0xde702c02
3647	.word	0xde802c02
3648	.word	0xde902c02
3649	.word	0xdea02c02
3650	.word	0xdeb02c02
3651	.word	0xdec02c02
3652	.word	0xded02c02
3653	.word	0xdee02c02
3654	.word	0xdef02c02
3655	.word	0xdf002c02
3656	.word	0xdf102c02
3657	.word	0xdf202c02
3658	.word	0xdf302c02
3659	.word	0xdf402c02
3660	.word	0xdf502c02
3661	.word	0xdf602c02
3662	.word	0xdf702c02
3663	.word	0xdf802c02
3664	.word	0xdf902c02
3665	.word	0xdfa02c02
3666	.word	0xdfb02c02
3667	.word	0xdfc02c02
3668	.word	0xdfd02c02
3669	.word	0xdfe02c02
3670	.word	0xdff02c02
3671	.word	0xe0002c02
3672	.word	0xe0102c02
3673	.word	0xe0202c02
3674	.word	0xe0302c02
3675	.word	0xe0402c02
3676	.word	0xe0502c02
3677	.word	0xe0602c02
3678	.word	0xe0702c02
3679	.word	0xe0802c02
3680	.word	0xe0902c02
3681	.word	0xe0a02c02
3682	.word	0xe0b02c02
3683	.word	0xe0c02c02
3684	.word	0xe0d02c02
3685	.word	0xe0e02c02
3686	.word	0xe0f02c02
3687	.word	0xe1002c02
3688	.word	0xe1102c02
3689	.word	0xe1202c02
3690	.word	0xe1302c02
3691	.word	0xe1402c02
3692	.word	0xe1502c02
3693	.word	0xe1602c02
3694	.word	0xe1702c02
3695	.word	0xe1802c02
3696	.word	0xe1902c02
3697	.word	0xe1a02c02
3698	.word	0xe1b02c02
3699	.word	0xe1c02c02
3700	.word	0xe1d02c02
3701	.word	0xe1e02c02
3702	.word	0xe1f02c02
3703	.word	0xe2002c02
3704	.word	0xe2102c02
3705	.word	0xe2202c02
3706	.word	0xe2302c02
3707	.word	0xe2402c02
3708	.word	0xe2502c02
3709	.word	0xe2602c02
3710	.word	0xe2702c02
3711	.word	0xe2802c02
3712	.word	0xe2902c02
3713	.word	0xe2a02c02
3714	.word	0xe2b02c02
3715	.word	0xe2c02c02
3716	.word	0xe2d02c02
3717	.word	0xe2e02c02
3718	.word	0xe2f02c02
3719	.word	0xe3002c02
3720	.word	0xe3102c02
3721	.word	0xe3202c02
3722	.word	0xe3302c02
3723	.word	0xe3402c02
3724	.word	0xe3502c02
3725	.word	0xe3602c02
3726	.word	0xe3702c02
3727	.word	0xe3802c02
3728	.word	0xe3902c02
3729	.word	0xe3a02c02
3730	.word	0xe3b02c02
3731	.word	0xe3c02c02
3732	.word	0xe3d02c02
3733	.word	0xe3e02c02
3734	.word	0xe3f02c02
3735	.word	0xe4002c02
3736	.word	0xe4102c02
3737	.word	0xe4202c02
3738	.word	0xe4302c02
3739	.word	0xe4402c02
3740	.word	0xe4502c02
3741	.word	0xe4602c02
3742	.word	0xe4702c02
3743	.word	0xe4802c02
3744	.word	0xe4902c02
3745	.word	0xe4a02c02
3746	.word	0xe4b02c02
3747	.word	0xe4c02c02
3748	.word	0xe4d02c02
3749	.word	0xe4e02c02
3750	.word	0xe4f02c02
3751	.word	0xe5002c02
3752	.word	0xe5102c02
3753	.word	0xe5202c02
3754	.word	0xe5302c02
3755	.word	0xe5402c02
3756	.word	0xe5502c02
3757	.word	0xe5602c02
3758	.word	0xe5702c02
3759	.word	0xe5802c02
3760	.word	0xe5902c02
3761	.word	0xe5a02c02
3762	.word	0xe5b02c02
3763	.word	0xe5c02c02
3764	.word	0xe5d02c02
3765	.word	0xe5e02c02
3766	.word	0xe5f02c02
3767	.word	0xe6002c02
3768	.word	0xe6102c02
3769	.word	0xe6202c02
3770	.word	0xe6302c02
3771	.word	0xe6402c02
3772	.word	0xe6502c02
3773	.word	0xe6602c02
3774	.word	0xe6702c02
3775	.word	0xe6802c02
3776	.word	0xe6902c02
3777	.word	0xe6a02c02
3778	.word	0xe6b02c02
3779	.word	0xe6c02c02
3780	.word	0xe6d02c02
3781	.word	0xe6e02c02
3782	.word	0xe6f02c02
3783	.word	0xe7002c02
3784	.word	0xe7102c02
3785	.word	0xe7202c02
3786	.word	0xe7302c02
3787	.word	0xe7402c02
3788	.word	0xe7502c02
3789	.word	0xe7602c02
3790	.word	0xe7702c02
3791	.word	0xe7802c02
3792	.word	0xe7902c02
3793	.word	0xe7a02c02
3794	.word	0xe7b02c02
3795	.word	0xe7c02c02
3796	.word	0xe7d02c02
3797	.word	0xe7e02c02
3798	.word	0xe7f02c02
3799	.word	0xe8002c02
3800	.word	0xe8102c02
3801	.word	0xe8202c02
3802	.word	0xe8302c02
3803	.word	0xe8402c02
3804	.word	0xe8502c02
3805	.word	0xe8602c02
3806	.word	0xe8702c02
3807	.word	0xe8802c02
3808	.word	0xe8902c02
3809	.word	0xe8a02c02
3810	.word	0xe8b02c02
3811	.word	0xe8c02c02
3812	.word	0xe8d02c02
3813	.word	0xe8e02c02
3814	.word	0xe8f02c02
3815	.word	0xe9002c02
3816	.word	0xe9102c02
3817	.word	0xe9202c02
3818	.word	0xe9302c02
3819	.word	0xe9402c02
3820	.word	0xe9502c02
3821	.word	0xe9602c02
3822	.word	0xe9702c02
3823	.word	0xe9802c02
3824	.word	0xe9902c02
3825	.word	0xe9a02c02
3826	.word	0xe9b02c02
3827	.word	0xe9c02c02
3828	.word	0xe9d02c02
3829	.word	0xe9e02c02
3830	.word	0xe9f02c02
3831	.word	0xea002c02
3832	.word	0xea102c02
3833	.word	0xea202c02
3834	.word	0xea302c02
3835	.word	0xea402c02
3836	.word	0xea502c02
3837	.word	0xea602c02
3838	.word	0xea702c02
3839	.word	0xea802c02
3840	.word	0xea902c02
3841	.word	0xeaa02c02
3842	.word	0xeab02c02
3843	.word	0xeac02c02
3844	.word	0xead02c02
3845	.word	0xeae02c02
3846	.word	0xeaf02c02
3847	.word	0xeb002c02
3848	.word	0xeb102c02
3849	.word	0xeb202c02
3850	.word	0xeb302c02
3851	.word	0xeb402c02
3852	.word	0xeb502c02
3853	.word	0xeb602c02
3854	.word	0xeb702c02
3855	.word	0xeb802c02
3856	.word	0xeb902c02
3857	.word	0xeba02c02
3858	.word	0xebb02c02
3859	.word	0xebc02c02
3860	.word	0xebd02c02
3861	.word	0xebe02c02
3862	.word	0xebf02c02
3863	.word	0xec002c02
3864	.word	0xec102c02
3865	.word	0xec202c02
3866	.word	0xec302c02
3867	.word	0xec402c02
3868	.word	0xec502c02
3869	.word	0xec602c02
3870	.word	0xec702c02
3871	.word	0xec802c02
3872	.word	0xec902c02
3873	.word	0xeca02c02
3874	.word	0xecb02c02
3875	.word	0xecc02c02
3876	.word	0xecd02c02
3877	.word	0xece02c02
3878	.word	0xecf02c02
3879	.word	0xed002c02
3880	.word	0xed102c02
3881	.word	0xed202c02
3882	.word	0xed302c02
3883	.word	0xed402c02
3884	.word	0xed502c02
3885	.word	0xed602c02
3886	.word	0xed702c02
3887	.word	0xed802c02
3888	.word	0xed902c02
3889	.word	0xeda02c02
3890	.word	0xedb02c02
3891	.word	0xedc02c02
3892	.word	0xedd02c02
3893	.word	0xede02c02
3894	.word	0xedf02c02
3895	.word	0xee002c02
3896	.word	0xee102c02
3897	.word	0xee202c02
3898	.word	0xee302c02
3899	.word	0xee402c02
3900	.word	0xee502c02
3901	.word	0xee602c02
3902	.word	0xee702c02
3903	.word	0xee802c02
3904	.word	0xee902c02
3905	.word	0xeea02c02
3906	.word	0xeeb02c02
3907	.word	0xeec02c02
3908	.word	0xeed02c02
3909	.word	0xeee02c02
3910	.word	0xeef02c02
3911	.word	0xef002c02
3912	.word	0xef102c02
3913	.word	0xef202c02
3914	.word	0xef302c02
3915	.word	0xef402c02
3916	.word	0xef502c02
3917	.word	0xef602c02
3918	.word	0xef702c02
3919	.word	0xef802c02
3920	.word	0xef902c02
3921	.word	0xefa02c02
3922	.word	0xefb02c02
3923	.word	0xefc02c02
3924	.word	0xefd02c02
3925	.word	0xefe02c02
3926	.word	0xeff02c02
3927	.word	0xf0002c02
3928	.word	0xf0102c02
3929	.word	0xf0202c02
3930	.word	0xf0302c02
3931	.word	0xf0402c02
3932	.word	0xf0502c02
3933	.word	0xf0602c02
3934	.word	0xf0702c02
3935	.word	0xf0802c02
3936	.word	0xf0902c02
3937	.word	0xf0a02c02
3938	.word	0xf0b02c02
3939	.word	0xf0c02c02
3940	.word	0xf0d02c02
3941	.word	0xf0e02c02
3942	.word	0xf0f02c02
3943	.word	0xf1002c02
3944	.word	0xf1102c02
3945	.word	0xf1202c02
3946	.word	0xf1302c02
3947	.word	0xf1402c02
3948	.word	0xf1502c02
3949	.word	0xf1602c02
3950	.word	0xf1702c02
3951	.word	0xf1802c02
3952	.word	0xf1902c02
3953	.word	0xf1a02c02
3954	.word	0xf1b02c02
3955	.word	0xf1c02c02
3956	.word	0xf1d02c02
3957	.word	0xf1e02c02
3958	.word	0xf1f02c02
3959	.word	0xf2002c02
3960	.word	0xf2102c02
3961	.word	0xf2202c02
3962	.word	0xf2302c02
3963	.word	0xf2402c02
3964	.word	0xf2502c02
3965	.word	0xf2602c02
3966	.word	0xf2702c02
3967	.word	0xf2802c02
3968	.word	0xf2902c02
3969	.word	0xf2a02c02
3970	.word	0xf2b02c02
3971	.word	0xf2c02c02
3972	.word	0xf2d02c02
3973	.word	0xf2e02c02
3974	.word	0xf2f02c02
3975	.word	0xf3002c02
3976	.word	0xf3102c02
3977	.word	0xf3202c02
3978	.word	0xf3302c02
3979	.word	0xf3402c02
3980	.word	0xf3502c02
3981	.word	0xf3602c02
3982	.word	0xf3702c02
3983	.word	0xf3802c02
3984	.word	0xf3902c02
3985	.word	0xf3a02c02
3986	.word	0xf3b02c02
3987	.word	0xf3c02c02
3988	.word	0xf3d02c02
3989	.word	0xf3e02c02
3990	.word	0xf3f02c02
3991	.word	0xf4002c02
3992	.word	0xf4102c02
3993	.word	0xf4202c02
3994	.word	0xf4302c02
3995	.word	0xf4402c02
3996	.word	0xf4502c02
3997	.word	0xf4602c02
3998	.word	0xf4702c02
3999	.word	0xf4802c02
4000	.word	0xf4902c02
4001	.word	0xf4a02c02
4002	.word	0xf4b02c02
4003	.word	0xf4c02c02
4004	.word	0xf4d02c02
4005	.word	0xf4e02c02
4006	.word	0xf4f02c02
4007	.word	0xf5002c02
4008	.word	0xf5102c02
4009	.word	0xf5202c02
4010	.word	0xf5302c02
4011	.word	0xf5402c02
4012	.word	0xf5502c02
4013	.word	0xf5602c02
4014	.word	0xf5702c02
4015	.word	0xf5802c02
4016	.word	0xf5902c02
4017	.word	0xf5a02c02
4018	.word	0xf5b02c02
4019	.word	0xf5c02c02
4020	.word	0xf5d02c02
4021	.word	0xf5e02c02
4022	.word	0xf5f02c02
4023	.word	0xf6002c02
4024	.word	0xf6102c02
4025	.word	0xf6202c02
4026	.word	0xf6302c02
4027	.word	0xf6402c02
4028	.word	0xf6502c02
4029	.word	0xf6602c02
4030	.word	0xf6702c02
4031	.word	0xf6802c02
4032	.word	0xf6902c02
4033	.word	0xf6a02c02
4034	.word	0xf6b02c02
4035	.word	0xf6c02c02
4036	.word	0xf6d02c02
4037	.word	0xf6e02c02
4038	.word	0xf6f02c02
4039	.word	0xf7002c02
4040	.word	0xf7102c02
4041	.word	0xf7202c02
4042	.word	0xf7302c02
4043	.word	0xf7402c02
4044	.word	0xf7502c02
4045	.word	0xf7602c02
4046	.word	0xf7702c02
4047	.word	0xf7802c02
4048	.word	0xf7902c02
4049	.word	0xf7a02c02
4050	.word	0xf7b02c02
4051	.word	0xf7c02c02
4052	.word	0xf7d02c02
4053	.word	0xf7e02c02
4054	.word	0xf7f02c02
4055	.word	0xf8002c02
4056	.word	0xf8102c02
4057	.word	0xf8202c02
4058	.word	0xf8302c02
4059	.word	0xf8402c02
4060	.word	0xf8502c02
4061	.word	0xf8602c02
4062	.word	0xf8702c02
4063	.word	0xf8802c02
4064	.word	0xf8902c02
4065	.word	0xf8a02c02
4066	.word	0xf8b02c02
4067	.word	0xf8c02c02
4068	.word	0xf8d02c02
4069	.word	0xf8e02c02
4070	.word	0xf8f02c02
4071	.word	0xf9002c02
4072	.word	0xf9102c02
4073	.word	0xf9202c02
4074	.word	0xf9302c02
4075	.word	0xf9402c02
4076	.word	0xf9502c02
4077	.word	0xf9602c02
4078	.word	0xf9702c02
4079	.word	0xf9802c02
4080	.word	0xf9902c02
4081	.word	0xf9a02c02
4082	.word	0xf9b02c02
4083	.word	0xf9c02c02
4084	.word	0xf9d02c02
4085	.word	0xf9e02c02
4086	.word	0xf9f02c02
4087	.word	0xfa002c02
4088	.word	0xfa102c02
4089	.word	0xfa202c02
4090	.word	0xfa302c02
4091	.word	0xfa402c02
4092	.word	0xfa502c02
4093	.word	0xfa602c02
4094	.word	0xfa702c02
4095	.word	0xfa802c02
4096	.word	0xfa902c02
4097	.word	0xfaa02c02
4098	.word	0xfab02c02
4099	.word	0xfac02c02
4100	.word	0xfad02c02
4101	.word	0xfae02c02
4102	.word	0xfaf02c02
4103	.word	0xfb002c02
4104	.word	0xfb102c02
4105	.word	0xfb202c02
4106	.word	0xfb302c02
4107	.word	0xfb402c02
4108	.word	0xfb502c02
4109	.word	0xfb602c02
4110	.word	0xfb702c02
4111	.word	0xfb802c02
4112	.word	0xfb902c02
4113	.word	0xfba02c02
4114	.word	0xfbb02c02
4115	.word	0xfbc02c02
4116	.word	0xfbd02c02
4117	.word	0xfbe02c02
4118	.word	0xfbf02c02
4119	.word	0xfc002c02
4120	.word	0xfc102c02
4121	.word	0xfc202c02
4122	.word	0xfc302c02
4123	.word	0xfc402c02
4124	.word	0xfc502c02
4125	.word	0xfc602c02
4126	.word	0xfc702c02
4127	.word	0xfc802c02
4128	.word	0xfc902c02
4129	.word	0xfca02c02
4130	.word	0xfcb02c02
4131	.word	0xfcc02c02
4132	.word	0xfcd02c02
4133	.word	0xfce02c02
4134	.word	0xfcf02c02
4135	.word	0xfd002c02
4136	.word	0xfd102c02
4137	.word	0xfd202c02
4138	.word	0xfd302c02
4139	.word	0xfd402c02
4140	.word	0xfd502c02
4141	.word	0xfd602c02
4142	.word	0xfd702c02
4143	.word	0xfd802c02
4144	.word	0xfd902c02
4145	.word	0xfda02c02
4146	.word	0xfdb02c02
4147	.word	0xfdc02c02
4148	.word	0xfdd02c02
4149	.word	0xfde02c02
4150	.word	0xfdf02c02
4151	.word	0xfe002c02
4152	.word	0xfe102c02
4153	.word	0xfe202c02
4154	.word	0xfe302c02
4155	.word	0xfe402c02
4156	.word	0xfe502c02
4157	.word	0xfe602c02
4158	.word	0xfe702c02
4159	.word	0xfe802c02
4160	.word	0xfe902c02
4161	.word	0xfea02c02
4162	.word	0xfeb02c02
4163	.word	0xfec02c02
4164	.word	0xfed02c02
4165	.word	0xfee02c02
4166	.word	0xfef02c02
4167	.word	0xff002c02
4168	.word	0xff102c02
4169	.word	0xff202c02
4170	.word	0xff302c02
4171	.word	0xff402c02
4172	.word	0xff502c02
4173	.word	0xff602c02
4174	.word	0xff702c02
4175	.word	0xff802c02
4176	.word	0xff902c02
4177	.word	0xffa02c02
4178	.word	0xffb02c02
4179	.word	0xffc02c02
4180	.word	0xffd02c02
4181	.word	0xffe02c02
4182	.word	0xfff02c02
4183#endif /* CFG_SHMOO */
4184
4185/* Entry point */
4186	.section .text.startup
4187
4188	.globl startup
4189startup:
4190	b	tr_rst	/* 0 - reset */
4191	ldr	pc,_tr_und	/* 4 - undefined instruction */
4192	ldr	pc,_tr_swi	/* 8 - software interrupt */
4193	ldr	pc,_tr_iab	/* 0xc - prefetch abort */
4194	ldr	pc,_tr_dab	/* 0x10 - data abort */
4195	ldr	pc,_tr_bad	/* 0x14 - reserved */
4196	ldr	pc,_tr_irq	/* 0x18 - external interrupt */
4197	ldr	pc,_tr_fiq	/* 0x1c - fast interrupt */
4198
4199_tr_und:
4200	.word tr_und
4201_tr_swi:
4202	.word tr_swi
4203_tr_iab:
4204	.word tr_iab
4205_tr_dab:
4206	.word tr_dab
4207_tr_bad:
4208	.word tr_bad
4209_tr_irq:
4210	.word tr_irq
4211_tr_fiq:
4212	.word tr_fiq
4213_pad:
4214	.word 0x12345678 /* now 16*4=64 */
4215
4216	.org	(BISZ_OFFSET-4)
4217_ddrclk:
4218	.word	0x0
4219	/* Record the size of the binary */
4220	.org	BISZ_OFFSET
4221
4222	.word	BISZ_MAGIC
4223	.word	text_start
4224	.word	text_end
4225	.word	data_start
4226	.word	data_end
4227	.word	bss_start
4228	.word	bss_end
4229	.word	_end
4230
4231	.balign envram_ofs
4232	/* Embedded NVRAM */
4233	.global	embedded_nvram
4234embedded_nvram:
4235	.fill	0x400,4,~0x48534C46	/* 'FLSH' */
4236        .long   0x4c5a4d41              /* LZMA NVRAM Supported */
4237
4238#ifdef _CFE_
4239#if CFG_EMBEDDED_PIC
4240#define RUNTIME_RELOC_START	__runtime_reloc_start
4241#define RUNTIME_RELOC_STOP	__runtime_reloc_stop
4242#else
4243#define RUNTIME_RELOC_START	0
4244#define RUNTIME_RELOC_STOP	0
4245#endif
4246
4247#include "segtable.h"
4248
4249	.globl segment_table
4250segment_table:
4251	.word	text_end			/* [  0] End of text (R_SEG_ETEXT) */
4252	.word	data_start			/* [  1] Beginning of data (R_SEG_FDATA) */
4253	.word	data_end			/* [  2] End of data (R_SEG_EDATA) */
4254	.word	_end				/* [  3] End of BSS (R_SEG_END) */
4255	.word	text_start			/* [  4] Beginning of text (R_SEG_FTEXT) */
4256	.word	bss_start			/* [  5] Beginning of BSS (R_SEG_FBSS) */
4257	.word	0					/* [  6] Global Pointer (R_SEG_GP) */
4258	.word	RUNTIME_RELOC_START	/* [  7] Beginning of reloc entries */
4259	.word	RUNTIME_RELOC_STOP	/* [  8] End of reloc entries */
4260	.word	0					/* [  9] R_SEG_APIENTRY */
4261#endif /* __CFE_ */
4262
4263/*************************************************************************
4264 *
4265 * Startup Code (reset vector)
4266 *
4267 * do important init only if we don't start from memory!
4268 * setup Memory and board specific bits prior to relocation.
4269 * relocate armboot to ram
4270 * setup stack
4271 *
4272 *************************************************************************/
4273
4274/*
4275 * the actual reset code
4276 */
4277tr_rst:
4278	mrs	r0,cpsr
4279	mov	r1,#(PS_MM)
4280	bic	r0,r0,r1
4281	/* Switch to system mode and make sure interrupts are disabled */
4282	mov 	r1,#(PS_I | PS_F | PS_SYS)
4283	orr	r0,r0,r1
4284	msr	cpsr,r0
4285initcpu:
4286	mov	r0,#0
4287
4288	/* Initialize cp15 registers */
4289	mcr	p15,0,r0,c5,c0,0		/* DFSR */
4290	mcr	p15,0,r0,c5,c0,1		/* IFSR */
4291	mcr	p15,0,r0,c6,c0,0		/* DFAR */
4292	mcr	p15,0,r0,c6,c0,1		/* WFSR */
4293
4294	/* Initialize system control register */
4295	mrc	p15,0,r1,c1,c0,0
4296	bic	r1,r1,#0x7			/* Clear C, A, M bits */
4297	bic	r1,r1,#(0x1 << 12)		/* Clear I bit */
4298	orr	r1,r1,#0x2000			/* Set V bit: high vectors (0xffff0000) */
4299	orr	r1,r1,#0x2			/* Set A bit: enable strict alignment */
4300	mcr	p15,0,r1,c1,c0,0
4301
4302	mcr	p15,0,r0,c8,c7,0		/* Invalidate TLB */
4303	mcr	p15,0,r0,c7,c5,0		/* Invalidate icache */
4304	mcr	p15,0,r0,c7,c5,6		/* Invalidate BTAC */
4305	mcr	p15,0,r0,c7,c10,4		/* DSB */
4306	mcr	p15,0,r0,c7,c5,4		/* ISB */
4307
4308	/* Identify current CPU */
4309	mrc	p15,0,r0,c0,c0,5
4310	and	r0,r0,#0xf			/* retrieve cpu core id */
4311	cmp	r0,#0				/* cpu core 0? */
4312	beq	check_startaddr
4313
4314	/* Changed the jump address for core 1 */
4315	ldr	r0,=0xffff002c			/* This address contains a wfe instruction */
4316	ldr	r1,=0xffff0000			/* SKU ROM starting address */
4317	str	r0, [r1, #0x400]
4318
4319	ldr	pc,=0xffff002c			/* Go back to SKU ROM, waiting kernel SMP */
4320
4321check_startaddr:
4322	adrl	r0,startup		/* r0: source start address */
4323	ldr	r1,=startup		/* r1: target address */
4324	cmp	r0,r1
4325	beq	szmem
4326
4327	/* Wake up core 1 */
4328	mov	r0,#0
4329	mcr 	p15,0,r0,c7,c10,4
4330	sev
4331
4332enable_cache:
4333	/* Enable I cache */
4334	mrc	p15,0,r1,c1,c0,0
4335	orr	r1,r1,#0x1800			/* Enable I$ and branch prediction */
4336	mcr	p15,0,r1,c1,c0,0
4337
4338#ifdef CFG_SHMOO
4339	/* Invalidate data cache */
4340	bl	cpu_inv_dcache_all
4341
4342	/* Enable D cache */
4343	mcr	p15,0,r0,c7,c10,4		/* DSB */
4344	mrc	p15,0,r1,c1,c0,0
4345	orr	r1,r1,#0x4
4346	mcr	p15,0,r1,c1,c0,0
4347	mcr	p15,0,r0,c7,c5,4		/* ISB */
4348
4349	/* Invalidate TLB */
4350	mcr	p15,0,r0,c8,c7,0
4351
4352scu_enable:
4353	ldr	r1,=IHOST_SCU_INVALIDATE
4354	mov	r2,#0xff
4355	str	r2,[r1]
4356	ldr	r1,=IHOST_SCU_CONTROL
4357	ldr	r2,[r1]
4358	orr	r2,r2,#0x1
4359	str	r2,[r1]
4360mmu_init:
4361	ldr	r1,=startup
4362	ldr	r2,=page_table
4363	sub	r2,r2,r1
4364	adrl	r1,startup
4365	add	r1,r1,r2
4366
4367	/* Configure translation table base (TTB) control register cp15,c2
4368	 * to a value of all zeros, indicates we are using TTB register 0
4369	 */
4370	mov	r0,#0
4371	mcr	p15,0,r0,c2,c0,2
4372	/* Load page table address to cp15 */
4373	mcr	p15,0,r1,c2,c0,0
4374	/* Set the access control to client */
4375	ldr	r1,=0xffffffff
4376	mcr	p15,0,r1,c3,c0,0
4377	/* Enable MMU */
4378	mrc	p15,0,r1,c1,c0,0
4379	orr	r1,r1,#0x1
4380	mcr	p15,0,r1,c1,c0,0
4381	mcr	p15,0,r0,c7,c5,4		/* ISB */
4382
4383l2cc_init:
4384	ldr	r1,=SI_ENUM_BASE
4385	ldr	r2,=CC_CHIPID
4386	ldr	r2,[r1,r2]
4387	ldr	r1,=CID_ID_MASK
4388	and	r2,r2,r1
4389	ldr	r1,=0xcf12	/* NS Ax/Bx */
4390	cmp	r2,r1
4391	beq	l2cc_256k
4392	ldr	r1,=0xcf26	/* NS 47094 */
4393	cmp	r2,r1
4394	beq	l2cc_256k
4395	ldr	r1,=0xcf19
4396	cmp	r2,r1
4397	bge	l2cc_512k
4398l2cc_256k:
4399	ldr	r1,=0x0a130000
4400	ldr	r4,=0x111
4401	b	l2cc_inv
4402l2cc_512k:
4403	ldr	r1,=0x0a150000
4404	ldr	r4,=0x131
4405l2cc_inv:
4406	ldr	r2,=IHOST_L2C_CACHE_ID
4407	ldr	r3,[r2,#0x104]
4408	bic	r3,r3,#0x000f0000
4409	orr	r3,r3,r1
4410	str	r3,[r2,#0x104]
4411	ldr	r1,=0x0
4412	str	r1,[r2,#0x108]
4413	str	r4,[r2,#0x10c]
4414	ldr	r1,=0xffff
4415	str	r1,[r2,#0x77c]
4416test_inv_way:
4417	ldr	r1,[r2,#0x77c]
4418	cmp	r1,r0
4419	bne	test_inv_way
4420
4421	ldr	r1,=0x1ff
4422	str	r1,[r2,#0x220]			/* int_clear */
4423	mov	r1,#0x1
4424	str	r1,[r2,#0x100]			/* control */
4425	mcr	p15,0,r0,c7,c10,4		/* DSB */
4426	mcr	p15,0,r0,c7,c5,4		/* ISB */
4427
4428l2cc_lockdown:
4429	ldr	r1,=0xc0000000
4430	ldr	r2,=0xc0020000			/* 128KB */
4431	ldr	r4,=0xa5a5a5a5
4432	ldr	r5,=0xa5a5a5a5
4433	ldr	r6,=0xa5a5a5a5
4434	ldr	r7,=0xa5a5a5a5
4435	ldr	r8,=0xa5a5a5a5
4436	ldr	r9,=0xa5a5a5a5
4437	ldr	r10,=0xa5a5a5a5
4438	ldr	r11,=0xa5a5a5a5
4439	/* Enable lockdown by line */
4440	mov	r3,#0x01
4441	ldr	r0,=IHOST_L2C_CACHE_ID
4442	str	r3,[r0,#0x950]
44431:
4444	stmia	r1!,{r4-r11}
4445	ldr	r3,=0x10
4446cdelay1:
4447	sub	r3,r3,#1
4448	cmp	r3,#0
4449	bne	cdelay1
4450	cmp	r1,r2
4451	bne	1b
4452
4453	/* Disable lockdown by line */
4454	mov	r3,#0
4455	ldr	r0,=IHOST_L2C_CACHE_ID
4456	str	r3,[r0,#0x950]
4457l2cc_init_done:
4458#endif /* CFG_SHMOO */
4459
4460	/* BCM4708 WAR for PCIE2 */
4461	ldr	r0,=0x1a000000
4462	ldr	r1,=0x0
4463	str	r1,[r0]
4464	ldr	r0,=0x18130e04
4465	ldr	r1,=0x0
4466	str	r1,[r0]
4467	ldr	r0,=0x18130e00
4468	ldr	r1,=0x1
4469	str	r1,[r0]
4470
4471init_pcie:
4472	ldr	r0,=SI_ENUM_BASE		/* r0:	core regs SI base address */
4473	ldr	r1,=CC_EROMPTR
4474	ldr	r1,[r0,r1]			/* r1:	erom pointer */
44751:	ldr	r2,[r1]				/* r2:	erom entry */
4476	ldr	r3,=(ER_TAG | ER_VALID)
4477	and	r3,r3,r2
4478	cmp	r3,#(ER_END | ER_VALID)		/* Is this the END marker? */
4479	beq	no_pcie				/* Yes: done and did not find pcie */
4480
4481	cmp	r3,#(ER_CI | ER_VALID)
4482	beq	2f
4483
4484	add	r1,r1,#4			/* Next erom entry */
4485	b	1b
4486
4487no_pcie:
4488	b	find_bootdev
4489
4490	/* Found a CIA */
44912:	add	r1,r1,#8			/* Skip both CIA & CIB */
4492	ldr	r3,=CIA_CID_MASK
4493	and	r3,r3,r2
4494	ldr	r4,=(NS_PCIEG2_CORE_ID << CIA_CID_SHIFT)
4495	cmp	r3,r4
4496	bne	1b
4497
4498	/* Found pcie, get regs and wrapper and save them */
4499	bl	ai_get_slave
4500	mov	r8,r0
4501	bl	ai_get_wrapper
4502	mov	r9,r0
4503
4504	/* Initialize memory controller and size memory */
4505	mov	r0,r8
4506	mov	r1,r9
4507	bl	pcie_init
4508	bl	pcie_phy_init
4509
4510find_bootdev:
4511	ldr	r0,=SI_ENUM_BASE		/* r0:	core regs SI base address */
4512	ldr	r1,=CC_EROMPTR
4513	ldr	r1,[r0,r1]			/* r1:	erom pointer */
45141:	ldr	r2,[r1]				/* r2:	erom entry */
4515	ldr	r3,=(ER_TAG | ER_VALID)
4516	and	r3,r3,r2
4517	cmp	r3,#(ER_END | ER_VALID)		/* Is this the END marker? */
4518	beq	no_socrom_core			/* Yes: done and did not find rom core */
4519
4520	cmp	r3,#(ER_CI | ER_VALID)
4521	beq	2f
4522
4523	add	r1,r1,#4			/* Next erom entry */
4524	b	1b
4525
4526no_socrom_core:
4527	b	init_ddr
4528
4529	/* Found a CIA */
45302:	add	r1,r1,#8			/* Skip both CIA & CIB */
4531	ldr	r3,=CIA_CID_MASK
4532	and	r3,r3,r2
4533	ldr	r4,=(NS_ROM_CORE_ID << CIA_CID_SHIFT)
4534	cmp	r3,r4
4535	bne	1b
4536
4537	/* Found socrom, get regs and wrapper and save them */
4538	bl	ai_get_wrapper
4539	ldr	r1,[r0,#AI_IOSTATUS]
4540	ldr	r2,=SISF_NS_BOOTDEV_MASK
4541	and	r1,r1,r2
4542	mov	r7,r1
4543	ldr	r0,=SISF_NS_BOOTDEV_OFFLOAD
4544	cmp	r1,r0
4545	bne	init_ddr
4546
4547offload_mode:
4548	ldr	r4,=0x1
4549	ldr	r5,=0xffff042c
4550	str	r4,[r5]
4551	ldr	r4,=0x0
4552	ldr	r5,=0xffff0430
4553wait_for_host:
4554	ldr	r6,[r5]
4555	cmp	r6,r4
4556	beq	wait_for_host
4557	bx	r6
4558
4559/*
4560 * Find ddr core
4561 */
4562init_ddr:
4563#ifdef CFG_SHMOO
4564	/* Copy to cache */
4565copy2cache:
4566	adrl	r0,startup		/* r0: source start address */
4567	ldr	r1,=startup		/* r1: target address */
4568	cmp	r0,r1
4569	beq	l2c_clear_bss
4570	ldr	r3,_bss_start_ofs
4571	add	r2,r0,r3		/* r2: source end address */
4572l2c_copy_loop:
4573	ldmia	r0!,{r9-r10}		/* copy from source address [r0] */
4574	stmia	r1!,{r9-r10}		/* copy to   target address [r1] */
4575	cmp	r0,r2			/* until source end address [r2] */
4576	blo	l2c_copy_loop
4577
4578	/* Clear BSS */
4579l2c_clear_bss:
4580	ldr	r0,_bss_start_ofs
4581	ldr	r1,_bss_end_ofs
4582	ldr	r4,=startup
4583	add	r0,r0,r4
4584	add	r1,r1,r4
4585	mov	r2,#0x00000000
4586	/* empty bss section checking */
4587	cmp	r0,r1
4588	beq	enable_arm_cyclecount
4589
4590l2c_clbss_l:
4591	str	r2,[r0]
4592	add	r0,r0,#4
4593	cmp	r0,r1
4594	bne	l2c_clbss_l
4595
4596/* Cycle Count */
4597enable_arm_cyclecount:
4598	mrc	p15,0,r1,c9,c12,0
4599	ldr	r2,=1
4600	orr	r1,r1,r2
4601	mcr	p15,0,r1,c9,c12,0	/* Set enable bit in PMNC */
4602	ldr	r1,=0x80000000
4603	mcr	p15,0,r1,c9,c12,1
4604
4605	/* setup stack pointer */
4606	ldr	r0,=0xc0000000
4607	ldr	r1,=0x20000			/* 128KB */
4608	add	r0,r0,r1
4609	sub	r0,r0,#8
4610	mov	sp,r0
4611	bic	sp,sp,#7
4612	ldr	r0,_c_ddr_init_ofs
4613	ldr	r1,=startup
4614	add	lr,r1,r0
4615	ldr	r0,_c_ddr_init_done_ofs
4616	adrl	r1,startup
4617	add	r0,r1,r0
4618	mov	pc,lr
4619c_ddr_init_done:
4620#else	/* CFG_SHMOO */
4621	ldr	r0,=SI_ENUM_BASE		/* r0:	core regs SI base address */
4622	ldr	r1,=CC_EROMPTR
4623	ldr	r1,[r0,r1]			/* r1:	erom pointer */
46241:	ldr	r2,[r1]				/* r2:	erom entry */
4625	ldr	r3,=(ER_TAG | ER_VALID)
4626	and	r3,r3,r2
4627	cmp	r3,#(ER_END | ER_VALID)		/* Is this the END marker? */
4628	beq	panic				/* Yes: done and did not find ddr */
4629
4630	cmp	r3,#(ER_CI | ER_VALID)
4631	beq	2f
4632
4633	add	r1,r1,#4			/* Next erom entry */
4634	b	1b
4635
4636panic:	b	.
4637
4638	/* Found a CIA */
46392:	add	r1,r1,#8			/* Skip both CIA & CIB */
4640	ldr	r3,=CIA_CID_MASK
4641	and	r3,r3,r2
4642	ldr	r4,=(NS_DDR23_CORE_ID << CIA_CID_SHIFT)
4643	cmp	r3,r4
4644	bne	1b
4645
4646	/* Found ddr, get regs and wrapper and save them */
4647	bl	ai_get_slave
4648	mov	r8,r0
4649	bl	ai_get_wrapper
4650	mov	r9,r0
4651
4652	/* Initialize memory controller and size memory */
4653	mov	r0,r8
4654	mov	r1,r9
4655	mov	r2,r7			/* boot_dev */
4656
4657	bl	ddr_init
4658#endif  /* CFG_SHMOO */
4659
4660szmem:
4661	ldr	r3,=0x80000000
4662	ldr	r2,=0xaa55beef
4663	ldr	r1,=0x00000000
4664	str	r1,[r3,#0x3c]
4665	ldr	r0,=(1 << 20)
4666	ldr	r5,=(1 << 30)
46671:
4668	ldr	r4,=0x80000000
4669	add	r4,r4,r0
4670	str	r2,[r4,#0x3c]
4671	ldr	r1,[r4,#0x3c]			/* Read back to ensure completion */
4672	ldr	r1,[r3,#0x3c]
4673	cmp	r1,r2
4674	beq	2f
4675
4676	lsl	r0,r0,#1
4677	cmp	r0,r5
4678	bne	1b
4679
4680	/* Didn't find an alias, must be 128MB */
46812:
4682	mov	r8,r0			/* r8: the memory size in bytes */
4683
4684/* Do CRU configure after DDR initied */
4685#if !defined(CFG_ROMBOOT)
4686set_cru_policy7:
4687	ldr	r0,=IHOST_PROC_CLK_WR_ACCESS
4688	ldr	r1,=0xa5a501
4689	str	r1,[r0]
4690
4691	ldr	r3,=SI_ENUM_BASE
4692	ldr	r4,=CC_CHIPID
4693	ldr	r4,[r3,r4]
4694	ldr	r3,=CID_PKG_MASK
4695	and	r4,r4,r3
4696	lsr	r3,r4,#CID_PKG_SHIFT
4697
4698	cmp	r3,#0
4699	beq	cpu_1g
4700	ldr	r1,=0x1004001		/* 800MHz */
4701	b	set_clocks
4702
4703cpu_1g:
4704	ldr	r1,=0x1005001		/* 1GHz */
4705	b	set_clocks
4706
4707set_clocks:
4708	ldr	r0,=IHOST_PROC_CLK_PLLARMA
4709	str	r1,[r0]
4710	ldr	r2,=0x0
4711
4712	ldr	r4,=0x100000
4713poll_plllock:
4714	cmp	r4,r2
4715	beq	poll_plllock_done
4716	sub	r4,r4,#1
4717	ldr	r1,[r0]
4718	and	r3,r1,#(1 << IHOST_PROC_CLK_PLLARMA__PLLARM_LOCK)
4719	cmp	r3,r2
4720	beq	poll_plllock
4721poll_plllock_done:
4722	orr	r1,r1,#(1 << IHOST_PROC_CLK_PLLARMA__PLLARM_SOFT_POST_RESETB)
4723	str	r1,[r0]
4724	ldr	r0,=IHOST_PROC_CLK_POLICY_FREQ
4725	ldr	r1,=0x87070707
4726	str	r1,[r0]
4727	ldr	r0,=IHOST_PROC_CLK_CORE0_CLKGATE
4728	ldr	r1,=0x00010303
4729	str	r1,[r0]
4730	ldr	r0,=IHOST_PROC_CLK_CORE1_CLKGATE
4731	ldr	r2,=0x00000303
4732	str	r2,[r0]
4733	ldr	r0,=IHOST_PROC_CLK_ARM_SWITCH_CLKGATE
4734	str	r1,[r0]
4735	ldr	r0,=IHOST_PROC_CLK_ARM_PERIPH_CLKGATE
4736	str	r1,[r0]
4737	ldr	r0,=IHOST_PROC_CLK_APB0_CLKGATE
4738	str	r1,[r0]
4739
4740	ldr	r0,=IHOST_PROC_CLK_POLICY_CTL
4741	ldr	r2,=(1 << IHOST_PROC_CLK_POLICY_CTL__GO)
4742	ldr	r3,=(1 << IHOST_PROC_CLK_POLICY_CTL__GO_AC)
4743	orr	r3,r3,r2
4744	str	r3,[r0]
4745	ldr	r3,=0x0
4746	ldr	r4,=0x100000
4747poll_ccu:
4748	cmp	r4,r3
4749	beq	poll_ccu_done
4750	sub	r4,r4,#1
4751	ldr	r1,[r0]
4752	and	r1,r1,r2
4753	cmp	r1,r3
4754	bne	poll_ccu
4755poll_ccu_done:
4756#endif /* !defined(CFG_ROMBOOT) */
4757
4758#ifndef CFG_SHMOO
4759        /* Copy to RAM */
4760copy2ram:
4761	adrl	r0,startup		/* r0: source start address */
4762	ldr	r1,=startup		/* r1: target address */
4763	cmp	r0,r1
4764	beq	clear_bss
4765	ldr	r3,_bss_start_ofs
4766	add	r2,r0,r3		/* r2: source end address */
4767copy_loop:
4768	ldmia	r0!,{r9-r10}		/* copy from source address [r0] */
4769	stmia	r1!,{r9-r10}		/* copy to   target address [r1] */
4770	cmp	r0,r2			/* until source end address [r2] */
4771	blo	copy_loop
4772
4773	/* Clear BSS */
4774clear_bss:
4775	ldr	r0,_bss_start_ofs
4776	ldr	r1,_bss_end_ofs
4777	ldr	r4,=startup
4778	add	r0,r0,r4
4779	add	r1,r1,r4
4780	mov	r2,#0x00000000
4781	/* empty bss section checking */
4782	cmp	r0,r1
4783	beq	enable_arm_cyclecount
4784
4785clbss_l:
4786	str	r2,[r0]
4787	add	r0,r0,#4
4788	cmp	r0,r1
4789	bne	clbss_l
4790
4791/* Cycle Count */
4792enable_arm_cyclecount:
4793	mrc	p15,0,r1,c9,c12,0
4794	ldr	r2,=1
4795	orr	r1,r1,r2
4796	mcr	p15,0,r1,c9,c12,0	/* Set enable bit in PMNC */
4797	ldr	r1,=0x80000000
4798	mcr	p15,0,r1,c9,c12,1
4799#endif /* !CFG_SHMOO */
4800/* Set stackpointer in internal RAM to call c_main */
4801call_c_main:
4802	/* Save memory size in bytes */
4803	mov	r0,r8
4804	cmp	r0,#(128<<20)
4805	ble	1f
4806	mov	r0,#(128<<20)
48071:
4808	ldr	r1,=_memsize
4809	str r0,[r1]
4810
4811#ifdef _CFE_
4812	_LSR_ r8,r8,#10			/* memory size in Kbytes */
4813	ldr	r1,=mem_totalsize
4814	str	r8,[r1]
4815
4816	/* not relocating, no offset */
4817	ldr	r0,=0
4818	ldr	r1,=mem_datareloc
4819	str	r0,[r1]
4820	ldr	r1,=mem_textreloc
4821	str	r0,[r1]
4822
4823	ldr r0,_text_start_ofs
4824	add	r0,r0,r4
4825	ldr	r1,=mem_bottomofmem
4826	str	r0,[r1]
4827
4828	ldr	r0,__end_ofs
4829	add	r0,r0,r4
4830	ldr	r1,=mem_heapstart
4831	str	r0,[r1]
4832
4833	add	r0,#(CFG_HEAP_SIZE*1024)
4834	add	r0,#STACK_SIZE
4835	ldr	r1,=mem_topofmem
4836	str	r0,[r1]
4837
4838	ldr	r0,_text_start_ofs
4839	add	r0,r0,r4
4840	ldr	r2,_text_end_ofs
4841	add	r2,r2,r4
4842	sub	r2,r2,r0
4843	ldr	r1,=mem_textsize
4844	str	r2,[r1]
4845	ldr	r1,=mem_textbase
4846	str	r0,[r1]
4847
4848	ldr	r0,=0x00000000
4849	ldr	r1,=cpu_prid
4850	str	r0,[r1]
4851
4852	/* Set the segment_table */
4853	/* text_end */
4854	ldr	r0,_text_end_ofs
4855	add	r0,r0,r4
4856	ldr	r1,=segment_table
4857	str	r0,[r1]
4858
4859	/* data_start */
4860	ldr	r0,_data_start_ofs
4861	add	r0,r0,r4
4862	add	r1,r1,#4
4863	str	r0,[r1]
4864
4865	/* data_end */
4866	ldr	r0,_data_end_ofs
4867	add	r0,r0,r4
4868	add	r1,r1,#4
4869	str	r0,[r1]
4870
4871	/* _end */
4872	ldr	r0,__end_ofs
4873	add	r0,r0,r4
4874	add	r1,r1,#4
4875	str	r0,[r1]
4876
4877	/* text_start */
4878	ldr	r0,_text_start_ofs
4879	add	r0,r0,r4
4880	add	r1,r1,#4
4881	str	r0,[r1]
4882
4883	/* bss_start */
4884	ldr	r0,_bss_start_ofs
4885	add	r0,r0,r4
4886	add	r1,r1,#4
4887	str	r0,[r1]
4888
4889	/* _gp (0) */
4890	mov	r0,#0
4891	add	r1,r1,#4
4892	str	r0,[r1]
4893
4894	/* RUNTIME_RELOC_START (0) */
4895	mov	r0,#0
4896	add	r1,r1,#4
4897	str	r0,[r1]
4898
4899	/* RUNTIME_RELOC_STOP (0) */
4900	mov	r0,#0
4901	add	r1,r1,#4
4902	str	r0,[r1]
4903
4904	/* cpu_apientry (0) */
4905	mov	r0,#0
4906	add	r1,r1,#4
4907	str	r0,[r1]
4908
4909	ldr	r1,=mem_topofmem
4910#else /* !_CFE_ */
4911	ldr	r1,=_memsize
4912#endif /* _CFE_ */
4913
4914	ldr	r0,[r1]
4915	sub	r0,r0,#8
4916	mov	sp,r0
4917	bic	sp,sp,#7		/* 8-byte alignment for ABI compliance */
4918
4919	ldr	r0,_c_main_ofs
4920	ldr	r1,=startup
4921	add	lr, r0, r1
4922	/* setup parameters for c_main */
4923#ifdef _CFE_
4924	/* CFE: clear argument a & b in cfe_main */
4925	ldr	r0,=0x00000000
4926	ldr	r1,=0x00000000
4927#else
4928	/* CFEZ: set return addr to argment ra */
4929	ldr	r0,_theend_ofs
4930	add	r0,r0,r2
4931#endif
4932	/* jump to it ... */
4933	mov	pc,lr
4934
4935/* In case c_main returns */
4936theend:
4937	TRACE(0x424feedd)
4938	wfe
4939	b	theend
4940
4941
4942/*
4943 * These are defined in the board-specific linker script.
4944 */
4945
4946#ifdef _CFE_
4947.globl _text_start_ofs
4948_text_start_ofs:
4949	.word text_start - startup
4950
4951.globl _text_end_ofs
4952_text_end_ofs:
4953	.word text_end - startup
4954
4955.globl _data_start_ofs
4956_data_start_ofs:
4957	.word data_start - startup
4958
4959.globl _data_end_ofs
4960_data_end_ofs:
4961	.word data_end - startup
4962
4963.globl __end_ofs
4964__end_ofs:
4965	.word _end - startup
4966#endif /* _CFE_ */
4967
4968.globl _bss_start_ofs
4969_bss_start_ofs:
4970	.word bss_start - startup
4971
4972.globl _bss_end_ofs
4973_bss_end_ofs:
4974	.word bss_end - startup
4975
4976#ifdef CFG_SHMOO
4977_c_ddr_init_ofs:
4978	.word c_ddr_init - startup
4979
4980_c_ddr_init_done_ofs:
4981	.word c_ddr_init_done - startup
4982#endif /* CFG_SHMOO */
4983
4984_c_main_ofs:
4985	.word c_main - startup
4986
4987_theend_ofs:
4988	.word theend - startup
4989
4990/* Init PCIE mappings */
4991FUNC(pcie_init)
4992	ldr	r5,=REG_BAR2_CONFIG_F0
4993	str	r5,[r0,#PAXB_INDR_ADDR]
4994	ldr	r3,[r0,#PAXB_INDR_DATA]
4995	and	r3,r3,#0xfffffff0
4996	orr	r3,r3,#0xc
4997	str	r3,[r0,#PAXB_INDR_DATA]
4998
4999	ldr	r3,[r0,#PAXB_IARR_1_LOWER]
5000	and	r3,r3,#0xffffff00
5001	orr	r3,r3,#0x80
5002	str	r3,[r0,#PAXB_IARR_1_LOWER]
5003	ldr	r3,=0x40000000
5004	str	r3,[r0,#PAXB_IARR_1_UPPER]
5005
5006	ldr	r3,=0x00000001
5007	str	r3,[r0,#PAXB_FUNC0_IMAP1]
5008	bx	lr
5009END(pcie_init)
5010
5011/*
5012 * Find the first slave address for a core in the AI EROM
5013 * Input:
5014 *	r1 - pointer to EROM after CIB
5015 * Output:
5016 *	r0 - slave address
5017 * Changed:
5018 *	r0, r1, r2
5019 */
5020FUNC(ai_get_slave)
50211:	ldr	r0,[r1]
5022	ldr	r2,=(ER_TAG | ER_VALID)
5023	add	r1,r1,#4			/* Next erom entry */
5024	and	r2,r2,r0
5025	cmp	r2,#(ER_ADD | ER_VALID)
5026	bne	1b
5027
50282:	ldr	r2,=AD_ADDR_MASK
5029	and	r0,r0,r2
5030	bx	lr
5031END(ai_get_slave)
5032
5033
5034/*
5035 * Find the first wrapper address for a core in the AI EROM
5036 * Input:
5037 *	r1 - pointer to EROM after first slave ADD
5038 * Output:
5039 *	r0 - wrapper address
5040 * Changed:
5041 *	r0, r1, r2, r3
5042 */
5043FUNC(ai_get_wrapper)
50441:	ldr	r0,[r1]
5045	ldr	r2,=(ER_TAG | ER_VALID)
5046	add	r1,r1,#4			/* Next erom entry */
5047	and	r2,r2,r0
5048	cmp	r2,#(ER_ADD | ER_VALID)
5049	bne	1b
5050
5051	/* An address descriptor, is it a wrapper? */
5052	ldr	r2,=AD_ST_SWRAP			/* We test just for the SWRAP bit set, */
5053	tst	r0,r2				/*  that gets both Master and Slave */
5054	beq	1b				/*  wrappers. */
5055
5056	/* It is, isolate address and return */
5057	ldr	r2,=AD_ADDR_MASK
5058	and	r0,r0,r2
5059	bx	lr
5060END(ai_get_wrapper)
5061
5062
5063/* Interrupt handlers */
5064/* Note: hndrte_arm.c for EXT_CBALL expects each trap handler to be 16 bytes */
5065LEAF(__traps)
5066
5067/* Undefined instruction exception handler */
5068tr_und:
5069	srsdb	sp!, #PS_SYS	/* use system mode stack */
5070	cps	#PS_SYS
5071
5072	/* now cr4 is in system mode */
5073	/* lr has the value before the exception, push it to stack */
5074	push 	{r0}	/* hold the place for r15 */
5075	push	{lr}
5076	sub	sp,sp,#24	/* skip r8-r13 now */
5077	push 	{r0-r7}	/* save r0-r7 to the stack */
5078	eor	r0,r0,r0
5079	add	r0,r0,#TR_UND
5080	b	trap
5081
5082/* Software interrupt exception handler */
5083tr_swi:
5084	srsdb	sp!, #PS_SYS	/* use system mode stack */
5085	cps	#PS_SYS
5086
5087	push 	{r0}	/* hold the place for r15 */
5088	push	{lr}
5089	sub	sp,sp,#24	/* skip r8-r13 now */
5090	push 	{r0-r7}
5091	eor	r0,r0,r0
5092	add	r0,r0,#TR_SWI
5093	b	trap
5094
5095/* Prefetch abort exception handler */
5096tr_iab:
5097	/* adjust lr to the address of abort insturction fetch */
5098	mov 	sp,lr
5099	sub	sp,sp,#4
5100	mov 	lr,sp
5101	srsdb	sp!, #PS_SYS	/* use system mode stack */
5102	cps	#PS_SYS
5103
5104	push 	{r0}	/* hold the place for r15 */
5105	push	{lr}
5106	sub	sp,sp,#24	/* skip r8-r13 now */
5107	push 	{r0-r7}
5108	eor	r0,r0,r0
5109	add	r0,r0,#TR_IAB
5110	b	trap
5111
5112/* Data abort exception handler */
5113tr_dab:
5114	/* adjust lr to the address of aborted data fetch */
5115	mov 	sp,lr
5116	sub	sp,sp,#8
5117	mov 	lr,sp
5118	srsdb	sp!, #PS_SYS	/* use system mode stack */
5119	cps	#PS_SYS
5120
5121	push 	{r0}	/* hold the place for r15 */
5122	push	{lr}
5123	sub	sp,sp,#24	/* skip r8-r13 now */
5124	push 	{r0-r7}
5125	eor	r0,r0,r0
5126	add	r0,r0,#TR_DAB
5127	b	trap
5128
5129tr_bad: /* reserved */
5130	mov 	sp,lr
5131	sub	sp,sp,#4
5132	mov 	lr,sp
5133	srsdb	sp!, #PS_SYS	/* use system mode stack */
5134	cps	#PS_SYS
5135
5136	push 	{r0}	/* hold the place for r15 */
5137	push	{lr}
5138	sub	sp,sp,#24	/* skip r8-r13 now */
5139	push 	{r0-r7}
5140	eor	r0,r0,r0
5141	add	r0,r0,#TR_BAD
5142	b	trap
5143
5144/* Interrupt handler */
5145tr_irq:
5146	/* subtract the offset */
5147	mov 	sp,lr
5148	sub	sp,sp,#4
5149	mov 	lr,sp
5150	srsdb	sp!, #PS_SYS	/* use system mode stack */
5151	cps	#PS_SYS
5152
5153	push 	{r0}	/* hold the place for r15 */
5154	push	{lr}
5155	sub	sp,sp,#24	/* skip r8-r13 now */
5156	push 	{r0-r7}
5157	eor	r0,r0,r0
5158	add	r0,r0,#TR_IRQ
5159	b	trap
5160
5161
5162/* Fast interrupt handler */
5163tr_fiq:
5164	mov 	sp,lr
5165	sub	sp,sp,#4
5166	mov 	lr,sp
5167	srsdb	sp!, #PS_SYS	/* use system mode stack */
5168	cps	#PS_SYS
5169
5170	push 	{r0}	/* hold the place for r15 */
5171	push	{lr}
5172	sub	sp,sp,#24	/* skip r8-r13 now */
5173	push 	{r0-r7}
5174	eor	r0,r0,r0
5175	add	r0,r0,#TR_FIQ
5176	b	trap
5177
5178/* Generic exception handler */
5179trap:
5180	/*
5181	 * construt the trap structure in system mode stack
5182	*/
5183	/* save trap type, epc, cpsr and spsr */
5184	mov 	r4, sp	/* sp is now at r0 */
5185	add	r4,r4,#64
5186	ldmia	r4!, {r1,r3} /* r1<-epc, r3<-spsr */
5187	mrs	r2, cpsr
5188	push	{r0,r1,r2,r3}	/* trap type(r0), epc(r1), cpsr,spsr */
5189
5190	/* fix the value of pc in trap structure */
5191	sub	r4,r4,#12
5192	str	r1,[r4]	/* save the value or epc as r15 into the stack */
5193
5194	/* save r8 - r13 */
5195	mov 	r7,sp	/* sp is at the being of the trap structure now */
5196	add	r7,r7,#TRAP_T_SIZE + 8	/* sp value before the exception */
5197	mov 	r6,r12
5198	mov	r5,r11
5199	mov	r4,r10
5200	mov	r3,r9
5201	mov	r2,r8
5202	add	sp,sp,#72 /* move sp to r14 */
5203	push	{r2-r7}	/* save r8-r13 to stack */
5204
5205	sub	sp,sp,#48 /* move sp back to the top of trap structure */
5206
5207	/* If trap_hook is null, go to the end */
5208	ldr	r4,=trap_hook
5209	ldr	r4,[r4]
5210	cmp	r4,#0
52111:	beq	1b
5212	/* else call (*trap_hook)(trap_t) */
5213	mov	r0,sp
5214	blx	r4
5215
5216/* Restore the state from the trap_t */
5217rfe:
5218	/* pop r8-r14 */
5219	add	sp,sp,#48
5220	pop	{r0-r6} /* r8 - r14 */
5221	mov	r8,r0
5222	mov	r9,r1
5223	mov	r10,r2
5224	mov	r11,r3
5225	mov	r12,r4
5226	mov	lr,r6	/* restore lr */
5227
5228	sub	sp,sp,#60 /* move sp to point to r0 */
5229	pop	{r0-r7}
5230
5231	/* move sp to point to epc and spsr saved by srs */
5232	add	sp,sp,#32
5233
5234	/* Restore cpsr, sp and return */
5235	rfeia	sp!	/* done! */
5236END(__traps)
5237
5238FUNC(_getticks)
5239	mrc	p15,0,r0,c9,c13,0
5240	bx	lr
5241END(_getticks)
5242
5243/* Flush the whole D-cache */
5244cpu_flush_dcache_all:
5245	mrc	p15, 1, r0, c0, c0, 1		@ read clidr
5246	ands	r3, r0, #0x7000000		@ extract loc from clidr
5247	mov	r3, r3, lsr #23			@ left align loc bit field
5248	beq	finished			@ if loc is 0, then no need to clean
5249	mov	r10, #0				@ start clean at cache level 0
5250loop1:
5251	add	r2, r10, r10, lsr #1		@ work out 3x current cache level
5252	mov	r1, r0, lsr r2			@ extract cache type bits from clidr
5253	and	r1, r1, #7			@ mask of the bits for current cache only
5254	cmp	r1, #2				@ see what cache we have at this level
5255	blt	skip				@ skip if no cache, or just i-cache
5256	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
5257	mcr	p15, 0, r10, c7, c5, 4		@ flush prefetch buffer,
5258						@ with armv7 this is 'isb',
5259						@ but we compile with armv5
5260	mrc	p15, 1, r1, c0, c0, 0		@ read the new csidr
5261	and	r2, r1, #7			@ extract the length of the cache lines
5262	add	r2, r2, #4			@ add 4 (line length offset)
5263	ldr	r4, =0x3ff
5264	ands	r4, r4, r1, lsr #3		@ find maximum number on the way size
5265	clz	r5, r4				@ find bit position of way size increment
5266	ldr	r7, =0x7fff
5267	ands	r7, r7, r1, lsr #13		@ extract max number of the index size
5268loop2:
5269	mov	r9, r4				@ create working copy of max way size
5270loop3:
5271	orr	r11, r10, r9, lsl r5		@ factor way and cache number into r11
5272	orr	r11, r11, r7, lsl r2		@ factor index number into r11
5273	mcr	p15, 0, r11, c7, c14, 2		@ clean & invalidate by set/way
5274	subs	r9, r9, #1			@ decrement the way
5275	bge	loop3
5276	subs	r7, r7, #1			@ decrement the index
5277	bge	loop2
5278skip:
5279	add	r10, r10, #2			@ increment cache number
5280	cmp	r3, r10
5281	bgt	loop1
5282finished:
5283	mov	r10, #0				@ swith back to cache level 0
5284	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
5285	mcr	p15, 0, r10, c7, c5, 4		@ flush prefetch buffer,
5286						@ with armv7 this is 'isb',
5287						@ but we compile with armv5
5288	mov	pc, lr
5289
5290FUNC(cpu_flush_cache_all)
5291	stmfd	sp!, {r0-r7, r9-r11, lr}
5292	bl	cpu_flush_dcache_all
5293	mov	r0, #0
5294	mcr	p15, 0, r0, c7, c5, 0		@ I+BTB cache invalidate
5295	ldmfd	sp!, {r0-r7, r9-r11, lr}
5296	mov	pc, lr
5297END(cpu_flush_cache_all)
5298
5299/* Invalidate the whole D-cache */
5300cpu_inv_dcache_all:
5301	mrc	p15, 1, r0, c0, c0, 1		@ read clidr
5302	ands	r3, r0, #0x7000000		@ extract loc from clidr
5303	mov	r3, r3, lsr #23			@ left align loc bit field
5304	beq	invfinished			@ if loc is 0, then no need to clean
5305	mov	r10, #0				@ start clean at cache level 0
5306invloop1:
5307	add	r2, r10, r10, lsr #1		@ work out 3x current cache level
5308	mov	r1, r0, lsr r2			@ extract cache type bits from clidr
5309	and	r1, r1, #7			@ mask of the bits for current cache only
5310	cmp	r1, #2				@ see what cache we have at this level
5311	blt	invskip				@ skip if no cache, or just i-cache
5312	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
5313	mcr	p15, 0, r10, c7, c5, 4		@ flush prefetch buffer,
5314						@ with armv7 this is 'isb',
5315						@ but we compile with armv5
5316	mrc	p15, 1, r1, c0, c0, 0		@ read the new csidr
5317	and	r2, r1, #7			@ extract the length of the cache lines
5318	add	r2, r2, #4			@ add 4 (line length offset)
5319	ldr	r4, =0x3ff
5320	ands	r4, r4, r1, lsr #3		@ find maximum number on the way size
5321	clz	r5, r4				@ find bit position of way size increment
5322	ldr	r7, =0x7fff
5323	ands	r7, r7, r1, lsr #13		@ extract max number of the index size
5324invloop2:
5325	mov	r9, r4				@ create working copy of max way size
5326invloop3:
5327	orr	r11, r10, r9, lsl r5		@ factor way and cache number into r11
5328	orr	r11, r11, r7, lsl r2		@ factor index number into r11
5329	mcr	p15, 0, r11, c7, c6, 2		@ invalidate by set/way
5330	subs	r9, r9, #1			@ decrement the way
5331	bge	invloop3
5332	subs	r7, r7, #1			@ decrement the index
5333	bge	invloop2
5334invskip:
5335	add	r10, r10, #2			@ increment cache number
5336	cmp	r3, r10
5337	bgt	invloop1
5338invfinished:
5339	mov	r10, #0				@ swith back to cache level 0
5340	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
5341	mcr	p15, 0, r10, c7, c5, 4		@ flush prefetch buffer,
5342						@ with armv7 this is 'isb',
5343						@ but we compile with armv5
5344	mov	pc, lr
5345
5346FUNC(cpu_inv_cache_all)
5347	stmfd	sp!, {r0-r7, r9-r11, lr}
5348	bl	cpu_inv_dcache_all
5349	mov	r0, #0
5350	mcr	p15, 0, r0, c7, c5, 0		@ I+BTB cache invalidate
5351	ldmfd	sp!, {r0-r7, r9-r11, lr}
5352	mov	pc, lr
5353END(cpu_inv_cache_all)
5354
5355/* Dummy function just for link happy */
5356FUNC(raise)
5357
5358	mov	r0, #0
5359	mov pc, lr
5360
5361END(raise)
5362
5363FUNC(__aeabi_unwind_cpp_pr0)
5364
5365	mov pc, lr
5366
5367END(__aeabi_unwind_cpp_pr0)
5368
5369/*
5370 * Common code/data start here...
5371 */
5372#ifdef CONFIG_XIP
5373	.data
5374#endif
5375
5376	DW(_memsize, 0)
5377
5378/* C trap handler */
5379	DW(trap_hook, 0)
5380
5381#ifdef	CONFIG_XIP
5382	.text
5383#endif
5384
5385#ifdef _CFE_
5386
5387/*
5388 * Setup the trap handler.
5389 */
5390FUNC(hndrte_set_trap)
5391
5392	ldr	r2,=trap_hook
5393	ldr	r1,[r2]
5394	str	r0,[r2]
5395	mov	r0,r1
5396	bx	lr
5397
5398END(hndrte_set_trap)
5399
5400/*
5401 * Turn remap off and then jump to an given address
5402 */
5403FUNC(arm_jumpto)
5404
5405	bx	r0
5406
5407END(arm_jumpto)
5408
5409/*  *********************************************************************
5410    *  CFE_FLUSHCACHE
5411    *
5412    *  Perform certain cache operations
5413    *
5414    *  Input parameters:
5415    *  	   a0 - flags (CFE_CACHE_xxx flags, or zero for a default)
5416    *      a1,a2 - start/end of range for "range invalidate" operations
5417    *      (not used otherwise)
5418    *
5419    *  Return value:
5420    *  	   nothing
5421    ********************************************************************* */
5422
5423FUNC(_cfe_flushcache)
5424
5425#ifndef CFG_UNCACHED
5426	mov	ip,lr			/* save lr across calls */
5427	bl	cpu_flush_cache_all
5428	mov	lr,ip			/* restore lr */
5429#endif
5430
5431	mov pc, lr
5432
5433
5434END(_cfe_flushcache)
5435
5436#
5437# arguments: r0=start, r1=size
5438#
5439FUNC(_cfe_flushcache_rang)
5440
5441	mrc	p15, 1, r3, c0, c0, 0	@ read CSIDR
5442	and	r3, r3, #7				@ cache line size encoding
5443	mov	r2, #16					@ size offset
5444	mov	r2, r2, lsl r3			@ actual cache line size
5445
5446	sub	r3, r2, #1
5447	bic	r0, r0, r3
54481:
5449	mcr	p15, 0, r0, c7, c10, 1		@ clean D / U line
5450	add	r0, r0, r2
5451	cmp	r0, r1
5452	blo	1b
5453#	dsb
5454	mcr	p15, 0, r10, c7, c5, 4		@ flush prefetch buffer,
5455						@ with armv7 this is 'isb',
5456						@ but we compile with armv5
5457	mov	pc, lr
5458
5459END(_cfe_flushcache_rang)
5460
5461/*  *********************************************************************
5462    *  CFE_LAUNCH
5463    *
5464    *  Start the user program.  The program is passed a handle
5465    *  that must be passed back when calling the firmware.
5466    *
5467    *  Parameters passed to the called program are as follows:
5468    *
5469    *      a0 - CFE handle
5470    *      a1 - entry vector
5471    *      a2 - reserved, will be 0
5472    *      a3 - entrypoint signature.
5473    *
5474    *  Input parameters:
5475    *  	   a0 - entry vector
5476    *
5477    *  Return value:
5478    *  	   does not return
5479    ********************************************************************* */
5480
5481FUNC(cfe_launch)
5482
5483	sub  sp,sp,#8
5484	push {r0}
5485
5486	/*
5487	 * Mask all interrupts.
5488	 */
5489
5490	mrs	r0,cpsr
5491	ldr	r1,=(PS_I | PS_F)
5492	orr	r0,r0,r1
5493	msr	cpsr,r0
5494
5495	/*
5496	 * Flush the D-Cache, since the program we loaded is "data".
5497	 * Invalidate the I-Cache, so that addresses in the program
5498	 * region will miss and need to be filled from the data we
5499	 * just flushed above.
5500	 */
5501
5502	bl _cfe_flushcache
5503
5504	/*
5505	 * Disable the D-Cache, MMU and I-Cache bit
5506	 */
5507
5508	mrc	p15,0,r0,c1,c0,0	@ read SCTLR
5509	bic	r0,r0,#4			@ disable D-Cache
5510	bic	r0,r0,#1			@ disable MMU
5511	bic	r0,r0,#1000			@ disable I-Cache
5512	mcr	p15,0,r0,c1,c0,0
5513
5514	/*
5515	 * Set things up for launching the program.  Pass the
5516	 * handle in A0 - apps need to remember that and pass it
5517	 * back.
5518	 */
5519	b RunProgram
5520
5521END(cfe_launch)
5522
5523/*
5524 * This is a nice place to set a breakpoint.
5525 */
5526FUNC(RunProgram)
5527
5528	LOADREL(r2,=segment_table)
5529	ldr r2,[r2,#R_SEG_APIENTRY]	/* A2 = code entry */
5530
5531#if CFG_EMBEDDED_PIC
5532	ldr r1,mem_textreloc	/* relocate table entry */
5533	add r2,r2,r1
5534#endif
5535
5536	mov r4,r0
5537	mov r1,#0		/* A1 = 0 */
5538	mov r0,#0		/* A0 = handle */
5539	ldr r3,=CFE_EPTSEAL  /* A3 = entrypoint signature */
5540	pop {r4}		/* entry point */
5541
5542	/* Check if the MERGE_FRAG function should execute or not,
5543	 * according to the information within structure cfe_frag_info_t.
5544	 * _frag_info_sz is the size of structure cfe_frag_info_t.
5545	 * Structure cfe_frag_info_t is stored right before MERGE_FRAG function, and
5546	 * MERGE_FRAG function is stored right before entry point.
5547	 * Note: {r0-r4} must be preserved
5548	 */
5549	ldr r7, =_frag_merge_func_len
5550	ldr r6, [r7]
5551	ldr r8, =_frag_info_sz
5552	ldr r7, [r8]
5553	add r6, r6, r7
5554	sub r5, r4, r6
5555	ldr r6, [r5]
5556	cmp r6, #0
5557	beq do_run
5558	mov pc, r6	/* Go to _merge_func */
5559do_run:
5560	mov pc, r4		/* go for it. */
5561END(RunProgram)
5562
5563
5564	.globl _frag_merge_func
5565_frag_merge_func:
5566	.word _merge_func
5567
5568	.globl _frag_merge_func_len
5569_frag_merge_func_len:
5570	.word _merge_func_end - _merge_func
5571
5572       .globl _frag_info_sz
5573_frag_info_sz:
5574	.word   0
5575
5576/* This merge_func will relocate at address which is stored at MERGE_FRAG.
5577 * It will reference the value which is stored at MERGE_FRAG.
5578 * There are the merge_func pointer, des_addr, src_addr and length.
5579 * r4 is the entry point, r0-r3 are the parameters for the image.
5580 * r5 is the address of MERGE_FRAG
5581 */
5582FUNC(_merge_func)
5583	ldmia	r5, {r9-r12}
55841:
5585	ldmia	r11!, {r7-r8}			@ copy 8 bytes from the memory at r11 address
5586	stmia	r10!, {r7-r8}			@ store 8 bytes to the memory at r10 address
5587						@ r12 is the length, each loop copy 8 bytes
5588	subs	r12, r12, #8			@ adjust the length
5589	bgt	1b
5590
5591	mov	pc, r4				@ jump to the entry point
5592_merge_func_end:
5593END(_merge_func)
5594
5595/*  *********************************************************************
5596    *  BOARD_SETLEDS(x)
5597    *
5598    *  Set LEDs for boot-time progress indication.  Not used if
5599    *  the board does not have progress LEDs.  This routine
5600    *  must not call any other routines, since it may be invoked
5601    *  either from KSEG0 or KSEG1 and it may be invoked
5602    *  whether or not the icache is operational.
5603    *
5604    *  Input parameters:
5605    *  	   a0 - LED value (8 bits per character, 4 characters)
5606    *
5607    *  Return value:
5608    *  	   nothing
5609    ********************************************************************* */
5610FUNC(board_setleds)
5611
5612	mov	pc, lr			@ back to my caller
5613
5614END(board_setleds)
5615
5616/*  *********************************************************************
5617    *  CFE_LEDS
5618    *
5619    *  Set the on-board LEDs.
5620    *
5621    *  Input parameters:
5622    *  	   a0 - LEDs
5623    *
5624    *  Return value:
5625    *  	   nothing
5626    ********************************************************************* */
5627FUNC(cfe_leds)
5628
5629	/* jump to BSP routine */
5630	//bl	board_setleds
5631
5632	/* return */
5633	mov	pc, lr
5634
5635END(cfe_leds)
5636
5637/*  *********************************************************************
5638    *  _GETSEGTBL()
5639    *
5640    *  Return the address of the segment table.  We use this
5641    *  to display the startup messages.
5642    *
5643    *  You can't just address the table from C because it lives
5644    *  in the text segment.
5645    *
5646    *  Input parameters:
5647    *  	   nothing
5648    *
5649    *  Return value:
5650    *      address of table
5651    ********************************************************************* */
5652
5653FUNC(_getsegtbl)
5654
5655	mov	ip, lr		/* persevere link reg across call */
5656	LOADREL(r0,=segment_table)
5657	mov	lr, ip		/* restore link */
5658	mov pc, lr		/* back to my caller */
5659
5660END(_getsegtbl)
5661
5662/*  *********************************************************************
5663    *  _SETCONTEXT()
5664    *
5665    *  Set the CONTEXT register.
5666    *
5667    *  Input parameters:
5668    *  	   a0 - context
5669    *
5670    *  Return value:
5671    *  	   nothing
5672    ********************************************************************* */
5673
5674FUNC(_setcontext)
5675
5676	mov	pc,lr
5677
5678END(_setcontext)
5679
5680/*  *********************************************************************
5681    *  CFE_WARMSTART
5682    *
5683    *  Restart the command interpreter
5684    *
5685    *  Input parameters:
5686    *      A0 - command status
5687    *  	   nothing (GP has already been set up for us)
5688    *
5689    *  Return value:
5690    *  	   nothing
5691    ********************************************************************* */
5692
5693FUNC(cfe_warmstart)
5694
5695	mov	pc,lr
5696
5697END(cfe_warmstart)
5698
5699#endif /* _CFE_ */
5700