debug board setup / turning aux led on very late in the suspend path
Timo Juhani Lindfors
timo.lindfors at iki.fi
Thu Nov 4 15:09:32 CET 2010
Hi,
I used the debug board today after a long pause so I thought I might
want to document the steps I had to do to get it to work:
1) boot openmoko normally
2) (openmoko) sudo /etc/init.d/watchdog stop
3) (openmoko) sudo killall wd_keepalive
4) (openmoko) sudo sh -c 'echo -n V > /dev/watchdog'2) connect debug board to PC
5) connect debug board to openmoko
6) (PC) cat > openocd.cfg <<EOF
interface ft2232
ft2232_device_desc "Debug Board for Neo1973 A"
ft2232_layout "jtagkey"
ft2232_vid_pid 0x1457 0x5118
source [find target/samsung_s3c2440.cfg]
reset_config trst_and_srst
#jtag_khz 0
gdb_port 3333
tcl_port 6666
telnet_port 4444
EOF
7) (PC) sudo openocd
8) (PC) run arm-linux-gnueabi-gdb
9) (gdb) target remote localhost:3333
10) (gdb) continue
11) (gdb) ctrl-c
12) (gdb) monitor gdb_breakpoint_override hard
13) (gdb) monitor arm7_9 dbgrq enable
14) (gdb) continue
15) (gdb) ctrl-c
16) (gdb) break s3c_pm_save_gpios
17) (gdb) continue
18) (openmoko) sudo sh -c 'echo mem > /sys/power/state'
19) (gdb) define xsi
si
x/3i $pc
end
20) (gdb) single step the suspend process with this new "xsi" command
Version information:
PC is debian gnu/linux stable with openocd 0.4.0-1+nmu1 running from a
debian unstable chroot
openmoko is gta02v5 running debian unstable with 2.6.34 kernel
branched from radekp's qtmoko27 branch
debug board is version 2
My original goal was to turn the AUX led ON very late in the suspend
path so that I could distinguish between failed and working suspend by
looking at the led. I assumed I could just add 0x4 to 0x56000014 but
for some reason even trying to read from this address apparently
causes a fault or something:
(gdb) xsi
0xc0035bac in s3c_cpu_save ()
0xc0035bac <s3c_cpu_save+28>: ldr r0, [pc, #8] ; 0xc0035bbc <resume_with_mmu+4>
0xc0035bb0 <s3c_cpu_save+32>: ldr r0, [r0]
0xc0035bb4 <s3c_cpu_save+36>: mov pc, r0
(gdb) xsi
0xc0035bb0 in s3c_cpu_save ()
0xc0035bb0 <s3c_cpu_save+32>: ldr r0, [r0]
0xc0035bb4 <s3c_cpu_save+36>: mov pc, r0
0xc0035bb8 <resume_with_mmu>: pop {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}
(gdb)
0xc0035bb4 in s3c_cpu_save ()
0xc0035bb4 <s3c_cpu_save+36>: mov pc, r0
0xc0035bb8 <resume_with_mmu>: pop {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}
0xc0035bbc <resume_with_mmu+4>: eorsgt r11, lr, r0, lsr r8
(gdb)
0xc0032860 in s3c2410_cpu_suspend ()
0xc0032860 <s3c2410_cpu_suspend>: mov r4, #1442840576 ; 0x56000000
0xc0032864 <s3c2410_cpu_suspend+4>: ldr r5, [r4, #20]
0xc0032868 <s3c2410_cpu_suspend+8>: orr r5, r5, #4 ; 0x4
(gdb)
0xc0032864 in s3c2410_cpu_suspend ()
0xc0032864 <s3c2410_cpu_suspend+4>: ldr r5, [r4, #20]
0xc0032868 <s3c2410_cpu_suspend+8>: orr r5, r5, #4 ; 0x4
0xc003286c <s3c2410_cpu_suspend+12>: str r5, [r4, #20]
(gdb) p $r4
$3 = 1442840576
(gdb) p/x $r4
$4 = 0x56000000
(gdb) xsi
C-c C-cHalt timed out, wake up GDB.
What am I missing here?
More information about the openmoko-kernel
mailing list