Switch to full style
In-depth technology research: finding new ways to recover data, accessing firmware, writing programs, reading bits off the platter, recovering data from dust.

Forum rules

Please do not post questions about data recovery cases here (use this forum instead). This forum is for topics on finding new ways to recover data. Accessing firmware, writing programs, reading bits off the platter, recovering data from dust...
Post a reply

Marvell 88i6745M JTAG

September 27th, 2020, 14:39

Hello ,

I'm just starting to use openocd with a Marvell 88i6745n. I saw some exchange about Marvell 88i6745n but not with the version m

I find it on a usb external hard drive ( WD800BEVSS-08RS) . On the PCB, there is no flash, so I presume firmware is inside the Marvell.

I found JTAG pin ( Thanks Dejan) and I confirm them with JTAGEnum

I used openocd on a Raspberry zero with command as below :

Code:
openocd -f tcl/interface/raspberrypi-native.cfg -c "transport select jtag" -c "adapter_khz 1000"


Code:
Open On-Chip Debugger 0.10.0+dev-00930-g09eb941c (2019-09-16-23:29)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
trst_only separate trst_push_pull

jtag
adapter speed: 1000 kHz

jtag_ntrst_delay: 200

Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : BCM2835 GPIO JTAG/SWD bitbang driver
Info : JTAG and SWD modes enabled
Info : clock speed 100 kHz
Info : JTAG tap: feroceon.cpu tap/device found: 0x259663d3 (mfg: 0x1e9 (Marvell Semiconductors), part: 0x5966, ver: 0x2)
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit
Error: unexpected Feroceon EICE version signature
Info : Listening on port 3333 for gdb connections
Info : accepting 'telnet' connection on tcp/4444


after a telnet 4444, I can't halt ( there is a timeout) :(

i tried a Marvell.cfg as below but the result is the same

I tryed feroceon.cfg but there a Segmentation fault at the end

Code:
target halted in ARM state due to debug-request, current mode: Thread
cpsr: 0x00000000 pc: 0xffffffe8
MMU: disabled, D-Cache: disabled, I-Cache: disabled
Error: invalid mode value encountered 25
Warn : ThumbEE -- incomplete support
Error: cpsr contains invalid mode value - communication failure
Polling target feroceon.cpu failed, trying to reexamine
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit
Error: unexpected Feroceon EICE version signature
Error: Jazelle debug entry -- BROKEN!
Warn : ThumbEE -- incomplete support
Segmentation fault


If someone know how to help me, I ll be happy :)

Re: Marvell 88i6745M JTAG

September 28th, 2020, 8:17

Are you doing this in an attempt to recover the data or just as a research project?

Re: Marvell 88i6745M JTAG

October 6th, 2020, 16:18

Hello,

Sorry for the delay, it is just for research

Re: Marvell 88i6745M JTAG

July 3rd, 2022, 23:47

Use this, rather than feroceon.cfg - the ARM CPU isn't quite a feroceon, it's something else. arm920t seems to work well enough.

Code:
set _CPU_TAPID 0x259663d3
set _CHIPNAME 88i6745

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

set _CHIPTYPE arm920t
set _TARGETNAME $_CHIPNAME.cpu
jtag newtap $_CHIPNAME tap -irlen 4 -expected-id $_CPU_TAPID
target create $_TARGETNAME $_CHIPTYPE -endian $_ENDIAN -chain-position $_CHIPNAME.tap
Post a reply