OpenWrt Forum Archive

Topic: Atheros AR7100

The content of this topic has been archived between 30 Mar 2018 and 1 May 2018. Unfortunately there are posts – most likely complete pages – missing.

acoul wrote:

what openwrt version are you using?  I don't have this issue on my rb411 and the latest snapshot I posted earlier. I soft rebooted the rb411 10+ times without any problems.

I've tried it with number6's patch downloaded from ftp://ftp.ipeaknetworks.com/ar7100/. I know it works with RB411 perfectly and also worked with "old" RB433s but now I have new series of RB433s which shows the sympthoms described above. I'm sure Mikrotik uses different SPI NAND driver in their RouterOS than they put into their public patch. Here comes what RouterOS prints about SPI driver:

FLASH SPI clock 25000 kHz (AHB 150000 kHz / 6)
CPLD SPI clock 25000 kHz (AHB 150000 kHz / 6)
RB400 spi misc
RB400 spi nand

and here what our driver does:

RB400 nand
NAND SPI clock 25000 kHz (AHB 150000 kHz / 6)
FLASH SPI clock 25000 kHz (AHB 150000 kHz / 6)

I have the following information about RB433's SPI NAND:
- A Xilinx CPLD is connected to the AR7130's SPI port
- The CPLD is connected to a normal (not serial) NAND flash (27US08121A).
- The CPLD does the convesion between SPI and NAND flash.
- Mikrotik uses "fast" SPI which means 2 DO (data output) lines are used for serial transfer output

I built a kernel based not on Mikrotik's patch but original Atheros files and did the same. Currently I have no idea how to get on.

thanks for the useful input bitbucket.  I will try to put them all together. is there a place to download those patches instead of cut & paste from the mailing list?

acoul wrote:

thanks for the useful input bitbucket.  I will try to put them all together. is there a place to download those patches instead of cut & paste from the mailing list?

You may wait for new compat-wireless snapshot...

I updated the bin images and the patches & sources.  ath5k works quite stable thanks to bitbucket.  I am still unable to use ad-hoc.  no locks and crashes.

(Last edited by acoul on 21 Jul 2008, 19:07)

flam wrote:

I know it works with RB411 perfectly and also worked with "old" RB433s but now I have new series of RB433s which shows the sympthoms described above.

any idea what are the differences  of the NAND? what bios version the new rb433s have?  how about perhaps formating the nand with an older bios firmware? do provide any input about this issue, such as interrupts, dmesg, modules loaded and perhaps even enabling extra debug info on the kernel?

can you also try my bin images to see if the ethernet works fine?  I've merged number6 work along with some extra checks for rb411 boards.

(Last edited by acoul on 21 Jul 2008, 16:39)

acoul wrote:

I updated the bin images and the patches & sources.  ath5k works quite stable thanks to bitbucket.  I am still unable to use ad-hoc.  no locks and crashes.

The ethernet do not work in RB450, with elf image. I try to compile: same result.
The phy detect is wrong:

ksz_phy: autonegotiation does not completed
AG7100: unit 0 phy is up...Mii 10Mbps full duplex

The MAC is OK (see below)
Then, I try compile the trunk ar71xx. This work, but I have only eth0 in port 4 (RB450 eth5) and eth1 in port 0
Another bad: that the MAC is wrong

eth0      Link encap:Ethernet  HWaddr 00:BA:DB:AD:BA:D0

The real MAC is 00:0C:42:2E:86:45

mtvlv wrote:

Then, I try compile the trunk ar71xx. This work, but I have only eth0 in port 4 (RB450 eth5) and eth1 in port 0
Another bad: that the MAC is wrong

eth0      Link encap:Ethernet  HWaddr 00:BA:DB:AD:BA:D0

The real MAC is 00:0C:42:2E:86:45

There are only two ethernet interfaces in the CPU, so that's completely right. If you look at that MAC, you can see it says "bad" all over it -- mac address setting still needs to be added.

mtvlv wrote:

The ethernet do not work in RB450, with elf image. I try to compile: same result.
The phy detect is wrong:

ksz_phy: autonegotiation does not completed
AG7100: unit 0 phy is up...Mii 10Mbps full duplex

The MAC is OK (see below)

can you post the output of the:

cat /proc/cpuinfo

it is great that the ar71xx is finally in the trunk. we should all focus in that tree now. binary images are here.

had to use the following patch in order to get a proper boot from nand on an rb411:

--- target/linux/ar71xx/config-default  2008-07-22 07:50:51.000000000 +0300
+++ target/linux/ar71xx/config-default-new      2008-07-22 09:05:24.000000000 +0300
@@ -23,7 +23,7 @@
 # CONFIG_BT is not set
 CONFIG_CEVT_R4K=y
 CONFIG_CLASSIC_RCU=y
-CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 init=/etc/preinit"
+CONFIG_CMDLINE="root=/dev/mtdblock1 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 init=/etc/preinit"
 CONFIG_CPU_BIG_ENDIAN=y
 CONFIG_CPU_HAS_LLSC=y
 CONFIG_CPU_HAS_PREFETCH=y

(Last edited by acoul on 22 Jul 2008, 07:23)

acoul wrote:

can you post the output of the: cat /proc/cpuinfo

Output from your elf image and from trunk

Linux version 2.6.23.17 (alex@extreme)
system type             : Mikrotik RB450
processor               : 0
cpu model               : MIPS 24K V7.4
BogoMIPS                : 199.47
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes
ASEs implemented        : mips16
VCED exceptions         : not available
VCEI exceptions         : not available

Linux version 2.6.25.10 (marcos@nwmt) (gcc version 4.1.2) #1 (trunk)
system type             : Atheros AR7130 rev 2 (id:0xa8)
processor               : 0
cpu model               : MIPS 24K V7.4
BogoMIPS                : 199.88
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes
ASEs implemented        : mips16
shadow register sets    : 1
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

@mtvlv: I think it is best to focus on the ar71xx openwrt trunk now that is officially released.  Here is my feedback for the ar71xx 11910 trunk.

ath5k wlan0 down
3 x ping -f -s 65507 192.168.1.1 --> ok
ath5k wlan0 up
2 x ping -f -s 65507 192.168.1.1 --> not ok

on second scenario, after a few seconds eth0 stops responding while softirq goes to 100%.  bringing the eth0 down brings softirq to 0%. bringing up eth0 takes softirq to 100% while eth0 does respond to pings. removing ath5k does not change this behavior. the following messages are after the problem appears:

cat /proc/interrupts
           CPU0
  2:          0            MIPS  cascade [AR71XX PCI]
  4:   19942958            MIPS  eth0
  6:          0            MIPS  cascade [AR71XX MISC]
  7:      12337            MIPS  timer
 10:          0     AR71XX MISC  cascade [AR71XX GPIO]
 11:       2419     AR71XX MISC  serial
 32:         79     AR71XX PCI   ath

ERR:          0
eth0      Link encap:Ethernet  HWaddr 00:0C:42:19:CE:F9
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:421951 errors:0 dropped:0 overruns:0 frame:0
          TX packets:421707 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:628701585 (599.5 MiB)  TX bytes:628337491 (599.2 MiB)
          Interrupt:4
wlan0     Link encap:Ethernet  HWaddr 00:0B:FF:FF:28:1F
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

(Last edited by acoul on 23 Jul 2008, 21:17)

Hi,

Tested on a RouterBoard 450 this morning.

One small problem: for TFTP boot only the leftmost eth connector (next to the serial port) works, but after the linux boot, the righmost connector becomes eth0. I guess I'll be able to figure this up, seems like a minor issue.

Otherwise it works absolutely fine. Didn't stress-test it yet.
We plan to use the box on a network with 20-30Mpbs of "background" (not for this box) broad/multicast traffic (very high softirq demand) I'll report on the results.

Thanks a lot guys for the good work!

Tiv

you may find some additional binary packages for this platform here

acoul wrote:

any idea what are the differences  of the NAND? what bios version the new rb433s have?  how about perhaps formating the nand with an older bios firmware? do provide any input about this issue, such as interrupts, dmesg, modules loaded and perhaps even enabling extra debug info on the kernel?

can you also try my bin images to see if the ethernet works fine?  I've merged number6 work along with some extra checks for rb411 boards.

No difference between RB411's and RB433's NAND chip. They both have BIOS version 2.16. I tried to format NAND but didn't help. I think only rb400_nand.c, GPIO and SPI registers are involved in this issue. Every other piece of the system (LAN, PCI, etc.) works perfectly while NAND is not accessible. The only side effect is that AR7100 FULL_RESET (see rb400_restart) doesn't work (it hangs the system) so I was able to reboot RB433 by writing NMI_RESET bit of AR7130. When NAND is not accessible and kernel can't start init process the system restarts after 5 secs (panic=5). After 1-2 panic reboot RouterBoard's BIOS gets also not to access NAND and prints the following:

NAND ERROR: waitStatusReady() timeout (1170 ms), status 00

That's all. I gave up investigating this issue and built custom modules for RouterOS's original 2.6.24.3 kernel (I didn't recompile the kernel itself) and it works perfectly.

@flam: have you tried the openwrt ar71xx trunk?  you can find binary images here. latest version is at kernel 2.6.26. can you test and report back here?

I am having some difficulties getting ath9k compiled for the mips platform. I created a relative ticket here.

acoul: there is possible error in your latest build (12076) on rb411, kernel is attempting to mount /dev/mtdblock2 as root filesystem

Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00040000-0x00400000 : "kernel"
0x00400000-0x04000000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
split_squashfs: error occured while reading from "NAND 64MiB 3,3V 8-bit"
0x00000000-0x00040000 : "booter"
Atheros AR71xx SPI Controller driver version 0.2.2
Registered led device: rb4xx:yellow:user
TCP vegas registered
NET: Registered protocol family 17
end_request: I/O error, dev mtdblock2, sector 0
SQUASHFS error: sb_bread failed reading block 0x0
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
VFS: Mounted root (yaffs filesystem) readonly.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
Failed to execute /etc/preinit.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

last working build is 11932 (with kernel 2.6.25.11), but there is another problem with madwifi while the card is running in master mode

after doing "wlanconfig ath0 create wlandev wifi0 wlanmode ap && ifconfig ath0 up" the whole thing starts to respond very slow
output from serial console:

wifi0: ath_fatal_tasklet: Hardware error; resetting.
wifi0: ath_fatal_tasklet: Hardware error; resetting.

about two such lines per second

(Last edited by qyx on 6 Aug 2008, 02:33)

I created a ticket about this here.  I will prepare a new patched binary image with latest ath5k today.  note that adhoc has some issues on ath5k. I wonder if this issue is also present on rb433/450.

@qyx: what wifi card are you using? there is a chip hardware bug for the ar71xx platform and 802.11a/b/g wifi cards. until a new closed-hal madwifi-ng comes out you can only use ath5k.

(Last edited by acoul on 6 Aug 2008, 07:03)

acoul wrote:

@qyx: what wifi card are you using?

it is wistron cm10 (dcma-81) a/b/g with AR5006XS chipset

@qyx: you may give a try to this one. you can test ath5k and madwifi-ng as this is a gcc-3.4.6 image.  you can even test the new ath9k if you have an atheros 802.11n wifi card.

(Last edited by acoul on 7 Aug 2008, 04:49)

I am a bit new to this area of openwrt.  I am trying to build openwrt from trunk for use on the RB433. When I run "make menuconfig" I do not get the AR71xx option available under the "Target Systems" menu to select this platform.

I have gone in a removed the "broken" tag from the FEATURE statement in the makefile and now the the target is available as an option:
trunk/target/linux/ar71xx/Makefile
FEATURES:=squashfs tgz broken  <- remove the "broken" tag

Now it is available. Is this the right approach?

on "make menuconfig" select the advanced options and within that menu select the "show broken platforms". the reason it is under "broken platforms" is that it has not been tested thoroughly yet, not that it is actually broken.

I was able to get openwrt (trunk) running on my RB433 boards (thanks acoul). I would like to see if someone can confirm the steps that I used to ensure that this is the correct approach. I would be happy to put together a wiki page that could be used to help others get started. Please let me know if this is the approach that you are all using. In addition I have an issue with the Ethernet ports that I post below:

1. Download trunk, make menuconfig, on advanced settings select "show broken platforms"
2. Target System select "Atheros AR71xx[2.6]"
3. Target Images select "ramdisk"
3. Run make -> produces the image "openwrt-ar71xx-vmlinux.elf"
4. Setup bootp network boot environment (I would be happy to post my dnsmasq setup)
5. Power up the device and enter the bios
   a. formand NAND flash
   b. select boot from ethernet (this will download and run the ramdisk defined above)
6. Run make menuconfig and set the Target Image to tgz and run make
7. scp the new images [kernel (openwrt-ar71xx-vmlinux.elf) and rootfs (openwrt-ar71xx-rootfs.tgz)] into /tmp on the device
8. Install the kernel
   a. mount /dev/mtdblock1 /mnt
   b. mv /tmp/openwrt-ar71xx-vmlinux.elf /mnt
   c. umount /mnt
9. Install the root file system
   a. mount /dev/mtdblock2 /mnt
   b. cd /mnt
   c. tar xzvf /tmp/openwrt-ar71xx-rootfs.tgz
   d. umount /mnt
10. reboot -> enter bios and select boot from NAND

Much of this was taken from how I loaded the RC133c using the wiki page. Although the wget2nand is much more complicated, which is why (although this seems to work) I feel like I am doing something wrong.

In addition it seems that there are only 2 Ethernet ports, although the device has 3 Ethernet ports. I also loaded the images from (http://wifi.ozo.com/airo/openwrt/firmwa … 1xx/12204/) and got the same result (2 Ethernet ports)

Looking at the platform.c file from /arch/mips/ar71xx/ it looks like only eth0 and eth1 are being setup. Not sure if I am missing something. I would be happy to look at updating those files if someone could provide some guidance.

Thanks for the great work everyone!

@paulCutler: can you post the output of the "dmesg" & "cat /proc/interrupts"?

****************************************************************
**********    Output of dmesg:                                *************
****************************************************************
|       |.-----.-----.-----.|  |  |  |.----.|  |_
|   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
|_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
KAMIKAZE (bleeding edge, r12245) -------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
---------------------------------------------------
root@model75:/# dmesg
Linux version 2.6.26.2 (gm2311@luke) (gcc version 4.1.2) #1 Fri Aug 8 21:21:33 EDT 2008
prom: fw_arg0=00000007, fw_arg1=a0861c00, fw_arg2=00000000, fw_arg3=00000000
prom: routerboot envp[0]: console=ttyS0,115200
prom: routerboot envp[1]: gpio=4031
prom: routerboot envp[2]: HZ=150000000
prom: routerboot envp[3]: mem=64M
prom: routerboot envp[4]: kmac=00:0C:42:21:F7:41
prom: routerboot envp[5]: board=433
prom: routerboot envp[6]: boot=0
prom_init:124 arcs_cmdline:'root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 init=/et'
prom_init:124 boot_command_line:''
console [early0] enabled
CPU revision is: 00019374 (MIPS 24K)
plat_mem_setup:218 arcs_cmdline:'root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 ini'
plat_mem_setup:218 boot_command_line:''
Determined physical RAM map:
memory: 04000000 @ 00000000 (usable)
Entering add_active_range(0, 0, 16384) 0 entries of 256 used
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal          0 ->    16384
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0:        0 ->    16384
On node 0 totalpages: 16384
  Normal zone: 128 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 16256 pages, LIFO batch:3
  Movable zone: 0 pages used for memmap
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 init=/etc/preint
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Writing ErrCtl register=00000800
Readback ErrCtl register=00000800
PID hash table entries: 256 (order: 8, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 62140k/65536k available (1820k kernel code, 3328k reserved, 326k data, 128k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 199.88 BogoMIPS (lpj=999424)
Mount-cache hash table entries: 512
net_namespace: 484 bytes
NET: Registered protocol family 16
ar71xx_machine_setup:354 arcs_cmdline:'root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,1152'
ar71xx_machine_setup:354 boot_command_line:'root=/dev/mtdblock2 rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0'
MIPS: machine is MikroTik RouterBOARD 433/AH
registering PCI controller with io_map_base unset
NET: Registered protocol family 2
Switched to high resolution mode on CPU 0
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
yaffs Aug  8 2008 21:19:07 Installing.
msgmni has been set to 121
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver $Revision: 1.90 $ 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
console handover: boot [early0] -> real [ttyS0]
ag71xx_mdio: probed
eth0: Atheros AG71xx at 0xba000000, irq 5
eth0: connected to PHY at 0:04 [uid=02430d80, driver=Generic PHY]
eth1: Atheros AG71xx at 0xb9000000, irq 4
eth1: connected to multiple PHYs (2)
NAND flash driver for RouterBoard 4xx series version 0.1.10
NAND SPI clock 25000 kHz (AHB 150000 kHz / 6)
FLASH SPI clock 25000 kHz (AHB 150000 kHz / 6)
NAND device: Manufacturer ID: 0xad, Chip ID: 0x76 (Hynix NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 2164 at 0x021d0000
Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00040000 : "booter"
0x00040000-0x00400000 : "kernel"
0x00400000-0x04000000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
split_squashfs: no squashfs found in "NAND 64MiB 3,3V 8-bit"
Atheros AR71xx SPI Controller driver version 0.2.2
Registered led device: rb4xx:yellow:user
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP vegas registered
NET: Registered protocol family 17
Bridge firewalling registered
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
nand_erase: attempt to erase a bad block at page 0x00010e80
**>> Erasure failed 1909
yaffs: marking block 1908 bad<4>**>> Block 1909 retired
VFS: Mounted root (yaffs filesystem) readonly.
Freeing unused kernel memory: 128k freed
Please be patient, while OpenWrt loads ...
Algorithmics/MIPS FPU Emulator v1.5
br-lan: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
device eth0 entered promiscuous mode
PPP generic driver version 2.4.2
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
arp_tables: (C) 2002 David S. Miller
Ebtables v2.0 registered
wlan: trunk
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: 0.10.5.6 (AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425, RF2417, REGOPS_FUNC)
ath_rate_minstrel: Minstrel automatic rate control algorithm 1.2 (trunk)
ath_rate_minstrel: look around rate set to 10%
ath_rate_minstrel: EWMA rolloff level set to 75%
ath_rate_minstrel: max segment size in the mrr set to 6000 us
wlan: mac acl policy registered
ath_pci: trunk
gpio-buttons driver version 0.1.1
eth0: link up (100Mbps/Full duplex)
br-lan: port 1(eth0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0) entering forwarding state
device tap0 entered promiscuous mode
br-lan: port 2(tap0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 2(tap0) entering forwarding state
eth1: link up (100Mbps/Full duplex)
device eth1 entered promiscuous mode
****************************************************************
**********    Output of >cat /proc/interrupts             *************
****************************************************************

cat /proc/interrupts
           CPU0
  2:          0            MIPS  cascade [AR71XX PCI]
  4:          0            MIPS  eth1
  5:        324            MIPS  eth0
  6:          0            MIPS  cascade [AR71XX MISC]
  7:      36143            MIPS  timer
10:          0     AR71XX MISC  cascade [AR71XX GPIO]
11:        532     AR71XX MISC  serial

ERR:          0
************************************************************

Let me know if there is anything else I can provide, and thanks for the help.

eth1: connected to multiple PHYs (2)

it looks like there are only two ethernet chips.  eth1 is connected to multiple PHYs, something like a hub? you should be able to set an IP for eth1 and ping it from both the other two ethernet ports. I don't have such a hardware so I can't help you any further.

I did notice that in the dmesg information. I will look into this in a little more detail and post anything that I find.

Some interesting things to consider:
* The board has 3 NIC Addresses on the label
* All of the documentation defines this as a 3 x Ethernet port device

I would be happy to send you (acoul) a unit to play with (or donate one to the openWRT team). You can email me your address directly if you are interested, let me know.

Thanks again and I will let you know what I find.