From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3412 invoked by alias); 30 Jul 2014 05:24:20 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 3368 invoked by uid 89); 30 Jul 2014 05:24:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.8 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,SPF_NEUTRAL autolearn=no version=3.3.2 X-HELO: nm10-vm5.access.bullet.mail.bf1.yahoo.com Received: from nm10-vm5.access.bullet.mail.bf1.yahoo.com (HELO nm10-vm5.access.bullet.mail.bf1.yahoo.com) (216.109.114.212) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 30 Jul 2014 05:24:12 +0000 Received: from [66.196.81.165] by nm10.access.bullet.mail.bf1.yahoo.com with NNFMP; 30 Jul 2014 05:24:10 -0000 Received: from [98.138.226.244] by tm11.access.bullet.mail.bf1.yahoo.com with NNFMP; 30 Jul 2014 05:24:09 -0000 Received: from [127.0.0.1] by smtp115.sbc.mail.ne1.yahoo.com with NNFMP; 30 Jul 2014 05:24:09 -0000 X-Yahoo-SMTP: DAVHEHCswBBSt52LEL26uXq8GY.pd.0s2WK3iX0- Message-ID: <53D8804D.2050404@verizon.net> Date: Wed, 30 Jul 2014 05:24:00 -0000 From: Les Miklosy User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: ecos-discuss@ecos.sourceware.org Content-Type: multipart/mixed; boundary="------------030303040008060900090001" Subject: [ECOS] RedBoot hits fetch instruction trap X-SW-Source: 2014-07/txt/msg00012.txt.bz2 --------------030303040008060900090001 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1166 During execution of RedBoot configured for a Sparc Leon3 IP core the process hits a trap on instruction fetch in the RedBoot routine _timer_poll(). The debugger history and assembly are attached. The process will execute RedBoot commands at the command prompt and otherwise behave normally until a branch instruction to do_idle and subsequently net_io_test(), that is where execution eventually fails. Oddly the process runs without fault when DEBUG command options are selected during configuration of the build with configtool, trouble begins when the DEBUG options are again removed. The DEBUG instructions appear in the ethernet modules and in RedBoot's net_io. If this is a timing issue can someone please suggest what parameters can be tweeked to resolve the traps, or if a memory alignment problem can someone offer a memory map and alignment parameters? Are there configuration selections in the amba bus header file, those might be helpful too. The compiler is sparc-elf-gcc-3.4.4 I'm using two additional compilation flags -msoft-float and D-ECOS. The system configuration is also attached to this email. Thank you for directions. -Les --------------030303040008060900090001 Content-Type: text/plain; charset=UTF-8; name="info_sys.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="info_sys.txt" Content-length: 1854 grlib> info sys 00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0x0) ahb master 0 01.01:007 Gaisler Research AHB Debug UART (ver 0x0) ahb master 1 apb: 80000700 - 80000800 baud rate 115200, ahb frequency 40.00 02.01:01c Gaisler Research AHB Debug JTAG TAP (ver 0x0) ahb master 2 03.01:01d Gaisler Research GR Ethernet MAC (ver 0x0) ahb master 3, irq 13 apb: 80000d00 - 80000e00 edcl ip 192.168.0.51, buffer 2 kbyte 00.04:00f European Space Agency LEON2 Memory Controller (ver 0x1) ahb: 00000000 - 20000000 ahb: 20000000 - 40000000 ahb: 40000000 - 80000000 apb: 80000000 - 80000100 8-bit prom @ 0x00000000 32-bit sdram: 1 * 64 Mbyte @ 0x40000000, col 9, cas 2, ref 7.8 us 01.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) ahb: 80000000 - 80100000 02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 0x1) ahb: 90000000 - a0000000 AHB trace 128 lines, stack pointer 0x43fffff0 CPU#0 win 8, hwbp 2, itrace 128, V8 mul/div, srmmu, lddel 1 icache 2 * 4 kbyte, 32 byte/line lru dcache 1 * 4 kbyte, 16 byte/line lru 01.01:00c Gaisler Research Generic APB UART (ver 0x1) irq 2 apb: 80000100 - 80000200 baud rate 38400 02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 0x3) apb: 80000200 - 80000300 03.01:011 Gaisler Research Modular Timer Unit (ver 0x0) irq 8 apb: 80000300 - 80000400 8-bit scaler, 2 * 32-bit timers, divisor 40 08.01:01a Gaisler Research General purpose I/O port (ver 0x0) apb: 80000800 - 80000900 grlib> --------------030303040008060900090001 Content-Type: text/plain; charset=UTF-8; name="timer_poll.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="timer_poll.txt" Content-length: 1606 __timer_poll(void) { 40011b94: 9d e3 bf 98 save %sp, -104, %sp timer_t *prev, *t; prev = NULL; t = tmr_list; 40011b98: 11 10 00 94 sethi %hi(0x40025000), %o0 40011b9c: e0 02 22 38 ld [ %o0 + 0x238 ], %l0 ! 40025238 while (t) { 40011ba0: 80 a4 20 00 cmp %l0, 0 40011ba4: 02 80 00 1d be 40011c18 <__timer_poll+0x84> 40011ba8: a2 10 20 00 clr %l1 40011bac: a4 10 00 08 mov %o0, %l2 if ((MS_TICKS_DELAY() - t->start) >= t->delay) { 40011bb0: 7f ff f5 8c call 4000f1e0 40011bb4: 01 00 00 00 nop 40011bb8: d2 04 20 08 ld [ %l0 + 8 ], %o1 40011bbc: d4 04 20 04 ld [ %l0 + 4 ], %o2 40011bc0: 90 22 00 09 sub %o0, %o1, %o0 40011bc4: 80 a2 00 0a cmp %o0, %o2 40011bc8: 2a 80 00 12 bcs,a 40011c10 <__timer_poll+0x7c> 40011bcc: a2 10 00 10 mov %l0, %l1 /* remove it before calling handler */ if (prev) 40011bd0: 80 a4 60 00 cmp %l1, 0 40011bd4: 02 80 00 0d be 40011c08 <__timer_poll+0x74> 40011bd8: d0 04 00 00 ld [ %l0 ], %o0 prev->next = t->next; 40011bdc: d0 24 40 00 st %o0, [ %l1 ] else tmr_list = t->next; /* now, call the handler */ t->handler(t->user_data); 40011be0: d0 04 20 10 ld [ %l0 + 0x10 ], %o0 40011be4: d2 04 20 0c ld [ %l0 + 0xc ], %o1 40011be8: 9f c2 40 00 call %o1 40011bec: a2 10 20 00 clr %l1 --------------030303040008060900090001 Content-Type: text/plain; charset=UTF-8; name="timer_trap.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="timer_trap.txt" Content-length: 1451 grlib> c IU in error mode (tt = 0x01) a80ceff0 0ceff000 unknown opcode: 0x0ceff000 grlib> hist 91756041 40011bc8 bcs,a 0x40011c10 [00000000] 91756043 40011bd0 cmp %l1 [80000200] 91756053 40011bd4 be 0x40011c08 [00000000] 91756059 ahb read, mst=0, size=2 [40011bfc 12bfffed] 91756130 ahb read, mst=0, size=2 [00002000 a7580000] 91756132 40011bd8 ld [%l0], %o0 [a7580000] 91756134 40011bdc st %o0, [%l1] [80000200 a7580000] 91756136 ahb write, mst=0, size=2 [80000200 a7580000] 91756206 ahb read, mst=0, size=2 [00002010 a7580000] 91756208 40011be0 ld [%l0 + 0x10], %o0 [a7580000] 91756278 ahb read, mst=0, size=2 [0000200c a80ceff0] 91756279 40011be4 ld [%l0 + 0xc], %o1 [a80ceff0] 91756283 ahb read, mst=0, size=2 [a80ceff0 0ceff0f0] 91756284 40011be8 call %o1 [40011be8] 91756285 ahb read, mst=0, size=2 [a80ceff4 0ceff0f0] 91756286 40011bec mov 0, %l1 [00000000] 91756287 ahb read, mst=0, size=2 [a80ceff8 0ceff0f0] 91756289 ahb read, mst=0, size=2 [a80ceffc 0ceff0f0] 91756294 ahb read, mst=0, size=2 [a80cf000 0ceff0f0] 91756295 a80ceff0 unknown opcode: 0x0ceff0f0 [trapped] grlib> --------------030303040008060900090001 Content-Type: text/plain; charset=us-ascii Content-length: 148 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss --------------030303040008060900090001--