OpenWrt Forum Archive

Topic: OpenWRT on a Netgear GS108T -- should be possible, but no serial?

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

I've got two Netgear GS108Tv1 8-port gigabit switches sitting around, and after some digging, I discovered that the underlying hardware might be supported by OpenWRT.

Quick specs that I can discern:

  • Broadcom BCM5836P cpu, ~264MHz

  • Broadcom BCM5398 8-port GbE Switch

  • 16MB RAM

  • 4MB Flash

  • Uses ~12W of power, max

  • OS is some eCos version

  • Bootloader appears to be CFE (judging by the contents of the STARTUP NVRAM var)

So I opened it up, and there is a 6-pin header that looks like a serial port.  Using a multimeter, I read 3.3V off of most of the pins, so I assume this to need a 3.3VTTL converter, which I bought.  However, plugging the converter in, loading up Teraterm, and then powering up the switch yields no output (tried multiple bauds, etc).  Everywhere I've read suggests that CFE *always* has output of some kind, but I am left wondering if Netgear somehow disabled it in this device.

There are two HTTP servers in the firmware.  One is the Broadcom "loader" firmware that only activates if the Netgear firmware can't boot, and I am unable to brick the thing in order to do so.  Once you downgrade the flash to the older 1.x firmwares, you can access an eCos shell via Telnet, but even messing around with the 'nvram' command, I cannot corrupt, delete, or alter the STARTUP var to brick the device.  According to this blog post, it is possible to intentionally brick the thing, and I might be able to load an OpenWRT *.trx flash image onto it via the loader HTTP server.

The other HTTP server is the Netgear one that you normally manage the device with, and it does verification on any new firmware images being loaded, so you can't flash OpenWRT on that way, either.

I was able to compile an OpenWRT image that was only 3.7MB in size, which should be small enough to fit into the flash, using these settings:

  • Target System (Broadcom BCM47xx/53xx (MIPS))

  • Subtarget (Generic)

  • Target Profile (Broadcom SoC, all Ethernet, No WiFi)

But until I can flash the image, I have no way of knowing if this will even work.

There does appear to be a 14-pin JTAG spot, but I'll have to hunt down a header for it, and then figure out how to actually talk to it (never done JTAG before), but that's my last-resort option.  I am hoping someone else here has ideas on why the supposed serial header isn't working or knows of ways to nuke the Netgear eCos firmware so the Broadcom loader HTTP server comes up instead.

I've uploaded two photos, one front, one back, of the circuit board, which might help explain the serial bit:
Netgear GS108T Circuit Board Front

Netgear GS108T Circuit Board Back

I am open to other things to try.  Ideas?

Derp, this was supposed to go into the hardware sub-forum, but my login expired by accident and I forgot to go back there before writing this topic up.

I wouldn't bother. The only version of OpenWRT new enough to run on this hardware is also practically unusable on 16MB RAM. You would have to backport drivers and what not to an older version by hand.

qasdfdsaq wrote:

I wouldn't bother. The only version of OpenWRT new enough to run on this hardware is also practically unusable on 16MB RAM. You would have to backport drivers and what not to an older version by hand.

Well, I'd still like to try.  At a minimum, I'd like to figure out whether or not that six-pin header really is a serial port or not.

Kumba wrote:
qasdfdsaq wrote:

I wouldn't bother. The only version of OpenWRT new enough to run on this hardware is also practically unusable on 16MB RAM. You would have to backport drivers and what not to an older version by hand.

Well, I'd still like to try.  At a minimum, I'd like to figure out whether or not that six-pin header really is a serial port or not.

Anyone else got more useful suggestions?  I bought a Bus Pirate, so maybe I'll figure something out with that.  Or electrocute myself.  As I mentioned, I've got two of the things, and it's no loss to me if I permabrick one of them.

Not really sure about this SoC. I didn't find any reference to BCM5836P in open source Broadcom code.
I've tried downloading source code of this firmware and it appears to be... eCos! Interesting smile
Not sure if OpenWrt / bcm47xx can run on it.

Zajec wrote:

Not really sure about this SoC. I didn't find any reference to BCM5836P in open source Broadcom code.
I've tried downloading source code of this firmware and it appears to be... eCos! Interesting :)
Not sure if OpenWrt / bcm47xx can run on it.

Yeah, hard to know w/o first getting an active serial console and being able to manipulate the bootloader.  Never used a bus pirate before, but maybe that can let me probe the serial pins better, maybe even do something w/ the JTAG header.  Or fry the thing.

Okay, although I partially fried my shiny new bus pirate in the process, I got access to the serial port on the GS108T:

CFE version 1.0.0-wss-0.2 for GS108T (32bit,SP,LE,MIPS)
Build Date: ¥|  3¤ë 15 03:21:17 CST 2007 (bhsueh@dhcp-10-144-64-89.tw.broadcom.com)
Copyright (C) 2000-2004 Broadcom Corporation.

Initializing Arena.
Initializing Devices.
nvram_commit: will write 4c08 bytes from 80880fe0
 result 4c08 (19464)
CPU type 0x29006: 200MHz
Total memory: 0x10000000 bytes (256MB)

Total memory used by CFE:  0x80800000 - 0x80C56440 (4547648)
Initialized Data:          0x8083F010 - 0x80840C20 (7184)
BSS Area:                  0x80840C20 - 0x80854440 (79904)
Local Heap:                0x80854440 - 0x80C54440 (4194304)
Stack Area:                0x80C54440 - 0x80C56440 (8192)
Text (code) segment:       0x80800000 - 0x8080D78C (55180)
Boot area (physical):      0x00C57000 - 0x00C97000
Relocation Factor:         I:00000000 - D:00000000

Loader:elf Filesys:raw Dev:vflash0.os File: Options:(null)
Loading: 0x80001000/4283888 0x80416df0/2181084 Entry at 0x80001000
Starting program at 0x80001000

nvram_init: nvram start address 0xbc060000 and size 0x20000
_nvram_read: source address is 0xbc060000 0x8065b860
plf_io: intr req is for 1 for device 1
Found device on bus 0, devfn 0x08:
 Note that board is active. Probed sizes and CPU addresses invalid!
 Vendor    0x14e4
 Device    0x4713
 Command   0x0002, Status 0x0000
 Class/Rev 0x02000009
 Header 0x00
 SubVendor 0x0000, Sub ID 0x0000
 BAR[0]    0x18001000 / probed size 0x00000000 / CPU addr 0xb8001000
 BAR[1]    0x00000000 / probed size 0x00000000 / CPU addr 0x30303030
 BAR[2]    0x00000000 / probed size 0x30303030 / CPU addr 0x30303038
 BAR[3]    0x00000000 / probed size 0x30303030 / CPU addr 0x30307730
 BAR[4]    0x00000000 / probed size 0x30303030 / CPU addr 0x33303030
 BAR[5]    0x00000000 / probed size 0x30306730 / CPU addr 0x30303030
 eth0 configured
 memory address = 0xb8001000
 I/O address = 0x30303030
IFP: 0x802ae120, next: 0x8040e4d8
IFP: 0x8040e4d8, next: 0x80624e10
IFP: 0x80624e10, next: 0x00000000
found PCI device 14e4:0800:09
found PCI device 14e4:4713:09
found PCI device 14e4:4713:09
Enable CP0 IRQ of EMAC1 0x3000b801
base_address = 0xb8002000, iLine = 3, iPin = 2
found robo device with 0:0143:bcd0:98:00
found 1 robo device(s).
SPI unit 0: Dev 0x0098, Rev 0x00, Chip BCM5398_A0, Driver BCM5398_A0
PCI unit 1: Dev 0x4713, Rev 0x09, Chip BCM4713_A9, Driver BCM4713_A0
Attaching SOC unit 0... SPI device BCM5398_A0 attached as unit 0.
Attaching SOC unit 1... Broadcom BCM47xx 10/100 Mbps Ethernet Controller 2002.9.27.0

 snmp agent init!
discovery init
Network interface status:
  eth0: off
  eth1: static
        IP: 192.168.1.82
        Netmask: 255.255.255.0
        Gateway: 192.168.1.1

Broadcom Command Monitor: Copyright (c) 1998-2005 Broadcom Corporation
Release: 3.0.4.7 built 20090825 (Tue Aug 25 23:21:15 2009)
From sdk@vaal:/home/sdk/work/wss-turnkey-gs108t-v3.0.4.7/wss-turnkey-gs108t-v3.0.4.7-src
Platform: Unknown
BCM.0>

I am going to play with this some and see what damage I can cause.  Is there anything of specific interest I should look at or probe for more info to see if Linux can run on this thing?

(Last edited by Kumba on 4 Aug 2014, 02:57)

The devices layout is interesting.  I just bricked the backup switch, so now I am down to one now.  I guess CFE is tailored to specific devices, but I cannot find CFE references on Google that match this layout:

CFE> show devices
Device Name          Description
-------------------  ---------------------------------------------------------
uart0                NS16550 UART at 0x18000300
uart1                NS16550 UART at 0x18000400
flash0.boot          New CFI flash at 1C000000 offset 00000000 size 128KB
flash0.log           New CFI flash at 1C000000 offset 00020000 size 128KB
flash0.flashfs       New CFI flash at 1C000000 offset 00040000 size 128KB
flash0.nvram         New CFI flash at 1C000000 offset 00060000 size 128KB
flash0.os            New CFI flash at 1C000000 offset 00080000 size 3584KB
flash1.boot          New CFI flash at 1C000000 offset 00000000 size 128KB
flash1.log           New CFI flash at 1C000000 offset 00020000 size 128KB
flash1.flashfs       New CFI flash at 1C000000 offset 00040000 size 128KB
flash1.nvram         New CFI flash at 1C000000 offset 00060000 size 128KB
flash1.os            New CFI flash at 1C000000 offset 00080000 size 1792KB
flash1.os2           New CFI flash at 1C000000 offset 00240000 size 1792KB
flash2               New CFI flash at 1C000000 size 4096KB
vflash0.os           Primary OS image
vflash0.os2          Secondary OS image
eth0                 BCM47xx Ethernet at 0x18001000 (00-10-18-53-98-00)
eth1                 BCM47xx Ethernet at 0x18002000 (00-1B-2F-CA-C9-C7)
robo0                Robo Management on SPI channel 0
*** command status = 0

I stayed away from anything labeled flash0*, as I figured that was CFE itself.  So I tried writing to vflash0.os and that didn't complete...so I am wondering if that torched CFE or not.  I did write successfully to flash2, but I have no idea what is in flash2 -- this CFE lacks a 'dir' command to poke around with.


So now on the other switch, I tried tftp booting instead (should've done this the first time), and it just crashes:

CFE> boot -addr=80001000 192.168.1.17:/tftpboot/openwrt-gs108t.bin
Loader:raw Filesys:tftp Dev:eth1 File:192.168.1.17:/tftpboot/openwrt-gs108t.bin Options:(null)
Loading: ........... 3000000 bytes read
Entry at 0x80001000
Closing network.
eth1: 5883 sent, 5861 received, 0 interrupts
Starting program at 0x80001000

**Exception 32: EPC=80001008, Cause=00008028 (InvOpcode)
                RA=80800168, VAddr=00000000

        0  ($00) = 00000000     AT ($01) = 52554E00
        v0 ($02) = 00000100     v1 ($03) = 00000003
        a0 ($04) = 80847000     a1 ($05) = 00000000
        a2 ($06) = 808001F0     a3 ($07) = 43464531
        t0 ($08) = 80001000     t1 ($09) = 80004000
        t2 ($10) = 00000010     t3 ($11) = 00000000
        t4 ($12) = BC000000     t5 ($13) = 00000000
        t6 ($14) = 00000000     t7 ($15) = 00000000
        s0 ($16) = 80800168     s1 ($17) = 002DC6C0
        s2 ($18) = 00000000     s3 ($19) = FFFFFFFD
        s4 ($20) = 00004000     s5 ($21) = 00000200
        s6 ($22) = 47A2EA97     s7 ($23) = 2FAB827D
        t8 ($24) = BC060000     t9 ($25) = 00000029
        k0 ($26) = 808571C0     k1 ($27) = 80C55E10
        gp ($28) = 80847000     sp ($29) = 80C55E20
        fp ($30) = D4F1F0A6     ra ($31) = 80800168

Also, it appears I was wrong about the memory.  This thing looks to have 256MB of RAM, not 16MB:

CFE> printenv
Variable Name        Value
-------------------- --------------------------------------------------
BOOT_CONSOLE         uart0
et0phyaddr           6
et1phyaddr           30
et0macaddr           00-10-18-53-98-00
et0mdcport           0
et1macaddr           00-1b-2f-ca-c9-c7
et1mdcport           1
boardtype            bcm95836robo
CFE_VERSION          1.0.0
CFE_BOARDNAME        GS108T
CFE_MEMORYSIZE       256
*** command status = 0

I boot a vmlinux.elf file directly from tftp, but not a TRX file.  TRX just causes CFE to reboot.  I think Netgear's got something wacky going on with the CFE loaded onto this thing.

Here's the vmlinux.elf boot log.  Advice would be greatly appreciated:

CFE> boot -elf -addr=80001000 192.168.1.17:/tftpboot/gs108tc
Loader:elf Filesys:tftp Dev:eth1 File:192.168.1.17:/tftpboot/gs108tc Options:(null)
Loading: 0x80001000/2734492 0x8029c99c/242584 Entry at 0x80005910
Closing network.
eth1: 5352 sent, 5356 received, 0 interrupts
Starting program at 0x80005910

[    0.000000] Linux version 3.10.49 (<removed>) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r41986) ) #6 Mon Aug 4 00:11:05 EDT 2014
[    0.000000] CPU revision is: 00029006 (Broadcom BMIPS3300)
[    0.000000] bcm47xx: using ssb bus
[    0.000000] ssb: Found chip with id 0x4704, rev 0x09 and package 0x00
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] Unsupported SPROM revision 0 detected. Will extract v1
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] ssb: Sonics Silicon Backplane found at address 0x18000000
[    0.000000] no nvram found
[    0.000000] no nvram found
[    0.000000] MIPS: machine is Unknown Board
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 01000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x00ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x00ffffff]
[    0.000000] Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
[    0.000000] Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
[    0.000000] Kernel command line:  noinitrd console=ttyS0,9600
[    0.000000] PID hash table entries: 64 (order: -4, 256 bytes)
[    0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Memory: 13268k/16384k available (2173k kernel code, 3116k reserved, 326k data, 180k init, 0k highmem)
[    0.000000] NR_IRQS:128
[    0.070000] Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 512
[    0.080000] NET: Registered protocol family 16
[    0.130000] bio: create slab <bio-0> at 0
[    0.150000] Switching to clocksource MIPS
[    0.470000] PCI host bridge to bus 0000:00
[    0.470000] pci_bus 0000:00: root bus resource [mem 0x40000000-0x7fffffff]
[    0.470000] pci_bus 0000:00: root bus resource [io  0x0100-0x07ff]
[    0.470000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.470000] ssb: PCI: Fixing up bridge 0000:00:00.0
[    0.470000] ssb: PCI: Fixing up device 0000:00:00.0
[    0.470000] ssb: PCI: Fixing latency timer of device 0000:00:00.0 to 168
[    0.530000] NET: Registered protocol family 2
[    0.540000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[    0.540000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[    0.540000] TCP: Hash tables configured (established 512 bind 512)
[    0.540000] TCP: reno registered
[    0.540000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.540000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.540000] NET: Registered protocol family 1
[    0.560000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.560000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.560000] msgmni has been set to 25
[    0.560000] io scheduler noop registered
[    0.560000] io scheduler deadline registered (default)
[    0.560000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.620000] serial8250.0: ttyS0 at MMIO 0xb8000300 (irq = 3) is a 16550A
[    5.450000] console [ttyS0] enabled
[    5.510000] serial8250.0: ttyS1 at MMIO 0xb8000400 (irq = 3) is a 16550A
[    5.600000] physmap platform flash device: 02000001 at 1c000000
[    5.670000] physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x001a00
[    5.800000] Amd/Fujitsu Extended Query Table at 0x0040
[    5.860000]   Amd/Fujitsu Extended Query version 1.3.
[    5.920000] number of CFI chips: 1
[    5.970000] can not find a nvram partition reserve last block
[    6.040000] 1 bcm47xxpart partitions found on MTD device physmap-flash.0
[    6.120000] Creating 1 MTD partitions on "physmap-flash.0":
[    6.190000] 0x0000003e0000-0x000000400000 : "nvram_guess"
[    6.280000] libphy: Fixed MDIO Bus: probed
[    6.330000] bcm47xx-wdt bcm47xx-wdt.0: BCM47xx Watchdog Timer enabled (30 seconds, Software Timer)
[    6.440000] GPIO_WDT: failed to register misc device
[    6.500000] TCP: cubic registered
[    6.540000] NET: Registered protocol family 17
[    6.600000] 8021q: 802.1Q VLAN Support v1.8
[    6.660000] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    6.750000] Please append a correct "root=" boot option; here are the available partitions:
[    6.850000] 1f00             128 mtdblock0  (driver?)
[    6.910000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Nice work!

Booting TRX over tftp won't work. TRX is a special format designed to be written to the flash. It's used by CFE for booting from flash only.

Could you provide us a boot log of the original firmware? Hopefully it'll print partitions that are on the flash.

The main problem is that "bcm47xxpart" doesn't recognize any partition on this flash. I would need you to dump flash content, so I can see if we can modify bcm47xxpart to support this device's layout.

Before I start working on helping you to dump flash content:
1) Try to boot .elf with initramfs, does it work? I need you to have access to Linux shell.
2) Does network work for you? I need you to be able to send some file from router to the PC.

Zajec wrote:

Nice work!

Booting TRX over tftp won't work. TRX is a special format designed to be written to the flash. It's used by CFE for booting from flash only.

Ah ha!, thanks for that clarification.


Zajec wrote:

Could you provide us a boot log of the original firmware? Hopefully it'll print partitions that are on the flash.

The stock firmware released by Netgear boots eCos, which isn't very verbose, but this is what it spits out:

Loader:elf Filesys:raw Dev:vflash0.os File: Options:(null)
Loading: 0x80001000/4283888 0x80416df0/2181084 Entry at 0x80001000
Starting program at 0x80001000

nvram_init: nvram start address 0xbc060000 and size 0x20000
_nvram_read: source address is 0xbc060000 0x8065b860
plf_io: intr req is for 1 for device 1
Found device on bus 0, devfn 0x08:
 Note that board is active. Probed sizes and CPU addresses invalid!
 Vendor    0x14e4
 Device    0x4713
 Command   0x0002, Status 0x0000
 Class/Rev 0x02000009
 Header 0x00
 SubVendor 0x0000, Sub ID 0x0000
 BAR[0]    0x18001000 / probed size 0x00000000 / CPU addr 0xb8001000
 BAR[1]    0x00000000 / probed size 0x00000000 / CPU addr 0x30303030
 BAR[2]    0x00000000 / probed size 0x30303030 / CPU addr 0x30303038
 BAR[3]    0x00000000 / probed size 0x30303030 / CPU addr 0x30307730
 BAR[4]    0x00000000 / probed size 0x30303030 / CPU addr 0x33303030
 BAR[5]    0x00000000 / probed size 0x30306730 / CPU addr 0x30303030
 eth0 configured
 memory address = 0xb8001000
 I/O address = 0x30303030
IFP: 0x802ae120, next: 0x8040e4d8
IFP: 0x8040e4d8, next: 0x80624e10
IFP: 0x80624e10, next: 0x00000000
found PCI device 14e4:0800:09
found PCI device 14e4:4713:09
found PCI device 14e4:4713:09
Enable CP0 IRQ of EMAC1 0x3000b801
base_address = 0xb8002000, iLine = 3, iPin = 2
found robo device with 0:0143:bcd0:98:00
found 1 robo device(s).
SPI unit 0: Dev 0x0098, Rev 0x00, Chip BCM5398_A0, Driver BCM5398_A0
PCI unit 1: Dev 0x4713, Rev 0x09, Chip BCM4713_A9, Driver BCM4713_A0
Attaching SOC unit 0... SPI device BCM5398_A0 attached as unit 0.
Attaching SOC unit 1... Broadcom BCM47xx 10/100 Mbps Ethernet Controller 2002.9.27.0

 snmp agent init!
discovery init
Network interface status:
  eth0: off
  eth1: static
        IP: 192.168.1.81
        Netmask: 255.255.255.0
        Gateway: 192.168.1.1

Broadcom Command Monitor: Copyright (c) 1998-2005 Broadcom Corporation
Release: 3.0.4.7 built 20090825 (Tue Aug 25 23:21:15 2009)
From sdk@vaal:/home/sdk/work/wss-turnkey-gs108t-v3.0.4.7/wss-turnkey-gs108t-v3.0.4.7-src
Platform: Unknown
BCM.0>

So, not a Linux shell, but the Broadcom Command Monitor had a lot of commands available, though I did not dig too deeply in them.  I was more interested into getting into the CFE to poke around.


Zajec wrote:

Before I start working on helping you to dump flash content:
1) Try to boot .elf with initramfs, does it work? I need you to have access to Linux shell.
2) Does network work for you? I need you to be able to send some file from router to the PC.

1) I can't boot an ELF w/ an initramfs.  I tried XZ and GZIP, but it just says it is starting the program, and then I see no further output.  I can't tell if it is just incredibly slow at decompression or not, but I got a feeling it locked up.  I tried with no compression, but that yields a 9.5MB kernel, which it refuses to load, stating it'd fall outside of available free memory.  The funny thing is, CFE says there's 256MB, but the kernel only finds 16MB.  So I am wondering if Netgear intentionally rigged CFE to lock out part of the available RAM for some unknown reason.

2) No idea about the network until I can boot a kernel with some kind of initramfs.  I might have to resort to buildroot to throw together some microscopic initramfs.

Doesn't look like Linux either supports the Ethernet chip on this board, or it needs some tuning.  I built my own 3.16 kernel, and added in the OpenWRT config, plus some other stuff as random guesses, and I get some additional info on boot:

Linux version 3.16.0-mipsgit-20140804 (<removed>) (gcc version 4.9.0 (Gentoo Hardened 4.9.0 p1.0, pie-0.6.0) ) #1 Tue Aug 5 05:10:40 EDT 2014
bootconsole [early0] enabled
CPU0 revision is: 00029006 (Broadcom BMIPS3300)
bcm47xx: using ssb bus
ssb: Found chip with id 0x4704, rev 0x09 and package 0x00
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
Unsupported SPROM revision 0 detected. Will extract v1
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
no nvram found
ssb: Sonics Silicon Backplane found at address 0x18000000
no nvram found
no nvram found
MIPS: machine is Unknown Board
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
Zone ranges:
  Normal   [mem 0x00000000-0x00ffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x00000000-0x00ffffff]
Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 bytes
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
Kernel command line:  noinitrd console=ttyS0,9600 root=/dev/nfs nfsroot=192.168.1.xxx:/usr/space/mips32el ip=192.168.1.xxx:192.168.1.xxx:192.168.1.xxx:255.255.255.0:gs108ta rdinit=/bin/bash
PID hash table entries: 64 (order: -4, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 10572K/16384K available (3551K kernel code, 179K rwdata, 1472K rodata, 160K init, 246K bss, 5812K reserved)
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:128
Console: colour dummy device 80x25
Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
NET: Registered protocol family 16
cpuidle: using governor ladder
cpuidle: using governor menu
vgaarb: loaded
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
Switched to clocksource MIPS
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [mem 0x40000000-0x7fffffff]
pci_bus 0000:00: root bus resource [io  0x0100-0x07ff]
pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
ssb: PCI: Fixing up bridge 0000:00:00.0
ssb: PCI: Fixing up device 0000:00:00.0
ssb: PCI: Fixing latency timer of device 0000:00:00.0 to 168
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 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
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
futex hash table entries: 256 (order: -1, 3072 bytes)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
console [ttyS0] disabled
þserial8250.0: ttyS0 at MMIO 0xb8000300 (irq = 3, base_baud = 115740) is a 16550A
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [early0] disabled
bootconsole [early0] disabled
serial8250.0: ttyS1 at MMIO 0xb8000400 (irq = 3, base_baud = 115740) is a 16550A
physmap platform flash device: 02000001 at 1c000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x001a00
Amd/Fujitsu Extended Query Table at 0x0040
  Amd/Fujitsu Extended Query version 1.3.
number of CFI chips: 1
libphy: Fixed MDIO Bus: probed
b44: Broadcom 44xx/47xx 10/100 PCI ethernet driver version 2.0
b44: Invalid MAC address found in EEPROM
b44 ssb0:0: Problem fetching invariants of chip, aborting
b44: probe of ssb0:0 failed with error -22
b44: Invalid MAC address found in EEPROM
b44 ssb0:1: Problem fetching invariants of chip, aborting
b44: probe of ssb0:1 failed with error -22
cnic: Broadcom NetXtreme II CNIC Driver cnic v2.5.20 (March 14, 2014)
bnx2x: Broadcom NetXtreme II 5771x/578xx 10/20-Gigabit Ethernet Driver bnx2x 1.78.19-0 (2014/02/10)
bgmac: Broadcom 47xx GBit MAC driver loaded
TCP: cubic registered
NET: Registered protocol family 17
8021q: 802.1Q VLAN Support v1.8
random: nonblocking pool is initialized
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
1f00            4096 mtdblock0  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

Was trying to get an NFS root mounted, but that isn't going to work if the ethernet chip can't be probed correctly.  I wasn't sure what the correct ethernet driver was, so I added all BCM drivers.  It looks like b44 is it, but it can't read the MAC address correctly (why do manufacturers hide this?  I'm looking at you, SGI...).

PS, going by the vendor/devid, it looks like it's a Sentry5 eth chip.  Not seeing many 2.6/3.0 driver references, but 2.4 had something for it...hmm.

(Last edited by Kumba on 5 Aug 2014, 10:25)

The discussion might have continued from here.