summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/lib/libbsp/m68k/gen68340/ChangeLog5
-rw-r--r--c/src/lib/libbsp/m68k/gen68340/start/start.S25
2 files changed, 25 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/m68k/gen68340/ChangeLog b/c/src/lib/libbsp/m68k/gen68340/ChangeLog
index f1228990fe..9c42a24504 100644
--- a/c/src/lib/libbsp/m68k/gen68340/ChangeLog
+++ b/c/src/lib/libbsp/m68k/gen68340/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-19 Joel Sherrill <joel@OARcorp.com>
+
+ * start/start.S: DWARF on the m68k requires that all objects me a
+ multiple of a 16-bit word in length.
+
2004-04-02 Ralf Corsepius <ralf_corsepius@rtems.org>
* start/start.S: Include <rtems/asm.h> instead of <asm.h>.
diff --git a/c/src/lib/libbsp/m68k/gen68340/start/start.S b/c/src/lib/libbsp/m68k/gen68340/start/start.S
index d5893a1127..cad8293c0c 100644
--- a/c/src/lib/libbsp/m68k/gen68340/start/start.S
+++ b/c/src/lib/libbsp/m68k/gen68340/start/start.S
@@ -402,8 +402,14 @@ BEGIN_DATA
/* -- Initialization stack and vars -- */
+/* When using DWARF, everything must be a multiple of 16-bits. */
+#if 1
+_AsteccBusWidth: ds.w 0x0101
+_AsteccCsSwitch: ds.w 0x0101
+#else
_AsteccBusWidth: ds.b 1
_AsteccCsSwitch: ds.b 1
+#endif
_AsteccCpuName: ds.l 1
.align 4
@@ -420,7 +426,9 @@ BEGIN_CODE
dc.l _crt0_cold_start /* reset PC */
dc.l _crt0_warm_start
- .ascii "BOOT XHM68K/Spectra for ASTECC 68349 and 68340 boards"
+/* When using DWARF, everything must be a multiple of 16-bits. */
+ .ascii "BOOT XHM68K/Spectra for ASTECC 68349 and 68340 boards "
+ .text
dc.w 0
.align 4
@@ -525,10 +533,17 @@ _copy_start_code:
/* Astecc 68349 board : chip-select initialization values */
_table_csepld:
- dc.b (_EPLD_CS_BASE&0x0F)+0x80 | 16 bits, 0ws
- dc.b 0x80 | 16 bits, 0 ws
- dc.b 0x90 | 16 bits, ext /dsack
- dc.b 0x90 | 16 bits, ext /dsack
+/* When using DWARF, everything must be a multiple of 16-bits. */
+#if 1
+ dc.w (((_EPLD_CS_BASE&0x0F)+0x80) << 8) | 0x80 | 16 bits, 0ws
+ dc.w 0x9090 | 16 bits, ext /dsack
+
+#else
+ dc.b (_EPLD_CS_BASE&0x0F)+0x80 | 16 bits, 0ws
+ dc.b 0x80 | 16 bits, 0 ws
+ dc.b 0x90 | 16 bits, ext /dsack
+ dc.b 0x90 | 16 bits, ext /dsack
+#endif
_table_cs349:
dc.l 0x003FFFF4 | Mask CS0 (4Mbytes PROM, 32bits, 1WS)