ARM9TDMI: Fix segfault.
[openocd.git] / src / server / httpd / upgrade.tcl
blob11a73d3ef4ed212c39ce386789295470c55ecbe8
1 # converted to .tcl by html2tcl.tcl
2 set buffer ""
3 append buffer {
58 <html xmlns="http://www.w3.org/TR/REC-html40">
59 <head>
60 <title>Zylin ZY1000 JTAG debugger</title>
61 <meta charset="utf-8" content="text/html" http-equiv="Content-Type"/>
62 <link type="text/css" rel="stylesheet" href="menuweb.css"/>
63 </head>
66 set console ""
67 set upload_filename /ram/upload
69 append buffer {
70 <body style="margin:0px;">
71 <div style="width:974px;height:85px;">
72 <div style="float:left;position:relative;left:32px;width:478px;">
73 <a href="/">
74 <img src="menu_cuts/logo_top.png" style="border:0px;"/>
75 </a>
76 </div>
77 <div style="float:left;position:relative;height:26px; width:278px;left:122px;background-image:url('menu_cuts/top_right.png');">
78 <div style="position:relative;left:15px;top:4px;" class="textlight">
80 append buffer [capture version]
81 append buffer {
82 </div>
83 </div>
84 </div>
85 <table style="padding:0px;border-collapse:collapse;">
86 <tr>
87 <td style="width:33px;">
88 <div style="width:20px;height:510px;">
89 &nbsp;
90 </div>
91 </td>
92 <td style="vertical-align:top;height:100%;width:140px;padding:0px;">
93 <table style="padding:0px;border-collapse:collapse;height:100%;width:140px;">
94 <tr style="height:59px;">
95 <td/>
96 </tr>
97 <tr>
98 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
99 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
100 <a href="zy1000.tcl" style="">Set IP Address</a>
101 </div>
102 </td>
103 </tr>
104 <tr>
105 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab_selected.png');background-repeat: no-repeat;">
106 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
107 <a href="upgrade.tcl" style="font-weight: bold;">ZY1000 Firmware</a>
108 </div>
109 </td>
110 </tr>
111 <tr>
112 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
113 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
114 <a href="editfile.tcl" style="">Edit File</a>
115 </div>
116 </td>
117 </tr>
118 <tr>
119 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
120 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
121 <a href="support.tcl" style="">Support Request</a>
122 </div>
123 </td>
124 </tr>
125 <tr>
126 <td style="width:140px;height:38px;background-image:url('menu_cuts/v_tab.png');background-repeat: no-repeat;">
127 <div style="position:relative;left:10px;top:10px;font-weight:bold;">
128 <a href="log.tcl#tail" style="">View Tail of Log</a>
129 </div>
130 </td>
131 </tr>
132 <tr>
133 <td style="width:140px;height:35px;background-image:url('menu_cuts/v_1.png')"/>
134 </tr>
135 <tr>
136 <td style="width:140px;background-image:url('menu_cuts/v_2_tile.png')"/>
137 </tr>
138 <tr>
139 <td style="width:140px;height:140px;background-image:url('menu_cuts/v_3.png')"/>
140 </tr>
141 </table>
142 </td>
143 <td style="vertical-align:top;padding:0px;height:100%">
144 <table style="padding:0px;border-collapse:collapse;height:100%;">
145 <tr>
146 <td>
147 <table style="padding:0px;border-collapse:collapse;">
148 <tr>
149 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
150 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
151 <a href="/ram/cgi/index.tcl">Config Target</a>
152 </div>
153 </td>
154 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
155 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
156 <a href="/ram/cgi/flashinfo.tcl">Flash</a>
157 </div>
158 </td>
159 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
160 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
161 <a href="/ram/cgi/browsemem.tcl">Memory</a>
162 </div>
163 </td>
164 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1.png');background-repeat: no-repeat;">
165 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
166 <a href="/ram/cgi/openocd.tcl">OpenOCD</a>
167 </div>
168 </td>
169 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab1_selected.png');background-repeat: no-repeat;">
170 <div style="position:relative;top:7px;font-weight:bold;text-align:center;width:100px;">
171 <a href="/ram/cgi/zy1000.tcl" style="font-weight: bold;">Setup ZY1000</a>
172 </div>
173 </td>
174 </tr>
175 </table>
176 </td>
177 </tr>
178 <tr>
179 <td style="height:30px;width:535px;background-image:url('menu_cuts/center_top.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
180 <div style="width:500px;background-color:#ffffff;height:100%;">
181 &nbsp;
182 </div>
183 </td>
184 </tr>
185 <tr>
186 <td style="background-color:#ffffff;text-indent:30px;height:40px;" colspan="6">
187 <H1>Upgrade ZY1000 Firmware</H1>
188 </td>
189 </tr>
190 <tr style="height:100%;">
191 <td style="background-color:#ffffff;padding-left:30px;padding-right:30px;width=535px;height:100%;" colspan="6">
195 set form_action [formfetch form_action];
196 set form_filecontent [formfetch form_filecontent];
198 append buffer {<form enctype="multipart/form-data" action="upgrade.tcl" method="post">}
199 if {[string compare $form_action "Upload"]==0} {
201 if [string match ZylinPhiFirmware* $form_filecontent]==1 {
202 set form_filename /config/firmware.phi
203 puts "Writing firmware to $form_filename"
204 set fp [aio.open $form_filename w];
205 $fp puts -nonewline $form_filecontent
206 $fp close
207 puts "Done writing firmware to $form_filename"
208 append buffer "<br><div style='font-size:14px;'>Upgraded Zylin JTAG, rebooting (wait ca. 30 seconds)...</div><br>"
209 reboot
210 } else {
211 append buffer "<br>Not a valid Zylin JTAG firmware file.<br>"
213 } elseif {[string compare $form_action "Restore factory settings"]==0} {
214 proc rmdir { dir } {
215 set entries {}
216 catch {set entries [ls $dir]} err
217 foreach { entry } $entries {
218 rmdir $dir/$entry
219 rm $dir/$entry
222 rmdir /config/settings
223 reboot
224 append buffer "Restoring factory settings (wait ca. 30 seconds)...<br>"
225 } else {
226 append buffer {<div style="font-size:14px;">Upgrade Zylin JTAG firmware + reboot. </div><p>}
227 append buffer {<input type="file" name="form_filecontent"> <br>}
228 append buffer {<table><tr><td style="height:15px;width:535px;">&nbsp</td></tr><tr><td style="height:1px;width:535px;background-color:#a2c5d1;"></td></tr><tr><td style="height:15px;width:535px;">&nbsp</td></tr></table>}
229 append buffer {<input type="submit" name="form_action" value="Upload" ><br> }
230 append buffer {<input type="submit" name="form_action" value="Restore factory settings" ><br> }
231 append buffer {</form> }
234 append buffer {
236 </td>
237 </tr>
241 set toggle_details [formfetch toggle_details]
242 if {[string length $toggle_details]==0} {
243 set toggle_details 0
245 set show_details [load_var show_details]
246 if {[string length $show_details]==0} {
247 set show_details 0
249 if {$toggle_details==1} {
250 set show_details [expr 1-$show_details]
251 save_var show_details $show_details
254 if {[string length $console]!=0} {
256 append buffer {
257 <tr style="height:100%;">
258 <td style="height:100%;background-color:red;" colspan="6">
259 <table style="padding:0px;border-collapse:collapse;background-color:#ffffff;width:100%" class="textgray">
260 <td style="width:25px;">&nbsp;</td>
263 if {$show_details==1} {
264 append buffer <
265 append buffer {td style="background-color:#dddddd;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:3px;"}
266 append buffer >
267 } else {
268 append buffer <
269 append buffer {td style="background-image:url('menu_cuts/h_tab_free.png');width:110px;height:29px;background-repeat: no-repeat;background-position:top left;"}
270 append buffer >
273 append buffer {
274 <a class="openocd" href="/ram/cgi/upgrade.tcl?toggle_details=1">
277 if {$show_details==1} {
278 append buffer "Hide details"
279 append buffer <br/>
280 } else {
281 append buffer {<div style="position:relative;top:7px;text-align:center;">}
282 append buffer "Show details"
283 append buffer {</div>}
286 append buffer {
287 </a>
290 if {$show_details==1} {
291 append buffer $console
294 append buffer {</td>}
296 if {$show_details!=1} {
297 append buffer {<td>&nbsp;</td>}
300 append buffer {
301 <td style="width:25px;">&nbsp;</td>
302 </table>
303 </td>
304 </tr>
309 append buffer {
310 <tr>
311 <td style="height:30px;background-image:url('menu_cuts/center_bottom.png');background-repeat: no-repeat;background-position:top right;" colspan="6">
312 <div style="width:500px;background-color:#ffffff;height:100%;">
313 &nbsp;
314 </div>
315 </td>
316 </tr>
317 </table>
318 </td>
319 <td style="width:6px;"/>
320 <td style="width:245px;height:100%">
321 <table style="padding:0px;border-collapse:collapse;height:100%;">
322 <tr>
323 <td style="width:103px;height:29px;background-image:url('menu_cuts/h_tab2_selected.png');background-repeat: no-repeat;">
324 <div style="position:relative;top:7px;;font-weight:bold;text-align:center;width:100px;" class="textgray">
325 Documentation
326 </div>
327 </td>
328 <td width="40px">
329 &nbsp;
330 </td>
331 <td/>
332 </tr>
333 <tr>
334 <td style="height:10px;width:245px;background-image:url('menu_cuts/right_top_small.png');" colspan="3"/>
335 </tr>
336 <tr>
337 <td style="background-color:#d8d7d7;width:245px;padding-left:10px;padding-buttom:10px;line-height:17px;" colspan="3">
338 <a target="_blank" href="http://www.zylin.com/zy1000/ZY1000_Quick_Start_Guide.pdf">Quick Start Manual</a>
339 <br/>
340 <a target="_blank" href="http://www.zylin.com/zy1000/openocd.pdf">OpenOCD Manual</a>
341 <br/>
342 <a target="_blank" href="http://www.zylin.com/zy1000_contact.html">Contact Zylin AS</a>
343 </td>
344 </tr>
345 <tr>
346 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
347 </tr>
348 <tr>
349 <td colspan="3">
350 <table style="padding:0px;border-collapse:collapse;">
351 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
352 <td style="background-color:#999999;width:225px; height:1px;"/>
353 <td style="background-color:#d8d7d7;width:10px;height:1px"/>
354 </table>
355 </td>
356 </tr>
357 <tr>
358 <td style="background-color:#d8d7d7;height:15px;" colspan="3"/>
359 </tr>
360 <tr style="height:100%;">
361 <td style="height:100%;background-color:#d8d7d7;padding-left:10px;padding-right:10px;" colspan="3" class="textgray">
363 Upload new firmware file to ZY1000, verify that it is a valid ZY1000 firmware
364 file, and upgrade flash.
365 <p/>
366 Restore factory settings restores all factory settings except the TCP/IP settings.
367 <p/>
368 The current version of the firmware is visible at the top of the web page.
369 <p/>
370 ZY1000 firmware can also be upgraded using serial port YModem upload.
371 <p/>
372 Check for new firmware at <a target="_blank" href="http://www.zylin.com/zy1000.html">http://www.zylin.com/zy1000.html<a>
374 </td>
375 </tr>
376 <tr>
377 <td style="height:30px;background-image:url('menu_cuts/right_bottom.png');" colspan="3">
378 &nbsp;
379 </td>
380 </tr>
381 </table>
382 </td>
383 </tr>
384 <tr>
385 <td/>
386 <td>
387 <img border="0" src="menu_cuts/logo_bottom.png"/>
388 </td>
389 </tr>
390 </table>
391 </body>
392 </html>
415 start_chunked "html"
416 write_chunked $buffer
417 end_chunked