Asus WL500g

The device is fully supported by FreeWRT. You can install the FreeWRT firmware via the update function of the vendor web administration. The vendor uses NVRAM to store information about the configuration of the device. FreeWRT ignores these settings.

Architecture: MIPS
Vendor: Broadcom
Bootloader: PMON
System-On-Chip:  Broadcom 4710
CPU Speed: 125 Mhz
Flash size: 4 MB
RAM: 16 MB
Wireless: Mini-PCI Broadcom BCM4320
Ethernet: two network interfaces, no switch
USB: 1 x USB 1.1
Parallel Port: yes
Serial: possible with external UART  
JTAG: no
NVRAM: yes

Network configuration

The default network configuration is:

interface namedescriptiondefault ip configuration
eth0LAN Ports192.168.1.1/24
eth1WAN Portdhcp
eth2Wifidisabled for security reasons

TFTP Installation notes

Connect your PC to one of the LAN ports to install FreeWRT via TFTP. Pull the plug, press and hold the reset button, plug the device and wait until the PWR LED starts flashing slowly (almost immediately). Now release the reset button and upload the firmware by TFTP using the flash script (preferred) or the following commands:

TFTP commands:

tftp 192.168.1.1
tftp> binary
tftp> trace
tftp> get ASUSSPACELINK\x01\x01\xa8\xc0 /dev/null
tftp> put freewrt-asus-wl500g-brcm-2.4-jffs2.bin ASUSSPACELINK
tftp> quit

After this, wait until the PWR LED stops flashing and the device to reboot and you should be set.

As an alternative (or if this installation routine doesn't do the trick for you) you can always use the ASUS Recovery tool from your utilities CD to upload your firmware.

Another thing is that the Asus WL500g doesn't revert to the 192.168.1.1 address when starting the bootloader, but use the LAN IP address set in NVRAM, so use this address or use the recovery tool if you've got problems flashing your firmware.

Bootloader commands

If you get an external UART connected to your device, you can get into the bootloader (PMON) via strg-c on boot.

PMON>vers
5.3.22

With the command "set" you can show all NVRAM variables. If you want to modify a variable just use:

PMON>set language en

At the moment there exist no more documentation for PMON.

Open questions:

How NVRAM values are committet? How I reset NVRAM via PMON?

dmesg

CPU revision is: 00024000
Enabling BCM4710A0 cache workarounds.
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, linesize 16 bytes.
Linux version 2.4.34 (tg@odem.66h.42h.de) (gcc version 3.4.4 (FreeWRT rev. 2678)) #2 Thu Jun 14 11:24:01 UTC 2007
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: init=/etc/preinit noinitrd console=ttyS0,115200 rootfstype=squashfs root=/dev/mtdblock2
CPU: BCM4710 rev 0 at 125 MHz
Using 62.400 MHz high precision timer.
!unable to setup serial console!
Calibrating delay loop... 82.94 BogoMIPS
Memory: 14352k/16384k available (1410k kernel code, 2032k reserved, 96k data, 88k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 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: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction...  unavailable.
POSIX conformance testing by UNIFIX
PCI: Initializing host
PCI: Fixing up bus 0
PCI: Fixing up bridge
PCI: Setting latency timer of device 01:00.0 to 64
PCI: Fixing up bus 1
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Registering mini_fo
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
b44.c:v0.93 (Mar, 2004)
PCI: Setting latency timer of device 00:02.0 to 64
kmod: trying to execute user mode helper '/sbin/hotplug' with args 0='/sbin/hotplug' 1='net' and env 'HOME=/' 'PATH=/sbin:/bin:/usr/sbin:/usr/bin' 'INTERFACE=eth0' 'ACTION=register'
eth0: Broadcom 47xx 10/100BaseT Ethernet 00:11:d8:18:b9:08
PCI: Setting latency timer of device 00:08.0 to 64
kmod: trying to execute user mode helper '/sbin/hotplug' with args 0='/sbin/hotplug' 1='net' and env 'HOME=/' 'PATH=/sbin:/bin:/usr/sbin:/usr/bin' 'INTERFACE=eth1' 'ACTION=register'
eth1: Broadcom 47xx 10/100BaseT Ethernet 00:11:d8:18:b9:08
 Amd/Fujitsu Extended Query Table v1.0 at 0x0040
Physically mapped flash: JEDEC Device ID is 0xCA. Assuming broken CFI table.
Physically mapped flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x400000 at 0x1fc00000
bootloader size: 262144
Physically mapped flash: Filesystem type: squashfs, size=0x126dc1
Creating 7 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "cfe"
0x00040000-0x003d0000 : "linux"
0x000b2c00-0x001e0000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x003d0000-0x003f0000 : "fwcf"
0x00040000-0x003f0000 : "fwrt_all"
0x001e0000-0x003d0000 : "rootfs_data"
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 88k freed
Warning: unable to open an initial console.
Algorithmics/MIPS FPU Emulator v1.5
diag: Detected 'ASUS WL-500g'
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
jffs2.bbc: SIZE compression mode activated.
PCI: Setting latency timer of device 01:02.0 to 64
PCI: Enabling device 01:02.0 (0004 -> 0006)
kmod: trying to execute user mode helper '/sbin/hotplug' with args 0='/sbin/hotplug' 1='net' and env 'HOME=/' 'PATH=/sbin:/bin:/usr/sbin:/usr/bin' 'INTERFACE=wl0' 'ACTION=register'
wl0: Broadcom BCM4320 802.11 Wireless Controller 4.80.53.0
IPv6 v0.8 for NET4.0
IPv6 over IPv4 tunneling driver
kmod: trying to execute user mode helper '/sbin/hotplug' with args 0='/sbin/hotplug' 1='net' and env 'HOME=/' 'PATH=/sbin:/bin:/usr/sbin:/usr/bin' 'INTERFACE=sit0' 'ACTION=register'
b44: eth1: Link is up at 100 Mbps, full duplex.
b44: eth1: Flow control is off for TX and off for RX.
eth0: no IPv6 routers present