In the first place thanks alot to * Bernhard Loos * Jonas Gorski These guys made it possible! ASUS RT-N16 firmware image with Openwrt trunk. First of all I want all of you reading this to be warned. THIS IS TESTED ONLY ON ASUS RT-N16 AND SO FAR I CAN GUARANTEE THAT IT WILL WORK FOR ASUS RT-N16 AND ONLY. IF YOU PLAN TO USE IT FOR EMBEDDABLE OTHER THAN ASUS RT-N16 YOU ARE RISKING TO GET IT BRICKED. NEVER EVER TRY THIS ON ROUTERS OTHER THAN 4716-BASED ONES IF YOU DONT KNOW HOW TO DEBRICK IT WITH SERIAL CONSOLE OR JTAG OR WHATEVER. Don't tell me you didn't knew it if ever get your box dead. Now back to subject. As of writing all bcm4716-based mips embeddables known to me are officially supported only by respective vendors' firmwares with GPL source codes based on some pre-linux-2.6.22 release customised by Broadcom for their socs. There are also several non-officially firmwares like wl500 (Oleg's fw), tomato, dd-wrt, might there are others as well, all less-or-more based on that Broadcom' source code. These patches will let you get openwrt trunk working on your ASUS RT-N16 router. Thanks to Nathan Hintz we have Linksys E3000v1 and WRT610N V2 working. Thanks Gert Doering alot for your time and E3000 bootlog. Thanks to John Vogel for Linksys E2000 support patches. What you will get: Working ethernet, usb and finally wifi (with broadcom-wl). What you won't get: No more cookies ? What you might get: Bricked router if your particular vendor's model aint reported to be working with this by other people and you don't have at least serial-uart converter to debrick the box if sh1t happens (you know it tends to happen, I warned you already). As of writing following devices are tested and confirmed as working: ~ ASUS RT-N16; ~ Belkin PlayMax F7D4301; ~ Linksys E3000v1; ~ Linksys E2000 (there are hung issues with ohci driver so don't select it for build nor use my prebuilt .trx firmware images yet); ~ Linksys WRT610N V2. Not confirmed but might work: ~ none yet. Most likely this will work the same on others bcm4716-based embeddables. Also might work on 47162 ones too (never heard about such tho). To get your non N16 router boot with network you might need to patch broadcom-diag package and netconfig from bcm4716 platform base-files package. Would be much appreciated if you let me know whether you got your box working with this or not. To get it working you need following 4 patches. 000-openwrt4716-TARGET_brcm4716-clone-brcm47xx.patch * just a straight copy of the brcm47xx platform. 000-openwrt4716-TARGET_brcm4716-prereq.patch preliminary changes (not required anymore as got merged with Openwrt since 29736 changeset): * broadcom-diag detection support for models already mentioned earlier. 001-openwrt4716-TARGET_brcm4716.patch bcm4716-based embeddables support: * separate bcm4716 platform in target/linux/ to distinguish kernel changes required to get 4716-ones working. Changes made to linux kernel are potentially dangerous for other non 4716-based broadcom 47xx devices. Most of the 4716-targetted patches are tested on bcm5354-based D-Link DIR-320 and ASUS WL-500GPv2 and prooved they are still working. The only exception are changes to PMU management code which I haven't done with yet. 002-openwrt4716-TARGET_brcm4716-deps.patch fix bcm4716 package dependencies: * broadcom-diag ~ let it get built for bcm4716 target. * broadcom-wl ~ let it get built for bcm4716 target, make it working with bcm4716 attached w11 core, fix legacy pci dma usage; * kernel ~ don't let select ssb to be built as module for bcm4716 target. ~ don't let select bcma to be built as module for bcm4716 target. ~ add gmac driver for bcm4716 target. * mac80211 ~ don't let it be selected with bcm4716 target - you will fail to build it, and even if you succeede with b43 still it don't support bcm4716' w11 N-Phy core yet. * nvram ~ let it get built for bcm4716 target. * switch ~ let it get built for bcm4716 target. Patches are named 000-xxx, 001-xxx and 002-xxx by reason - apply them in order 000-xxx, 001-xxx and then finally 002-xxx. All changes made to trunk are completely harmless to every other platform supported by Openwrt currently. Steps to get image for your bcm4716-based router: 1. get your openwrt trunk copy 2. apply patches 3. chmod +x target/linux/brcm4716/base-files/etc/init.d/netconfig or you won't get network working on firstboot (not required anymore since 2011-06-19 release) 4. make 5. select "Broadcom BCM94716" in configuration menu as Target System 6. select your particular router model's profile in Target Profile 7. get your coffee while Openwrt builds. Lots of coffee. 8. flash and pray it wont fail :p 9. those without serial console wait about 5 minutes for flash done. cfe wont reboot after it done with flashing so just wait and then reboot the box. 10. jffs will start formatting rootfs_data at firstboot, wait for ping 192.168.1.1, telnet and then watch logread till jffs done with format. Its another 4-5 minutes. If you have wifi led constantly off try following to get it working (reboot when done): nvram set sb/1/leddc=0x5A000A nvram set wl0gpio7=8 nvram commit Have fun, George Kashperko Changelog: * 2012-12-08 trivial update to catch up the openwrt trunk; both 3.3.8 and 3.6.8 kernel releases support; * 2012-11-12 trivial update to catch up the openwrt trunk; * 2012-10-28 trivial update to catch up the openwrt trunk; * 2012-10-23 trivial update to catch up the openwrt trunk; Linksys E2000 support by John Vogel ; * 2012-09-22 trivial update to catch up the openwrt trunk; * 2012-09-16 trivial update to catch up the openwrt trunk; * 2012-05-28 trivial update to catch up the openwrt trunk; * 2012-05-18 address gmac stability issues on high loads; * 2012-05-14 moved on to 3.3.6 kernel; address gmac and ssb timing issues making router unresponsive over ethernet network; * 2012-03-09 moved on to 3.2.9 kernel; * 2012-02-10 trivial update to catch up the 3.0.18 linux kernel support by the brcm47xx openwrt trunk target; * 2012-01-19 moved on to 3.0.17 kernel; support for 3.2 kernel; * 2012-01-03 those who suffer from make menuconfig crashing apply 001-openwrt4716-TARGET_brcm4716-F7D4301-fix.patch Thanks Joel Crisp for pointing this and 2011-01-01 in previous changlelog entry :P * 2012-01-01 got my hands over Belkin F7D4301. It features two w11's so, hopefully, I will get second radio working for the 4716'ths at some point; * 2011-10-07 thanks alot to Christian Ruppert, we now have Linksys WRT610N V2 confirmed working; * 2011-09-25 address gmac stability issues on high loads; * 2011-09-19 moved on to 3.0.4 kernel; * 2011-08-08 moved on to 3.0.1 kernel; * 2011-06-19 moved on to 2.6.38.8 kernel; modify target/linux/brcm4716/base-files.mk to chmod +x netconfig and wmacfixup; * 2011-06-18 add fix for mtd corruption caused by cfi_cmdset_0002 not waiting for Write Buffer Load command completion; * 2011-06-15 change bgmac kmod KCONFIG clause to avoid compiling kernel with different symbols setup for the kernel part and modules; * 2011-06-13 switch to gcc-4.5.2 as compiling with linaro-4.5-2011.05 leads to occasional mtd corruption; moved on to 2.6.38.6 kernel; minor bugfix resolving kernel hung with CONFIG_BUG; * 2011-05-17 fix missing broadcom-diag detection support for Linksys E3000 V1 and WRT610N V2; * 2011-05-17 patchset updates to meet more recent trunks (sample .trx is built with r26913); moved on to 2.6.38.2 kernel; proprietary wl driver dma fix for ssb; bcm4716 usb stability fixes; minor dma/gmac driver fixes; * 2011-02-13 wifi with broadcom-wl; Linksys E3000v1 and WRT610Nv2 support by Nathan Hintz (WRT610Nv2 is not confirmed yet as working); * 2011-02-11 initial release with usb and ethernet working, so far only ASUS RT-N16 tested.