]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/atlas.html
RedBoot TX53 Release 2012-02-15
[karo-tx-redboot.git] / doc / html / ref / atlas.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 >MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Atlas Board</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="Installation and Testing"
23 HREF="installation-and-testing.html"><LINK
24 REL="PREVIOUS"
25 TITLE="IA32/x86 x86-Based PC"
26 HREF="x86pc.html"><LINK
27 REL="NEXT"
28 TITLE="MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Malta Board "
29 HREF="malta.html"></HEAD
30 ><BODY
31 CLASS="SECT1"
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="x86pc.html"
58 ACCESSKEY="P"
59 >Prev</A
60 ></TD
61 ><TD
62 WIDTH="80%"
63 ALIGN="center"
64 VALIGN="bottom"
65 >Chapter 5. Installation and Testing</TD
66 ><TD
67 WIDTH="10%"
68 ALIGN="right"
69 VALIGN="bottom"
70 ><A
71 HREF="malta.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="SECT1"
82 ><H1
83 CLASS="SECT1"
84 ><A
85 NAME="ATLAS">MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Atlas Board</H1
86 ><DIV
87 CLASS="SECT2"
88 ><H2
89 CLASS="SECT2"
90 ><A
91 NAME="AEN6659">Overview</H2
92 ><P
93 >RedBoot supports the DgbSer
94 serial port and the built in ethernet port for communication and downloads.
95 The default serial port settings are 115200,8,N,1. RedBoot runs from and supports
96 flash management for the system flash region.</P
97 ><P
98 >The following RedBoot configurations are supported:
99
100       <DIV
101 CLASS="INFORMALTABLE"
102 ><A
103 NAME="AEN6669"><P
104 ></P
105 ><TABLE
106 BORDER="1"
107 CLASS="CALSTABLE"
108 ><THEAD
109 ><TR
110 ><TH
111 ALIGN="LEFT"
112 VALIGN="TOP"
113 >Configuration</TH
114 ><TH
115 ALIGN="LEFT"
116 VALIGN="TOP"
117 >Mode</TH
118 ><TH
119 ALIGN="LEFT"
120 VALIGN="TOP"
121 >Description</TH
122 ><TH
123 ALIGN="LEFT"
124 VALIGN="TOP"
125 >File</TH
126 ></TR
127 ></THEAD
128 ><TBODY
129 ><TR
130 ><TD
131 ALIGN="LEFT"
132 VALIGN="TOP"
133 >ROM</TD
134 ><TD
135 ALIGN="LEFT"
136 VALIGN="TOP"
137 >[ROM]</TD
138 ><TD
139 ALIGN="LEFT"
140 VALIGN="TOP"
141 >RedBoot running from the board's flash boot
142               sector.</TD
143 ><TD
144 ALIGN="LEFT"
145 VALIGN="TOP"
146 >redboot_ROM.ecm</TD
147 ></TR
148 ><TR
149 ><TD
150 ALIGN="LEFT"
151 VALIGN="TOP"
152 >RAM</TD
153 ><TD
154 ALIGN="LEFT"
155 VALIGN="TOP"
156 >[RAM]</TD
157 ><TD
158 ALIGN="LEFT"
159 VALIGN="TOP"
160 >RedBoot running from RAM with RedBoot in the
161               flash boot sector.</TD
162 ><TD
163 ALIGN="LEFT"
164 VALIGN="TOP"
165 >redboot_RAM.ecm</TD
166 ></TR
167 ></TBODY
168 ></TABLE
169 ><P
170 ></P
171 ></DIV
172 ></P
173 ></DIV
174 ><DIV
175 CLASS="SECT2"
176 ><H2
177 CLASS="SECT2"
178 ><A
179 NAME="AEN6688">Initial Installation</H2
180 ><P
181 >RedBoot is installed using the code download facility built into the
182 Atlas board. See the Atlas User manual for details, and also the Atlas download
183 format in <A
184 HREF="atlas.html#ATLAS-DOWNLOAD-FORMAT"
185 >the Section called <I
186 >Atlas download format</I
187 ></A
188 >.</P
189 ><DIV
190 CLASS="SECT3"
191 ><H3
192 CLASS="SECT3"
193 ><A
194 NAME="AEN6692">Quick download instructions</H3
195 ><P
196 >Here are quick start instructions for downloading the prebuilt RedBoot
197 image.</P
198 ><P
199 ></P
200 ><OL
201 TYPE="1"
202 ><LI
203 ><P
204 >Locate the prebuilt files in the bin directory: <TT
205 CLASS="FILENAME"
206 >deleteall.dl</TT
207 > and <TT
208 CLASS="FILENAME"
209 >redboot.dl</TT
210 >.</P
211 ></LI
212 ><LI
213 ><P
214 >Make sure switch S1-1 is OFF and switch S5-1 is ON. Reset
215 the board and verify that the LED display reads <TT
216 CLASS="COMPUTEROUTPUT"
217 >Flash DL</TT
218 >.</P
219 ></LI
220 ><LI
221 ><P
222 >Make sure your parallel port is connected to the 1284 port
223 Of the Atlas board. </P
224 ></LI
225 ><LI
226 ><P
227 >Send the <TT
228 CLASS="FILENAME"
229 >deleteall.dl</TT
230 > file to the
231 parallel port to erase previous images:
232 <TABLE
233 BORDER="5"
234 BGCOLOR="#E0E0F0"
235 WIDTH="70%"
236 ><TR
237 ><TD
238 ><PRE
239 CLASS="SCREEN"
240 >$ <TT
241 CLASS="USERINPUT"
242 ><B
243 >cat deleteall.dl &#62;/dev/lp0</B
244 ></TT
245 ></PRE
246 ></TD
247 ></TR
248 ></TABLE
249 >
250 When this is complete, the LED display should read
251 <TT
252 CLASS="COMPUTEROUTPUT"
253 >Deleted</TT
254 >.</P
255 ></LI
256 ><LI
257 ><P
258 >Send the ROM mode RedBoot image to the board:
259 <TABLE
260 BORDER="5"
261 BGCOLOR="#E0E0F0"
262 WIDTH="70%"
263 ><TR
264 ><TD
265 ><PRE
266 CLASS="SCREEN"
267 >$ <TT
268 CLASS="USERINPUT"
269 ><B
270 >cat redboot.dl &#62;/dev/lp0</B
271 ></TT
272 ></PRE
273 ></TD
274 ></TR
275 ></TABLE
276 >
277 When this is complete, the LED display should show the last
278 address programmed. This will be something like: <TT
279 CLASS="COMPUTEROUTPUT"
280 >1fc17000</TT
281 >. </P
282 ></LI
283 ><LI
284 ><P
285 >Change switch S5-1 to OFF and reset the board. The LED display
286 should read <TT
287 CLASS="COMPUTEROUTPUT"
288 >RedBoot</TT
289 >. </P
290 ></LI
291 ><LI
292 ><P
293 >Run the RedBoot <B
294 CLASS="COMMAND"
295 >fis init</B
296 >
297 and <B
298 CLASS="COMMAND"
299 >fconfig</B
300 > commands to initialize the flash.
301 See <A
302 HREF="atlas.html#ATLAS-ADDITIONAL-FCONFIG-OPTIONS"
303 >the Section called <I
304 >Additional config options</I
305 ></A
306 >, <A
307 HREF="flash-image-system.html"
308 >the Section called <I
309 >Flash Image System (FIS)</I
310 > in Chapter 2</A
311 >
312 and <A
313 HREF="persistent-state-flash.html"
314 >the Section called <I
315 >Persistent State Flash-based Configuration and Control</I
316 > in Chapter 2</A
317 > for details. </P
318 ></LI
319 ></OL
320 ></DIV
321 ><DIV
322 CLASS="SECT3"
323 ><H3
324 CLASS="SECT3"
325 ><A
326 NAME="ATLAS-DOWNLOAD-FORMAT">Atlas download format</H3
327 ><P
328 >In order to download RedBoot to the Atlas board, it must be converted
329 to the Atlas download format. There are different ways of doing this depending
330 on which version of the developer's kit is shipped with the board.   </P
331 ><P
332 >The <I
333 CLASS="CITETITLE"
334 >Atlas Developer's Kit</I
335 > CD contains an <SPAN
336 CLASS="APPLICATION"
337 >srec2flash</SPAN
338 > utility. The source code for this utility is part
339 of the <TT
340 CLASS="FILENAME"
341 >yamon/yamon-src-01.01.tar.gz</TT
342 > tarball
343 on the Dev Kit CD. The path in the expanded tarball is <TT
344 CLASS="FILENAME"
345 >yamon/bin/tools</TT
346 >.  To use
347 <SPAN
348 CLASS="APPLICATION"
349 >srec2flash</SPAN
350 > to convert the S-record file:
351 <TABLE
352 BORDER="5"
353 BGCOLOR="#E0E0F0"
354 WIDTH="70%"
355 ><TR
356 ><TD
357 ><PRE
358 CLASS="SCREEN"
359 >$ <TT
360 CLASS="USERINPUT"
361 ><B
362 >srec2flash -EL -S29 redboot.srec &#62;redboot.dl</B
363 ></TT
364 ></PRE
365 ></TD
366 ></TR
367 ></TABLE
368 >
369 The <I
370 CLASS="CITETITLE"
371 >Atlas/Malta Developer's Kit</I
372 > CD
373 contains an <SPAN
374 CLASS="APPLICATION"
375 >srecconv.pl</SPAN
376 > utility which requires
377 Perl. This utilty is part of the <TT
378 CLASS="FILENAME"
379 >yamon/yamon-src-02.00.tar.gz</TT
380 >
381 tarball on the Dev Kit CD. The path in the expanded tarball
382 is <TT
383 CLASS="FILENAME"
384 >yamon/bin/tools</TT
385 >.   To use <SPAN
386 CLASS="APPLICATION"
387 >srecconv</SPAN
388 > to convert the S-record file:
389 <TABLE
390 BORDER="5"
391 BGCOLOR="#E0E0F0"
392 WIDTH="70%"
393 ><TR
394 ><TD
395 ><PRE
396 CLASS="SCREEN"
397 >$ <TT
398 CLASS="USERINPUT"
399 ><B
400 >cp redboot_ROM.srec redboot_ROM.rec</B
401 ></TT
402 >
403 $ <TT
404 CLASS="USERINPUT"
405 ><B
406 >srecconv.pl -ES L -A 29 redboot_ROM</B
407 ></TT
408 ></PRE
409 ></TD
410 ></TR
411 ></TABLE
412 >
413 The resulting file is named <TT
414 CLASS="FILENAME"
415 >redboot_ROM.fl</TT
416 >.</P
417 ></DIV
418 ></DIV
419 ><DIV
420 CLASS="SECT2"
421 ><H2
422 CLASS="SECT2"
423 ><A
424 NAME="AEN6746">Flash management</H2
425 ><DIV
426 CLASS="SECT3"
427 ><H3
428 CLASS="SECT3"
429 ><A
430 NAME="ATLAS-ADDITIONAL-FCONFIG-OPTIONS">Additional config options</H3
431 ><P
432 >The ethernet MAC address is stored in flash manually using the <B
433 CLASS="COMMAND"
434 >fconfig</B
435 > command. You can use the YAMON <B
436 CLASS="COMMAND"
437 >setenv
438 ethaddr</B
439 > command to print out the board ethernet address.
440 Typically, it is:    <TABLE
441 BORDER="5"
442 BGCOLOR="#E0E0F0"
443 WIDTH="70%"
444 ><TR
445 ><TD
446 ><PRE
447 CLASS="SCREEN"
448 >00:0d:a0:00:<TT
449 CLASS="REPLACEABLE"
450 ><I
451 >xx:xx</I
452 ></TT
453 ></PRE
454 ></TD
455 ></TR
456 ></TABLE
457 > where
458 <TT
459 CLASS="REPLACEABLE"
460 ><I
461 >xx.xx</I
462 ></TT
463 > is the hex representation of the
464 board serial number.</P
465 ></DIV
466 ></DIV
467 ><DIV
468 CLASS="SECT2"
469 ><H2
470 CLASS="SECT2"
471 ><A
472 NAME="AEN6756">Additional commands</H2
473 ><P
474 >The <B
475 CLASS="COMMAND"
476 >exec</B
477 > command which allows the
478 loading and execution of Linux kernels, is supported for this architecture
479  (see <A
480 HREF="executing-programs.html"
481 >the Section called <I
482 >Executing Programs from RedBoot</I
483 > in Chapter 2</A
484 >). The
485 <B
486 CLASS="COMMAND"
487 >exec</B
488 > parameters used for MIPS boards are:</P
489 ><P
490 ></P
491 ><DIV
492 CLASS="VARIABLELIST"
493 ><DL
494 ><DT
495 >-b <TT
496 CLASS="REPLACEABLE"
497 ><I
498 >&lt;addr&#62;</I
499 ></TT
500 ></DT
501 ><DD
502 ><P
503 >Location to store command line and environment passed to kernel</P
504 ></DD
505 ><DT
506 >-w <TT
507 CLASS="REPLACEABLE"
508 ><I
509 >&lt;time&#62;</I
510 ></TT
511 ></DT
512 ><DD
513 ><P
514 >Wait time in seconds before starting kernel</P
515 ></DD
516 ><DT
517 >-c <TT
518 CLASS="REPLACEABLE"
519 ><I
520 >"params"</I
521 ></TT
522 ></DT
523 ><DD
524 ><P
525 >Parameters passed to kernel</P
526 ></DD
527 ><DT
528 ><TT
529 CLASS="REPLACEABLE"
530 ><I
531 >&lt;addr&#62;</I
532 ></TT
533 ></DT
534 ><DD
535 ><P
536 >Kernel entry point, defaulting to the entry point of the last image
537 loaded</P
538 ></DD
539 ></DL
540 ></DIV
541 ><P
542 >Linux kernels on MIPS platforms expect the entry point to be called with arguments
543 in the registers equivalent to a C call with prototype:
544 <TABLE
545 BORDER="5"
546 BGCOLOR="#E0E0F0"
547 WIDTH="70%"
548 ><TR
549 ><TD
550 ><PRE
551 CLASS="PROGRAMLISTING"
552 >void Linux(int argc, char **argv, char **envp);</PRE
553 ></TD
554 ></TR
555 ></TABLE
556 ></P
557 ><P
558 >RedBoot will place the appropriate data at the offset specified by the
559 <TT
560 CLASS="PARAMETER"
561 ><I
562 >-b</I
563 ></TT
564 > parameter, or by default at address 0x80080000, and will set the
565 arguments accordingly when calling into the kernel.</P
566 ><P
567 >The default entry point, if no image with explicit entry point has been loaded and
568 none is specified, is 0x80000750.</P
569 ></DIV
570 ><DIV
571 CLASS="SECT2"
572 ><H2
573 CLASS="SECT2"
574 ><A
575 NAME="AEN6788">Interrupts</H2
576 ><P
577 >RedBoot uses an interrupt vector table which is located at address 0x80000400.
578 Entries in this table are pointers to functions with this protoype:      <TABLE
579 BORDER="5"
580 BGCOLOR="#E0E0F0"
581 WIDTH="70%"
582 ><TR
583 ><TD
584 ><PRE
585 CLASS="PROGRAMLISTING"
586 >int irq_handler( unsigned vector, unsigned data )</PRE
587 ></TD
588 ></TR
589 ></TABLE
590 >On an atlas
591 board, the vector argument is one of 25 interrupts defined in <TT
592 CLASS="COMPUTEROUTPUT"
593 >hal/mips/atlas/<TT
594 CLASS="REPLACEABLE"
595 ><I
596 >VERSION</I
597 ></TT
598 >/include/plf_intr.h</TT
599 >: <TABLE
600 BORDER="5"
601 BGCOLOR="#E0E0F0"
602 WIDTH="70%"
603 ><TR
604 ><TD
605 ><PRE
606 CLASS="PROGRAMLISTING"
607 >#define CYGNUM_HAL_INTERRUPT_SER                 0
608 #define CYGNUM_HAL_INTERRUPT_TIM0                1
609 #define CYGNUM_HAL_INTERRUPT_2                   2
610 #define CYGNUM_HAL_INTERRUPT_3                   3
611 #define CYGNUM_HAL_INTERRUPT_RTC                 4
612 #define CYGNUM_HAL_INTERRUPT_COREHI              5
613 #define CYGNUM_HAL_INTERRUPT_CORELO              6
614 #define CYGNUM_HAL_INTERRUPT_7                   7
615 #define CYGNUM_HAL_INTERRUPT_PCIA                8
616 #define CYGNUM_HAL_INTERRUPT_PCIB                9
617 #define CYGNUM_HAL_INTERRUPT_PCIC               10
618 #define CYGNUM_HAL_INTERRUPT_PCID               11
619 #define CYGNUM_HAL_INTERRUPT_ENUM               12
620 #define CYGNUM_HAL_INTERRUPT_DEG                13
621 #define CYGNUM_HAL_INTERRUPT_ATXFAIL            14
622 #define CYGNUM_HAL_INTERRUPT_INTA               15
623 #define CYGNUM_HAL_INTERRUPT_INTB               16
624 #define CYGNUM_HAL_INTERRUPT_INTC               17
625 #define CYGNUM_HAL_INTERRUPT_INTD               18
626 #define CYGNUM_HAL_INTERRUPT_SERR               19
627 #define CYGNUM_HAL_INTERRUPT_HW1                20
628 #define CYGNUM_HAL_INTERRUPT_HW2                21
629 #define CYGNUM_HAL_INTERRUPT_HW3                22
630 #define CYGNUM_HAL_INTERRUPT_HW4                23
631 #define CYGNUM_HAL_INTERRUPT_HW5                24</PRE
632 ></TD
633 ></TR
634 ></TABLE
635 >The data
636 passed to the ISR is pulled from a data table (<TT
637 CLASS="COMPUTEROUTPUT"
638 >hal_interrupt_data</TT
639 >) which immediately follows the interrupt vector table. With
640 25 interrupts, the data table starts at address 0x80000464 on atlas.</P
641 ><P
642 >An application may create a normal C function with the above prototype
643 to be an ISR. Just poke its address into the table at the correct index and
644 enable the interrupt at its source. The return value of the ISR is ignored
645 by RedBoot. </P
646 ></DIV
647 ><DIV
648 CLASS="SECT2"
649 ><H2
650 CLASS="SECT2"
651 ><A
652 NAME="AEN6797">Memory Maps</H2
653 ><P
654 >Memory Maps RedBoot sets up the following memory map on the Atlas board.
655 <TABLE
656 BORDER="5"
657 BGCOLOR="#E0E0F0"
658 WIDTH="70%"
659 ><TR
660 ><TD
661 ><PRE
662 CLASS="PROGRAMLISTING"
663 >Physical Address Range Description
664 ----------------------- -------------
665 0x00000000 - 0x07ffffff SDRAM
666 0x08000000 - 0x17ffffff PCI Memory Space
667 0x18000000 - 0x1bdfffff PCI I/O Space
668 0x1be00000 - 0x1bffffff System Controller
669 0x1c000000 - 0x1dffffff System flash
670 0x1e000000 - 0x1e3fffff Monitor flash
671 0x1f000000 - 0x1fbfffff FPGA</PRE
672 ></TD
673 ></TR
674 ></TABLE
675 ></P
676 ></DIV
677 ><DIV
678 CLASS="SECT2"
679 ><H2
680 CLASS="SECT2"
681 ><A
682 NAME="AEN6801">Rebuilding RedBoot</H2
683 ><P
684 >These shell variables provide the platform-specific information
685 needed for building RedBoot according to the procedure described in
686 <A
687 HREF="rebuilding-redboot.html"
688 >Chapter 3</A
689 >:
690 <TABLE
691 BORDER="5"
692 BGCOLOR="#E0E0F0"
693 WIDTH="70%"
694 ><TR
695 ><TD
696 ><PRE
697 CLASS="PROGRAMLISTING"
698 >export TARGET=atlas_mips32_4kc
699 export TARGET=atlas_mips64_5kc
700 export ARCH_DIR=mips
701 export PLATFORM_DIR=atlas</PRE
702 ></TD
703 ></TR
704 ></TABLE
705 >
706
707 Use one of the TARGET settings only.&#13;</P
708 ><P
709 >The names of configuration files are listed above with the
710 description of the associated modes.</P
711 ></DIV
712 ></DIV
713 ><DIV
714 CLASS="NAVFOOTER"
715 ><HR
716 ALIGN="LEFT"
717 WIDTH="100%"><TABLE
718 SUMMARY="Footer navigation table"
719 WIDTH="100%"
720 BORDER="0"
721 CELLPADDING="0"
722 CELLSPACING="0"
723 ><TR
724 ><TD
725 WIDTH="33%"
726 ALIGN="left"
727 VALIGN="top"
728 ><A
729 HREF="x86pc.html"
730 ACCESSKEY="P"
731 >Prev</A
732 ></TD
733 ><TD
734 WIDTH="34%"
735 ALIGN="center"
736 VALIGN="top"
737 ><A
738 HREF="ecos-ref.html"
739 ACCESSKEY="H"
740 >Home</A
741 ></TD
742 ><TD
743 WIDTH="33%"
744 ALIGN="right"
745 VALIGN="top"
746 ><A
747 HREF="malta.html"
748 ACCESSKEY="N"
749 >Next</A
750 ></TD
751 ></TR
752 ><TR
753 ><TD
754 WIDTH="33%"
755 ALIGN="left"
756 VALIGN="top"
757 >IA32/x86 x86-Based PC</TD
758 ><TD
759 WIDTH="34%"
760 ALIGN="center"
761 VALIGN="top"
762 ><A
763 HREF="installation-and-testing.html"
764 ACCESSKEY="U"
765 >Up</A
766 ></TD
767 ><TD
768 WIDTH="33%"
769 ALIGN="right"
770 VALIGN="top"
771 >MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Malta Board</TD
772 ></TR
773 ></TABLE
774 ></DIV
775 ></BODY
776 ></HTML
777 >