summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/linkcmds263
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp273
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom27
3 files changed, 272 insertions, 291 deletions
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds
index 1e3b09510d..61f3b8ca63 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds
@@ -1,131 +1,132 @@
-/*
- * This file contains GNU linker directives for a generic MC68360 board.
- * Variations in memory size and allocation can be made by
- * overriding some values with linker command-line arguments.
- *
- * Saskatchewan Accelerator Laboratory
- * University of Saskatchewan
- * Saskatoon, Saskatchewan, CANADA
- * eric@skatter.usask.ca
- *
- * $Id$
- */
-
-/*
- * Declare some sizes.
- * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
- * number used there is not constant. If this happens to you, edit
- * the lines marked XXX below to use a constant value.
- */
-RamSize = DEFINED(RamSize) ? RamSize : 4M;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
-StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
-
-/*
- * Declare on-board memory.
- * It would be nice if the ram length could be given as
- * LENGTH=RamSize, but gld doesn't allow non-constant
- * values in the LENGTH expression.
- */
-MEMORY {
- ram : ORIGIN = 0x00000000, LENGTH = 64M
- rom : ORIGIN = 0x0F000000, LENGTH = 1M
- dpram : ORIGIN = 0x0E000000, LENGTH = 8k
-}
-
-/*
- * Declare low-order three octets of Ethernet address.
- */
-ETHERNET_ADDRESS = DEFINED(ETHERNET_ADDRESS) ? ETHERNET_ADDRESS : 0xDEAD12;
-
-/*
- * Load objects
- */
-SECTIONS {
- /*
- * Hardware variations
- */
- _RamSize = RamSize;
- __RamSize = RamSize;
-
- /*
- * Boot PROM
- */
- rom : {
- _RomBase = .;
- __RomBase = .;
- } >rom
-
- /*
- * Dynamic RAM
- */
- ram : {
- _RamBase = .;
- __RamBase = .;
- } >ram
-
- /*
- * Text, data and bss segments
- */
- .text : {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- . = ALIGN (16);
- etext = .;
- _etext = .;
-
- /*
- * C++ constructors
- */
- __CTOR_LIST__ = .;
- LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
- *(.ctors)
- LONG(0)
- __CTOR_END__ = .;
- __DTOR_LIST__ = .;
- LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
- *(.dtors)
- LONG(0)
- __DTOR_END__ = .;
- } >ram
- .data : {
- copy_start = .;
- *(.data)
- . = ALIGN (16);
- _edata = .;
- copy_end = .;
- } >ram
- .bss : {
- M68Kvec = .;
- _M68Kvec = .;
- . += (256 * 4);
- clear_start = .;
- *(.bss)
- *(COMMON)
- . = ALIGN (16);
- _end = .;
-
- _HeapStart = .;
- __HeapStart = .;
- . += HeapSize; /* XXX -- Old gld can't handle this */
- . += StackSize; /* XXX -- Old gld can't handle this */
- /* . += 0x10000; */ /* HeapSize for old gld */
- /* . += 0x1000; */ /* StackSize for old gld */
- . = ALIGN (16);
- stack_init = .;
- clear_end = .;
-
- _WorkspaceBase = .;
- __WorkspaceBase = .;
- } >ram
-
- /*
- * On-chip memory/peripherals
- */
- dpram : {
- m360 = .;
- _m360 = .;
- . += (8 * 1024);
-
- } >dpram
-}
+/*
+ * This file contains GNU linker directives for a generic MC68360 board.
+ * Variations in memory size and allocation can be made by
+ * overriding some values with linker command-line arguments.
+ *
+ * Saskatchewan Accelerator Laboratory
+ * University of Saskatchewan
+ * Saskatoon, Saskatchewan, CANADA
+ * eric@skatter.usask.ca
+ *
+ * $Id$
+ */
+
+/*
+ * Declare some sizes.
+ * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
+ * number used there is not constant. If this happens to you, edit
+ * the lines marked XXX below to use a constant value.
+ */
+RamSize = DEFINED(RamSize) ? RamSize : 4M;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
+StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
+
+/*
+ * Declare on-board memory.
+ * It would be nice if the ram length could be given as
+ * LENGTH=RamSize, but gld doesn't allow non-constant
+ * values in the LENGTH expression.
+ */
+MEMORY {
+ ram : ORIGIN = 0x00000000, LENGTH = 64M
+ rom : ORIGIN = 0x0F000000, LENGTH = 1M
+ dpram : ORIGIN = 0x0E000000, LENGTH = 8k
+}
+
+/*
+ * Declare low-order three octets of Ethernet address.
+ */
+ETHERNET_ADDRESS = DEFINED(ETHERNET_ADDRESS) ? ETHERNET_ADDRESS : 0xDEAD12;
+
+/*
+ * Load objects
+ */
+SECTIONS {
+ /*
+ * Hardware variations
+ */
+ _RamSize = RamSize;
+ __RamSize = RamSize;
+
+ /*
+ * Boot PROM
+ */
+ rom : {
+ _RomBase = .;
+ __RomBase = .;
+ } >rom
+
+ /*
+ * Dynamic RAM
+ */
+ ram : {
+ _RamBase = .;
+ __RamBase = .;
+ } >ram
+
+ /*
+ * Text, data and bss segments
+ */
+ .text : {
+ CREATE_OBJECT_SYMBOLS
+ *(.text)
+ . = ALIGN (16);
+
+ /*
+ * C++ constructors
+ */
+ __CTOR_LIST__ = .;
+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
+ *(.ctors)
+ LONG(0)
+ __CTOR_END__ = .;
+ __DTOR_LIST__ = .;
+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
+ *(.dtors)
+ LONG(0)
+ __DTOR_END__ = .;
+
+ etext = .;
+ _etext = .;
+ } >ram
+ .data : {
+ copy_start = .;
+ *(.data)
+ . = ALIGN (16);
+ _edata = .;
+ copy_end = .;
+ } >ram
+ .bss : {
+ M68Kvec = .;
+ _M68Kvec = .;
+ . += (256 * 4);
+ clear_start = .;
+ *(.bss)
+ *(COMMON)
+ . = ALIGN (16);
+ _end = .;
+
+ _HeapStart = .;
+ __HeapStart = .;
+ . += HeapSize; /* XXX -- Old gld can't handle this */
+ . += StackSize; /* XXX -- Old gld can't handle this */
+ /* . += 0x10000; */ /* HeapSize for old gld */
+ /* . += 0x1000; */ /* StackSize for old gld */
+ . = ALIGN (16);
+ stack_init = .;
+ clear_end = .;
+
+ _WorkspaceBase = .;
+ __WorkspaceBase = .;
+ } >ram
+
+ /*
+ * On-chip memory/peripherals
+ */
+ dpram : {
+ m360 = .;
+ _m360 = .;
+ . += (8 * 1024);
+
+ } >dpram
+}
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
index 41bff4ff8e..a8e727a0dc 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.bootp
@@ -1,136 +1,137 @@
-/*
- * This file contains GNU linker directives for a generic MC68360 board.
- * Variations in hardware type and dynamic memory size can be made
- * by overriding some values with linker command-line arguments.
- *
- * These linker directives are for producing a PROM version.
- * The data segment is placed at the end of the text segment in the PROM.
- * The start-up code takes care of copying this region to RAM.
- *
- * Saskatchewan Accelerator Laboratory
- * University of Saskatchewan
- * Saskatoon, Saskatchewan, CANADA
- * eric@skatter.usask.ca
- *
- * $Id$
- */
-
-/*
- * Declare some sizes.
- * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
- * number used there is not constant. If this happens to you, edit
- * the lines marked XXX below to use a constant value.
- */
-RamSize = DEFINED(RamSize) ? RamSize : 4M;
-HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
-StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
-
-/*
- * Declare on-board memory.
- * It would be nice if the ram length could be given as
- * LENGTH=RamSize, but gld doesn't allow non-constant
- * values in the LENGTH expression.
- */
-MEMORY {
- ram : ORIGIN = 0x00000000, LENGTH = 64M
- myram : ORIGIN = 4M-512k, LENGTH = 512k
- rom : ORIGIN = 0x0F000000, LENGTH = 1M
- dpram : ORIGIN = 0x0E000000, LENGTH = 8k
-}
-
-/*
- * Declare low-order three octets of Ethernet address.
- */
-ETHERNET_ADDRESS = DEFINED(ETHERNET_ADDRESS) ? ETHERNET_ADDRESS : 0xDEAD12;
-
-/*
- * Load objects
- */
-SECTIONS {
- /*
- * Hardware variations
- */
- _RamSize = RamSize;
- __RamSize = RamSize;
-
- /*
- * Boot PROM
- */
- rom : {
- _RomBase = .;
- __RomBase = .;
- } >rom
-
- /*
- * Dynamic RAM
- */
- ram : {
- _RamBase = .;
- __RamBase = .;
- } >ram
-
- /*
- * Text, data and bss segments
- */
- .text : AT (0x00000000) {
- CREATE_OBJECT_SYMBOLS
- *(.text)
- . = ALIGN (16);
- etext = .;
- _etext = .;
-
- /*
- * C++ constructors
- */
- __CTOR_LIST__ = .;
- LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
- *(.ctors)
- LONG(0)
- __CTOR_END__ = .;
- __DTOR_LIST__ = .;
- LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
- *(.dtors)
- LONG(0)
- __DTOR_END__ = .;
- } >rom
- .data : AT(SIZEOF(.text)) {
- copy_start = .;
- *(.data)
- . = ALIGN (16);
- _edata = .;
- copy_end = .;
- } >myram
- .bss : {
- M68Kvec = .;
- _M68Kvec = .;
- . += (256 * 4);
- clear_start = .;
- *(.bss)
- *(COMMON)
- . = ALIGN (16);
- _end = .;
-
- _HeapStart = .;
- __HeapStart = .;
- . += HeapSize; /* XXX -- Old gld can't handle this */
- . += StackSize; /* XXX -- Old gld can't handle this */
- /* . += 0x10000; */ /* HeapSize for old gld */
- /* . += 0x1000; */ /* StackSize for old gld */
- . = ALIGN (16);
- stack_init = .;
- clear_end = .;
-
- _WorkspaceBase = .;
- __WorkspaceBase = .;
- } >myram
-
- /*
- * On-chip memory/peripherals
- */
- dpram : {
- m360 = .;
- _m360 = .;
- . += (8 * 1024);
-
- } >dpram
-}
+/*
+ * This file contains GNU linker directives for a generic MC68360 board.
+ * Variations in hardware type and dynamic memory size can be made
+ * by overriding some values with linker command-line arguments.
+ *
+ * These linker directives are for producing a PROM version.
+ * The data segment is placed at the end of the text segment in the PROM.
+ * The start-up code takes care of copying this region to RAM.
+ *
+ * Saskatchewan Accelerator Laboratory
+ * University of Saskatchewan
+ * Saskatoon, Saskatchewan, CANADA
+ * eric@skatter.usask.ca
+ *
+ * $Id$
+ */
+
+/*
+ * Declare some sizes.
+ * XXX: The assignment of ". += XyzSize;" fails in older gld's if the
+ * number used there is not constant. If this happens to you, edit
+ * the lines marked XXX below to use a constant value.
+ */
+RamSize = DEFINED(RamSize) ? RamSize : 4M;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
+StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
+
+/*
+ * Declare on-board memory.
+ * It would be nice if the ram length could be given as
+ * LENGTH=RamSize, but gld doesn't allow non-constant
+ * values in the LENGTH expression.
+ */
+MEMORY {
+ ram : ORIGIN = 0x00000000, LENGTH = 64M
+ myram : ORIGIN = 4M-512k, LENGTH = 512k
+ rom : ORIGIN = 0x0F000000, LENGTH = 1M
+ dpram : ORIGIN = 0x0E000000, LENGTH = 8k
+}
+
+/*
+ * Declare low-order three octets of Ethernet address.
+ */
+ETHERNET_ADDRESS = DEFINED(ETHERNET_ADDRESS) ? ETHERNET_ADDRESS : 0xDEAD12;
+
+/*
+ * Load objects
+ */
+SECTIONS {
+ /*
+ * Hardware variations
+ */
+ _RamSize = RamSize;
+ __RamSize = RamSize;
+
+ /*
+ * Boot PROM
+ */
+ rom : {
+ _RomBase = .;
+ __RomBase = .;
+ } >rom
+
+ /*
+ * Dynamic RAM
+ */
+ ram : {
+ _RamBase = .;
+ __RamBase = .;
+ } >ram
+
+ /*
+ * Text, data and bss segments
+ */
+ .text : AT (0x00000000) {
+ CREATE_OBJECT_SYMBOLS
+ *(.text)
+ . = ALIGN (16);
+
+ /*
+ * C++ constructors
+ */
+ __CTOR_LIST__ = .;
+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
+ *(.ctors)
+ LONG(0)
+ __CTOR_END__ = .;
+ __DTOR_LIST__ = .;
+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
+ *(.dtors)
+ LONG(0)
+ __DTOR_END__ = .;
+
+ etext = .;
+ _etext = .;
+ } >rom
+ .data : AT(SIZEOF(.text)) {
+ copy_start = .;
+ *(.data)
+ . = ALIGN (16);
+ _edata = .;
+ copy_end = .;
+ } >myram
+ .bss : {
+ M68Kvec = .;
+ _M68Kvec = .;
+ . += (256 * 4);
+ clear_start = .;
+ *(.bss)
+ *(COMMON)
+ . = ALIGN (16);
+ _end = .;
+
+ _HeapStart = .;
+ __HeapStart = .;
+ . += HeapSize; /* XXX -- Old gld can't handle this */
+ . += StackSize; /* XXX -- Old gld can't handle this */
+ /* . += 0x10000; */ /* HeapSize for old gld */
+ /* . += 0x1000; */ /* StackSize for old gld */
+ . = ALIGN (16);
+ stack_init = .;
+ clear_end = .;
+
+ _WorkspaceBase = .;
+ __WorkspaceBase = .;
+ } >myram
+
+ /*
+ * On-chip memory/peripherals
+ */
+ dpram : {
+ m360 = .;
+ _m360 = .;
+ . += (8 * 1024);
+
+ } >dpram
+}
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
index 1d5db6006b..b01a99cd0a 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds.prom
@@ -33,13 +33,6 @@ HeapSize = DEFINED(HeapSize) ? HeapSize : 0x10000;
StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
/*
- * Declare hardware type
- */
-MC68360HardwareTypeMotorolaGeneric = 0;
-MC68360HardwareTypeAtlasHSB = 1;
-MC68360HardwareType = DEFINED(MC68360HardwareType) ? MC68360HardwareType : 0;
-
-/*
* Declare on-board memory.
* It would be nice if the ram length could be given as
* LENGTH=RamSize, but gld doesn't allow non-constant
@@ -57,15 +50,6 @@ MEMORY {
ETHERNET_ADDRESS = DEFINED(ETHERNET_ADDRESS) ? ETHERNET_ADDRESS : 0xDEAD12;
/*
- * Declare hardware type.
- * Acceptable values are:
- * 0 - Generic system as described in the MC68360 User's Manual
- * (MC68360UM/AD Rev. 1).
- * 1 - ATLAS Computer Equipment Incorporated ACE360/HSB.
- */
-MC68360HardwareType = DEFINED(MC68360HardwareType) ? MC68360HardwareType : 0;
-
-/*
* Load objects
*/
SECTIONS {
@@ -74,12 +58,6 @@ SECTIONS {
*/
_RamSize = RamSize;
__RamSize = RamSize;
- _MC68360HardwareType = MC68360HardwareType;
- __MC68360HardwareType = MC68360HardwareType;
- _MC68360HardwareTypeMotorolaGeneric = MC68360HardwareTypeMotorolaGeneric;
- __MC68360HardwareTypeMotorolaGeneric = MC68360HardwareTypeMotorolaGeneric;
- _MC68360HardwareTypeAtlasHSB = MC68360HardwareTypeAtlasHSB;
- __MC68360HardwareTypeAtlasHSB = MC68360HardwareTypeAtlasHSB;
/*
* Boot PROM
@@ -104,8 +82,6 @@ SECTIONS {
CREATE_OBJECT_SYMBOLS
*(.text)
. = ALIGN (16);
- etext = .;
- _etext = .;
/*
* C++ constructors
@@ -120,6 +96,9 @@ SECTIONS {
*(.dtors)
LONG(0)
__DTOR_END__ = .;
+
+ etext = .;
+ _etext = .;
} >rom
.data : {
copy_start = .;