Belkin F7C030
Belkin's WeMo Light Switch is a wifi-controlled 120/240V relay.
Hardware Highlights
CPU | Ram | Flash | Network | USB | Serial | JTag |
---|---|---|---|---|---|---|
Ralink RT5350F | 32MiB | 16MiB | RT2860 Wifi | No | Yes | ? |
Serial port
Serials console baudrate is : 57600,8n1
Serial console is available on 4 pin header:
Pin | Desc |
---|---|
1 | VCC |
2 | TX |
3 | RX |
4 | GND |
Note:
do not connect VCC if powered by mains.
U-Boot environment
Note:
The bootdelay is 1 seconds or less. You need to send bytes repeatedly while the device is booting to get uboot stop the normal boot procedure.
U-Boot 1.1.3 (Mar 8 2013 - 19:02:33) Board: Ralink APSoC DRAM: 32 MB relocate_code Pointer at: 81fb4000 ****************************** Software System Reset Occurred ****************************** spi_wait_nsec: 21 spi device id: c2 20 18 c2 20 (2018c220) find flash: MX25L12805D raspi_read: from:30000 len:1000 .raspi_read: from:30000 len:1000 .============================================ Ralink UBoot Version: 3.5.0.0 -------------------------------------------- ASIC 5350_MP (Port5<->None) DRAM_CONF_FROM: Boot-Strapping DRAM_TYPE: SDRAM DRAM_SIZE: 256 Mbits DRAM_WIDTH: 16 bits DRAM_TOTAL_WIDTH: 16 bits TOTAL_MEMORY_SIZE: 32 MBytes Flash component: SPI Flash Date:Mar 8 2013 Time:19:02:33 ============================================ icache: sets:256, ways:4, linesz:32 ,total:32768 dcache: sets:128, ways:4, linesz:32 ,total:16384 ##### The CPU freq = 360 MHZ #### estimate memory size =32 Mbytes #### u-boot for Light Switch 2013.3.8 #### set GPIO 7, 9, 11, 13, 14 to 1 Output set GPIO 10, 12 to 0 Iutput Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. 3: System Boot system code via Flash. Trying to boot from A...bootstate=[0] Boot A addr_str=[0xBC050000] ## Booting image at bc050000 ... raspi_read: from:50000 len:40 . Image Name: Linux Kernel Image Created: 2013-03-16 6:06:39 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 817902 Bytes = 798.7 kB Load Address: 80000000 Entry Point: 8025c000 raspi_read: from:50040 len:c7aee ............. Verifying Checksum ... OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 8025c000) ... ## Giving linux memsize in MB, 32 Starting kernel ...
RT5350 # help ? - alias for 'help' bootm - boot application image from memory cp - memory copy erase - erase SPI FLASH memory flash_test - test flash status, argv => test_pattern_start test_pattern_end test_repeat go - start application at address 'addr' help - print online help loadb - load binary file over serial line (kermit mode) md - memory display mdio - Ralink PHY register R/W command !! mm - memory modify (auto-incrementing) mw - memory write (fill) nm - memory modify (constant address) printenv- print environment variables reset - Perform RESET of the CPU rf - read/write rf register saveenv - save environment variables to persistent storage setenv - set environment variables tftpboot- boot image via network using TFTP protocol version - print monitor version RT5350 # printenv bootcmd=tftp bootdelay=1 baudrate=57600 ethaddr="00:AA:BB:CC:DD:10" ramargs=setenv bootargs root=/dev/ram rw addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate) ethaddr=$(ethaddr) panic=1 flash_self=run ramargs addip addmisc;bootm $(kernel_addr) $(ramdisk_addr) kernel_addr=BFC40000 u-boot=u-boot.bin load=tftp 8A100000 $(u-boot) u_b=protect off 1:0-1;era 1:0-1;cp.b 8A100000 BC400000 $(filesize) loadfs=tftp 8A100000 root.cramfs u_fs=era bc540000 bc83ffff;cp.b 8A100000 BC540000 $(filesize) test_tftp=tftp 8A100000 root.cramfs;run test_tftp ethact=Eth0 (10/100-M) filesize=4a2000 fileaddr=80800000 autostart=no bootfile=firmware.bin ipaddr=192.168.0.144 serverip=192.168.0.5 bootargs=console=ttyS1,57600n8 root=/dev/mtdblock4 check_boot=0 bootstate=0 stdin=serial stdout=serial stderr=serial Environment size: 912/4092 bytes
OEM Bootlog
LINUX started... THIS IS ASIC Linux version 2.6.21 (root@bad-debian01.cics.belkin) (gcc version 4.3.3 (GCC) ) #29 Fri Mar 15 23:05:22 PDT 2013 The CPU frequency set to 360 MHz CPU revision is: 0001964c Determined physical RAM map: memory: 02000000 @ 00000000 (usable) Built 1 zonelists. Total pages: 8128 Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock2 root_dev_setup: line=[/dev/mtdblock2] Primary instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes. Primary data cache 16kB, 4-way, linesize 32 bytes. Synthesized TLB refill handler (20 instructions). Synthesized TLB load handler fastpath (32 instructions). Synthesized TLB store handler fastpath (32 instructions). Synthesized TLB modify handler fastpath (31 instructions). Cache parity protection disabled cause = 40808008, status = 11000000 PID hash table entries: 128 (order: 7, 512 bytes) calculating r4koff... 0015f900(1440000) CPU frequency 360.00 MHz Using 180.000 MHz high precision timer. Console: colour dummy device 80x25 Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory: 29860k/32768k available (2106k kernel code, 2908k reserved, 305k data, 108k init, 0k highmem) Mount-cache hash table entries: 512 NET: Registered protocol family 16 NET: Registered protocol family 2 Time: MIPS clocksource has been installed. 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 deice id : c2 20 18 c2 20 (2018c220) MX25L12805D(c2 2018c220) (16384 Kbytes) mtd .name = raspi, .size = 0x01000000 (16M) .erasesize = 0x00010000 (64K) .numeraseregions = 0 Creating 10 MTD partitions on "raspi": 0x00000000-0x00050000 : "uboot" 0x00050000-0x007c0000 : "A - Kernel and Rootfs" 0x00150000-0x007c0000 : "A - Rootfs" 0x007c0000-0x00f30000 : "B - Kernel and Rootfs" 0x008c0000-0x00f30000 : "B - Rootfs" 0x00fe0000-0x00ff0000 : "Nvram" 0x00ff0000-0x01000000 : "User_Factory" 0x00040000-0x00050000 : "Factory" 0x00f30000-0x00fd0000 : "Belkin_settings" 0x00030000-0x00040000 : "Uboot_env" squashfs: version 3.2-r2 (2007/01/15) Phillip Lougher squashfs: LZMA suppport for slax.org by jro JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc. io scheduler noop registered (default) reg1_gpio_dir ori = [0x003FEBFF] ################################################ # # # SDK - PLUGIN_BOARD_DVT # # Light Switch 2013.03.08 # # # ################################################ reg1_gpio_dir after 1 = [0x003FEBFF] reg1_gpio_dir after 2 = [0x003FEBFF] Ralink gpio driver initialized Gemtek LED init... ################## Don't Restore to Factory Defaults ################### Serial: 8250/16550 driver $Revision: 1.8 $ 2 ports, IRQ sharing disabled serial8250: ttyS0 at I/O 0xb0000500 (irq = 37) is a 16550A serial8250: ttyS1 at I/O 0xb0000c00 (irq = 12) is a 16550A loop: loaded (max 8 devices) rdm_major = 253 Ralink APSoC Ethernet Driver Initilization. v2.1 256 rx/tx descriptors allocated, mtu = 1500! MAC_ADRH -- : 0x0000000c MAC_ADRL -- : 0x43535077 PROC INIT OK! block2mtd: version $Revision: 1.1.1.1 $ nf_conntrack version 0.5.0 (256 buckets, 2048 max) IPv4 over IPv4 tunneling driver ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Restricted Cone TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 10 lo: Disabled Privacy Extensions tunl0: Disabled Privacy Extensions Mobile IPv6 IPv6 over IPv4 tunneling driver sit0: Disabled Privacy Extensions NET: Registered protocol family 17 Bridge firewalling registered 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com> All bugs added by David S. Miller <davem@redhat.com> saved_root_name is [/dev/mtdblock2] root_device_name is [/dev/mtdblock2] name is [/dev/root] fs_names is [squashfs] fs_names p is [squashfs], flags is 0x8001 VFS: [/dev/root] Mounted root (squashfs filesystem) readonly. mount_fail 0 is 0 Freeing unused kernel memory: 108k freed phy_tx_ring = 0x01379000, tx_ring = 0xa1379000 phy_rx_ring0 = 0x0137a000, rx_ring0 = 0xa137a000 MAC_ADRH -- : 0x0000000c MAC_ADRL -- : 0x43535077 RT305x_ESW: Link Status Changed BusyBox v1.1.0 (2013.03.16-05:56+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # #sysinit: [sysinit] #### sysinit for Light Switch 2013.3.8 #### /dev/ledctrl: No such device or address ioctl: Bad file descriptor insmod: reset_btn.ko: no module by that name found Done # update nvram with default list! /dev/ledctrl: No such device or address ioctl: Bad file descriptor # interfaces_init...... can't get info can't get info switch reg write offset=14, value=405555 switch reg write offset=50, value=2001 switch reg write offset=98, value=7f3f switch reg write offset=40, value=1001 switch reg write offset=44, value=1001 switch reg write offset=48, value=1002 switch reg write offset=70, value=ffff506f can't get info can't get info can't get info ########### WeMo ra0 configuration ########## Setting ra0 configuration.... Bring up ra0 interface.... rt2860v2_ap: module license 'unspecified' taints kernel. === pAd = c009b000, size = 813328 === <-- RTMPAllocAdapterBlock, Status=0 RX DESC a1d9d000 size = 2048 <-- RTMPAllocTxRxRingMemory, Status=0 Key1Str is Invalid key length(0) or Type(0) Key2Str is Invalid key length(0) or Type(0) Key3Str is Invalid key length(0) or Type(0) Key4Str is Invalid key length(0) or Type(0) 1. Phy Mode = 9 2. Phy Mode = 9 3. Phy Mode = 9 RTMPSetPhyMode: channel is out of range, use first channel=0 MCS Set = ff 00 00 00 01 SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l SYNC - BBP R4 to 20MHz.l Main bssid = 94:10:3e:4c:6a:a4 <==== rt28xx_init, Status=0 0x1300 = 00064380 bridge br0 doesn't exist! No need to change ra0 to Nintendo NDS capable No need to chMacAddr=1300, MacValue=0x63330 ange ra0 to Nintendo NDS capable...Complete ra0 mac: [0x00001300]:000633MacAddr=1304, MacValue=0xa3700 30 ra0 mac: [0x00001304]:000a3700 killall: rt2860apd: no process killed /bin/sh: rt2860apd: not found can't get info killall : No such file or directory WPS BUTTON press!! killall: wscd: no process killed MacAddr=102c, MacValue=0xf031e46 ra0 mac: [0x0000102c]:0f031e46 can't get macaddr of ra1 vlan1: Setting MAC address to 94 10 3e 4c 6a a4. device eth2 entered promiscuous mode VLAN (vlan1): Setting underlying device (eth2) to promiscious mode. vlan1: dev_set_promiscuity(master, 1) device vlan1 entered promiscuous mode device ra0 entered promiscuous mode never heard of command [sethello] commands: addbr <bridge> add bridge addbr0: port 2(ra0) entering listening state if <bridge> <debr0: port 1(vlan1) entering listening state vice> add interface to bridge delbr <bridge> delete bridge delif <bridge> <device> delete interface from bridge show show a list of bridges showbr <bridge> show bridge info showmacs <bridge> show a list of mac addrs setfd <bridge> <time> set bridge forward delay stp <bridge> <state> {dis,en}able stp never heard of command [setageing] commands: addbr <bridge> add bridge addif <bridge> <device> add interface to bridge delbr <bridge> delete bridge delif <bridge> <device> delete interface from bridge show show a list of bridges showbr <bridge> show bridge info showmacs <bridge> show a list of mac addrs setfd <bridge> <time> set bridge forward delay stp <bridge> <state> {dis,en}able stp ############################################## # Check EEPROM # ############################################## Reading 4096 bytes......success Reading 4096 bytes......success 94, 10, 3E, 4C, 6A, A4, 50-50, 53-53, 00-00, 01-01, 94-94, 10-10, 3E-3E, 4C-4C, 6A-6A, A4-A4, # lan services init...... can't get info can't get info /bin/sh: httpd: not found Start UPnP can't get info /usr/sbin/upnp: No such file or directory route: resolving gw route: resolving gw route: resolving gw route: resolving gw route: resolving gw can't get info killall : No such file or directory killall: wscd: no process killed (2427)Service enable wireless /bin/sh: self-healing: not found /bin/sh: easyconf: not found # wan_init...... can't get info (easytest.c->main(1110)) Start easytest 20130219.. (easytest.c->main(1115)) lan_ip is 10.22.22.1 (easytest.c->main(1117)) mcast_ip is 234.2.2.9 (easytest.c->main(1119)) mcast_port is 14675 (easytest.c->main(1201)) Waiting product test packet... Set country code to au!!! SIOCSIFHWADDR: Device or resource busy /bin/sh: if_traffic: not found /bin/sh: lld2d: not found /dev/ledctrl: No such device or address ioctl: Bad file descriptor Get_bootstate_to_nvram... Reading 4096 bytes......success Uboot CRC is BF3CA820, Uboot env CRC is BF3CA820 Get_bootstate_to_nvram : bootstate is [0] Executing script "/etc/Belkin_startup.sh"... killall: psmon: no process killed killall: wan_connect: no process killed killall: ledctrl: no process killed killall: udhcpc: no process killed /bin/sh: dropbearkey: not found /bin/sh: dropbearkey: not found /bin/sh: dropbear: not found ================ Executing /sbin/loginProcess... ================ /bin/sh: /sbin/loginProcess: not found GetBelkinParameter - ParameterName = PVT_LOG_ENABLE PVT_LOG_ENABLE: SetBelkinParameter - ParameterName = Belkin_daemon_success , ParameterValue = 1 gemtek_api: *Status=[1], reboot_status_last=[1], *UTC_Seconds=[946648836] EnableSoftWatchDog, second = 300 killall: watchdog: no process killed remove softdog... close_softdog: cannot open /dev/watchdog rmmod: softdog: No such file or directory SetBelkinParameter - ParameterName = settime_sec , ParameterValue = GetBelkinParameter - ParameterName = home_id GetBelkinParameter - ParameterName = SmartDeviceId GetBelkinParameter - ParameterName = SmartPrivatekey gemtek_api: *Status=[1], reboot_status_last=[1], *UTC_Seconds=[946648836] SyncWatchDogTimer Success GetBelkinParameter - ParameterName = plugin_key GetBelkinParameter - ParameterName = PluginCloudId GetBelkinParameter - ParameterName = RouterMac GetBelkinParameter - ParameterName = RouterSsid GetBelkinParameter - ParameterName = restore_state GetBelkinParameter - ParameterName = LastTimeZone GetBelkinParameter - ParameterName = LastDstEnable GetBelkinParameter - ParameterName = DstSupportFlag GetBelkinParameter - ParameterName = NotificationFlag GetBelkinParameter - ParameterName = ServerEnvironment GetBelkinParameter - ParameterName = TurnServerEnvironment GetBelkinParameter - ParameterName = ServerEnvironmentType GetBelkinParameter - ParameterName = timezone_index timezone_index: 57, lastTimeZone: 0.000000 and lastDstEnable: 0 Updated pj_timezone_index: 57, pj_lastTimeZone: 0.000000 and pj_lastDstEnable: 0 SetBelkinParameter - ParameterName = NotificationFlag , ParameterValue = 1 SaveSetting GetBelkinParameter - ParameterName = lan_ipaddr Threads inter-communicaiton initialization finished SetBelkinParameter - ParameterName = WeMo_version , ParameterValue = 2.00.2263 GetBelkinParameter - ParameterName = my_fw_version SetBelkinParameter - ParameterName = my_fw_version , ParameterValue = "0.00.10 20111115 2.00.2263" GetSerialNumber GetSerialNumber GetMACAddress GetBelkinParameter - ParameterName = SkuNo GetBelkinParameter - ParameterName = FirmwareVersion GetBelkinParameter - ParameterName = FriendlyName cp: /sbin/web/upnp: omitting directory GetBelkinParameter - ParameterName = ClientSSID PLUGIN_LED_GPIO_proc ledcount=5 GetLanIPAddress