Welcome! Log In Create A New Profile

Advanced

Bricked my i-Connect ?

Posted by treepleks 
Bricked my i-Connect ?
June 08, 2014 07:38AM
I got an i-Connect and wanted to setup a small NAS/Audio server on it. I successfully installed ArchLinux, booting from an USB disk, following http://archlinuxarm.org/forum/viewtopic.php?t=1472.

This is a simple move: it just changes the bootcmd to scan usb port first and boot from /boot/uImage if it can be found.

Everything worked fine, but an ArchLinux update broke the system. Apparently, the last version of systemd (the replacement of init used in ArchLinux) requires a new kernel. I updated the kernel but the new kernel install warned me that it requires a recent version of uBoot to work, so I decided to try to update the uboot following http://forum.doozan.com/read.php?3,12381 using the iconnect uboot image provided there (great resource).

I must confess I skipped step 3 (and this one alone).
Quote

3. Be sure to save your current uBoot image in mtd0, or have a backup image saved somewhere as precaution.
so I do not have a backup image.

The MTD had no bad block in the region of uboot (dmesg), I erased, flashed with the untar'd image and checked the env variables with no problem. They were all unchanged (including the eth MAC address).

I wanted to get netconsole in case something might fail. So over the existing env, I changed the ipaddr and serverip

and added

fw_setenv if_netconsole 'ping $serverip' 
fw_setenv start_netconsole 'setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;' 
fw_setenv preboot 'run if_netconsole start_netconsole'

and rebooted. The crossed fingers did not help. I get nothing on netconsole (nc -l -u -p 6666 remains quiet on the serverip side). When the iconnect boots, the blue LED lights (in the weak mode) after 2 to 3 seconds, and then... nothing happens (as far as I can see).

I set up the netconsole because I do not have a serial access.
Before I rebooted, the env variables were as follows:

baudrate=115200
loads_echo=0
rootpath=/mnt/ARM_FS/
netmask=255.255.255.0
usbstart=usb start
run_diag=yes
console=console=ttyS0,115200 mtdparts=nand_mtd:0xc0000@0(uboot)ro,0x1ff00000@0x100000(root)
CASset=min
MALLOC_len=1
bootargs_root=root=/dev/nfs rw
bootargs_end=:::orion:eth0:none
image_name=uImage
standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000;
ethmtu=1500
eth1addr=00:50:43:5a:1a:2d
eth1mtu=1500
mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs
mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500
usb0Mode=host
yuk_ethaddr=00:00:00:EE:51:81
netretry=no
rcvrip=169.254.100.100
loadaddr=0x02000000
autoload=no
iomega=123
nandEcc=1bit
ethprime=egiga0
ethact=egiga0
arcNumber=1682
uboot_start=0x0
uboot_size=0xc0000
env_start=0xa0000
env_size=0x20000
kernel_start=0x100000
kernel_size=0x300000
initrd_start=0x540000
initrd_size=0x300000
boot_start=0x980000
boot_size=0x1f400000
flash_load=run make_boot_args load1 load2 boot
load1=nand read.e 0x2000000 $(kernel_start) $(kernel_size)
load2=nand read.e 0x4500000 $(initrd_start) $(initrd_size)
boot=bootm 0x2000000 0x4500000
krn=run a b c
rd=run d e f
a=tftp 0x2000000 zImage
b=nand erase $(kernel_start) $(kernel_size)
c=nand write.e 0x2000000 $(kernel_start) $(kernel_size)
d=tftp 0x4500000 initrd
e=nand erase $(initrd_start) $(initrd_size)
f=nand write.e 0x4500000 $(initrd_start) $(initrd_size)
flashall=run krn rd
make_boot_args=setenv bootargs console=ttyS0,115200 mtdparts=orion_nand:;setenv bootargs $(bootargs)$(uboot_size)@$(uboot_start)(uboot),;setenv bootargs $(bootargs)$(env_size)@$(env_start)(env),;setenv bootargs $(bootargs)$(kernel_size)@$(kernel_start)(zImage),;setenv bootargs $(bootargs)$(initrd_size)@$(initrd_start)(initrd),;setenv bootargs $(bootargs)$(boot_size)@$(boot_start)(boot)
stdin=serial
stdout=serial
stderr=serial
mainlineLinux=yes
enaMonExt=no
enaCpuStream=no
enaWrAllo=no
pexMode=RC
disL2Cache=no
setL2CacheWT=yes
disL2Prefetch=yes
enaICPref=yes
enaDCPref=yes
sata_dma_mode=yes
netbsd_en=no
vxworks_en=no
bootdelay=3
disaMvPnp=no
hddPowerCtrl=no
enaAutoRecovery=yes
pcieTune=no
ethaddr=00:D0:B8:0D:29:C5
make_bootsetenv=make_boot_args setenv bootargs console=ttyS0,115200 mtdparts=orion_nand:;setenv bootargs $(bootargs)$(uboot_size)@$(uboot_start)(uboot),;setenv bootargs $(bootargs)$(env_size)@$(env_start)(env),;setenv bootargs $(bootargs)$(kernel_size)@$(kernel_start)(zImage),;setenv bootargs $(bootargs)$(initrd_size)@$(initrd_start)(initrd),;setenv bootargs
bootargs=setenv bootargs console=ttyS0,115200
boot_starsetenv=boot_start 0x980000
boot_sizesetenv=boot_size 0x1f400000
MAPOWERENV=Ver. 1.1.25 Chinese
usb_scan_1=setenv usb 0:1; setenv dev sda1
usb_scan_2=setenv usb 1:1; setenv dev sdb1
usb_scan_3=setenv usb 2:1; setenv dev sdc1
usb_scan_4=setenv usb 3:1; setenv dev sdd1
usb_scan_5=setenv usb 0:1; setenv dev sda2
usb_scan_6=setenv usb 1:1; setenv dev sdb2
usb_scan_7=setenv usb 2:1; setenv dev sdc2
usb_scan_8=setenv usb 3:1; setenv dev sdd2
bootcmd_usb_1=run usb_scan_1;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /boot/uImage;bootm 0x00800000
bootcmd_usb_2=run usb_scan_2;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /boot/uImage;bootm 0x00800000
bootcmd_usb_3=run usb_scan_3;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /boot/uImage;bootm 0x00800000
bootcmd_usb_4=run usb_scan_4;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /boot/uImage;bootm 0x00800000
bootcmd_usb_5=run usb_scan_5;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /uImage;bootm 0x00800000
bootcmd_usb_6=run usb_scan_6;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /uImage;bootm 0x00800000
bootcmd_usb_7=run usb_scan_7;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /uImage;bootm 0x00800000
bootcmd_usb_8=run usb_scan_8;run make_usb_bootargs;ext2load usb $(usb) 0x00800000 /uImage;bootm 0x00800000
make_usb_bootargs=setenv bootargs console=ttyS0,115200 root=/dev/$(dev) rootdelay=10
bootcmd_usb=usb start;run bootcmd_usb_1;run bootcmd_usb_2;run bootcmd_usb_3;run bootcmd_usb_4;run bootcmd_usb_5;run bootcmd_usb_6;run bootcmd_usb_7;run bootcmd_usb_8
bootcmd=run bootcmd_usb; run flash_load
ipaddr=192.168.0.7
serverip=192.168.0.1
if_netconsole=ping $serverip
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
preboot=run if_netconsole start_netconsole

Note that the internal flash (kernel/root) is the original iConnect firmware, which will probably not boot (because of the different arcnumber in the new uboot and the old one).

Is the 'weak blue led on' after 2.5" a sign of (relative) health ?
Any idea of where the issue could be ?
I assume a serial or worse JTAG access is now needed to unbrick it. Correct ?
Re: Bricked my i-Connect ?
June 08, 2014 07:41AM
I just realized the arcnumber is still

arcNumber=1682

could it be the source of the problem ?
Re: Bricked my i-Connect ?
June 08, 2014 08:49AM
@treepleks,

Looking at your u-boot envs, I think you must have skipped this most important section:

Quote

This assumes that your plug has been installed with Jeff's official installation script. The official installation script does not cover iConnect and Netgear Stora. For these 2 boxes, u-Boot envs might have been defined at a different location. So note that fact and check your iConnect/Netgear Stora /etc/fw_env.config. If the envs are at a different location than 0xC0000, then I would recommend only flashing this new u-Boot for these 2 boxes if you have serial console working, as a precaution. After flashing U-Boot image, your original U-Boot envs will have to be re-entered manually again before rebooting.

1. uBoot envs config and mtd partitions are already define as followed:
cat /etc/fw_env.config

# MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd0 0xc0000 0x20000 0x20000

cat /proc/mtd

dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00400000 00020000 "uImage"
mtd2: 02000000 00020000 "rootfs"
mtd3: 0db00000 00020000 "data"

iConnect original u-boot envs is at a different location than 0xC0000. If you are running Arch, the envs location is the same as the original one, and it is not 0xC0000.

So if you did ignore these requirements :), the only way to recover now is to connect a serial console. Connect serial console and I'll help get you running again.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: Bricked my i-Connect ?
June 17, 2014 04:32PM
Ok. I will need cables then... I'm going to order some.

Thanks for your help proposal. I'll come back soon :-)

Treepleks
Re: Bricked my i-Connect ?
June 30, 2014 02:45PM
Hello bohdi,

I just received my USB/UART TTL converter. I connected to the serial port inside the iConnect and... the serial connection is working.
I effectively noticed that the env variables are absent. Upon booting, u Boot says

U-Boot 2014.01-tld-1 (Mar 17 2014 - 22:10:57)
Iomega iConnect
od 88F6281_A0
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  512 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Warning: failed to set MAC address

Hit any key to stop autoboot:  0

Should I just reenter all the env variables values by hand and then "savenv" ?
Re: Bricked my i-Connect ?
June 30, 2014 04:35PM
I actually did successfully rebooted using a minimum set of setenv. I had troubles with quoting and $(var) being replaced by ${var}. But it now boots alone again !
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: