| /* |
| * Copyright (C) 2018 Marvell International Ltd. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| * https://spdx.org/licenses |
| */ |
| |
| #include <platform_def.h> |
| |
| OUTPUT_FORMAT(PLATFORM_LINKER_FORMAT) |
| OUTPUT_ARCH(PLATFORM_LINKER_ARCH) |
| ENTRY(ble_main) |
| |
| MEMORY { |
| RAM (rwx): ORIGIN = BLE_BASE, LENGTH = BLE_LIMIT - BLE_BASE |
| } |
| |
| SECTIONS |
| { |
| . = BLE_BASE; |
| |
| ro . : { |
| __RO_START__ = .; |
| *ble_main.o(.entry*) |
| *(.text*) |
| *(.rodata*) |
| __RO_END_UNALIGNED__ = .; |
| __RO_END__ = .; |
| } >RAM |
| |
| /* |
| * Define a linker symbol to mark start of the RW memory area for this |
| * image. |
| */ |
| __RW_START__ = . ; |
| |
| .data . : { |
| __DATA_START__ = .; |
| *(.data*) |
| __DATA_END__ = .; |
| } >RAM |
| |
| stacks . (NOLOAD) : { |
| __STACKS_START__ = .; |
| *(tzfw_normal_stacks) |
| __STACKS_END__ = .; |
| } >RAM |
| |
| .bss : { |
| __BSS_START__ = .; |
| *(.bss*) |
| __BSS_END__ = .; |
| } >RAM |
| |
| /* |
| * Extend the BLE binary to the maximum size allocated for it in platform |
| * definition files and prevent overlapping between BLE BSS section and |
| * additional extensions that can follow the BLE in flash image preamble. |
| * This situation happens for instance when secure extension is added to |
| * the image preamble. |
| */ |
| .fill LOADADDR(.bss) + SIZEOF(.bss) : { |
| FILL(0xDEADC0DE); |
| . = ORIGIN(RAM) + LENGTH(RAM) - 1; |
| BYTE(0x00) |
| } >RAM |
| |
| /* |
| * Define a linker symbol to mark end of the RW memory area for this |
| * image. |
| */ |
| __RW_END__ = .; |
| __BLE_END__ = .; |
| |
| __BSS_SIZE__ = SIZEOF(.bss); |
| } |