Add comments and tiny improvements to STM32 flash loader algorithm
[openocd.git] / src / server / httpd / upgrade.tcl
1 # converted to .tcl by html2tcl.tcl
2 set buffer ""
3 append buffer {
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 <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>
64 }
65
66 set console ""
67 set upload_filename /ram/upload
68
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">
79 }
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">
192
193 }
194
195 set form_action [formfetch form_action];
196 set form_filecontent [formfetch form_filecontent];
197
198 append buffer {<form enctype="multipart/form-data" action="upgrade.tcl" method="post">}
199 if {[string compare $form_action "Upload"]==0} {
200
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>"
212 }
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
220 }
221 }
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> }
232 }
233
234 append buffer {
235
236 </td>
237 </tr>
238 }
239
240
241 set toggle_details [formfetch toggle_details]
242 if {[string length $toggle_details]==0} {
243 set toggle_details 0
244 }
245 set show_details [load_var show_details]
246 if {[string length $show_details]==0} {
247 set show_details 0
248 }
249 if {$toggle_details==1} {
250 set show_details [expr 1-$show_details]
251 save_var show_details $show_details
252 }
253
254 if {[string length $console]!=0} {
255
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>
261 }
262
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 >
271 }
272
273 append buffer {
274 <a class="openocd" href="/ram/cgi/upgrade.tcl?toggle_details=1">
275 }
276
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>}
284 }
285
286 append buffer {
287 </a>
288 }
289
290 if {$show_details==1} {
291 append buffer $console
292 }
293
294 append buffer {</td>}
295
296 if {$show_details!=1} {
297 append buffer {<td>&nbsp;</td>}
298 }
299
300 append buffer {
301 <td style="width:25px;">&nbsp;</td>
302 </table>
303 </td>
304 </tr>
305 }
306
307 }
308
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">
362
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>
373
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>
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413 }
414
415 start_chunked "html"
416 write_chunked $buffer
417 end_chunked
418

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)