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