[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bricked Sheevaplug



Did the same commands as listed in previous email, this time from a Raspberry PI running Debian.

The modules in this version of openocd on the RPI must be improved. Instead of a segment fault result running openocd from a Dell laptop with Debian Squeeze this run came back with a more appropriate message.

I am wondering if the replacement of the small Alkaline button battery (the old one was leaking) has anything to do with the problems experienced with even seeing the JTAG port on the SheevaPlug???

root@raspberrypi:/home/pi# openocd -s /usr/share/openocd/scripts/ -f interface/sheevaplug.cfg -f board/sheevaplug.cfg -c init
Open On-Chip Debugger 0.5.0 (2012-05-23-17:50)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
2000 kHz
Warn : Interface already configured, ignoring
Error: already specified ft2232_layout sheevaplug
2000 kHz
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
dcc downloads are enabled
Warn : use 'feroceon.cpu' as target identifier, not '0'
sheevaplug_load_uboot
Error: unable to open ftdi device: device not found
in procedure 'init'




----- Original Message -----
From: DrEagle <dreagle@doukki.net>
To: Herman Swartz <herman_swartz@yahoo.com>
Cc: "debian-arm@lists.debian.org" <debian-arm@lists.debian.org>
Sent: Monday, December 3, 2012 1:19 PM
Subject: Re: Bricked Sheevaplug

Sorry for the delay, I just come back home !

Le 03/12/2012 16:04, Herman Swartz a écrit :
> No, I do not. Have been searching for a package for the USB/JTAG driver. I have been searching for the driver. Plethora of hits to wade through to find a fit.

You need libftdi1 from debian repositories :
# sudo apt-get install libftdi1

Make a lsusb after pluggin and power up the sheevaplug to get the correct USB device information for your JTAG :
# lsusb
Bus 001 Device 008: ID 9e88:9e8f  

Verify driver status :
# dmesg
[22605.988095] usb 1-6.4: new full-speed USB device number 8 using ehci_hcd
[22606.086953] usb 1-6.4: New USB device found, idVendor=9e88, idProduct=9e8f
[22606.086957] usb 1-6.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[22606.086960] usb 1-6.4: Product: SheevaPlug JTAGKey FT2232D B
[22606.086962] usb 1-6.4: Manufacturer: FTDI
[22606.086964] usb 1-6.4: SerialNumber: FTSY7LXO
[22606.116910] usbcore: registered new interface driver usbserial
[22606.116925] USB Serial support registered for generic
[22606.116971] usbcore: registered new interface driver usbserial_generic
[22606.116973] usbserial: USB Serial Driver core
[22606.119212] USB Serial support registered for FTDI USB Serial Device
[22606.119342] usb 1-6.4: Ignoring serial port reserved for JTAG
[22606.119376] ftdi_sio 1-6.4:1.1: FTDI USB Serial Device converter detected
[22606.119423] usb 1-6.4: Detected FT2232C
[22606.119425] usb 1-6.4: Number of endpoints 2
[22606.119428] usb 1-6.4: Endpoint 1 MaxPacketSize 64
[22606.119430] usb 1-6.4: Endpoint 2 MaxPacketSize 64
[22606.119432] usb 1-6.4: Setting MaxPacketSize 64
[22606.119806] usb 1-6.4: FTDI USB Serial Device converter now attached to ttyUSB0
[22606.119832] usbcore: registered new interface driver ftdi_sio
[22606.119834] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

Then modify your /usr/share/openocd/scripts/interface/sheevaplug.cfg 
#
# Marvel SheevaPlug Development Kit
#
# http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp
#

interface ft2232
ft2232_layout sheevaplug
ft2232_vid_pid 0x9e88 0x9e8f
ft2232_device_desc "SheevaPlug JTAGKey FT2232D B"
adapter_khz 2000

You can now communicate with your sheevaplug by JTAG with 2 terminals :

- In the first terminal launch openocd JTAG debugger with :
# sudo openocd -s /usr/share/openocd/scripts/ -f interface/sheevaplug.cfg -f board/sheevaplug.cfg -c init
Open On-Chip Debugger 0.5.0 (2011-08-09-08:45)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
2000 kHz
Warn : Interface already configured, ignoring
Error: already specified ft2232_layout sheevaplug
2000 kHz
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
dcc downloads are enabled
Warn : use 'feroceon.cpu' as target identifier, not '0'
sheevaplug_load_uboot
Info : clock speed 2000 kHz
Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)
Info : Embedded ICE version 0
Info : feroceon.cpu: hardware has 1 breakpoint/watchpoint unit

Then in a secondary terminal you can communicate with :
# telnet localhost 4444

First terminal will show :
Info : accepting 'telnet' connection from 4444

And the second (telnet) one will give you a prompt :
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> 

The must is that you can open a *third* terminal with cu to communicate directly with the sheevaplug :
# cu -s 115200 -l /dev/ttyUSB0 
Connected.

Try to follow me :
#1 DEBBUGER
#2 JTAG COMMANDS
#3 SHEEVAPLUG TERMINAL ACCESS

just make a reset on the #2 to verify all works fine :
> reset
JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)
> 
#1 will show the command received :
Info : JTAG tap: feroceon.cpu tap/device found: 0x20a023d3 (mfg: 0x1e9, part: 0x0a02, ver: 0x2)

The last terminal (#3) will go through a reset (like with the switch) and make a power boot up cycle :
         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
_   _     ____              _
| | | |   | __ )  ___   ___ | |_ 
| | | |___|  _ \ / _ \ / _ \| __| 
| |_| |___| |_) | (_) | (_) | |_ 
\___/    |____/ \___/ \___/ \__| 
** MARVELL BOARD: SHEEVA PLUG LE 

U-Boot 1.1.4 (Dec 27 2009 - 22:03:21) Marvell version: 3.4.27

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CFEE0

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz 

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB 
DRAM CS[1] base 0x10000000   size 256MB 
DRAM Total size 512MB  16bit width
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:512 MB
Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled 
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0 
Marvell>> 

Intterupt by a keypress on the #3...
Then hack your sheevaplug.

If you need a complete uboot reset by jtag with openocd, copy your uboot.kwb into a folder from where you execute the sessions renaming it into uboot.bin.

Execute a flash with command into #2 :
> init
> sheevaplug_reflash_uboot
when it is finished make a reset
> reset

If you only want to load the uboot without flashing it copy uboot.elf in the sessions folder.
The same as for flashing but with another command :
> init
> sheevaplug_load_uboot
when it is finished it start the new loaded uboot.

> No, ftdi_sio driver not loaded.
> 
> The Windows driver that came with the Sheeva Devel Kit did work until I upgraded the Uboot to a generic open source version. After the upgrade serial port access worked at times but after a few hours stopped working all together.

From windows and I have no idea and never tried the procedure...

> I have a PC with Debian Squeeze and a Raspberry Pi with latest version of Rasperian. Trying to use openocd to unbrick the PLUG if I could only get the proper FTDI driver loaded and the USB support for it.

You can also get a VBox with a Debian installation from you windows.
The USB can be attached from the windows host to the virtualized debian.

> There was a Raspberry Pi drive full issue I needed to resolve before picking back up with it.

Enjoy and good hacking !

> ----- Original Message -----
> From: DrEagle <dreagle@doukki.net>
> To: Herman Swartz <herman_swartz@yahoo.com>
> Cc: debian-arm@lists.debian.org
> Sent: Thursday, November 29, 2012 9:29 AM
> Subject: Re: Bricked Sheevaplug
> 
> Have you verified and configured your USB/JTAG driver ?
> 
> You may need to modify /usr/share/openocd/scripts/interface/sheevaplug.cfg according to what lsusb shows for your sheevaplug.
> 
> Do you have ftdi_sio driver loaded ?
> 
> On 29.11.2012 13:51, Herman Swartz wrote:
>> Here is the results of running the openocd command on another Debian
>> box. The USB cable connects to this box and the mini USB end of the
>> cable connects to the PLUG.
>>
>> I can find a lot of hits on this message but no explanations.
>>
>>  openocd -f /usr/share/openocd/scripts/board/sheevaplug.cfg
>> Open On-Chip Debugger 0.3.1 (2009-11-25-12:22)
>> $URL$
>> For bug reports, read
>>        http://openocd.berlios.de/doc/doxygen/bugs.html
>> 2000 kHz
>> trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
>> jtag_nsrst_delay: 200
>> jtag_ntrst_delay: 200
>> dcc downloads are enabled
>> Warn : use 'feroceon.cpu' as target identifier, not '0'
>> Segmentation fault
>>
>>
>>
>> ----- Original Message -----
>> From: DrEagle <dreagle@doukki.net>
>> To: debian-arm@lists.debian.org
>> Cc:
>> Sent: Thursday, November 29, 2012 2:51 AM
>> Subject: Re: Bricked Sheevaplug
>>
>> On 28.11.2012 16:21, Clint Adams wrote:
>>> On Tue, Nov 27, 2012 at 08:56:14PM -0800, Herman Swartz wrote:
>>>> Do you have info or links to instruction on how to use openocd with Sheeva PLUG? A cfg file for PLUG would help.
>>>
>>> /usr/share/openocd/scripts/board/sheevaplug.cfg
>>> /usr/share/openocd/scripts/interface/sheevaplug.cfg
>>>
>>> are in the Debian openocd package.
>>>
>>> Note that I have encountered two different varieties of SheevaPlug in
>>> the wild, and had to use a modified config for one of them.
>>
>> Sometime, if the flash do not work, I have tested that changing
>> "-work-area-phys 0x10000000 \" to "-work-area-phys 0x100000 \" can
>> help to resolve the flash.
>>
>> Sometime, it may also be needed to quickly reset while openocd is launched :
>> 1. reset / switch on the plug
>> 2. enter the openocd command to flash
>>
>>
>>
>> -- To UNSUBSCRIBE, email to debian-arm-REQUEST@lists.debian.org
>> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>> Archive: http://lists.debian.org/339fde8d401a1ba7dac20946ab5e6995@gk2.net
> 
> 
> -- To UNSUBSCRIBE, email to debian-arm-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: http://lists.debian.org/fe8ee42e6e57c5ec6f8922041685bc27@gk2.net
> 
> 
>


Reply to: