1//  Memory map file to generate linker scripts for programs to run on
2//  most targets (that have the OCD option); allows I/O through the host
3//  debugger when being debugged using GDB (via the Xtensa OCD daemon).
4
5// Customer ID=7187; Build=0xac168; Copyright (c) 2006-2015 Cadence Design Systems, Inc.
6//
7// Permission is hereby granted, free of charge, to any person obtaining
8// a copy of this software and associated documentation files (the
9// "Software"), to deal in the Software without restriction, including
10// without limitation the rights to use, copy, modify, merge, publish,
11// distribute, sublicense, and/or sell copies of the Software, and to
12// permit persons to whom the Software is furnished to do so, subject to
13// the following conditions:
14//
15// The above copyright notice and this permission notice shall be included
16// in all copies or substantial portions of the Software.
17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
26//  Show extra XTBOARD memory map details.
27INCLUDE_XTBOARD_MEMORIES = try
28
29
30// A memory map is a sequence of memory descriptions and
31// optional parameter assignments.
32//
33// Each memory description has the following format:
34//   BEGIN <name>
35//     <addr> [,<paddr>] : <mem-type> : <mem-name> : <size> [,<psize>]
36//                       : [writable] [,executable] [,device] ;
37//     <segment>*
38//   END <name>
39//
40// where each <segment> description has the following format:
41//     <seg-name> : F|C : <start-addr> - <end-addr> [ : STACK ] [ : HEAP ]
42//                : <section-name>* ;
43//
44// Each parameter assignment is a keyword/value pair in the following format:
45//   <keyword> = <value>                (no spaces in <value>)
46// or
47//   <keyword> = "<value>"              (spaces allowed in <value>)
48//
49// The following primitives are also defined:
50//   PLACE SECTIONS( <section-name>* ) { WITH_SECTION(<section-name>)
51//                                       | IN_SEGMENT(<seg-name>) }
52//
53//   NOLOAD <section-name1> [ <section-name2> ... ]
54//
55// Please refer to the Xtensa LSP Reference Manual for more details.
56//
57BEGIN iram0
580x500000: instRam : iram0 : 0x100000 : executable, writable ;
59 iram0_0 : C : 0x500000 - 0x57ffff : .iram0.literal .iram0.text;
60 iram0_1 : F : 0x580000 - 0x5802df : .ResetVector.text .ResetHandler.literal .ResetHandler.text;
61 iram0_2 : C : 0x5802e0 - 0x5803ff : ;
62 iram0_3 : F : 0x580400 - 0x580577 : .WindowVectors.text;
63 iram0_4 : C : 0x580578 - 0x58057b : .Level2InterruptVector.literal;
64 iram0_5 : F : 0x58057c - 0x580597 : .Level2InterruptVector.text;
65 iram0_6 : C : 0x580598 - 0x58059b : .Level3InterruptVector.literal;
66 iram0_7 : F : 0x58059c - 0x5805b7 : .Level3InterruptVector.text;
67 iram0_8 : C : 0x5805b8 - 0x5805bb : .DebugExceptionVector.literal;
68 iram0_9 : F : 0x5805bc - 0x5805d7 : .DebugExceptionVector.text;
69 iram0_10 : C : 0x5805d8 - 0x5805db : .NMIExceptionVector.literal;
70 iram0_11 : F : 0x5805dc - 0x5805f7 : .NMIExceptionVector.text;
71 iram0_12 : C : 0x5805f8 - 0x5805fb : .KernelExceptionVector.literal;
72 iram0_13 : F : 0x5805fc - 0x580617 : .KernelExceptionVector.text;
73 iram0_14 : C : 0x580618 - 0x58061b : .UserExceptionVector.literal;
74 iram0_15 : F : 0x58061c - 0x580637 : .UserExceptionVector.text;
75 iram0_16 : C : 0x580638 - 0x58063b : .DoubleExceptionVector.literal;
76 iram0_17 : F : 0x58063c - 0x580657 : .DoubleExceptionVector.text;
77 iram0_18 : C : 0x580658 - 0x5fffff : ;
78END iram0
79
80BEGIN iram1
810x600000: instRam : iram1 : 0x200000 : executable, writable ;
82 iram1_0 : C : 0x600000 - 0x7fffff : .iram1.literal .iram1.text;
83END iram1
84
85BEGIN sram
860x20000000: sysram : sram : 0x500000 : executable, writable ;
87 sram0 : C : 0x20000000 - 0x204fffff :  STACK :  HEAP : .sram.rodata .clib.rodata .rtos.rodata .rodata .sram.literal .literal .rtos.literal .clib.literal .sram.text .text .clib.text .rtos.text .clib.data .clib.percpu.data .rtos.percpu.data .rtos.data .sram.data .data __llvm_prf_names __llvm_covmap .note.gnu.build-id .clib.bss .clib.percpu.bss .rtos.percpu.bss .rtos.bss .sram.bss .bss;
88END sram
89
90BEGIN dram0
910x20500000: dataRam : dram0 : 0x100000 : writable ;
92 dram0_0 : C : 0x20500000 - 0x205fffff : .dram0.rodata .dram0.data .dram0.bss;
93END dram0
94
95BEGIN dram1
960x20600000: dataRam : dram1 : 0x200000 : writable ;
97 dram1_0 : C : 0x20600000 - 0x207fffff : .dram1.rodata .dram1.data .dram1.bss;
98END dram1
99
100BEGIN iocached
1010x70000000: io : iocached : 0xda00000 : executable, writable ;
102END iocached
103
104BEGIN rambypass
1050x80000000: sysram : rambypass : 0x10000000 : device, executable, writable ;
106END rambypass
107
108BEGIN iobypass
1090x90000000: io : iobypass : 0xda00000 : device, executable, writable ;
110END iobypass
111
112