]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/updating-redboot.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / updating-redboot.html
1 <!-- Copyright (C) 2003 Red Hat, Inc.                                -->
2 <!-- This material may be distributed only subject to the terms      -->
3 <!-- and conditions set forth in the Open Publication License, v1.0  -->
4 <!-- or later (the latest version is presently available at          -->
5 <!-- http://www.opencontent.org/openpub/).                           -->
6 <!-- Distribution of the work or derivative of the work in any       -->
7 <!-- standard (paper) book form is prohibited unless prior           -->
8 <!-- permission is obtained from the copyright holder.               -->
9 <HTML
10 ><HEAD
11 ><TITLE
12 >Updating RedBoot</TITLE
13 ><meta name="MSSmartTagsPreventParsing" content="TRUE">
14 <META
15 NAME="GENERATOR"
16 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
17 "><LINK
18 REL="HOME"
19 TITLE="eCos Reference Manual"
20 HREF="ecos-ref.html"><LINK
21 REL="UP"
22 TITLE="RedBoot&#8482; User's Guide"
23 HREF="redboot.html"><LINK
24 REL="PREVIOUS"
25 TITLE="Rebuilding RedBoot"
26 HREF="rebuilding-redboot.html"><LINK
27 REL="NEXT"
28 TITLE="Installation and Testing"
29 HREF="installation-and-testing.html"></HEAD
30 ><BODY
31 CLASS="CHAPTER"
32 BGCOLOR="#FFFFFF"
33 TEXT="#000000"
34 LINK="#0000FF"
35 VLINK="#840084"
36 ALINK="#0000FF"
37 ><DIV
38 CLASS="NAVHEADER"
39 ><TABLE
40 SUMMARY="Header navigation table"
41 WIDTH="100%"
42 BORDER="0"
43 CELLPADDING="0"
44 CELLSPACING="0"
45 ><TR
46 ><TH
47 COLSPAN="3"
48 ALIGN="center"
49 >eCos Reference Manual</TH
50 ></TR
51 ><TR
52 ><TD
53 WIDTH="10%"
54 ALIGN="left"
55 VALIGN="bottom"
56 ><A
57 HREF="rebuilding-redboot.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 ></TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="installation-and-testing.html"
72 ACCESSKEY="N"
73 >Next</A
74 ></TD
75 ></TR
76 ></TABLE
77 ><HR
78 ALIGN="LEFT"
79 WIDTH="100%"></DIV
80 ><DIV
81 CLASS="CHAPTER"
82 ><H1
83 ><A
84 NAME="UPDATING-REDBOOT">Chapter 4. Updating RedBoot</H1
85 ><DIV
86 CLASS="SECT1"
87 ><H1
88 CLASS="SECT1"
89 ><A
90 NAME="AEN4752">Introduction</H1
91 ><P
92 >RedBoot
93 normally resides in an EPROM or, more common these days, a flash 
94 on the board. In the former case, updating RedBoot necessitates
95 physically removing the part and
96 reprogramming a new RedBoot image into it using prommer hardware. In
97 the latter case, it is often possible to update RedBoot in situ using
98 Redboot's flash management commands.</P
99 ><P
100 >The process of updating RedBoot in situ is documented in this
101 section. For this process, it is assumed that the target is connected
102 to a host system and that there is a serial connection giving access
103 to the RedBoot CLI. For platforms with a ROMRAM mode RedBoot, skip to
104 <A
105 HREF="updating-redboot.html#UPDATE-PRIMARY-IMAGE"
106 >the Section called <I
107 >Update the primary RedBoot flash image</I
108 ></A
109 >.</P
110 ><DIV
111 CLASS="NOTE"
112 ><BLOCKQUOTE
113 CLASS="NOTE"
114 ><P
115 ><B
116 >Note: </B
117 >The addresses and sizes included in the below are examples
118 only, and will differ from those you will see. This is normal and
119 should not cause concern.</P
120 ></BLOCKQUOTE
121 ></DIV
122 ><DIV
123 CLASS="SECT2"
124 ><H2
125 CLASS="SECT2"
126 ><A
127 NAME="DIFFERENT-VERSION-FROM-RAM">Load and start a RedBoot RAM instance</H2
128 ><P
129 >There are a number of choices here. The basic case is where a RAM
130 mode image has been stored in the FIS (flash Image System). To load and
131 execute this image, use the commands: <TABLE
132 BORDER="5"
133 BGCOLOR="#E0E0F0"
134 WIDTH="70%"
135 ><TR
136 ><TD
137 ><PRE
138 CLASS="SCREEN"
139 >RedBoot&#62; <TT
140 CLASS="USERINPUT"
141 ><B
142 >fis load RedBoot[RAM]</B
143 ></TT
144 >
145 RedBoot&#62; <TT
146 CLASS="USERINPUT"
147 ><B
148 >go</B
149 ></TT
150 ></PRE
151 ></TD
152 ></TR
153 ></TABLE
154 >
155 If this image is not available, or does not work,
156 then an alternate RAM mode image must be loaded:
157 <TABLE
158 BORDER="5"
159 BGCOLOR="#E0E0F0"
160 WIDTH="70%"
161 ><TR
162 ><TD
163 ><PRE
164 CLASS="SCREEN"
165 >RedBoot&#62; <TT
166 CLASS="USERINPUT"
167 ><B
168 >load redboot_RAM.img</B
169 ></TT
170 >
171 Entry point: 0x060213c0, address range: 0x06020000-0x060369c8                   
172 RedBoot&#62; <TT
173 CLASS="USERINPUT"
174 ><B
175 >go</B
176 ></TT
177 ></PRE
178 ></TD
179 ></TR
180 ></TABLE
181 >
182
183 <DIV
184 CLASS="NOTE"
185 ><BLOCKQUOTE
186 CLASS="NOTE"
187 ><P
188 ><B
189 >Note: </B
190 >This command loads the RedBoot image using the TFTP
191 protocol via a network connection. Other methods of loading are
192 available, refer to the <B
193 CLASS="COMMAND"
194 ><A
195 HREF="download-command.html"
196 >load</A
197 ></B
198 > command for more
199 details. </P
200 ></BLOCKQUOTE
201 ></DIV
202 >
203
204 <DIV
205 CLASS="NOTE"
206 ><BLOCKQUOTE
207 CLASS="NOTE"
208 ><P
209 ><B
210 >Note: </B
211 >If you expect to be doing this more than once, it is a
212 good idea to program the RAM mode image into the flash. You do this
213 using the <B
214 CLASS="COMMAND"
215 >fis create</B
216 > command after having
217 downloaded the RAM mode image, but before you start it.</P
218 ><P
219 >Some platforms support locking (write protecting) certain regions of
220 the flash, while others do not. If your platform does not support
221 locking, simply ignore the <B
222 CLASS="COMMAND"
223 >fis unlock</B
224 > and
225 <B
226 CLASS="COMMAND"
227 >fis lock</B
228 > steps (the commands will not be
229 recognized by RedBoot).</P
230 ><P
231 ><TABLE
232 BORDER="5"
233 BGCOLOR="#E0E0F0"
234 WIDTH="70%"
235 ><TR
236 ><TD
237 ><PRE
238 CLASS="SCREEN"
239 >RedBoot&#62; <TT
240 CLASS="USERINPUT"
241 ><B
242 >fis unlock RedBoot[RAM]</B
243 ></TT
244 >
245   ... Unlock from 0x00000000-0x00020000: ..
246 RedBoot&#62; <TT
247 CLASS="USERINPUT"
248 ><B
249 >fis create RedBoot[RAM]</B
250 ></TT
251 >
252 An image named 'RedBoot[RAM]' exists - continue (y/n)? <TT
253 CLASS="USERINPUT"
254 ><B
255 >y</B
256 ></TT
257 >
258 * CAUTION * about to program 'RedBoot[RAM]'
259             at 0x00020000..0x000369c7 from 0x06020000 - continue (y/n)?<TT
260 CLASS="USERINPUT"
261 ><B
262 >y</B
263 ></TT
264 >
265 ... Erase from 0x00020000-0x00040000: ..                                        
266 ... Program from 0x06020000-0x060369c8 at 0x00020000: ..                        
267 ... Erase from 0x00070000-0x00080000: .                                         
268 ... Program from 0x0606f000-0x0607f000 at 0x00070000: .                         
269 RedBoot&#62; <TT
270 CLASS="USERINPUT"
271 ><B
272 >fis lock RedBoot[RAM]</B
273 ></TT
274 >
275   ... Lock from 0x00000000-0x00020000: ..</PRE
276 ></TD
277 ></TR
278 ></TABLE
279 ></P
280 ></BLOCKQUOTE
281 ></DIV
282 ></P
283 ></DIV
284 ><DIV
285 CLASS="SECT2"
286 ><H2
287 CLASS="SECT2"
288 ><A
289 NAME="UPDATE-PRIMARY-IMAGE">Update the primary RedBoot flash image</H2
290 ><P
291 >An
292 instance of RedBoot should now be running on the target from RAM. This
293 can be verified by looking for the mode identifier in the banner. It
294 should be either [RAM] or [ROMRAM].</P
295 ><P
296 >If this is the first time RedBoot is running on the board or if
297 the flash contents has been damaged, initialize the FIS directory:
298 <TABLE
299 BORDER="5"
300 BGCOLOR="#E0E0F0"
301 WIDTH="70%"
302 ><TR
303 ><TD
304 ><PRE
305 CLASS="SCREEN"
306 >RedBoot&#62; <TT
307 CLASS="USERINPUT"
308 ><B
309 >fis init -f</B
310 ></TT
311 >
312 About to initialize [format] FLASH image system - continue (y/n)? <TT
313 CLASS="USERINPUT"
314 ><B
315 >y</B
316 ></TT
317 >
318 *** Initialize FLASH Image System
319 ... Erase from 0x00020000-0x00070000: .....
320 ... Erase from 0x00080000-0x00080000:
321 ... Erase from 0x00070000-0x00080000: .
322 ... Program from 0x0606f000-0x0607f000 at 0x00070000: .</PRE
323 ></TD
324 ></TR
325 ></TABLE
326 ></P
327 ><P
328 >It is important to understand that the presence of a correctly
329 initialized FIS directory allows RedBoot to automatically determine
330 the flash parameters. Additionally, executing the steps below as
331 stated without loading other data or using other flash commands (than
332 possibly <B
333 CLASS="COMMAND"
334 >fis list</B
335 >) allows RedBoot to automatically
336 determine the image location and size parameters. This greatly reduces
337 the risk of potential critical mistakes due to typographical errors. It is
338 still always possible to explicitly specify parameters, and indeed
339 override these, but it is not advised.</P
340 ><DIV
341 CLASS="NOTE"
342 ><BLOCKQUOTE
343 CLASS="NOTE"
344 ><P
345 ><B
346 >Note: </B
347 >If the new RedBoot image has grown beyond the slot in
348 flash reserved for it, it is necessary to change the RedBoot
349 configuration option CYGBLD_REDBOOT_MIN_IMAGE_SIZE so the FIS is
350 created with adequate space reserved for RedBoot images. In this case,
351 it is necessary to re-initialize the FIS directory as described above,
352 using a RAM mode RedBoot compiled with the updated
353 configuration.</P
354 ></BLOCKQUOTE
355 ></DIV
356 ><P
357 >Using the <B
358 CLASS="COMMAND"
359 >load</B
360 > command, download the
361 new flash based image from the host, relocating the image to RAM::
362 <TABLE
363 BORDER="5"
364 BGCOLOR="#E0E0F0"
365 WIDTH="70%"
366 ><TR
367 ><TD
368 ><PRE
369 CLASS="SCREEN"
370 >RedBoot&#62; <TT
371 CLASS="USERINPUT"
372 ><B
373 >load -r -b %{FREEMEMLO} redboot_ROM.bin</B
374 ></TT
375 >
376 Raw file loaded 0x06046800-0x06062fe8, assumed entry at 0x06046800</PRE
377 ></TD
378 ></TR
379 ></TABLE
380 >
381
382 <DIV
383 CLASS="NOTE"
384 ><BLOCKQUOTE
385 CLASS="NOTE"
386 ><P
387 ><B
388 >Note: </B
389 >This command loads the RedBoot image using the TFTP
390 protocol via a network connection. Other methods of loading are
391 available, refer to the <A
392 HREF="download-command.html"
393 >load</A
394 > command for
395 more details. </P
396 ></BLOCKQUOTE
397 ></DIV
398 >
399
400 <DIV
401 CLASS="NOTE"
402 ><BLOCKQUOTE
403 CLASS="NOTE"
404 ><P
405 ><B
406 >Note: </B
407 >Note that the binary version of the image is being
408 downloaded. This is to ensure that the memory after the image is
409 loaded should match the contents of the file on the host. Loading SREC
410 or ELF versions of the image does not guarantee this since these
411 formats may contain holes, leaving bytes in these holes in an unknown
412 state after the load, and thus causing a likely cksum difference. It
413 is possible to use these, but then the step verifying the cksum below
414 may fail.</P
415 ></BLOCKQUOTE
416 ></DIV
417 ></P
418 ><P
419 >Once the image is loaded into RAM, it should be checksummed,
420 thus verifying that the image on the target is indeed the image
421 intended to be loaded, and that no corruption of the image has
422 happened. This is done using the <A
423 HREF="cksum-command.html"
424 >cksum</A
425 >
426 command:
427 <TABLE
428 BORDER="5"
429 BGCOLOR="#E0E0F0"
430 WIDTH="70%"
431 ><TR
432 ><TD
433 ><PRE
434 CLASS="SCREEN"
435 >RedBoot&#62; <TT
436 CLASS="USERINPUT"
437 ><B
438 >cksum</B
439 ></TT
440 >
441 Computing cksum for area 0x06046800-0x06062fe8                                  
442 POSIX cksum = 2535322412 116712 (0x971df32c 0x0001c7e8)                         </PRE
443 ></TD
444 ></TR
445 ></TABLE
446 >
447 Compare the numbers with those for the binary version of the image on
448 the host. If they do not match, try downloading the image again.</P
449 ><P
450 >Assuming the cksum matches, the next step is programming the
451 image into flash using the FIS commands.</P
452 ><P
453 >Some platforms support locking (write protecting) certain
454 regions of the flash, while others do not. If your platform does not
455 support locking, simply ignore the <B
456 CLASS="COMMAND"
457 >fis unlock</B
458 > and
459 <B
460 CLASS="COMMAND"
461 >fis lock</B
462 > steps (the commands will not be recognized
463 by RedBoot).</P
464 ><TABLE
465 BORDER="5"
466 BGCOLOR="#E0E0F0"
467 WIDTH="70%"
468 ><TR
469 ><TD
470 ><PRE
471 CLASS="SCREEN"
472 >RedBoot&#62; <TT
473 CLASS="USERINPUT"
474 ><B
475 >fis unlock RedBoot</B
476 ></TT
477 >
478   ... Unlock from 0x00000000-0x00020000: ..
479 RedBoot&#62; <TT
480 CLASS="USERINPUT"
481 ><B
482 >fis create RedBoot</B
483 ></TT
484 >
485 An image named 'RedBoot' exists - continue (y/n)? <TT
486 CLASS="USERINPUT"
487 ><B
488 >y</B
489 ></TT
490 >
491 * CAUTION * about to program 'RedBoot'
492             at 0x00000000..0x0001c7e7 from 0x06046800 - continue (y/n)? <TT
493 CLASS="USERINPUT"
494 ><B
495 >y</B
496 ></TT
497 >
498 ... Erase from 0x00000000-0x00020000: ..
499 ... Program from 0x06046800-0x06062fe8 at 0x00000000: ..
500 ... Erase from 0x00070000-0x00080000: .
501 ... Program from 0x0606f000-0x0607f000 at 0x00070000: .
502 RedBoot&#62; <TT
503 CLASS="USERINPUT"
504 ><B
505 >fis lock RedBoot</B
506 ></TT
507 >
508   ... Lock from 0x00000000-0x00020000: ..</PRE
509 ></TD
510 ></TR
511 ></TABLE
512 ></DIV
513 ><DIV
514 CLASS="SECT2"
515 ><H2
516 CLASS="SECT2"
517 ><A
518 NAME="AEN4824">Reboot; run the new RedBoot image</H2
519 ><P
520 >Once the image has been successfully written into the flash, simply
521 reset the target and the new version of RedBoot should be running. </P
522 ><P
523 >When installing RedBoot for the first time, or after updating to
524 a newer RedBoot with different configuration keys, it is necessary to
525 update the configuration directory in the flash using the
526 <B
527 CLASS="COMMAND"
528 >fconfig</B
529 > command. See <A
530 HREF="persistent-state-flash.html"
531 >the Section called <I
532 >Persistent State Flash-based Configuration and Control</I
533 > in Chapter 2</A
534 >.</P
535 ></DIV
536 ></DIV
537 ></DIV
538 ><DIV
539 CLASS="NAVFOOTER"
540 ><HR
541 ALIGN="LEFT"
542 WIDTH="100%"><TABLE
543 SUMMARY="Footer navigation table"
544 WIDTH="100%"
545 BORDER="0"
546 CELLPADDING="0"
547 CELLSPACING="0"
548 ><TR
549 ><TD
550 WIDTH="33%"
551 ALIGN="left"
552 VALIGN="top"
553 ><A
554 HREF="rebuilding-redboot.html"
555 ACCESSKEY="P"
556 >Prev</A
557 ></TD
558 ><TD
559 WIDTH="34%"
560 ALIGN="center"
561 VALIGN="top"
562 ><A
563 HREF="ecos-ref.html"
564 ACCESSKEY="H"
565 >Home</A
566 ></TD
567 ><TD
568 WIDTH="33%"
569 ALIGN="right"
570 VALIGN="top"
571 ><A
572 HREF="installation-and-testing.html"
573 ACCESSKEY="N"
574 >Next</A
575 ></TD
576 ></TR
577 ><TR
578 ><TD
579 WIDTH="33%"
580 ALIGN="left"
581 VALIGN="top"
582 >Rebuilding RedBoot</TD
583 ><TD
584 WIDTH="34%"
585 ALIGN="center"
586 VALIGN="top"
587 ><A
588 HREF="redboot.html"
589 ACCESSKEY="U"
590 >Up</A
591 ></TD
592 ><TD
593 WIDTH="33%"
594 ALIGN="right"
595 VALIGN="top"
596 >Installation and Testing</TD
597 ></TR
598 ></TABLE
599 ></DIV
600 ></BODY
601 ></HTML
602 >