brcm47xx goes linux-2.6.31

Η πλατφόρμα στην οποία έκανε τα πρώτα του βήματα το openwrt ήταν αυτή της broadcom με τις συσκευές wrt της linksys, εξού και το όνομα: openwrt.

Όταν το openwrt μεγάλωσε και άρχισε να υποστηρίζει και άλλες πλατφόρμες, ήταν η εποχή που έγινε η μετάβαση από το whiterussian στο kamikaze, η brcm47xx πλατφόρμα έμεινε σχετικά πίσω σε θέματα υποστήριξης και ανάπτυξης. Συγκεκριμένα για πολύ καιρό η μόνη kamikaze έκδοση που έπαιζε σε αυτήν ήταν με έκδοση kernel 2.6.19. Πρέπει να πούμε ότι η συγκεκριμένη έκδοση έπαιζε πάρα πολύ καλά και σταθερά δίδοντας επιδώσεις που ξεπερνούσαν τα 20Mbit στο wifi κομμάτι.

Κάπου κοντά στην έκδοση linux-2.6.30, ενσωματώθηκε στον κυρίως πυρήνα ένα μεγάλο κομμάτι από mips/mipsel κώδικα με αποτέλεσμα οι συγκεκριμένες brcm47xx συσκευές να ξαναβρούν την χαμένη από καιρό υποστήριξη και ανάπτυξη από τον ιδιαίτερα πλούσιο αριθμό των linux kernel developer & maintainer.

Πριν από λίγα λεπτά είχα την χαρά να δω μια τέτοια συσκευή να δουλεύει καλά και σταθερά σε latest & greatest openwrt/linux-2.6.31:

Linux version 2.6.31 (alex@motard) (gcc version 4.3.4 (GCC) ) #1 Tue Sep 15 13:20:46 EEST 2009
CPU revision is: 00024000 (Broadcom BCM4710)
Serial init done.
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00001000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00001000
On node 0 totalpages: 4096
free_area_init_node: node 0, pgdat 80236070, node_mem_map 80276000
  Normal zone: 32 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 4064 pages, LIFO batch:0
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
PID hash table entries: 64 (order: 6, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Enabling BCM4710A0 cache workarounds.
Primary instruction cache 8kB, VIPT, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, VIPT, no aliases, linesize 16 bytes
Memory: 13720k/16384k available (1955k kernel code, 2664k reserved, 311k data, 124k init, 0k highmem)
SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 82.68 BogoMIPS (lpj=165376)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
Switched to NOHz mode on CPU #0
PCI: Setting latency timer of device 0000:00:00.0 to 64
pci 0000:00:00.0: reg 10 32bit mmio: [0x000000-0x001fff]
pci 0000:00:00.0: reg 14 32bit mmio: [0x000000-0x7ffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
msgmni has been set to 26
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 0 ports, IRQ sharing disabled
eth0: Broadcom 44xx/47xx 10/100BaseT Ethernet 00:01:e3:04:5d:aa
eth1: Broadcom 44xx/47xx 10/100BaseT Ethernet 00:01:e3:04:5d:ab
flash init: 0x1fc00000 0x00400000
Physically mapped flash: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Flash device: 0x400000 at 0x1fc00000
bootloader size: 262144
Creating 4 MTD partitions on "Physically mapped flash":
0x000000000000-0x000000040000 : "cfe"
0x000000040000-0x0000003f0000 : "linux"
0x000000100000-0x0000003f0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
split_squashfs: no squashfs found in "Physically mapped flash"
0x0000003f0000-0x000000400000 : "nvram"
BCM47xx Watchdog Timer enabled (30 seconds, nowayout)
TCP cubic registered
NET: Registered protocol family 17
VFS: Mounted root (jffs2 filesystem) readonly on device 31:2.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
diag: Router model not detected.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: powering down PHY
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.

 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH

BusyBox v1.13.4 (2009-09-15 13:09:50 EEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (bleeding edge, r17585) -------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!

ακόμη τα σχετικά patches δεν έχουν μπει στο κυρίως δένδρο του openwrt.