Discussion:
[OpenOCD-devel] Problem with i.MX6UL board
Martin Townsend
2017-06-08 13:22:43 UTC
Permalink
Hi,


I'm trying to openocd working with a board that has an i.MX6UL processor. I've put together a configuration file:


# ______________________________________________________________________ i.MX6UL

if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME imx6
}

if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
set _ENDIAN little
}

# CoreSight Debug Access Port
if { [info exists DAP_TAPID ] } {
set _DAP_TAPID $DAP_TAPID
} else {
set _DAP_TAPID 0x5ba00477
}

jtag newtap $_CHIPNAME dap -irlen 4 -ircapture 0x01 -irmask 0x0f -expected-id $_DAP_TAPID

# SDMA / no IDCODE
jtag newtap $_CHIPNAME sdma -irlen 4 -ircapture 0x00 -irmask 0x0f

# System JTAG Controller
if { [info exists SJC_TAPID ] } {
set _SJC_TAPID $SJC_TAPID
} else {
set _SJC_TAPID 0x1891d01d
}
jtag newtap $_CHIPNAME sjc -irlen 5 -ircapture 0x01 -irmask 0x1f -expected-id $_SJC_TAPID

# GDB target: Cortex-A, using DAP
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_a -endian $_ENDIAN -chain-position $_CHIPNAME.dap -dbgbase 0x02130000

# some TCK cycles are required to activate the DEBUG power domain
jtag configure $_CHIPNAME.sjc -event post-reset "runtest 100"

# ______________________________________________________________________________


transport select jtag
reset_config none
adapter_khz 32

---


It examines the target using v0.9.0 from Ubuntu Repositories

Open On-Chip Debugger 0.9.0 (2015-09-02-10:42)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
jtag
i.MX6UL board loaded.
Warn : imx6.sdma: nonstandard IR value
Warn : Transport "jtag" was already selected
none separate
adapter speed: 32 kHz
eld_init
Info : clock speed 32 kHz
Info : JTAG tap: imx6.dap tap/device found: 0x5ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x5)
Info : TAP imx6.sdma does not have IDCODE
Info : JTAG tap: imx6.sjc tap/device found: 0x1891d01d (mfg: 0x00e, part: 0x891d, ver: 0x1)
Info : imx6.cpu: hardware has 6 breakpoints, 4 watchpoints
Warn : Invalid ACK 0 in JTAG-DP transaction
Polling target imx6.cpu failed, trying to reexamine
Warn : Invalid ACK 0 in JTAG-DP transaction
Warn : Invalid ACK 0 in JTAG-DP transaction
Warn : Invalid ACK 0 in JTAG-DP transaction
Warn : Invalid ACK 0 in JTAG-DP transaction
Warn : Invalid ACK 0 in JTAG-DP transaction

Looking at the console the board carries on booting so the CPU hasn't been halted. I then have to power cycle the JTAG debugger as it stays in this state.


It I turn on debug I get the following for examine targets:


[snip]

Debug: 312 43 openocd.c:150 handle_init_command(): Examining targets...
Debug: 313 43 target.c:1465 target_call_event_callbacks(): target event 21 (examine-start)
Debug: 314 43 arm_adi_v5.c:649 ahbap_debugport_init():
Debug: 315 43 arm_adi_v5.c:691 ahbap_debugport_init(): DAP: wait CDBGPWRUPACK
Debug: 316 43 arm_adi_v5.h:391 dap_dp_poll_register(): DAP: poll 4, mask 0x0820000000, value 0x20000000
Debug: 317 55 arm_adi_v5.c:698 ahbap_debugport_init(): DAP: wait CSYSPWRUPACK
Debug: 318 55 arm_adi_v5.h:391 dap_dp_poll_register(): DAP: poll 4, mask 0x0880000000, value 0x80000000
Debug: 319 81 arm_adi_v5.c:750 ahbap_debugport_init(): MEM_AP Packed Transfers: enabled
Debug: 320 81 arm_adi_v5.c:761 ahbap_debugport_init(): MEM_AP CFG: large data 0, long address 0, big-endian 0
Debug: 321 97 arm_adi_v5.c:823 dap_find_ap(): Found APB-AP at AP index: 1 (IDR=0x44770002)
Debug: 322 105 arm_adi_v5.c:823 dap_find_ap(): Found AHB-AP at AP index: 0 (IDR=0x74770001)
Debug: 323 165 cortex_a.c:2917 cortex_a_examine_first(): cpuid = 0x410fc075
Debug: 324 165 cortex_a.c:2918 cortex_a_examine_first(): ctypr = 0x84448003
Debug: 325 165 cortex_a.c:2919 cortex_a_examine_first(): ttypr = 0x00000000
Debug: 326 166 cortex_a.c:2920 cortex_a_examine_first(): didr = 0x3515f005
Debug: 327 194 cortex_a.c:2957 cortex_a_examine_first(): target->coreid 0 DBGPRSR 0x2b
Info : 328 194 arm_dpm.c:987 arm_dpm_setup(): imx6.cpu: hardware has 6 breakpoints, 4 watchpoints
Debug: 329 194 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 02130140
Debug: 330 208 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 02130144
Debug: 331 216 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 02130148
Debug: 332 224 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 0213014c
Debug: 333 233 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 02130150
Debug: 334 246 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 02130154
Debug: 335 255 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 021301c0
Debug: 336 268 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 021301c4
Debug: 337 277 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 021301c8
Debug: 338 285 cortex_a.c:766 cortex_a_bpwp_disable(): A: bpwp disable, cr 021301cc
Debug: 339 293 cortex_a.c:2982 cortex_a_examine_first(): Configured 6 hw breakpoints
Debug: 340 293 cortex_a.c:206 cortex_a_init_debug_access():
Debug: 341 308 cortex_a.c:219 cortex_a_init_debug_access(): DBGOSLSR 0xa
Debug: 342 331 cortex_a.c:241 cortex_a_init_debug_access(): target->coreid 0 DBGPRSR 0x2b
Debug: 343 347 target.c:1465 target_call_event_callbacks(): target event 22 (examine-end)
Debug: 344 347 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_flash init
Debug: 345 347 command.c:145 script_debug(): command - ocd_flash ocd_flash init
Debug: 347 356 tcl.c:890 handle_flash_init_command(): Initializing flash devices...
Debug: 348 356 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_mflash init
Debug: 349 356 command.c:145 script_debug(): command - ocd_mflash ocd_mflash init
Debug: 351 366 mflash.c:1379 handle_mflash_init_command(): Initializing mflash devices...
Debug: 352 366 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_nand init
Debug: 353 366 command.c:145 script_debug(): command - ocd_nand ocd_nand init
Debug: 355 376 tcl.c:497 handle_nand_init_command(): Initializing NAND devices...
Debug: 356 376 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_pld init
Debug: 357 376 command.c:145 script_debug(): command - ocd_pld ocd_pld init
Debug: 359 386 pld.c:207 handle_pld_init_command(): Initializing PLDs...
Warn : 360 496 adi_v5_jtag.c:252 jtagdp_transaction_endcheck(): Invalid ACK 0 in JTAG-DP transaction
Debug: 361 496 target.c:1465 target_call_event_callbacks(): target event 0 (gdb-halt)
User : 362 496 target.c:2532 handle_target(): Polling target imx6.cpu failed, trying to reexamine
Debug: 363 496 target.c:1465 target_call_event_callbacks(): target event 21 (examine-start)
Debug: 364 496 arm_adi_v5.c:649 ahbap_debugport_init():
Debug: 365 496 arm_adi_v5.c:691 ahbap_debugport_init(): DAP: wait CDBGPWRUPACK
Debug: 366 496 arm_adi_v5.h:391 dap_dp_poll_register(): DAP: poll 4, mask 0x0820000000, value 0x20000000
Warn : 367 507 adi_v5_jtag.c:252 jtagdp_transaction_endcheck(): Invalid ACK 0 in JTAG-DP transaction
Debug: 368 507 arm_adi_v5.c:691 ahbap_debugport_init(): DAP: wait CDBGPWRUPACK
Debug: 369 507 arm_adi_v5.h:391 dap_dp_poll_register(): DAP: poll 4, mask 0x0820000000, value 0x20000000

[snip]


If I run using the latest version in git I get the following
Open On-Chip Debugger 0.10.0+dev-00146-g1025be3-dirty (2017-06-08-08:24)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
i.MX6UL board loaded.
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Warn : imx6.sdma: nonstandard IR value
Warn : Transport "jtag" was already selected
none separate
adapter speed: 32 kHz
eld_init
Info : clock speed 32 kHz
Info : JTAG tap: imx6.dap tap/device found: 0x5ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x5)
Info : TAP imx6.sdma does not have IDCODE
Info : JTAG tap: imx6.sjc tap/device found: 0x1891d01d (mfg: 0x00e (Freescale (Motorola)), part: 0x891d, ver: 0x1)
Error: target->coreid 0 OSLock sticky, core not powered?

with debug
[snip]
Debug: 374 56 openocd.c:153 handle_init_command(): Examining targets...
Debug: 375 56 target.c:1522 target_call_event_callbacks(): target event 21 (examine-start)
Debug: 376 56 arm_adi_v5.c:603 dap_dp_init():
Debug: 377 61 arm_adi_v5.c:637 dap_dp_init(): DAP: wait CDBGPWRUPACK
Debug: 378 61 arm_adi_v5.h:428 dap_dp_poll_register(): DAP: poll 4, mask 0x20000000, value 0x20000000
Debug: 379 71 arm_adi_v5.c:644 dap_dp_init(): DAP: wait CSYSPWRUPACK
Debug: 380 71 arm_adi_v5.h:428 dap_dp_poll_register(): DAP: poll 4, mask 0x80000000, value 0x80000000
Debug: 381 102 arm_adi_v5.c:785 dap_find_ap(): Found APB-AP at AP index: 1 (IDR=0x44770002)
Debug: 382 117 arm_adi_v5.c:712 mem_ap_init(): MEM_AP Packed Transfers: disabled
Debug: 383 117 arm_adi_v5.c:723 mem_ap_init(): MEM_AP CFG: large data 0, long address 0, big-endian 0
Debug: 384 126 arm_adi_v5.c:785 dap_find_ap(): Found AHB-AP at AP index: 0 (IDR=0x74770001)
Debug: 385 141 arm_adi_v5.c:712 mem_ap_init(): MEM_AP Packed Transfers: enabled
Debug: 386 141 arm_adi_v5.c:723 mem_ap_init(): MEM_AP CFG: large data 0, long address 0, big-endian 0
Debug: 387 173 cortex_a.c:3007 cortex_a_examine_first(): didr = 0x3515f005
Debug: 388 173 cortex_a.c:3008 cortex_a_examine_first(): cpuid = 0x410fc075
Debug: 389 189 cortex_a.c:3017 cortex_a_examine_first(): target->coreid 0 DBGPRSR 0x2b
Debug: 390 190 cortex_a.c:3026 cortex_a_examine_first(): target->coreid 0 was reset!
Debug: 391 205 cortex_a.c:3033 cortex_a_examine_first(): target->coreid 0 DBGOSLSR 0xa
Debug: 392 205 cortex_a.c:3039 cortex_a_examine_first(): target->coreid 0 OSLock set! Trying to unlock
Error: 393 223 cortex_a.c:3051 cortex_a_examine_first(): target->coreid 0 OSLock sticky, core not powered?
Debug: 394 223 openocd.c:155 handle_init_command(): target examination failed
Debug: 395 223 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_flash init
Debug: 396 223 command.c:143 script_debug(): command - ocd_flash ocd_flash init
Debug: 398 223 tcl.c:1107 handle_flash_init_command(): Initializing flash devices...
Debug: 399 224 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_mflash init
Debug: 400 224 command.c:143 script_debug(): command - ocd_mflash ocd_mflash init
Debug: 402 224 mflash.c:1377 handle_mflash_init_command(): Initializing mflash devices...
Debug: 403 224 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_nand init
Debug: 404 224 command.c:143 script_debug(): command - ocd_nand ocd_nand init
Debug: 406 224 tcl.c:497 handle_nand_init_command(): Initializing NAND devices...
Debug: 407 224 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_pld init
Debug: 408 224 command.c:143 script_debug(): command - ocd_pld ocd_pld init
Debug: 410 224 pld.c:205 handle_pld_init_command(): Initializing PLDs...


Any help appreciated,

Many Thanks,
Martin.
Matthias Welwarsky
2017-06-09 14:00:04 UTC
Permalink
Post by Martin Townsend
If I run using the latest version in git I get the following
Open On-Chip Debugger 0.10.0+dev-00146-g1025be3-dirty (2017-06-08-08:24)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
i.MX6UL board loaded.
Info : auto-selecting first available session transport "jtag". To override
use 'transport select <transport>'. Warn : imx6.sdma: nonstandard IR value
Warn : Transport "jtag" was already selected
none separate
adapter speed: 32 kHz
eld_init
Info : clock speed 32 kHz
Info : JTAG tap: imx6.dap tap/device found: 0x5ba00477 (mfg: 0x23b (ARM
Ltd.), part: 0xba00, ver: 0x5)
Info : TAP imx6.sdma does not have IDCODE
Info : JTAG tap: imx6.sjc tap/device found: 0x1891d01d (mfg: 0x00e
(Freescale (Motorola)), part: 0x891d, ver: 0x1) Error: target->coreid 0
OSLock sticky, core not powered?
The OS running on the board has put the cpu core to sleep? Maybe disable the
CPU idle handling and try again?

BR,
Matthias
Post by Martin Townsend
Any help appreciated,
Many Thanks,
Martin.
Loading...