Changeset 36289 for trunk


Ignore:
Timestamp:
2013-04-09T16:19:33+02:00 (3 years ago)
Author:
blogic
Message:

[ramips] Add Netgear WNCE2001 (OF version)

Add Netgear WNCE2001.

This is a small RT3052 device with 4MB spi flash and 32MB ram.
2 built-in antennas, 1x fastE, no USB, reset & wps switch.
On my model the AP/RT switch is unpopulated, but I verified the gpio
mapping for it.
The stock firmware is running an unprotected tftpd which allows you
to read any file from the filesystem.
Serial port is present on testpads (See image on the wiki page).
There are more testpads below the shield near the SoC, which
may have JTAG.

Slight annoyance: The bootloader is checksumming kernel&rootfs, but
can be tricked by zeroing checksum and length fields in the checksum
partition, see
target/linux/ramips/base-files/lib/preinit/04_disable_wnce2001_flash_checksumming

The manufacturer image is very similar to the DAP one, so I slightly
modified mkdapimg to support generating it.

The resulting
openwrt-ramips-rt305x-wnce2001-squashfs-factory-(worldwide|northamerica).bin
can be used to flash from stock to OpenWRT using the stock firmware
upgrade function, without using the serial port.

http://www.netgear.com/landing/wnce2001.aspx
http://wiki.openwrt.org/toh/netgear/wnce2001

Signed-off-by: Tobias Diedrich <ranma+openwrt@…>

Location:
trunk
Files:
1 added
9 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/base-files/etc/diag.sh

    r36176 r36289  
    112112                status_led="wr512:green:wps" 
    113113                ;; 
     114        wnce2001) 
     115                status_led="netgear:green:power" 
     116                ;; 
    114117        mzk-w300nh2) 
    115118                status_led="mzkw300nh2:green:power" 
  • trunk/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom

    r36176 r36289  
    9494        wl-351 | \ 
    9595        wli-tx4-ag300n | \ 
     96        wnce2001 | \ 
    9697        wr512-3gn | \ 
    9798        wr6202 | \ 
  • trunk/target/linux/ramips/base-files/etc/uci-defaults/01_leds

    r36173 r36289  
    113113                set_usb_led "wcr150gn:amber:user" 
    114114                ;; 
     115        wnce2001) 
     116                set_wifi_led "netgear:green:wlan" 
     117                ;; 
    115118esac 
    116119 
  • trunk/target/linux/ramips/base-files/etc/uci-defaults/02_network

    r36213 r36289  
    4242        all0256n | \ 
    4343        all5002 | \ 
    44         broadway) 
     44        broadway | \ 
     45        wnce2001) 
    4546                ucidef_add_switch "switch0" "1" "0" 
    4647                ucidef_set_interface_lan "eth0" 
     
    243244        all0239-3g | \ 
    244245        carambola | \ 
    245         w502u) 
     246        w502u | \ 
     247        wnce2001) 
    246248                lan_mac=$(mtd_get_mac_binary factory 40) 
    247249                wan_mac=$(mtd_get_mac_binary factory 46) 
  • trunk/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac

    r36176 r36289  
    6565        w502u    |\ 
    6666        wr6202 |\ 
     67        wnce2001 |\ 
    6768        xdxrn502j) 
    6869                mac=$(mtd_get_mac_binary factory 40) 
  • trunk/target/linux/ramips/base-files/lib/ramips.sh

    r36176 r36289  
    120120        *"NBG-419N") 
    121121                name="nbg-419n" 
     122                ;; 
     123        *"Netgear WNCE2001") 
     124                name="wnce2001" 
    122125                ;; 
    123126        *"NexAira BC2") 
  • trunk/target/linux/ramips/base-files/lib/upgrade/platform.sh

    r36176 r36289  
    6060        wl-330n | \ 
    6161        wl-351 | \ 
     62        wnce2001 | \ 
    6263        wli-tx4-ag300n | \ 
    6364        whr-g300n |\ 
  • trunk/target/linux/ramips/dts/WNCE2001.dts

    r36288 r36289  
    44 
    55/ { 
    6         compatible = "NW718", "ralink,rt3050-soc"; 
    7         model = "Netcore NW718"; 
     6        #address-cells = <1>; 
     7        #size-cells = <1>; 
     8        compatible = "WNCE2001", "ralink,rt3052-soc"; 
     9        model = "Netgear WNCE2001"; 
    810 
    911        memorydetect { 
     
    1113        }; 
    1214 
     15        chosen { 
     16                bootargs = "console=ttyS0,115200"; 
     17        }; 
     18 
    1319        palmbus@10000000 { 
    1420                sysc@0 { 
    15                         ralink,pinmux = "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii"; 
    16                         ralink,gpiomux = "i2c"; 
     21                        ralink,pinmux = "spi", "uartlite", "jtag", "sdram"; 
     22                        ralink,gpiomux = "i2c", "mdio", "rgmii"; 
    1723                        ralink,uartmux = "gpio"; 
    1824                        ralink,wdtmux = <1>; 
     
    3137                                reg = <0 0>; 
    3238                                linux,modalias = "m25p80", "mx25l3205d"; 
    33                                 spi-max-frequency = <25000000>; 
     39                                spi-max-frequency = <10000000>; 
    3440 
    3541                                partition@0 { 
     
    3945                                }; 
    4046 
    41                                 partition@30000 { 
    42                                         label = "config"; 
    43                                         reg = <0x30000 0x20000>; 
     47                                factory: partition@30000 { 
     48                                        label = "factory"; 
     49                                        reg = <0x30000 0x10000>; 
    4450                                        read-only; 
    4551                                }; 
    4652 
    47                                 factory: partition@50000 { 
    48                                         label = "factory"; 
    49                                         reg = <0x50000 0x10000>; 
     53                                partition@40000 { 
     54                                        label = "config"; 
     55                                        reg = <0x40000 0x20000>; 
    5056                                        read-only; 
    5157                                }; 
    5258 
    5359                                partition@60000 { 
     60                                        label = "language"; 
     61                                        reg = <0x60000 0x30000>; 
     62                                        read-only; 
     63                                }; 
     64 
     65                                partition@90000 { 
     66                                        label = "pot"; 
     67                                        reg = <0x90000 0x10000>; 
     68                                        read-only; 
     69                                }; 
     70 
     71                                partition@a0000 { 
     72                                        label = "checksum"; 
     73                                        reg = <0xa0000 0x10000>; 
     74                                }; 
     75 
     76                                partition@b0000 { 
    5477                                        label = "firmware"; 
    55                                         reg = <0x60000 0x3a0000>; 
     78                                        reg = <0xb0000 0x350000>; 
    5679                                }; 
    5780                        }; 
     
    6588        esw@10110000 { 
    6689                status = "okay"; 
    67                 ralink,portmap = <0x2f>; 
     90        }; 
     91 
     92        wmac@10180000 { 
     93                status = "okay"; 
    6894        }; 
    6995 
    7096        gpio-leds { 
    7197                compatible = "gpio-leds"; 
    72                 cpu { 
    73                         label = "nw718:amber:cpu"; 
    74                         gpios = <&gpio0 13 1>; 
    75                 }; 
    76                 usb { 
    77                         label = "nw718:amber:usb"; 
     98                power-green { 
     99                        label = "netgear:green:power"; 
    78100                        gpios = <&gpio0 8 1>; 
    79101                }; 
    80                 wps { 
    81                         label = "nw718:amber:wps"; 
    82                         gpios = <&gpio0 14 1>; 
     102                power-red { 
     103                        label = "netgear:red:power"; 
     104                        gpios = <&gpio0 9 1>; 
     105                }; 
     106                wlan-green { 
     107                        label = "netgear:green:wlan"; 
     108                        gpios = <&gpio0 12 0>; 
     109                }; 
     110                wlan-red { 
     111                        label = "netgear:red:wlan"; 
     112                        gpios = <&gpio0 13 0>; 
    83113                }; 
    84114        }; 
     
    99129                        linux,code = <0x211>; 
    100130                }; 
    101         }; 
    102  
    103         wmac@10180000 { 
    104                 status = "okay"; 
    105         }; 
    106  
    107         otg@101c0000 { 
    108                 status = "okay"; 
     131                rt { 
     132                        label = "rt"; 
     133                        gpios = <&gpio0 11 1>; 
     134                        linux,code = <0x100>; 
     135                }; 
     136                ap { 
     137                        label = "ap"; 
     138                        gpios = <&gpio0 7 1>; 
     139                        linux,code = <0x101>; 
     140                }; 
    109141        }; 
    110142}; 
  • trunk/target/linux/ramips/image/Makefile

    r36176 r36289  
    392392 
    393393Image/Build/Profile/WL-351=$(call BuildFirmware/Default4M/$(1),$(1),wl-351,WL-351) 
     394 
     395define BuildFirmware/WNCE2001/squashfs 
     396        $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3)) 
     397        -mkdapimg -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99 \ 
     398                -i $(call sysupname,$(1),$(2)) \ 
     399                -o $(call imgname,$(1),$(2))-factory-worldwide.bin 
     400        -mkdapimg -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99 \ 
     401                -i $(call sysupname,$(1),$(2)) \ 
     402                -o $(call imgname,$(1),$(2))-factory-northamerica.bin 
     403endef 
     404BuildFirmware/WNCE2001/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3)) 
     405Image/Build/Profile/WNCE2001=$(call BuildFirmware/WNCE2001/$(1),$(1),wnce2001,WNCE2001) 
    394406 
    395407Image/Build/Profile/WR512-3GN=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wr512-3ng,WR512-3GN) 
     
    452464        $(call Image/Build/Profile/WL341V3,$(1)) 
    453465        $(call Image/Build/Profile/WL-351,$(1)) 
     466        $(call Image/Build/Profile/WNCE2001,$(1)) 
    454467        $(call Image/Build/Profile/WR512-3GN,$(1)) 
    455468        $(call Image/Build/Profile/WR6202,$(1)) 
  • trunk/tools/firmware-utils/src/mkdapimg.c

    r32822 r36289  
    2828#define MAX_MODEL_NAME_LEN      20 
    2929#define MAX_SIG_LEN             30 
     30#define MAX_REGION_LEN          4 
     31#define MAX_VERSION_LEN         12 
    3032 
    3133struct img_hdr_struct { 
     
    5254usage() 
    5355{ 
    54         fprintf(stderr, "usage: %s [-p] [-m model] -s signature -i input -o output\n", progname); 
     56        fprintf(stderr, "usage: %s [-p] [-m model] [-r region] [-v version] -s signature -i input -o output\n", progname); 
    5557        exit(1); 
    5658} 
     
    6163        char model[MAX_MODEL_NAME_LEN+1]; 
    6264        char signature[MAX_SIG_LEN+1]; 
     65        char region[MAX_REGION_LEN+1]; 
     66        char version[MAX_VERSION_LEN+1]; 
    6367        int patchmode = 0; 
    6468        int fixmode = 0; 
     69        int have_regionversion = 0; 
    6570 
    6671        FILE *ifile, *ofile; 
     
    7277        memset(model, 0, sizeof(model)); 
    7378        memset(signature, 0, sizeof(signature)); 
     79        memset(region, 0, sizeof(region)); 
     80        memset(version, 0, sizeof(version)); 
    7481 
    7582        while ( 1 ) { 
    7683                int c; 
    7784 
    78                 c = getopt(ac, av, "pxm:s:i:o:"); 
     85                c = getopt(ac, av, "pxm:r:v:s:i:o:"); 
    7986                if (c == -1) 
    8087                        break; 
     
    94101                        } 
    95102                        strcpy(model, optarg); 
     103                        break; 
     104                case 'r': 
     105                        if (strlen(optarg) > MAX_REGION_LEN) { 
     106                                fprintf(stderr, "%s: region exceeds %d chars\n", 
     107                                        progname, MAX_REGION_LEN); 
     108                                exit(1); 
     109                        } 
     110                        have_regionversion = 1; 
     111                        strcpy(region, optarg); 
     112                        break; 
     113                case 'v': 
     114                        if (strlen(optarg) > MAX_VERSION_LEN) { 
     115                                fprintf(stderr, "%s: version exceeds %d chars\n", 
     116                                        progname, MAX_VERSION_LEN); 
     117                                exit(1); 
     118                        } 
     119                        have_regionversion = 1; 
     120                        strcpy(version, optarg); 
    96121                        break; 
    97122                case 's': 
     
    151176                imghdr.partition = 0 ; // don't care? 
    152177                imghdr.hdr_len = sizeof(imghdr); 
     178                if (have_regionversion) { 
     179                        imghdr.hdr_len += MAX_REGION_LEN; 
     180                        imghdr.hdr_len += MAX_VERSION_LEN; 
     181                } 
    153182                imghdr.flash_byte_cnt = htonl(bcnt); 
    154183        } else { 
     
    177206        if (fwrite(&imghdr, sizeof(imghdr), 1, ofile) < 0) 
    178207                perrexit(2, "fwrite header on output"); 
     208        if (have_regionversion) { 
     209                if (fwrite(&region, MAX_REGION_LEN, 1, ofile) < 0) 
     210                        perrexit(2, "fwrite header on output"); 
     211                if (fwrite(&version, MAX_VERSION_LEN, 1, ofile) < 0) 
     212                        perrexit(2, "fwrite header on output"); 
     213        } 
    179214 
    180215        while ((c = fgetc(ifile)) != EOF) { 
Note: See TracChangeset for help on using the changeset viewer.