H/W Ver. | S/N | OpenWrt Version Supported | Model Specific Notes |
---|---|---|---|
A2 | - | backfire-10.03.1-rc1 & trunk | - |
A3 | - | backfire-10.03.1-rc1 & trunk | - |
A4 | - | backfire-10.03.1-rc1 & trunk | - |
A5 | - | backfire-10.03.1-rc1 & trunk | Some A5 models has EN29LV320BB Memory flash (not supported yet!!) |
CPU | Ram | Flash | Network | USB | Serial | JTag |
---|---|---|---|---|---|---|
Atheros AR2313A @180MHz? | 16MiB | 4MiB | 1 | No | Yes | Yes |
Architecture | MIPS 4Kc |
---|---|
Vendor | D-Link |
Bootloader | (VxWorks) |
Wireless System-On-Chip | Atheros AR2313A |
CPU Speed | 180/240 MHz |
Flash-Chip | AMD AM29LV320DB (A2) Atmel AT49BV322A (A2, A3) Spansion S29GL032M (A4), Spansion S29AL032D90TFI04 (A4) Macronix MX29LV320D (A5) EON EN29LV320BB (A5) |
Flash size | 4 MiB |
RAM | 16 MiB |
Wireless | Atheros AR2112A |
Ethernet | IC+ IP101 (A2) / IC+ IP101A (A2/A3/A4/A5) |
USB | No |
Serial | Yes 9600-8N1 |
JTAG | Yes |
Same board uses in the Alpha Networks WAP-D19.
DWL-2100 A5 uses two antennas: printed on board (to right of LED “Wlan”) and external.
Note: This will void your warranty!
→ port.serial.
Serial console represent hardware interface between router onboard serial port and PC. It is ussually used to see bootprocess and interact boot loader. This is possible only if opening the case and attaching a TTL line converter cable. Then you can stop the boot process by sending ESC
on bootup until you get a boot prompt and change the bootloader enviroment settings.
The serial communication signals on the 2100AP are ranging from 0 to 3.3V. These must not be connected directly to a RS232 cable, which operates at much broader voltage range (-12 to +12V). An appropriate level coupler must be built for this purpose. There are many such circuits on the net, and the simplest ones might use a common MAX 3232 chip. |
JP1 (12-pin, without headers, not for A4) is the serial port. It's wired very similarly to the serial port in the Netgear WPN824 (also AR2313) and Netgear WGT624 (AR2312)
Serial
1 JP1 VCC - [] () - VCC RX - () () () () () () TX - () () () ()
For GND use JTAG connector. See picture below.
Rev. A2 only: Some resistors (R264, R273, R275) are missing, so the serial port won't work. I've bridged them with solder (since I don't have access to SMT equipment), and it seems like it's working. This is not needed for rev. A3.
Solder bridges at R275, R273 and R264 for rev. A2
Check the voltage level of the gnd pin on jp1. If it is not ground, you have to get ground from the jtag J5 pin 2. This was the case with a rev. A2
The DWL-2100AP's firmware is VxWorks rtos with its own boot loader. Factory boot loader can load via TFTP and execute a MIPS elf executable. MIPS elf executable can be a OpenWrt ramdisk or modified bootloader.
We can test OpenWrt without making any changes to flash. This way you can safely play with OpenWrt and preserve the original firmware in flash. If you backup the settings and config you made in OpenWrt and you need them later back, you can easily restore your saved backup.
You need a tftp server with openwrt-atheros-vmlinux.elf boot image in it's root folder. |
Wait for the bootup and press ESC
until you get a boot prompt.
$ae(1,0)hai:openwrt-atheros-vmlinux.elf h=192.168.1.254 e=192.168.1.20:0xffffff00 f=0x80
where:
hai
is the hostname of the computer running tftp (not needed to be correct)h=
sets the host computer ip adresse=
sets the network adress and mask of the apf=
sets the flags to tftp boot and run
Original settings we get using command p
to print settings):
ar531x rev 0x00005850 firmware startup... SDRAM TEST...PASSED WAP-G02A Boot Procedure V1.0 --------------------------------------------------------- Start ..Boot.B12.. theros AR5001AP default version 3.0.0.43A 1 [Boot]: ? ? - print this list @ - boot (load and go) p - print boot params c - change boot params e - print fatal exception v - print version B - change board data S - show board data n netif - print network interface device address $dev(0,procnum)host:/file h=# e=# b=# g=# u=usr [pw=passwd] f=# tn=targetname s=script o=other boot device: tffs=drive,removable file name: /tffs0/vxWorks Boot flags: 0x02 - load local system symbols 0x04 - don't autoboot 0x08 - quick autoboot (no countdown) 0x20 - disable login security 0x40 - use bootp to get boot parameters 0x80 - use tftp to get boot image 0x100 - use proxy arp available boot devices:Enhanced Network Devices ae1 tffs [Boot]: p boot device : tffs: unit number : 0 processor number : 0 file name : /fl/APIMG1 inet on ethernet (e) : 192.168.1.20:0xffffff00 flags (f) : 0x0 other (o) : ae
Changed settings (use command c
to change settings):
[Boot]: p boot device : ae unit number : 1 processor number : 0 host name : hai file name : openwrt-atheros-vmlinux.elf inet on ethernet (e) : 192.168.1.20:0xffffff00 host inet (h) : 192.168.1.254 flags (f) : 0x80 other (o) : ae
By replacing the stock loader with modified Redboot we can install OpenWrt permanently. Replacing the loader is tricky because you need to get a version tailored for your device (correct hw. revision and flash type) - see in the forum and below! Here is a forum thread where RedBoot loader was discussed.
This is a experimental way to flash using only serial interface. RAM version of custom build RedBoot loader is needed from wich we can burn the permanent ROM version.
You need a TFTP server with both redboot.img (RAM version) and redboot.bin (ROM version) for your flash chip in it's root folder. |
p
and write all lines from terminal output (to restore if needed), then with c
change settings:boot device : ae1 unit number : 0 processor number : 0 file name : redboot.img inet on ethernet (e) : 192.168.1.20:ffffff00 //this is AP IP address host inet (h) : 192.168.1.254 //this is [[docs:guide-user:troubleshooting:tftpserver|tftpd server]] IP address gateway inet (g) : flags (f) : 0x80 other (o) : ae
fis init -f load -r -b %{FREEMEMLO} redboot.bin -h 192.168.1.254 -m tftp fis create RedBoot reset
The safest way to change the boot loader is by using both j-tag and serial interface. If something gets borked, you can re-install the original firmware.
Connect JTAG cable and run urjtag. At prompt write jtag
jtag> cable WIGGLER PPDEV /dev/parport0 #this is for linux jtag> cable WIGGLER parallel 0x378 #this is for Windows world jtag> detect jtag> include atheros/ar2312/ar2312 jtag> poke 0x58400000 0x000e3ce1 jtag> detectflash 0x1fc00000 jtag> flashmem 0x1fc00000 {path to file}/redboot(lzma).bin
DWL-2100AP is supported from Backfire 10.03.1-rc1 on. ***(Rev. A2 tested) and trunk branch is working out of the box too. |
You need a redboot loader for your flash chip installed and a TFTP server with openwrt-atheros-vmlinux.lzma (kernel) and openwrt-atheros-root.squashfs (root file system) in it's root folder. |
Next step is set loader environment up:
fconfig boot_script true fconfig boot_script_timeout 2 fconfig Run script at boot: true Boot script: .. Enter script, terminate with empty line >> fis load -l linux >> go >> Boot script timeout (1000ms resolution): 2 Use BOOTP for network configuration: false Gateway IP address: 192.168.1.254 Local IP address: 192.168.1.1 Local IP address mask: 255.255.255.0 Default server IP address: 192.168.1.254 Console baud rate: 9600 DNS server IP address: 192.168.1.254 GDB connection port: 9000 Force console for special debug messages: false Network debug at boot time: false Update RedBoot non-volatile configuration - continue (y/n)? y reset
After AP reboot and we are ready for OpenWRT install. in this example ap is @192.168.1.1 & tftp server is @192.168.1.254
fis init -f load -r -b 0x80041000 openwrt-atheros-vmlinux.lzma fis create -r 0x80041000 linux load -r -b 0x80041000 openwrt-atheros-root.squashfs fis create -r 0x80041000 -e 0x0 rootfs reset
Connect JTAG cable, run urjtag
jtag> cable WIGGLER PPDEV /dev/parport0 jtag> detect jtag> include atheros/ar2312/ar2312 jtag> poke 0x58400000 0x000e3ce1 jtag> detectflash 0x1FFF0000 jtag> flashmem 0x1FFF0000 {path to file}/eeprom_dwl2100hw4_3FFF0000-3FFF0800.bin
Here is eeprom_dwl2100hw4_3FFF0000-3FFF0800.bin