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 17SECTIONS 18{ 19 /* bootloader */ 20 .bl : { 21 _BL = ABSOLUTE(.); 22 KEEP (*(.blvec) ) ; 23 KEEP (*(.blapi) ) ; 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 (NOLOAD) : { 45 46 BYTE (0xff) ; 47 48 } > code 49 50 .stack (NOLOAD) : { 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 > bl 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 77ENTRY(__blEntry) 78