From d3fdf89f66d8ddd95744bc03e681a10d15d0c414 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 19 Apr 2004 22:08:13 +0000 Subject: 2004-04-19 Joel Sherrill * start/start.S: DWARF on the m68k requires that all objects me a multiple of a 16-bit word in length. --- c/src/lib/libbsp/m68k/gen68340/ChangeLog | 5 +++++ c/src/lib/libbsp/m68k/gen68340/start/start.S | 25 ++++++++++++++++++++----- 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 + + * 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 * start/start.S: Include instead of . 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) -- cgit v1.2.3