OpenCores
URL https://opencores.org/ocsvn/darkriscv/darkriscv/trunk

Subversion Repositories darkriscv

[/] [darkriscv/] [trunk/] [src/] [darksocv.ld.src] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 marcelos
/* Copyright (c) 2018, Marcelo Samsoniuk
2
 * All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions are met:
6
 *
7
 * * Redistributions of source code must retain the above copyright notice, this
8
 *   list of conditions and the following disclaimer.
9
 *
10
 * * Redistributions in binary form must reproduce the above copyright notice,
11
 *   this list of conditions and the following disclaimer in the documentation
12
 *   and/or other materials provided with the distribution.
13
 *
14
 * * Neither the name of the copyright holder nor the names of its
15
 *   contributors may be used to endorse or promote products derived from
16
 *   this software without specific prior written permission.
17
 *
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 */
29
 
30
/*
31
    Memory Architectures:
32
 
33
        - Harvard: separate instruction (ROM) and data (RAM), has the
34
          advantage that is possible make the ROM memory readonly, in a way
35
          that bugs in the code cannot destruct the code.  Also, the use of
36
          separate ROM and RAM makes possible share the dual-port ROM and/or
37
          RAM between two cores.
38
 
39
        - Von Neumann: unified instruction and data in a single memory
40
          (MEM), has the advantage that the .text and .data are contigous
41
          and without gaps, which means that the memory is better utilized.
42
          However, as long there is no physical separation, a bug in the
43
          code can destroy both data and code.  Also, as long both ports of
44
          the dual-port MEM is already in use, there is no way to share to
45
          more than one core.
46
*/
47
 
48
MEMORY
49
{
50
    IO  (rw!x) : ORIGIN = 0x80000000, LENGTH = 0x10
51
#if HARVARD
52
    ROM (x!rw) : ORIGIN = 0x00000000, LENGTH = 0x1000
53
    RAM (rw!x) : ORIGIN = 0x00001000, LENGTH = 0x1000
54
#else
55
    MEM (rwx)  : ORIGIN = 0x00000000, LENGTH = 0x2000
56
#endif
57
}
58
 
59
SECTIONS
60
{
61
    .io :
62
    {
63
        io.o(COMMON)
64
 
65
    } > IO
66
 
67
    .text :
68
    {
69
        boot.o(.text)
70
        *(.text)
71
#if HARVARD
72
    } > ROM
73
#else
74
    } > MEM
75
#endif
76
    .data :
77
    {
78
        *(.sbss)
79
        *(.rodata*)
80
        *(.data)
81
        *(.bss)
82
        *(.rela*)
83
        *(COMMON)
84
#if HARVARD
85
    } > RAM
86
#else
87
    } > MEM
88
#endif
89
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.