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

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
> 
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: