1a2847172SGrzegorz Jaszczyk/* 2a2847172SGrzegorz Jaszczyk * Copyright (C) 2018 Marvell International Ltd. 3a2847172SGrzegorz Jaszczyk * 4a2847172SGrzegorz Jaszczyk * SPDX-License-Identifier: BSD-3-Clause 5a2847172SGrzegorz Jaszczyk * https://spdx.org/licenses 6a2847172SGrzegorz Jaszczyk */ 7a2847172SGrzegorz Jaszczyk 8a2847172SGrzegorz Jaszczyk#include <platform_def.h> 9a2847172SGrzegorz Jaszczyk 10a2847172SGrzegorz JaszczykOUTPUT_FORMAT(PLATFORM_LINKER_FORMAT) 11a2847172SGrzegorz JaszczykOUTPUT_ARCH(PLATFORM_LINKER_ARCH) 12a2847172SGrzegorz JaszczykENTRY(ble_main) 13a2847172SGrzegorz Jaszczyk 14a2847172SGrzegorz JaszczykMEMORY { 15a2847172SGrzegorz Jaszczyk RAM (rwx): ORIGIN = BLE_BASE, LENGTH = BLE_LIMIT - BLE_BASE 16a2847172SGrzegorz Jaszczyk} 17a2847172SGrzegorz Jaszczyk 18a2847172SGrzegorz JaszczykSECTIONS 19a2847172SGrzegorz Jaszczyk{ 20a2847172SGrzegorz Jaszczyk . = BLE_BASE; 21a2847172SGrzegorz Jaszczyk 22*da04341eSChris Kay .ro . : { 23a2847172SGrzegorz Jaszczyk __RO_START__ = .; 24a2847172SGrzegorz Jaszczyk *ble_main.o(.entry*) 25a2847172SGrzegorz Jaszczyk *(.text*) 26a2847172SGrzegorz Jaszczyk *(.rodata*) 27a2847172SGrzegorz Jaszczyk __RO_END_UNALIGNED__ = .; 28a2847172SGrzegorz Jaszczyk __RO_END__ = .; 29a2847172SGrzegorz Jaszczyk } >RAM 30a2847172SGrzegorz Jaszczyk 31a2847172SGrzegorz Jaszczyk /* 32a2847172SGrzegorz Jaszczyk * Define a linker symbol to mark start of the RW memory area for this 33a2847172SGrzegorz Jaszczyk * image. 34a2847172SGrzegorz Jaszczyk */ 35a2847172SGrzegorz Jaszczyk __RW_START__ = . ; 36a2847172SGrzegorz Jaszczyk 37a2847172SGrzegorz Jaszczyk .data . : { 38a2847172SGrzegorz Jaszczyk __DATA_START__ = .; 39a2847172SGrzegorz Jaszczyk *(.data*) 40a2847172SGrzegorz Jaszczyk __DATA_END__ = .; 41a2847172SGrzegorz Jaszczyk } >RAM 42a2847172SGrzegorz Jaszczyk 43*da04341eSChris Kay .stacks . (NOLOAD) : { 44a2847172SGrzegorz Jaszczyk __STACKS_START__ = .; 45*da04341eSChris Kay *(.tzfw_normal_stacks) 46a2847172SGrzegorz Jaszczyk __STACKS_END__ = .; 47a2847172SGrzegorz Jaszczyk } >RAM 48a2847172SGrzegorz Jaszczyk 49a2847172SGrzegorz Jaszczyk .bss : { 50a2847172SGrzegorz Jaszczyk __BSS_START__ = .; 51a2847172SGrzegorz Jaszczyk *(.bss*) 52a2847172SGrzegorz Jaszczyk __BSS_END__ = .; 53a2847172SGrzegorz Jaszczyk } >RAM 54a2847172SGrzegorz Jaszczyk 55a2847172SGrzegorz Jaszczyk /* 56a2847172SGrzegorz Jaszczyk * Extend the BLE binary to the maximum size allocated for it in platform 57a2847172SGrzegorz Jaszczyk * definition files and prevent overlapping between BLE BSS section and 58a2847172SGrzegorz Jaszczyk * additional extensions that can follow the BLE in flash image preamble. 59a2847172SGrzegorz Jaszczyk * This situation happens for instance when secure extension is added to 60a2847172SGrzegorz Jaszczyk * the image preamble. 61a2847172SGrzegorz Jaszczyk */ 62a2847172SGrzegorz Jaszczyk .fill LOADADDR(.bss) + SIZEOF(.bss) : { 63a2847172SGrzegorz Jaszczyk FILL(0xDEADC0DE); 64a2847172SGrzegorz Jaszczyk . = ORIGIN(RAM) + LENGTH(RAM) - 1; 65a2847172SGrzegorz Jaszczyk BYTE(0x00) 66a2847172SGrzegorz Jaszczyk } >RAM 67a2847172SGrzegorz Jaszczyk 68a2847172SGrzegorz Jaszczyk /* 69a2847172SGrzegorz Jaszczyk * Define a linker symbol to mark end of the RW memory area for this 70a2847172SGrzegorz Jaszczyk * image. 71a2847172SGrzegorz Jaszczyk */ 72a2847172SGrzegorz Jaszczyk __RW_END__ = .; 73a2847172SGrzegorz Jaszczyk __BLE_END__ = .; 74a2847172SGrzegorz Jaszczyk 75a2847172SGrzegorz Jaszczyk __BSS_SIZE__ = SIZEOF(.bss); 76a2847172SGrzegorz Jaszczyk} 77