I got a D-Link DI-624 rev. D2 (on label, D1 on board) with erased firmware - completely dead, only POWER, WAN and all LAN LEDs were on. Removed the SPI flash (MX25L1605) and connected to a SPI "programmer" (in fact, 4 resistors and parallel port - http://rayer.ic.cz/elektro/spipgm.htm ). Dumped the flash and it was all FFs only.
So I downloaded a 1MB firmware that includes boot loader ( ftp://ftp.dlink.com/Gateway/di624_revD/ … re_404.bin ) and flashed (to address 0 of the 2MB flash). This was not correct but allowed the boot loader to start and restore the firmware using web interface.
The router now booted but MAC addresses were 00:11:22:33:44:55 and 00:11:22:33:44:56. Found that the first MAC address is stored in the boot loader at offset 0x40 - so edited the firmware and reflashed again (using the programmer, the web interface will not change it). Now MAC addresses are OK.
But last problem remains: wifi does not work. The WLAN led is off and clicking on the wireless button in web interface does nothing. Found something that might be serial console at JP1 (lower pins from left: 3.3V, RX, NC, NC, TX, GND) but there's no output (probably disabled in firmware?). At least tftp can be used to get some files: dbgout.txt, ar5maco.dat and ar5eepo.dat.
dbgout.txt shows that there's a problem with WLAN EEPROM:
Created Inet main task.
Created clock tick task.
Created PING application task.
channel = 6, 2437
pWLAN->wirelessMode = 0
pWLAN->turbo = 0
Wireless Mode = 0x08, Data Rate = best
wlan0 : abolt = 0
wlan0 : autoChan:0, preamble = 1
wlan0 : apCfgCipherGet() = 5
wlan0 : apCfgAuthTypeGet() = 6
wlan0 : apCfgEncryptionGet() = 1
usrEndLibInit: enet not found.
ar5212Attach: Could not allocate space to cache the EEPROM
Error initializing wireless software state.
apInit: no wlan device
AP initilization failed!
Initializing 802.11g(A) Interface...Failure !
WAN port speed = 10M
WAN port duplex = Half
WAN port flow control = On
CPU port flow control = On
Created Bridge Aging task.
eth_brdg/eth_dev_add: add the 0th device eth-0, type = ethernet device
mctest init called
Created httpd task.
Created smtp task.
Created ntp task.
Created upnp task.
Created dhcps_main task.
Created rad_client task.
System ready ...
Created upnp_http task.
Created ssdp task.
ar5maco.dat looks like WLAN MAC address that's empty
00000000 30 78 20 20 20 30 20 2D 20 30 30 3A 30 30 3A 30 0x 0 - 00:00:0
00000010 30 3A 30 30 3A 30 30 3A 30 30 00 00 00 00 00 00 0:00:00:00......
WLAN EEPROM (ar5eepo.dat) is empty too - 2048 bytes of FFs
The TFTP server ignores PUT so these must be flashed using the SPI programmer. But where can I get the EEPROM dump? Anyone has complete flash dump of DI-624 rev. D?
(Last edited by Rainbow on 28 Jan 2012, 16:38)