1/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18SECTIONS
19{
20	/* bootloader */
21	.bl : {
22		BL = ABSOLUTE(.);
23		KEEP (*(.blvec) ) ;
24		*(.text) *(.text.*) ;
25		*(.rodata) *(.rodata.*) ;
26		. = ALIGN(4);
27		 __pubkeys_start = ABSOLUTE(.);
28		KEEP (*(.pubkeys) ) ;
29		__pubkeys_end = ABSOLUTE(.);
30		. = ALIGN(4);
31	} > bl = 0xff
32
33	/* initial EEDATA contents */
34	.eedata : {
35
36		. = ALIGN(4);
37		KEEP (*(.eedata) ) ;
38		. = LENGTH(eedata) - 1; /* make sure it is all full of 0xFFs */
39                BYTE (0xff) ;
40
41	} > eedata = 0xff
42
43	/* at least a byte of code is needed, or ld cannot locate "__code_start" symbol properly */
44	.codeplaceholder : {
45
46		BYTE (0xff) ;
47
48	} > code
49
50	.stack : {
51		. = ALIGN(4);
52		__stack_bottom = ABSOLUTE(.);
53		KEEP ( *(.stack) );
54		KEEP ( *(.stack.*) );
55		. = ALIGN(4);
56		__stack_top = ABSOLUTE(.);
57	 } > ram
58
59	.data : {
60		. = ALIGN(4);
61		__data_start = ABSOLUTE(.);
62		*(.data);
63		*(.data.*);
64		. = ALIGN(4);
65		__data_end = ABSOLUTE(.);
66	 } > ram AT > code
67
68	.bss : {
69		. = ALIGN(4);
70		__bss_start = ABSOLUTE(.);
71		*(.bss) *(.bss.*) *(COMMON);
72		. = ALIGN(4);
73		__bss_end = ABSOLUTE(.);
74	} > ram
75}
76
77
78ENTRY(__BL_VECTORS)
79
80