Mercurial > ecos
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 “0x” | |
| 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’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 “brutus”, “arm” and “sa11x0/brutus” 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 “ebsa285”, “arm” and “ebsa285” 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 “sa1100mm”, “arm” and “sa11x0/sa1100mm” 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 “assabet”, “arm” and “sa11x0/assabet” 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 “Deleted.” </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 “RedBoot”. </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><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><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><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 “atlas_mips32_4kc” or “atlas_mips64_5kc”, “mips” | |
| 1477 and “atlas” 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 “RedBoot”. </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><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><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><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 “malta_mips32_4kc”, “mips” and “malta” 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><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><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><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 “ocelot”, “mips” and “rm7000/ocelot” 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 “mbx”, “powerpc” and “mbx” 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 “viper”, “powerpc” and “viper” 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 “e7t”, “arm” and “e7t” 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 “integrator” or | |
| 2216 “integrator_arm9”, “arm” and | |
| 2217 “integrator” 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 “pid”, “arm” and “pid” 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><addr></replaceable></term> | |
| 2470 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry> | |
| 2471 <varlistentry><term> | |
| 2472 -l <replaceable><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><addr></replaceable></term> | |
| 2478 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry> | |
| 2479 <varlistentry><term>-s <replaceable><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 “ipaq”, “arm” and “sa11x0/ipaq” 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><addr></replaceable></term> | |
| 2627 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry> | |
| 2628 <varlistentry><term> | |
| 2629 -l <replaceable><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><addr></replaceable></term> | |
| 2635 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry> | |
| 2636 <varlistentry><term>-s <replaceable><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 “cerf”, “arm” and “sa11x0/ipaq” 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 “arm” and “edb7xxx” respectively. | |
| 2820 The value for TARGET is either “edb7211” or “edb7212” | |
| 2821 or “edb7312”, | |
| 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 “nano”, “arm” and “sa11x0/nano” 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 “pc”, “i386” and “pc” 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 “calm16_ceb”, “calmrisc16” and “ceb” 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 “calm32_ceb”, “calmrisc32” and “ceb” 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 “edk7708”, “sh” and “edk7708” 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 >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 > /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><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><addr></replaceable></term> | |
| 3429 <listitem><para>Start address of initrd | |
| 3430 image</para></listitem></varlistentry> | |
| 3431 | |
| 3432 <varlistentry><term>-j <replaceable><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><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><flags></replaceable></term> | |
| 3445 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry> | |
| 3446 | |
| 3447 <varlistentry><term>-r <replaceable><device number></replaceable></term> | |
| 3448 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry> | |
| 3449 | |
| 3450 <varlistentry><term>-l <replaceable><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 “se77x9”, “sh” and “se77x9” 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 >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 > /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><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><addr></replaceable></term> | |
| 3590 <listitem><para>Start address of initrd | |
| 3591 image</para></listitem></varlistentry> | |
| 3592 | |
| 3593 <varlistentry><term>-j <replaceable><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><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><flags></replaceable></term> | |
| 3606 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry> | |
| 3607 | |
| 3608 <varlistentry><term>-r <replaceable><device number></replaceable></term> | |
| 3609 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry> | |
| 3610 | |
| 3611 <varlistentry><term>-l <replaceable><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 “se77x9”, “sh” and “se77x9” 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 >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 > /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><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><addr></replaceable></term> | |
| 3752 <listitem><para>Start address of initrd | |
| 3753 image</para></listitem></varlistentry> | |
| 3754 | |
| 3755 <varlistentry><term>-j <replaceable><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><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><flags></replaceable></term> | |
| 3768 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry> | |
| 3769 | |
| 3770 <varlistentry><term>-r <replaceable><device number></replaceable></term> | |
| 3771 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry> | |
| 3772 | |
| 3773 <varlistentry><term>-l <replaceable><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 “se7751”, “sh” and “se7751” 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><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><addr></replaceable></term> | |
| 3920 <listitem><para>Start address of initrd | |
| 3921 image</para></listitem></varlistentry> | |
| 3922 | |
| 3923 <varlistentry><term>-j <replaceable><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><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><flags></replaceable></term> | |
| 3936 <listitem><para>RAM disk flags. Should normally be 0x4000</para></listitem></varlistentry> | |
| 3937 | |
| 3938 <varlistentry><term>-r <replaceable><device number></replaceable></term> | |
| 3939 <listitem><para>Root device specification. /dev/ram is 0x0101</para></listitem></varlistentry> | |
| 3940 | |
| 3941 <varlistentry><term>-l <replaceable><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 “hs7729pci”, “sh” and “hs7729pci” 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 “at91”. | |
| 4124 The value for TARGET is “eb40”. | |
| 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 “C:/PanaX”.</para> | |
| 4201 </listitem> | |
| 4202 <listitem><para>Install the Matsushita provided “project” into the | |
| 4203 “C:/Panax/wice103e/prj” directory.</para> | |
| 4204 </listitem> | |
| 4205 <listitem><para>Install the RedBoot image files into the “C:/Panax/wice103e/prj” | |
| 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 “boot | |
| 4216 PROM”.</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 “rh | |
| 4302 8”.</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><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><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 “cmdline:” 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 “asb2305”, “mn10300” | |
| 4439 and “asb2305” 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 > <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 >/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> <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> <userinput>load -b 0x100000 redboot_primary_ROMRAM/redboot.srec</userinput> | |
| 4553 </programlisting> | |
| 4554 | |
| 4555 or using serial Y-modem protocol: | |
| 4556 | |
| 4557 <programlisting>RedBoot> <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> <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 > <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 >/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> <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> <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> <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> <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> <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 > <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 > | |
| 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><addr></replaceable></term> | |
| 4767 <listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry> | |
| 4768 <varlistentry><term> | |
| 4769 -l <replaceable><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><addr></replaceable></term> | |
| 4775 <listitem><para>'initrd' ramdisk location</para></listitem></varlistentry> | |
| 4776 <varlistentry><term>-s <replaceable><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> load -r -b 0x100000 zImage | |
| 4785 Raw file loaded 0x00100000-0x001a3d6c | |
| 4786 RedBoot> 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> 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 “arm” and “arm9/aaed2000” respectively. | |
| 4850 The value for TARGET is “aaed”. | |
| 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 “vrc4375”, | |
| 5014 “mips” and “vrc4375” 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 “frv400”, | |
| 5151 “frv” and “frv400” 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> |
