OpenWrt Forum Archive

Topic: Support for Marvell 88F5xx81 based routers

The content of this topic has been archived between 18 Jan 2014 and 6 May 2018. Unfortunately there are posts – most likely complete pages – missing.

rviktor wrote:

hi!
I'm new here, so please don't flame me if what I'm asking is bullshit^^.

Is there any chance that the DIR-615 A1 will be supported? If I saw it correctly it should have the same type of cpu too, with the same amount of ram/flash.
(edit: grammar)

Nothing bullshit about the question. Very valid and timely. Since we're having some success with the WRT350n v2.x models and since the wireless card is one of the few headaches left, it's about time some people stepped up to the plate, taken the hard work done by kaloz and others with the kernel and done something about some routers with slightly different hardware configurations..

That being said.. different chipset for the switch (Marvell 88E661-LAJ1) and a different wireless card chipset (Marvel 88W8361 Mini-PCI). SO the absolute short answer is 'YES, it (probably) will be, but not at this time."

The CPU side of things will probably be ok, BUT if the switch doesn't work and the wireless doesn't work.. then you have an.. expensive LED FLashlight? (and not even a very bright one..)

On the plus side, the Switch Chipsets are both Marvell, so at a guess, they MAY be compatible.

With the wireless card, it would appear that it is removable and interchangeable, but even that may be unnecessary as a quick google search reveals that this chipset is more commonly known as a 'Marvell TopDog' chipset and that there are numerous linux drivers for it.

Bundling all the bits together will be a matter of finding someone with the right hardware, the right knowledge and the willingness to take some risks. I don't think it's VERY risky, if you have some linux knowledge, then you should be ok..

Some points to confirm before you go too much further however, get a serial output going.. Find out if your router also uses uBoot as it's CFE, which I am relatively sure it will. If it does, try and see if you can find out if the mtd (memory allocation sizes) allocation address for uboot is the same as with the linksys router, just so you can be sure that you do not overwrite the uboot partition or the ercomm part.

Checking those things is quite safe and *very* useful for the developers in this forum, should you be able to get it done.

Enjoy!

DBM

(Last edited by DaBigMac on 26 Sep 2009, 13:14)

@rviktor:
Read the first pages of this thread and see how Kaloz, DirkNL, StrikerNL got the WRT350Nv2 into the Linux kernel source with help from Marvell itself.
Also get the GPL source for your router, if it is not on the manufacturer's homepage then mail them.

(Last edited by maddes.b on 26 Sep 2009, 21:12)

% tip ucom0
U-Boot 1.1.1 (Jan 19 2007 - 11:08:07)
CAMEO uBoot Linux Loader version: 1.3.0.0

DRAM CS[0] base 0x00000000   size  32MB
DRAM Total size  32MB
before entry mvFlashInit
Flash: flashStructGet manu 0x89 id 0x17
INTEL 28F640J3A (64 Mbit)
Size:  8 MB,Bus Width: 1, device Width: 1.
Flash base: 0xff800000,Number of Sectors: 64 Type: REGULAR.
[8192kB@ff800000] Flash:  8 MB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
*** Warning - bad CRC, using default environment


Soc: 88F5181 B1
CPU: ARM926 (Rev 0) running @ 500Mhz
SysClock = 166Mhz , TClock = 166Mhz


USB 0: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0
Marvell>>

It wasn't me who did it, found it at: http://bsdimp.blogspot.com/2008/06/addi … r-615.html
GPL source available at: ftp://ftp.dlink.com/GPL/DIR-615_revA/DI … GPL.tar.gz

<0>

U-Boot 1.1.1 (Jan 19 2007 - 11:08:07)
CAMEO uBoot Linux Loader version: 1.3.0.0

DRAM CS[0] base 0x00000000   size  32MB 
DRAM Total size  32MB 
before entry mvFlashInit 
Flash: flashStructGet manu 0x89 id 0x17 
INTEL 28F640J3A (64 Mbit)
Size:  8 MB,Bus Width: 1, device Width: 1.
Flash base: 0xff800000,Number of Sectors: 64 Type: REGULAR.
  Sector Start Addresses:
    00000000      00020000      00040000      00060000      00080000     
    000a0000      000c0000      000e0000      00100000      00120000     
    00140000      00160000      00180000      001a0000      001c0000     
    001e0000      00200000      00220000      00240000      00260000     
    00280000      002a0000      002c0000      002e0000      00300000     
    00320000      00340000      00360000      00380000      003a0000     
    003c0000      003e0000      00400000      00420000      00440000     
    00460000      00480000      004a0000      004c0000      004e0000     
    00500000      00520000      00540000      00560000      00580000     
    005a0000      005c0000      005e0000      00600000      00620000     
    00640000      00660000      00680000      006a0000      006c0000     
    006e0000      00700000      00720000      00740000      00760000 (RO)
    00780000 (RO) 007a0000 (RO) 007c0000 (RO) 007e0000 (RO)
[8192kB@ff800000] Flash:  8 MB
Addresses 20M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (20M - 16M): Done
*** Warning - bad CRC, using default environment


Soc: 88F5181 B1
CPU: ARM926 (Rev 0) running @ 500Mhz 
SysClock = 166Mhz , TClock = 166Mhz 


USB 0: host mode
PCI 0: PCI Express Root Complex Interface
PCI 1: Conventional PCI, speed = 33000000
Net:   egiga0 [PRIME]
Hit any key to stop autoboot:  0 
### JFFS2 loading 'uImage' to 0x400000
Scanning JFFS2 FS: ..... done.

### JFFS2 load complete: 1099492 bytes loaded to 0x400000
## Booting image at 00400000 ...
   Image Name:   Linux-2.4.27-vrs1
   Created:      2007-07-26   6:29:23 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1099428 Bytes =  1 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.......................................................................... done, booting the kernel.
ZLinux version 2.4.27-vrs1 (root@localhost.localdomain) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-1)) #2 Thu Jul 26 14:28:55 CST 2007
CPU: ARM926EJ-Sid(wb) revision 0
Machine: MV-88fxx81
Using UBoot passing parameters structure
Sys Clk = 166000000, Tclk = 166000000


- Warning - This LSP release was tested only with U-Boot release 1.7.0 

On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,115200 mtdparts=phys_mapped_flash:6m(root),1m@6m(nvram),1m@7m(uboot)ro root=/dev/mtdblock1 rw ip=192.168.0.1:192.168.0.100:::DB88FXX81:eth0:none
Calibrating delay loop... 331.77 BogoMIPS
Memory: 32MB 0MB 0MB 0MB = 32MB total
Memory: 29884KB available (2034K code, 366K data, 88K init)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
CPU: Testing write buffer: pass
POSIX conformance testing by UNIFIX
init hw started.

CPU Interface
-------------
SDRAM_CS0 ....base 00000000, size  32MB 
SDRAM_CS1 ....disable
SDRAM_CS2 ....disable
SDRAM_CS3 ....disable
PEX0_MEM ....base e0000000, size 128MB 
PEX0_IO ....base f2000000, size   1MB 
PCI0_MEM ....base e8000000, size 128MB 
PCI0_IO ....base f2100000, size   1MB 
INTER_REGS ....base f1000000, size   1MB 
DEVICE_CS0 ....no such
DEVICE_CS1 ....no such
DEVICE_CS2 ....no such
DEV_BOOCS ....base f4000000, size  16MB 
PCI: bus0: Fast back to back transfers enabled
HW already initialized.
PCI: bus1: Fast back to back transfers enabled
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
 bankwidth 1, base f4000000, size 1000000

  Marvell Development Board (LSP Version 0.0.102)-- RD-88F5181L-VOIP-FE 

 Detected Tclk 166000000 and SysClk 166000000 
Starting kswapd
Journalled Block Device driver loaded
NTFS driver v1.1.22 [Flags: R/O]
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0xf1012000 (irq = 3) is a 16550A
HDLC line discipline: version $Revision: 1.1.1.1 $, maxframe=4096
N_HDLC line discipline registered.
Marvell Gigabit Ethernet Driver 'egiga':
  o Ethernet descriptors in DRAM
  o DRAM SW cache-coherency
  o Loading network interface 
  o Using switch header mode
qdInit 
qdStart: CPU port 0x5 
Switch driver initialized
Can't get netConfig: Use default
UNM is not initialized yet
2 VLANs created: CpuPortMask = 0x1f
vid=0:  DISABLED(0), portMask=0x7c0, portNum=5
vid=1:       VLAN_1, portMask=0x10, portNum=1
vid=2:       VLAN_2, portMask=0x0f, portNum=4
vid=12: ISOLATED(12), portMask=0x00, portNum=0
Port - Vlan
 0  - VLAN_2
 1  - VLAN_2
 2  - VLAN_2
 3  - VLAN_2
 4  - VLAN_1
 5  - VLAN_ALL
load virtual interface vid = 1
 register if with name  
Init the hal
: Ilegal MTU value 1500,  rounding MTU to: 1506 
 if eth0 registered
load virtual interface vid = 2
 register if with name  
 if eth1 registered
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
SCSI subsystem driver Revision: 1.00
physmap flash device: 1000000 at f4000000
cfi_cmdset_0001: Erase suspend on write enabled
Using buffer write method
Using covid = 1 mvBindings[priv->vid]->header[0] = 24 
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
      device=eth0, addr=192.168.0.1, mask=255.255.255.0, gw=255.255.255.255,
     host=DB88FXX81, domain=, nis-domain=(none),
     bootserver=192.168.0.100, rootserver=192.168.0.100, rootpath=
ip_conntrack version 2.1 (256 buckets, 2048 max) - 308 bytes per conntrack
ip_conntrack_rtsp v0.01 loading
ip_nat_rtsp v0.01 loading
ip_conntrack_pptp version 1.9 loaded
ip_nat_pptp version 1.5 loaded
ip_tables: (C) 2000-2002 Netfilter core team
ipt_time loading
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
Fast Floating Point Emulator V0.94M by Peter Teichmann.
cramfs: wrong magic
FAT: bogus logical sector size 34276
UMSDOS: msdos_read_super failed, mount aborted.
FAT: bogus logical sector size 34276
FAT: bogus logical sector size 34276
CLEANMARKER node found at 0x00010000, not first node in block (0x00000000)
CLEANMARKER node found at 0x00030000, not first node in block (0x00020000)
CLEANMARKER node found at 0x00050000, not first node in block (0x00040000)
CLEANMARKER node found at 0x00070000, not first node in block (0x00060000)
CLEANMARKER node found at 0x00090000, not first node in block (0x00080000)
CLEANMARKER node found at 0x000b0000, not first node in block (0x000a0000)
CLEANMARKER node found at 0x000d0000, not first node in block (0x000c0000)
CLEANMARKER node found at 0x000f0000, not first node in block (0x000e0000)
CLEANMARKER node found at 0x00110000, not first node in block (0x00100000)
CLEANMARKER node found at 0x00130000, not first node in block (0x00120000)
CLEANMARKER node found at 0x00150000, not first node in block (0x00140000)
CLEANMARKER node found at 0x00170000, not first node in block (0x00160000)
CLEANMARKER node found at 0x00190000, not first node in block (0x00180000)
CLEANMARKER node found at 0x001b0000, not first node in block (0x001a0000)
CLEANMARKER node found at 0x001d0000, not first node in block (0x001c0000)
CLEANMARKER node found at 0x001f0000, not first node in block (0x001e0000)
CLEANMARKER node found at 0x00210000, not first node in block (0x00200000)
CLEANMARKER node found at 0x00230000, not first node in block (0x00220000)
CLEANMARKER node found at 0x00250000, not first node in block (0x00240000)
CLEANMARKER node found at 0x00270000, not first node in block (0x00260000)
CLEANMARKER node found at 0x00290000, not first node in block (0x00280000)
CLEANMARKER node found at 0x002b0000, not first node in block (0x002a0000)
CLEANMARKER node found at 0x002d0000, not first node in block (0x002c0000)
CLEANMARKER node found at 0x002f0000, not first node in block (0x002e0000)
CLEANMARKER node found at 0x00310000, not first node in block (0x00300000)
CLEANMARKER node found at 0x00330000, not first node in block (0x00320000)
CLEANMARKER node found at 0x00350000, not first node in block (0x00340000)
CLEANMARKER node found at 0x00370000, not first node in block (0x00360000)
CLEANMARKER node found at 0x00390000, not first node in block (0x00380000)
CLEANMARKER node found at 0x003b0000, not first node in block (0x003a0000)
CLEANMARKER node found at 0x003d0000, not first node in block (0x003c0000)
CLEANMARKER node found at 0x003f0000, not first node in block (0x003e0000)
CLEANMARKER node found at 0x00410000, not first node in block (0x00400000)
CLEANMARKER node found at 0x00430000, not first node in block (0x00420000)
CLEANMARKER node found at 0x00450000, not first node in block (0x00440000)
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 88K
8ZZZZ

BusyBox v1.1.0 (2007.07.26-06:29+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # pc : [<40146968>]    lr : [<400ca0b8>]    Not tainted
sp : befaf8a0  ip : 00000001  fp : 40079bf8
r10: 00000003  r9 : 40079bb8  r8 : 00050500
r7 : befb57d0  r6 : 00026740  r5 : befb57cf  r4 : 00026747
r3 : 00000075  r2 : 00000007  r1 : 00026741  r0 : 400ca0b7
Flags: nzCv  IRQs on  FIQs on  Mode USER_32  Segment user
Control: A005317F  Table: 01DF0000  DAC: 00000015

/ # help

Built-in commands:
-------------------
    .     :     alias     bg     break     cd     chdir     continue 
    eval     exec     exit     export     false     fg     hash     help 
    jobs     kill     let     local     pwd     read     readonly 
    return     set    shift     times     trap     true     type 
    ulimit     umask     unalias     unset     wait

/ # ls
bin             lib             sbin            var
dev             linuxrc         tmp             wsc_config.txt
etc             mnt             uImage          www
flash           proc            usr

/ # ps
  PID  Uid     VmSize Stat Command
    1 0           548 S   init
    2 0               SW  [keventd]
    3 0               SWN [ksoftirqd_CPU0]
    4 0               SW  [kswapd]
    5 0               SW  [bdflush]
    6 0               SW  [kupdated]
    7 0               SW  [mtdblockd]
    8 0               SW  [khubd]
    9 0               SWN [jffs2_gcd_mtd1]
   16 0           704 S   /bin/sh
   21 0               SWN [jffs2_gcd_mtd2]
   27 0           640 R   ps

/ # ls bin
addgroup    date        ln          mv          rm          umount
adduser     dmesg       login       netstat     sh          uname
ash         dumpleases  ls          nvram       sleep       usleep
busybox     echo        mkdir       pidof       sync
cat         hostapd     mknod       ping        touch
chmod       hostname    mktemp      ps          true
cp          kill        mount       pwd         udhcpc

/ # ls /usr/bin
[          cmp        head       killall    readlink   test       uniq
[[         deallocvt  hexdump    logger     reset      time       uptime
basename   env        id         openvt     tail       tr         wc
chvt       free       install    passwd     tee        tty        which

/ # free
              total         used         free       shared      buffers
  Mem:        29972         4156        25816            0            0
 Swap:            0            0            0
Total:        29972         4156        25816

/ # ls sbin
bpalogin          iptables          ntpclient         route
brctl             iptables-restore  ntptime           swapoff
dcc               iptables-save     pivot_root        swapon
dnsmasq           klogd             pppd              syslogd
gpio              l2tp-control      pppoe             tftpd
httpd             l2tpd             pppoe-discovery   udhcpd
ifconfig          lanmon            pptp              upnpd
igmpproxy         lld2d             rc                wcnd
init              lsmod             reboot
insmod            noip2             rmmod

/ # ls proc
1              8              filesystems    meminfo        scsi
16             9              fs             misc           self
2              bus            interrupts     modules        slabinfo
21             cmdline        iomem          mounts         stat
3              cpu            ioports        mtd            swaps
37             cpuinfo        kcore          net            sys
4              crypto         kmsg           partitions     sysvipc
5              devices        ksyms          pci            tty
6              driver         loadavg        resource_dump  uptime
7              execdomains    locks          rgcfgio        version

/ # ls tmp
dev       log       net-snmp  sbin      var
etc       misc      run       tmp       wsc

/ #

/ # ls tmp
 dev       log       net-snmp  sbin      var
 etc       misc      run       tmp       wsc
/ # echo "test" > /tmp/test
/ # cat /tmp/test
 test
/ # echo "more..." >> /tmp/test
/ # cat /tmp/test
 test
 more...
/ # ls tmp
 dev       log       net-snmp  sbin      tmp       wsc
 etc       misc      run       test      var

/ #

/ # tftpd
TFTP main
standard_tftp_server launched on port 69.
Ctrl-C

/ #

/ # gpio
usage: gpio [get name] [set name value] [name = STATUS_LED | WLAN_LED | USB_LED
| SYSTEM] [value = on | off | status | blink]

/ # gpio get USB_LED

/ # gpio set STATUS_LED on

/ #

edit: found another UART Serial Boot Loader Output: http://jlc.iwarp.com/DIR615.html

(Last edited by rviktor on 26 Sep 2009, 22:10)

OK, I've bricked it..  is there any quicker fix than opening it, soldering in a serial connector, buying the special cable and connecting to it that way?

What did I do:
1) Web uploaded the latest of maddes's images - loaded fine.
2) Telnet on, edit the /etc/system/config/network file to match my existing setup and hey presto, basically working.
I'm getting out to the net and things are looking positive.
3) telnet back on after a reboot to try and install luci-admin-all.  it can't find the package.
4) did opkg update
5) did opkg upgrade  (just thinking it's like ubuntu....) - it seemed to hang after downloading, then a couple of mins later...
So I power cycled it.. (yes, I know, I either shouldn't have done it, or been more patient)

Brick..  well. network lights appear when I plug in a port, but not giving any dhcp addresses out.
(or picking any up via the WAN port)

Any suggestions as to what I could try in the interim? - or shall I just get my soldering iron out?

Cheers!

@stevellion:
Please read the complete thread (yes, this takes some time) and you will find out why "opkg upgrade" is in the OpenWrt wiki on the "stupid things" list.
And you will find information about recovery via download mode from drizzt81 in post #436 and from DaBigMac in post #524.

(Last edited by maddes.b on 29 Nov 2009, 12:23)

Yep.. I kind of figured that.
I'll do some more reading.

At least I realised I was stupid, once I'd done it. smile

Thankfully, I'm typing this, so I do have a backup router here..

Thanks!

thanks DaBigMac for your instructions... lol...

Unfortunately sysupgrade support for WRT350Nv2 is not in the trunk yet.
If you already used sysupgrade on your WRT350Nv2, then please add a comment about your experience (works, fails) to its ticket over the next few days.
Keep your comment short and simple and please use your real name.
No "bombing", no "me too", that would be counter-productive.
Hopefully this will make the decision to add it to the trunk easier for the OpenWrt maintainers.
https://dev.openwrt.org/ticket/5719

¿Does anyone have CIFS working?
I ask here because I assume everybody else has it working and is a platform specific bug.
I try this:

opkg update
opkg install kmod-fs-cifs
lsmod | grep cif
insmod cifs
mkdir /tmp/samba
mount -t cifs //192.168.1.132/routerc /tmp/samba -o ip=192.168.1.132,user=john

Router reboot by itself.
Then, after reboot, try this:

opkg update
opkg install cifsmount
mkdir /tmp/samba
mount.cifs //192.168.1.132/routerc /tmp/samba -o user=Router,password=

Router reboot by itself. (password prompt spected)
Last try:

opkg update
opkg install mount-utils

Spit a warning about files already exist: mount & umount created by busybox.
Anyway:

mount -t cifs //192.168.1.132/routerc /tmp/samba -o ip=192.168.1.132,user=john

Router reboot by itself.

OpenWrt Kamikaze bleeding edge, r17427
# cat /proc/version
Linux version 2.6.30.5 (buildbot@localhost.localdomain) (gcc version 4.1.2) #5 Fri Aug 28 11:26:22 CDT 2009

Which repository did you download kmod-fs-cifs from? If you're using maddes.b's images, you need to use his repository for kernel modules, not the main openwrt one, otherwise you'll get kernel panics.

I use a local mirror of r17427 packages, downloaded at that time. A kmod-something other than r17427 may effectively kernel panics.
Do you have CIFS working? After 20 day uptime maybe is time to upgrade, I have 18 hours uptime now anyway...

No, I haven't tried to get CIFS working at all.

Has anyone figured out a way to make the WLAN work with older HW? That is the "final" barrier preventing me from using this router as a main device.

DaBigMac: Does this(SerialComm) work on a WNR854t? I am ready to brick my WNR854t once I get the replacement mini-PCI wireless card.

Thanks.


DaBigMac wrote:

Bricked WRT350n V2.x Recovery HOWTo

DO YOU THINK YOU HAVE BRICKED YOUR LINKSYS WRT350n v2.x ROUTER??

OK! Well I think I have some good news!

I've seemingly found a very very simple way to recover one's router to the original firmware (and perhaps later, even OpenWRT) without needing to open the case at all and without needing to use a serial interface! It's all done via a very simple point and click graphical program and a simple sequence with the reset button..

The inspiration came from a post by drizzt81 explaining how his router had entered into what is described as 'download mode'. However users who have seemingly 'bricked' their routers and do not have a serial connection would have no way of knowing if their router is in 'download mode' or not.

The solution was explained in a step by step guide by drizzt81 who used information gathered from previous posts from people who I would LIKE to credit as sources, but I do not have their posts handy at this point, I mean no disrespect to the hard working folk who have given their time and knowledge in this forum. The process is VERY VERY SIMPLE and requires no special hardware and in fact doesn't require any advanced computer knowledge either! A total beginner can expect to successfully recover their router using this method.

Step 1:

Software requirements

Required Knowledge:

* Usage of a .ZIP utility to extract some of the installation files.
* Basic software installation knowledge.

Download a .zip file containing the 'Upgrade Utility' program from this link and extract the file Upgrade_207_XP.exe then run that file to install the 'Upgrade Utility' application. (Scanning for nasty stuff 1st is recommended, just in case as this is not hosted in Linksys's website..) Please note that if you are using Windows Vista, you must select to run the application with 'Windows XP, Service pack 2 Compatibility Mode' enabled.

Download the full-image.bin file(provided by relghuar) and put it somewhere you can remember, (Desktop maybe?). (Thanks to relghuar for extracting and hosting this file, please let me know if you object to me direct linking to it.) The original post for the process by which relghuar extracted the image and file location can be found here (WARNING: DEADLY BORING TECHY STUFF!)

Step 2:

Cabling

Required Knowledge:

* Be able to locate the LAN ports on your router and be able to tell them apart from the WAN port. (LAN ports are (damn it, I am color blind! is it.. yellow? edit(maddes.b informs me that the ports are in fact orange, DOH!)) anyway, the WAN port is definitely blue.. Reasonably speaking here, if you managed to have the technical savvy to brick your router by installing OpenWRT, I think it's reasonable to assume you can tell the difference between a LAN and WAN port.. tongue

Directly connect your computer to one of the LAN ports on your router, I chose port 1, but I assume any LAN port will work. (I am also assuming that the WAN port won't work, but this is untested.. If you have some free time to just waste for stupidity's sake, perhaps you can test the theory and let me know.. I personally couldn't be bothered, just plug into LAN port 1 for pity's sake!!)

Step 3:

Entering 'Download mode' (This information was originally found at the NSLU2 Linux users group and through experimentation, adapted to work for the WRT350n V2.x)

Required knowledge:

*Be able to locate the 'reset' button. It is beside the power jack on the back of the router, beside LAN port 4. You will need a paperclip, or as I used, a thin screw driver.

Disconnect the power from the router, or as I did, turn off the powerboard's power. The reason I did this is because I have fat fingers and inserting the power cable whilst holding in the reset button proved difficult. (MAKE SURE THE POWER BOARD IS NOT THE ONE YOUR COMPUTER IS CONNECTED TO!!) *blush* Enough said on that matter... ehhem..

Method - with the power to the router OFF, hold in the reset button. Turn on/plug in the power and as soon as the LAN light comes up (1 - 2 secs) release the reset button. It's a pretty quick thing... If you have done it successfully, the power light on your router should be flashing between red... err.. ora.. umm yellow? (damn it I knew it was a bad idea for ME to write a HowTo..) Anyway! It'll be flashing!! If not, turn off/unplug the router's power and try again..

Once you are in download mode, you can move to Step 4.

Step 4:

Using the 'Upgrade Utility' software

Required knowledge:

*Location of the 'full-image.bin' file we downloaded earlier, I suggested locating it on your desktop, unless you decided to put it elsewhere..

Open the 'Upgrade Utility' application.

Once inside the utility, click the 'Browse Targets' button. Shortly, a dialogue box showing the MAC address (a long and confusing looking number) will be listed in the 'Devices List'.

Click the 'Files' button and browse to the 'full-image.bin' file. Once you select 'OK' you should get a 'BIN file Information' box, which will allow you to select 'OK' at the bottom.

Once you click 'OK', you will be returned to the 'Devices List' dialogue. Here you should click 'Upgrade'. You will get an information dialogue box that informs you that the version is older than the one currently installed in the router. Dismiss it, the dialogue is in fact correct, the 'full-image.bin' file was created a long time ago and is extracted from a router which was running version .17 (the current version is .19) No big deal. If you want version .19, download it from the Linksys website after you recover your router.

The next process is time consuming. IT IS ALSO FATAL TO THE ROUTER IF INTERRUPTED. In the spirit of Zen, I suggest removing yourself from the room while the router does it's thing. 'The watched pot, never boils'.

Step 5:

Power cycle the router and you should have a working router again, using Linksys firmware. If you want to try OpenWRT again, you can use the 'Webupgrade' package.

Voila!

DBM

P.S. Here is a quote of the posting I referenced from drizzt81. Many thanks to you!! Please let me know your sources, so that I may reference them also!

drizzt81 wrote:
*******************************************
dbSign is:65:52:63:4f:6d:4d
mac address in flash is:00:1a:70:9c:52:16
have eRcOmM
Firmware is damaged,enter download mode
mvEgigaLoad: egiga0 load ok
egiga0 [PRIME]

mvEgigaInit: egiga0 init - mvBoardPhyAddrGet()=0x0 , priv->port =0x0
ring full
mvEgigaInit: egiga0 complete ok
In download function
 mac address:00:1a:70:9c:52:16
Pin:33.34.35.38.30.31.31.30

I recovered from this using the SerialComm updater with a WinXP machine.
Step-by-step instructions:
1. Download and install the SerialComm utility
2. Download the full_image from this post
3. (optional)Connect serial console to router and boot up router
4. Connect a LAN cable directly between router and Laptop (no intermediate HW)
5. Start the SerialComm utility and point it to your wired LAN connection used in step 4
6. Point SerialComm to the full_image.bin you downloaded in step 2
7. Ignore the warning about "older version". If your router was running a new firmware before bricking, flashing the full_image from that posts will "downgrade" it to revision .17
8. Hit the "flash" button in SerialComm and get some coffee
9. AFTER a successfull flash, you may need to power cycle the router

Cheers and thanks for all the help!

roubaozi wrote:

DaBigMac: Does this(SerialComm) work on a WNR854t? I am ready to brick my WNR854t once I get the replacement mini-PCI wireless card.

No it doesn't work (tested). It's a Linksys proprietary feature.
BTW WNR854T owners don't need ath9k default driver included in kernel MakeFile.

Thanks, I am getting a mini-PCI AR5008 card for my WNR854T, which should be able to use the default ath9k driver.

Nilfred wrote:
roubaozi wrote:

DaBigMac: Does this(SerialComm) work on a WNR854t? I am ready to brick my WNR854t once I get the replacement mini-PCI wireless card.

No it doesn't work (tested). It's a Linksys proprietary feature.
BTW WNR854T owners don't need ath9k default driver included in kernel MakeFile.

Nilfred wrote:
roubaozi wrote:

DaBigMac: Does this(SerialComm) work on a WNR854t? I am ready to brick my WNR854t once I get the replacement mini-PCI wireless card.

No it doesn't work (tested). It's a Linksys proprietary feature.
BTW WNR854T owners don't need ath9k default driver included in kernel MakeFile.

Hello Nilfred,

I wonder if you would mind testing different times for the pressing and releasing of the reset button. Can you perhaps try pressing the reset button, then powering on the router and holding the reset button for 10 seconds? See if that makes a difference..

It would be a function of uBoot, not Linksys firmware that governed the 'download mode' function. If you could perhaps try this and see if it made any difference. It would undoubtedly be a useful addition to the recovery guide!

Cheers,

DBM

DaBigMac, are you sure that "download mode" is an original U-Boot feature? I couldn't find it in the U-Boot manual.
I assume that it is a special feature for U-Boot by Sercomm, that Linksys chosed to implement.

maddes.b wrote:

DaBigMac, are you sure that "download mode" is an original U-Boot feature? I couldn't find it in the U-Boot manual.
I assume that it is a special feature for U-Boot by Sercomm, that Linksys chosed to implement.

I'm not at all sure.. I am just guessing.. but what can it hurt to try? Harmless.. and if successful, very useful!

I just bought a pretty cheap WNR854T on Ebay with the sole purpose of installing OpenWRT on it. I post here some of my experiences which might help out other doing the same thing.

1) Do _not_ change the MAC address from the default 00:00:00:00:51:81 from WebIf if you don't have serial access. It will make the router inaccessible from the network (brick it) and requires a serial console to restore.

Analysis: Setting MAC address on the LAN interface in /etc/config/network will only set the adress on eth0 interface. The lan1, lan2, lan3 and lan4 interfaces will still have 00:00:00:00:51:81. I tried to decode /lib/network/config.sh which is responsible for setting the MAC address but failed to find out a way to modify it to do the right thing. I ended up setting the MAC address on the lanN interfaces one by one in /etc/init.d/network

2) Flashing firmware from serial console
You don't have to pad the image as described in #341. I assume padding is WRT350Nv2 specific(?) Just use 'openwrt-wnr854t-squashfs.img'.

# temporary change network settings to fit your network
setenv ipaddr 192.168.33.254
setenv serverip 192.168.33.1

# erase and unprotect flash for writing
erase 0xFF800000 0xFFDFFFFF

# flash image
tftpboot 0x400000 openwrt-wnr854t-squashfs.img
# recognize the download size in its output, it will be used in the next command
cp.b 0x400000 0xff800000 <transferred bytes in hex/0x>

reset

Using tftpboot with target address 0x0 as described in some other post failed for me. 0x400000 seems fine though.

3) Serial attached may prevent booting
Maybe depending on my less-than-perfect soldering skills, the router wouldn't boot if I detached the serial port (unplugged the Nokia CA-42 USB cable from my computer). This I solved by connecting Rx to Vcc, and the router now boots fine.

4) Wireless network
There is no driver support for the Marvell mini-pci card. The mwl8k driver will probably support it in the future but I have not seen any ETA on that.
Instead I bought a cheap Edup PCI card off Ebay with a mini-pci on it. My research indicated it would be a bcm4306 chipset which should work fine but when I opened it up it was a bcm4318 sad  Sadly, the card seem to work fine but fails totally when running it as AP with hostapd. I have read reports that 4318 is unstable in AP-mode but should be better after some DMA-poisoning patches was added. This is worse and the AP doesn't even show up when doing 'iwlist wlan0' scan from a nearby computer. The log output says a lot of

MGMT (TX callback) fail

Does anyone have a clue why it fails? I have tried both stable, experimental and open firmware for the card but they all exhibit the same error. This is with svn trunk rev 17853.

Happy hacking!

fatbob wrote:

My research indicated it would be a bcm4306 chipset which should work fine but when I opened it up it was a bcm4318

b43 driver works with kernel 2.4
Broadcom isn't any friendly with the Open Source Community.
What did you research for?

I'm still unsure to get a p54 driver, Senao NL-3054MP+ 200mW for 10 USD, wait, wait, or get an Atheros N capable.

Nilfred wrote:
fatbob wrote:

My research indicated it would be a bcm4306 chipset which should work fine but when I opened it up it was a bcm4318

b43 driver works with kernel 2.4
Broadcom isn't any friendly with the Open Source Community.
What did you research for?

I found a cheap one of these which has a mini-pci under the blue cover. Information on the net indicated that it should have a bcm4306 which would be a working 11g AP solution. 4318 has known issues in AP mode with the b43 driver according to their page at linuxwireless (see below).

The b43 driver is not 2.4 only. Check http://linuxwireless.org/en/users/Drivers/b43. Broadcom has a binary 2.4-only driver but the b43 driver is something else.

Yeah, I tried to keep it simple but explained backwards: b43 isn't working any well.
Nice discovery: A MiniPCI inside a Standard PCI... mmm will search mine too this way. I was thinking of buying another router to salvage the MimiPCI card inside.
Last directive was: "Stop buying from unfriendly manufacturers"

Nilfred wrote:

Yeah, I tried to keep it simple but explained backwards: b43 isn't working any well.
Nice discovery: A MiniPCI inside a Standard PCI... mmm will search mine too this way. I was thinking of buying another router to salvage the MimiPCI card inside.
Last directive was: "Stop buying from unfriendly manufacturers"

Yeah. I'm looking for an Atheros-based card now which seems to be friendlier and better supported, although more expensive...
Currently I'm looking at a D-Link DWA-547 PCI card (Atheros AR5416 chipset 802.11b/g/n) which suspiciously looks like it has an oversized mini-pci card under the cover. I haven't yet found a way to confirm this though... What do you think?