comparison packages/redboot/current/doc/redboot_installing.sgml @ 208:e0c0827131d1 ecos

Merge from eCos master repository on 2002-05-20-20:11:54-BST
author jlarmour
date Mon, 20 May 2002 22:19:26 +0000
parents
children d2c90368aeef
comparison
equal deleted inserted replaced
207:74c807ddde34 208:e0c0827131d1
1 <chapter id="Installation-and-Testing">
2 <title>Installation and Testing</title>
3 <indexterm><primary>installing and testing RedBoot</primary></indexterm><indexterm>
4 <primary>RedBoot</primary><secondary>installing and testing</secondary></indexterm>
5 <sect1 id="iq80310">
6 <title>Cyclone IQ80310</title>
7 <sect2>
8 <title>Overview</title>
9 <para><indexterm><primary>Cyclone IQ80310</primary><secondary>installing and
10 testing</secondary></indexterm><indexterm><primary>installing and testing
11 </primary><secondary>Cyclone IQ80310</secondary></indexterm>RedBoot supports
12 both serial ports and the built-in ethernet port for communication and downloads.
13 The default serial port settings are 115200,8,N,1. RedBoot also supports flash
14 management for the onboard 8MB flash. Several basic RedBoot configurations
15 are supported: </para>
16 <itemizedlist>
17 <listitem><para>RedBoot running from the board's flash boot sector.</para>
18 </listitem>
19 <listitem><para>RedBoot running from flash address 0x40000, with ARM bootloader
20 in flash boot sector.</para>
21 </listitem>
22 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
23 </para>
24 </listitem>
25 <listitem><para>RedBoot running from RAM with ARM bootloader in flash boot
26 sector.</para>
27 </listitem>
28 </itemizedlist>
29 <para>A special RedBoot command: <command>diag</command> is
30 used to access a set of hardware diagnostics provided by the board manufacturer.
31 </para>
32 </sect2>
33 <sect2>
34 <title>Initial Installation Method</title>
35 <para>The board manufacturer provides a DOS application which is capable of
36 programming the flash over the PCI bus, and this is required for initial installations
37 of RedBoot. Please see the board manual for information on using this utility.
38 In general, the process involves programming one of the two flash based RedBoot
39 configurations to flash. The RedBoot which runs from the flash boot sector
40 should be programmed to flash address 0x00000000. RedBoot that has been configured
41 to be started by the ARM bootloader should be programmed to flash address
42 0x00004000. </para>
43 <para>Four sets of prebuilt files are provided in a tarball and zip format.
44 Each set corresponds to one of the four supported configurations and includes
45 an ELF file (.elf), a binary image (.bin), and an S-record file (.srec). <programlisting>
46 For RedBoot running from the flash boot sector:
47 bins/cyclone-rom.bin
48 bins/cyclone-rom.elf
49 bins/cyclone-rom.srec
50
51
52 For RedBoot running from flash address 0x40000:
53 bins/cyclone-roma.bin
54 bins/cyclone-roma.elf
55 bins/cyclone-roma.srec
56
57
58 For RedBoot running from RAM with RedBoot in the flash boot sector:
59 bins/cyclone-ram.bin
60 bins/cyclone-ram.elf
61 bins/cyclone-ram.srec
62
63
64 For RedBoot running from RAM with ARM bootloader in the flash boot sector:
65 bins/cyclone-rama.bin
66 bins/cyclone-rama.elf
67 bins/cyclone-rama.srec</programlisting>Initial installations deal with the
68 flash-based RedBoots. Installation and use of RAM based RedBoots is documented
69 elsewhere.</para>
70 <para> To install RedBoot to run from the flash boot sector, use the manufacturer's
71 flash utility to install the bins/cyclone-rom.bin image at address zero.
72 </para>
73 <para>To install RedBoot to run from address 0x40000 with the ARM bootloader
74 in the flash boot sector, use the manufacturer's flash utility to install
75 the bins/cyclone-roma.bin image at address 0x40000. </para>
76 <para>After booting the initial installation of RedBoot, this warning may
77 be printed: <programlisting>flash configuration checksum error or invalid key
78 </programlisting>This is normal, and indicates that the flash must be configured
79 for use by RedBoot. Even if the above message is not printed, it may be a
80 good idea to reinitialize the flash anyway. Do this with the <command>
81 fis</command> command: <programlisting>RedBoot> <userinput>fis init</userinput>
82 About to initialize [format] flash image system - continue (y/n)? y
83 *** Initialize flash Image System
84 Warning: device contents not erased, some blocks may not be usable
85 ... Unlock from 0x007e0000-0x00800000: .
86 ... Erase from 0x007e0000-0x00800000: .
87 ... Program from 0xa1fd0000-0xa1fd0400 at 0x007e0000: .
88 ... Lock from 0x007e0000-0x00800000: .
89 Followed by the fconfig command:
90 RedBoot> <userinput>fconfig</userinput>
91 Run script at boot: <userinput>false</userinput>
92 Use BOOTP for network configuration: <userinput>false</userinput>
93 Local IP address: <userinput>192.168.1.153</userinput>
94 Default server IP address: <userinput>192.168.1.10</userinput>
95 GDB connection port: <userinput>1000</userinput>
96 Network debug at boot time: <userinput>false</userinput>
97 Update RedBoot non-volatile configuration - continue (y/n)? <userinput>y</userinput>
98 ... Unlock from 0x007c0000-0x007e0000: .
99 ... Erase from 0x007c0000-0x007e0000: .
100 ... Program from 0xa0013018-0xa0013418 at 0x007c0000: .
101 ... Lock from 0x007c0000-0x007e0000: .</programlisting></para>
102 </sect2>
103 <sect2>
104 <title>Error codes</title>
105 <para>RedBoot uses the two digit LED display to indicate errors during board
106 initialization. Possible error codes are: <programlisting>88 - Unknown Error
107 55 - I2C Error
108 FF - SDRAM Error
109 01 - No Error </programlisting></para>
110 </sect2>
111 <sect2>
112 <title>Using RedBoot with ARM Bootloader </title>
113 <para>RedBoot can coexist with ARM tools in flash on the IQ80310 board. In
114 this configuration, the ARM bootloader will occupy the flash boot sector while
115 RedBoot is located at flash address 0x40000. The sixteen position rotary switch
116 is used to tell the ARM bootloader to jump to the RedBoot image located at
117 address 0x40000. RedBoot is selected by switch position 0 or 1. Other switch
118 positions are used by the ARM firmware and RedBoot will not be started. </para>
119 </sect2>
120 <sect2>
121 <title>Flash management</title>
122 <sect3>
123 <title>Updating the primary RedBoot image</title>
124 <para>To update the primary RedBoot images, follow the procedures detailed
125 in <xref linkend="update-primary-image">, but the actual numbers used with
126 the flags in the sample commands should be: </para>
127 <bridgehead>ARM bootloader in flash boot sector</bridgehead>
128 <para><programlisting>-f 0x40000
129 -b 0xa0100000
130 -l 0x40000</programlisting></para>
131 <bridgehead>RedBoot in flash boot sector</bridgehead>
132 <para><programlisting>-f 0
133 -b 0xa0100000
134 -l 0x40000</programlisting></para>
135 </sect3>
136 <sect3>
137 <title>Updating the secondary RedBoot image</title>
138 <bridgehead>ARM bootloader in flash boot sector</bridgehead>
139 <programlisting>-f 0x80000
140 -b 0xa0020000
141 -r 0xa0020000
142 -l 0x40000</programlisting>
143 <bridgehead>RedBoot in flash boot sector</bridgehead>
144 <programlisting>-f 0x40000
145 -b 0xa0020000
146 -r 0xa0020000
147 -l 0x40000</programlisting>
148 </sect3></sect2>
149 <sect2>
150 <title>Special RedBoot Commands </title>
151 <para>A special RedBoot command, diag, is used to access a set of hardware
152 diagnostics provided by the board manufacturer. To access the diagnostic menu,
153 enter diag at the RedBoot prompt:
154 <programlisting>
155 RedBoot> <userinput>diag</userinput>
156 Entering Hardware Diagnostics - Disabling Data Cache!
157 1 - Memory Tests
158 2 - Repeating Memory Tests
159 3 - 16C552 DUART Serial Port Tests
160 4 - Rotary Switch S1 Test for positions 0-3
161 5 - seven Segment LED Tests
162 6 - Backplane Detection Test
163 7 - Battery Status Test
164 8 - External Timer Test
165 9 - i82559 Ethernet Configuration
166 10 - i82559 Ethernet Test
167 11 - Secondary PCI Bus Test
168 12 - Primary PCI Bus Test
169 13 - i960Rx/303 PCI Interrupt Test
170 14 - Internal Timer Test
171 15 - GPIO Test
172 0 - quit Enter the menu item number (0 to quit):
173 </programlisting>
174 Tests for various hardware subsystems are provided, and some
175 tests require special hardware in order to execute normally. The Ethernet
176 Configuration item may be used to set the board ethernet address.</para>
177 </sect2>
178 <sect2>
179 <title>IQ80310 Hardware Tests</title>
180 <para><screen>1 - Memory Tests
181 2 - Repeating Memory Tests
182 3 - 16C552 DUART Serial Port Tests
183 4 - Rotary Switch S1 Test for positions 0-3
184 5 - 7 Segment LED Tests
185 6 - Backplane Detection Test
186 7 - Battery Status Test
187 8 - External Timer Test
188 9 - i82559 Ethernet Configuration
189 10 - i82559 Ethernet Test
190 11 - i960Rx/303 PCI Interrupt Test
191 12 - Internal Timer Test
192 13 - Secondary PCI Bus Test
193 14 - Primary PCI Bus Test
194 15 - Battery Backup SDRAM Memory Test
195 16 - GPIO Test
196 17 - Repeat-On-Fail Memory Test
197 18 - Coyonosa Cache Loop (No return)
198 19 - Show Software and Hardware Revision
199 0 - quit
200 Enter the menu item number (0 to quit): </screen></para>
201 <para>Tests for various hardware subsystems are provided, and some tests require
202 special hardware in order to execute normally. The Ethernet Configuration
203 item may be used to set the board ethernet address.</para>
204 </sect2>
205 <sect2>
206 <title>Rebuilding RedBoot </title>
207 <para>The build process is nearly identical for the four supported configurations.
208 Assuming that the provided RedBoot source tree is located in the current directory
209 and that we want to build a RedBoot that runs from the flash boot sector,
210 the build process is: <programlisting>% export TOPDIR=`pwd`
211 % export ECOS_REPOSITORY=\
212 ${TOPDIR}/src/ecos-monitors/redboot-<replaceable>DATE</replaceable>-intel/packages
213 % mkdir ${TOPDIR}/build
214 % cd ${TOPDIR}/build
215 % ecosconfig new iq80310 redboot
216 % ecosconfig import \
217 ${ECOS_REPOSITORY}/hal/arm/iq80310/<replaceable>VERSION</replaceable>/misc/redboot_ROM.ecm
218 % ecosconfig tree
219 % make</programlisting>If a different configuration is desired,
220 simply use the above build process but substitute an alternate configuration
221 file for the ecosconfig import command, e.g.:</para>
222 <para>For a RedBoot that runs from flash address 0x40000 with the ARM booloader
223 in the flash boot sector, use: <programlisting>% ecosconfig import \
224 ${ECOS_REPOSITORY}/hal/arm/iq80310/<replaceable>VERSION</replaceable>/misc/redboot_ROMA.ecm</programlisting>For
225 a RedBoot which runs from RAM with RedBoot located in the flash boot sector,
226 use:<programlisting>% ecosconfig import \
227 ${ECOS_REPOSITORY}/hal/arm/iq80310/<replaceable>VERSION</replaceable>/misc/redboot_RAM.ecm</programlisting>For
228 a RedBoot which runs from RAM with ARM bootloader located in the flash boot
229 sector, use: <programlisting>% ecosconfig import \
230 ${ECOS_REPOSITORY}/hal/arm/iq80310/<replaceable>VERSION</replaceable>/misc/redboot_RAMA.ecm</programlisting></para>
231 </sect2>
232 <sect2>
233 <title>Interrupts</title>
234 <para>RedBoot uses an interrupt vector table which is located at address 0xA000A004.
235 Entries in this table are pointers to functions with this protoype:: <programlisting>
236 int irq_handler( unsigned vector, unsigned data )</programlisting>On an IQ80310
237 board, the vector argument is one of 49 interrupts defined in <computeroutput>
238 hal/arm/iq80310/current/include/hal_platform_ints.h:</computeroutput>: <programlisting>
239 // *** 80200 CPU ***
240 #define CYGNUM_HAL_INTERRUPT_reserved0 0
241 #define CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL 1 // See Ch.12 - Performance Mon.
242 #define CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL 2 // PMU counter 0/1 overflow
243 #define CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL 3 // PMU clock overflow
244 #define CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT 4 // See Ch.11 - Bus Control Unit
245 #define CYGNUM_HAL_INTERRUPT_NIRQ 5 // external IRQ
246 #define CYGNUM_HAL_INTERRUPT_NFIQ 6 // external FIQ
247
248
249 // *** XINT6 interrupts ***
250 #define CYGNUM_HAL_INTERRUPT_DMA_0 7
251 #define CYGNUM_HAL_INTERRUPT_DMA_1 8
252 #define CYGNUM_HAL_INTERRUPT_DMA_2 9
253 #define CYGNUM_HAL_INTERRUPT_GTSC 10 // Global Time Stamp Counter
254 #define CYGNUM_HAL_INTERRUPT_PEC 11 // Performance Event Counter
255 #define CYGNUM_HAL_INTERRUPT_AAIP 12 // application accelerator unit
256
257
258 // *** XINT7 interrupts ***
259 // I2C interrupts
260 #define CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY 13
261 #define CYGNUM_HAL_INTERRUPT_I2C_RX_FULL 14
262 #define CYGNUM_HAL_INTERRUPT_I2C_BUS_ERR 15
263 #define CYGNUM_HAL_INTERRUPT_I2C_STOP 16
264 #define CYGNUM_HAL_INTERRUPT_I2C_LOSS 17
265 #define CYGNUM_HAL_INTERRUPT_I2C_ADDRESS 18
266
267
268 // Messaging Unit interrupts
269 #define CYGNUM_HAL_INTERRUPT_MESSAGE_0 19
270 #define CYGNUM_HAL_INTERRUPT_MESSAGE_1 20
271 #define CYGNUM_HAL_INTERRUPT_DOORBELL 21
272 #define CYGNUM_HAL_INTERRUPT_NMI_DOORBELL 22
273 #define CYGNUM_HAL_INTERRUPT_QUEUE_POST 23
274 #define CYGNUM_HAL_INTERRUPT_OUTBOUND_QUEUE_FULL 24
275 #define CYGNUM_HAL_INTERRUPT_INDEX_REGISTER 25
276 // PCI Address Translation Unit
277 #define CYGNUM_HAL_INTERRUPT_BIST 26
278
279
280 // *** External board interrupts (XINT3) ***
281 #define CYGNUM_HAL_INTERRUPT_TIMER 27 // external timer
282 #define CYGNUM_HAL_INTERRUPT_ETHERNET 28 // onboard enet
283 #define CYGNUM_HAL_INTERRUPT_SERIAL_A 29 // 16x50 uart A
284 #define CYGNUM_HAL_INTERRUPT_SERIAL_B 30 // 16x50 uart B
285 #define CYGNUM_HAL_INTERRUPT_PCI_S_INTD 31 // secondary PCI INTD
286 // The hardware doesn't (yet?) provide masking or status for these
287 // even though they can trigger cpu interrupts. ISRs will need to
288 // poll the device to see if the device actually triggered the
289 // interrupt.
290 #define CYGNUM_HAL_INTERRUPT_PCI_S_INTC 32 // secondary PCI INTC
291 #define CYGNUM_HAL_INTERRUPT_PCI_S_INTB 33 // secondary PCI INTB
292 #define CYGNUM_HAL_INTERRUPT_PCI_S_INTA 34 // secondary PCI INTA
293
294
295 // *** NMI Interrupts go to FIQ ***
296 #define CYGNUM_HAL_INTERRUPT_MCU_ERR 35
297 #define CYGNUM_HAL_INTERRUPT_PATU_ERR 36
298 #define CYGNUM_HAL_INTERRUPT_SATU_ERR 37
299 #define CYGNUM_HAL_INTERRUPT_PBDG_ERR 38
300 #define CYGNUM_HAL_INTERRUPT_SBDG_ERR 39
301 #define CYGNUM_HAL_INTERRUPT_DMA0_ERR 40
302 #define CYGNUM_HAL_INTERRUPT_DMA1_ERR 41
303 #define CYGNUM_HAL_INTERRUPT_DMA2_ERR 42
304 #define CYGNUM_HAL_INTERRUPT_MU_ERR 43
305 #define CYGNUM_HAL_INTERRUPT_reserved52 44
306 #define CYGNUM_HAL_INTERRUPT_AAU_ERR 45
307 #define CYGNUM_HAL_INTERRUPT_BIU_ERR 46
308
309
310 // *** ATU FIQ sources ***
311 #define CYGNUM_HAL_INTERRUPT_P_SERR 47
312 #define CYGNUM_HAL_INTERRUPT_S_SERR 48</programlisting>The data passed
313 to the ISR is pulled from a data table <computeroutput>(hal_interrupt_data)
314 </computeroutput> which immediately follows the interrupt vector table. With
315 49 interrupts, the data table starts at address 0xA000A0C8. </para>
316 <para>An application may create a normal C function with the above prototype
317 to be an ISR. Just poke its address into the table at the correct index and
318 enable the interrupt at its source. The return value of the ISR is ignored
319 by RedBoot.</para>
320 </sect2>
321 <sect2>
322 <title>Memory Maps</title>
323 <para>The first level page table is located at 0xa0004000. Two second level
324 tables are also used. One second level table is located at 0xa0008000 and
325 maps the first 1MB of flash. The other second level table is at 0xa0008400,
326 and maps the first 1MB of SDRAM. <note><title>NOTE</title>
327 <para>The virtual memory maps in this section use a C and B column to indicate
328 whether or not the region is cached (C) or buffered (B).</para>
329 </note></para>
330 <para><programlisting>Physical Address Range Description
331 ----------------------- ----------------------------------
332 0x00000000 - 0x00000fff flash Memory
333 0x00001000 - 0x00001fff 80312 Internal Registers
334 0x00002000 - 0x007fffff flash Memory
335 0x00800000 - 0x7fffffff PCI ATU Outbound Direct Window
336 0x80000000 - 0x83ffffff Primary PCI 32-bit Memory
337 0x84000000 - 0x87ffffff Primary PCI 64-bit Memory
338 0x88000000 - 0x8bffffff Secondary PCI 32-bit Memory
339 0x8c000000 - 0x8fffffff Secondary PCI 64-bit Memory
340 0x90000000 - 0x9000ffff Primary PCI IO Space
341 0x90010000 - 0x9001ffff Secondary PCI IO Space
342 0x90020000 - 0x9fffffff Unused
343 0xa0000000 - 0xbfffffff SDRAM
344 0xc0000000 - 0xefffffff Unused
345 0xf0000000 - 0xffffffff 80200 Internal Registers
346
347
348 Virtual Address Range C B Description
349 ----------------------- - - ----------------------------------
350 0x00000000 - 0x00000fff Y Y SDRAM
351 0x00001000 - 0x00001fff N N 80312 Internal Registers
352 0x00002000 - 0x007fffff Y N flash Memory
353 0x00800000 - 0x7fffffff N N PCI ATU Outbound Direct Window
354 0x80000000 - 0x83ffffff N N Primary PCI 32-bit Memory
355 0x84000000 - 0x87ffffff N N Primary PCI 64-bit Memory
356 0x88000000 - 0x8bffffff N N Secondary PCI 32-bit Memory
357 0x8c000000 - 0x8fffffff N N Secondary PCI 64-bit Memory
358 0x90000000 - 0x9000ffff N N Primary PCI IO Space
359 0x90010000 - 0x9001ffff N N Secondary PCI IO Space
360 0xa0000000 - 0xbfffffff Y Y SDRAM
361 0xc0000000 - 0xcfffffff Y Y Cache Flush Region
362 0xd0000000 - 0xd0000fff Y N first 4k page of flash
363 0xf0000000 - 0xffffffff N N 80200 Internal Registers </programlisting></para>
364 </sect2>
365 <sect2>
366 <title>Resource Usage</title>
367 <para>The standalone flash based RedBoot image (no ARM bootloader) occupies
368 flash addresses 0x00000000 - 0x0003ffff. </para>
369 <para>The flash based RedBoot configured to be booted by the ARM bootloader
370 occupies flash addresses 0x00040000 - 0x0007ffff. Both of these also reserve
371 RAM (0xa0000000 - 0xa001ffff) for RedBoot runtime uses. </para>
372 <para>Both RAM based RedBoot configurations are designed to run from RAM at
373 addresses 0xa0020000 - 0xa005ffff. RAM addresses from 0xa0060000 to the end
374 of RAM are available for general use, such as a temporary scratchpad for downloaded
375 images before they are written to flash. </para>
376 <para>The external timer is used as a polled timer to provide timeout support
377 for networking and XModem file transfers.</para>
378 </sect2></sect1>
379 <?Pub _newpage>
380 <sect1 id="iq80321">
381 <title>Intel IQ80321</title>
382 <sect2>
383 <title>Overview</title>
384 <para><indexterm><primary>Intel IQ80321</primary><secondary>installing and
385 testing</secondary></indexterm><indexterm><primary>installing and testing
386 </primary><secondary>Intel IQ80321</secondary></indexterm>RedBoot supports
387 the serial port and the built-in ethernet port for communication and downloads.
388 The default serial port settings are 115200,8,N,1. RedBoot also supports flash
389 management for the onboard 8MB flash. Several basic RedBoot configurations
390 are supported: </para>
391 <itemizedlist>
392 <listitem><para>RedBoot running from the board's flash boot sector.</para>
393 </listitem>
394 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
395 </para>
396 </listitem>
397 </itemizedlist>
398 <para>A special RedBoot command: <command>diag</command> is
399 used to access a set of hardware diagnostics.
400 </para>
401 </sect2>
402 <sect2>
403 <title>Initial Installation Method</title>
404 <para>The board manufacturer provides a DOS application which is capable of
405 programming the flash over the PCI bus, and this is required for initial installations
406 of RedBoot. Please see the board manual for information on using this utility.
407 In general, the process involves programming the flash based RedBoot to flash.
408 RedBoot should be programmed to flash address 0x00000000 using the DOS utility.
409 </para>
410 <para>Two sets of prebuilt files are provided in a tarball and zip format.
411 Each set corresponds to one of the supported configurations and includes
412 an ELF file (.elf), a binary image (.bin), and an S-record file (.srec). <programlisting>
413 For RedBoot running from the flash boot sector:
414 loaders/iq80321/iq80321-rom.bin
415 loaders/iq80321/iq80321-rom.elf
416 loaders/iq80321/iq80321-rom.srec
417
418 For RedBoot running from RAM with RedBoot in the flash boot sector:
419 loaders/iq80321/iq80321-ram.bin
420 loaders/iq80321/iq80321-ram.elf
421 loaders/iq80321/iq80321-ram.srec
422
423 </programlisting>Initial installations deal with the
424 flash-based RedBoots. Installation and use of RAM based RedBoots is documented
425 elsewhere.</para>
426 <para> To install RedBoot to run from the flash boot sector, use the manufacturer's
427 flash utility to install the
428 <filename>loaders/iq80321/iq80321-rom.bin</filename>
429 image at address zero.
430 </para>
431 <para>After booting the initial installation of RedBoot, this warning may
432 be printed: <programlisting>flash configuration checksum error or invalid key
433 </programlisting>This is normal, and indicates that the flash must be configured
434 for use by RedBoot. Even if the above message is not printed, it may be a
435 good idea to reinitialize the flash anyway. Do this with the <command>
436 fis</command> command: <programlisting>RedBoot> <userinput>fis init</userinput>
437 About to initialize [format] FLASH image system - continue (y/n)? y
438 *** Initialize FLASH Image System
439 Warning: device contents not erased, some blocks may not be usable
440 ... Unlock from 0xf07e0000-0xf0800000: .
441 ... Erase from 0xf07e0000-0xf0800000: .
442 ... Program from 0x01ddf000-0x01ddf400 at 0xf07e0000: .
443 ... Lock from 0xf07e0000-0xf0800000: .
444 </programlisting></para></sect2>
445 <sect2>
446 <title>Switch Settings</title>
447 <para>The 80321 board is highly configurable through a number of switches and jumpers.
448 RedBoot makes some assumptions about board configuration and attention must be paid
449 to these assumptions for reliable RedBoot operation:
450 <itemizedlist>
451 <listitem><para>The onboard ethernet and the secondary slot may be placed in a
452 private space so that they are not seen by a PC BIOS. If the board is to be used
453 in a PC with BIOS, then the ethernet should be placed in this private space so that
454 RedBoot and the BIOS do not conflict.
455 </para></listitem>
456 <listitem><para>RedBoot assumes that the board is plugged into a PC with BIOS. This
457 requires RedBoot to detect when the BIOS has configured the PCI-X secondary bus. If
458 the board is placed in a backplane, RedBoot will never see the BIOS configure the
459 secondary bus. To prevent this wait, set switch S7E1-3 to ON when using the board
460 in a backplane.</para></listitem>
461 <listitem><para>For the remaining switch settings, the following is a known good
462 configuration:
463 <informaltable frame=all>
464 <tgroup cols=2>
465 <tbody>
466 <row><entry>S1D1</entry><entry>All OFF</entry></row>
467 <row><entry>S7E1</entry><entry>7 is ON, all others OFF</entry></row>
468 <row><entry>S8E1</entry><entry>2,3,5,6 are ON, all others OFF</entry></row>
469 <row><entry>S8E2</entry><entry>2,3 are ON, all others OFF</entry></row>
470 <row><entry>S9E1</entry><entry>3 is ON, all others OFF</entry></row>
471 <row><entry>S4D1</entry><entry>1,3 are ON, all others OFF</entry></row>
472 <row><entry>J9E1</entry><entry>2,3 jumpered</entry></row>
473 <row><entry>J9F1</entry><entry>2,3 jumpered</entry></row>
474 <row><entry>J3F1</entry><entry>Nothing jumpered</entry></row>
475 <row><entry>J3G1</entry><entry>2,3 jumpered</entry></row>
476 <row><entry>J1G2</entry><entry>2,3 jumpered</entry></row>
477 </tbody></tgroup></informaltable></para></listitem>
478 </itemizedlist>
479 </para>
480 </sect2>
481 <sect2>
482 <title>LED Codes</title>
483 <para>RedBoot uses the two digit LED display to indicate status during board
484 initialization. Possible codes are:</para>
485
486 <programlisting width=72>
487 LED Actions
488 -------------------------------------------------------------
489 Power-On/Reset
490 88
491 Set the CPSR
492 Enable coprocessor access
493 Drain write and fill buffer
494 Setup PBIU chip selects
495 A1
496 Enable the Icache
497 A2
498 Move FLASH chip select from 0x0 to 0xF0000000
499 Jump to new FLASH location
500 A3
501 Setup and enable the MMU
502 A4
503 I2C interface initialization
504 90
505 Wait for I2C initialization to complete
506 91
507 Send address (via I2C) to the DIMM
508 92
509 Wait for transmit complete
510 93
511 Read SDRAM PD data from DIMM
512 94
513 Read remainder of EEPROM data.
514 An error will result in one of the following
515 error codes on the LEDs:
516 77 BAD EEPROM checksum
517 55 I2C protocol error
518 FF bank size error
519 A5
520 Setup DDR memory interface
521 A6
522 Enable branch target buffer
523 Drain the write & fill buffers
524 Flush Icache, Dcache and BTB
525 Flush instuction and data TLBs
526 Drain the write & fill buffers
527 SL
528 ECC Scrub Loop
529 SE
530 A7
531 Clean, drain, flush the main Dcache
532 A8
533 Clean, drain, flush the mini Dcache
534 Flush Dcache
535 Drain the write & fill buffers
536 A9
537 Enable ECC
538 AA
539 Save SDRAM size
540 Move MMU tables into RAM
541 AB
542 Clean, drain, flush the main Dcache
543 Clean, drain, flush the mini Dcache
544 Drain the write & fill buffers
545 AC
546 Set the TTB register to DRAM mmu_table
547 AD
548 Set mode to IRQ mode
549 A7
550 Move SWI & Undefined "vectors" to RAM (at 0x0)
551 A6
552 Switch to supervisor mode
553 A5
554 Move remaining "vectors" to RAM (at 0x0)
555 A4
556 Copy DATA to RAM
557 Initialize interrupt exception environment
558 Initialize stack
559 Clear BSS section
560 A3
561 Call platform specific hardware initialization
562 A2
563 Run through static constructors
564 A1
565 Start up the eCos kernel or RedBoot
566 </programlisting>
567 </sect2>
568 <sect2>
569 <title>Flash management</title>
570 <sect3>
571 <title>Updating the primary RedBoot image</title>
572 <para>To update the primary RedBoot images, follow the procedures detailed
573 in <xref linkend="update-primary-image">, but the actual numbers used with
574 the flags in the sample commands should be: </para>
575 <para><programlisting>-f 0xf0000000
576 -b 0x100000
577 -l 0x40000</programlisting></para>
578 </sect3>
579 <sect3>
580 <title>Updating the secondary RedBoot image</title>
581 <para>To update the secondary RedBoot image, follow the procedures detailed
582 in <xref linkend="different-version-from-RAM">, but the actual numbers used with
583 the flags in the sample commands should be: </para>
584 <programlisting>-f 0xf0040000
585 -b 0x20000
586 -r 0x20000
587 -l 0x40000</programlisting>
588 </sect3></sect2>
589 <sect2>
590 <title>Special RedBoot Commands </title>
591 <para>A special RedBoot command, diag, is used to access a set of hardware
592 diagnostics. To access the diagnostic menu, enter diag at the RedBoot prompt:
593 <programlisting>
594 RedBoot> <userinput>diag</userinput>
595 Entering Hardware Diagnostics - Disabling Data Cache!
596
597 IQ80321 Hardware Tests
598
599 1 - Memory Tests
600 2 - Repeating Memory Tests
601 3 - Repeat-On-Fail Memory Tests
602 4 - Rotary Switch S1 Test
603 5 - 7 Segment LED Tests
604 6 - i82544 Ethernet Configuration
605 7 - Baterry Status Test
606 8 - Battery Backup SDRAM Memory Test
607 9 - Timer Test
608 10 - PCI Bus test
609 11 - CPU Cache Loop (No Return)
610 0 - quit
611 Enter the menu item number (0 to quit):
612 </programlisting>
613 Tests for various hardware subsystems are provided, and some tests require
614 special hardware in order to execute normally. The Ethernet Configuration
615 item may be used to set the board ethernet address.</para>
616 <sect3>
617 <title>Memory Tests</title>
618 <para>This test is used to test installed DDR SDRAM memory. Five different
619 tests are run over the given address ranges. If errors are encountered, the
620 test is aborted and information about the failure is printed. When selected,
621 the user will be prompted to enter the base address of the test range and its
622 size. The numbers must be in hex with no leading &ldquo;0x&rdquo;
623 </para>
624 <programlisting>
625 Enter the menu item number (0 to quit): 1
626
627 Base address of memory to test (in hex): 100000
628
629 Size of memory to test (in hex): 200000
630
631 Testing memory from 0x00100000 to 0x002fffff.
632
633 Walking 1's test:
634 0000000100000002000000040000000800000010000000200000004000000080
635 0000010000000200000004000000080000001000000020000000400000008000
636 0001000000020000000400000008000000100000002000000040000000800000
637 0100000002000000040000000800000010000000200000004000000080000000
638 passed
639 32-bit address test: passed
640 32-bit address bar test: passed
641 8-bit address test: passed
642 Byte address bar test: passed
643 Memory test done.
644 </programlisting>
645 </sect3>
646 <sect3>
647 <title>Repeating Memory Tests</title>
648 <para>The repeating memory tests are exactly the same as the above memory tests,
649 except that the tests are automatically rerun after completion. The only way out
650 of this test is to reset the board.
651 </para>
652 </sect3>
653 <sect3>
654 <title>Repeat-On-Fail Memory Tests</title>
655 <para>This is similar to the repeating memory tests except that when an error
656 is found, the failing test continuously retries on the failing address.
657 </para>
658 </sect3>
659 <sect3>
660 <title>Rotary Switch S1 Test</title>
661 <para>This tests the operation of the sixteen position rotary switch. When run,
662 this test will display the current position of the rotary switch on the LED
663 display. Slowly dial through each position and confirm reading on LED.
664 </para>
665 </sect3>
666 <sect3>
667 <title>7 Segment LED Tests</title>
668 <para>This tests the operation of the seven segment displays. When run, each
669 LED cycles through 0 through F and a decimal point.
670 </para>
671 </sect3>
672 <sect3>
673 <title>i82544 Ethernet Configuration</title>
674 <para>This test initializes the ethernet controller&rsquo;s serial EEPROM if
675 the current contents are invalid. In any case, this test will also allow the
676 user to enter a six byte ethernet MAC address into the serial EEPROM.
677 </para>
678 <programlisting>
679 Enter the menu item number (0 to quit): 6
680
681
682 Current MAC address: 00:80:4d:46:00:02
683 Enter desired MAC address: 00:80:4d:46:00:01
684 Writing to the Serial EEPROM... Done
685
686 ******** Reset The Board To Have Changes Take Effect ********
687 </programlisting>
688 </sect3>
689 <sect3>
690 <title>Battery Status Test</title>
691 <para>This tests the current status of the battery. First, the test checks to
692 see if the battery is installed and reports that finding. If the battery is
693 installed, the test further determines whether the battery status is one or
694 more of the following:
695 <itemizedlist>
696 <listitem><para>Battery is charging.</para></listitem>
697 <listitem><para>Battery is fully discharged.</para></listitem>
698 <listitem><para>Battery voltage measures within normal operating range.
699 </para></listitem>
700 </itemizedlist>
701 </para>
702 </sect3>
703 <sect3>
704 <title>Battery Backup SDRAM Memory Test</title>
705 <para>This tests the battery backup of SDRAM memory. This test is a three
706 step process:</para>
707 <orderedlist>
708 <listitem><para>Select Battery backup test from main diag menu, then write
709 data to SDRAM.</para></listitem>
710 <listitem><para>Turn off power for 60 seconds, then repower the board.
711 </para></listitem>
712 <listitem><para>Select Battery backup test from main diag menu, then check
713 data that was written in step 1.
714 </para></listitem>
715 </orderedlist>
716 </sect3>
717 <sect3>
718 <title>Timer Test</title>
719 <para>This tests the internal timer by printing a number of dots at one
720 second intervals.</para>
721 </sect3>
722 <sect3>
723 <title>PCI Bus Test</title>
724 <para>This tests the secondary PCI-X bus and socket. This test requires that
725 an IQ80310 board be plugged into the secondary slot of the IOP80321 board.
726 The test assumes at least 32MB of installed memory on the IQ80310. That memory
727 is mapped into the IOP80321 address space and the memory tests are run on that
728 memory.
729 </para>
730 </sect3>
731 <sect3>
732 <title>CPU Cache Loop</title>
733 <para>This test puts the CPU into a tight loop run entirely from the ICache.
734 This should prevent all external bus accesses.
735 </para>
736 </sect3>
737 </sect2>
738 <sect2>
739 <title>Rebuilding RedBoot </title>
740 <para>The build process is nearly identical for the supported configurations.
741 Assuming that the provided RedBoot source tree is located in the current directory
742 and that we want to build a RedBoot that runs from the flash boot sector,
743 the build process is: <programlisting>% export TOPDIR=`pwd`
744 % export ECOS_REPOSITORY=\
745 ${TOPDIR}/src/ecos-monitors/redboot-<replaceable>DATE</replaceable>-intel/packages
746 % mkdir ${TOPDIR}/build
747 % cd ${TOPDIR}/build
748 % ecosconfig new iq80321 redboot
749 % ecosconfig import \
750 ${ECOS_REPOSITORY}/hal/arm/xscale/iq80321/<replaceable>VERSION</replaceable>/misc/redboot_ROM.ecm
751 % ecosconfig tree
752 % make</programlisting>If a RedBoot that runs from RAM is desired,
753 simply use the above build process but substitute an alternate configuration
754 file for the ecosconfig import command, e.g.:</para>
755 <para><programlisting>% ecosconfig import \
756 ${ECOS_REPOSITORY}/hal/arm/xscale/iq80321/<replaceable>VERSION</replaceable>/misc/redboot_RAM.ecm
757 </programlisting></para>
758 </sect2>
759 <sect2>
760 <title>Interrupts</title>
761 <para>RedBoot uses an interrupt vector table which is located at address 0x8004.
762 Entries in this table are pointers to functions with this protoype:: <programlisting>
763 int irq_handler( unsigned vector, unsigned data )</programlisting>On an IQ80321
764 board, the vector argument is one of 32 interrupts defined in <computeroutput>
765 hal/arm/xscale/verde/current/include/hal_var_ints.h:</computeroutput>: <programlisting>
766 // *** 80200 CPU ***
767 #define CYGNUM_HAL_INTERRUPT_DMA0_EOT 0
768 #define CYGNUM_HAL_INTERRUPT_DMA0_EOC 1
769 #define CYGNUM_HAL_INTERRUPT_DMA1_EOT 2
770 #define CYGNUM_HAL_INTERRUPT_DMA1_EOC 3
771 #define CYGNUM_HAL_INTERRUPT_RSVD_4 4
772 #define CYGNUM_HAL_INTERRUPT_RSVD_5 5
773 #define CYGNUM_HAL_INTERRUPT_AA_EOT 6
774 #define CYGNUM_HAL_INTERRUPT_AA_EOC 7
775 #define CYGNUM_HAL_INTERRUPT_CORE_PMON 8
776 #define CYGNUM_HAL_INTERRUPT_TIMER0 9
777 #define CYGNUM_HAL_INTERRUPT_TIMER1 10
778 #define CYGNUM_HAL_INTERRUPT_I2C_0 11
779 #define CYGNUM_HAL_INTERRUPT_I2C_1 12
780 #define CYGNUM_HAL_INTERRUPT_MESSAGING 13
781 #define CYGNUM_HAL_INTERRUPT_ATU_BIST 14
782 #define CYGNUM_HAL_INTERRUPT_PERFMON 15
783 #define CYGNUM_HAL_INTERRUPT_CORE_PMU 16
784 #define CYGNUM_HAL_INTERRUPT_BIU_ERR 17
785 #define CYGNUM_HAL_INTERRUPT_ATU_ERR 18
786 #define CYGNUM_HAL_INTERRUPT_MCU_ERR 19
787 #define CYGNUM_HAL_INTERRUPT_DMA0_ERR 20
788 #define CYGNUM_HAL_INTERRUPT_DMA1_ERR 22
789 #define CYGNUM_HAL_INTERRUPT_AA_ERR 23
790 #define CYGNUM_HAL_INTERRUPT_MSG_ERR 24
791 #define CYGNUM_HAL_INTERRUPT_SSP 25
792 #define CYGNUM_HAL_INTERRUPT_RSVD_26 26
793 #define CYGNUM_HAL_INTERRUPT_XINT0 27
794 #define CYGNUM_HAL_INTERRUPT_XINT1 28
795 #define CYGNUM_HAL_INTERRUPT_XINT2 29
796 #define CYGNUM_HAL_INTERRUPT_XINT3 30
797 #define CYGNUM_HAL_INTERRUPT_HPI 31
798 </programlisting>
799 The data passed to the ISR is pulled from a data table <computeroutput>(hal_interrupt_data)
800 </computeroutput> which immediately follows the interrupt vector table. With
801 32 interrupts, the data table starts at address 0x8084. </para>
802 <para>An application may create a normal C function with the above prototype
803 to be an ISR. Just poke its address into the table at the correct index and
804 enable the interrupt at its source. The return value of the ISR is ignored
805 by RedBoot.</para>
806 </sect2>
807 <sect2>
808 <title>Memory Maps</title>
809 <para>The RAM based page table is located at RAM start + 0x4000. RedBoot may be configured
810 for one of two memory maps. The difference between them is the location of RAM and the
811 PCI outbound windows. The alternative memory map may be used when
812 building RedBoot or eCos by using the <literal>RAM_ALTMAP</literal>
813 and <literal>ROM_ALTMAP</literal> startup types in the configuration.
814 <note><title>NOTE</title>
815 <para>The virtual memory maps in this section use a C, B, and X column to indicate
816 the caching policy for the region..</para>
817 </note></para>
818 <para><programlisting>
819 X C B Description
820 - - - ---------------------------------------------
821 0 0 0 Uncached/Unbuffered
822 0 0 1 Uncached/Buffered
823 0 1 0 Cached/Buffered Write Through, Read Allocate
824 0 1 1 Cached/Buffered Write Back, Read Allocate
825 1 0 0 Invalid -- not used
826 1 0 1 Uncached/Buffered No write buffer coalescing
827 1 1 0 Mini DCache - Policy set by Aux Ctl Register
828 1 1 1 Cached/Buffered Write Back, Read/Write Allocate
829
830 Physical Address Range Description
831 ----------------------- ----------------------------------
832 0x00000000 - 0x7fffffff ATU Outbound Direct Window
833 0x80000000 - 0x900fffff ATU Outbound Translate Windows
834 0xa0000000 - 0xbfffffff SDRAM
835 0xf0000000 - 0xf0800000 FLASH (PBIU CS0)
836 0xfe800000 - 0xfe800fff UART (PBIU CS1)
837 0xfe840000 - 0xfe840fff Left 7-segment LED (PBIU CS3)
838 0xfe850000 - 0xfe850fff Right 7-segment LED (PBIU CS2)
839 0xfe8d0000 - 0xfe8d0fff Rotary Switch (PBIU CS4)
840 0xfe8f0000 - 0xfe8f0fff Baterry Status (PBIU CS5)
841 0xfff00000 - 0xffffffff Verde Memory mapped Registers
842
843
844 Default Virtual Map X C B Description
845 ----------------------- - - - ----------------------------------
846 0x00000000 - 0x1fffffff 1 1 1 SDRAM
847 0x20000000 - 0x9fffffff 0 0 0 ATU Outbound Direct Window
848 0xa0000000 - 0xb00fffff 0 0 0 ATU Outbound Translate Windows
849 0xc0000000 - 0xdfffffff 0 0 0 Uncached alias for SDRAM
850 0xe0000000 - 0xe00fffff 1 1 1 Cache flush region (no phys mem)
851 0xf0000000 - 0xf0800000 0 1 0 FLASH (PBIU CS0)
852 0xfe800000 - 0xfe800fff 0 0 0 UART (PBIU CS1)
853 0xfe840000 - 0xfe840fff 0 0 0 Left 7-segment LED (PBIU CS3)
854 0xfe850000 - 0xfe850fff 0 0 0 Right 7-segment LED (PBIU CS2)
855 0xfe8d0000 - 0xfe8d0fff 0 0 0 Rotary Switch (PBIU CS4)
856 0xfe8f0000 - 0xfe8f0fff 0 0 0 Baterry Status (PBIU CS5)
857 0xfff00000 - 0xffffffff 0 0 0 Verde Memory mapped Registers
858
859 Alternate Virtual Map X C B Description
860 ----------------------- - - - ----------------------------------
861 0x00000000 - 0x000fffff 1 1 1 Alias for 1st MB of SDRAM
862 0x00100000 - 0x7fffffff 0 0 0 ATU Outbound Direct Window
863 0x80000000 - 0x900fffff 0 0 0 ATU Outbound Translate Windows
864 0xa0000000 - 0xbfffffff 1 1 1 SDRAM
865 0xc0000000 - 0xdfffffff 0 0 0 Uncached alias for SDRAM
866 0xe0000000 - 0xe00fffff 1 1 1 Cache flush region (no phys mem)
867 0xf0000000 - 0xf0800000 0 1 0 FLASH (PBIU CS0)
868 0xfe800000 - 0xfe800fff 0 0 0 UART (PBIU CS1)
869 0xfe840000 - 0xfe840fff 0 0 0 Left 7-segment LED (PBIU CS3)
870 0xfe850000 - 0xfe850fff 0 0 0 Right 7-segment LED (PBIU CS2)
871 0xfe8d0000 - 0xfe8d0fff 0 0 0 Rotary Switch (PBIU CS4)
872 0xfe8f0000 - 0xfe8f0fff 0 0 0 Baterry Status (PBIU CS5)
873 0xfff00000 - 0xffffffff 0 0 0 Verde Memory mapped Registers
874
875 </programlisting></para>
876 </sect2>
877 <sect2>
878 <title>Resource Usage</title>
879 <para>The flash based RedBoot image occupies flash addresses
880 0xf0000000 - 0xf003ffff and RAM addresses (0x00000000 - 0x0001ffff). </para>
881 <para>The RAM based RedBoot configuration is designed to run from RAM at
882 addresses 0x00020000 - 0x0005ffff. RAM addresses from 0x00060000 to the end
883 of RAM are available for general use, such as a temporary scratchpad for
884 downloaded images before they are written to flash. </para>
885 <para>The Verde programmable timer0 is used for timeout support
886 for networking and XModem file transfers.</para>
887 </sect2></sect1>
888 <?Pub _newpage>
889 <sect1 id="brutus">
890 <title>Intel SA1100 (Brutus) </title>
891 <sect2>
892 <title>Overview</title>
893 <para><indexterm><primary>Intel-SA1100 (Brutus)</primary><secondary>installing
894 and testing</secondary></indexterm><indexterm><primary>installing and testing
895 </primary><secondary>Intel SA1100 (Brutus)</secondary></indexterm>RedBoot
896 supports both board serial ports on the Brutus board. The default serial port
897 settings are 38400,8,N,1. flash management is not currently supported. </para>
898 <para>Two basic RedBoot configurations are supported:<itemizedlist>
899 <listitem><para>RedBoot running from the board's flash boot sector.</para>
900 </listitem>
901 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
902 </para>
903 </listitem>
904 </itemizedlist></para>
905 </sect2>
906 <sect2>
907 <title>Initial Installation Method </title>
908 <para>Device programmer is used to program socketecflash parts.</para>
909 </sect2>
910 <sect2>
911 <title>Special RedBoot Commands </title>
912 <para>None.</para>
913 </sect2>
914 <sect2>
915 <title>Memory Maps </title>
916 <para>The first level page table is located at physical address 0xc0004000.
917 No second level tables are used.<note><title>NOTE</title>
918 <para>The virtual memory maps in this section use a C and B column to indicate
919 whether or not the region is cached (C) or buffered (B).</para>
920 </note><programlisting>Physical Address Range Description
921 ----------------------- ----------------------------------
922 0x00000000 - 0x000fffff Boot ROM
923 0x08000000 - 0x083fffff Application flash
924 0x10000000 - 0x100fffff SRAM
925 0x18000000 - 0x180fffff Chip Select 3
926 0x20000000 - 0x3fffffff PCMCIA
927 0x80000000 - 0xbfffffff SA-1100 Internal Registers
928 0xc0000000 - 0xc7ffffff DRAM Bank 0
929 0xc8000000 - 0xcfffffff DRAM Bank 1
930 0xd0000000 - 0xd7ffffff DRAM Bank 2
931 0xd8000000 - 0xdfffffff DRAM Bank 3
932 0xe0000000 - 0xe7ffffff Cache Clean
933
934
935 Virtual Address Range C B Description
936 ----------------------- - - ----------------------------------
937 0x00000000 - 0x003fffff Y Y DRAM Bank 0
938 0x00400000 - 0x007fffff Y Y DRAM Bank 1
939 0x00800000 - 0x00bfffff Y Y DRAM Bank 2
940 0x00c00000 - 0x00ffffff Y Y DRAM Bank 3
941 0x08000000 - 0x083fffff Y Y Application flash
942 0x10000000 - 0x100fffff Y N SRAM
943 0x20000000 - 0x3fffffff N N PCMCIA
944 0x40000000 - 0x400fffff Y Y Boot ROM
945 0x80000000 - 0xbfffffff N N SA-1100 Internal Registers
946 0xe0000000 - 0xe7ffffff Y Y Cache Clean</programlisting></para>
947 </sect2>
948 <sect2>
949 <title>Resource Usage </title>
950 <para>The flash based RedBoot image occupies flash addresses 0x40000000 -
951 0x4000ffff. The RAM based RedBoot image occupies RAM addresses 0x10000 - 0x2ffff.
952 RAM addresses from 0x30000 to the end of RAM are available for general use
953 such as a temporary scratchpad for downloaded images before they are written
954 to flash. The SA11x0 OS timer is used as a polled timer to provide timeout
955 support for XModem file transfers.</para>
956 </sect2>
957 <sect2>
958 <title>Rebuilding RedBoot</title>
959 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
960 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
961 &ldquo;brutus&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/brutus&rdquo; respectively.
962 Note that the configuration export files supplied in the <computeroutput>
963 hal/arm/sa11x0/brutus/<replaceable>VERSION</replaceable>/misc</computeroutput>
964 directory in the RedBoot source tree should be used.</para>
965 </sect2>
966 </sect1>
967 <?Pub _newpage>
968 <sect1 id="ebsa285">
969 <title>Intel StrongArm EBSA 285</title>
970 <sect2>
971 <title>Overview</title>
972 <para><indexterm><primary>Intel StrongArm EBSA 285</primary><secondary>installing
973 and testing</secondary></indexterm><indexterm><primary>installing and testing
974 </primary><secondary>Intel StrongArm EBSA 285</secondary></indexterm>RedBoot
975 uses the single EBSA-285 serial port. The default serial port settings are
976 38400,8,N,1. If the EBSA-285 is used as a host on a PCI backplane, ethernet
977 is supported using an Intel PRO/100+ ethernet adapter.</para>
978 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
979 are supported: <itemizedlist>
980 <listitem><para>RedBoot running from the board's flash boot sector.</para>
981 </listitem>
982 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
983 </para>
984 </listitem>
985 </itemizedlist></para>
986 </sect2>
987 <sect2>
988 <title>Initial Installation Method </title>
989 <para>A linux application is used to program the flash over the PCI bus. Sources
990 and build instructions for this utility are located in the RedBoot sources
991 in: <programlisting>.../packages/hal/arm/ebsa285/current/support/linux/safl_util
992 </programlisting></para>
993 </sect2>
994 <sect2>
995 <title>Flash management</title>
996 <sect3>
997 <title>Updating the primary RedBoot image</title>
998 <para>To update the primary RedBoot images, follow the procedures detailed
999 in <xref linkend="update-primary-image">, but the actual numbers used with
1000 the flags in the sample commands should be: <programlisting>-f 0x41000000
1001 -b 0x100000
1002 -l 0x40000</programlisting></para>
1003 </sect3>
1004 <sect3>
1005 <title>Updating the secondary RedBoot image</title>
1006 <para>To update the secondary RedBoot images, follow the procedures detailed
1007 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1008 with the flags in the sample commands should be: <programlisting>-f 0x41040000
1009 -b 0x20000
1010 -r 0x20000
1011 -l 0x40000
1012 </programlisting></para>
1013 </sect3></sect2>
1014 <sect2>
1015 <title>Communication Channels </title>
1016 <para>Serial, Intel PRO 10/100+ 82559 PCI ethernet card.</para>
1017 </sect2>
1018 <sect2>
1019 <title>Special RedBoot Commands </title>
1020 <para>None.</para>
1021 </sect2>
1022 <sect2>
1023 <title>Memory Maps </title>
1024 <para>Physical and virtual mapping are mapped one to one on the EBSA-285 using
1025 a first level page table located at address 0x4000. No second level tables
1026 are used. <note><title>NOTE </title>
1027 <para>The virtual memory maps in this section use a C and B column to indicate
1028 whether or not the region is cached (C) or buffered (B).</para>
1029 </note><programlisting>Address Range C B Description
1030 ----------------------- - - ----------------------------------
1031 0x00000000 - 0x01ffffff Y Y SDRAM
1032 0x40000000 - 0x400fffff N N 21285 Registers
1033 0x41000000 - 0x413fffff Y N flash
1034 0x42000000 - 0x420fffff N N 21285 CSR Space
1035 0x50000000 - 0x50ffffff Y Y Cache Clean
1036 0x78000000 - 0x78ffffff N N Outbound Write Flush
1037 0x79000000 - 0x7c0fffff N N PCI IACK/Config/IO
1038 0x80000000 - 0xffffffff N Y PCI Memory </programlisting></para>
1039 </sect2>
1040 <sect2>
1041 <title>Resource Usage </title>
1042 <para>The flash based RedBoot image occupies flash addresses 0x41000000 -
1043 0x4103ffff. It also reserves the first 192K bytes of RAM for runtime uses.
1044 The RAM based RedBoot image occupies RAM addresses 0x30000 - 0x5ffff. RAM
1045 addresses from 0x60000 to the end of RAM are available for general use such
1046 as a temporary scratchpad for downloaded images before they are written to
1047 flash.</para>
1048 <para>Timer3 is used as a polled timer to provide timeout support for networking
1049 and XModem file transfers.</para>
1050 </sect2>
1051 <sect2>
1052 <title>Building eCos Test Cases to run with old RedBoots</title>
1053 <para>If using older versions of RedBoot, the default configuration for
1054 EBSA-285 will send diagnostic output to the serial line only, not over an ethernet
1055 connection. To allow eCos programs to use RedBoot to channel diagnostic output to
1056 GDB whether connected by net or serial, enable the configuration option <programlisting>
1057 CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
1058 "Do diagnostic IO via virtual vector table"</programlisting> located here
1059 in the common HAL configuration tree: <programlisting>"eCos HAL"
1060 "ROM monitor support"
1061 "Enable use of virtual vector calling interface"
1062 "Do diagnostic IO via virtual vector table"</programlisting>Other
1063 than that, no special configuration is required to use RedBoot. </para>
1064 <para>If you have been using built-in stubs to acquire support for thread-aware
1065 debugging, you can still do that, but you must only use the serial device
1066 for GDB connection and you must not enable the option mentioned above. However,
1067 it is no longer necessary to do that to get thread-awareness; RedBoot is thread
1068 aware.</para>
1069 </sect2><sect2>
1070 <title>Rebuilding RedBoot</title>
1071 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1072 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1073 &ldquo;ebsa285&rdquo;, &ldquo;arm&rdquo; and &ldquo;ebsa285&rdquo; respectively.
1074 Note that the configuration export files supplied in the <computeroutput>
1075 hal/arm/ebsa285/<replaceable>VERSION</replaceable>/misc</computeroutput>
1076 directory in the RedBoot source tree should be used.</para>
1077 </sect2>
1078 </sect1>
1079 <?Pub _newpage>
1080 <sect1 id="sa1100mm">
1081 <title>Intel SA1100 Multimedia Board </title>
1082 <sect2>
1083 <title>Overview</title>
1084 <para><indexterm><primary>Intel SA1100 Multimedia Board</primary><secondary>
1085 installing and testing</secondary></indexterm><indexterm><primary>installing
1086 and testing</primary><secondary>Intel SA1100 Multimedia Board</secondary>
1087 </indexterm>RedBoot supports both board serial ports. The default serial port
1088 settings are 38400,8,N,1. flash management is also supported. Two basic RedBoot
1089 configurations are supported: n <itemizedlist>
1090 <listitem><para>RedBoot running from the board's flash boot sector.</para>
1091 </listitem>
1092 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
1093 </para>
1094 </listitem>
1095 </itemizedlist></para>
1096 </sect2>
1097 <sect2>
1098 <title>Initial Installation Method </title>
1099 <para>A device programmer is used to program socketed flash parts.</para>
1100 </sect2>
1101 <sect2>
1102 <title>Special RedBoot Commands </title>
1103 <para>None.</para>
1104 </sect2>
1105 <sect2>
1106 <title>Memory Maps </title>
1107 <para>The first level page table is located at physical address 0xc0004000.
1108 No second level tables are used.<note><title>NOTE</title>
1109 <para>The virtual memory maps in this section use a C and B column to indicate
1110 whether or not the region is cached (C) or buffered (B).</para>
1111 </note><programlisting>Physical Address Range Description
1112 ----------------------- ----------------------------------
1113 0x00000000 - 0x000fffff Boot flash
1114 0x08000000 - 0x083fffff Application flash
1115 0x10000000 - 0x107fffff SA-1101 Board Registers
1116 0x18000000 - 0x180fffff Ct8020 DSP
1117 0x18400000 - 0x184fffff XBusReg
1118 0x18800000 - 0x188fffff SysRegA
1119 0x18c00000 - 0x18cfffff SysRegB
1120 0x19000000 - 0x193fffff Spare CPLD A
1121 0x19400000 - 0x197fffff Spare CPLD B
1122 0x20000000 - 0x3fffffff PCMCIA
1123 0x80000000 - 0xbfffffff SA1100 Internal Registers
1124 0xc0000000 - 0xc07fffff DRAM Bank 0
1125 0xe0000000 - 0xe7ffffff Cache Clean
1126 Virtual Address Range C B Description
1127
1128
1129 ----------------------- - - ----------------------------------
1130 0x00000000 - 0x007fffff Y Y DRAM Bank 0
1131 0x08000000 - 0x083fffff Y Y Application flash
1132 0x10000000 - 0x100fffff N N SA-1101 Registers
1133 0x18000000 - 0x180fffff N N Ct8020 DSP
1134 0x18400000 - 0x184fffff N N XBusReg
1135 0x18800000 - 0x188fffff N N SysRegA
1136 0x18c00000 - 0x18cfffff N N SysRegB
1137 0x19000000 - 0x193fffff N N Spare CPLD A
1138 0x19400000 - 0x197fffff N N Spare CPLD B
1139 0x20000000 - 0x3fffffff N N PCMCIA
1140 0x50000000 - 0x500fffff Y Y Boot flash
1141 0x80000000 - 0xbfffffff N N SA1100 Internal Registers
1142 0xc0000000 - 0xc07fffff N Y DRAM Bank 0
1143 0xe0000000 - 0xe7ffffff Y Y Cache Clean</programlisting></para>
1144 </sect2>
1145 <sect2>
1146 <title>Resource Usage </title>
1147 <para>The flash based RedBoot image occupies virtual addresses 0x50000000
1148 - 0x5000ffff. The RAM based RedBoot image occupies virtual addresses 0x10000
1149 - 0x2ffff. RAM addresses from 0x30000 to the end of RAM are available for
1150 general use such as a temporary scratchpad for downloaded images before they
1151 are written to flash.</para>
1152 <para> The SA11x0 OS timer is used as a polled timer to provide timeout support
1153 for XModem file transfers.</para>
1154 </sect2><sect2>
1155 <title>Rebuilding RedBoot</title>
1156 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1157 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1158 &ldquo;sa1100mm&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/sa1100mm&rdquo; respectively.
1159 Note that the configuration export files supplied in the <computeroutput>
1160 hal/arm/sa11x0/sa1100mm/<replaceable>VERSION</replaceable>/misc</computeroutput>
1161 directory in the RedBoot source tree should be used.</para>
1162 </sect2>
1163 </sect1>
1164 <?Pub _newpage>
1165 <sect1 id="assabet">
1166 <title>Intel SA1110 (Assabet) </title>
1167 <sect2>
1168 <title>Overview</title>
1169 <para><indexterm><primary>Intel SA1110 (Assabet)</primary><secondary>installing
1170 and testing</secondary></indexterm><indexterm><primary>installing and testing
1171 </primary><secondary>Intel SA1110 (Assabet)</secondary></indexterm>RedBoot
1172 supports the board serial port and the compact flash ethernet port. The default
1173 serial port settings are 38400,8,N,1. RedBoot also supports flash management
1174 on the Assabet. Two basic RedBoot configurations are supported: <itemizedlist>
1175 <listitem><para>RedBoot running from the board's flash boot sector.</para>
1176 </listitem>
1177 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
1178 </para>
1179 </listitem>
1180 </itemizedlist></para>
1181 </sect2>
1182 <sect2>
1183 <title>Initial Installation Method </title>
1184 <para>A Windows or Linux utility is used to program flash over parallel port
1185 driven JTAG interface. See board documentation for details on in situ flash
1186 programming. </para>
1187 <para>The flash parts are also socketed and may be programmed in a suitable
1188 device programmer.</para>
1189 </sect2>
1190 <sect2>
1191 <title>Flash management</title>
1192 <sect3>
1193 <title>Updating the primary RedBoot image</title>
1194 <para>To update the primary RedBoot images, follow the procedures detailed
1195 in <xref linkend="update-primary-image">, but the actual numbers used with
1196 the flags in the sample commands should be: <programlisting>-f 0x50000000
1197 -b 0x60000
1198 -l 0x40000</programlisting></para>
1199 </sect3>
1200 <sect3>
1201 <title>Updating the secondary RedBoot image</title>
1202 <para>To update the secondary RedBoot images, follow the procedures detailed
1203 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1204 with the flags in the sample commands should be: <programlisting>-f 0x50040000
1205 -b 0x20000
1206 -r 0x20000
1207 -l 0x40000</programlisting></para>
1208 </sect3></sect2>
1209 <sect2>
1210 <title>Special RedBoot Commands </title>
1211 <para>None.</para>
1212 </sect2>
1213 <sect2>
1214 <title>Memory Maps </title>
1215 <para>The first level page table is located at physical address 0xc0004000.
1216 No second level tables are used.<note><title>NOTE</title>
1217 <para>The virtual memory maps in this section use a C and B column to indicate
1218 whether or not the region is cached (C) or buffered (B).</para>
1219 </note><programlisting>Physical Address Range Description
1220 ----------------------- ----------------------------------
1221 0x00000000 - 0x07ffffff flash
1222 0x08000000 - 0x0fffffff SA-1111 Board flash
1223 0x10000000 - 0x17ffffff Board Registers
1224 0x18000000 - 0x1fffffff Ethernet
1225 0x20000000 - 0x2fffffff SA-1111 Board PCMCIA
1226 0x30000000 - 0x3fffffff Compact Flash
1227 0x40000000 - 0x47ffffff SA-1111 Board
1228 0x48000000 - 0x4bffffff GFX
1229 0x80000000 - 0xbfffffff SA-1110 Internal Registers
1230 0xc0000000 - 0xc7ffffff DRAM Bank 0
1231 0xc8000000 - 0xcfffffff DRAM Bank 1
1232 0xd0000000 - 0xd7ffffff DRAM Bank 2
1233 0xd8000000 - 0xdfffffff DRAM Bank 3
1234 0xe0000000 - 0xe7ffffff Cache Clean
1235
1236
1237 Virtual Address Range C B Description
1238 ----------------------- - - ----------------------------------
1239 0x00000000 - 0x01ffffff Y Y DRAM Bank 0
1240 0x08000000 - 0x0fffffff Y Y SA-1111 Board flash
1241 0x10000000 - 0x17ffffff N N Board Registers
1242 0x18000000 - 0x1fffffff N N Ethernet
1243 0x20000000 - 0x2fffffff N N SA-1111 Board PCMCIA
1244 0x30000000 - 0x3fffffff N N Compact Flash
1245 0x40000000 - 0x47ffffff N N SA-1111 Board
1246 0x48000000 - 0x4bffffff N N GFX
1247 0x50000000 - 0x57ffffff Y Y flash
1248 0x80000000 - 0xbfffffff N N SA-1110 Internal Registers
1249 0xc0000000 - 0xc1ffffff N Y DRAM Bank 0
1250 0xe0000000 - 0xe7ffffff Y Y Cache Clean
1251 The flash based RedBoot image occupies virtual addresses 0x50000000 - 0x5003ffff.
1252 </programlisting></para>
1253 </sect2>
1254 <sect2>
1255 <title>Resource Usage </title>
1256 <para>The RAM based RedBoot image occupies RAM addresses 0x20000 - 0x5ffff.
1257 RAM addresses from 0x60000 to the end of RAM are available for general use
1258 such as a temporary scratchpad for downloaded images before they are written
1259 to flash. </para>
1260 <para>The SA11x0 OS timer is used as a polled timer to provide timeout support
1261 for network and XModem file transfers.</para>
1262 </sect2><sect2>
1263 <title>Rebuilding RedBoot</title>
1264 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1265 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1266 &ldquo;assabet&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/assabet&rdquo; respectively.
1267 Note that the configuration export files supplied in the <computeroutput>
1268 hal/arm/sa11x0/assabet/<replaceable>VERSION</replaceable>/misc</computeroutput>
1269 directory in the RedBoot source tree should be used.</para>
1270 </sect2>
1271 </sect1>
1272 <?Pub _newpage>
1273 <sect1 id="atlas">
1274 <title>MIPS Atlas Board with CoreLV 4Kc and CoreLV 5Kc </title>
1275 <sect2>
1276 <title>Overview</title>
1277 <para><indexterm><primary>MIPS Atlas Board with CoreLV 4KC and CoreLV 5KC
1278 </primary><secondary>installing and testing</secondary></indexterm><indexterm>
1279 <primary>installing and testing</primary><secondary>MIPS Atlas Board with
1280 CoreLV 4KC and CoreLV 5KC</secondary></indexterm>RedBoot supports the DgbSer
1281 serial port and the built in ethernet port for communication and downloads.
1282 The default serial port settings are 115200,8,N,1. RedBoot runs from and supports
1283 flash management for the system flash region. These configurations are supported: <itemizedlist>
1284 <listitem><para>RedBoot running from the system flash boot sector.</para>
1285 </listitem>
1286 <listitem><para>RedBoot running from RAM with RedBoot in the system flash
1287 boot sector.</para>
1288 </listitem>
1289 </itemizedlist></para>
1290 </sect2>
1291 <sect2>
1292 <title>Initial Installation</title>
1293 <para>RedBoot is installed using the code download facility built into the
1294 Atlas board. See the Atlas User manual for details, and also the Atlas download
1295 format in <xref linkend="Atlas-download-format">.</para>
1296 <sect3>
1297 <title>Quick download instructions</title>
1298 <para>Here are quick start instructions for downloading the prebuilt RedBoot
1299 image. </para>
1300 <orderedlist>
1301 <listitem><para>Locate the prebuilt files in the bin directory: <computeroutput>
1302 deleteall.dl</computeroutput> and <computeroutput>redboot.dl</computeroutput>.
1303 </para>
1304 </listitem>
1305 <listitem><para>Make sure switch S1-1 is OFF and switch S5-1 is ON. Reset
1306 the board and verify that the LED display reads <computeroutput>Flash DL</computeroutput>.
1307 </para>
1308 </listitem>
1309 <listitem><para>Make sure your parallel port is connected to the 1284 port
1310 Of the Atlas board. </para>
1311 </listitem>
1312 <listitem><para>Send the deleteall.dl file to the parallel port to erase previous
1313 images: <programlisting>% cat deleteall.dl >/dev/lp0</programlisting> When
1314 this is complete, the LED display should read &ldquo;Deleted.&rdquo; </para>
1315 </listitem>
1316 <listitem><para>Send the RedBoot image to the board: <programlisting>% cat redboot.dl >/dev/lp0
1317 </programlisting>When this is complete, the LED display should show the last
1318 address programmed. This will be something like: <computeroutput>1fc17000
1319 </computeroutput>. </para>
1320 </listitem>
1321 <listitem><para>Change switch S5-1 to OFF and reset the board. The LED display
1322 should read &ldquo;RedBoot&rdquo;. </para>
1323 </listitem>
1324 <listitem><para>Run the RedBoot <command>fis init</command>
1325 and <command>fconfig</command> commands to initialize the flash.
1326 See <xref linkend="Atlas-Additional-fconfig-options">, <xref linkend="Flash-Image-System">
1327 and <xref linkend="Persistent-State-Flash"> for details. </para>
1328 </listitem>
1329 </orderedlist>
1330 </sect3>
1331 <sect3 id="Atlas-download-format">
1332 <title>Atlas download format</title>
1333 <para>In order to download RedBoot to the Atlas board, it must be converted
1334 to the Atlas download format. There are different ways of doing this depending
1335 on which version of the developer's kit is shipped with the board. </para>
1336 <para>The <citetitle>Atlas Developer's Kit</citetitle> CD contains an <computeroutput>
1337 srec2flash</computeroutput> utility. The source code for this utility is part
1338 of the <computeroutput>yamon/yamon-src-01.01.tar.gz</computeroutput> tarball
1339 on the Dev Kit CD. The path in the expanded tarball is <computeroutput>yamon/bin/tools
1340 </computeroutput>. To use <computeroutput>srec2flash</computeroutput> to
1341 convert the S-record file: <programlisting>% srec2flash -EL -S29 redboot.srec >redboot.dl
1342 </programlisting> The <citetitle>Atlas/Malta Developer's Kit</citetitle> CD
1343 contains an <computeroutput>srecconv.pl</computeroutput> utility which requires
1344 Perl. This utilty is part of the <computeroutput>yamon/yamon-src-02.00.tar.gz
1345 </computeroutput> tarball on the Dev Kit CD. The path in the expanded tarball
1346 is <computeroutput>yamon/bin/tools</computeroutput>. To use <computeroutput>
1347 srecconv</computeroutput> to convert the S-record file: <programlisting>
1348 % cp redboot_ROM.srec redboot_ROM.rec
1349 % srecconv.pl -ES L -A 29 redboot_ROM </programlisting> The resulting file is
1350 named redboot_ROM.fl.</para>
1351 </sect3></sect2>
1352 <sect2>
1353 <title>Flash management</title>
1354 <sect3 id="Atlas-Additional-fconfig-options">
1355 <title>Additional config options</title>
1356 <para>The ethernet MAC address is stored in flash manually using the <command>
1357 fconfig</command> command. You can use the YAMON <computeroutput>setenv
1358 ethaddr</computeroutput> command to print out the board ethernet address.
1359 Typically, it is: <programlisting>00:0d:a0:00:xx:xx</programlisting> where
1360 xx.xx is the hex representation of the board serial number.</para>
1361 </sect3>
1362 <sect3>
1363 <title>Updating the secondary RedBoot image</title>
1364 <para>To update the secondary RedBoot images, follow the procedures detailed
1365 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1366 with the flags in the sample commands should be: <programlisting>-f 0x9dc40000
1367 -b 0x80020000
1368 -r 0x80020000
1369 -l 0x40000</programlisting></para>
1370 </sect3>
1371 <sect3>
1372 <title>Updating the primary RedBoot image</title>
1373 <para>To update the primary RedBoot images, follow the procedures detailed
1374 in <xref linkend="update-primary-image">, but the actual numbers used with
1375 the flags in the sample commands should be: <programlisting>-f 0x9dc00000
1376 -b 0x80080000
1377 -l 0x40000</programlisting></para>
1378 </sect3></sect2>
1379
1380 <sect2>
1381 <title>Additional commands</title>
1382 <para>The <command>exec</command> command which allows the
1383 loading and execution of Linux kernels, is supported for this architecture
1384 (see <xref linkend="executing-programs">). The
1385 <command>exec</command> parameters used for MIPS boards are:</para>
1386 <variablelist><varlistentry>
1387 <term>-b <replaceable>&lt;addr></replaceable></term>
1388 <listitem><para>Location to store command line and environment passed to kernel</para></listitem></varlistentry>
1389 <varlistentry><term>
1390 -w <replaceable>&lt;time></replaceable></term>
1391 <listitem><para>Wait time in seconds before starting kernel</para></listitem></varlistentry>
1392 <varlistentry><term>
1393 -c <replaceable>"params"</replaceable></term>
1394 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
1395 <varlistentry><term><replaceable>&lt;addr></replaceable></term>
1396 <listitem><para>Kernel entry point, defaulting to the entry point of the last image
1397 loaded</para></listitem></varlistentry>
1398 </variablelist>
1399 <para>Linux kernels on MIPS platforms expect the entry point to be called with arguments
1400 in the registers equivalent to a C call with prototype:
1401 <programlisting>void Linux(int argc, char **argv, char **envp);</programlisting></para>
1402 <para>RedBoot will place the appropriate data at the offset specified by the
1403 <parameter>-b</parameter> parameter, or by default at address 0x80080000, and will set the
1404 arguments accordingly when calling into the kernel.</para>
1405 <para>
1406 The default entry point, if no image with explicit entry point has been loaded and
1407 none is specified, is 0x80000750.
1408 </para>
1409 </sect2>
1410
1411 <sect2>
1412 <title>Interrupts</title>
1413 <para>RedBoot uses an interrupt vector table which is located at address 0x80000400.
1414 Entries in this table are pointers to functions with this protoype: <programlisting>
1415 int irq_handler( unsigned vector, unsigned data )</programlisting>On an atlas
1416 board, the vector argument is one of 25 interrupts defined in <computeroutput>
1417 hal/mips/atlas/<replaceable>VERSION</replaceable>/include/plf_intr.h</computeroutput>: <programlisting>
1418 #define CYGNUM_HAL_INTERRUPT_SER 0
1419 #define CYGNUM_HAL_INTERRUPT_TIM0 1
1420 #define CYGNUM_HAL_INTERRUPT_2 2
1421 #define CYGNUM_HAL_INTERRUPT_3 3
1422 #define CYGNUM_HAL_INTERRUPT_RTC 4
1423 #define CYGNUM_HAL_INTERRUPT_COREHI 5
1424 #define CYGNUM_HAL_INTERRUPT_CORELO 6
1425 #define CYGNUM_HAL_INTERRUPT_7 7
1426 #define CYGNUM_HAL_INTERRUPT_PCIA 8
1427 #define CYGNUM_HAL_INTERRUPT_PCIB 9
1428 #define CYGNUM_HAL_INTERRUPT_PCIC 10
1429 #define CYGNUM_HAL_INTERRUPT_PCID 11
1430 #define CYGNUM_HAL_INTERRUPT_ENUM 12
1431 #define CYGNUM_HAL_INTERRUPT_DEG 13
1432 #define CYGNUM_HAL_INTERRUPT_ATXFAIL 14
1433 #define CYGNUM_HAL_INTERRUPT_INTA 15
1434 #define CYGNUM_HAL_INTERRUPT_INTB 16
1435 #define CYGNUM_HAL_INTERRUPT_INTC 17
1436 #define CYGNUM_HAL_INTERRUPT_INTD 18
1437 #define CYGNUM_HAL_INTERRUPT_SERR 19
1438 #define CYGNUM_HAL_INTERRUPT_HW1 20
1439 #define CYGNUM_HAL_INTERRUPT_HW2 21
1440 #define CYGNUM_HAL_INTERRUPT_HW3 22
1441 #define CYGNUM_HAL_INTERRUPT_HW4 23
1442 #define CYGNUM_HAL_INTERRUPT_HW5 24</programlisting>The data
1443 passed to the ISR is pulled from a data table (<computeroutput>hal_interrupt_data
1444 </computeroutput>) which immediately follows the interrupt vector table. With
1445 25 interrupts, the data table starts at address 0x80000464 on atlas.</para>
1446 <para>An application may create a normal C function with the above prototype
1447 to be an ISR. Just poke its address into the table at the correct index and
1448 enable the interrupt at its source. The return value of the ISR is ignored
1449 by RedBoot. </para>
1450 </sect2>
1451 <sect2>
1452 <title>Memory Maps </title>
1453 <para>Memory Maps RedBoot sets up the following memory map on the Atlas board.
1454 <programlisting>Physical Address Range Description
1455 ----------------------- -------------
1456 0x00000000 - 0x07ffffff SDRAM
1457 0x08000000 - 0x17ffffff PCI Memory Space
1458 0x18000000 - 0x1bdfffff PCI I/O Space
1459 0x1be00000 - 0x1bffffff System Controller
1460 0x1c000000 - 0x1dffffff System flash
1461 0x1e000000 - 0x1e3fffff Monitor flash
1462 0x1f000000 - 0x1fbfffff FPGA</programlisting></para>
1463 </sect2>
1464 <sect2>
1465 <title>Resource Usage </title>
1466 <para>The flash based RedBoot image occupies flash addresses 0x1fc00000 -
1467 0x1fc1ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
1468 runtime uses. RAM based RedBoot configurations are designed to run from RAM
1469 at physical addresses 0x00020000 - 0x0003ffff. RAM physical addresses from
1470 0x00040000 to the end of RAM are available for general use, such as a temporary
1471 scratchpad for downloaded images, before they are written to flash.</para>
1472 </sect2><sect2>
1473 <title>Rebuilding RedBoot</title>
1474 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1475 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1476 &ldquo;atlas_mips32_4kc&rdquo; or &ldquo;atlas_mips64_5kc&rdquo;, &ldquo;mips&rdquo;
1477 and &ldquo;atlas&rdquo; respectively.
1478 Note that the configuration export files supplied in the <computeroutput>
1479 hal/mips/atlas/<replaceable>VERSION</replaceable>/misc</computeroutput>
1480 directory in the RedBoot source tree should be used.</para>
1481 </sect2>
1482 </sect1>
1483 <?Pub _newpage>
1484 <sect1 id="malta">
1485 <title>MIPS Malta Board with CoreLV 4Kc and CoreLV 5Kc </title>
1486 <sect2>
1487 <title>Overview</title>
1488 <para><indexterm><primary>MIPS Malta Board with CoreLV 4KC and CoreLV 5KC
1489 </primary><secondary>installing and testing</secondary></indexterm><indexterm>
1490 <primary>installing and testing</primary><secondary>MIPS Malta Board with
1491 CoreLV 4KC and CoreLV 5KC</secondary></indexterm>RedBoot supports both front
1492 facing serial ports and the built in ethernet port for communication and downloads.
1493 The default serial port settings are 38400,8,N,1. RedBoot runs from and supports
1494 flash management for the system flash region. These configurations are supported: <itemizedlist>
1495 <listitem><para>RedBoot running from the system flash boot sector.</para>
1496 </listitem>
1497 <listitem><para>RedBoot running from RAM with RedBoot in the system flash
1498 boot sector.</para>
1499 </listitem>
1500 </itemizedlist></para>
1501 </sect2>
1502 <sect2>
1503 <title>Initial Installation</title>
1504 <para>RedBoot is installed using the code download facility built into the
1505 Malta board. See the Malta User manual for details, and also the Malta download
1506 format in <xref linkend="Malta-download-format">.</para>
1507 <sect3>
1508 <title>Quick download instructions</title>
1509 <para>Here are quick start instructions for downloading the prebuilt RedBoot
1510 image. </para>
1511 <orderedlist>
1512 <listitem><para>Locate the prebuilt files in the bin directory: <filename>
1513 deleteall.fl</filename> and <filename>redboot_ROM.fl</filename>. </para>
1514 </listitem>
1515 <listitem><para>Make sure switch S5-1 is ON. Reset the board and verify that
1516 the LED display reads <computeroutput>Flash DL</computeroutput>. </para>
1517 </listitem>
1518 <listitem><para>Make sure your parallel port is connected to the 1284 port
1519 Of the Atlas board. </para>
1520 </listitem>
1521 <listitem><para>Send the deleteall.fl file to the parallel port to erase previous
1522 images: <programlisting>% cat deleteall.fl >/dev/lp0</programlisting> When
1523 this is complete, the LED display should read <computeroutput>Deleted.</computeroutput></para>
1524 </listitem>
1525 <listitem><para>Send the RedBoot image to the board: <programlisting>% cat redboot_ROM.fl >/dev/lp0
1526 </programlisting> When this is complete, the LED display should show the last
1527 address programmed. This will be something like: <computeroutput>1fc17000
1528 </computeroutput>. </para>
1529 </listitem>
1530 <listitem><para>Change switch S5-1 to OFF and reset the board. The LED display
1531 should read &ldquo;RedBoot&rdquo;. </para>
1532 </listitem>
1533 <listitem><para>Run the RedBoot <userinput>fis init</userinput> and <userinput>
1534 fconfig</userinput> commands to initialize the flash. See <xref linkend="Flash-Image-System">
1535 and <xref linkend="Persistent-State-Flash"> for details. </para>
1536 </listitem>
1537 </orderedlist>
1538 </sect3>
1539 <sect3 id="malta-download-format">
1540 <title>Malta download format</title>
1541 <para>In order to download RedBoot to the Malta board, it must be converted
1542 to the Malta download format.</para>
1543 <para>The <citetitle>Atlas/Malta Developer's Kit</citetitle> CD contains an <computeroutput>
1544 srecconv.pl</computeroutput> utility which requires Perl. This utility is part
1545 of the <computeroutput>yamon/yamon-src-02.00.tar.gz</computeroutput> tarball
1546 on the Dev Kit CD. The path in the expanded tarball is <computeroutput>yamon/bin/tools
1547 </computeroutput>. To use <computeroutput>srecconv</computeroutput> to convert
1548 the S-record file: <programlisting>% cp redboot_ROM.srec redboot_ROM.rec
1549 % srecconv.pl -ES L -A 29 redboot_ROM </programlisting> The resulting file
1550 is named redboot_ROM.fl.</para>
1551 </sect3></sect2>
1552 <sect2>
1553 <title>Flash management</title>
1554 <sect3>
1555 <title>Updating the secondary RedBoot image</title>
1556 <para>To update the secondary RedBoot images, follow the procedures detailed
1557 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1558 with the flags in the sample commands should be: <programlisting>-f 0xBE020000
1559 -b 0x80020000
1560 -r 0x80020000
1561 -l 0x20000</programlisting></para>
1562 </sect3>
1563 <sect3>
1564 <title>Updating the primary RedBoot image</title>
1565 <para>To update the primary RedBoot images, follow the procedures detailed
1566 in <xref linkend="update-primary-image">, but the actual numbers used with
1567 the flags in the sample commands should be: <programlisting>-f 0xBE000000
1568 -b 0x80080000
1569 -l 0x20000</programlisting></para>
1570 </sect3></sect2>
1571
1572 <sect2>
1573 <title>Additional commands</title>
1574 <para>The <command>exec</command> command which allows the
1575 loading and execution of Linux kernels, is supported for this architecture
1576 (see <xref linkend="executing-programs">). The
1577 <command>exec</command> parameters used for MIPS boards are:</para>
1578 <variablelist><varlistentry>
1579 <term>-b <replaceable>&lt;addr></replaceable></term>
1580 <listitem><para>Location to store command line and environment passed to kernel</para></listitem></varlistentry>
1581 <varlistentry><term>
1582 -w <replaceable>&lt;time></replaceable></term>
1583 <listitem><para>Wait time in seconds before starting kernel</para></listitem></varlistentry>
1584 <varlistentry><term>
1585 -c <replaceable>"params"</replaceable></term>
1586 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
1587 <varlistentry><term><replaceable>&lt;addr></replaceable></term>
1588 <listitem><para>Kernel entry point, defaulting to the entry point of the last image
1589 loaded</para></listitem></varlistentry>
1590 </variablelist>
1591 <para>Linux kernels on MIPS platforms expect the entry point to be called with arguments
1592 in the registers equivalent to a C call with prototype:
1593 <programlisting>void Linux(int argc, char **argv, char **envp);</programlisting></para>
1594 <para>RedBoot will place the appropriate data at the offset specified by the
1595 <parameter>-b</parameter> parameter, or by default at address 0x80080000, and will set the
1596 arguments accordingly when calling into the kernel.</para>
1597 <para>
1598 The default entry point, if no image with explicit entry point has been loaded and
1599 none is specified, is 0x80000750.
1600 </para>
1601 </sect2>
1602
1603 <sect2>
1604 <title>Interrupts</title>
1605 <para>RedBoot uses an interrupt vector table which is located at address 0x80000200.
1606 Entries in this table are pointers to functions with this protoype: <programlisting>
1607 int irq_handler( unsigned vector, unsigned data )</programlisting>On the malta
1608 board, the vector argument is one of 22 interrupts defined in <computeroutput>
1609 hal/mips/malta/<replaceable>VERSION</replaceable>/include/plf_intr.h</computeroutput>: <programlisting>
1610
1611 #define CYGNUM_HAL_INTERRUPT_SOUTH_BRIDGE_INTR 0
1612 #define CYGNUM_HAL_INTERRUPT_SOUTH_BRIDGE_SMI 1
1613 #define CYGNUM_HAL_INTERRUPT_CBUS_UART 2
1614 #define CYGNUM_HAL_INTERRUPT_COREHI 3
1615 #define CYGNUM_HAL_INTERRUPT_CORELO 4
1616 #define CYGNUM_HAL_INTERRUPT_COMPARE 5
1617 #define CYGNUM_HAL_INTERRUPT_TIMER 6
1618 #define CYGNUM_HAL_INTERRUPT_KEYBOARD 7
1619 #define CYGNUM_HAL_INTERRUPT_CASCADE 8
1620 #define CYGNUM_HAL_INTERRUPT_TTY1 9
1621 #define CYGNUM_HAL_INTERRUPT_TTY0 10
1622 #define CYGNUM_HAL_INTERRUPT_11 11
1623 #define CYGNUM_HAL_INTERRUPT_FLOPPY 12
1624 #define CYGNUM_HAL_INTERRUPT_PARALLEL 13
1625 #define CYGNUM_HAL_INTERRUPT_REAL_TIME_CLOCK 14
1626 #define CYGNUM_HAL_INTERRUPT_I2C 15
1627 #define CYGNUM_HAL_INTERRUPT_PCI_AB 16
1628 #define CYGNUM_HAL_INTERRUPT_PCI_CD 17
1629 #define CYGNUM_HAL_INTERRUPT_MOUSE 18
1630 #define CYGNUM_HAL_INTERRUPT_19 19
1631 #define CYGNUM_HAL_INTERRUPT_IDE_PRIMARY 20
1632 #define CYGNUM_HAL_INTERRUPT_IDE_SECONDARY 21</programlisting>The data
1633 passed to the ISR is pulled from a data table (<computeroutput>hal_interrupt_data
1634 </computeroutput>) which immediately follows the interrupt vector table. With
1635 22 interrupts, the data table starts at address 0x80000258.</para>
1636 <para>An application may create a normal C function with the above prototype
1637 to be an ISR. Just poke its address into the table at the correct index and
1638 enable the interrupt at its source. The return value of the ISR is ignored
1639 by RedBoot. </para>
1640 </sect2>
1641 <sect2>
1642 <title>Memory Maps </title>
1643 <para>Memory Maps RedBoot sets up the following memory map on the Malta board.<note>
1644 <title>NOTE</title>
1645 <para>The virtual memory maps in this section use a C and B column to indicate
1646 whether or not the region is cached (C) or buffered (B).</para>
1647 </note><programlisting>Physical Address Range C B Description
1648 ----------------------- - - -----------
1649 0x80000000 - 0x81ffffff Y Y SDRAM
1650 0x9e000000 - 0x9e3fffff Y N System flash (cached)
1651 0x9fc00000 - 0x9fffffff Y N System flash (mirrored)
1652 0xa8000000 - 0xb7ffffff N N PCI Memory Space
1653 0xb4000000 - 0xb40fffff N N Galileo System Controller
1654 0xb8000000 - 0xb80fffff N N Southbridge / ISA
1655 0xb8100000 - 0xbbdfffff N N PCI I/O Space
1656 0xbe000000 - 0xbe3fffff N N System flash (noncached)
1657 0xbf000000 - 0xbfffffff N N Board logic FPGA</programlisting></para>
1658 </sect2>
1659 <sect2>
1660 <title>Resource Usage </title>
1661 <para>The flash based RedBoot image occupies flash addresses 0xbe000000 -
1662 0xbe01ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
1663 runtime uses. RAM based RedBoot configurations are designed to run from RAM
1664 at physical addresses 0x00020000 - 0x0004ffff. RAM physical addresses from
1665 0x00050000 to the end of RAM are available for general use, such as a temporary
1666 scratchpad for downloaded images, before they are written to flash.</para>
1667 </sect2><sect2>
1668 <title>Rebuilding RedBoot</title>
1669 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1670 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1671 &ldquo;malta_mips32_4kc&rdquo;, &ldquo;mips&rdquo; and &ldquo;malta&rdquo; respectively.
1672 Note that the configuration export files supplied in the <computeroutput>
1673 hal/mips/malta/<replaceable>VERSION</replaceable>/misc</computeroutput>
1674 directory in the RedBoot source tree should be used.</para>
1675 </sect2></sect1>
1676 <?Pub _newpage>
1677 <sect1 id="ocelot">
1678 <title>PMC-Sierra MIPS RM7000 Ocelot</title>
1679 <sect2>
1680 <title>Overview</title>
1681 <para><indexterm><primary>PMC-Sierra MIPS RM7000 Ocelot</primary><secondary>installing
1682 and testing</secondary></indexterm><indexterm><primary>installing and testing
1683 </primary><secondary>PMC-Sierra MIPS RM7000 Ocelot</secondary></indexterm>RedBoot
1684 uses the front facing serial port. The default serial port settings are 38400,8,N,1.
1685 RedBoot also supports ethernet. Management of onboard flash is also supported.
1686 Two basic RedBoot configurations are supported:<itemizedlist>
1687 <listitem><para>RedBoot running from the board's flash boot sector.</para>
1688 </listitem>
1689 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
1690 </para>
1691 </listitem>
1692 </itemizedlist></para>
1693 </sect2>
1694 <sect2>
1695 <title>Initial Installation Method </title>
1696 <para>Device programmer is used to program socketed flash parts.</para>
1697 </sect2>
1698 <sect2>
1699 <title>Flash Management</title>
1700 <sect3>
1701 <title>Updating the primary RedBoot image</title>
1702 <para>To update the primary RedBoot images, follow the procedures detailed
1703 in <xref linkend="update-primary-image">, loading the primary image into
1704 RAM at 0x80100000. The actual numbers used with
1705 the flags in the sample commands are then:
1706 <programlisting>
1707 -f 0xbfc00000
1708 -b 0x80100000
1709 -l 0x20000</programlisting></para>
1710 </sect3>
1711 <sect3>
1712 <title>Updating the secondary RedBoot image</title>
1713 <para>To update the secondary RedBoot images, follow the procedures detailed
1714 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1715 with the flags in the sample commands should be:
1716 <programlisting>
1717 -f 0xbfc20000
1718 -b 0x80020000
1719 -r 0x80020000
1720 -l 0x20000
1721 </programlisting></para>
1722 </sect3></sect2>
1723
1724 <sect2>
1725 <title>Additional commands</title>
1726 <para>The <command>exec</command> command which allows the
1727 loading and execution of Linux kernels, is supported for this architecture
1728 (see <xref linkend="executing-programs">). The
1729 <command>exec</command> parameters used for MIPS boards are:</para>
1730 <variablelist><varlistentry>
1731 <term>-b <replaceable>&lt;addr></replaceable></term>
1732 <listitem><para>Location to store command line and environment passed to kernel</para></listitem></varlistentry>
1733 <varlistentry><term>
1734 -w <replaceable>&lt;time></replaceable></term>
1735 <listitem><para>Wait time in seconds before starting kernel</para></listitem></varlistentry>
1736 <varlistentry><term>
1737 -c <replaceable>"params"</replaceable></term>
1738 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
1739 <varlistentry><term><replaceable>&lt;addr></replaceable></term>
1740 <listitem><para>Kernel entry point, defaulting to the entry point of the last image
1741 loaded</para></listitem></varlistentry>
1742 </variablelist>
1743 <para>Linux kernels on MIPS platforms expect the entry point to be called with arguments
1744 in the registers equivalent to a C call with prototype:
1745 <programlisting>void Linux(int argc, char **argv, char **envp);</programlisting></para>
1746 <para>RedBoot will place the appropriate data at the offset specified by the
1747 <parameter>-b</parameter> parameter, or by default at address 0x80080000, and will set the
1748 arguments accordingly when calling into the kernel.</para>
1749 <para>
1750 The default entry point, if no image with explicit entry point has been loaded and
1751 none is specified, is 0x80000750.
1752 </para>
1753 </sect2>
1754
1755 <sect2>
1756 <title>Memory Maps </title>
1757 <para>RedBoot sets up the following memory map on the Ocelot board. </para>
1758 <para>Note that these addresses are accessed through kseg0/1 and thus translate
1759 to the actual address range 0x80000000-0xbfffffff, depending on the need for
1760 caching/non-caching access to the bus.<note><title>NOTE</title>
1761 <para>The virtual memory maps in this section use a C and B column to indicate
1762 whether or not the region is cached (C) or buffered (B).</para>
1763 </note><programlisting>Physical Address Range Description
1764 ----------------------- -----------
1765 0x00000000 - 0x0fffffff SDRAM
1766 0x10000000 - 0x10ffffff PCI I/O space
1767 0x12000000 - 0x13ffffff PCI Memory space
1768 0x14000000 - 0x1400ffff Galileo system controller
1769 0x1c000000 - 0x1c0000ff PLD (board logic)
1770 0x1fc00000 - 0x1fc7ffff flash</programlisting></para>
1771 </sect2>
1772 <sect2>
1773 <title>Resource Usage </title>
1774 <para>The flash based RedBoot image occupies flash addresses 0x1fc00000 -
1775 0x1fc1ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
1776 runtime uses. </para>
1777 <para>RAM based RedBoot configurations are designed to run from RAM at physical
1778 addresses 0x00020000 - 0x0003ffff. RAM physical addresses from 0x00040000
1779 to the end of RAM are available for general use, such as a temporary scratchpad
1780 for downloaded images, before they are written to flash.</para>
1781 </sect2><sect2>
1782 <title>Rebuilding RedBoot</title>
1783 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1784 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1785 &ldquo;ocelot&rdquo;, &ldquo;mips&rdquo; and &ldquo;rm7000/ocelot&rdquo; respectively.
1786 Note that the configuration export files supplied in the <computeroutput>
1787 hal/mips/rm7000/ocelot/<replaceable>VERSION</replaceable>/misc</computeroutput>
1788 directory in the RedBoot source tree should be used.</para>
1789 </sect2></sect1>
1790 <?Pub _newpage>
1791 <sect1 id="mbx">
1792 <title>Motorola PowerPC MBX</title>
1793 <sect2>
1794 <title>Overview</title>
1795 <para><indexterm><primary>Motorola PowerPC MBX</primary><secondary>installing
1796 and testing</secondary></indexterm><indexterm><primary>installing and testing
1797 </primary><secondary>Motorola PowerPC MBX</secondary></indexterm>RedBoot uses
1798 the SMC1/COM1 serial port. The default serial port settings are 38400,8,N,1.
1799 Ethernet is also supported using the 10-base T connector. </para>
1800 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
1801 are supported: <itemizedlist>
1802 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
1803 </para>
1804 </listitem>
1805 <listitem><para>RedBoot running from the board's flash boot sector. </para>
1806 </listitem>
1807 </itemizedlist></para>
1808 </sect2>
1809 <sect2>
1810 <title>Initial Installation Method </title>
1811 <para>Device programmer is used to program the XU1 socketed flash part (AM29F040B)
1812 with the ROM version of RedBoot. - Use the on-board EPPC-Bug monitor to update
1813 RedBoot. </para>
1814 <para>This assumes that you have EPPC-Bug in the on-board flash. This can
1815 be determined by setting up the board according to the following instructions
1816 and powering up the board. </para>
1817 <para>The EPPC-Bug prompt should appear on the SMC1 connector at 9600 baud,
1818 8N1. </para>
1819 <orderedlist>
1820 <listitem><para>Set jumper 3 to 2-3 [allow XU1 flash to be programmed] </para>
1821 </listitem>
1822 <listitem><para>Set jumper 4 to 2-3 [boot EPPC-Bug] </para>
1823 </listitem>
1824 </orderedlist>
1825 <para>If it is available, program the flash by following these steps: </para>
1826 <orderedlist>
1827 <listitem><para>Prepare EPPC-Bug for download: <programlisting>EPPC-Bug>lo 0
1828 </programlisting>At this point the monitor is ready for input. It will not
1829 return the prompt until the file has been downloaded. </para>
1830 </listitem>
1831 <listitem><para>Use the terminal emulator's ASCII download feature (or a simple
1832 clipboard copy/paste operation) to download the redboot.ppcbug file.</para>
1833 <para>Note that on Linux, Minicom's ASCII download feature seems to be broken.
1834 A workaround is to load the file into emacs (or another editor) and copy the
1835 full contents to the clipboard. Then press the mouse paste-button (usually
1836 the middle one) over the Minicom window. </para>
1837 </listitem>
1838 <listitem><para>Program the flash with the downloaded data: <programlisting>
1839 EPPC-Bug>pflash 40000 60000 fc000000</programlisting></para>
1840 </listitem>
1841 <listitem><para>Switch off the power, and change jumper 4 to 1-2. Turn on
1842 the power again. The board should now boot using the newly programmed RedBoot.
1843 </para>
1844 </listitem>
1845 </orderedlist>
1846 <para>To install RedBoot on a target that already has eCos GDB stubs, download
1847 the RAM version of RedBoot and run it. Initialize the flash image directory: <programlisting>
1848 RedBoot> fi init</programlisting>Then download the ROM version of RedBoot
1849 and program it into flash:
1850 <programlisting>
1851 RedBoot> <userinput>load redboot_ROM.srec -b 0x80100000</userinput>
1852 RedBoot> <userinput>fi cr RedBoot -f 0xFE000000 -b 0x00040000 -l 0x20000</userinput>
1853 </programlisting></para>
1854 </sect2>
1855 <sect2>
1856 <title>Flash management</title>
1857 <sect3>
1858 <title>Updating the primary RedBoot image</title>
1859 <para>To update the primary RedBoot images, follow the procedures detailed
1860 in <xref linkend="update-primary-image">, but the actual numbers used with
1861 the flags in the sample commands should be: <programlisting>-f 0xfe000000
1862 -b 0x50000
1863 -l 0x20000</programlisting></para>
1864 </sect3>
1865 <sect3>
1866 <title>Updating the secondary RedBoot image</title>
1867 <para>To update the secondary RedBoot images, follow the procedures detailed
1868 in <xref linkend="different-version-from-RAM">, but the actual numbers used
1869 with the flags in the sample commands should be:
1870 <programlisting>
1871 -f 0xfe020000
1872 -b 0x20000
1873 -r 0x20000
1874 -l 0x20000
1875 </programlisting></para>
1876 </sect3></sect2>
1877 <sect2>
1878 <title>Special RedBoot Commands </title>
1879 <para>None.</para>
1880 </sect2>
1881 <sect2>
1882 <title>Memory Maps </title>
1883 <para>Memory Maps RedBoot sets up the following memory map on the MBX board.<programlisting>
1884 Physical Address Range Description
1885 ----------------------- -----------
1886 0x00000000 - 0x003fffff DRAM
1887 0xfa100000 - 0xfa100003 LEDs
1888 0xfe000000 - 0xfe07ffff flash (AMD29F040B)
1889 0xff000000 - 0xff0fffff MPC registers</programlisting></para>
1890 </sect2>
1891 <sect2>
1892 <title>Resource Usage </title>
1893 <para>The flash based RedBoot image occupies flash addresses 0xfe000000 -
1894 0xfe01ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
1895 runtime uses. RAM based RedBoot configurations are designed to run from RAM
1896 at physical addresses 0x00020000 - 0x0004ffff. RAM physical addresses from
1897 0x00050000 to the end of RAM are available for general use, such as a temporary
1898 scratchpad for downloaded images, before they are written to flash.</para>
1899 </sect2>
1900 <sect2>
1901 <title>Rebuilding RedBoot</title>
1902 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1903 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1904 &ldquo;mbx&rdquo;, &ldquo;powerpc&rdquo; and &ldquo;mbx&rdquo; respectively.
1905 Note that the configuration export files supplied in the <computeroutput>
1906 hal/powerpc/mbx/<replaceable>VERSION</replaceable>/misc</computeroutput>
1907 directory in the RedBoot source tree should be used.</para>
1908 </sect2>
1909 </sect1>
1910 <?Pub _newpage>
1911 <sect1 id="viper">
1912 <title>Analogue & Micro PowerPC 860T</title>
1913 <sect2>
1914 <title>Overview</title>
1915 <para><indexterm><primary>Analogue & Micro PowerPC 860T</primary><secondary>installing
1916 and testing</secondary></indexterm><indexterm><primary>installing and testing
1917 </primary><secondary>Analogue & Micro PowerPC 860T</secondary></indexterm>RedBoot uses
1918 the SMC1 serial port. The default serial port settings are 38400,8,N,1.
1919 Ethernet is also supported using the RJ-45 connector. </para>
1920 <para>Management of onboard flash is also supported.
1921 A single RedBoot configuration is supported: <itemizedlist>
1922 <listitem><para>RedBoot running from RAM using an image copied from the flash boot sector (ROMRAM mode).
1923 </para>
1924 </listitem>
1925 </itemizedlist></para>
1926 </sect2>
1927 <sect2>
1928 <title>Initial Installation Method </title>
1929 <para>RedBoot must be installed at the A & M factory.
1930 </para>
1931 </sect2>
1932 <sect2>
1933 <title>Flash management</title>
1934 <sect3>
1935 <title>Updating the primary RedBoot image</title>
1936 <para>To update the primary RedBoot images, follow the procedures detailed
1937 in <xref linkend="update-primary-image">, but the actual numbers used with
1938 the flags in the sample commands should be:
1939 <programlisting>
1940 -f 0xfe000000
1941 -b 0x50000
1942 -l 0x30000
1943 </programlisting></para>
1944 </sect3>
1945 </sect2>
1946 <sect2>
1947 <title>Special RedBoot Commands </title>
1948 <para>None.</para>
1949 </sect2>
1950 <sect2>
1951 <title>Memory Maps </title>
1952 <para>Memory Maps RedBoot sets up the following memory map on the MBX board.<programlisting>
1953 Physical Address Range Description
1954 ----------------------- -----------
1955 0x00000000 - 0x007fffff DRAM
1956 0xfe000000 - 0xfe0fffff flash (AMD29LV8008B)
1957 0xff000000 - 0xff0fffff MPC registers</programlisting></para>
1958 </sect2>
1959 <sect2>
1960 <title>Resource Usage </title>
1961 <para>The flash based RedBoot image occupies flash addresses 0xfe000000 -
1962 0xfe02ffff. RedBoot also reserves RAM (0x00000000 - 0x0003ffff) for RedBoot
1963 runtime uses. RAM physical addresses from
1964 0x00040000 to the end of RAM are available for general use, such as a temporary
1965 scratchpad for downloaded images, before they are written to flash.</para>
1966 </sect2>
1967 <sect2>
1968 <title>Rebuilding RedBoot</title>
1969 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
1970 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
1971 &ldquo;viper&rdquo;, &ldquo;powerpc&rdquo; and &ldquo;viper&rdquo; respectively.
1972 Note that the configuration export files supplied in the <computeroutput>
1973 hal/powerpc/viper/<replaceable>VERSION</replaceable>/misc</computeroutput>
1974 directory in the RedBoot source tree should be used.</para>
1975 </sect2>
1976 </sect1>
1977 <?Pub _newpage>
1978 <sect1 id="e7t">
1979 <title>ARM Evaluator7T (e7t) board with ARM7TDMI</title>
1980 <sect2>
1981 <title>Overview</title>
1982 <para><indexterm><primary>ARM Evaluator7T</primary><secondary>installing and
1983 testing</secondary></indexterm><indexterm><primary>installing and testing
1984 </primary><secondary>ARM Evaluator7T</secondary></indexterm>RedBoot supports
1985 both serial ports for communication and downloads. The default serial port
1986 settings are 38400,8,N,1.</para>
1987 </sect2>
1988 <sect2>
1989 <title>Initial Installation</title>
1990 <para>RedBoot is installed using the on-board boot environment. See the user
1991 manual for full details.</para>
1992 </sect2>
1993 <sect2>
1994 <title>Quick download instructions</title>
1995 <para>Here are quick start instructions for downloading the prebuilt Redboot
1996 image:</para>
1997 <itemizedlist>
1998 <listitem><para>Boot the board and press ENTER:</para>
1999 <screen>
2000
2001 ARM Evaluator7T Boot Monitor PreRelease 1.00
2002 Press ENTER within 2 seconds to stop autoboot
2003 Boot: </screen>
2004 </listitem>
2005 <listitem><para>Erase the part of the flash where RedBoot will get programmed:
2006 </para>
2007 <screen> Boot: <userinput>flasherase 01820000 10000</userinput></screen>
2008 </listitem>
2009 <listitem><para>Prepare to download the UU-encoded version of the RedBoot
2010 image:</para>
2011 <screen> Boot: <userinput>download 10000</userinput>
2012 Ready to download. Use 'transmit' option on terminal emulator to download file.
2013 </screen>
2014 </listitem>
2015 <listitem><para>Either use ASCII transmit option in the terminal emulator,
2016 or on Linux, simply cat the file to the serial port:<screen> $ <userinput>
2017 cat redboot.UU > /dev/ttyS0</userinput></screen>When complete, you should
2018 see:<screen> Loaded file redboot.bin at address 000100000, size = 41960
2019 Boot:</screen></para>
2020 </listitem>
2021 <listitem><para>Program the flash:<screen> Boot: <userinput>flashwrite 01820000 10000 10000
2022 </userinput></screen></para>
2023 </listitem>
2024 <listitem><para>And verify that the module is available:<screen> Boot: <userinput>
2025 rommodules</userinput>
2026 Header Base Limit
2027 018057c8 01800000 018059e7 BootStrapLoader v1.0 Apr 27 2000 10:33:58
2028 01828f24 01820000 0182a3e8 RedBoot Apr 5 2001</screen></para>
2029 </listitem>
2030 <listitem><para>Reboot the board and you should see the RedBoot banner.</para>
2031 </listitem>
2032 </itemizedlist>
2033 </sect2>
2034 <sect2>
2035 <title>Special RedBoot Commands </title>
2036 <para>None.</para>
2037 </sect2>
2038 <sect2>
2039 <title>Memory Maps </title>
2040 <para>RedBoot sets up the following memory map on the E7T board. <note><title>
2041 NOTE</title>
2042 <para>The virtual memory maps in this section use a C and B column to indicate
2043 whether or not the region is cached (C) or buffered (B).</para>
2044 </note> <programlisting>Physical Address Range C B Description
2045 ----------------------- - - -----------
2046 0x00000000 - 0x0007ffff Y N SDRAM
2047 0x03ff0000 - 0x03ffffff N N Microcontroller registers
2048 0x01820000 - 0x0187ffff N N System flash (mirrored)</programlisting></para>
2049 </sect2>
2050 <sect2>
2051 <title>Resource Usage </title>
2052 <para>The flash based RedBoot image occupies flash addresses 0x0182000 - 0x0182ffff.
2053 </para>
2054 <para>RedBoot also reserves RAM (0x00000000 - 0x0000ffff) for RedBoot runtime
2055 uses. </para>
2056 <para>RAM physical addresses from 0x00010000 to the end of RAM are available
2057 for general use.</para>
2058 </sect2><sect2>
2059 <title>Rebuilding RedBoot</title>
2060 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
2061 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
2062 &ldquo;e7t&rdquo;, &ldquo;arm&rdquo; and &ldquo;e7t&rdquo; respectively.
2063 Note that the configuration export files supplied in the <computeroutput>
2064 hal/arm/e7t/<replaceable>VERSION</replaceable>/misc</computeroutput>
2065 directory in the RedBoot source tree should be used.</para>
2066 </sect2>
2067 </sect1>
2068 <?Pub _newpage>
2069 <sect1 id="integrator">
2070 <title>ARM Integrator board with ARM7TDMI or ARM966E</title>
2071 <sect2>
2072 <title>Overview</title>
2073 <para><indexterm><primary>ARM Integrator</primary><secondary>installing and
2074 testing</secondary></indexterm><indexterm><primary>installing and testing
2075 </primary><secondary>ARM Integrator</secondary></indexterm>RedBoot supports
2076 both serial ports for communication and downloads. The default serial port
2077 settings are 38400,8,N,1.</para>
2078 </sect2>
2079 <sect2>
2080 <title>Initial Installation</title>
2081 <para>RedBoot is installed using the on-board bootPROM environment. See the user
2082 manual for full details.</para>
2083 </sect2>
2084 <sect2>
2085 <title>Quick download instructions</title>
2086 <para>Here are quick start instructions for downloading the prebuilt Redboot
2087 image:</para>
2088 <itemizedlist>
2089 <listitem><para>Set DIP switch S1[1] to the ON position and reset or
2090 power the board up. You will see the bootPROM startup message on
2091 serial port A (J14):</para>
2092 <screen>
2093 Initialising...
2094
2095
2096 ARM bootPROM [Version 1.3] Rebuilt on Jun 26 2001 at 22:04:10
2097 Running on a Integrator Evaluation Board
2098 Board Revision V1.0, ARM966E-S Processor
2099 Memory Size is 16MBytes, Flash Size is 32MBytes
2100 Copyright (c) ARM Limited 1999 - 2001. All rights reserved.
2101 Board designed by ARM Limited
2102 Hardware support provided at http://www.arm.com/
2103 For help on the available commands type ? or h
2104 boot Monitor >
2105 </screen>
2106 </listitem>
2107 <listitem>
2108 <para>Issue the FLASH ROM load command:
2109 </para>
2110 <screen>
2111 boot Monitor > <userinput>L</userinput>
2112 Load Motorola S-Records into flash
2113
2114 Deleting Image 0
2115
2116 The S-Record loader only accepts input on the serial port.
2117 Type Ctrl/C to exit loader.
2118 </screen>
2119 </listitem>
2120 <listitem><para>Either use the ASCII transmit option in the terminal emulator,
2121 or on Linux, simply cat the file to the serial port:
2122 </para>
2123 <screen>
2124 $ <userinput>cat redboot.srec > /dev/ttyS0</userinput>
2125 </screen>
2126 <para>
2127 When complete, type Ctrl-C and you should see something similar to:
2128 </para>
2129 <screen>
2130 ................................
2131 ................................
2132 ....................
2133 Downloaded 5,394 records in 81 seconds.
2134
2135 Overwritten block/s
2136 0
2137
2138 boot Monitor >
2139 </screen>
2140 </listitem>
2141 <listitem><para>Set DIP switch S1[1] to the OFF position and reboot
2142 the board and you should see the RedBoot banner.</para>
2143 </listitem>
2144 </itemizedlist>
2145 </sect2>
2146 <sect2>
2147 <title>Special RedBoot Commands </title>
2148 <para>None.</para>
2149 </sect2>
2150 <sect2>
2151 <title>Memory Maps </title>
2152 <para>RedBoot sets up the following memory map on the Integrator board. <note><title>
2153 NOTE</title>
2154 <para>The virtual memory maps in this section use a C and B column to indicate
2155 whether or not the region is cached (C) or buffered (B).</para>
2156 </note>
2157 <programlisting>
2158
2159 ARM7TDMI
2160 --------
2161
2162 Physical Address Range C B Description
2163 ----------------------- - - -----------
2164 0x00000000 - 0x0007ffff N N SSRAM
2165 0x00080000 - 0x0fffffff N N SDRAM (depends on part fitted)
2166 0x10000000 - 0x1fffffff N N System control and peripheral registers
2167 0x20000000 - 0x23ffffff N N Boot ROM (contains boot Monitor)
2168 0x24000000 - 0x27ffffff N N FLASH ROM (contains RedBoot)
2169 0x28000000 - 0x2bffffff N N SSRAM echo area
2170 0x40000000 - 0x5fffffff N N PCI Memory access windows
2171 0x60000000 - 0x60ffffff N N PCI IO access window
2172 0x61000000 - 0x61ffffff N N PCI config space window
2173 0x62000000 - 0x6200ffff N N PCI bridge register window
2174 0x80000000 - 0x8fffffff N N SDRAM echo area (used for PCI accesses)
2175
2176
2177 ARM966E
2178 -------
2179
2180 Physical Address Range C B Description
2181 ----------------------- - - -----------
2182 0x00000000 - 0x000fffff N N SSRAM
2183 0x00100000 - 0x0fffffff N N SDRAM (depends on part fitted)
2184 0x10000000 - 0x1fffffff N N System control and peripheral registers
2185 0x20000000 - 0x23ffffff N N Boot ROM (contains boot Monitor)
2186 0x24000000 - 0x27ffffff N N FLASH ROM (contains RedBoot)
2187 0x28000000 - 0x2bffffff N N SSRAM echo area
2188 0x40000000 - 0x5fffffff N N PCI Memory access windows
2189 0x60000000 - 0x60ffffff N N PCI IO access window
2190 0x61000000 - 0x61ffffff N N PCI config space window
2191 0x62000000 - 0x6200ffff N N PCI bridge register window
2192 0x80000000 - 0x8fffffff N N SDRAM echo area (used for PCI accesses)
2193
2194 </programlisting>
2195 </para>
2196 </sect2>
2197 <sect2>
2198 <title>Resource Usage </title>
2199 <para>
2200 The flash based RedBoot image occupies flash addresses
2201 0x24000000 - 0x2401ffff.
2202 </para>
2203 <para>
2204 RedBoot also reserves RAM (0x00000000 - 0x0003ffff) for RedBoot runtime
2205 uses. If ethernet support is included, then the address range
2206 0x00f00000 to 0x00ffffff are reserved for use by the driver. This may
2207 be moved using the MLT.
2208 </para>
2209 <para>RAM physical addresses from 0x00040000 to 0x00efffff and from
2210 0x00100000 to the end of SDRAM are available for general use.</para>
2211 </sect2><sect2>
2212 <title>Rebuilding RedBoot</title>
2213 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should
2214 be followed. The values for TARGET, ARCH_DIR and PLATFORM_DIR on this
2215 platform are &ldquo;integrator&rdquo; or
2216 &ldquo;integrator_arm9&rdquo;, &ldquo;arm&rdquo; and
2217 &ldquo;integrator&rdquo; respectively. Note that the configuration
2218 export files supplied in the <computeroutput>
2219 hal/arm/integrator/<replaceable>VERSION</replaceable>/misc</computeroutput>
2220 directory in the RedBoot source tree should be used.</para>
2221 </sect2>
2222 </sect1>
2223 <?Pub _newpage>
2224 <sect1 id="pid">
2225 <title>ARM ARM7 PID, Dev7 and Dev9</title>
2226 <sect2>
2227 <title>Overview</title>
2228 <para><indexterm><primary>ARM ARM7 PID, Dev7 and Dev9</primary><secondary>
2229 installing and testing</secondary></indexterm><indexterm><primary>installing
2230 and testing</primary><secondary>ARM ARM7 PID, Dev7 and Dev9</secondary></indexterm>RedBoot
2231 uses either of the serial ports. The default serial port settings are 38400,8,N,1.
2232 Management of onboard flash is also supported. Two basic RedBoot configurations
2233 are supported: <itemizedlist>
2234 <listitem><para>RedBoot running from the board's flash boot sector.</para>
2235 </listitem>
2236 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
2237 </para>
2238 </listitem>
2239 </itemizedlist></para>
2240 </sect2>
2241 <sect2>
2242 <title>Initial Installation Method </title>
2243 <para>Device programmer is used to program socketed flash parts with ROM version
2244 of RedBoot. </para>
2245 <para>Alternatively, to install RedBoot on a target that already has eCos
2246 GDB stubs, download the RAM version of RedBoot and run it. Initialize the
2247 flash image directory: <command>fi init</command> Then
2248 download the ROM version of RedBoot and program it into flash: <programlisting>
2249 RedBoot> <userinput>load -b 0x00040000 -m ymodem</userinput>
2250 RedBoot> <userinput>fi cr RedBoot -f 0x04000000 -b 0x00040000 -l 0x20000</userinput>
2251 </programlisting></para>
2252 </sect2>
2253 <sect2>
2254 <title>Special RedBoot Commands </title>
2255 <para>None.</para>
2256 </sect2>
2257 <sect2>
2258 <title>Memory Maps </title>
2259 <para>RedBoot sets up the following memory map on the PID board. <programlisting>
2260 Physical Address Range Description
2261 ----------------------- -----------
2262 0x00000000 - 0x0007ffff DRAM
2263 0x04000000 - 0x04080000 flash
2264 0x08000000 - 0x09ffffff ASB Expansion
2265 0x0a000000 - 0x0bffffff APB Reference Peripheral
2266 0x0c000000 - 0x0fffffff NISA Serial, Parallel and PC Card ports </programlisting></para>
2267 </sect2>
2268 <sect2>
2269 <title>Resource Usage </title>
2270 <para>The flash based RedBoot image occupies flash addresses 0x04000000 -
2271 0x0401ffff. </para>
2272 <para>RedBoot also reserves RAM (0x00000000 - 0x00007fff) for RedBoot runtime
2273 uses. </para>
2274 <para>RAM based RedBoot configurations are designed to run from RAM at physical
2275 addresses 0x00008000 - 0x0003ffff. RAM physical addresses from 0x00040000
2276 to the end of RAM are available for general use, such as a temporary scratchpad
2277 for downloaded images, before they are written to flash.</para>
2278 </sect2><sect2>
2279 <title>Rebuilding RedBoot</title>
2280 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
2281 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
2282 &ldquo;pid&rdquo;, &ldquo;arm&rdquo; and &ldquo;pid&rdquo; respectively.
2283 Note that the configuration export files supplied in the <computeroutput>
2284 hal/arm/pid/<replaceable>VERSION</replaceable>/misc</computeroutput>
2285 directory in the RedBoot source tree should be used.</para>
2286 </sect2></sect1>
2287
2288 <?Pub _newpage>
2289 <sect1 id="ipaq">
2290 <title>Compaq iPAQ PocketPC</title>
2291 <indexterm><primary>Compaq iPAQ PocketPC</primary><secondary>installing and
2292 testing</secondary></indexterm><indexterm><primary>installing and testing
2293 </primary><secondary>Compaq iPAQ PocketPC</secondary></indexterm>
2294 <sect2>
2295 <title>Overview</title>
2296 <para>RedBoot supports the serial port via cradle or cable, and Compact Flash
2297 ethernet cards if fitted for communication and downloads. The LCD touchscreen
2298 may also be used for the console, although by default RedBoot will switch
2299 exclusively to one channel once input arrives. </para>
2300 <para>The default serial port settings are 38400,8,N,1. RedBoot runs from
2301 and supports flash management for the system flash region. </para>
2302 </sect2>
2303 <sect2>
2304 <title>Initial Installation</title>
2305 <para>Prebuilt images for the OSloader, redboot_ROM.bin
2306 and redboot_WinCE.bin images mentioned in the instructions below are provided.
2307 </para>
2308 <sect3>
2309 <title>Installing RedBoot on the iPAQ using Windows/CE</title>
2310 <para>
2311 The Windows/CE environment originally shipped with the iPAQ contains a hidden
2312 mini-loader, sometimes referred to as the "Parrot" loader. This loader can
2313 be started by holding down the action button (the joypad) while resetting
2314 the unit or when powering on. At this point, a blue bird will appear on
2315 the LCD screen. Also at this point, a simple loader can be accessed over the
2316 serial port at 115200/8N1. Using this loader, the contents of the iPAQ flash
2317 memory can be saved to a Compact Flash memory card.
2318 <note><title>NOTE</title><para>We have only tested this operation with a 32Mbyte CF memory card.
2319 Given that the backup will take 16MBytes + 1KByte, something more than a 16MByte
2320 card will be required.</para></note>
2321 </para>
2322 <para>
2323 Use the "r2c" command to dump Flash contents to the CF memory card. Once this
2324 completes, RedBoot can be installed with no fear since the Parrot loader can
2325 be used to restore the Flash contents at a later time.
2326 </para>
2327 <para>
2328 If you expect to completely recover the state of the iPAQ Win/CE environment, then
2329 HotSync should be run to backup all "RAM" files as well before installing RedBoot.
2330 </para>
2331 <para>The next step in installing RedBoot on the iPAQ actually involves Windows/CE,
2332 which is the native environment on the unit. Using WinCE, you need to
2333 install an application which will run a RAM based version of RedBoot. Once
2334 this is installed and running, RedBoot can be used to update the flash with
2335 a native/ROM version of RedBoot. <itemizedlist>
2336 <listitem><para>Using ActiveSync, copy the file OSloader to your iPAQ. </para>
2337 </listitem>
2338 <listitem><para>Using ActiveSync, copy the file redboot_WinCE.bin to the iPAQ
2339 as bootldr in its root directory. Note: this is not the top level folder
2340 displayed by Windows (Mobile Device), but rather the 'My Pocket PC' folder
2341 within it.</para>
2342 </listitem>
2343 <listitem><para>Execute OSloader. If you didn't create a shortcut, then you
2344 will have to poke around for it using the WinCE file explorer.</para>
2345 </listitem>
2346 <listitem><para>Choose the <guimenuitem>Tools->BootLdr->Run after loading
2347 from file</guimenuitem> menu item. </para>
2348 </listitem>
2349 </itemizedlist>At this point, the RAM based version of RedBoot should be running.
2350 You should be able to return to this point by just executing the last two
2351 steps of the previous process if necessary.</para>
2352 </sect3>
2353 <sect3>
2354 <title>Installing RedBoot on the iPAQ - using the Compaq boot loader</title>
2355 <para>This method of installation is no longer supported.
2356 If you have previously installed either the Compaq boot loader or older
2357 versions of RedBoot, restore the Win/CE environment and proceed as outlined
2358 above.
2359 </para>
2360 </sect3>
2361 <sect3 id="setting-up-and-testing-redboot">
2362 <title>Setting up and testing RedBoot</title>
2363 <para>When RedBoot first comes up, it will want to initialize its LCD touch
2364 screen parameters. It does this by displaying a keyboard graphic and asks
2365 you to press certain keys. Using the stylus, press and hold until the prompt
2366 is withdrawn. When you lift the stylus, RedBoot will continue with the next
2367 calibration. </para>
2368 <para>Once the LCD touchscreen has been calibrated, RedBoot will start. The
2369 calibration step can be skipped by pressing the <guibutton>return/abort</guibutton>
2370 button on the unit (right most button with a curved arrow icon). Additionally,
2371 the unit will assume default values if the screen is not touched within about
2372 15 seconds. </para>
2373 <para>Once RedBoot has started, you should get information similar to this
2374 on the LCD screen. It will also appear on the serial port at 38400,8,N,1.
2375 <programlisting>RedBoot(tm) bootstrap and debug environment [ROM]
2376 Red Hat certified release, version R1.xx - built 06:17:41, Mar 19 2001
2377 Platform: Compaq iPAQ Pocket PC (StrongARM 1110)
2378
2379 Copyright (C) 2000, 2001, Red Hat, Inc.
2380
2381 RAM: 0x00000000-0x01fc0000, 0x0001f200-0x01f70000 available
2382 FLASH: 0x50000000 - 0x51000000, 64 blocks of 0x00040000 bytes each.</programlisting>Since
2383 the LCD touchscreen is only 30 characters wide, some of this data will be
2384 off the right hand side of the display. The joypad may be used to pan left
2385 and right in order to see the full lines. </para>
2386 <para>If you have a Compact Flash ethernet card, RedBoot should find it.
2387 You'll need to have BOOTP enabled for this unit (see your sysadmin for details).
2388 If it does, it will print a message like: <programlisting>... Waiting for network card: .Ready!
2389 Socket Communications Inc: CF+ LPE Revision E 08/04/99
2390 IP: 192.168.1.34, Default server: 192.168.1.101</programlisting></para>
2391 </sect3>
2392 <sect3 id="ipaq-install-rb-permanently">
2393 <title>Installing RedBoot permanently</title>
2394 <para>Once you are satisfied with the setup and that RedBoot is operating
2395 properly in your environment, you can set up your iPAQ unit to have RedBoot
2396 be the bootstrap application. <caution><title>CAUTION</title>
2397 <para>This step will destroy your Windows/CE environment.</para>
2398 <para>Before you take this step, it is strongly recommended you save your WinCE FLASH contents
2399 as outlined above using the "parrot" loader, or
2400 by using the Compaq OSloader: <itemizedlist>
2401 <listitem><para>Using OSloader on the iPAQ, select the <guimenuitem>Tools->Flash->Save
2402 to files...</guimenuitem>. menu item.</para>
2403 </listitem>
2404 <listitem><para>Four (4) files, 4MB each in size will be created.</para>
2405 </listitem>
2406 <listitem><para>After each file is created, copy the file to your computer,
2407 then delete the file from the iPAQ to make room in the WinCE ramdisk for the
2408 next file.</para>
2409 </listitem>
2410 </itemizedlist></para>
2411 </caution>You will need to download the version of RedBoot designed as the
2412 ROM bootstrap. Then install it permanently using these commands:
2413 <programlisting>
2414 RedBoot> <userinput>lo -r -b 0x100000 /tftpboot/redboot_ROM.bin</userinput>
2415 RedBoot> <userinput>fi loc -f 0x50000000 -l 0x40000</userinput>
2416 RedBoot> <userinput>fis init</userinput>
2417 RedBoot> <userinput>fi unl -f 0x50040000 -l 0x40000</userinput>
2418 RedBoot> <userinput>fi cr RedBoot -b 0x100000</userinput>
2419 RedBoot> <userinput>fi loc -f 0x50040000 -l 0x40000</userinput>
2420 RedBoot> <userinput>reset</userinput>
2421 </programlisting> <warning><title>WARNING</title>
2422 <para>You must type these commands exactly! Failure to do so may render your
2423 iPAQ totally useless. Once you've done this, RedBoot should come up every
2424 time you reset.</para>
2425 </warning></para>
2426 </sect3>
2427 <sect3>
2428 <title>Restoring Windows/CE</title>
2429 <para>To restore Windows/CE from the backup taken in <xref linkend="ipaq-install-rb-permanently">,
2430 visit <ulink url="http://www.handhelds.org/projects/wincerestoration.html">http://www.handhelds.org/projects/wincerestoration.html</ulink>
2431 for directions.
2432 </para>
2433 </sect3></sect2>
2434 <sect2>
2435 <title>Flash Management</title>
2436 <sect3>
2437 <title>Updating the secondary RedBoot image</title>
2438 <para>To update the secondary RedBoot images, follow the procedures detailed
2439 in <xref linkend="different-version-from-RAM">, relying on default location
2440 and size of the image. It is also possible to explicitly specify the options
2441 - the appropriate options for the iPAQ are: <programlisting>-f 0x50080000
2442 -b 0x00020000
2443 -r 0x00020000
2444 -e 0x00020040
2445 -l 0x40000</programlisting>When updating the image, the flash should be unlocked
2446 before programming, and relocked afterwards. This is done with the commands:
2447 <programlisting>fis unlock -f 0x50080000 -l 0x40000</programlisting>and<programlisting>
2448 fis lock -f 0x50080000 -l 0x40000</programlisting></para>
2449 </sect3>
2450 <sect3>
2451 <title>Updating the primary RedBoot image</title>
2452 <para>To update the primary RedBoot images, follow the procedures detailed
2453 in <xref linkend="update-primary-image">, relying on default location and
2454 size of the image. It is also possible to explicitly specify the options -
2455 the appropriate options for the iPAQ are: <programlisting>-f 0x50040000
2456 -b 0x00100000
2457 -l 0x40000</programlisting> When updating the image, the flash should be unlocked
2458 before programming, and relocked afterwards. This is done with the commands:
2459 <programlisting>fis unlock -f 0x50040000 -l 0x40000</programlisting>and<programlisting>
2460 fis lock -f 0x50040000 -l 0x40000</programlisting></para>
2461 </sect3></sect2>
2462 <sect2>
2463 <title>Additional commands</title>
2464 <para>The <command>exec</command> command which allows the loading
2465 and execution of Linux kernels,
2466 is supported for this board (see <xref linkend="executing-programs">). The <command>
2467 exec</command> parameters used for the iPAQ are:</para>
2468 <variablelist><varlistentry>
2469 <term>-b <replaceable>&lt;addr></replaceable></term>
2470 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry>
2471 <varlistentry><term>
2472 -l <replaceable>&lt;len></replaceable></term>
2473 <listitem><para>Length of kernel</para></listitem></varlistentry>
2474 <varlistentry><term>
2475 -c <replaceable>"params"</replaceable></term>
2476 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
2477 <varlistentry><term>-r <replaceable>&lt;addr></replaceable></term>
2478 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry>
2479 <varlistentry><term>-s <replaceable>&lt;len></replaceable></term>
2480 <listitem><para>Length of initrd ramdisk</para></listitem></varlistentry>
2481 </variablelist>
2482 <para>Linux kernels may be run on the iPAQ using the sources from the anonymous
2483 CVS repository at the Handhelds project (<ulink url="http://www.handhelds.org/">
2484 http://www.handhelds.org/</ulink>) with
2485 the <filename>elinux.patch</filename> patch file applied. This file can be
2486 found in the
2487 <filename>misc/</filename> subdirectory of the iPAQ platform HAL in the
2488 RedBoot sources, normally
2489 <filename>hal/arm/sa11x0/ipaq/<replaceable>VERSION</replaceable>/misc/</filename>
2490 </para>
2491 <para>
2492 On the iPAQ (and indeed all SA11x0 platforms), Linux expects to be loaded
2493 at address 0xC0008000 and the entry point is also at 0xC0008000.
2494 </para>
2495
2496 </sect2>
2497 <sect2>
2498 <title>Memory Maps</title>
2499 <para>RedBoot sets up the following memory map on the iPAQ: The first level
2500 page table is located at physical address 0xC0004000. No second level tables
2501 are used. <note><title>NOTE</title>
2502 <para>The virtual memory maps in this section use a C and B column to indicate
2503 whether or not the region is cached (C) or buffered (B).</para>
2504 </note> <programlisting>Physical Address Range Description
2505 ----------------------- ----------------------------------
2506 0x00000000 - 0x01ffffff 16Mb to 32Mb FLASH (nCS0) [organized as below]
2507 0x000000 - 0x0003ffff Parrot Loader
2508 0x040000 - 0x0007ffff RedBoot
2509 0xf80000 - 0x00fbffff Fconfig data
2510 0xfc0000 - 0x00ffffff FIS directory
2511 0x30000000 - 0x3fffffff Compact Flash
2512 0x48000000 - 0x4bffffff iPAQ internal registers
2513 0x80000000 - 0xbfffffff SA-1110 Internal Registers
2514 0xc0000000 - 0xc1ffffff DRAM Bank 0 - 32Mb SDRAM
2515 0xe0000000 - 0xe7ffffff Cache Clean
2516
2517
2518 Virtual Address Range C B Description
2519 ----------------------- - - ----------------------------------
2520 0x00000000 - 0x01ffffff Y Y DRAM - 32Mb
2521 0x30000000 - 0x3fffffff N N Compact Flash
2522 0x48000000 - 0x4bffffff N N iPAQ internal registers
2523 0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0)
2524 0x80000000 - 0xbfffffff N N SA-1110 Internal Registers
2525 0xc0000000 - 0xc1ffffff N Y DRAM Bank 0: 32Mb
2526 0xe0000000 - 0xe7ffffff Y Y Cache Clean </programlisting> </para>
2527 </sect2>
2528 <sect2>
2529 <title>Resource Usage</title>
2530 <para>The flash based RedBoot image occupies flash addresses 0x50040000 -
2531 0x5007ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
2532 runtime uses. RAM based RedBoot configurations are designed to run from RAM
2533 at virtual addresses 0x00020000 - 0x0005ffff. RAM virtual addresses from
2534 0x00060000 to the end of RAM are available for general use, such as a temporary
2535 scratchpad for downloaded images, before they are written to flash. An exception
2536 is RAM from 0x01F70000 - 0x01FFFFFF which is reserved for use by the LCD
2537 display.</para>
2538 </sect2>
2539 <sect2>
2540 <title>Rebuilding RedBoot</title>
2541 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
2542 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
2543 &ldquo;ipaq&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/ipaq&rdquo; respectively.
2544 Note that the configuration export files supplied in the <computeroutput>
2545 hal/arm/sa11x0/ipaq/<replaceable>VERSION</replaceable>/misc</computeroutput>
2546 directory in the RedBoot source tree should be used.</para>
2547 </sect2></sect1>
2548
2549 <?Pub _newpage>
2550 <sect1 id="cerfcube">
2551 <title>Intrinsyc CerfCube</title>
2552 <indexterm><primary>Intrinsyc CerfCube</primary><secondary>installing and
2553 testing</secondary></indexterm><indexterm><primary>installing and testing
2554 </primary><secondary>Intrinsyc CerfCube</secondary></indexterm>
2555 <sect2>
2556 <title>Overview</title>
2557 <para>RedBoot supports the serial port and the builtin
2558 ethernet connection for communication and downloads.
2559 </para>
2560 <para>The default serial port settings are 38400,8,N,1. RedBoot runs from
2561 and supports flash management for the system flash region. </para>
2562 </sect2>
2563 <sect2>
2564 <title>Initial Installation</title>
2565 <para>Prebuilt images for redboot_ROM.bin
2566 mentioned in the instructions below are provided.
2567 </para>
2568 <sect3>
2569 <title>Installing RedBoot on the CerfCube using the Intrinsyc loader</title>
2570 <para>
2571 The original boot loader supplied with the CerfCube can be used to install
2572 RedBoot. Connect to the device using a serial port at 38400/8N1.
2573 Copy the redboot_ROM.bin image to an available TFTP server.
2574 Issue these commands to the Instrinsyc loader.
2575 <programlisting>
2576 download tftp:xxx.x.x.xx redboot_ROM.bin 0xc0000000
2577 flashloader 0x00000000 0xc0000000 0x20000
2578 </programlisting>
2579 where xxx.x.x.xx is the IP address of the TFTP server.
2580 <note>
2581 <title>NOTE</title>
2582 <para>
2583 Other installation methods may be available via the Intrinsyc loader.
2584 Contact Intrinsyc for details.
2585 </para>
2586 </note>
2587 </para>
2588 </sect3>
2589 <sect3 id="setting-up-and-testing-cerfcube-redboot">
2590 <title>Setting up and testing RedBoot</title>
2591 <para>Once RedBoot has started, you should get information similar to this
2592 on the serial port at 38400,8,N,1.
2593 <programlisting>RedBoot(tm) bootstrap and debug environment [ROM]
2594 Red Hat certified release, version R1.xx - built 06:17:41, Mar 19 2001
2595 Platform: Intrinsyc CerfCube (StrongARM 1110)
2596
2597 Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
2598
2599 RAM: 0x00000000-0x02000000, 0x00012708-0x01fd1000 available
2600 FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each.
2601 </programlisting>
2602 </para>
2603 </sect3>
2604 </sect2>
2605 <sect2>
2606 <title>Flash Management</title>
2607 <sect3>
2608 <title>Updating the primary RedBoot image</title>
2609 <para>To update the primary RedBoot images, follow the procedures detailed
2610 in <xref linkend="update-primary-image">, relying on default location and
2611 size of the image. It is also possible to explicitly specify the options -
2612 the appropriate options for the CerfCube are: <programlisting>-f 0x50000000
2613 -b 0x00100000
2614 -l 0x40000</programlisting> When updating the image, the flash should be unlocked
2615 before programming, and relocked afterwards. This is done with the commands:
2616 <programlisting>fis unlock -f 0x50000000 -l 0x20000</programlisting>and<programlisting>
2617 fis lock -f 0x50000000 -l 0x20000</programlisting></para>
2618 </sect3></sect2>
2619 <sect2>
2620 <title>Additional commands</title>
2621 <para>The <command>exec</command> command which allows the loading
2622 and execution of Linux kernels,
2623 is supported for this board (see <xref linkend="executing-programs">). The <command>
2624 exec</command> parameters used for the CerfCube are:</para>
2625 <variablelist><varlistentry>
2626 <term>-b <replaceable>&lt;addr></replaceable></term>
2627 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry>
2628 <varlistentry><term>
2629 -l <replaceable>&lt;len></replaceable></term>
2630 <listitem><para>Length of kernel</para></listitem></varlistentry>
2631 <varlistentry><term>
2632 -c <replaceable>"params"</replaceable></term>
2633 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
2634 <varlistentry><term>-r <replaceable>&lt;addr></replaceable></term>
2635 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry>
2636 <varlistentry><term>-s <replaceable>&lt;len></replaceable></term>
2637 <listitem><para>Length of initrd ramdisk</para></listitem></varlistentry>
2638 </variablelist>
2639
2640 </sect2>
2641 <sect2>
2642 <title>Memory Maps</title>
2643 <para>RedBoot sets up the following memory map on the CerfCube: The first level
2644 page table is located at physical address 0xC0004000. No second level tables
2645 are used. <note><title>NOTE</title>
2646 <para>The virtual memory maps in this section use a C and B column to indicate
2647 whether or not the region is cached (C) or buffered (B).</para>
2648 </note> <programlisting>Physical Address Range Description
2649 ----------------------- ----------------------------------
2650 0x00000000 - 0x01ffffff 16Mb to 32Mb FLASH (nCS0) [organized as below]
2651 0x000000 - 0x0001ffff RedBoot
2652 0x020000 - 0x0003ffff RedBoot [RAM version]
2653 0xfc0000 - 0x00fdffff Fconfig data
2654 0xfe0000 - 0x00ffffff FIS directory
2655 0x0f000000 - 0x0fffffff Onboard ethernet
2656 0x10000000 - 0x17ffffff CerfCube internal registers
2657 0x20000000 - 0x3fffffff PCMCIA / Compact Flash
2658 0x80000000 - 0xbfffffff SA-1110 Internal Registers
2659 0xc0000000 - 0xc1ffffff DRAM Bank 0 - 32Mb SDRAM
2660 0xe0000000 - 0xe7ffffff Cache Clean
2661
2662
2663 Virtual Address Range C B Description
2664 ----------------------- - - ----------------------------------
2665 0x00000000 - 0x01ffffff Y Y DRAM - 32Mb
2666 0x08000000 - 0x0fffffff N N Onboard ethernet controller
2667 0x10000000 - 0x17ffffff N N CerfCube internal registers
2668 0x20000000 - 0x3fffffff N N PCMCIA / Compact Flash
2669 0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0)
2670 0x80000000 - 0xbfffffff N N SA-1110 Internal Registers
2671 0xc0000000 - 0xc1ffffff N Y DRAM Bank 0: 32Mb
2672 0xe0000000 - 0xe7ffffff Y Y Cache Clean </programlisting> </para>
2673 </sect2>
2674 <sect2>
2675
2676 <title>Resource Usage</title>
2677 <para>The flash based RedBoot image occupies flash addresses 0x50000000 -
2678 0x5001ffff. RedBoot also reserves RAM (0x00000000 - 0x0001ffff) for RedBoot
2679 runtime uses. RAM based RedBoot configurations are designed to run from RAM
2680 at virtual addresses 0x00020000 - 0x0005ffff. RAM virtual addresses from
2681 0x00060000 to the end of RAM are available for general use, such as a temporary
2682 scratchpad for downloaded images, before they are written to flash.
2683 </para>
2684 </sect2>
2685 <sect2>
2686 <title>Rebuilding RedBoot</title>
2687 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
2688 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
2689 &ldquo;cerf&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/ipaq&rdquo; respectively.
2690 Note that the configuration export files supplied in the <computeroutput>
2691 hal/arm/sa11x0/cerf/<replaceable>VERSION</replaceable>/misc</computeroutput>
2692 directory in the RedBoot source tree should be used.</para>
2693 </sect2></sect1>
2694
2695 <?Pub _newpage>
2696 <sect1 id="edb7xxx">
2697 <title>Cirrus Logic EP7xxx (EDB7211, EDB7212, EDB7312) </title>
2698 <sect2>
2699 <title>Overview</title>
2700 <para><indexterm><primary>Cirrus Logic EP7xxx (EDB7211, EDB7212, EDB7312)</primary>
2701 <secondary>installing and testing</secondary></indexterm><indexterm><primary>
2702 installing and testing</primary><secondary>Cirrus Logic EP7xxx (EDB7211, EDB7212, EDB7312)
2703 </secondary></indexterm>RedBoot supports both serial ports on the board and
2704 the ethernet port. The default serial port settings are 38400,8,N,1. RedBoot
2705 also supports flash management on the EDB7xxx for the NOR flash only. Two
2706 basic RedBoot configurations are supported: <itemizedlist>
2707 <listitem><para>RedBoot running from the board's flash boot sector.</para>
2708 </listitem>
2709 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
2710 </para>
2711 </listitem>
2712 <listitem><para>EDB7312 only: RedBoot running from RAM copied directly from the
2713 flash boot sector.
2714 </para>
2715 </listitem>
2716 </itemizedlist></para>
2717 </sect2>
2718 <sect2>
2719 <title>Initial Installation Method </title>
2720 <para>A Windows or Linux utility is used to program flash using serial port
2721 #1 via on-chip programming firmware. See board documentation for details on
2722 in situ flash programming. </para>
2723 </sect2>
2724 <sect2>
2725 <title>Flash management</title>
2726 <sect3>
2727 <title>Updating the primary RedBoot image</title>
2728 <para>To update the primary RedBoot images, follow the procedures detailed
2729 in <xref linkend="update-primary-image">, but the actual numbers used with
2730 the flags in the sample commands should be:
2731 <programlisting>
2732 -f 0xE0000000
2733 -b 0x40000
2734 -l 0x40000
2735 </programlisting></para>
2736 </sect3>
2737 <sect3>
2738 <title>Updating the secondary RedBoot image</title>
2739 <para>To update the secondary RedBoot images, follow the procedures detailed
2740 in <xref linkend="different-version-from-RAM">, but the actual numbers used
2741 with the flags in the sample commands should be: <programlisting>
2742 -f 0xE0040000
2743 -b 0x40000
2744 -r 0x40000
2745 -l 0x40000
2746 </programlisting></para>
2747 <note><title>NOTE</title>
2748 <para>
2749 On the EDB7312, because the primary RedBoot image runs in RAM and not
2750 FLASH, it can be updated directly without
2751 use of the separate RAM based version.
2752 </para></note>
2753 </sect3>
2754 </sect2>
2755 <sect2>
2756 <title>Special RedBoot Commands </title>
2757 <para>None.</para>
2758 </sect2>
2759 <sect2>
2760 <title>Memory Maps </title>
2761 <para>The MMU page tables and LCD display buffer, if enabled, are located
2762 at the end of DRAM. <note><title>NOTE
2763 </title>
2764 <para>The virtual memory maps in this section use a C and B column to indicate
2765 whether or not the region is cached (C) or buffered (B).</para>
2766 </note><programlisting>
2767 Physical Address Range Description
2768 ----------------------- ----------------------------------
2769 0x00000000 - 0x01ffffff NOR Flash (EDB7211, EDB7212)
2770 0x00000000 - 0x00ffffff NOR Flash (EDB7312)
2771 0x10000000 - 0x11ffffff NAND Flash
2772 0x20000000 - 0x2fffffff Expansion 2
2773 0x30000000 - 0x3fffffff Expansion 3
2774 0x40000000 - 0x4fffffff PCMCIA 0
2775 0x50000000 - 0x5fffffff PCMCIA 1
2776 0x60000000 - 0x600007ff On-chip SRAM
2777 0x80000000 - 0x8fffffff I/O registers
2778 0xc0000000 - 0xc1ffffff DRAM (EDB7211, EDB7212)
2779 0xc0000000 - 0xc0ffffff DRAM (EDB7312)
2780
2781 Virtual Address Range C B Description
2782 ----------------------- - - ----------------------------------
2783 0x00000000 - 0x01ffffff Y Y DRAM
2784 0x00000000 - 0x00fcffff Y Y DRAM (EDB7312)
2785 0x20000000 - 0x2fffffff N N Expansion 2
2786 0x30000000 - 0x3fffffff N N Expansion 3
2787 0x40000000 - 0x4fffffff N N PCMCIA 0
2788 0x50000000 - 0x5fffffff N N PCMCIA 1
2789 0x60000000 - 0x600007ff Y Y On-chip SRAM
2790 0x80000000 - 0x8fffffff N N I/O registers
2791 0xc0000000 - 0xc001ffff N Y LCD buffer (if configured)
2792 0xe0000000 - 0xe1ffffff Y Y NOR Flash (EDB7211, EDB7212)
2793 0xe0000000 - 0xe0ffffff Y Y NOR Flash (EDB7312)
2794 0xf0000000 - 0xf1ffffff Y Y NAND Flash
2795
2796 The flash based RedBoot image occupies virtual addresses 0xe0000000 - 0xe003ffff.
2797 </programlisting></para>
2798 </sect2>
2799 <sect2>
2800 <title>Resource Usage </title>
2801 <para>
2802 The RAM based RedBoot image occupies RAM addresses
2803 <computeroutput>0x40000 - 0x7ffff</computeroutput>.
2804 The ROMRAM based RedBoot image (EDB7312 only) occupies RAM addresses
2805 <computeroutput>0x1000 - 0x3ffff</computeroutput>.
2806 RAM addresses start at
2807 <computeroutput>0x80000</computeroutput>
2808 and continue up to the top of the installed
2809 physical RAM size, less the memory reserved for MMU page tables
2810 (0x9000 bytes) and the LCD display buffer, if enabled (0x20000 bytes). The
2811 RAM is available for general use such as a temporary scratchpad
2812 for downloaded images before they are written to flash. </para>
2813 <para>The EP7xxx timer #2 is used as a polled timer to provide timeout support
2814 for network and XModem file transfers.</para>
2815 </sect2><sect2>
2816 <title>Rebuilding RedBoot</title>
2817 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
2818 The values for ARCH_DIR and PLATFORM_DIR on this platform are
2819 &ldquo;arm&rdquo; and &ldquo;edb7xxx&rdquo; respectively.
2820 The value for TARGET is either &ldquo;edb7211&rdquo; or &ldquo;edb7212&rdquo;
2821 or &ldquo;edb7312&rdquo;,
2822 depending on the desired platform.
2823 Note that the configuration export files supplied in the <computeroutput>
2824 hal/arm/edb7xxx/<replaceable>VERSION</replaceable>/misc</computeroutput>
2825 directory in the RedBoot source tree should be used, and the correct
2826 edb7XXX variant chosen.</para>
2827 </sect2>
2828 </sect1>
2829 <?Pub _newpage>
2830 <sect1 id="nano">
2831 <title>Bright Star Engineering commEngine and nanoEngine</title>
2832 <sect2>
2833 <title>Overview</title>
2834 <para><indexterm><primary>commEngine</primary><secondary>installing and testing
2835 </secondary></indexterm><indexterm><primary>nanoEngine</primary><secondary>
2836 installing and testing</secondary></indexterm><indexterm><primary>installing
2837 and testing</primary><secondary>commEngine</secondary></indexterm><indexterm>
2838 <primary>installing and testing</primary><secondary>nanoEngine</secondary>
2839 </indexterm>RedBoot supports a serial port and the built in ethernet port
2840 for communication and downloads. The default serial port settings are 38400,8,N,1.
2841 RedBoot runs from and supports flash management for the system flash region.
2842 These configurations are supported:<itemizedlist>
2843 <listitem><para>RedBoot running from the first free block at 0x40000</para>
2844 </listitem>
2845 <listitem><para>RedBoot running from RAM</para>
2846 </listitem>
2847 </itemizedlist></para>
2848 </sect2>
2849 <sect2>
2850 <title>Initial Installation</title>
2851 <para>Unlike other targets, the nanoEngine comes equipped with boot firmware
2852 which you cannot modify. See chapter 5, "nanoEngine Firmware" of the <citetitle>
2853 nanoEngine Hardware Reference Manual</citetitle> (we refer to "July 17, 2000
2854 Rev 0.6") from Bright Star Engineering. </para>
2855 <para>Because of this, eCos, and therefore Redboot, only supports RAM and
2856 POST startup types, rather than the more usual ROM, RAM and optionally, POST.
2857 </para>
2858 <para>Briefly, the POST-startup RedBoot image lives in flash following the
2859 BSE firmware. The BSE firmware is configured, using its standard <computeroutput>
2860 bootcmd</computeroutput> parameter, to jump into the RedBoot image at startup.
2861 </para>
2862 </sect2>
2863 <sect2>
2864 <title>Download Instructions</title>
2865 <para>You can perform the initial load of the POST-startup RedBoot image into
2866 flash using the BSE firmware's <command>load</command> command.
2867 This will load a binary file, using TFTP, and program it into flash in one
2868 operation. Because no memory management is used in the BSE firmware, flash
2869 is mapped from address zero upwards, so the address for the RedBoot POST image
2870 is 0x40000. You must use the binary version of RedBoot for this, <filename>
2871 redboot-post.bin</filename>. </para>
2872 <para>This assumes you have set up the other BSE firmware config parameters
2873 such that it can communicate over your network to your TFTP server. <screen>
2874
2875 ><userinput>load /tftpboot/redboot-post.bin 40000</userinput>
2876 loading ... erasing blk at 00040000
2877 erasing blk at 00050000
2878 94168 bytes loaded cksum 00008579
2879 done
2880 >
2881 > <userinput>set bootcmd "go 40000"</userinput>
2882 > <userinput>get</userinput>
2883 myip = 10.16.19.198
2884 netmask = 255.255.255.0
2885 eth = 0
2886 gateway = 10.16.19.66
2887 serverip = 10.16.19.66
2888 bootcmd = go 40000
2889 > </screen> <note><title>NOTE</title>
2890 <para>the BSE firmware runs its serial IO at 9600 Baud; RedBoot runs instead
2891 at 38400 Baud. You must select the right baud rate in your terminal program
2892 to be able to set up the BSE firmware.</para>
2893 </note> After a reset, the BSE firmware will print <screen>Boot: BSE 2000 Sep 12 2000 14:00:30
2894 autoboot: "go 40000" [hit ESC to abort]</screen>and then RedBoot starts, switching
2895 to 38400 Baud.</para>
2896 <para>Once you have installed a bootable RedBoot in the system in this manner,
2897 we advise re-installing using the generic method described in <xref linkend="updating-redboot">
2898 in order that the Flash Image System contains an appropriate description of
2899 the flash entries.</para>
2900 </sect2>
2901 <sect2>
2902 <title>Cohabiting with POST in Flash</title>
2903 <para>The configuration export file named <filename>redboot_POST.ecm</filename>
2904 configures redboot to build for execution at address 0x50040000 (or, during
2905 bootup, 0x00040000). This is to allow power-on self-test (POST) code or immutable
2906 firmware to live in the lower addresses of the flash and to run before RedBoot
2907 gets control. The assumption is that RedBoot will be entered at its base address
2908 in physical memory, that is 0x00040000. </para>
2909 <para>Alternatively, for testing, you can call it in an already running system
2910 by using <userinput>go 0x50040040</userinput> at another RedBoot prompt, or
2911 a branch to that address. The address is where the reset vector points, and
2912 is reported by RedBoot's <userinput>tftp load</userinput> command and listed
2913 by the <userinput>fis list</userinput> command, amongst other places. </para>
2914 <para>Using the POST configuration enables a normal config option which causes
2915 linking and initialization against memory layout files called "...post..."
2916 rather than "...rom..." or "...ram..." in the <computeroutput>include/pkgconf
2917 </computeroutput> directory. Specifically: <programlisting>665 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.h
2918 839 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.ldi
2919 585 Feb 9 17:57 include/pkgconf/mlt_arm_sa11x0_nano_post.mlt</programlisting>It
2920 is these you should edit if you wish to move that execution address from 0x50040000
2921 in the POST configuration. Startup type naturally remains ROM in this configuration.
2922 </para>
2923 <para>Because the nanoEngine contains immutable boot firmware at the start
2924 of flash, RedBoot for this target is configured to reserve that area in the
2925 Flash Image System, and to create by default an entry for the POST startup
2926 RedBoot.
2927 <programlisting>
2928 RedBoot> <userinput>fis list</userinput>
2929 Name FLASH addr Mem addr Length Entry point
2930 (reserved) 0x50000000 0x50000000 0x00040000 0x00000000
2931 RedBoot[post] 0x50040000 0x00100000 0x00020000 0x50040040
2932 RedBoot config 0x503E0000 0x503E0000 0x00010000 0x00000000
2933 FIS directory 0x503F0000 0x503F0000 0x00010000 0x00000000
2934 RedBoot>
2935 </programlisting>
2936 The entry "(reserved)" ensures that the FIS cannot attempt
2937 to overwrite the BSE firmware, thus ensuring that the board remains bootable
2938 and recoverable even after installing a broken RedBoot image.</para>
2939 </sect2>
2940 <sect2>
2941 <title>Special RedBoot Commands</title>
2942 <para>The nanoEngine/commEngine has one or two Intel i82559 Ethernet controllers
2943 installed, but these have no associated serial EEPROM in which to record their
2944 Ethernet Station Address (ESA, or MAC address). The BSE firmware records an
2945 ESA for the device it uses, but this information is not available to RedBoot;
2946 we cannot share it.</para>
2947 <para>To keep the ESAs for the two ethernet interfaces, two new items of RedBoot
2948 configuration data are introduced. You can list them with the RedBoot command <command>
2949 fconfig -l</command> thus:
2950 <programlisting>
2951 RedBoot> <userinput>fconfig -l</userinput>
2952 Run script at boot: false
2953 Use BOOTP for network configuration: false
2954 Local IP address: 10.16.19.91
2955 Default server IP address: 10.16.19.66
2956 Network hardware address [MAC] for eth0: 0x00:0xB5:0xE0:0xB5:0xE0:0x99
2957 Network hardware address [MAC] for eth1: 0x00:0xB5:0xE0:0xB5:0xE0:0x9A
2958 GDB connection port: 9000
2959 Network debug at boot time: false
2960 RedBoot></programlisting>You should set them before running RedBoot or eCos
2961 applications with the board connected to a network. The <command>fconfig
2962 </command> command can be used as for any configuration data item;
2963 the entire ESA is entered in one line.</para>
2964 </sect2>
2965 <sect2>
2966 <title>Memory Maps</title>
2967 <para>The first level page table is located at physical address 0xc0004000.
2968 No second level tables are used. <note><title>NOTE</title>
2969 <para>The virtual memory maps in this section use a C and B column to indicate
2970 whether or not the region is cached (C) or buffered (B).</para>
2971 </note><programlisting>Physical Address Range Description
2972 ----------------------- ----------------------------------
2973 0x00000000 - 0x003fffff 4Mb FLASH (nCS0)
2974 0x18000000 - 0x18ffffff Internal PCI bus - 2 x i82559 ethernet
2975 0x40000000 - 0x4fffffff External IO or PCI bus
2976 0x80000000 - 0xbfffffff SA-1110 Internal Registers
2977 0xc0000000 - 0xc7ffffff DRAM Bank 0 - 32Mb SDRAM
2978 0xc8000000 - 0xcfffffff DRAM Bank 1 - empty
2979 0xe0000000 - 0xe7ffffff Cache Clean
2980
2981 Virtual Address Range C B Description
2982 ----------------------- - - ----------------------------------
2983 0x00000000 - 0x001fffff Y Y DRAM - 8Mb to 32Mb
2984 0x18000000 - 0x180fffff N N Internal PCI bus - 2 x i82559 ethernet
2985 0x40000000 - 0x4fffffff N N External IO or PCI bus
2986 0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0)
2987 0x80000000 - 0xbfffffff N N SA-1110 Internal Registers
2988 0xc0000000 - 0xc0ffffff N Y DRAM Bank 0: 8 or 16Mb
2989 0xc8000000 - 0xc8ffffff N Y DRAM Bank 1: 8 or 16Mb or absent
2990 0xe0000000 - 0xe7ffffff Y Y Cache Clean</programlisting>The FLASH based
2991 RedBoot POST-startup image occupies virtual addresses 0x50040000 - 0x5005ffff.
2992 </para>
2993 <para>The ethernet devices use a "PCI window" to communicate with the CPU.
2994 This is 1Mb of SDRAM which is shared with the ethernet devices that are on
2995 the PCI bus. It is neither cached nor buffered, to ensure that CPU and PCI
2996 accesses see correct data in the correct order. By default it is configured
2997 to be megabyte number 30, at addresses 0x01e00000-0x01efffff. This can be
2998 modified, and indeed must be, if less than 32Mb of SDRAM is installed, via
2999 the memory layout tool, or by moving the section <computeroutput>__pci_window
3000 </computeroutput> referred to by symbols <computeroutput>CYGMEM_SECTION_pci_window*
3001 </computeroutput> in the linker script. </para>
3002 <para>Though the nanoEngine ships with 32Mb of SDRAM all attached to DRAM
3003 bank 0, the code can cope with any of these combinations also; "2 x " in this
3004 context means one device in each DRAM Bank. <programlisting>1 x 8Mb = 8Mb 2 x 8Mb = 16Mb
3005 1 x 16Mb = 16Mb 2 x 16Mb = 32Mb</programlisting>All are programmed the same
3006 in the memory controller. </para>
3007 <para>Startup code detects which is fitted and programs the memory map accordingly.
3008 If the device(s) is 8Mb, then there are gaps in the physical memory map, because
3009 a high order address bit is not connected. The gaps are the higher 2Mb out
3010 of every 4Mb. The SA11x0 OS timer is used as a polled timer to provide timeout
3011 support within RedBoot.</para>
3012 </sect2>
3013 <sect2>
3014 <title>Nano Platform Port</title>
3015 <para>The nano is in the set of SA11X0-based platforms. It uses the arm architectural
3016 HAL, the sa11x0 variant HAL, plus the nano platform hal. These are components
3017 <programlisting>CYGPKG_HAL_ARM hal/arm/arch/
3018 CYGPKG_HAL_ARM_SA11X0 hal/arm/sa11x0/var
3019 CYGPKG_HAL_ARM_SA11X0_NANO hal/arm/sa11x0/nano</programlisting> respectively.
3020 </para>
3021 <para>The target name is "nano" which includes all these, plus the ethernet
3022 driver packages, flash driver, and so on.</para>
3023 </sect2>
3024 <sect2>
3025 <title>Ethernet Driver</title>
3026 <para>The ethernet driver is in two parts: </para>
3027 <para>A generic ether driver for Intel i8255x series devices, specifically
3028 the i82559, is <computeroutput>devs/eth/intel/i82559</computeroutput>. Its
3029 package name is <computeroutput>CYGPKG_DEVS_ETH_INTEL_I82559</computeroutput>.
3030 </para>
3031 <para>The platform-specific ether driver is <computeroutput>devs/eth/arm/nano
3032 </computeroutput>. Its package is <computeroutput>CYGPKG_DEVS_ETH_ARM_NANO
3033 </computeroutput>. This tells the generic driver the address in IO memory
3034 of the chip, for example, and other configuration details. This driver picks
3035 up the ESA from RedBoot's configuration data - unless configured to use a
3036 static ESA in the usual manner. </para>
3037 </sect2><sect2>
3038 <title>Rebuilding RedBoot</title>
3039 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3040 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3041 &ldquo;nano&rdquo;, &ldquo;arm&rdquo; and &ldquo;sa11x0/nano&rdquo; respectively.
3042 Note that the configuration export files supplied in the <computeroutput>
3043 hal/arm/sa11x0/nano/<replaceable>VERSION</replaceable>/misc</computeroutput>
3044 directory in the RedBoot source tree should be used.</para>
3045 </sect2>
3046 </sect1>
3047 <?Pub _newpage>
3048 <sect1 id="x86pc">
3049 <title>x86 Based PC</title>
3050 <sect2>
3051 <title>Overview</title>
3052 <para><indexterm><primary>x86 Based PC</primary><secondary>installing and
3053 testing</secondary></indexterm><indexterm><primary>installing and testing
3054 </primary><secondary>x86 Based PC</secondary></indexterm>RedBoot supports
3055 two serial ports and an Intel i82559 based ethernet card (for example an Intel
3056 EtherExpress Pro 10/100) for communication and downloads. The default serial
3057 port settings are 38400,8,N,1. RedBoot runs from a boot floppy disk installed
3058 in the A: drive of the PC.</para>
3059 </sect2>
3060 <sect2>
3061 <title>Initial Installation</title>
3062 <para>RedBoot takes the form of a self-booting image that must be written
3063 onto a formatted floppy disk. The process will erase any file system or data
3064 that already exists on that disk, so proceed with caution.</para>
3065 <para>For Red Hat Linux users, this can be done by:</para>
3066 <screen> $ <userinput>dd conv=sync if=install/bin/redboot.bin of=/dev/fd0H1440
3067 </userinput></screen>
3068 <para>For NT Cygwin users, this can be done by first ensuring that the raw
3069 floppy device is mounted as <filename>/dev/fd0</filename>. To check if this
3070 is the case, type the command <userinput>mount</userinput> at the Cygwin bash
3071 prompt. If the floppy drive is already mounted, it will be listed as something
3072 similar to the following line:</para>
3073 <screen> \\.\a: /dev/fd0 user binmode</screen>
3074 <para>If this line is not listed, then mount the floppy drive using the command:
3075 </para>
3076 <screen> $ <userinput>mount -f -b //./a: /dev/fd0</userinput></screen>
3077 <para>To actually install the boot image on the floppy, use the command:</para>
3078 <screen> $ <userinput>dd conv=sync if=install/bin/redboot.bin of=/dev/fd0
3079 </userinput></screen>
3080 <para>Insert this floppy in the A: drive of the PC to be used as a target
3081 and ensure that the BIOS is configured to boot from A: by default. On reset,
3082 the PC will boot from the floppy and be ready to be debugged via either serial
3083 line, or via the ethernet interface if it is installed.</para>
3084 <note><title>NOTE</title>
3085 <para>Unreliable floppy media may cause the write to silently fail. This
3086 can be determined if the RedBoot image does not correctly
3087 boot. In such cases, the floppy should be (unconditionally) reformatted
3088 using the <command>fdformat</command> command on Linux, or
3089 <command>format a: /u</command> on DOS/Windows.</para>
3090 </note>
3091 </sect2>
3092 <sect2>
3093 <title>Flash management</title>
3094 <para>PC RedBoot does not support any FLASH commands.</para>
3095 </sect2>
3096 <sect2>
3097 <title>Special RedBoot Commands </title>
3098 <para>None.</para>
3099 </sect2>
3100 <sect2>
3101 <title>Memory Maps </title>
3102 <para>All selectors are initialized to map the entire 32-bit address space
3103 in the familiar protected mode flat model. Page translation is not used.
3104 RAM up to 640K is mapped to 0x0 to 0xa0000. RAM above 640K is mapped
3105 from address 0x100000 upwards. Space is reserved between 0xa0000 and
3106 0x100000 for option ROMs and the BIOS.
3107 </para>
3108 </sect2>
3109 <sect2>
3110 <title>Resource Usage </title>
3111 <para>RedBoot is loaded into RAM at address 0x2000 and reserves all RAM below
3112 0xa0000 for its own use. RAM applications should load from address 0x100000
3113 upwards.</para>
3114 </sect2>
3115 <sect2>
3116 <title>Rebuilding RedBoot</title>
3117 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3118 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3119 &ldquo;pc&rdquo;, &ldquo;i386&rdquo; and &ldquo;pc&rdquo; respectively.
3120 Note that the configuration export files supplied in the <computeroutput>
3121 hal/i386/pc/<replaceable>VERSION</replaceable>/misc</computeroutput>
3122 directory in the RedBoot source tree should be used. In particular, the
3123 <filename>redboot_FLOPPY.ecm</filename> file is used for building a version
3124 of RedBoot suitable for booting off a floppy disk.</para>
3125 </sect2>
3126 </sect1>
3127 <?Pub _newpage>
3128 <sect1 id="CalmRISC16">
3129 <title>Samsung CalmRISC16 Core Evaluation Board </title>
3130 <sect2>
3131 <title>Overview</title>
3132 <para><indexterm><primary>Samsung CalmRISC16 Core EVB</primary><secondary>installing
3133 and testing</secondary></indexterm><indexterm><primary>installing and testing
3134 </primary><secondary>Samsung CalmRISC16 Core EVB</secondary></indexterm> The
3135 Samsung CalmRISC16 evaluation platform consists of two boards connected by a
3136 ribbon cable. One board contains the CPU core and memory. The other board is
3137 called the MDSChip board and provides the host interface. The calmRISC16 is a
3138 harvard architecture with separate 22-bit program and data addresses. The
3139 instruction set provides no instruction for writing to program memory. The
3140 MDSChip board firmware (called CalmBreaker) provides a pseudo register interface
3141 so that code running on the core has access to a serial channel and a mechanism
3142 to write to program memory. The serial channel is fixed at 57600-8-N-1 by the
3143 firmware. The CalmBreaker firmware also provides a serial protocol which
3144 allows a host to download a program and to start or stop the core board.</para>
3145 <para>Only a ROM startup RedBoot configuration is supported.</para>
3146 </sect2>
3147 <sect2>
3148 <title>Initial Installation Method </title>
3149 <para>The CalmRISC16 core is controlled through the MDSChip board. There is
3150 no non-volatile storage available for RedBoot, so RedBoot must be downloaded
3151 to the board on every power cycle. A small utility program is used to download
3152 S-record files to the eval board. Sources and build instructions for this
3153 utility are located in the RedBoot sources in:
3154 <programlisting> .../packages/hal/calmrisc16/ceb/current/support
3155 </programlisting></para>
3156 <para>To download the RedBoot image, first press the reset button on the MDSChip
3157 board. The green 'Run' LED on the core board should go off. Now, use the
3158 utility to download the RedBoot image with:
3159 <programlisting> % calmbreaker -p /dev/term/b --reset --srec-code -f redboot.elf
3160 </programlisting>
3161 Note that the '-p /dev/term/b' specifies the serial port to use and will vary
3162 from system to syetm. The download will take about two minutes. After it
3163 finishes, start RedBoot with:
3164 <programlisting> % calmbreaker -p /dev/term/b --run</programlisting>
3165 The 'Run' LED on the core board should be on. Connecting to the MDSboard with
3166 a terminal and typing enter should result in RedBoot reprinting the command
3167 prompt.
3168 </para>
3169 </sect2>
3170 <sect2>
3171 <title>Special RedBoot Commands </title>
3172 <para>None.</para>
3173 </sect2>
3174 <sect2>
3175 <title>Special Note on Serial Channel </title>
3176 <para>The MDSChip board uses a relatively slow microcontroller to provide
3177 the pseudo-register interface to the core board. This pseudo-register
3178 interface provides access to the serial channel and write access to program
3179 memory. Those interfaces are slow and the serial channel is easily overrun
3180 by a fast host. For this reason, GDB must be told to limit the size of code
3181 download packets to avoid serial overrun. This is done with the following
3182 GDB command:
3183 <programlisting> (gdb) set download-write-size 25</programlisting>
3184 </para>
3185 </sect2>
3186 <sect2>
3187 <title>Resource Usage </title>
3188 <para>The RedBoot image occupies program addresses 0x000000 - 0x00ffff
3189 and data addresses 0x000000 - 0x00ffff.
3190 </para>
3191 </sect2>
3192 <sect2>
3193 <title>Rebuilding RedBoot</title>
3194 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3195 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3196 &ldquo;calm16_ceb&rdquo;, &ldquo;calmrisc16&rdquo; and &ldquo;ceb&rdquo; respectively.
3197 Note that the configuration export files supplied in the <computeroutput>
3198 hal/calmrisc16/ceb/<replaceable>VERSION</replaceable>/misc</computeroutput>
3199 directory in the RedBoot source tree should be used.</para>
3200 </sect2>
3201 </sect1>
3202 <?Pub _newpage>
3203 <sect1 id="CalmRISC32">
3204 <title>Samsung CalmRISC32 Core Evaluation Board </title>
3205 <sect2>
3206 <title>Overview</title>
3207 <para><indexterm><primary>Samsung CalmRISC32 Core EVB</primary><secondary>installing
3208 and testing</secondary></indexterm><indexterm><primary>installing and testing
3209 </primary><secondary>Samsung CalmRISC32 Core EVB</secondary></indexterm> The
3210 Samsung CalmRISC32 evaluation platform consists of two boards connected by a
3211 ribbon cable. One board contains the CPU core and memory. The other board is
3212 called the MDSChip board and provides the host interface. The calmRISC32 is a
3213 harvard architecture with separate 32-bit program and data addresses. The
3214 instruction set provides no instruction for writing to program memory. The
3215 MDSChip board firmware (called CalmBreaker) provides a pseudo register interface
3216 so that code running on the core has access to a serial channel and a mechanism
3217 to write to program memory. The serial channel is fixed at 57600-8-N-1 by the
3218 firmware. The CalmBreaker firmware also provides a serial protocol which
3219 allows a host to download a program and to start or stop the core board.</para>
3220 <para>Only a ROM startup RedBoot configuration is supported.</para>
3221 </sect2>
3222 <sect2>
3223 <title>Initial Installation Method </title>
3224 <para>The calmRISC32 core is controlled through the MDSChip board. There is
3225 no non-volatile storage available for RedBoot, so RedBoot must be downloaded
3226 to the board on every power cycle. A small utility program is used to download
3227 S-record files to the eval board. Sources and build instructions for this
3228 utility are located in the RedBoot sources in:
3229 <programlisting> .../packages/hal/calmrisc32/ceb/current/support
3230 </programlisting></para>
3231 <para>To download the RedBoot image, first press the reset button on the MDSChip
3232 board. The green 'Run' LED on the core board should go off. Now, use the
3233 utility to download the RedBoot image with:
3234 <programlisting> % calmbreaker -p /dev/term/b --reset --srec-code -f redboot.elf
3235 </programlisting>
3236 Note that the '-p /dev/term/b' specifies the serial port to use and will vary
3237 from system to syetm. The download will take about two minutes. After it
3238 finishes, start RedBoot with:
3239 <programlisting> % calmbreaker -p /dev/term/b --run</programlisting>
3240 The 'Run' LED on the core board should be on. Connecting to the MDSboard with
3241 a terminal and typing enter should result in RedBoot reprinting the command
3242 prompt.
3243 </para>
3244 </sect2>
3245 <sect2>
3246 <title>Special RedBoot Commands </title>
3247 <para>None.</para>
3248 </sect2>
3249 <sect2>
3250 <title>Special Note on Serial Channel </title>
3251 <para>The MDSChip board uses a relatively slow microcontroller to provide
3252 the pseudo-register interface to the core board. This pseudo-register
3253 interface provides access to the serial channel and write access to program
3254 memory. Those interfaces are slow and the serial channel is easily overrun
3255 by a fast host. For this reason, GDB must be told to limit the size of code
3256 download packets to avoid serial overrun. This is done with the following
3257 GDB command:
3258 <programlisting> (gdb) set download-write-size 25</programlisting>
3259 </para>
3260 </sect2>
3261 <sect2>
3262 <title>Resource Usage </title>
3263 <para>The RedBoot image occupies program addresses 0x00000000 - 0x0000ffff
3264 and data addresses 0x00000000 - 0x0000ffff.
3265 </para>
3266 </sect2>
3267 <sect2>
3268 <title>Rebuilding RedBoot</title>
3269 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3270 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3271 &ldquo;calm32_ceb&rdquo;, &ldquo;calmrisc32&rdquo; and &ldquo;ceb&rdquo; respectively.
3272 Note that the configuration export files supplied in the <computeroutput>
3273 hal/calmrisc32/ceb/<replaceable>VERSION</replaceable>/misc</computeroutput>
3274 directory in the RedBoot source tree should be used.</para>
3275 </sect2>
3276 </sect1>
3277
3278 <?Pub _newpage>
3279 <sect1 id="edk7708">
3280 <title>Hitachi EDK7708 (edk7708)</title>
3281 <sect2>
3282 <title>Overview</title>
3283 <para><indexterm><primary>Hitachi SH EDK7708</primary><secondary>installing
3284 and testing</secondary></indexterm><indexterm><primary>installing and testing
3285 </primary><secondary>Hitachi SH EDK7708</secondary></indexterm>RedBoot uses
3286 the serial port. The default serial port settings are 38400,8,N,1.</para>
3287 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
3288 are supported: <itemizedlist>
3289 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
3290 </para>
3291 </listitem>
3292 <listitem><para>RedBoot running from the board's flash boot sector. </para>
3293 </listitem>
3294 </itemizedlist></para>
3295 </sect2>
3296 <sect2>
3297 <title>Initial Installation Method </title>
3298 <para>Program the ROM RedBoot image into flash using an eprom programmer.</para>
3299
3300 </sect2>
3301 <sect2>
3302 <title>Flash management</title>
3303 <sect3>
3304 <title>Updating the primary RedBoot image</title>
3305 <para>To update the primary RedBoot images, follow the procedures detailed
3306 in <xref linkend="update-primary-image">, but the actual numbers used with
3307 the flags in the sample commands should be: <programlisting>-f 0x80000000
3308 -b 0x88040000
3309 -l 0x20000</programlisting></para>
3310 </sect3>
3311 </sect2>
3312
3313 <sect2>
3314 <title>Memory Maps </title>
3315 <para>RedBoot sets up the following memory map on the EDK7708 board.<programlisting>
3316 Physical Address Range Description
3317 ----------------------- -----------
3318 0x80000000 - 0x8001ffff Flash (AT29LV1024)
3319 0x88000000 - 0x881fffff DRAM
3320 0xa4000000 - 0xa40000ff LED ON
3321 0xb8000000 - 0xb80000ff LED ON
3322 </programlisting></para>
3323 </sect2>
3324 <sect2>
3325 <title>Resource Usage </title>
3326 <para>The flash based RedBoot image occupies flash addresses 0x80000000 -
3327 0x8001ffff. RedBoot also reserves RAM (0x88000000 - 0x8800ffff) for RedBoot
3328 runtime uses. RAM based RedBoot configurations are designed to run from RAM
3329 at physical addresses 0x88010000 - 0x8803ffff. RAM physical addresses from
3330 0x88040000 to the end of RAM are available for general use, such as a temporary
3331 scratchpad for downloaded images, before they are written to flash.</para>
3332 </sect2>
3333 <sect2>
3334 <title>Rebuilding RedBoot</title>
3335 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3336 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3337 &ldquo;edk7708&rdquo;, &ldquo;sh&rdquo; and &ldquo;edk7708&rdquo; respectively.
3338 Note that the configuration export files supplied in the <computeroutput>
3339 hal/sh/edk7708/<replaceable>VERSION</replaceable>/misc</computeroutput>
3340 directory in the RedBoot source tree should be used.</para>
3341 </sect2>
3342 </sect1>
3343
3344 <?Pub _newpage>
3345 <sect1 id="se77x9">
3346 <title>Hitachi Solution Engine 77X9 (SE77X9)</title>
3347 <sect2>
3348 <title>Overview</title>
3349 <para><indexterm><primary>Hitachi SH SE77X9</primary><secondary>installing
3350 and testing</secondary></indexterm><indexterm><primary>installing and testing
3351 </primary><secondary>Hitachi SH SE77X9</secondary></indexterm>This
3352 description covers the MS7729SE01 and MS7709SSE0101 variants. See <xref linkend="se7709">
3353 for instructions for the MS7709SE01 variant.</para>
3354
3355 <para>RedBoot uses
3356 the COM1 and COM2 serial ports. The default serial port settings are 38400,8,N,1.
3357 Ethernet is also supported using the 10-base T connector. </para>
3358 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
3359 are supported: <itemizedlist>
3360 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
3361 </para>
3362 </listitem>
3363 <listitem><para>RedBoot running from the board's flash boot sector. </para>
3364 </listitem>
3365 </itemizedlist></para>
3366 </sect2>
3367 <sect2>
3368 <title>Initial Installation Method </title>
3369 <para>The Solution Engine ships with the Hitachi boot monitor in EPROM
3370 which allows for initial programming of RedBoot:</para>
3371
3372 <orderedlist>
3373 <listitem><para>Set switches SW4-3 and SW4-4 to ON [boot from EPROM]</para>
3374 </listitem>
3375 <listitem><para>Connect a serial cable to COM2 and power up the board.</para>
3376 </listitem>
3377 <listitem><para>After the boot monitor banner, invoke the flash
3378 download/program command:<programlisting>Ready &gt;fl</programlisting></para>
3379 </listitem>
3380 <listitem><para>The monitor should now ask for input:
3381 <programlisting>Flash ROM data copy to RAM
3382 Please Send A S-format Record</programlisting>At this point copy the
3383 RedBoot ROM SREC file to the serial port:<programlisting>
3384 $ cat redboot_ROM.eprom.srec &gt /dev/ttyS0</programlisting>Eventually you
3385 should see something like<programlisting>Start Addrs = A1000000
3386 End Addrs = A1xxxxxx
3387 Transfer complete</programlisting> from the monitor.
3388 </para></listitem>
3389 <listitem><para>Set switch SW4-3 to OFF [boot from flash] and reboot the board. You
3390 should now see the RedBoot banner.</para>
3391 </listitem>
3392 </orderedlist>
3393 </sect2>
3394 <sect2>
3395 <title>Flash management</title>
3396 <sect3>
3397 <title>Updating the primary RedBoot image</title>
3398 <para>To update the primary RedBoot images, follow the procedures detailed
3399 in <xref linkend="update-primary-image">, but the actual numbers used with
3400 the flags in the sample commands should be: <programlisting>-f 0x80000000
3401 -b 0x8c080000
3402 -l 0x20000</programlisting></para>
3403 </sect3>
3404 <sect3>
3405 <title>Updating the secondary RedBoot image</title>
3406 <para>To update the secondary RedBoot images, follow the procedures detailed
3407 in <xref linkend="different-version-from-RAM">, but the actual numbers used
3408 with the flags in the sample commands should be:
3409 <programlisting>
3410 -f 0x80020000
3411 -b 0x8c020000
3412 -r 0x8c020000
3413 -l 0x20000
3414 </programlisting></para>
3415 </sect3></sect2>
3416 <sect2>
3417 <title>Special RedBoot Commands </title>
3418 <para>The <command>exec</command> command which allows the loading
3419 and execution of Linux kernels
3420 is supported for this board (see <xref linkend="executing-programs">). The <command>
3421 exec</command> parameters used for the SE77x9 are:</para>
3422 <variablelist>
3423 <varlistentry>
3424 <term>-b <replaceable>&lt;addr></replaceable></term>
3425 <listitem><para>Parameter block address. This is normally the first
3426 page of the kernel image and defaults to 0x8c101000</para></listitem></varlistentry>
3427
3428 <varlistentry><term>-i <replaceable>&lt;addr></replaceable></term>
3429 <listitem><para>Start address of initrd
3430 image</para></listitem></varlistentry>
3431
3432 <varlistentry><term>-j <replaceable>&lt;size></replaceable></term>
3433 <listitem><para>Size of initrd image</para></listitem></varlistentry>
3434
3435 <varlistentry><term>-c <replaceable>"args"</replaceable></term>
3436 <listitem><para>Kernel arguments string</para></listitem></varlistentry>
3437
3438 <varlistentry><term>
3439 -m <replaceable>&lt;flags></replaceable></term>
3440 <listitem><para>Mount rdonly flags. If set to a non-zero value the
3441 root partition will be mounted read-only.</para></listitem></varlistentry>
3442
3443 <varlistentry><term>
3444 -f <replaceable>&lt;flags></replaceable></term>
3445 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry>
3446
3447 <varlistentry><term>-r <replaceable>&lt;device number></replaceable></term>
3448 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry>
3449
3450 <varlistentry><term>-l <replaceable>&lt;type></replaceable></term>
3451 <listitem><para>Loader type</para></listitem></varlistentry>
3452
3453 </variablelist>
3454
3455 <para>Finally the kernel entry address can be specified as an optional
3456 argument. The default is 0x8c102000</para>
3457
3458 <para>
3459 On the SE77x9, Linux expects to be loaded at address 0x8c101000 with
3460 the entry point at 0x8c102000. This is configurable in the kernel
3461 using the CONFIG_MEMORY_START option.
3462 </para>
3463
3464 </sect2>
3465 <sect2>
3466 <title>Memory Maps </title>
3467 <para>RedBoot sets up the following memory map on the SE77x9 board.<programlisting>
3468 Physical Address Range Description
3469 ----------------------- -----------
3470 0x80000000 - 0x803fffff Flash (MBM29LV160)
3471 0x81000000 - 0x813fffff EPROM (M27C800)
3472 0x8c000000 - 0x8dffffff SDRAM
3473 0xb0000000 - 0xb03fffff Ethernet (DP83902A)
3474 0xb0400000 - 0xb07fffff SuperIO (FDC37C935A)
3475 0xb0800000 - 0xb0bfffff Switches
3476 0xb0c00000 - 0xbfffffff LEDs
3477 0xb1800000 - 0xb1bfffff PCMCIA (MaruBun)
3478 </programlisting></para>
3479 </sect2>
3480 <sect2>
3481 <title>Ethernet Driver</title>
3482 <para>The ethernet driver uses a hardwired ESA which can, at present,
3483 only be changed in CDL.</para>
3484 </sect2>
3485 <sect2>
3486 <title>Resource Usage </title>
3487 <para>The flash based RedBoot image occupies flash addresses 0x80000000 -
3488 0x8001ffff. RedBoot also reserves RAM (0x8c000000 - 0x8c01ffff) for RedBoot
3489 runtime uses. RAM based RedBoot configurations are designed to run from RAM
3490 at physical addresses 0x8c020000 - 0x8c07ffff. RAM physical addresses from
3491 0x8c080000 to the end of RAM are available for general use, such as a temporary
3492 scratchpad for downloaded images, before they are written to flash.</para>
3493 </sect2>
3494 <sect2>
3495 <title>Rebuilding RedBoot</title>
3496 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3497 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3498 &ldquo;se77x9&rdquo;, &ldquo;sh&rdquo; and &ldquo;se77x9&rdquo; respectively.
3499 Note that the configuration export files supplied in the <computeroutput>
3500 hal/sh/se77x9/<replaceable>VERSION</replaceable>/misc</computeroutput>
3501 directory in the RedBoot source tree should be used.</para>
3502 </sect2>
3503 </sect1>
3504
3505 <?Pub _newpage>
3506 <sect1 id="se7709">
3507 <title>Hitachi Solution Engine 7709 (SE77X9)</title>
3508 <sect2>
3509 <title>Overview</title>
3510 <para><indexterm><primary>Hitachi SH SE7709</primary><secondary>installing
3511 and testing</secondary></indexterm><indexterm><primary>installing and testing
3512 </primary><secondary>Hitachi SH SE7709</secondary></indexterm>This
3513 description covers the MS7709SE01 variant. See <xref linkend="se77x9">
3514 for instructions for the MS7729SE01 and MS7709SSE0101 variants.</para>
3515
3516 <para>RedBoot uses
3517 the COM1 and COM2 serial ports. The default serial port settings are 38400,8,N,1.
3518 Ethernet is also supported using the 10-base T connector. </para>
3519 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
3520 are supported: <itemizedlist>
3521 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
3522 </para>
3523 </listitem>
3524 <listitem><para>RedBoot running from the board's flash boot sector. </para>
3525 </listitem>
3526 </itemizedlist></para>
3527 </sect2>
3528 <sect2>
3529 <title>Initial Installation Method </title>
3530 <para>The Solution Engine ships with the Hitachi boot monitor in EPROM
3531 which allows for initial programming of RedBoot:</para>
3532
3533 <orderedlist>
3534 <listitem><para>Set switch SW4-1 to ON [boot from EPROM]</para>
3535 </listitem>
3536 <listitem><para>Connect a serial cable to CN1 (SCI) and power up the board.</para>
3537 </listitem>
3538 <listitem><para>After the boot monitor banner, invoke the flash
3539 download/program command:<programlisting>Ready &gt;fl</programlisting></para>
3540 </listitem>
3541 <listitem><para>The monitor should now ask for input:
3542 <programlisting>Flash ROM data copy to RAM
3543 Please Send A S-format Record</programlisting>At this point copy the
3544 RedBoot ROM SREC file to the serial port:<programlisting>
3545 $ cat redboot_SE7709RP_ROM.eprom.srec &gt /dev/ttyS0</programlisting>Eventually you
3546 should see something like<programlisting>Start Addrs = A1000000
3547 End Addrs = A1xxxxxx
3548 Transfer complete</programlisting> from the monitor.
3549 </para></listitem>
3550 <listitem><para>Set switch SW4-1 to OFF [boot from flash] and reboot the board. You
3551 should now see the RedBoot banner.</para>
3552 </listitem>
3553 </orderedlist>
3554 </sect2>
3555 <sect2>
3556 <title>Flash management</title>
3557 <sect3>
3558 <title>Updating the primary RedBoot image</title>
3559 <para>To update the primary RedBoot images, follow the procedures detailed
3560 in <xref linkend="update-primary-image">, but the actual numbers used with
3561 the flags in the sample commands should be: <programlisting>-f 0x80000000
3562 -b 0x8c080000
3563 -l 0x20000</programlisting></para>
3564 </sect3>
3565 <sect3>
3566 <title>Updating the secondary RedBoot image</title>
3567 <para>To update the secondary RedBoot images, follow the procedures detailed
3568 in <xref linkend="different-version-from-RAM">, but the actual numbers used
3569 with the flags in the sample commands should be:
3570 <programlisting>
3571 -f 0x80020000
3572 -b 0x8c020000
3573 -r 0x8c020000
3574 -l 0x20000
3575 </programlisting></para>
3576 </sect3></sect2>
3577 <sect2>
3578 <title>Special RedBoot Commands </title>
3579 <para>The <command>exec</command> command which allows the loading
3580 and execution of Linux kernels
3581 is supported for this board (see <xref linkend="executing-programs">). The <command>
3582 exec</command> parameters used for the SE77x9 are:</para>
3583 <variablelist>
3584 <varlistentry>
3585 <term>-b <replaceable>&lt;addr></replaceable></term>
3586 <listitem><para>Parameter block address. This is normally the first
3587 page of the kernel image and defaults to 0x8c101000</para></listitem></varlistentry>
3588
3589 <varlistentry><term>-i <replaceable>&lt;addr></replaceable></term>
3590 <listitem><para>Start address of initrd
3591 image</para></listitem></varlistentry>
3592
3593 <varlistentry><term>-j <replaceable>&lt;size></replaceable></term>
3594 <listitem><para>Size of initrd image</para></listitem></varlistentry>
3595
3596 <varlistentry><term>-c <replaceable>"args"</replaceable></term>
3597 <listitem><para>Kernel arguments string</para></listitem></varlistentry>
3598
3599 <varlistentry><term>
3600 -m <replaceable>&lt;flags></replaceable></term>
3601 <listitem><para>Mount rdonly flags. If set to a non-zero value the
3602 root partition will be mounted read-only.</para></listitem></varlistentry>
3603
3604 <varlistentry><term>
3605 -f <replaceable>&lt;flags></replaceable></term>
3606 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry>
3607
3608 <varlistentry><term>-r <replaceable>&lt;device number></replaceable></term>
3609 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry>
3610
3611 <varlistentry><term>-l <replaceable>&lt;type></replaceable></term>
3612 <listitem><para>Loader type</para></listitem></varlistentry>
3613
3614 </variablelist>
3615
3616 <para>Finally the kernel entry address can be specified as an optional
3617 argument. The default is 0x8c102000</para>
3618
3619 <para>
3620 For the the SE77x9, Linux by default expects to be loaded at
3621 0x8c001000 which conflicts with the data space used by RedBoot.
3622 To work around this, either change the CONFIG_MEMORY_START kernel
3623 option to a higher address, or use the compressed kernel image and load
3624 it at a higher address. For example, setting CONFIG_MEMORY_START to
3625 0x8c100000, the kernel expects to be loaded at address 0x8c101000 with
3626 the entry point at 0x8c102000.
3627 </para>
3628
3629 </sect2>
3630 <sect2>
3631 <title>Memory Maps </title>
3632 <para>RedBoot sets up the following memory map on the SE77x9 board.<programlisting>
3633 Physical Address Range Description
3634 ----------------------- -----------
3635 0x80000000 - 0x803fffff Flash (MBM29LV160)
3636 0x81000000 - 0x813fffff EPROM (M27C800)
3637 0x8c000000 - 0x8dffffff DRAM
3638 0xb0000000 - 0xb03fffff Ethernet (DP83902A)
3639 0xb0800000 - 0xb08fffff 16C552A
3640 0xb1000000 - 0xb100ffff Switches
3641 0xb1800000 - 0xb18fffff LEDs
3642 0xb8000000 - 0xbbffffff PCMCIA (MaruBun)
3643 </programlisting></para>
3644 </sect2>
3645 <sect2>
3646 <title>Ethernet Driver</title>
3647 <para>The ethernet driver uses a hardwired ESA which can, at present,
3648 only be changed in CDL.</para>
3649 </sect2>
3650 <sect2>
3651 <title>Resource Usage </title>
3652 <para>The flash based RedBoot image occupies flash addresses 0x80000000 -
3653 0x8001ffff. RedBoot also reserves RAM (0x8c000000 - 0x8c01ffff) for RedBoot
3654 runtime uses. RAM based RedBoot configurations are designed to run from RAM
3655 at physical addresses 0x8c020000 - 0x8c07ffff. RAM physical addresses from
3656 0x8c080000 to the end of RAM are available for general use, such as a temporary
3657 scratchpad for downloaded images, before they are written to flash.</para>
3658 </sect2>
3659 <sect2>
3660 <title>Rebuilding RedBoot</title>
3661 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3662 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3663 &ldquo;se77x9&rdquo;, &ldquo;sh&rdquo; and &ldquo;se77x9&rdquo; respectively.
3664 Note that the configuration export files (containing SE7709RP
3665 substring) supplied in the <computeroutput>
3666 hal/sh/se77x9/<replaceable>VERSION</replaceable>/misc</computeroutput>
3667 directory in the RedBoot source tree should be used.</para>
3668 </sect2>
3669 </sect1>
3670
3671 <?Pub _newpage>
3672 <sect1 id="se7751">
3673 <title>Hitachi Solution Engine 7751 (SE7751)</title>
3674 <sect2>
3675 <title>Overview</title>
3676 <para><indexterm><primary>Hitachi SH SE7751</primary><secondary>installing
3677 and testing</secondary></indexterm><indexterm><primary>installing and testing
3678 </primary><secondary>Hitachi SH SE7751</secondary></indexterm>RedBoot uses
3679 the COM1 serial port. The default serial port settings are 38400,8,N,1.
3680 Ethernet is also supported using the 10-base T connector. </para>
3681 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
3682 are supported: <itemizedlist>
3683 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
3684 </para>
3685 </listitem>
3686 <listitem><para>RedBoot running from the board's flash boot sector. </para>
3687 </listitem>
3688 </itemizedlist></para>
3689 </sect2>
3690 <sect2>
3691 <title>Initial Installation Method </title>
3692 <para>The Solution Engine ships with the Hitachi boot monitor in EPROM
3693 which allows for initial programming of RedBoot:</para>
3694
3695 <orderedlist>
3696 <listitem><para>Set switches SW5-3 and SW5-4 to ON [boot from EPROM]</para>
3697 </listitem>
3698 <listitem><para>Connect a serial cable to COM1 and power up the board.</para>
3699 </listitem>
3700 <listitem><para>After the boot monitor banner, invoke the flash
3701 download/program command:<programlisting>Ready &gt;fl</programlisting></para>
3702 </listitem>
3703 <listitem><para>The monitor should now ask for input:
3704 <programlisting>Flash ROM data copy to RAM
3705 Please Send A S-format Record</programlisting>At this point copy the
3706 RedBoot ROM SREC file to the serial port:<programlisting>
3707 $ cat redboot_ROM.eprom.srec &gt /dev/ttyS0</programlisting>Eventually you
3708 should see something like<programlisting>Start Addrs = A1000000
3709 End Addrs = A1xxxxxx
3710 Transfer complete</programlisting> from the monitor.
3711 </para></listitem>
3712 <listitem><para>Set switch SW5-3 to OFF [boot from flash] and reboot the board. You
3713 should now see the RedBoot banner.</para>
3714 </listitem>
3715 </orderedlist>
3716 </sect2>
3717 <sect2>
3718 <title>Flash management</title>
3719 <sect3>
3720 <title>Updating the primary RedBoot image</title>
3721 <para>To update the primary RedBoot images, follow the procedures detailed
3722 in <xref linkend="update-primary-image">, but the actual numbers used with
3723 the flags in the sample commands should be: <programlisting>-f 0x80000000
3724 -b 0x8c080000
3725 -l 0x20000</programlisting></para>
3726 </sect3>
3727 <sect3>
3728 <title>Updating the secondary RedBoot image</title>
3729 <para>To update the secondary RedBoot images, follow the procedures detailed
3730 in <xref linkend="different-version-from-RAM">, but the actual numbers used
3731 with the flags in the sample commands should be:
3732 <programlisting>
3733 -f 0x80020000
3734 -b 0x8c020000
3735 -r 0x8c020000
3736 -l 0x20000
3737 </programlisting></para>
3738 </sect3></sect2>
3739 <sect2>
3740 <title>Special RedBoot Commands </title>
3741 <para>The <command>exec</command> command which allows the loading
3742 and execution of Linux kernels
3743 is supported for this board (see <xref linkend="executing-programs">). The <command>
3744 exec</command> parameters used for the SE7751 are:</para>
3745 <variablelist>
3746 <varlistentry>
3747 <term>-b <replaceable>&lt;addr></replaceable></term>
3748 <listitem><para>Parameter block address. This is normally the first
3749 page of the kernel image and defaults to 0x8c101000</para></listitem></varlistentry>
3750
3751 <varlistentry><term>-i <replaceable>&lt;addr></replaceable></term>
3752 <listitem><para>Start address of initrd
3753 image</para></listitem></varlistentry>
3754
3755 <varlistentry><term>-j <replaceable>&lt;size></replaceable></term>
3756 <listitem><para>Size of initrd image</para></listitem></varlistentry>
3757
3758 <varlistentry><term>-c <replaceable>"args"</replaceable></term>
3759 <listitem><para>Kernel arguments string</para></listitem></varlistentry>
3760
3761 <varlistentry><term>
3762 -m <replaceable>&lt;flags></replaceable></term>
3763 <listitem><para>Mount rdonly flags. If set to a non-zero value the
3764 root partition will be mounted read-only.</para></listitem></varlistentry>
3765
3766 <varlistentry><term>
3767 -f <replaceable>&lt;flags></replaceable></term>
3768 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry>
3769
3770 <varlistentry><term>-r <replaceable>&lt;device number></replaceable></term>
3771 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry>
3772
3773 <varlistentry><term>-l <replaceable>&lt;type></replaceable></term>
3774 <listitem><para>Loader type</para></listitem></varlistentry>
3775
3776 </variablelist>
3777
3778 <para>Finally the kernel entry address can be specified as an optional
3779 argument. The default is 0x8c102000</para>
3780
3781 <para>
3782 On the SE7751, Linux expects to be loaded at address 0x8c101000 with
3783 the entry point at 0x8c102000. This is configurable in the kernel
3784 using the CONFIG_MEMORY_START option.
3785 </para>
3786
3787 </sect2>
3788 <sect2>
3789 <title>Memory Maps </title>
3790 <para>RedBoot sets up the following memory map on the SE7751 board.<programlisting>
3791 Physical Address Range Description
3792 ----------------------- -----------
3793 0x80000000 - 0x803fffff Flash (MBM29LV160)
3794 0x81000000 - 0x813fffff EPROM (M27C800)
3795 0x8c000000 - 0x8fffffff SDRAM
3796 0xb8000000 - 0xb8ffffff PCMCIA (MaruBun)
3797 0xb9000000 - 0xb9ffffff Switches
3798 0xba000000 - 0xbaffffff LEDs
3799 0xbd000000 - 0xbdffffff PCI MEM space
3800 0xbe200000 - 0xbe23ffff PCI Ctrl space
3801 0xbe240000 - 0xbe27ffff PCI IO space
3802 </programlisting></para>
3803 </sect2>
3804 <sect2>
3805 <title>Ethernet Driver</title>
3806 <para>The ethernet driver uses a hardwired ESA which can, at present,
3807 only be changed in CDL.</para>
3808 </sect2>
3809 <sect2>
3810 <title>Resource Usage </title>
3811 <para>The flash based RedBoot image occupies flash addresses 0x80000000 -
3812 0x8001ffff. RedBoot also reserves RAM (0x8c000000 - 0x8c01ffff) for RedBoot
3813 runtime uses. RAM based RedBoot configurations are designed to run from RAM
3814 at physical addresses 0x8c020000 - 0x8c07ffff. RAM physical addresses from
3815 0x8c080000 to the end of RAM are available for general use, such as a temporary
3816 scratchpad for downloaded images, before they are written to flash.</para>
3817 </sect2>
3818 <sect2>
3819 <title>Rebuilding RedBoot</title>
3820 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3821 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3822 &ldquo;se7751&rdquo;, &ldquo;sh&rdquo; and &ldquo;se7751&rdquo; respectively.
3823 Note that the configuration export files supplied in the <computeroutput>
3824 hal/sh/se7751/<replaceable>VERSION</replaceable>/misc</computeroutput>
3825 directory in the RedBoot source tree should be used.</para>
3826 </sect2>
3827 </sect1>
3828
3829 <?Pub _newpage>
3830 <sect1 id="hs7729pci">
3831 <title>Hitachi HS7729PCI</title>
3832 <sect2>
3833 <title>Overview</title>
3834 <para><indexterm><primary>Hitachi SH HS7729PCI</primary><secondary>installing
3835 and testing</secondary></indexterm><indexterm><primary>installing and testing
3836 </primary><secondary>Hitachi SH HS7729PCI</secondary></indexterm>RedBoot uses
3837 the COM1 and COM2 serial ports (and the debug port on the
3838 motherboard).
3839 The default serial port settings are 38400,8,N,1.
3840 Ethernet is also supported using a D-Link DFE-530TX PCI plugin card.</para>
3841 <para>Management of onboard flash is also supported. Two basic RedBoot configurations
3842 are supported: <itemizedlist>
3843 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
3844 </para>
3845 </listitem>
3846 <listitem><para>RedBoot running from the board's flash boot sector. </para>
3847 </listitem>
3848 </itemizedlist></para>
3849 </sect2>
3850 <sect2>
3851 <title>Initial Installation Method </title>
3852 <para>A copy of the ROM startup version of RedBoot must be programmed
3853 into the two EPROMs. Two files with a split version of the ROM image is
3854 provided: it is also possible to recreate these from the redboot.bin
3855 file, but requires the split_word.c program in
3856 hal/sh/hs7729pci/<replaceable>VERSION</replaceable>/misc to be built
3857 and executed with the redboot.bin filename as sole argument.</para>
3858
3859 <para>After doing this it is advised that another ROM version of
3860 RedBoot is programmed into the flash, and that copy be used for
3861 booting the board. This allows for software programmed updates of
3862 RedBoot instead of having to reprogram the EPROMs.</para>
3863
3864 <orderedlist>
3865 <listitem><para>Program the EPROMs with RedBoot. The .lo image should
3866 go in socket M1 and the .hi image in socket M2.
3867 </para>
3868 </listitem>
3869 <listitem><para>Set switch SW1-6 to ON [boot from EPROM]</para>
3870 </listitem>
3871 <listitem><para>Follow the instructions under Flash management for
3872 updating the flash copy of RedBoot, but use
3873 <programlisting>-f 0x80400000</programlisting> due to setting of
3874 the SW1-6 switch.</para>
3875 </listitem>
3876 <listitem><para>Set switch SW1-6 to OFF [boot from flash] and reboot the board. You
3877 should now see the RedBoot banner. At this time you may want to issue
3878 the command <programlisting>fis init</programlisting> to initialize
3879 the flash table with the correct addresses.</para>
3880 </listitem>
3881 </orderedlist>
3882
3883
3884 </sect2>
3885 <sect2>
3886 <title>Flash management</title>
3887 <sect3>
3888 <title>Updating the primary RedBoot image</title>
3889 <para>To update the primary RedBoot images, follow the procedures detailed
3890 in <xref linkend="update-primary-image">, but the actual numbers used with
3891 the flags in the sample commands should be: <programlisting>-f 0x80000000
3892 -b 0x8c080000
3893 -l 0x20000</programlisting></para>
3894 </sect3>
3895 <sect3>
3896 <title>Updating the secondary RedBoot image</title>
3897 <para>To update the secondary RedBoot images, follow the procedures detailed
3898 in <xref linkend="different-version-from-RAM">, but the actual numbers used
3899 with the flags in the sample commands should be:
3900 <programlisting>
3901 -f 0x80020000
3902 -b 0x8c020000
3903 -r 0x8c020000
3904 -l 0x20000
3905 </programlisting></para>
3906 </sect3></sect2>
3907 <sect2>
3908 <title>Special RedBoot Commands </title>
3909 <para>The <command>exec</command> command which allows the loading
3910 and execution of Linux kernels
3911 is supported for this board (see <xref linkend="executing-programs">). The <command>
3912 exec</command> parameters used for the HS7729PCI are:</para>
3913 <variablelist>
3914 <varlistentry>
3915 <term>-b <replaceable>&lt;addr></replaceable></term>
3916 <listitem><para>Parameter block address. This is normally the first
3917 page of the kernel image and defaults to 0x8c101000</para></listitem></varlistentry>
3918
3919 <varlistentry><term>-i <replaceable>&lt;addr></replaceable></term>
3920 <listitem><para>Start address of initrd
3921 image</para></listitem></varlistentry>
3922
3923 <varlistentry><term>-j <replaceable>&lt;size></replaceable></term>
3924 <listitem><para>Size of initrd image</para></listitem></varlistentry>
3925
3926 <varlistentry><term>-c <replaceable>"args"</replaceable></term>
3927 <listitem><para>Kernel arguments string</para></listitem></varlistentry>
3928
3929 <varlistentry><term>
3930 -m <replaceable>&lt;flags></replaceable></term>
3931 <listitem><para>Mount rdonly flags. If set to a non-zero value the
3932 root partition will be mounted read-only.</para></listitem></varlistentry>
3933
3934 <varlistentry><term>
3935 -f <replaceable>&lt;flags></replaceable></term>
3936 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry>
3937
3938 <varlistentry><term>-r <replaceable>&lt;device number></replaceable></term>
3939 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry>
3940
3941 <varlistentry><term>-l <replaceable>&lt;type></replaceable></term>
3942 <listitem><para>Loader type</para></listitem></varlistentry>
3943
3944 </variablelist>
3945
3946 <para>Finally the kernel entry address can be specified as an optional
3947 argument. The default is 0x8c102000</para>
3948
3949 <para>
3950 On the HS7729PCI, Linux expects to be loaded at address 0x8c101000 with
3951 the entry point at 0x8c102000. This is configurable in the kernel
3952 using the CONFIG_MEMORY_START option.
3953 </para>
3954
3955 </sect2>
3956 <sect2>
3957 <title>Memory Maps </title>
3958 <para>RedBoot sets up the following memory map on the HS7729PCI board.<programlisting>
3959 Physical Address Range Description
3960 ----------------------- -----------
3961 0x80000000 - 0x803fffff Flash (MBM29LV160)
3962 0x80400000 - 0x807fffff EPROM (M27C800)
3963 0x82000000 - 0x82ffffff SRAM
3964 0x89000000 - 0x89ffffff SRAM
3965 0x8c000000 - 0x8fffffff SDRAM
3966 0xa8000000 - 0xa800ffff SuperIO (FDC37C935A)
3967 0xa8400000 - 0xa87fffff USB function (ML60851C)
3968 0xa8800000 - 0xa8bfffff USB host (SL11HT)
3969 0xa8c00000 - 0xa8c3ffff Switches
3970 0xa8c40000 - 0xa8c7ffff LEDs
3971 0xa8c80000 - 0xa8cfffff Interrupt controller
3972 0xb0000000 - 0xb3ffffff PCI (SD0001)
3973 0xb8000000 - 0xbbffffff PCMCIA (MaruBun)
3974 </programlisting></para>
3975 </sect2>
3976 <sect2>
3977 <title>Resource Usage </title>
3978 <para>The flash based RedBoot image occupies flash addresses 0x80000000 -
3979 0x8001ffff. RedBoot also reserves RAM (0x8c000000 - 0x8c01ffff) for RedBoot
3980 runtime uses. RAM based RedBoot configurations are designed to run from RAM
3981 at physical addresses 0x8c020000 - 0x8c07ffff. RAM physical addresses from
3982 0x8c080000 to the end of RAM are available for general use, such as a temporary
3983 scratchpad for downloaded images, before they are written to flash.</para>
3984 </sect2>
3985 <sect2>
3986 <title>Rebuilding RedBoot</title>
3987 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
3988 The values for TARGET, ARCH_DIR and PLATFORM_DIR on this platform are
3989 &ldquo;hs7729pci&rdquo;, &ldquo;sh&rdquo; and &ldquo;hs7729pci&rdquo; respectively.
3990 Note that the configuration export files supplied in the <computeroutput>
3991 hal/sh/hs7729pci/<replaceable>VERSION</replaceable>/misc</computeroutput>
3992 directory in the RedBoot source tree should be used.</para>
3993 </sect2>
3994 </sect1>
3995
3996
3997 <?Pub _newpage>
3998 <sect1 id="at91">
3999 <title>Atmel AT91 Evaluation Board (EB40)</title>
4000 <sect2>
4001 <title>Overview</title>
4002 <para><indexterm><primary>Atmel AT91/EB40</primary>
4003 <secondary>installing and testing</secondary></indexterm><indexterm><primary>
4004 installing and testing</primary><secondary>Atmel AT91/EB40
4005 </secondary></indexterm>RedBoot supports both serial ports.
4006 The default serial port settings are 38400,8,N,1. RedBoot
4007 also supports minimal flash management on the EB40.
4008 However, since the flash device (AT29LV1024) is so small (only the upper 64K is
4009 available for general use), only 'fconfig' is
4010 supported, along with the simple flash write command, 'fis write'.
4011 Two
4012 basic RedBoot configurations are supported: <itemizedlist>
4013 <listitem><para>RedBoot running from RAM, but contained in the board's flash boot sector
4014 (ROMRAM mode).</para>
4015 </listitem>
4016 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
4017 </para>
4018 </listitem>
4019 </itemizedlist>
4020 The RAM version is only used during the initialization of RedBoot the first time.
4021 </para>
4022 </sect2>
4023
4024 <sect2>
4025 <title>Initial Installation Method </title>
4026 <para>
4027 This development board comes with ARM's debug tool, Angel, installed in flash.
4028 At this time, Angel will not be replaced. Rather, RedBoot will be placed in
4029 the alternate half of flash. Switch SW1 is used which monitor to boot. Selecting
4030 SW1 to "lower mem" will choose Angel. Select SW1 to "Upper mem" for RedBoot once
4031 it has been installed.
4032 </para>
4033 <para>
4034 Set SW1 to "lower mem" and connect serial port A to a host computer. Using GDB
4035 from the host and Angel on the board, download the RAM based version of RedBoot
4036 to the board. Once this is started, the Angel session must be interrupted (on
4037 Linux this can be done using ^Z). Follow this by connecting to the board using
4038 minicom at 38400-8N1. At this point, RedBoot will be running on the board in
4039 RAM. Now, download the ROMRAM version and program it to flash. Be sure and
4040 first set SW1 to "upper mem".
4041 <programlisting>
4042 arm-elf-gdb redboot_RAM.elf
4043 (gdb) tar rdi s=/dev/ttyS0
4044 Angel Debug Monitor (serial) 1.04 (Advanced RISC Machines SDT 2.5) for
4045 AT91EB40 (2.00)
4046 Angel Debug Monitor rebuilt on Apr 07 2000 at 12:40:31
4047 Serial Rate: 9600
4048 Connected to ARM RDI target.
4049 (gdb) set $ps=0xd3
4050 (gdb) lo
4051 Loading section .rom_vectors, size 0x40 lma 0x2020000
4052 Loading section .text, size 0x7fd8 lma 0x2020040
4053 Loading section .rodata, size 0x15a0 lma 0x2028018
4054 Loading section .data, size 0x2e4 lma 0x20295b8
4055 Start address 0x2020040 , load size 39068
4056 Transfer rate: 6250 bits/sec, 500 bytes/write.
4057 (gdb) c
4058 Continuing.
4059 </programlisting>
4060 At this point, interrupt the Angel session and start minicom.
4061 <programlisting>
4062 RedBoot> <userinput>ve</userinput>
4063
4064 RedBoot(tm) bootstrap and debug environment [RAM]
4065 Red Hat certified release, version R1.xx - built 14:09:27, Jul 20 2001
4066
4067 Platform: Atmel AT91/EB40 (ARM7TDMI)
4068 Copyright (C) 2000, 2001, Red Hat, Inc.
4069
4070 RAM: 0x02000000-0x02080000, 0x020116d8-0x0207fd00 available
4071 FLASH: 0x01010000 - 0x01020000, 256 blocks of 0x00000100 bytes each.
4072
4073 RedBoot> <userinput>load -m ymodem -b 0x02040000</userinput>
4074 </programlisting>
4075 Use minicom to send the file redboot_ROMRAM.srec via YModem.
4076 <programlisting>
4077 RedBoot> <userinput>fi wr -f 0x01010000 -b 0x02040000 -l 0xe000</userinput>
4078 </programlisting>
4079 Set switch SW1 to "upper mem", press the "reset" pushbutton and RedBoot
4080 should come up on the board.
4081 </para>
4082 </sect2>
4083 <sect2>
4084 <title>Flash management</title>
4085 <sect3>
4086 <title>Updating the RedBoot image in flash</title>
4087 <para>
4088 Since the primary RedBoot runs from RAM, it can be used to update itself directly.
4089 Simply follow the steps above, starting with a connection to RedBoot running on
4090 the board.
4091 </para>
4092 </sect3>
4093 </sect2>
4094 <sect2>
4095 <title>Special RedBoot Commands </title>
4096 <para>None.</para>
4097 </sect2>
4098 <sect2>
4099 <title>Memory Maps </title>
4100 <para>This processor has no MMU, so the only memory map is for physical addresses.
4101 <programlisting>
4102 Physical Address Range Description
4103 ----------------------- ----------------------------------
4104 0x00000000 - 0x00000fff On-chip SRAM
4105 0x01000000 - 0x0101ffff Flash
4106 0x02000000 - 0x0207ffff RAM
4107 0xffe00000 - 0xffffffff I/O registers
4108
4109 The flash based RedBoot image occupies virtual addresses 0x01010000 - 0x0101dfff
4110 </programlisting></para>
4111
4112 </sect2>
4113 <sect2>
4114 <title>Resource Usage </title>
4115 <para>The RAM based RedBoot image occupies RAM addresses 0x02020000 - 0x0203ffff.
4116 RAM addresses from 0x02040000 to the end of RAM are available for general use
4117 such as a temporary scratchpad for downloaded images before they are written
4118 to flash. </para>
4119 </sect2><sect2>
4120 <title>Rebuilding RedBoot</title>
4121 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
4122 The values for PLATFORM_DIR on this platform is
4123 &ldquo;at91&rdquo;.
4124 The value for TARGET is &ldquo;eb40&rdquo;.
4125 Note that the configuration export files supplied in the <computeroutput>
4126 hal/arm/at91/<replaceable>VERSION</replaceable>/misc</computeroutput>
4127 directory in the RedBoot source tree should be used.
4128 The ROMRAM configuration should be used to build the RedBoot image to be
4129 programmed into flash. The RAM configuration is used for the initial download
4130 of RedBoot.
4131 </para>
4132 </sect2>
4133 </sect1>
4134 <?Pub _newpage>
4135 <sect1 id="asb2305">
4136 <title>Matsushita MN103E010 (AM33/2.0) ASB2305 Board</title>
4137 <sect2>
4138 <title>Overview</title>
4139 <para>
4140 <indexterm>
4141 <primary>Matsushita MN103E010 (AM33/2.0) ASB2305 Board</primary>
4142 <secondary>installing and testing</secondary>
4143 </indexterm>
4144 <indexterm>
4145 <primary>installing and testing</primary>
4146 <secondary>Matsushita MN103E010 (AM33/2.0) ASB2305 Board</secondary>
4147 </indexterm>
4148 RedBoot supports the debug serial port and the built in ethernet port for communication and
4149 downloads. The default serial port settings are 115200,8,N,1 with RTS/CTS flow control. RedBoot can
4150 run from either flash, and can support flash management for either the boot PROM or the system
4151 flash regions. These configurations are supported:
4152 <itemizedlist>
4153 <listitem><para>RedBoot running from the boot PROM and able to access the system flash (the
4154 redboot_ROM.bin image should be used for this).</para>
4155 </listitem>
4156 <listitem><para>RedBoot running from the system flash and able to access the boot PROM (the
4157 redboot_FLASH.bin image should be used for this).</para>
4158 </listitem>
4159 <listitem><para>RedBoot running from RAM and able to access the boot PROM (the
4160 redboot_RAM.bin image should be used for this).</para>
4161 </listitem>
4162 </itemizedlist>
4163 </para></sect2>
4164 <sect2>
4165 <title>Initial Installation</title>
4166 <para>Unless a pre-programmed system flash module is available to be plugged into a new board,
4167 RedBoot must be installed with the aid of a JTAG interface unit. To achieve this, the RAM based
4168 RedBoot must be loaded directly into RAM by JTAG and started, and then <emphasis>that</emphasis>
4169 must be used to store the ROM based RedBoot into the boot PROM.</para>
4170 <para>These instructions assume that you have binary images of the RAM-based and boot PROM-based
4171 RedBoot images available.</para>
4172 <sect3>
4173 <title>Preparing to program the board</title>
4174 <para>If the board is to be programmed, whether via JTAG or RedBoot, some hardware settings need to
4175 be changed:</para>
4176 <itemizedlist>
4177 <listitem>
4178 <para>Jumper across ST18 on the board to allow write access to the boot PROM.</para>
4179 </listitem>
4180 <listitem>
4181 <para>Set DIP switch S1-3 to OFF to allow RedBoot to write to the system flash.</para>
4182 </listitem>
4183 <listitem>
4184 <para>Set the switch S5 (on the front of the board) to boot from whichever flash is
4185 <emphasis>not</emphasis> being programmed. Note that the RedBoot image cannot access the flash from
4186 which it is currently executing (it can only access the other flash).</para>
4187 </listitem>
4188 </itemizedlist>
4189 <para>
4190 The RedBoot binary image files should also be copied to the TFTP pickup area on the host providing
4191 TFTP services if that is how RedBoot should pick up the images it is going to program into the
4192 flash. Alternatively, the images can be passed by YMODEM over the serial link.
4193 </para>
4194 </sect3>
4195 <sect3>
4196 <title>Preparing to use the JTAG debugger</title>
4197 <para>The JTAG debugger will also need setting up:</para>
4198 <orderedlist>
4199 <listitem><para>Install the JTAG debugger software (WICE103E) on a PC running Windows (WinNT is
4200 probably the best choice for this) in &ldquo;C:/PanaX&rdquo;.</para>
4201 </listitem>
4202 <listitem><para>Install the Matsushita provided &ldquo;project&rdquo; into the
4203 &ldquo;C:/Panax/wice103e/prj&rdquo; directory.</para>
4204 </listitem>
4205 <listitem><para>Install the RedBoot image files into the &ldquo;C:/Panax/wice103e/prj&rdquo;
4206 directory under the names redboot.ram and redboot.prom.</para>
4207 </listitem>
4208 <listitem><para>Make sure the PC's BIOS has the parallel port set to full bidirectional
4209 mode.</para>
4210 </listitem>
4211 <listitem><para>Connect the JTAG debugger to the PC's parallel port.</para>
4212 </listitem>
4213 <listitem><para>Connect the JTAG debugger to the board.</para>
4214 </listitem>
4215 <listitem><para>Set the switch on the front of the board to boot from &ldquo;boot
4216 PROM&rdquo;.</para>
4217 </listitem>
4218 <listitem><para>Power up the JTAG debugger and then power up the board.</para>
4219 </listitem>
4220 <listitem><para>Connect the board's Debug Serial port to a computer by a null modem cable.</para>
4221 </listitem>
4222 <listitem><para>Start minicom or some other serial communication software and set for 115200 baud,
4223 1-N-8 with hardware (RTS/CTS) flow control.</para>
4224 </listitem>
4225 </orderedlist>
4226 </sect3>
4227 <sect3>
4228 <title>Loading the RAM-based RedBoot via JTAG</title>
4229 <para>To perform the first half of the operation, the following steps should be followed:</para>
4230 <orderedlist>
4231 <listitem><para>Start the JTAG debugger software.</para>
4232 </listitem>
4233 <listitem>
4234 <para>Run the following commands at the JTAG debugger's prompt to set up the MMU registers on the
4235 CPU.</para>
4236 <programlisting>
4237 ed 0xc0002000, 0x12000580
4238
4239 ed 0xd8c00100, 0x8000fe01
4240 ed 0xd8c00200, 0x21111000
4241 ed 0xd8c00204, 0x00100200
4242 ed 0xd8c00208, 0x00000004
4243
4244 ed 0xd8c00110, 0x8400fe01
4245 ed 0xd8c00210, 0x21111000
4246 ed 0xd8c00214, 0x00100200
4247 ed 0xd8c00218, 0x00000004
4248
4249 ed 0xd8c00120, 0x8600ff81
4250 ed 0xd8c00220, 0x21111000
4251 ed 0xd8c00224, 0x00100200
4252 ed 0xd8c00228, 0x00000004
4253
4254 ed 0xd8c00130, 0x8680ff81
4255 ed 0xd8c00230, 0x21111000
4256 ed 0xd8c00234, 0x00100200
4257 ed 0xd8c00238, 0x00000004
4258
4259 ed 0xd8c00140, 0x9800f801
4260 ed 0xd8c00240, 0x00140000
4261 ed 0xd8c00244, 0x11011100
4262 ed 0xd8c00248, 0x01000001
4263
4264 ed 0xda000000, 0x55561645
4265 ed 0xda000004, 0x000003c0
4266 ed 0xda000008, 0x9000fe01
4267 ed 0xda00000c, 0x9200fe01
4268 ed 0xda000000, 0xa89b0654
4269 </programlisting>
4270 </listitem>
4271 <listitem>
4272 <para>Run the following commands at the JTAG debugger's prompt to tell it what regions of the CPU's
4273 address space it can access:</para>
4274 <programlisting>
4275 ex 0x80000000,0x81ffffff,/mexram
4276 ex 0x84000000,0x85ffffff,/mexram
4277 ex 0x86000000,0x867fffff,/mexram
4278 ex 0x86800000,0x87ffffff,/mexram
4279 ex 0x8c000000,0x8cffffff,/mexram
4280 ex 0x90000000,0x93ffffff,/mexram
4281 </programlisting>
4282 </listitem>
4283 <listitem><para>Instruct the debugger to load the RAM RedBoot image into RAM:</para>
4284 <programlisting>
4285 _pc=90000000
4286 u_pc
4287 rd redboot.ram,90000000
4288 </programlisting>
4289 </listitem>
4290 <listitem><para>Load the boot PROM RedBoot into RAM:</para>
4291 <programlisting>
4292 rd redboot.prom,91020000
4293 </programlisting>
4294 </listitem>
4295 <listitem><para>Start RedBoot in RAM:</para>
4296 <programlisting>
4297 g
4298 </programlisting>
4299 <para>Note that RedBoot may take some time to start up, as it will attempt to query a BOOTP or DHCP
4300 server to try and automatically get an IP address for the board. Note, however, that it should send
4301 a plus over the serial port immediately, and the 7-segment LEDs should display &ldquo;rh
4302 8&rdquo;.</para>
4303 </listitem>
4304 </orderedlist>
4305 </sect3>
4306 <sect3>
4307 <title>Loading the boot PROM-based RedBoot via the RAM RedBoot</title>
4308 <para>Once the RAM RedBoot is up and running, it can be communicated with by way of the serial
4309 port. Commands can now be entered directly to RedBoot for flashing the boot PROM.</para>
4310 <orderedlist>
4311 <listitem><para>Instruct RedBoot to initialise the boot PROM:</para>
4312 <programlisting>
4313 fi init
4314 </programlisting>
4315 </listitem>
4316 <listitem><para>Write the previously loaded redboot.prom image into the boot PROM:</para>
4317 <programlisting>
4318 fi write -f 0x80000000 -b 0x91020000 -l 0x00020000
4319 </programlisting>
4320 </listitem>
4321 <listitem><para>Check that RedBoot has written the image:</para>
4322 <programlisting>
4323 dump -b 0x91020000
4324 dump -b 0x80000000
4325 </programlisting>
4326 <para>Barring the difference in address, the two dumps should be the same.</para>
4327 </listitem>
4328 <listitem><para>Close the JTAG software and power-cycle the board. The RedBoot banners should be
4329 displayed again over the serial port, followed by the RedBoot prompt. The boot PROM-based RedBoot
4330 will now be running.</para>
4331 </listitem>
4332 <listitem><para>Power off the board and unjumper ST18 to write-protect the contents of the boot
4333 PROM. Then power the board back up.</para>
4334 </listitem>
4335 <listitem><para>Run the following command to initialise the system flash:</para>
4336 <programlisting>
4337 fi init
4338 </programlisting>
4339 <para>Then program the system flash based RedBoot into the system flash:</para>
4340 <programlisting>
4341 load -r -b 0x91020000 /tftpboot/redboot_FLASH.bin
4342 fi write -f 0x84000000 -b 0x91020000 -l 0x00020000
4343 </programlisting>
4344 <note>
4345 <title>NOTE</title>
4346 <para>RedBoot arranges the flashes on booting such that they always appear at the same addresses,
4347 no matter which one was booted from.</para>
4348 </note>
4349 </listitem>
4350 <listitem>
4351 <para>A similar sequence of commands can be used to program the boot PROM when RedBoot has been
4352 booted from an image stored in the system flash.
4353 </para>
4354 <programlisting>
4355 load -r -b 0x91020000 /tftpboot/redboot_ROM.bin
4356 fi write -f 0x80000000 -b 0x91020000 -l 0x00020000
4357 </programlisting>
4358 <para>See <xref linkend="Persistent-State-Flash"> for details on configuring the RedBoot in
4359 general, and also <xref linkend="Flash-Image-System"> for more details on programming the system
4360 flash.</para>
4361 </listitem>
4362 </orderedlist>
4363 </sect3>
4364 </sect2>
4365 <sect2>
4366 <title>Additional Commands</title>
4367 <para>The <command>exec</command> command which allows the loading and execution of
4368 Linux kernels, is supported for this architecture (see <xref linkend="executing-programs">). The
4369 <command>exec</command> parameters used for ASB2305 board are:</para>
4370 <variablelist>
4371 <varlistentry><term>
4372 -w <replaceable>&lt;time></replaceable></term>
4373 <listitem><para>Wait time in seconds before starting kernel</para></listitem></varlistentry>
4374 <varlistentry><term>
4375 -c <replaceable>"params"</replaceable></term>
4376 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
4377 <varlistentry><term><replaceable>&lt;addr></replaceable></term>
4378 <listitem><para>Kernel entry point, defaulting to the entry point of the last image
4379 loaded</para></listitem></varlistentry>
4380 </variablelist>
4381 <para>The parameter string is stored in the on-chip memory at location 0x8C001000, and is prefixed
4382 by &ldquo;cmdline:&rdquo; if it was supplied.</para>
4383 </sect2>
4384 <sect2>
4385 <title>Memory Maps </title>
4386 <para>RedBoot sets up the following memory map on the ASB2305 board.</para>
4387 <note>
4388 <title>NOTE</title>
4389 <para>The regions mapped between 0x80000000-0x9FFFFFFF are cached by the CPU. However, all those
4390 regions can be accessed uncached by adding 0x20000000 to the address.</para>
4391 </note>
4392 <programlisting>
4393 Physical Address Range Description
4394 ----------------------- -----------
4395 0x80000000 - 0x9FFFFFFF Cached Region
4396 0x80000000 - 0x81FFFFFF Boot PROM
4397 0x84000000 - 0x85FFFFFF System Flash
4398 0x86000000 - 0x86007FFF 64Kbit Sys Config EEPROM
4399 0x86F90000 - 0x86F90003 4x 7-segment LEDs
4400 0x86FA0000 - 0x86FA0003 Software DIP Switches
4401 0x86FB0000 - 0x86FB001F PC16550 Debug Serial Port
4402 0x8C000000 - 0x8FFFFFFF On-Chip Memory (repeated 16Kb SRAM)
4403 0x90000000 - 0x93FFFFFF SDRAM
4404 0x98000000 - 0x9BFFFFFF Paged PCI Memory Space (64Mb)
4405 0x9C000000 - 0x9DFFFFFF PCI Local SRAM (32Mb)
4406 0x9E000000 - 0x9E03FFFF PCI I/O Space
4407 0x9E040000 - 0x9E0400FF AM33-PCI Bridge Registers
4408 0x9FFFFFF4 - 0x9FFFFFF7 PCI Memory Page Register
4409 0x9FFFFFF8 - 0x9FFFFFFF PCI Config Registers
4410 0xA0000000 - 0xBFFFFFFF Uncached Mirror Region
4411 0xC0000000 - 0xDFFFFFFF CPU Control Registers
4412 </programlisting>
4413 <para>The ASB2305 HAL makes use of the on-chip memory in the following way:</para>
4414 <programlisting>
4415 0x8C000000 - 0x8C0000FF hal_vsr_table
4416 0x8C000100 - 0x8C0001FF hal_virtual_vector_table
4417 0x8C001000 - Linux command line (RedBoot exec command)
4418 - 0x8C003FFF Emergency DoubleFault Exception Stack
4419 </programlisting>
4420 <para>Currently the CPU's interrupt table lies at the beginning of the RedBoot image, which must
4421 therefore be aligned to a 0xFF000000 mask.</para>
4422 </sect2>
4423 <sect2>
4424 <title>Resource Usage </title>
4425 <para>The flash based RedBoot image occupies flash addresses 0x80000000 - 0x8001ffff. RedBoot also
4426 reserves RAM (0x90000000 - 0x9001ffff) for RedBoot runtime uses. RAM based RedBoot configurations
4427 are designed to run from RAM at physical addresses 0x90000000 - 0x9001ffff. RAM physical addresses
4428 from 0x90050000 to the end of RAM are available for general use, such as a temporary scratchpad for
4429 downloaded images, before they are written to flash.</para>
4430 <note>
4431 <title>NOTE</title>
4432 <para>The location at which RedBoot can be started is highly restricted due to the way in which the
4433 address of the Trap Vector Table is specified to the CPU.</para>
4434 </note>
4435 </sect2><sect2>
4436 <title>Rebuilding RedBoot</title>
4437 <para>The instructions in <xref linkend="Rebuilding-RedBoot"> should be followed. The values for
4438 TARGET, ARCH_DIR and PLATFORM_DIR on this platform are &ldquo;asb2305&rdquo;, &ldquo;mn10300&rdquo;
4439 and &ldquo;asb2305&rdquo; respectively. Note that the configuration export files supplied in the
4440 <computeroutput> hal/mn10300/asb2305/<replaceable>VERSION</replaceable>/misc</computeroutput>
4441 directory in the RedBoot source tree should be used.</para>
4442 </sect2>
4443 </sect1>
4444 <?Pub _newpage>
4445 <sect1 id="aaed2000">
4446 <title>Agilent AAED2000 ARM9 (aaed) </title>
4447 <sect2>
4448 <title>Overview</title>
4449 <para><indexterm><primary>Agilent AAED2000 ARM9 (aaed)</primary>
4450 <secondary>installing and testing</secondary></indexterm><indexterm><primary>
4451 installing and testing</primary><secondary>Agilent AAED2000 ARM9 (aaed)
4452 </secondary></indexterm>RedBoot supports the serial and ethernet ports
4453 on the board. The default serial port settings are 38400,8,N,1.
4454 RedBoot also supports flash management on the AAED2000.
4455 Two basic RedBoot configurations are supported: <itemizedlist>
4456 <listitem><para>RedBoot being automatically executed by the on-board
4457 ARM Boot Monitor, running from RAM.</para>
4458 </listitem>
4459 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.
4460 </para>
4461 </listitem>
4462 </itemizedlist></para>
4463
4464 </sect2>
4465
4466 <sect2>
4467 <title>Initial Installation Method </title>
4468 <para>It is possible to install RedBoot in one of two ways. Either as
4469 the primary bootmonitor on the board (installed to blocks 0-1 of the
4470 flash) or as the secondary bootmonitor on the board (installed to
4471 blocks 1-2 of the flash).</para>
4472
4473 <para>Presently, only the former method is supported.</para>
4474 <!-- Nuke the above line if uncommenting this block
4475 <para>When installed as the secondary bootmonitor, the ARM bootmonitor
4476 remains in flash and auto-executes RedBoot (but only when RedBoot is
4477 smaller than 128KB - which means it cannot include the LCD driver).
4478 It is of crucial importance that no RedBoot configured to be
4479 primary bootmonitor is executed on a board where RedBoot is actually
4480 supposed to be the secondary bootmonitor since it may cause corruption
4481 of the flash. Installing RedBoot as the primary booter is
4482 adviced.</para>
4483 -->
4484
4485 <sect3><title>RedBoot as Primary Bootmonitor</title>
4486
4487 <para>RedBoot is installed in flash using the on-board ARM Boot
4488 Monitor.</para>
4489 <para>Boot the board while pressing SPACE. This should bring up the
4490 Boot Monitor:
4491 <programlisting>ARM bootPROM [Version 1.3] Rebuilt on Jul 16 2001 at 16:21:36
4492 Running on a P920 board Evaluation Board
4493 Board Revision V1.0, ARM920T processor Processor
4494 Memory Size is 32MBytes, Flash Size is 32MBytes
4495 Copyright (c) ARM Limited 1999 - 2001. All rights reserved.
4496 Board designed by ARM Limited
4497 Hardware support provided at http://www.arm.com/
4498 For help on the available commands type ? or h
4499 boot Monitor >
4500 </programlisting>
4501
4502 Download the RAM startup version of RedBoot configured as a primary
4503 bootmonitor using the ARM bootmonitor's SREC-download command:
4504
4505 <programlisting>boot Monitor &gt; <userinput>m</userinput>
4506 Load Motorola S-Record image into memory and execute it
4507 The S-Record loader only accepts input on the serial port.
4508 Record addresses must be between 0x00008000 and 0x01E0F510.
4509 Type Ctrl/C to exit loader.
4510 </programlisting>
4511
4512 Use the terminal emulator's ASCII upload command, or (on Linux) simply
4513 cat the file to the serial port:
4514
4515 <programlisting>$ <userinput>cat redboot_primary_RAM/redboot.srec &gt;/dev/ttyS1</userinput>
4516 </programlisting>
4517
4518 You should see RedBoot start up:
4519
4520 <programlisting>FLASH configuration checksum error or invalid key
4521 Ethernet eth0: MAC address 00:30:d3:03:04:99
4522 IP: 192.168.42.111, Default server: 192.168.42.3
4523
4524 RedBoot(tm) bootstrap and debug environment [RAM]
4525 Non-certified release, version UNKNOWN - built 13:15:40, Nov 9 2001
4526
4527 Platform: AAED2000 system (ARM9) [Primary]
4528 Copyright (C) 2000, 2001, Red Hat, Inc.
4529
4530 RAM: 0x00000000-0x01f80000, 0x0006f208-0x01f51000 available
4531 FLASH: 0x60000000 - 0x62000000, 256 blocks of 0x00020000 bytes each.
4532 RedBoot></programlisting>
4533
4534 As can be seen from the output above, the network has been configured
4535 to give the board an IP address and information about the default
4536 server. If things are not set up on your network, you can still
4537 continue, but use the Y-modem download method when loading the RedBoot
4538 ROMRAM image.
4539
4540 Now initialize RedBoot's FIS:
4541
4542 <programlisting>RedBoot&gt; <userinput>fi init</userinput>
4543 About to initialize [format] FLASH image system - continue (y/n)? <userinput>y</userinput>
4544 *** Initialize FLASH Image System
4545 Warning: device contents not erased, some blocks may not be usable
4546 ... Erase from 0x61fe0000-0x62000000: .
4547 ... Program from 0x01f5f000-0x01f5f300 at 0x61fe0000: .
4548 </programlisting>
4549
4550 Download the ROMRAM version of RedBoot via ethernet:
4551
4552 <programlisting>RedBoot&gt; <userinput>load -b 0x100000 redboot_primary_ROMRAM/redboot.srec</userinput>
4553 </programlisting>
4554
4555 or using serial Y-modem protocol:
4556
4557 <programlisting>RedBoot&gt; <userinput>load -mode ymodem -b 0x100000</userinput>
4558 </programlisting>
4559
4560 (Use the terminal emulator's Y-modem upload command to send the file
4561 <filename>redboot_primary_ROMRAM/redboot.srec</filename>.)
4562
4563 When the image has been downloaded, program it into flash:
4564
4565 <programlisting>Address offset = 0x00ff8000
4566 Entry point: 0x00008040, address range: 0x00008000-0x0002da80
4567 RedBoot&gt; <userinput>fi cr RedBoot -b 0x100000</userinput>
4568 An image named 'RedBoot' exists - continue (y/n)? <userinput>y</userinput>
4569 * CAUTION * about to program 'RedBoot'
4570 at 0x60000000..0x6003ffff from 0x00100000 - continue (y/n)? <userinput>y</userinput>
4571 ... Erase from 0x60000000-0x60040000: ..
4572 ... Program from 0x00100000-0x00140000 at 0x60000000: ..
4573 ... Erase from 0x61fe0000-0x62000000: .
4574 ... Program from 0x01f5f000-0x01f7f000 at 0x61fe0000: .
4575 </programlisting>
4576
4577 Now reset the board. You should see the RedBoot banner.</para>
4578
4579 </sect3>
4580
4581 <!--
4582 <sect3><title>RedBoot as Secondary Bootmonitor</title>
4583
4584 <para>RedBoot is installed in flash using the on-board ARM Boot
4585 Monitor.</para>
4586 <para>Boot the board while pressing SPACE. This should bring up the
4587 Boot Monitor:
4588 <programlisting>ARM bootPROM [Version 1.3] Rebuilt on Jul 16 2001 at 16:21:36
4589 Running on a P920 board Evaluation Board
4590 Board Revision V1.0, ARM920T processor Processor
4591 Memory Size is 32MBytes, Flash Size is 32MBytes
4592 Copyright (c) ARM Limited 1999 - 2001. All rights reserved.
4593 Board designed by ARM Limited
4594 Hardware support provided at http://www.arm.com/
4595 For help on the available commands type ? or h
4596 boot Monitor >
4597 </programlisting>
4598
4599 Download the RAM startup version of RedBoot configured as a secondary
4600 bootmonitor using the ARM bootmonitor's SREC-download command:
4601
4602 <programlisting>boot Monitor &gt; <userinput>m</userinput>
4603 Load Motorola S-Record image into memory and execute it
4604 The S-Record loader only accepts input on the serial port.
4605 Record addresses must be between 0x00008000 and 0x01E0F510.
4606 Type Ctrl/C to exit loader.
4607 </programlisting>
4608
4609 Use the terminal emulator's ASCII upload command, or (on Linux) simply
4610 cat the file to the serial port:
4611
4612 <programlisting>$ <userinput>cat redboot_secondary_RAM.srec &gt;/dev/ttyS1</userinput>
4613 </programlisting>
4614
4615 You should see RedBoot start up:
4616
4617 <programlisting>FLASH configuration checksum error or invalid key
4618 Ethernet eth0: MAC address 00:30:d3:03:04:99
4619 IP: 192.168.42.111, Default server: 192.168.42.3
4620
4621 RedBoot(tm) bootstrap and debug environment [RAM]
4622 Non-certified release, version UNKNOWN - built 12:31:13, Nov 9 2001
4623
4624 Platform: AAED2000 system (ARM9) [Secondary]
4625 Copyright (C) 2000, 2001, Red Hat, Inc.
4626
4627 RAM: 0x00000000-0x01f80000, 0x00063568-0x01f51000 available
4628 FLASH: 0x60000000 - 0x62000000, 256 blocks of 0x00020000 bytes each.
4629 </programlisting>
4630
4631 As can be seen from the output above, the network has been configured
4632 to give the board an IP address and information about the default
4633 server. If things are not set up on your network, you can still
4634 continue, but use the Y-modem download method when loading the RedBoot
4635 ROMRAM image.
4636
4637 Next step is to erase all of the flash, except where the ARM booter resides:
4638
4639 <programlisting>RedBoot&gt; <userinput>fi erase -f 0x60020000 -l 0x01fe0000</userinput>
4640 ... Erase from 0x60020000-0x62000000: ..........................................
4641 ................................................................................
4642 ................................................................................
4643 .....................................................
4644 </programlisting>
4645
4646 Then initialize RedBoot's FIS:
4647
4648 <programlisting>RedBoot&gt; <userinput>fi init</userinput>
4649 About to initialize [format] FLASH image system - continue (y/n)? <userinput>y</userinput>
4650 *** Initialize FLASH Image System
4651 Warning: device contents not erased, some blocks may not be usable
4652 ... Erase from 0x61fc0000-0x61fe0000: .
4653 ... Program from 0x01fdf000-0x01fff000 at 0x61fc0000: .
4654 </programlisting>
4655
4656 Download the ROMRAM version of RedBoot via ethernet:
4657
4658 <programlisting>RedBoot&gt; <userinput>load -raw -b 0x100000 redboot_secondary_ROMRAM.arm.bin</userinput>
4659 </programlisting>
4660
4661 or using serial Y-modem protocol:
4662
4663 <programlisting>RedBoot&gt; <userinput>load -raw -mode ymodem -b 0x100000</userinput>
4664 </programlisting>
4665
4666 (Use the terminal emulator's Y-modem upload command to send the file
4667 <filename>redboot_secondary_ROMRAM.arm.bin</filename>.)
4668
4669 When the image has been downloaded, program it into flash:
4670
4671 <programlisting>RedBoot&gt; <userinput>fi cr RedBoot -b 0x100000</userinput>
4672 An image named 'RedBoot' exists - continue (y/n)? <userinput>y</userinput>
4673 * CAUTION * about to program 'RedBoot'
4674 at 0x60020000..0x6005ffff from 0x00100000 - continue (y/n)? <userinput>y</userinput>
4675 ... Erase from 0x60020000-0x60060000: ..
4676 ... Program from 0x00100000-0x00140000 at 0x60020000: ..
4677 ... Erase from 0x61fc0000-0x61fe0000: .
4678 ... Program from 0x01f5f000-0x01f7f000 at 0x61fc0000: .
4679 </programlisting>
4680
4681 Now reset the board. You might see the ARM Monitor complain:
4682
4683 <programlisting>Failed to boot from flash.
4684 The ARM Boot Monitor SIB can not be found.
4685 Press any key to continue.
4686 </programlisting>
4687
4688 This is due to due to the flash having been erased. Press a key, and
4689 execute the "validate flash contents" command:
4690
4691 <programlisting>boot Monitor &gt; <userinput>v</userinput>
4692
4693 There are 254 128KByte blocks of Application Flash:
4694
4695 No images found!
4696 ================
4697
4698 System Information Blocks
4699 =========================
4700 Address Owner Size Idx Rev
4701 ~~~~~~~ ~~~~~ ~~~~ ~~~ ~~~
4702 0x05FE0000 ARM Boot Monitor 312 0 0
4703
4704
4705 Blocks of unknown type
4706 ======================
4707 Block Size Footer Type
4708 ~~~~~ ~~~~ ~~~~~~~~~~~
4709 252 1 0x52420000
4710 boot Monitor &gt;
4711 </programlisting>
4712
4713 This causes the last block of the flash to be initialized with the ARM
4714 Boot Monitor ID, necessary for the Monitor to work properly. When
4715 resetting the board now, it should automatically start RedBoot. If you
4716 ever need to get into the ARM Boot Monitor again, reset the board
4717 while pressing the SPACE key.
4718
4719 </para></sect3>
4720 -->
4721
4722 </sect2>
4723 <sect2>
4724 <title>Flash management</title>
4725 <sect3>
4726 <title>Updating the RedBoot image</title>
4727 <para> Since the RedBoot image is a ROMRAM-startup
4728 type, it is not necessary to load and run the RAM startup RedBoot
4729 image to update the image in flash. Doing so causes no harm though -
4730 but ignoring the step saves some time.
4731 </para>
4732
4733 <para>To update the primary RedBoot image, follow the procedures
4734 detailed in <xref linkend="update-primary-image">, but let RedBoot
4735 find the correct flash address (the -f option) since this is different
4736 between the bootmonitor configurations. If
4737 specifying it, be sure to get it right - the actual numbers used with
4738 the flags in the sample commands should for a RedBoot image configured
4739 to be the primary bootmonitor be:
4740 <programlisting>
4741 -f 0x60000000
4742 -b 0x100000
4743 -l 0x40000
4744 </programlisting>
4745
4746 <!--
4747 And for a RedBoot image configured to be the secondary bootmonitor:
4748
4749 <programlisting>
4750 -f 0x60020000
4751 -b 0x100000
4752 -l 0x40000
4753 </programlisting>
4754 -->
4755
4756 </para>
4757 </sect3></sect2>
4758
4759 <sect2>
4760 <title>Special RedBoot Commands </title>
4761 <para>The <command>exec</command> command which allows the loading
4762 and execution of Linux kernels,
4763 is supported for this board (see <xref linkend="executing-programs">). The <command>
4764 exec</command> parameters used for the AAED2000 are:</para>
4765 <variablelist><varlistentry>
4766 <term>-b <replaceable>&lt;addr></replaceable></term>
4767 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry>
4768 <varlistentry><term>
4769 -l <replaceable>&lt;len></replaceable></term>
4770 <listitem><para>Length of kernel</para></listitem></varlistentry>
4771 <varlistentry><term>
4772 -c <replaceable>"params"</replaceable></term>
4773 <listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
4774 <varlistentry><term>-r <replaceable>&lt;addr></replaceable></term>
4775 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry>
4776 <varlistentry><term>-s <replaceable>&lt;len></replaceable></term>
4777 <listitem><para>Length of initrd ramdisk</para></listitem></varlistentry>
4778 </variablelist>
4779
4780 <para>The parameters for kernel image base and size are automatically
4781 set after a load operation. So one way of starting the kernel would
4782 be:
4783
4784 <programlisting>RedBoot&gt; load -r -b 0x100000 zImage
4785 Raw file loaded 0x00100000-0x001a3d6c
4786 RedBoot&gt; exec -c "console=ttyAC0,38400"
4787 Using base address 0x00100000 and length 0x000a3d6c
4788 Uncompressing Linux.....
4789 </programlisting>
4790
4791 An image could also be put in flash and started directly:
4792
4793 <programlisting>RedBoot&gt; exec -b 0x60040000 -l 0xc0000 -c "console=ttyAC0,38400"
4794 Uncompressing Linux.....
4795 </programlisting>
4796
4797 </para>
4798
4799 </sect2>
4800 <sect2>
4801 <title>Memory Maps </title>
4802 <para>The MMU page tables are located at 0x4000. <note><title>NOTE
4803 </title>
4804 <para>The virtual memory maps in this section use a C and B column to indicate
4805 whether or not the region is cached (C) or buffered (B).</para>
4806 </note><programlisting>Physical Address Range Description
4807 ----------------------- ----------------------------------
4808 0x00000000 - 0x01ffffff Flash
4809 0x10000000 - 0x100fffff Ethernet
4810 0x30000000 - 0x300fffff Board registers
4811 0x40000000 - 0x4fffffff PCMCIA Slot (0)
4812 0x50000000 - 0x5fffffff Compact Flash Slot (1)
4813 0x80000000 - 0x800037ff I/O registers
4814 0xb0060000 - 0xb00fffff On-chip SRAM
4815 0xf0000000 - 0xfd3fffff SDRAM
4816
4817 Virtual Address Range C B Description
4818 ----------------------- - - ----------------------------------
4819 0x00000000 - 0x01f7ffff Y Y SDRAM
4820 0x01f80000 - 0x01ffffff Y Y SDRAM (used for LCD frame buffer)
4821 0x10000000 - 0x100fffff N N Ethernet
4822 0x30000000 - 0x300fffff N N Board registers
4823 0x40000000 - 0x4fffffff N N PCMCIA Slot (0)
4824 0x50000000 - 0x5fffffff N N Compact Flash Slot (1)
4825 0x60000000 - 0x61ffffff N N Flash
4826 0x80000000 - 0x800037ff N N I/O registers
4827 0xf0000000 - 0xffffffff N N SDRAM (uncached)
4828
4829 </programlisting></para>
4830
4831 </sect2>
4832 <sect2>
4833 <title>Resource Usage </title>
4834 <para>The RAM based RedBoot image occupies RAM addresses
4835 <computeroutput>0x40000 - 0x7ffff</computeroutput>.
4836 The flash based RedBoot image occupies RAM addresses
4837 <computeroutput>0x00000000 - 0x0003ffff</computeroutput>.
4838 RAM addresses from <computeroutput>0x80000</computeroutput> to the end of RAM are available for general use
4839 such as a temporary scratchpad for downloaded images before they are written
4840 to flash.
4841 If configured to use the LCD screen, additional DRAM from
4842 <computeroutput>0x01f80000 - 0x01ffffff</computeroutput>
4843 is used for the LCD frame buffer.
4844 </para>
4845 </sect2><sect2>
4846 <title>Rebuilding RedBoot</title>
4847 <para>The instructions in <xref linkend="Rebuilding-Redboot"> should be followed.
4848 The values for ARCH_DIR and PLATFORM_DIR on this platform are
4849 &ldquo;arm&rdquo; and &ldquo;arm9/aaed2000&rdquo; respectively.
4850 The value for TARGET is &ldquo;aaed&rdquo;.
4851 Note that the configuration export files supplied in the <computeroutput>
4852 hal/arm/arm9/aaed2000/<replaceable>VERSION</replaceable>/misc</computeroutput>
4853 directory in the RedBoot source tree should be used.
4854 </para>
4855 </sect2>
4856 </sect1>
4857 <?Pub _newpage>
4858 <sect1 id="vrc4375">
4859 <title>NEC DDB-VRC4375</title>
4860 <sect2>
4861 <title>Overview</title>
4862
4863 <para><indexterm><primary>NEC DDB-VRC4375</primary>
4864 <secondary>installing and testing</secondary></indexterm><indexterm><primary>
4865 installing and testing</primary><secondary>NEC DDB-VRC4375
4866 </secondary></indexterm>RedBoot supports only serial port 1, which is connected to the upper
4867 of the stacked serial connectors on the board. The default serial
4868 port settings are 38400,8,N,1. FLASH management is also supported. Two
4869 basic RedBoot configurations are supported:
4870
4871 <itemizedlist>
4872 <listitem><para>RedBoot running from RAM which has been relocated from the board's
4873 flash boot sector.</para></listitem>
4874 <listitem><para>RedBoot running from RAM with RedBoot in the flash boot sector.</para></listitem>
4875 </itemizedlist></para>
4876
4877 <para>Since the normal RedBoot configuration does not use the FLASH ROM
4878 except during startup, it is unnecessary to load a RAM-based RedBoot
4879 before reprogramming the FLASH.</para>
4880
4881 </sect2>
4882
4883 <sect2>
4884 <title>Initial Installation Method </title>
4885
4886 <para>A device programmer should be used to program a socketed FLASH part
4887 (AMD 29F040). The board as delivered is configured for a 512K
4888 EPROM. To install a FLASH ROM, Jumpers J30, J31 and J36 need to be
4889 changed as described in the board's User Manual.</para>
4890
4891 <para>
4892 Since RedBoot for this board relocates itself from ROM to RAM at
4893 startup, it is not necessary to run a secondary RAM based version of
4894 RedBoot to update the main FLASH image. Instead this can be done from
4895 the primary version of RedBoot.
4896 </para>
4897
4898 <sect3>
4899 <title>Updating the primary RedBoot image</title>
4900 <para>To update the primary RedBoot image, follow the procedures detailed
4901 in <xref linkend="update-primary-image">, but the actual numbers used with
4902 the flags in the sample commands should be:
4903 <programlisting>
4904 -b 0x80100000
4905 </programlisting>
4906 Flash locking and unlocking is not required.
4907 Note that these values are inferred when updating the RedBoot image once
4908 the <command>fis create</command> has been run.
4909 </para>
4910 </sect3>
4911
4912 </sect2>
4913
4914 <sect2>
4915 <title>Special RedBoot Commands</title>
4916
4917 <para>None.</para>
4918 </sect2>
4919
4920 <sect2>
4921 <title>Memory Maps</title>
4922
4923 <para>RedBoot sets up the memory map primarily as described in the board's
4924 User Manual. There are some minor differences, noted in the following
4925 table:
4926 <screen>
4927 Physical Virtual Resource
4928 Addresses Addresses
4929 00000000-01FFFFFF 80000000-81FFFFFF Base SDRAM (cached)
4930 00000000-01FFFFFF A0000000-A1FFFFFF Base SDRAM (uncached)
4931 0C000000-0C0BFFFF AC000000-AC0B0000 PCI IO space
4932 0F000000-0F0001FF AF000000-AF0001FF VRC4375 Registers
4933 1C000000-1C0FFFFF BC000000-BC0FFFFF VRC4372 Registers
4934 1C100000-1DFFFFFF BC100000-BDFFFFFF PCI Memory space
4935 1FC00000-1FC7FFFF BFC00000-BFC7FFFF FLASH ROM
4936 80000000-8000000D C0000000-C000000D RTC
4937 8000000E-80007FFF C000000E-C0007FFF NVRAM
4938 81000000-81FFFFFF C1000000-C1FFFFFF Z85C30 DUART
4939 82000000-82FFFFFF C2000000-C2FFFFFF Z8536 Timer
4940 83000000-83FFFFFF C3000000-C3FFFFFF 8255 Parallel port
4941 87000000-87FFFFFF C7000000-C7FFFFFF Seven segment display</screen>
4942 </para>
4943
4944 <note> <title>NOTE</title>
4945 <para>
4946 By default the VRC4375 SIMM control registers are not programmed
4947 since the values used must depend on the SIMMs installed. If SIMMs
4948 are to be used, correct values must be placed in these registers
4949 before accessing the SIMM address range.
4950 </para>
4951 </note>
4952
4953 <note> <title>NOTE</title>
4954 <para>
4955 The allocation of address ranges to devices in the PCI IO and
4956 memory spaces is handled by the eCos PCI support library. They do
4957 not correspond to those described in the board User Manual.
4958 </para>
4959 </note>
4960
4961 <note> <title>NOTE</title>
4962 <para>
4963 The MMU has been set up to relocate the VRC4372 supported devices
4964 mapped at physical addresses 0x8xxxxxxx to virtual addresses
4965 0xCxxxxxxx.
4966 </para>
4967 </note>
4968
4969 </sect2>
4970
4971 <sect2>
4972 <title>Resource Usage</title>
4973
4974 <para>
4975 The RedBoot image occupies flash addresses 0x1fc00000 - 0x1fc1ffff. To
4976 execute it copies itself out of there to RAM at 0x80000000. RedBoot
4977 reserves 1MB of RAM from 0x80000000 to 0x800FFFFF for its own use.
4978 The top 1MB of RAM from 0x81F00000 to 0x81FFFFFF is reserved for use
4979 by the PCI Ethernet device. RAM based RedBoot configurations are
4980 designed to run from RAM at virtual addresses 0x80100000 -
4981 0x8011ffff. RAM virtual addresses from 0x80020000 to the start of the
4982 PCI window are available for general use, such as a temporary
4983 scratchpad for downloaded images, before they are written to flash.
4984 </para>
4985 </sect2>
4986
4987 <sect2>
4988 <title>Ethernet Driver</title>
4989
4990 <para>
4991 The ethernet driver is in two parts:
4992 </para>
4993
4994 <para>
4995 A generic ether driver for the Intel i21143 device is located in
4996 <computeroutput>devs/eth/intel/i21143</computeroutput>. Its package name is <computeroutput>CYGPKG_DEVS_ETH_INTEL_I21143</computeroutput>.
4997 </para>
4998
4999 <para>
5000 The platform-specific ether driver is <computeroutput>devs/eth/mips/vrc4375</computeroutput>. Its package is
5001 <computeroutput>CYGPKG_DEVS_ETH_MIPS_VRC4375</computeroutput>. This tells the generic driver the address in
5002 IO memory of the chip, for example, and other configuration details. The
5003 ESA (MAC address) is by default collected from on-board serial EEPROM,
5004 unless configured statically within this package.
5005 </para>
5006 </sect2>
5007
5008 <sect2>
5009 <title>Rebuilding RedBoot</title>
5010
5011 <para>
5012 The instructions in <xref linkend="Rebuilding-Redboot"> should be followed. The values for
5013 TARGET, ARCH_DIR and PLATFORM_DIR on this platform are &ldquo;vrc4375&rdquo;,
5014 &ldquo;mips&rdquo; and &ldquo;vrc4375&rdquo; respectively. The configuration export files
5015 supplied in the <computeroutput>hal/mips/vrc4375/<replaceable>VERSION</replaceable>/misc</computeroutput> directory in the RedBoot
5016 source tree should be used. In general only the ROMRAM variant should
5017 need to be used.
5018 </para>
5019 </sect2>
5020
5021 </sect1>
5022 <?Pub _newpage>
5023 <sect1 id="frv400">
5024 <title>Fujitsu FR-V 400 (MB-93091)</title>
5025 <sect2>
5026 <title>Overview</title>
5027
5028 <para><indexterm><primary>Fujitsu FR-V 400</primary>
5029 <secondary>installing and testing</secondary></indexterm><indexterm><primary>
5030 installing and testing
5031 </primary><secondary>Fujitsu FR-V 400</secondary></indexterm>
5032 RedBoot supports both serial ports, which are available via
5033 the stacked serial connectors on the mother board.
5034 The topmost port is the default and is considered to be port 0 by RedBoot.
5035 The bottommost port is serial port 1.
5036 The default serial port settings are 38400,8,N,1.
5037 </para>
5038 <para>
5039 FLASH management is also supported, but only for the FLASH device in IC7.
5040 This arrangement allows for IC8 to retain either the original Fujitsu board
5041 firmware, or some application specific contents.
5042 Two basic RedBoot configurations are supported:
5043
5044 <itemizedlist>
5045 <listitem>
5046 <para>
5047 RedBoot running from RAM which has been relocated from the board's
5048 flash boot sector. This mode is known as ROMRAM.
5049 </para>
5050 </listitem>
5051 <listitem>
5052 <para>
5053 RedBoot running from RAM, loaded by some other means.
5054 </para>
5055 </listitem>
5056 </itemizedlist>
5057
5058 </para>
5059
5060 <para>Since the normal RedBoot configuration does not use the FLASH ROM
5061 except during startup, it is unnecessary to load a RAM-based RedBoot
5062 before reprogramming the FLASH.</para>
5063
5064 </sect2>
5065
5066 <sect2>
5067 <title>Initial Installation Method </title>
5068
5069 <para>
5070 RedBoot can be installed by directly programming the FLASH device in IC7
5071 or by using the Fujitsu provided software to download and install a
5072 version into the FLASH device. Complete instructions are provided
5073 separately.
5074 </para>
5075
5076 <sect3>
5077 <title>Updating the primary RedBoot image</title>
5078 <para>To update the primary RedBoot image, follow the procedures detailed
5079 in <xref linkend="update-primary-image">, but the actual numbers used with
5080 the flags in the sample commands should be:
5081 <programlisting>
5082 -f 0xFF000000
5083 -b 0x100000
5084 -l 0x40000
5085 </programlisting>
5086 Note that these values are inferred when updating the RedBoot image once
5087 the <command>fis create</command> has been run.
5088 </para>
5089 </sect3>
5090
5091 </sect2>
5092
5093 <sect2>
5094 <title>Special RedBoot Commands</title>
5095
5096 <para>None.</para>
5097 </sect2>
5098
5099 <sect2>
5100 <title>Memory Maps</title>
5101
5102 <para>The memory map of this platform is fixed by the hardware (cannot
5103 be changed by software). The only attributes which can be modified are
5104 control over cacheability, as noted below.
5105 <screen>
5106 Address Cache? Resource
5107 00000000-03EFFFFF Yes SDRAM (via plugin DIMM)
5108 03F00000-03FFFFFF No SDRAM (used for PCI window)
5109 10000000-1FFFFFFF No MB86943 PCI bridge
5110 20000000-201FFFFF No SRAM
5111 21000000-23FFFFFF No Motherboard resources
5112 24000000-25FFFFFF No PCI I/O space
5113 26000000-2FFFFFFF No PCI Memory space
5114 30000000-FDFFFFFF ?? Unused
5115 FE000000-FEFFFFFF No I/O devices
5116 FF000000-FF1FFFFF No IC7 - RedBoot FLASH
5117 FF200000-FF3FFFFF No IC8 - unused FLASH
5118 FF400000-FFFFFFFF No Misc other I/O
5119 </screen>
5120 </para>
5121
5122 <note> <title>NOTE</title>
5123 <para>
5124 The only configuration currently suppored requires a 64MB SDRAM
5125 DIMM to be present on the CPU card. No other memory configuration
5126 is supported at this time.
5127 </para>
5128 </note>
5129
5130 </sect2>
5131
5132 <sect2>
5133 <title>Resource Usage</title>
5134
5135 <para>
5136 The RedBoot image occupies flash addresses 0xFF000000 - 0xFF03FFFF. To
5137 execute it copies itself out of there to RAM at 0x03E00000. RedBoot
5138 reserves memory from 0x00000000 to 0x0001FFFF for its own use.
5139 User programs can use memory from 0x00020000 to 0x03DFFFFF.
5140 RAM based RedBoot configurations are
5141 designed to run from RAM at 0x00020000.
5142 </para>
5143 </sect2>
5144
5145 <sect2>
5146 <title>Rebuilding RedBoot</title>
5147
5148 <para>
5149 The instructions in <xref linkend="Rebuilding-Redboot"> should be followed. The values for
5150 TARGET, ARCH_DIR and PLATFORM_DIR on this platform are &ldquo;frv400&rdquo;,
5151 &ldquo;frv&rdquo; and &ldquo;frv400&rdquo; respectively. The configuration export files
5152 supplied in the <computeroutput>hal/frv/frv400/<replaceable>VERSION</replaceable>/misc</computeroutput> directory in the RedBoot
5153 source tree should be used. In general only the ROMRAM variant should
5154 need to be used.
5155 </para>
5156 </sect2>
5157
5158 </sect1>
5159
5160 </chapter>