AnsweredAssumed Answered

Trouble getting u-boot J-Link JTAG debugging working

Question asked by ThomasG1z on Oct 7, 2019
Latest reply on Oct 8, 2019 by ThomasG1z

Have some trouble getting GDB running to debug u-boot, via J-Link, on a custom i.MX6 Solo board with 1GiB DDR3L RAM. U-boot and Linux have been running on this board for a couple of years already so no general HW issue or issue with e.g. the RAM.

 

GDB connects, loads, I'm able to write and read values e.g. in DRAM space, but it seems to go back to the reset vector whenever I try to run. I have checked the system reset controller status flags via GDB, and no reset is indicated, except for power-up flag, until I reset it the first time. If I try to single-step, the gdb-server seems to end up in some loop (like being constantly brought back to the reset vector). Don't have that output in front of me but will update post tomorrow.

 

Largely followed tips from this Boundary page. Also pulled in GDB init script values from our calibrated DDR3, and anyway DDR3 seems to work fine.

 

Any ideas about what happens? First time in many years I try to get GDB running, so not that familiar..

 

Outputs from GDB session, GDB server and the GDB config file follows.

 

Output from GDB session:

~/workspace/u-boot-imx$ gdb-multiarch u-boot --nx -ix gdbinit_fusion6s
GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...

warning: No executable has been specified and target does not support
determining executable automatically.  Try using the "file" command.
0x00001148 in ?? ()
Resetting target
Sleep 200ms
Writing 0x00000030 @ address 0x020BC000
Writing 0x000C0000 @ address 0x020E0774
Writing 0x00000000 @ address 0x020E0754
Writing 0x00000028 @ address 0x020E04AC
Writing 0x00000028 @ address 0x020E04B0
Writing 0x00000028 @ address 0x020E0464
Writing 0x00000028 @ address 0x020E0490
Writing 0x00000028 @ address 0x020E074C
Writing 0x00000028 @ address 0x020E0494
Writing 0x00000000 @ address 0x020E04A0
Writing 0x00000028 @ address 0x020E04B4
Writing 0x00000028 @ address 0x020E04B8
Writing 0x00000028 @ address 0x020E076C
Writing 0x00020000 @ address 0x020E0750
Writing 0x00000028 @ address 0x020E04BC
Writing 0x00000028 @ address 0x020E04C0
Writing 0x00000028 @ address 0x020E04C4
Writing 0x00000028 @ address 0x020E04C8
Writing 0x00020000 @ address 0x020E0760
Writing 0x00000028 @ address 0x020E0764
Writing 0x00000028 @ address 0x020E0770
Writing 0x00000028 @ address 0x020E0778
Writing 0x00000028 @ address 0x020E077C
Writing 0x00000028 @ address 0x020E0470
Writing 0x00000028 @ address 0x020E0474
Writing 0x00000028 @ address 0x020E0478
Writing 0x00000028 @ address 0x020E047C
Writing 0xA1390003 @ address 0x021B0800
Writing 0x003B0042 @ address 0x021B080C
Writing 0x0024002A @ address 0x021B0810
Writing 0x0244023C @ address 0x021B083C
Writing 0x02180220 @ address 0x021B0840
Writing 0x44484846 @ address 0x021B0848
Writing 0x36342E2E @ address 0x021B0850
Writing 0x33333333 @ address 0x021B081C
Writing 0x33333333 @ address 0x021B0820
Writing 0x33333333 @ address 0x021B0824
Writing 0x33333333 @ address 0x021B0828
Writing 0x00000800 @ address 0x021B08B8
Writing 0x0002002D @ address 0x021B0004
Writing 0x1B333040 @ address 0x021B0008
Writing 0x676B52F3 @ address 0x021B000C
Writing 0xB66E8B63 @ address 0x021B0010
Writing 0x01FF00DB @ address 0x021B0014
Writing 0x00011740 @ address 0x021B0018
Writing 0x00008000 @ address 0x021B001C
Writing 0x000026D2 @ address 0x021B002C
Writing 0x006B1023 @ address 0x021B0030
Writing 0x00000027 @ address 0x021B0040
Writing 0x84190000 @ address 0x021B0000
Writing 0x02008032 @ address 0x021B001C
Writing 0x00008033 @ address 0x021B001C
Writing 0x00048031 @ address 0x021B001C
Writing 0x05208030 @ address 0x021B001C
Writing 0x04008040 @ address 0x021B001C
Writing 0x00007800 @ address 0x021B0020
Writing 0x00022227 @ address 0x021B0818
Writing 0x0002556D @ address 0x021B0004
Writing 0x00011006 @ address 0x021B0404
Writing 0x00000000 @ address 0x021B001C
Writing 0xFFFFFFFF @ address 0x020C4068
Writing 0xFFFFFFFF @ address 0x020C406C
Writing 0xFFFFFFFF @ address 0x020C4070
Writing 0xFFFFFFFF @ address 0x020C4074
Writing 0xFFFFFFFF @ address 0x020C4078
Writing 0xFFFFFFFF @ address 0x020C407C
Writing 0xFFFFFFFF @ address 0x020C4080
Writing 0xFFFFFFFF @ address 0x020C4084
Writing 0xF00000CF @ address 0x020E0010
Writing 0x007F007F @ address 0x020E0018
Writing 0x007F007F @ address 0x020E001C
Writing 0x000000FB @ address 0x020C4060
Writing register (F0 = 0x000000D3)
Writing register (SP = 0x0093FF20)
Writing register (PC = 0x17800000)
Reading symbols from u-boot...done.
(gdb) load
Loading section .text, size 0x47b10 lma 0x17800000
Loading section .rodata, size 0x10e13 lma 0x17847b10
Loading section .hash, size 0x18 lma 0x17858924
Loading section .data, size 0x756c lma 0x17858940
Loading section .got.plt, size 0xc lma 0x1785feac
Loading section .u_boot_list, size 0xf70 lma 0x1785feb8
Loading section .efi_runtime, size 0x100 lma 0x17860e28
Loading section .efi_runtime_rel, size 0x90 lma 0x17860f28
Loading section .rel.dyn, size 0xa4f8 lma 0x17860fb8
Loading section .dynsym, size 0x30 lma 0x1786b4b0
Loading section .dynstr, size 0x1 lma 0x1786b4e0
Loading section .dynamic, size 0x98 lma 0x1786b4e4
Loading section .interp, size 0x11 lma 0x1786b57c
Loading section .gnu.hash, size 0x18 lma 0x1786b590
Start address 0x17800000, load size 439709
Transfer rate: 41 KB/sec, 11274 bytes/write.
(gdb) b print_cpuinfo
Breakpoint 1 at 0x1780206c: file arch/arm/imx-common/cpu.c, line 180.
(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
_start () at arch/arm/lib/vectors.S:54
54          b     reset
(gdb)

Output from the GDB server

~/workspace/u-boot-imx$ JLinkGDBServer -device MCIMX6S5 -if JTAG -speed 1000
SEGGER J-Link GDB Server V6.52 Command Line Version

JLinkARM.dll V6.52 (DLL compiled Sep 27 2019 17:53:31)

Command line: -device MCIMX6S5 -if JTAG -speed 1000
-----GDB Server start settings-----
GDBInit file:                  none
GDB Server Listening port:     2331
SWO raw output listening port: 2332
Terminal I/O port:             2333
Accept remote connection:      yes
Generate logfile:              off
Verify download:               off
Init regs on start:            off
Silent mode:                   off
Single run mode:               off
Target connection timeout:     0 ms
------J-Link related settings------
J-Link Host interface:         USB
J-Link script:                 none
J-Link settings file:          none
------Target related settings------
Target device:                 MCIMX6S5
Target interface:              JTAG
Target interface speed:        1000kHz
Target endian:                 little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5
Hardware: V5.40
S/N: 45400542
OEM: IAR
Checking target voltage...
Target voltage: 3.33 V
Listening on TCP/IP port 2331
Connecting to target...WARNING: At least one of the connected devices is not JTAG compliant (IEEE Std 1149.1, 7.1.1.d, IR-cells). (NumDevices = 3, NumBitsSet = 2)



*** J-Link V6.52 J-Link V6.52 Warning ***
You are using a J-Link which does not have intelligence
for the selected CPU core (Cortex-A9) in the firmware.

Intelligence in the firmware enables J-Link
to generate sequences for the CPU core.
Without this feature, all sequences are generated by the PC.

Intelligence in the firmware allows higher target interface speeds
and significantly enhances both speed and stability of the
communication with the target CPU.

You can use this J-Link with your target CPU, but we recommend
using a newer model of J-Link / J-Trace.
*** J-Link V6.52 J-Link V6.52 Warning ***


J-Link found 3 JTAG devices, Total IRLen = 13
JTAG ID: 0x4BA00477 (Cortex-A9)
Connected to target
Waiting for GDB connection...Connected to 127.0.0.1
Reading all registers
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001144 (Data = 0x2001D500)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001144 (Data = 0x2001D500)
Read 2 bytes @ address 0x00001148 (Data = 0x4770)
Read 2 bytes @ address 0x00001146 (Data = 0x2001)
Read 2 bytes @ address 0x00001144 (Data = 0xD500)
Read 2 bytes @ address 0x00001148 (Data = 0x4770)
Read 2 bytes @ address 0x00001146 (Data = 0x2001)
Read 2 bytes @ address 0x00001144 (Data = 0xD500)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001144 (Data = 0x2001D500)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001144 (Data = 0x2001D500)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 4 bytes @ address 0x00001148 (Data = 0x49AA4770)
Read 2 bytes @ address 0x00001148 (Data = 0x4770)
Received monitor command: reset
Resetting target
Received monitor command: halt
Halting target CPU...
...Target halted (PC = 0x00001148)
Received monitor command: sleep 200
Sleep 200ms
Received monitor command: memU32 0x020bc000=0x30
Writing 0x00000030 @ address 0x020BC000
Received monitor command: memU32 0x020e0774=0x000C0000
Writing 0x000C0000 @ address 0x020E0774
Received monitor command: memU32 0x020e0754=0x00000000
Writing 0x00000000 @ address 0x020E0754
Received monitor command: memU32 0x020e04ac=0x00000028
Writing 0x00000028 @ address 0x020E04AC
Received monitor command: memU32 0x020e04b0=0x00000028
Writing 0x00000028 @ address 0x020E04B0
Received monitor command: memU32 0x020e0464=0x00000028
Writing 0x00000028 @ address 0x020E0464
Received monitor command: memU32 0x020e0490=0x00000028
Writing 0x00000028 @ address 0x020E0490
Received monitor command: memU32 0x020e074c=0x00000028
Writing 0x00000028 @ address 0x020E074C
Received monitor command: memU32 0x020e0494=0x00000028
Writing 0x00000028 @ address 0x020E0494
Received monitor command: memU32 0x020e04a0=0x00000000
Writing 0x00000000 @ address 0x020E04A0
Received monitor command: memU32 0x020e04b4=0x00000028
Writing 0x00000028 @ address 0x020E04B4
Received monitor command: memU32 0x020e04b8=0x00000028
Writing 0x00000028 @ address 0x020E04B8
Received monitor command: memU32 0x020e076c=0x00000028
Writing 0x00000028 @ address 0x020E076C
Received monitor command: memU32 0x020e0750=0x00020000
Writing 0x00020000 @ address 0x020E0750
Received monitor command: memU32 0x020e04bc=0x00000028
Writing 0x00000028 @ address 0x020E04BC
Received monitor command: memU32 0x020e04c0=0x00000028
Writing 0x00000028 @ address 0x020E04C0
Received monitor command: memU32 0x020e04c4=0x00000028
Writing 0x00000028 @ address 0x020E04C4
Received monitor command: memU32 0x020e04c8=0x00000028
Writing 0x00000028 @ address 0x020E04C8
Received monitor command: memU32 0x020e0760=0x00020000
Writing 0x00020000 @ address 0x020E0760
Received monitor command: memU32 0x020e0764=0x00000028
Writing 0x00000028 @ address 0x020E0764
Received monitor command: memU32 0x020e0770=0x00000028
Writing 0x00000028 @ address 0x020E0770
Received monitor command: memU32 0x020e0778=0x00000028
Writing 0x00000028 @ address 0x020E0778
Received monitor command: memU32 0x020e077c=0x00000028
Writing 0x00000028 @ address 0x020E077C
Received monitor command: memU32 0x020e0470=0x00000028
Writing 0x00000028 @ address 0x020E0470
Received monitor command: memU32 0x020e0474=0x00000028
Writing 0x00000028 @ address 0x020E0474
Received monitor command: memU32 0x020e0478=0x00000028
Writing 0x00000028 @ address 0x020E0478
Received monitor command: memU32 0x020e047c=0x00000028
Writing 0x00000028 @ address 0x020E047C
Received monitor command: memU32 0x021b0800=0xA1390003
Writing 0xA1390003 @ address 0x021B0800
Received monitor command: memU32 0x021b080c=0x003B0042
Writing 0x003B0042 @ address 0x021B080C
Received monitor command: memU32 0x021b0810=0x0024002A
Writing 0x0024002A @ address 0x021B0810
Received monitor command: memU32 0x021b083c=0x0244023C
Writing 0x0244023C @ address 0x021B083C
Received monitor command: memU32 0x021b0840=0x02180220
Writing 0x02180220 @ address 0x021B0840
Received monitor command: memU32 0x021b0848=0x44484846
Writing 0x44484846 @ address 0x021B0848
Received monitor command: memU32 0x021b0850=0x36342E2E
Writing 0x36342E2E @ address 0x021B0850
Received monitor command: memU32 0x021b081c=0x33333333
Writing 0x33333333 @ address 0x021B081C
Received monitor command: memU32 0x021b0820=0x33333333
Writing 0x33333333 @ address 0x021B0820
Received monitor command: memU32 0x021b0824=0x33333333
Writing 0x33333333 @ address 0x021B0824
Received monitor command: memU32 0x021b0828=0x33333333
Writing 0x33333333 @ address 0x021B0828
Received monitor command: memU32 0x021b08b8=0x00000800
Writing 0x00000800 @ address 0x021B08B8
Received monitor command: memU32 0x021b0004=0x0002002D
Writing 0x0002002D @ address 0x021B0004
Received monitor command: memU32 0x021b0008=0x1B333040
Writing 0x1B333040 @ address 0x021B0008
Received monitor command: memU32 0x021b000c=0x676B52F3
Writing 0x676B52F3 @ address 0x021B000C
Received monitor command: memU32 0x021b0010=0xB66E8B63
Writing 0xB66E8B63 @ address 0x021B0010
Received monitor command: memU32 0x021b0014=0x01FF00DB
Writing 0x01FF00DB @ address 0x021B0014
Received monitor command: memU32 0x021b0018=0x00011740
Writing 0x00011740 @ address 0x021B0018
Received monitor command: memU32 0x021b001c=0x00008000
Writing 0x00008000 @ address 0x021B001C
Received monitor command: memU32 0x021b002c=0x000026D2
Writing 0x000026D2 @ address 0x021B002C
Received monitor command: memU32 0x021b0030=0x006B1023
Writing 0x006B1023 @ address 0x021B0030
Received monitor command: memU32 0x021b0040=0x00000027
Writing 0x00000027 @ address 0x021B0040
Received monitor command: memU32 0x021b0000=0x84190000
Writing 0x84190000 @ address 0x021B0000
Received monitor command: memU32 0x021b001c=0x02008032
Writing 0x02008032 @ address 0x021B001C
Received monitor command: memU32 0x021b001c=0x00008033
Writing 0x00008033 @ address 0x021B001C
Received monitor command: memU32 0x021b001c=0x00048031
Writing 0x00048031 @ address 0x021B001C
Received monitor command: memU32 0x021b001c=0x05208030
Writing 0x05208030 @ address 0x021B001C
Received monitor command: memU32 0x021b001c=0x04008040
Writing 0x04008040 @ address 0x021B001C
Received monitor command: memU32 0x021b0020=0x00007800
Writing 0x00007800 @ address 0x021B0020
Received monitor command: memU32 0x021b0818=0x00022227
Writing 0x00022227 @ address 0x021B0818
Received monitor command: memU32 0x021b0004=0x0002556D
Writing 0x0002556D @ address 0x021B0004
Received monitor command: memU32 0x021b0404=0x00011006
Writing 0x00011006 @ address 0x021B0404
Received monitor command: memU32 0x021b001c=0x00000000
Writing 0x00000000 @ address 0x021B001C
Received monitor command: memU32 0x020c4068=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4068
Received monitor command: memU32 0x020c406c=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C406C
Received monitor command: memU32 0x020c4070=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4070
Received monitor command: memU32 0x020c4074=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4074
Received monitor command: memU32 0x020c4078=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4078
Received monitor command: memU32 0x020c407c=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C407C
Received monitor command: memU32 0x020c4080=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4080
Received monitor command: memU32 0x020c4084=0xffffffff
Writing 0xFFFFFFFF @ address 0x020C4084
Received monitor command: memU32 0x020e0010=0xF00000CF
Writing 0xF00000CF @ address 0x020E0010
Received monitor command: memU32 0x020e0018=0x007F007F
Writing 0x007F007F @ address 0x020E0018
Received monitor command: memU32 0x020e001c=0x007F007F
Writing 0x007F007F @ address 0x020E001C
Received monitor command: memU32 0x020c4060=0x000000fb
Writing 0x000000FB @ address 0x020C4060
Received monitor command: reg cpsr = 0xD3
Writing register (F0 = 0x000000D3)
Received monitor command: reg sp = 0x0093FF20
Writing register (SP = 0x0093FF20)
Received monitor command: reg pc = 0x17800000
Writing register (PC = 0x17800000)
Reading all registers
Downloading 16288 bytes @ address 0x17800000
Downloading 16304 bytes @ address 0x17803FA0
Downloading 16288 bytes @ address 0x17807F50
Downloading 16272 bytes @ address 0x1780BEF0
Downloading 16288 bytes @ address 0x1780FE80
Downloading 16304 bytes @ address 0x17813E20
Downloading 16240 bytes @ address 0x17817DD0
Downloading 16288 bytes @ address 0x1781BD40
Downloading 16256 bytes @ address 0x1781FCE0
Downloading 16288 bytes @ address 0x17823C60
Downloading 16256 bytes @ address 0x17827C00
Downloading 16272 bytes @ address 0x1782BB80
Downloading 16288 bytes @ address 0x1782FB10
Downloading 16272 bytes @ address 0x17833AB0
Downloading 16256 bytes @ address 0x17837A40
Downloading 16304 bytes @ address 0x1783B9C0
Downloading 16304 bytes @ address 0x1783F970
Downloading 16272 bytes @ address 0x17843920
Downloading 608 bytes @ address 0x178478B0
Downloading 16192 bytes @ address 0x17847B10
Downloading 16160 bytes @ address 0x1784BA50
Downloading 16192 bytes @ address 0x1784F970
Downloading 16352 bytes @ address 0x178538B0
Downloading 4243 bytes @ address 0x17857890
Downloading 24 bytes @ address 0x17858924
Downloading 16320 bytes @ address 0x17858940
Downloading 13740 bytes @ address 0x1785C900
Downloading 12 bytes @ address 0x1785FEAC
Downloading 3952 bytes @ address 0x1785FEB8
Downloading 256 bytes @ address 0x17860E28
Downloading 144 bytes @ address 0x17860F28
Downloading 16280 bytes @ address 0x17860FB8
Downloading 16288 bytes @ address 0x17864F50
Downloading 9664 bytes @ address 0x17868EF0
Downloading 48 bytes @ address 0x1786B4B0
Downloading 1 bytes @ address 0x1786B4E0
Downloading 152 bytes @ address 0x1786B4E4
Downloading 17 bytes @ address 0x1786B57C
Downloading 24 bytes @ address 0x1786B590
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 2 bytes @ address 0x17800000 (Data = 0x00B8)
Read 2 bytes @ address 0x177FFFFE (Data = 0xDBFD)
Read 2 bytes @ address 0x177FFFFC (Data = 0x7FFF)
Read 2 bytes @ address 0x17800000 (Data = 0x00B8)
Read 2 bytes @ address 0x177FFFFE (Data = 0xDBFD)
Read 2 bytes @ address 0x177FFFFC (Data = 0x7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x1780206C (Data = 0xE92D4030)
Setting breakpoint @ address 0x1780206C, Size = 4, BPHandle = 0x0001
Starting target CPU...
...Target halted (DBGRQ, PC = 0x17800000)
Reading all registers
Removing breakpoint @ address 0x1780206C, Size = 4
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 2 bytes @ address 0x17800000 (Data = 0x00B8)
Read 2 bytes @ address 0x177FFFFE (Data = 0xDBFD)
Read 2 bytes @ address 0x177FFFFC (Data = 0x7FFF)
Read 2 bytes @ address 0x17800000 (Data = 0x00B8)
Read 2 bytes @ address 0x177FFFFE (Data = 0xDBFD)
Read 2 bytes @ address 0x177FFFFC (Data = 0x7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x177FFFFC (Data = 0xDBFD7FFF)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)
Read 4 bytes @ address 0x17800000 (Data = 0xEA0000B8)

 

GDB init file

# Fusion 6Solo with 1024MB of RAM

# Initializing target
target remote localhost:2331
monitor reset
monitor halt
monitor sleep 200

# Disable Watchdog
monitor memU32 0x020bc000=0x30

#DDR IO TYPE:
monitor memU32 0x020e0774=0x000C0000
monitor memU32 0x020e0754=0x00000000

#CLOCK:
monitor memU32 0x020e04ac=0x00000028
monitor memU32 0x020e04b0=0x00000028

#ADDRESS:
monitor memU32 0x020e0464=0x00000028
monitor memU32 0x020e0490=0x00000028
monitor memU32 0x020e074c=0x00000028

#Control:
monitor memU32 0x020e0494=0x00000028
monitor memU32 0x020e04a0=0x00000000
monitor memU32 0x020e04b4=0x00000028
monitor memU32 0x020e04b8=0x00000028
monitor memU32 0x020e076c=0x00000028

#Data Strobes:
monitor memU32 0x020e0750=0x00020000
monitor memU32 0x020e04bc=0x00000028
monitor memU32 0x020e04c0=0x00000028
monitor memU32 0x020e04c4=0x00000028
monitor memU32 0x020e04c8=0x00000028

#Data:
monitor memU32 0x020e0760=0x00020000
monitor memU32 0x020e0764=0x00000028
monitor memU32 0x020e0770=0x00000028
monitor memU32 0x020e0778=0x00000028
monitor memU32 0x020e077c=0x00000028

monitor memU32 0x020e0470=0x00000028
monitor memU32 0x020e0474=0x00000028
monitor memU32 0x020e0478=0x00000028
monitor memU32 0x020e047c=0x00000028

# DDR Controller Registers
monitor memU32 0x021b0800=0xA1390003
monitor memU32 0x021b080c=0x003B0042
monitor memU32 0x021b0810=0x0024002A
monitor memU32 0x021b083c=0x0244023C
monitor memU32 0x021b0840=0x02180220
monitor memU32 0x021b0848=0x44484846
monitor memU32 0x021b0850=0x36342E2E
monitor memU32 0x021b081c=0x33333333
monitor memU32 0x021b0820=0x33333333
monitor memU32 0x021b0824=0x33333333
monitor memU32 0x021b0828=0x33333333
monitor memU32 0x021b08b8=0x00000800

#MMDC init:
monitor memU32 0x021b0004=0x0002002D
monitor memU32 0x021b0008=0x1B333040
monitor memU32 0x021b000c=0x676B52F3
monitor memU32 0x021b0010=0xB66E8B63
monitor memU32 0x021b0014=0x01FF00DB

monitor memU32 0x021b0018=0x00011740
monitor memU32 0x021b001c=0x00008000
monitor memU32 0x021b002c=0x000026D2
monitor memU32 0x021b0030=0x006B1023
monitor memU32 0x021b0040=0x00000027
monitor memU32 0x021b0000=0x84190000

monitor memU32 0x021b001c=0x02008032
monitor memU32 0x021b001c=0x00008033
monitor memU32 0x021b001c=0x00048031
monitor memU32 0x021b001c=0x05208030
monitor memU32 0x021b001c=0x04008040
monitor memU32 0x021b0020=0x00007800
monitor memU32 0x021b0818=0x00022227
monitor memU32 0x021b0004=0x0002556D
monitor memU32 0x021b0404=0x00011006
monitor memU32 0x021b001c=0x00000000

#set the default clock gate to save power
monitor memU32 0x020c4068=0xffffffff
monitor memU32 0x020c406c=0xffffffff
monitor memU32 0x020c4070=0xffffffff
monitor memU32 0x020c4074=0xffffffff
monitor memU32 0x020c4078=0xffffffff
monitor memU32 0x020c407c=0xffffffff
monitor memU32 0x020c4080=0xffffffff
monitor memU32 0x020c4084=0xffffffff

#enable AXI cache for VDOA/VPU/IPU
monitor memU32 0x020e0010=0xF00000CF
#set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7
monitor memU32 0x020e0018=0x007F007F
monitor memU32 0x020e001c=0x007F007F
monitor memU32 0x020c4060=0x000000fb

monitor reg cpsr = 0xD3
monitor reg sp = 0x0093FF20
monitor reg pc = 0x17800000

Outcomes