SharedRegion: Update to use linker symbols instead of platform map
[ipc/ipcdev.git] / packages / ti / sdo / ipc / linkcmd.xdt
1 %%{
2 /*
3  * Copyright (c) 2012-2018, Texas Instruments Incorporated
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * *  Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  * *  Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * *  Neither the name of Texas Instruments Incorporated nor the names of
18  *    its contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 %%}
34 %%{
35 /*
36  *  Add SharedRegions to the linker map when heaps are created.
37  *  This is to prevent the user from placing other code/data
38  *  in the same memory location where heaps will be created.
39  */
40 %%}
41 %var SharedRegion = xdc.module("ti.sdo.ipc.SharedRegion");
42 %var Ipc = xdc.module("ti.sdo.ipc.Ipc");
43 %
44 %var regions = SharedRegion.$object.regions;
45 %
47 % if (Program.build.target.$name.match(/ti/)) {
48 SECTIONS
49 {
50 %    for (var i=0; i < regions.length; i++) {
51 %        if ((regions[i].entry.isValid) &&
52 %            (regions[i].entry.ownerProcId != SharedRegion.DEFAULTOWNERID) &&
53 %            (SharedRegion.genSectionInLinkCmd[i])) {
54 %            var sectName = "ti.sdo.ipc.SharedRegion_" + i;
55 %            var len  = utils.toHex(Number(regions[i].entry.len));
56 %            var base = utils.toHex(Number(regions[i].entry.base));
57 %            if (Program.build.target.$name.match(/ARP32/)) {
58     `sectName`:  { . += `len`;} run > `base` PAGE 1, type = NOLOAD
59 %            }
60 %            else if ((Program.build.target.$name.match(/R5F/)) ||
61 %                     (Program.build.target.$name.match(/A53F/))) {
62 %            }
63 %            else {
64     `sectName`:  { . += `len`;} run > `base`, type = NOLOAD
65 %            }
66 %        }
67 %    }
68 %
69 %    if (Ipc.generateSlaveDataForHost &&
70 %       (Program.sectMap["ti_sdo_ipc_init"] == undefined)) {
72 %            if (Program.build.target.$name.match(/ARP32/)) {
73     ti_sdo_ipc_init: load > `Program.platform.dataMemory` PAGE 1, type = NOINIT
74 %            } else if ((Program.build.target.$name.match(/R5F/)) ||
75 %                       (Program.build.target.$name.match(/A53F/))) {
76 %            }
77 %            else {
78     ti_sdo_ipc_init: load > `Program.platform.dataMemory`, type = NOINIT
79 %            }
80 %    }
81 }
82 % }