mirror of
https://github.com/lowRISC/ibex.git
synced 2025-06-29 01:33:09 -04:00
78 lines
1.7 KiB
Text
78 lines
1.7 KiB
Text
/* Copyright lowRISC contributors.
|
|
Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
OUTPUT_ARCH(riscv)
|
|
|
|
MEMORY
|
|
{
|
|
/* 992 kB should be enough for anybody... */
|
|
ram : ORIGIN = 0x00100000, LENGTH = 0xF8000 /* 992 kB */
|
|
stack : ORIGIN = 0x001F8000, LENGTH = 0x8000 /* 32 kB */
|
|
}
|
|
|
|
/* Stack information variables */
|
|
_min_stack = 0x2000; /* 8K - minimum stack space to reserve */
|
|
_stack_len = LENGTH(stack);
|
|
_stack_start = ORIGIN(stack) + LENGTH(stack);
|
|
|
|
_entry_point = _vectors_start + 0x80;
|
|
ENTRY(_entry_point)
|
|
|
|
/* The tohost address is used by Spike for a magic "stop me now" message. This
|
|
is set to equal SIM_CTRL_CTRL (see simple_system_regs.h), which has that
|
|
effect in simple_system simulations. Note that it must be 8-byte aligned.
|
|
|
|
We don't read data back from Spike, so fromhost is set to some dummy value:
|
|
we place it just above the top of the stack.
|
|
*/
|
|
tohost = 0x20008;
|
|
fromhost = _stack_start + 0x10;
|
|
|
|
SECTIONS
|
|
{
|
|
.vectors :
|
|
{
|
|
. = ALIGN(4);
|
|
_vectors_start = .;
|
|
KEEP(*(.vectors))
|
|
_vectors_end = .;
|
|
} > ram
|
|
|
|
.text : {
|
|
. = ALIGN(4);
|
|
*(.text)
|
|
*(.text.*)
|
|
} > ram
|
|
|
|
.rodata : {
|
|
. = ALIGN(4);
|
|
*(.rodata);
|
|
*(.rodata.*)
|
|
} > ram
|
|
|
|
.data : {
|
|
. = ALIGN(4);
|
|
*(.data);
|
|
*(.data.*)
|
|
} > ram
|
|
|
|
.bss :
|
|
{
|
|
. = ALIGN(4);
|
|
_bss_start = .;
|
|
*(.bss)
|
|
*(.bss.*)
|
|
*(COMMON)
|
|
_bss_end = .;
|
|
} > ram
|
|
|
|
/* ensure there is enough room for stack */
|
|
.stack (NOLOAD): {
|
|
. = ALIGN(4);
|
|
. = . + _min_stack ;
|
|
. = ALIGN(4);
|
|
stack = . ;
|
|
_stack = . ;
|
|
} > stack
|
|
}
|