OpenWrt Forum Archive

Topic: MikroTik RB411U miniPCI-E Working?

The content of this topic has been archived on 12 Mar 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

The RB411U is a little different in that it has a miniPCI express rather than miniPCI as found in the RB411. Has anyone got a miniPCI-E card to work on this board? I've tried the latest Attitude Adjustment as well as Backfire with 3 different miniPCI-E cards (ath9k, ath5k and Sierra Wireless MC8781) with no luck. I loaded all drivers (ath*, madwifi) for the ath wireless cards. The output of lspci is always:

00:00.0 Non-VGA unclassified device: Device 0700:1107 (rev 01)
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr+ Stepping- SERR+ FastB2B+ DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
    Latency: 0
    Region 0: Memory at <unassigned> (32-bit, prefetchable)
    Region 1: I/O ports at <unassigned> [disabled]
    Capabilities: [dc] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Bridge: PM- B3+

I've seen this device in other postings but no mention of what it is. What is it? A bridge to PCI-E with no driver?

My dmesg when booting is:

Linux version 2.6.39.4 (shaynal@shiva) (gcc version 4.5.4 20110808 (prerelease) (Linaro GCC 4.5-2011.08) ) #3 Mon Oct 24 11:54:21 PDT 2011
prom: fw_arg0=00000008, fw_arg1=a0871c00, fw_arg2=00000000, fw_arg3=00000000
MyLoader: sysp=ef539aff, boardp=7d74f8fc, parts=f7f3d35b
bootconsole [early0] enabled
CPU revision is: 00019374 (MIPS 24Kc)
SoC: Atheros AR7130 rev 2
Clocks: CPU:300.000MHz, DDR:300.000MHz, AHB:150.000MHz, Ref:40.000MHz
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
User-defined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00002000
On node 0 totalpages: 8192
free_area_init_node: node 0, pgdat 802dc380, node_mem_map 81000000
  Normal zone: 64 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 8128 pages, LIFO batch:0
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0 
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line:  console=ttyS0,115200 gpio=1983 HZ=150000000 mem=32M kmac=00:0C:42:96:FE:DD board=411U boot=1 mlc=2 rootfstype=squashfs,yaffs,jffs2 noinitrd
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
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=00021ec0
Readback ErrCtl register=00021ec0
Memory: 29224k/32768k available (2120k kernel code, 3544k reserved, 425k data, 180k init, 0k highmem)
SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:80
Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
MIPS: machine is MikroTik RouterBOARD 411U
registering PCI controller with io_map_base unset
bio: create slab <bio-0> at 0
pci 0000:00:00.0: [0700:1107] type 0 class 0x000000
pci 0000:00:00.0: reg 10: [mem 0x00000000-0x0fffffff pref]
pci 0000:00:00.0: reg 14: [io  0x0000-0x00ff]
pci 0000:00:00.0: supports D1 D2
pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot
pci 0000:00:00.0: PME# disabled
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
PCI: CLS 0 bytes, default 32
squashfs: version 4.0 (2009/01/31) Phillip Lougher
JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
yaffs built Oct 24 2011 10:19:44 Installing. 
 



YAFFS-WARNING CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED selected.



msgmni has been set to 57
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
console [ttyS0] enabled, bootconsole disabled
Atheros AR71xx SPI Controller driver version 0.2.4
m25p80 spi0.0: pm25lv512 (64 Kbytes)
spi0.0: searching for MyLoader partition table at offset 0x10000
Searching for RedBoot partition table in spi0.0 at offset 0xe000
Searching for RedBoot partition table in spi0.0 at offset 0xf000
No RedBoot partition table detected in spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x00000000b000 : "routerboot"
0x00000000b000-0x00000000c000 : "hard_config"
0x00000000d000-0x00000000f000 : "bios"
0x00000000f000-0x000000010000 : "soft_config"
NAND flash driver for RouterBoard 4xx series version 0.2.0
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 256 at 0x000000400000
Bad eraseblock 417 at 0x000000684000
Bad eraseblock 1156 at 0x000001210000
Bad eraseblock 1157 at 0x000001214000
Bad eraseblock 2173 at 0x0000021f4000
Bad eraseblock 3441 at 0x0000035c4000
Bad eraseblock 3443 at 0x0000035cc000
Bad eraseblock 3446 at 0x0000035d8000
Bad eraseblock 3448 at 0x0000035e0000
Bad eraseblock 3451 at 0x0000035ec000
Bad eraseblock 3463 at 0x00000361c000
Bad eraseblock 3473 at 0x000003644000
Bad eraseblock 3484 at 0x000003670000
Bad eraseblock 3500 at 0x0000036b0000
Bad eraseblock 3508 at 0x0000036d0000
Bad eraseblock 3524 at 0x000003710000
Bad eraseblock 3532 at 0x000003730000
Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "booter"
0x000000040000-0x000000600000 : "kernel"
0x000000600000-0x000004000000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
split_squashfs: no squashfs found in "NAND 64MiB 3,3V 8-bit"
ag71xx_mdio: probed
eth0: Atheros AG71xx at 0xb9000000, irq 4
eth0: connected to PHY at ag71xx-mdio:01 [uid=004dd021, driver=Generic PHY]
Atheros AR71xx hardware watchdog driver version 0.1.0
ar71xx-wdt: timeout=15 secs (max=28)
TCP westwood registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
yaffs: dev is 32505862 name is "mtdblock6" ro
yaffs: passed flags ""
yaffs: Attempting MTD mount of 31.6,"mtdblock6"
block 33 is marked bad
block 34 is bad
block 772 is marked bad
block 773 is bad
block 773 is marked bad
block 774 is bad
block 1789 is marked bad
block 1790 is bad
block 3057 is marked bad
block 3058 is bad
block 3059 is marked bad
block 3060 is bad
block 3062 is marked bad
block 3063 is bad
block 3064 is marked bad
block 3065 is bad
block 3067 is marked bad
block 3068 is bad
block 3079 is marked bad
block 3080 is bad
block 3089 is marked bad
block 3090 is bad
block 3100 is marked bad
block 3101 is bad
block 3116 is marked bad
block 3117 is bad
block 3124 is marked bad
block 3125 is bad
block 3140 is marked bad
block 3141 is bad
block 3148 is marked bad
block 3149 is bad
yaffs_read_super: is_checkpointed 0
VFS: Mounted root (yaffs filesystem) readonly on device 31:6.
Freeing unused kernel memory: 180k freed
input: gpio-keys-polled as /devices/platform/gpio-keys-polled/input/input0
Button Hotplug driver version 0.4.1
Registered led device: rb4xx:yellow:user
Registered led device: rb4xx:green:led1
Registered led device: rb4xx:green:led2
Registered led device: rb4xx:green:led3
Registered led device: rb4xx:green:led4
Registered led device: rb4xx:green:led5
ar71xx: pll_reg 0xb8050010: 0x1099
eth0: link up (100Mbps/Full duplex)
eth0: link down
device eth0 entered promiscuous mode
ar71xx: pll_reg 0xb8050010: 0x1099
eth0: link up (100Mbps/Full duplex)
br-lan: port 1(eth0) entering forwarding state
br-lan: port 1(eth0) entering forwarding state
Compat-wireless backport release: compat-wireless-2011-09-28-6-g8163a60
Backport based on wireless-testing.git master-2011-10-05
cfg80211: Calling CRDA to update world regulatory domain
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PPP generic driver version 2.4.2
ip_tables: (C) 2000-2006 Netfilter Core Team
cfg80211: World regulatory domain updated:
cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
NET: Registered protocol family 24
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ar71xx-ehci ar71xx-ehci: Atheros AR71xx built-in EHCI controller
ar71xx-ehci ar71xx-ehci: new USB bus registered, assigned bus number 1
ar71xx-ehci ar71xx-ehci: irq 3, io mem 0x1b000000
ar71xx-ehci ar71xx-ehci: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
nf_conntrack version 0.5.0 (459 buckets, 1836 max)
ath_hal: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
ath_hal: 2009-05-08 (AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425, REGOPS_FUNC, XR)
ath_pci: trunk
wlan: trunk
wlan: mac acl policy registered
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
uhci_hcd: USB Universal Host Controller Interface driver
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for Sierra USB modem
usbcore: registered new interface driver sierra
sierra: v.1.7.16:USB Driver for Sierra Wireless USB modems
ar71xx-wdt: enabling watchdog timer

Any pointers would be appreciated.

I just wanted to hop onto this post and say that I was having the same problem with the same board as you. Now, I did a little research and this is what I discovered: in the RB411U documentation, there is a rider that says that the MiniPCI-e slot "doesn't work with WLANs."

My partner and I missed that line up until today, and at first I thought it meant that MikroTik's RouterOS disabled that functionality. A little research on the miniPCIe bus shows that the interface to the host PC consists of a PCI Express 1x bus connection, a USB connection, and some LED serial lines all in parallel. But some 3G cards actually ONLY use the USB interface on a PCIe slot, while all MiniPCI-e WLAN cards I know of (and those you tested!) rely on the PCIe interface!

Now, I wouldn't bet my life on this because I'm not very familiar with the inner workings of PCI/PCIe, but I do know that the AR7130 only has a PCI bus controller + 2 USB controllers built in. My understanding is that the PCIe bus is not compatible with the PCI bus (can't connnect a PCIe card to a PCI controller, though it seems a PCIe controller does have some legacy support.... and there my knowledge run out so take that sentence with a truckload of salt). Therefore it seems like the MiniPCI slot on the RB411U connects to the PCI controller on the AR7130, and the physical USB and the MiniPCI-e USB buses connect to the two USB controllers on the AR7130.

Talk about extremely misleading--one would generally assume that the existence of a MiniPCI-e slot would imply that a MiniPCI-e card could be used on that hardware. I will certainly be much more wary of MikroTik equipment in the future--who knows what other crucial things they only mention in passing.

Hope that helps someone, or someone can confirm this. We spent a good amount of time playing with different drivers, compiling Open-WRT from scratch, trying different boards and cards, just like shaynal. This topic isn't really Google-able since most people aren't trying to do what we're doing, or they're smart enough to know that from the beginning. We could never get 'lspci' to show anything plugged into the MiniPCI-e slot on any board. I think that a note should be added to the Open-WRT hardware compatibility page about this, since it's not a real MiniPCI-e slot on the RB411U, far as I can tell.

tl;dr - the MiniPCI-e slot on the RB411U doesn't include a PCIe bus, thus 3G modems using a USB bus work, but WLAN cards don't.

Like how about having a USB port that doesn't offer any power like in the RB493G! So you can't use a thumb drive or anything else unless it has a wall wort or a dongle. Talk about cheap engineering. I thought their hardware was "premium" with loads of flash and RAM and well designed. The more I research them the lamer their hardware looks.

The discussion might have continued from here.