/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ SECTIONS { /* bootloader */ .bl : { _BL = ABSOLUTE(.); KEEP (*(.blvec) ) ; KEEP (*(.blapi) ) ; *(.text) *(.text.*) ; *(.rodata) *(.rodata.*) ; . = ALIGN(4); __pubkeys_start = ABSOLUTE(.); KEEP (*(.pubkeys) ) ; __pubkeys_end = ABSOLUTE(.); . = ALIGN(4); } > bl = 0xff /* initial EEDATA contents */ .eedata : { . = ALIGN(4); KEEP (*(.eedata) ) ; . = LENGTH(eedata) - 1; /* make sure it is all full of 0xFFs */ BYTE (0xff) ; } > eedata = 0xff /* at least a byte of code is needed, or ld cannot locate "__code_start" symbol properly */ .codeplaceholder (NOLOAD) : { BYTE (0xff) ; } > code .stack (NOLOAD) : { . = ALIGN(4); __stack_bottom = ABSOLUTE(.); KEEP ( *(.stack) ); KEEP ( *(.stack.*) ); . = ALIGN(4); __stack_top = ABSOLUTE(.); } > ram .data : { . = ALIGN(4); __data_start = ABSOLUTE(.); *(.data); *(.data.*); . = ALIGN(4); __data_end = ABSOLUTE(.); } > ram AT > bl .bss : { . = ALIGN(4); __bss_start = ABSOLUTE(.); *(.bss) *(.bss.*) *(COMMON); . = ALIGN(4); __bss_end = ABSOLUTE(.); } > ram } ENTRY(__blEntry)