mpcbdm SDRAM and Flash program
Bin Ren
bin_ren at myrealbox.com
Tue Dec 24 23:48:24 EST 2002
Hi, all:
We're reading mails to this list for quite a while and finally
have found no other way but to post our question here.
Our target is MPC860 Processor Card, with MPC860SR, 2M flash
and 32M SDRAM (AMD's AM29LV107B). We're using MPCBDM, with a
self-made BDM wire, to debug. We have written our own "mpc.init"
and "Flash.dev", which may not be correct. But we can successfully
read and write any word in SDRAM and flash, can load a cross-compiled
program to SDRAM, can ident, erase and clear flash.
But we do have to STRANGE problems here:
1. After loading a program to SDRAM, we use "jump *0x0" to
execute the program. Immediately, the program received signal
SIGINIT and sometimes SIGTRAP. If we set a breakpoint at the
beginning of the program, we CANNOT move to the next instruction!
2. We can load program to flash WITH mpcbdm_fflush DISABLED,
but whenever we enable it, an error occurs. Only the first byte
is written into the flash.
3. We are trying to use ppcboot-2.0, which format, .bin or .srec
should be loaded into the flash and at which position? the very
start of flash??
Info: Memory Map:
SDRAM: CS5: 0x00000000 - 0x01ffffff
Internal: 0xff000000 - 0xff003fff
FLASH: CS0: 0xffe00000 - 0xffffffff
The followings are the error messages:
############################################################
(gdb) lo hello_world
Loading section .text, size 0x11c lma 0x40000
Loading section .data, size 0x58 lma 0x5011c
Loading section .got2, size 0x18 lma 0x50174
Start address 0x40004 , load size 396
Transfer rate: 3168 bits in <1 sec, 132 bytes/write.
(gdb) sym hello_world
Reading symbols from hello_world...done.
(gdb) jump *0x40004
Continuing at 0x40004.
*** run
*** Resume
*** wait freeze
E!I!
Program received signal SIGINT, Interrupt.
r00=ffffffff r01=ffe00000 r02=000000aa r03=ffe00000 r04=00000055
r05=ffe00000 r06=000000a0 r07=00000000 r08=00000000 r09=00000d0a
r10=00000000 r11=00000000 r12=00000000 r13=00000000 r14=00000000
r15=00000000 r16=00000000 r17=00000d0a r18=00000000 r19=00034280
r20=00000000 r21=00000000 r22=00000000 r23=00000000 r24=00000000
r25=000000c7 r26=00000000 r27=00000000 r28=ff002fff r29=ffe00fff
r30=00000000 r31=00000000
CR := (CR0|4CR1|8CR2|12CR3|16CR4|20CR5|24CR6|28CR7)
SPR 2:Condition Register, UM140
CR = 0x30000000 = (CR0=0x3|CR1=0x0|CR2=0x0|CR3=0x0|CR4=0x0|CR5=0x0|CR6=0x0|CR7=0x0)
ICR := (|RST|CHSTP|MCI||6EXTI|ALI|PRI|FPUVI|DECI||13SYSI|TR||17SEI|ITLBMS|DTBLMS|ITLBER|DTLBER||28LBRK|IBRK|EBRK|DPI)
SPR 148:Interrupt Cause Register, UM994
ICR = 0xffffffff = (RST|CHSTP|MCI|EXTI|ALI|PRI|FPUVI|DECI|SYSI|TR|SEI|ITLBMS|DTBLMS|ITLBER|DTLBER|LBRK|IBRK|EBRK|DPI)
0x40004 <hello_world>: stwu r1,-32(r1)
hello_world (argc=0, argv=0x0) at hello_world.c:28
28 {
(gdb)
##############################################################
(gdb) mpcbdm flash conf 0xffe00000 1 AM29LV017B
(gdb) mpcbdm flash clear 0xffe00000
clear FLASH bank 0 [0xffe00000,0xffffffff] ?(y or n) y
(gdb) mpcbdm flash file "ppcboot.bin" 0xffe00000
Copying to flash with remote routines using buffer[0xff002000,0xff002fff]...
Copy file "ppcboot.bin" len 0x0001a8ac to FLASH at [0xffe00000,0xffe1a8ab] ?(y or n) y
...
...
checking FLASH [0xffe19000,0xffe19fff]...
*** Resume
*** wait freeze
checking FLASH [0xffe1a000,0xffe1a8ab]...
*** Resume
*** wait freeze
Copying to Flash using remote routines...
writing FLASH [0xffe00000,0xffe00fff]...
*** Resume
*** wait freeze
error: FLASH failure at 0xffe00000: nResult=0x00001000
##############################################################
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list