• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1]
Author Topic: Serial port problem?  (Read 1450 times)
4cx1000a
Newbie
*

Karma: 0
Posts: 11


View Profile
« on: May 26, 2010, 07:04:41 AM »

I have three SheevaPlugs. On two of them I have installed new OS's using sheevaplug-installer-v1.0, albeit not without some difficulty in the case of the first one.

I want to upgrade the OS on the third, which I've been using as a mail server for the past year or so. However, I get the following errors:

Error: unexpected Feroceon EICE version signature
Error: timed out while waiting for target halted

I tried esia, but got more or less the same error.

Something interesting happens when I connect with minicom, though. If I wait for the plug to boot, I can log in as root, which means my serial connection must be good.

But during the boot process, when it says "hit any key to stop autoboot", it doesn't respond to any keystrokes, but autoboots regardless. I've a feeling this is why I can't get sheevaplug-installer or esia to work.

When it's done booting, though, I'll be able to log in and type commands just fine.

Has anyone else ever had this problem?

So far I've tried different USB cables, and I've tried three different computers: one running Windows XP, one running Ubuntu 9.10, and the third running Ubuntu 10.04. I've also tried both esia and sheevaplug-installer, but always come up against "unexpected Feroceon EICE version signature".
Logged

4cx1000a
Newbie
*

Karma: 0
Posts: 11


View Profile
« Reply #1 on: May 26, 2010, 07:35:00 AM »

Update:

I just installed putty, and with that I can interrupt the autoboot.

However, sheevaplug-install-1.0 still gives me:


Error: unexpected Feroceon EICE version signature
Error: timed out while waiting for target halted
Runtime error, file "openocd/config/board/sheevaplug.cfg", line 21:
    Segmentation fault
 ****   openocd FAILED
 ****   Is the mini USB cable connected?
 ****   Try powering down, then replugging the Sheevaplug
Logged

4cx1000a
Newbie
*

Karma: 0
Posts: 11


View Profile
« Reply #2 on: May 28, 2010, 06:55:53 AM »

THE ANSWER, or at least *an* answer:

It would appear that some plugs won't do the JTAG thing. No matter what you do, you'll always get "JTAG scan chain interrogation failed: all zeroes" or some such. The answer to that problem I'm going to leave to someone with more time than I have.

My plug is an early plug, ordered in March 2009. Its reset button is on the opposite side of the plug from the card slot.

It was possible to update U-Boot and install an OS without using JTAG. I needed a working serial connection to the plug, however, and something like putty (don't use minicom!). Here's what I did (WARNING: SKIP THE U-BOOT UPDATE UNLESS YOU'RE SURE YOU NEED IT; IF IT FAILS, YOU WILL HAVE A BRICKED PLUG):

Copied the files in sheevaplg-installer-v1.0/installer to a FAT32 USB flash drive and inserted the flash drive into the plug.

Made a serial connection to the plug.

Used a straightened paperclip to hit the reset button.

Pressed any key at the appropriate point to interrupt the boot and get a Marvell prompt.

Used the "printenv" command on the plug to find the "serverip" address (which was 10.4.50.5 on my plug but may differ on yours).

Set up a tftp server on a laptop set to that address, connected to the plug's Ethernet jack with a crossover cable.

Copied the uboot.bin file from sheevaplug-installer-v1.0/uboot into the tftp server directory as "u-boot.bin".

Used the "bubt" command on the plug to retrieve and install the U-Boot file (NOTE: IF THIS HAD FAILED, I WOULD HAVE HAD A BRICKED PLUG WITH NO HOPE OF RECOVERY!).

Restarted the plug and stopped it at the Marvell prompt.

Used "cat sheevaplug-installer-v1.0/uboot/uboot-env/uboot-nand-custom.txt" to display the commands needed to import and install the OS.

Entered the commands via copy and paste, one at a time, into the plug at the Marvell prompt, after the word "setenv", thus:

setenv bootargs_root ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifsmtdpartitions

setenv mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)

setenv ethaddr xx:xx:xx:xx:xx:xx (using the address printed on the back of your plug in place of xx:xx:xx:xx:xx:xx)

setenv real_bootcmd 'setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000'

(note: failure to insert the single quotes will cause a premature reboot)

setenv bootargs_console console=ttyS0,115200

setenv bootcmd run recover1

(Note: I had to put single quotes around the arguments of all of the sollowing setenv's.)

setenv recover1 'setenv mainlineLinux yes; setenv arcNumber 2097; setenv bootcmd run recover2; saveenv; reset'

My plug complained that the recover2 arguments were too many, so I broke this command into recover2a and recover2b, thus:

setenv recover2a 'run recover3; setenv bootcmd $(real_bootcmd); saveenv'

setenv recover2b 'setenv bootargs $(bootargs_console) $(mtdpartitions) root=/dev/ram0 rw ramdisk=0x01100000,8M install_type=nand; bootm 0x00800000 0x01100000'

setenv recover2 'run recover2a; run recover2b'

setenv recover3 'run recover4; nand erase clean 0x00100000 0x00400000; nand write.e 0x00800000 0x00100000 0x00400000'

setenv 'recover4 usb start; fatload usb 0 0x00800000 uImage; fatload usb 0 0x01100000 initrd'

Having got through all of this, I now entered:

saveenv

reset

...and the OS was loaded, the plug rebooted, and I got a login prompt.
Logged

Pages: [1]
Print
Jump to: