Table of Contents

D-Link DWL-2100AP

This device is NOT RECOMMENDED for future use with OpenWrt due to low flash/ram.
DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version onto it! See 4/32 warning for details.

1) This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for this device has ended in 2022.
19.07.10 was the last official build for 4/32 devices.

Supported Versions

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!!)

Hardware Highlights

CPU Ram Flash Network USB Serial JTag
Atheros AR2313A @180MHz? 16MiB 4MiB 1 No Yes Yes

Hardware

Info

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.

Opening the case

Note: This will void your warranty!

Main PCB H/W Versions: A1, A2, A3
DWL-2100AP PCB with four modifications: Three solder bridges and one soldering attempt at JP1 pin 2

Main PCB H/W Versions: A4, A5
No modification needed

Serial

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.

Rev. A1, A2, A3

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

Solder bridges on rev. A2

Rev. A4, A5

JTAG is J5
Serial is JP2 (TTL levels - VCC 3.3V)

JP2

-1- _ -2- -3- -4-
TX _ VCC GND RX

JTAG-J5;Serial-JP2 Serial pinout

Installing

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.

Ramdisk Network Boot

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:

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

Bootloader replacement

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.

Vendor Type Loader
AMD AM29LV320DB Redboot
Atmel AT49BV322A Redboot
Spansion S29AL032D Redboot
Spansion S29GL032D Redboot
Spansion S29GL032M Redboot
Macronix MX29LV320D Redboot
Eon EN29LV320BB Not supported yet !

Compiled RedBoot, need file "BootLoader Redboot con support Lzma (molto più veloce) per OpenWRT sul 2100AP"

Install RedBoot using serial console

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.
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

Install RedBoot - jtag method

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

Install OpenWRT

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

Recovery Board Config

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

JTAG

old Wiki page

See port.jtag for more JTAG details.

Other Info

old Wiki page

Tags

How to add tags