summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/csb360/startup/linkcmds
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/m68k/csb360/startup/linkcmds')
-rw-r--r--c/src/lib/libbsp/m68k/csb360/startup/linkcmds149
1 files changed, 149 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/m68k/csb360/startup/linkcmds b/c/src/lib/libbsp/m68k/csb360/startup/linkcmds
new file mode 100644
index 0000000000..2ff43f115a
--- /dev/null
+++ b/c/src/lib/libbsp/m68k/csb360/startup/linkcmds
@@ -0,0 +1,149 @@
+/*
+ * This file contains GNU linker directives for the Cogent
+ * CSB360 development board.
+ *
+ * Copyright (C) 2004 Cogent Computer Systems
+ * Author: Jay Monkman <jtm@lopingdog.com>
+ *
+ * linkcmds,v 1.4 2003/01/20 20:19:50 joel Exp
+ */
+
+/*
+ * Declare size of heap.
+ * A heap size of 0 means "Use all available memory for the heap".
+ * Initial stack located in on-chip SRAM and not declared there.
+ */
+_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
+_RamSize = DEFINED(_RamSize) ? _RamSize : 31M;
+
+/* This is needed for _CPU_ISR_install_vector -
+* WARNING: it MUST match BSP_RAMBAR !!!!!!!!!!! */
+_VBR = 0x20000000;
+
+/*
+ * Setup the memory map of the CSB360 board
+ *
+ * The "ram" section is placed in RAM after the space used by umon.
+ *
+ */
+MEMORY
+{
+ ram : ORIGIN = 0x00100000, LENGTH = 31M
+}
+
+SECTIONS
+{
+
+ /*
+ * Text, data and bss segments
+ */
+ .text :
+ {
+ _RamBase = .;
+ __RamBase = .;
+ CREATE_OBJECT_SYMBOLS
+ *(.text)
+
+ /*
+ * C++ constructors/destructors
+ */
+ *(.gnu.linkonce.t.*)
+
+ /*
+ * Initialization and finalization code.
+ */
+ . = ALIGN (16);
+ PROVIDE (_init = .);
+ *crti.o(.init)
+ *(.init)
+ *crtn.o(.init)
+ . = ALIGN (16);
+ PROVIDE (_fini = .);
+ *crti.o(.fini)
+ *(.fini)
+ *crtn.o(.fini)
+
+ /*
+ * Special FreeBSD sysctl sections.
+ */
+ . = ALIGN (16);
+ __start_set_sysctl_set = .;
+ *(set_sysctl_*);
+ __stop_set_sysctl_set = ABSOLUTE(.);
+ *(set_domain_*);
+ *(set_pseudo_*);
+
+ /*
+ * C++ constructors/destructors
+ */
+ . = ALIGN (16);
+ *crtbegin.o(.ctors)
+ *(.ctors)
+ *crtend.o(.ctors)
+ *crtbegin.o(.dtors)
+ *(.dtors)
+ *crtend.o(.dtors)
+
+ /*
+ * Exception frame info
+ */
+ . = ALIGN (16);
+ *(.eh_frame)
+
+ /*
+ * Read-only data
+ */
+ . = ALIGN (16);
+ _rodata_start = .;
+ *(.rodata*)
+ *(.gnu.linkonce.r*)
+
+ . = ALIGN (16);
+ PROVIDE (etext = .);
+
+ } > ram
+
+ .data :
+ {
+ copy_start = .;
+ *(.shdata)
+ . = ALIGN (0x10);
+ *(.data)
+ . = ALIGN (0x10);
+ *(.gcc_exc)
+ *(.gcc_except_table)
+ *(.jcr)
+ . = ALIGN (0x10);
+ *(.gnu.linkonce.d*)
+ . = ALIGN (0x10);
+ _edata = .;
+ copy_end = .;
+ } > ram
+
+ .bss :
+ {
+ clear_start = . ;
+ *(.shbss)
+ *(.bss)
+ *(COMMON)
+ . = ALIGN(0x10);
+ _end = .;
+
+ clear_end = .;
+
+ _WorkspaceBase = .;
+ __WorkspaceBase = .;
+
+ } > ram
+
+ .stab 0 (NOLOAD) :
+ {
+ *(.stab)
+ }
+
+ .stabstr 0 (NOLOAD) :
+ {
+ *(.stabstr)
+ }
+
+}