Plugwise Smile P1 – Firmware uploaden (bootloader)
Na enige tijd stoeien, trial & error en veel leeswerk, is het me gelukt om via U-boot een firmware image te uploaden op een PlugWise Smile via een tftp server.
Leeswerk:
1) Wat is TFTP.
2) PlugWise Firmware downloaden.
3) UART stick aansluiten op de PlugWise Smile
Wat heb je nodig?
1) Smile P1 firmware
2) UART > USB Stick
3) PuTTy tools
4) TFTP server (TFTPD32)
TER INFO
Ik heb een smile van v1.2.4 naar v2.1.6 geflashed, maar het SSID was “smile“, nadat ik 5/15 sec de resetknop had ingedrukt (fabrieks herstel) was het SSID: “smile_xxxxzzzz“, op beide werkte de WiFi code niet meer en kon geen verbinding gemaakt worden — meer onderzoek nodig!
Ps. terugflashen van 2.1.6 naar 2.0.62 of 1.2.15 was geen succes!, via de uart liep de smile vast!
Wel kon ik inloggen met root/root:
Firmware uploaden naar de Smile P1
1) Stel het (bedraade) netwerk als volgt in op de computer:
LET OP: Zorg ervoor dat dit het enige netwerk is dat actief is!
2) Verbind de PlugWise Smile met deze computer via het bedraade netwerk!
3) Start TFTPD32 selecteer de juiste netwerk adapter, plaats het firmware bestand in dezelfde folder als TFTPD32.
4) Sluit de UART Stick aan op de Smile
5) Start PuTTy met de juiste COM poort @ 57600 baud.
6) Houd de knop “2” ingedrukt op het toetsenbord en breng de Plugwise Smile onder spanning, al snel zit je in de U-Boot bootloader.
- Voor de IP adressen kun je op enter drukken, deze hebben we bij punt 1 al geconfigureerd.
- Vul daarna de bestandsnaam in van je firmware bestand, bijvoorbeeld 1.1.9.img
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
U-Boot 1.1.3 (Jul 9 2009 - 12:57:03) Board: Ralink APSoC DRAM: 32 MB relocate_code Pointer at: 81fac000 flash_protect ON: from 0xBF000000 to 0xBF01FF7F protect on 0 protect on 1 protect on 2 protect on 3 protect on 4 protect on 5 protect on 6 protect on 7 protect on 8 flash_protect ON: from 0xBF030000 to 0xBF03FFFF protect on 10 ============================================ Ralink UBoot Version: 3.2 -------------------------------------------- ASIC 3052_MP2 (Port5<->None) DRAM COMPONENT: 256Mbits DRAM BUS: 16BIT Total memory: 32 MBytes Date:Jul 9 2009 Time:12:57:03 ============================================ icache: sets:128, ways:4, linesz:32 ,total:16384 dcache: sets:128, ways:4, linesz:32 ,total:16384 ##### The CPU freq = 320 MHZ #### SDRAM bus set to 16 bit SDRAM size =32 Mbytes 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. 9: Load Boot Loader code then write to Flash via TFTP. You choosed 2 0 eth_register Eth0 (10/100-M) enetvar=ethaddr,Eth addr:00:AA:BB:CC:DD:10 00:AA:BB:CC:DD:10: eth_current->name = Eth0 (10/100-M) 2: System Load Linux Kernel then write to Flash via TFTP. Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) Please Input new ones /or Ctrl-C to discard Input device IP (10.10.10.123) ==: Input server IP (10.10.10.3) ==: Input Linux Kernel filename (1.1.2.img) ==:1.1.9.img |
Nadat je op enter hebt gedrukt, duurt het even een paar seconden…TFTPD32 het gevraagde bestand door de Smile opsturen via het netwerk:
Nadat het bestand is overgedragen (ca. 6 MB), duurt het circa 2 minuten voordat het bestand is weggeschreven, en wordt de Smile automatisch geboot met de nieuwe firmware, dit is de output log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
netboot_common, argc= 3 *************buf = 0x81fcc0e0 **********NexTxPacket = 81fe41c0 NetTxPacket = 0x81FE41C0 NetRxPackets[0] = 0x81FE47C0 NetRxPackets[1] = 0x81FE4DC0 NetRxPackets[2] = 0x81FE53C0 NetRxPackets[3] = 0x81FE59C0 NetRxPackets[4] = 0x81FE5FC0 NetRxPackets[5] = 0x81FE65C0 NetRxPackets[6] = 0x81FE6BC0 NetRxPackets[7] = 0x81FE71C0 NetRxPackets[8] = 0x81FE77C0 NetRxPackets[9] = 0x81FE7DC0 NetRxPackets[10] = 0x81FE83C0 NetRxPackets[11] = 0x81FE89C0 NetRxPackets[12] = 0x81FE8FC0 NetRxPackets[13] = 0x81FE95C0 NetRxPackets[14] = 0x81FE9BC0 NetRxPackets[15] = 0x81FEA1C0 NetRxPackets[16] = 0x81FEA7C0 NetRxPackets[17] = 0x81FEADC0 NetRxPackets[18] = 0x81FEB3C0 NetRxPackets[19] = 0x81FEB9C0 KSEG1ADDR(NetTxPacket) = 0xA1FE41C0 NetLoop,call eth_halt ! NetLoop,call eth_init ! Trying Eth0 (10/100-M) Waitting for RX_DMA_BUSY status Start... done Header Payload scatter function is Disable !! ETH_STATE_ACTIVE!! Using Eth0 (10/100-M) device TFTP from server 10.10.10.3; our IP address is 10.10.10.123 Filename '1.1.9.img'. TIMEOUT_COUNT=10,Load address: 0x80100000 Loading: checksum bad checksum bad checksum bad ArpTimeoutCheck checksum bad T Got ARP REQUEST, return our IP T Got ARP REPLY, set server/gtwy eth addr (00:1a:92:76:ce:91) Got it checksum bad checksum bad checksum bad T # first block received ################################################################ ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################## done Bytes transferred = 6160388 (5e0004 hex) NetBootFileXferSize= 005e0004 Erase linux kernel block !! From 0xBF050000 To 0xBF63FFFF b_end =BF7FFFFF Erase Flash from 0xbf050000 to 0xbf63ffff in Bank # 1 erase sector = 12 sect = 12,s_last = 106,erase poll = 955760 ... ... ... erase sector = 106 sect = 106,s_last = 106,erase poll = 952907 done Erased 95 sectors Copy linux image[6160388 byte] to Flash[0xBF050000].... Copy to Flash... Copy 6160388 byte to Flash... addr = 0xBF0B149E ,cnt=5761894 addr = 0xBF11293E ,cnt=5363398 addr = 0xBF173DDE ,cnt=4964902 addr = 0xBF1D527E ,cnt=4566406 addr = 0xBF23671E ,cnt=4167910 addr = 0xBF297BBE ,cnt=3769414 addr = 0xBF2F905E ,cnt=3370918 addr = 0xBF35A4FE ,cnt=2972422 addr = 0xBF3BB99E ,cnt=2573926 addr = 0xBF41CE3E ,cnt=2175430 addr = 0xBF47E2DE ,cnt=1776934 addr = 0xBF4DF77E ,cnt=1378438 addr = 0xBF540C1E ,cnt=979942 addr = 0xBF5A20BE ,cnt=581446 addr = 0xBF6035F4 ,cnt=182800 done ## Booting image at bf050000 ... Image Name: MIPS OpenWrt Linux-3.2.5 Created: 2012-09-17 9:11:02 UTC System Control Status = 0x00400000 Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 818572 Bytes = 799.4 kB Load Address: 80000000 Entry Point: 80000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 80000000) ... ## Giving linux memsize in MB, 32 Starting kernel ... [ 0.000000] Linux version 3.2.5 (vpa@w17.plugwise.local) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #27 Mon Sep 17 11:10:48 CEST 2012 .... .... |
Ter info: uit bovenste output is te lezen dat de startpositie van de Linux image begint op adres: 0xBF050000