Page 1 of 1

Reviving bricked AR430W/DIR-300? (not Gargoyle's fault)

Posted: Sun Sep 30, 2012 6:27 pm
by AZImmortal
This isn't directly related to Gargoyle but I figured that I'd try asking here since this forum seems to be more helpful with resolving problems than the DD-WRT forum. Many years ago when support for the DIR-300/AR430W was still relatively new for DD-WRT, I enabled JFFS on my AR430W after installing DD-WRT and I was left with a brick. I didn't get around to trying to revive it via the serial port until recently, and although I was able to install DD-WRT's Micro Redboot and DD-WRT's linux.bin, I can't seem to get DD-WRT to actually start up (no ping reply). I'm still able to telnet and serial into Micro Redboot whenever I want and run through the installation instructions again and again, but nothing seems to work. I even tried to use the special version of Fon Flash and that didn't work (I installed both DD-WRT and Gargoyle "successfully" but neither worked). Does anyone have any idea what's going on? I'd love to try out Gargoyle if I could get my router working. For reference, here are my fis list, the commands that I've used to install DD-WRT, and my bootup log.

Code: Select all

RedBoot> fis list 
Name         FLASH addr  Mem addr    Length      Entry point 
RedBoot         0xBFC00000  0xBFC00000  0x00010000  0x00000000 
linux         0xBFC10000  0x80041000  0x00366000  0x80041000 
FIS directory      0xBFFE0000  0xBFFE0000  0x0000F000  0x00000000 
RedBoot config      0xBFFEF000  0xBFFEF000  0x00001000  0x00000000

Code: Select all

== Executing boot script in 3.580 seconds - enter ^C to abort 
^C 
RedBoot> ip_address -h 192.168.1.2 
IP: 192.168.1.1, Default server: 192.168.1.2 
RedBoot> fis init 
About to initialize [format] FLASH image system - continue (y/n)? y 
*** Initialize FLASH Image System 
... Erase from 0xbffe0000-0xbfff0000: . 
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . 
RedBoot> load -r -b 0x80041000 linux.bin 
Using default protocol (TFTP) 
Raw file loaded 0x80041000-0x803a6fff, assumed entry at 0x80041000 
RedBoot> fis createaccton linux 
... Erase from 0xbfc10000-0xbff76000: ....................................................... 
... Program from 0x80041000-0x803a7000 at 0xbfc10000: ....................................................... 
... Erase from 0xbffe0000-0xbfff0000: . 
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . 
RedBoot> fconfig boot_script true 
boot_script: Setting to true 
RedBoot> fconfig boot_script_timeout 5 
boot_script_timeout: Setting to 5 
RedBoot> fconfig bootp false 
bootp: Setting to false 
RedBoot> fconfig 
Run script at boot: true 
Boot script: 
.. fis load -l linux 
.. exec 
Enter script, terminate with empty line 
>> fis load -l linux 
>> exec 
>> 
Boot script timeout (1000ms resolution): 5 
Use BOOTP for network configuration: false 
Local IP address: 192.168.1.1 
Default server IP address: 192.168.1.2 
Console baud rate: 9600 
GDB connection port: 9000 
Force console for special debug messages: false 
Update RedBoot non-volatile configuration - continue (y/n)? y 
... Erase from 0xbffe0000-0xbfff0000: . 
... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . 
RedBoot> reset

Code: Select all

MicroRedBoot v1.3, (c) 2009 DD-WRT.COM (Jul 6 2009) 
CPU Clock: 184Mhz 
Found Flash device SIZE=0x00400000 SECTORSIZE=0x00010000 FLASHBASE=0xBFC00000 
found bootable image: [linux] at [0xBFC10000] EP [0x80041000] 
Booting Linux 
loading.......................................................................................[ 0.000000] Linux version 3.2.12-rc1-svn18774 (root@dd-wrt) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #755 Mon Mar 19 06:49:46 CET 2012 
[ 0.000000] bootconsole [early0] enabled 
[ 0.000000] CPU revision is: 00019064 (MIPS 4KEc) 
[ 0.000000] Determined physical RAM map: 
[ 0.000000] memory: 01000000 @ 00000000 (usable) 
[ 0.000000] User-defined physical RAM map: 
[ 0.000000] memory: 01000000 @ 00000000 (usable) 
[ 0.000000] Zone PFN ranges: 
[ 0.000000] Normal 0x00000000 -> 0x00001000 
[ 0.000000] Movable zone start PFN for each node 
[ 0.000000] early_node_map[1] active PFN ranges 
[ 0.000000] 0: 0x00000000 -> 0x00001000 
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064 
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=squashfs noinitrd mem=16M init=/sbin/init 
[ 0.000000] PID hash table entries: 64 (order: -4, 256 bytes) 
[ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) 
[ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) 
[ 0.000000] Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes. 
[ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes 
[ 0.000000] Memory: 12932k/16384k available (2205k kernel code, 3452k reserved, 383k data, 156k init, 0k highmem) 
[ 0.000000] NR_IRQS:128 
[ 0.000000] console [ttyS0] enabled, bootconsole disabled 
[ 0.000000] console [ttyS0] enabled, bootconsole disabled 
[ 0.010000] Calibrating delay loop... 183.70 BogoMIPS (lpj=918528) 
[ 0.090000] pid_max: default: 32768 minimum: 301 
[ 0.090000] Mount-cache hash table entries: 512 
[ 0.100000] NET: Registered protocol family 16 
[ 0.190000] bio: create slab <bio-0> at 0 
[ 0.210000] Switching to clocksource MIPS 
[ 0.240000] NET: Registered protocol family 2 
[ 0.240000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) 
[ 0.250000] TCP established hash table entries: 512 (order: 0, 4096 bytes) 
[ 0.260000] TCP bind hash table entries: 512 (order: -1, 2048 bytes) 
[ 0.260000] TCP: Hash tables configured (established 512 bind 512) 
[ 0.270000] TCP reno registered 
[ 0.270000] UDP hash table entries: 256 (order: 0, 4096 bytes) 
[ 0.280000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) 
[ 0.290000] NET: Registered protocol family 1 
[ 0.290000] scanning for board data at A83FF000 (FFFFFFFF) 
[ 0.300000] scanning for board data at A83FE000 (FFFFFFFF) 
[ 0.310000] scanning for board data at A83FD000 (FFFFFFFF) 
[ 0.310000] scanning for board data at A83FC000 (FFFFFFFF) 
[ 0.320000] scanning for board data at A83FB000 (FFFFFFFF) 
[ 0.320000] scanning for board data at A83FA000 (FFFFFFFF) 
[ 0.330000] scanning for board data at A83F9000 (FFFFFFFF) 
[ 0.330000] scanning for board data at A83F8000 (FFFFFFFF) 
[ 0.340000] scanning for board data at A83F7000 (FFFFFFFF) 
[ 0.350000] scanning for board data at A83F6000 (FFFFFFFF) 
[ 0.350000] scanning for board data at A83F5000 (FFFFFFFF) 
[ 0.360000] scanning for board data at A83F4000 (FFFFFFFF) 
[ 0.360000] scanning for board data at A83F3000 (FFFFFFFF) 
[ 0.370000] scanning for board data at A83F2000 (FFFFFFFF) 
[ 0.370000] scanning for board data at A83F1000 (FFFFFFFF) 
[ 0.380000] scanning for board data at A83F0000 (FFFFFFFF) 
[ 0.380000] scanning for board data at A83EF000 (1000) 
[ 0.390000] scanning for board data at A83EE000 (FFFFFFFF) 
[ 0.400000] scanning for board data at A83ED000 (FFFFFFFF) 
[ 0.400000] scanning for board data at A83EC000 (FFFFFFFF) 
[ 0.410000] scanning for board data at A83EB000 (FFFFFFFF) 
[ 0.410000] scanning for board data at A83EA000 (FFFFFFFF) 
[ 0.420000] scanning for board data at A83E9000 (FFFFFFFF) 
[ 0.420000] scanning for board data at A83E8000 (FFFFFFFF) 
[ 0.430000] scanning for board data at A83E7000 (FFFFFFFF) 
[ 0.430000] scanning for board data at A83E6000 (FFFFFFFF) 
[ 0.440000] scanning for board data at A83E5000 (FFFFFFFF) 
[ 0.450000] scanning for board data at A83E4000 (FFFFFFFF) 
[ 0.450000] scanning for board data at A83E3000 (FFFFFFFF) 
[ 0.460000] scanning for board data at A83E2000 (FFFFFFFF) 
[ 0.460000] scanning for board data at A83E1000 (FFFFFFFF) 
[ 0.470000] scanning for board data at A83E0000 (52656442) 
[ 0.470000] scanning for board data at A83DF000 (0) 
[ 0.480000] scanning for board data at A83DE000 (0) 
[ 0.480000] scanning for board data at A83DD000 (0) 
[ 0.490000] scanning for board data at A83DC000 (0) 
[ 0.490000] scanning for board data at A83DB000 (0) 
[ 0.500000] scanning for board data at A83DA000 (0) 
[ 0.500000] scanning for board data at A83D9000 (0) 
[ 0.510000] scanning for board data at A83D8000 (0) 
[ 0.510000] scanning for board data at A83D7000 (0) 
[ 0.520000] scanning for board data at A83D6000 (0) 
[ 0.520000] scanning for board data at A83D5000 (0) 
[ 0.530000] scanning for board data at A83D4000 (0) 
[ 0.530000] scanning for board data at A83D3000 (3CEC0C34) 
[ 0.540000] scanning for board data at A83D2000 (D13C6A9B) 
[ 0.550000] scanning for board data at A83D1000 (9D5AE8C) 
[ 0.550000] scanning for board data at A83D0000 (81A90074) 
[ 0.560000] found 0 
[ 0.560000] WARNING: No board configuration data found! 
[ 0.570000] gpio_proc: module loaded and /proc/gpio/ created 
[ 0.590000] squashfs: version 3.0 (2006/03/15) Phillip Lougher 
[ 0.600000] msgmni has been set to 25 
[ 0.610000] io scheduler noop registered 
[ 0.610000] io scheduler deadline registered (default) 
[ 0.620000] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled 
[ 0.650000] serial8250: ttyS0 at MMIO 0xb1100003 (irq = 37) is a 16550A 
[ 0.660000] serial8250 serial8250.0: unable to register port at index 0 (IO3f8 MEM0 IRQ4): -28 
[ 0.670000] serial8250 serial8250.0: unable to register port at index 1 (IO2f8 MEM0 IRQ3): -28 
[ 0.680000] serial8250 serial8250.0: unable to register port at index 2 (IO3e8 MEM0 IRQ4): -28 
[ 0.690000] serial8250 serial8250.0: unable to register port at index 3 (IO2e8 MEM0 IRQ3): -28 
[ 0.700000] gpiodev: gpio device registered with major 254 
[ 0.720000] scanning for root partition 
[ 0.720000] 
[ 0.720000] found squashfs at F0000 
[ 0.730000] found RedBoot partition at [0xBFC00000] 
[ 0.730000] found linux partition at [0xBFC10000] 
[ 0.740000] Creating 8 MTD partitions on "spiflash": 
[ 0.740000] 0x000000000000-0x000000010000 : "RedBoot" 
[ 0.760000] 0x000000010000-0x0000003d0000 : "linux" 
[ 0.770000] 0x0000000f0000-0x000000380000 : "rootfs" 
[ 0.790000] 0x000000380000-0x0000003d0000 : "ddwrt" 
[ 0.800000] 0x0000003d0000-0x0000003e0000 : "nvram" 
[ 0.820000] 0x0000003e0000-0x0000003f0000 : "FIS directory" 
[ 0.830000] 0x0000003f0000-0x000000400000 : "board_config" 
[ 0.850000] 0x000000000000-0x000000400000 : "fullflash" 
[ 0.870000] tun: Universal TUN/TAP device driver, 1.6 
[ 0.870000] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
In regards to the "fis createaccton linux" command, this post explains why I used it, although I've actually tried both "fis create" and "fis createaccton" many times and neither have worked.

I see this line in my bootup log and I suspect that this is the cause of my problems, but I have no idea what to do about it.

Code: Select all

[ 0.560000] WARNING: No board configuration data found! 
Thanks in advance for any help that anyone can provide. It would be much appreciated.

Re: Reviving bricked AR430W/DIR-300? (not Gargoyle's fault)

Posted: Sun Sep 30, 2012 8:26 pm
by AZImmortal
Some more to add. I found this link for Flashing DIR-300 back to original firmware and it has a section for "Flashing back the board config". After generating my board config, I tried to follow the commands through Micro Redboot, but this is what happened.

Code: Select all

RedBoot> load -r -b %{FREEMEMLO} shadowandy_board_config.bin
Using default protocol (TFTP)
Raw file loaded 0x80031800-0x800417ff, assumed entry at 0x80031800
RedBoot> fwrite -f 0xbfff0000 -b 0x80036400 -l 0x10000 -e 0x80036400
** Error: Illegal command: "fwrite"
So I then tried to load the original DIR-300 Redboot, and this is what happened.

Code: Select all

RedBoot> load -r -b %{FREEMEMLO} dir300redboot.rom
Using default protocol (TFTP)
Raw file loaded 0x80031800-0x800517ff, assumed entry at 0x80031800
RedBoot> fis create -l 0x30000 -e 0xbfc00000 RedBoot
Image found, but length (0x20000, necessitating image size 0x30000)
             is incorrect (present image size 0x10000)