]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - doc/html/ref/malta.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / malta.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) Malta 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="MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Atlas Board"
26 HREF="atlas.html"><LINK
27 REL="NEXT"
28 TITLE="MIPS/RM7000 PMC-Sierra Ocelot"
29 HREF="ocelot.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="atlas.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="ocelot.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="MALTA">MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Malta Board</H1
86 ><DIV
87 CLASS="SECT2"
88 ><H2
89 CLASS="SECT2"
90 ><A
91 NAME="AEN6809">Overview</H2
92 ><P
93 >RedBoot supports both front
94 facing serial ports and the built in ethernet port for communication and downloads.
95 The default serial port settings are 38400,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="AEN6819"><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="AEN6838">Initial Installation</H2
180 ><P
181 >RedBoot is installed using the code download facility built into the
182 Malta board. See the Malta User manual for details, and also the Malta download
183 format in <A
184 HREF="malta.html#MALTA-DOWNLOAD-FORMAT"
185 >the Section called <I
186 >Malta download format</I
187 ></A
188 >.</P
189 ><DIV
190 CLASS="SECT3"
191 ><H3
192 CLASS="SECT3"
193 ><A
194 NAME="AEN6842">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.fl</TT
207 > and <TT
208 CLASS="FILENAME"
209 >redboot_ROM.fl</TT
210 >. </P
211 ></LI
212 ><LI
213 ><P
214 >Make sure switch S5-1 is ON. Reset the board and verify that
215 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.fl</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.fl &#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 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_ROM.fl &#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 address
278 programmed. This will be something like:
279 <TT
280 CLASS="COMPUTEROUTPUT"
281 >1fc17000</TT
282 >. </P
283 ></LI
284 ><LI
285 ><P
286 >Change switch S5-1 to OFF and reset the board. The LED display
287 should read <TT
288 CLASS="COMPUTEROUTPUT"
289 >RedBoot</TT
290 >. </P
291 ></LI
292 ><LI
293 ><P
294 >Run the RedBoot <B
295 CLASS="COMMAND"
296 >fis init</B
297 > and <B
298 CLASS="COMMAND"
299 >fconfig</B
300 > commands to initialize the flash. See <A
301 HREF="flash-image-system.html"
302 >the Section called <I
303 >Flash Image System (FIS)</I
304 > in Chapter 2</A
305 >
306 and <A
307 HREF="persistent-state-flash.html"
308 >the Section called <I
309 >Persistent State Flash-based Configuration and Control</I
310 > in Chapter 2</A
311 > for details. </P
312 ></LI
313 ></OL
314 ></DIV
315 ><DIV
316 CLASS="SECT3"
317 ><H3
318 CLASS="SECT3"
319 ><A
320 NAME="MALTA-DOWNLOAD-FORMAT">Malta download format</H3
321 ><P
322 >In order to download RedBoot to the Malta board, it must be converted
323 to the Malta download format.</P
324 ><P
325 >The <I
326 CLASS="CITETITLE"
327 >Atlas/Malta Developer's Kit</I
328 > CD contains an <SPAN
329 CLASS="APPLICATION"
330 >srecconv.pl</SPAN
331 > utility which requires Perl. This utility is part
332 of the <TT
333 CLASS="FILENAME"
334 >yamon/yamon-src-02.00.tar.gz</TT
335 > tarball
336 on the Dev Kit CD. The path in the expanded tarball is <TT
337 CLASS="FILENAME"
338 >yamon/bin/tools</TT
339 >.  To use
340 <SPAN
341 CLASS="APPLICATION"
342 >srecconv</SPAN
343 > to convert the S-record file:
344 <TABLE
345 BORDER="5"
346 BGCOLOR="#E0E0F0"
347 WIDTH="70%"
348 ><TR
349 ><TD
350 ><PRE
351 CLASS="SCREEN"
352 >$ <TT
353 CLASS="USERINPUT"
354 ><B
355 >cp redboot_ROM.srec redboot_ROM.rec</B
356 ></TT
357 >
358 $ <TT
359 CLASS="USERINPUT"
360 ><B
361 >srecconv.pl -ES L -A 29 redboot_ROM</B
362 ></TT
363 ></PRE
364 ></TD
365 ></TR
366 ></TABLE
367 >
368 The resulting file is named <TT
369 CLASS="FILENAME"
370 >redboot_ROM.fl</TT
371 >.</P
372 ></DIV
373 ></DIV
374 ><DIV
375 CLASS="SECT2"
376 ><H2
377 CLASS="SECT2"
378 ><A
379 NAME="AEN6888">Additional commands</H2
380 ><P
381 >The <B
382 CLASS="COMMAND"
383 >exec</B
384 > command which allows the
385 loading and execution of Linux kernels, is supported for this architecture
386  (see <A
387 HREF="executing-programs.html"
388 >the Section called <I
389 >Executing Programs from RedBoot</I
390 > in Chapter 2</A
391 >). The
392 <B
393 CLASS="COMMAND"
394 >exec</B
395 > parameters used for MIPS boards are:</P
396 ><P
397 ></P
398 ><DIV
399 CLASS="VARIABLELIST"
400 ><DL
401 ><DT
402 >-b <TT
403 CLASS="REPLACEABLE"
404 ><I
405 >&lt;addr&#62;</I
406 ></TT
407 ></DT
408 ><DD
409 ><P
410 >Location to store command line and environment passed to kernel</P
411 ></DD
412 ><DT
413 >-w <TT
414 CLASS="REPLACEABLE"
415 ><I
416 >&lt;time&#62;</I
417 ></TT
418 ></DT
419 ><DD
420 ><P
421 >Wait time in seconds before starting kernel</P
422 ></DD
423 ><DT
424 >-c <TT
425 CLASS="REPLACEABLE"
426 ><I
427 >"params"</I
428 ></TT
429 ></DT
430 ><DD
431 ><P
432 >Parameters passed to kernel</P
433 ></DD
434 ><DT
435 ><TT
436 CLASS="REPLACEABLE"
437 ><I
438 >&lt;addr&#62;</I
439 ></TT
440 ></DT
441 ><DD
442 ><P
443 >Kernel entry point, defaulting to the entry point of the last image
444 loaded</P
445 ></DD
446 ></DL
447 ></DIV
448 ><P
449 >Linux kernels on MIPS platforms expect the entry point to be called with arguments
450 in the registers equivalent to a C call with prototype:
451 <TABLE
452 BORDER="5"
453 BGCOLOR="#E0E0F0"
454 WIDTH="70%"
455 ><TR
456 ><TD
457 ><PRE
458 CLASS="PROGRAMLISTING"
459 >void Linux(int argc, char **argv, char **envp);</PRE
460 ></TD
461 ></TR
462 ></TABLE
463 ></P
464 ><P
465 >RedBoot will place the appropriate data at the offset specified by the
466 <TT
467 CLASS="PARAMETER"
468 ><I
469 >-b</I
470 ></TT
471 > parameter, or by default at address 0x80080000, and will set the
472 arguments accordingly when calling into the kernel.</P
473 ><P
474 >The default entry point, if no image with explicit entry point has been loaded and
475 none is specified, is 0x80000750.</P
476 ></DIV
477 ><DIV
478 CLASS="SECT2"
479 ><H2
480 CLASS="SECT2"
481 ><A
482 NAME="AEN6920">Interrupts</H2
483 ><P
484 >RedBoot uses an interrupt vector table which is located at address 0x80000200.
485 Entries in this table are pointers to functions with this protoype:      <TABLE
486 BORDER="5"
487 BGCOLOR="#E0E0F0"
488 WIDTH="70%"
489 ><TR
490 ><TD
491 ><PRE
492 CLASS="PROGRAMLISTING"
493 >int irq_handler( unsigned vector, unsigned data )</PRE
494 ></TD
495 ></TR
496 ></TABLE
497 >On the malta
498 board, the vector argument is one of 22 interrupts defined in <TT
499 CLASS="COMPUTEROUTPUT"
500 >hal/mips/malta/<TT
501 CLASS="REPLACEABLE"
502 ><I
503 >VERSION</I
504 ></TT
505 >/include/plf_intr.h</TT
506 >: <TABLE
507 BORDER="5"
508 BGCOLOR="#E0E0F0"
509 WIDTH="70%"
510 ><TR
511 ><TD
512 ><PRE
513 CLASS="PROGRAMLISTING"
514 >&#13;#define CYGNUM_HAL_INTERRUPT_SOUTH_BRIDGE_INTR   0
515 #define CYGNUM_HAL_INTERRUPT_SOUTH_BRIDGE_SMI    1
516 #define CYGNUM_HAL_INTERRUPT_CBUS_UART           2
517 #define CYGNUM_HAL_INTERRUPT_COREHI              3
518 #define CYGNUM_HAL_INTERRUPT_CORELO              4
519 #define CYGNUM_HAL_INTERRUPT_COMPARE             5
520 #define CYGNUM_HAL_INTERRUPT_TIMER               6
521 #define CYGNUM_HAL_INTERRUPT_KEYBOARD            7
522 #define CYGNUM_HAL_INTERRUPT_CASCADE             8
523 #define CYGNUM_HAL_INTERRUPT_TTY1                9
524 #define CYGNUM_HAL_INTERRUPT_TTY0               10
525 #define CYGNUM_HAL_INTERRUPT_11                 11
526 #define CYGNUM_HAL_INTERRUPT_FLOPPY             12
527 #define CYGNUM_HAL_INTERRUPT_PARALLEL           13
528 #define CYGNUM_HAL_INTERRUPT_REAL_TIME_CLOCK    14
529 #define CYGNUM_HAL_INTERRUPT_I2C                15
530 #define CYGNUM_HAL_INTERRUPT_PCI_AB             16
531 #define CYGNUM_HAL_INTERRUPT_PCI_CD             17
532 #define CYGNUM_HAL_INTERRUPT_MOUSE              18
533 #define CYGNUM_HAL_INTERRUPT_19                 19
534 #define CYGNUM_HAL_INTERRUPT_IDE_PRIMARY        20
535 #define CYGNUM_HAL_INTERRUPT_IDE_SECONDARY      21</PRE
536 ></TD
537 ></TR
538 ></TABLE
539 >The data
540 passed to the ISR is pulled from a data table (<TT
541 CLASS="COMPUTEROUTPUT"
542 >hal_interrupt_data</TT
543 >) which immediately follows the interrupt vector table. With
544 22 interrupts, the data table starts at address 0x80000258.</P
545 ><P
546 >An application may create a normal C function with the above prototype
547 to be an ISR. Just poke its address into the table at the correct index and
548 enable the interrupt at its source. The return value of the ISR is ignored
549 by RedBoot. </P
550 ></DIV
551 ><DIV
552 CLASS="SECT2"
553 ><H2
554 CLASS="SECT2"
555 ><A
556 NAME="AEN6929">Memory Maps</H2
557 ><P
558 >Memory Maps RedBoot sets up the following memory map on the Malta board.<DIV
559 CLASS="NOTE"
560 ><BLOCKQUOTE
561 CLASS="NOTE"
562 ><P
563 ><B
564 >NOTE: </B
565 >The virtual memory maps in this section use a C and B column to indicate
566 whether or not the region is cached (C) or buffered (B).</P
567 ></BLOCKQUOTE
568 ></DIV
569 ><TABLE
570 BORDER="5"
571 BGCOLOR="#E0E0F0"
572 WIDTH="70%"
573 ><TR
574 ><TD
575 ><PRE
576 CLASS="PROGRAMLISTING"
577 >Physical Address Range  C B  Description
578 ----------------------- - -  -----------
579 0x80000000 - 0x81ffffff Y Y  SDRAM
580 0x9e000000 - 0x9e3fffff Y N  System flash (cached)
581 0x9fc00000 - 0x9fffffff Y N  System flash (mirrored)
582 0xa8000000 - 0xb7ffffff N N  PCI Memory Space
583 0xb4000000 - 0xb40fffff N N  Galileo System Controller
584 0xb8000000 - 0xb80fffff N N  Southbridge / ISA
585 0xb8100000 - 0xbbdfffff N N  PCI I/O Space
586 0xbe000000 - 0xbe3fffff N N  System flash (noncached)
587 0xbf000000 - 0xbfffffff N N  Board logic FPGA</PRE
588 ></TD
589 ></TR
590 ></TABLE
591 ></P
592 ></DIV
593 ><DIV
594 CLASS="SECT2"
595 ><H2
596 CLASS="SECT2"
597 ><A
598 NAME="AEN6936">Rebuilding RedBoot</H2
599 ><P
600 >These shell variables provide the platform-specific information
601 needed for building RedBoot according to the procedure described in
602 <A
603 HREF="rebuilding-redboot.html"
604 >Chapter 3</A
605 >:
606 <TABLE
607 BORDER="5"
608 BGCOLOR="#E0E0F0"
609 WIDTH="70%"
610 ><TR
611 ><TD
612 ><PRE
613 CLASS="PROGRAMLISTING"
614 >export TARGET=malta_mips32_4kc
615 export ARCH_DIR=mips
616 export PLATFORM_DIR=malta</PRE
617 ></TD
618 ></TR
619 ></TABLE
620 ></P
621 ><P
622 >The names of configuration files are listed above with the
623 description of the associated modes.</P
624 ></DIV
625 ></DIV
626 ><DIV
627 CLASS="NAVFOOTER"
628 ><HR
629 ALIGN="LEFT"
630 WIDTH="100%"><TABLE
631 SUMMARY="Footer navigation table"
632 WIDTH="100%"
633 BORDER="0"
634 CELLPADDING="0"
635 CELLSPACING="0"
636 ><TR
637 ><TD
638 WIDTH="33%"
639 ALIGN="left"
640 VALIGN="top"
641 ><A
642 HREF="atlas.html"
643 ACCESSKEY="P"
644 >Prev</A
645 ></TD
646 ><TD
647 WIDTH="34%"
648 ALIGN="center"
649 VALIGN="top"
650 ><A
651 HREF="ecos-ref.html"
652 ACCESSKEY="H"
653 >Home</A
654 ></TD
655 ><TD
656 WIDTH="33%"
657 ALIGN="right"
658 VALIGN="top"
659 ><A
660 HREF="ocelot.html"
661 ACCESSKEY="N"
662 >Next</A
663 ></TD
664 ></TR
665 ><TR
666 ><TD
667 WIDTH="33%"
668 ALIGN="left"
669 VALIGN="top"
670 >MIPS/MIPS32(CoreLV 4Kc)+MIPS64(CoreLV 5Kc) Atlas Board</TD
671 ><TD
672 WIDTH="34%"
673 ALIGN="center"
674 VALIGN="top"
675 ><A
676 HREF="installation-and-testing.html"
677 ACCESSKEY="U"
678 >Up</A
679 ></TD
680 ><TD
681 WIDTH="33%"
682 ALIGN="right"
683 VALIGN="top"
684 >MIPS/RM7000 PMC-Sierra Ocelot</TD
685 ></TR
686 ></TABLE
687 ></DIV
688 ></BODY
689 ></HTML
690 >