OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [doc/] [html/] [ref/] [malta.html] - Blame information for rev 858

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 28 unneback
<!-- 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
>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.