📄 redboot_installing.sgml
字号:
<screen>boot Monitor > <userinput>m</userinput>
Load Motorola S-Record image into memory and execute it
The S-Record loader only accepts input on the serial port.
Record addresses must be between 0x00008000 and 0x01E0F510.
Type Ctrl/C to exit loader.
</screen>
Use the terminal emulator's ASCII upload command, or (on Linux) simply
cat the file to the serial port:
<screen>$ <userinput>cat redboot_secondary_RAM.srec >/dev/ttyS1</userinput>
</screen>
You should see RedBoot start up:
<screen>FLASH configuration checksum error or invalid key
Ethernet eth0: MAC address 00:30:d3:03:04:99
IP: 192.168.42.111, Default server: 192.168.42.3
RedBoot(tm) bootstrap and debug environment [RAM]
Non-certified release, version UNKNOWN - built 12:31:13, Nov 9 2001
Platform: AAED2000 system (ARM9) [Secondary]
Copyright (C) 2000, 2001, Red Hat, Inc.
RAM: 0x00000000-0x01f80000, 0x00063568-0x01f51000 available
FLASH: 0x60000000 - 0x62000000, 256 blocks of 0x00020000 bytes each.
</screen>
As can be seen from the output above, the network has been configured
to give the board an IP address and information about the default
server. If things are not set up on your network, you can still
continue, but use the Y-modem download method when loading the RedBoot
ROMRAM mode image.
Next step is to erase all of the flash, except where the ARM booter resides:
<screen>RedBoot> <userinput>fi erase -f 0x60020000 -l 0x01fe0000</userinput>
... Erase from 0x60020000-0x62000000: ..........................................
................................................................................
................................................................................
.....................................................
</screen>
Then initialize RedBoot's FIS:
<screen>RedBoot> <userinput>fi init</userinput>
About to initialize [format] FLASH image system - continue (y/n)? <userinput>y</userinput>
*** Initialize FLASH Image System
Warning: device contents not erased, some blocks may not be usable
... Erase from 0x61fc0000-0x61fe0000: .
... Program from 0x01fdf000-0x01fff000 at 0x61fc0000: .
</screen>
Download the ROMRAM mode RedBoot image via ethernet:
<screen>RedBoot> <userinput>load -raw -b %{FREEMEMLO} redboot_secondary_ROMRAM.arm.bin</userinput>
</screen>
or using serial Y-modem protocol:
<screen>RedBoot> <userinput>load -raw -mode ymodem -b %{FREEMEMLO}</userinput>
</screen>
(Use the terminal emulator's Y-modem upload command to send the file
<filename>redboot_secondary_ROMRAM.arm.bin</filename>.)
When the image has been downloaded, program it into flash:
<screen>RedBoot> <userinput>fi cr RedBoot</userinput>
An image named 'RedBoot' exists - continue (y/n)? <userinput>y</userinput>
* CAUTION * about to program 'RedBoot'
at 0x60020000..0x6005ffff from 0x00100000 - continue (y/n)? <userinput>y</userinput>
... Erase from 0x60020000-0x60060000: ..
... Program from 0x00100000-0x00140000 at 0x60020000: ..
... Erase from 0x61fc0000-0x61fe0000: .
... Program from 0x01f5f000-0x01f7f000 at 0x61fc0000: .
</screen>
Now reset the board. You might see the ARM Monitor complain:
<screen>Failed to boot from flash.
The ARM Boot Monitor SIB can not be found.
Press any key to continue.
</screen>
This is due to due to the flash having been erased. Press a key, and
execute the "validate flash contents" command:
<screen>boot Monitor > <userinput>v</userinput>
There are 254 128KByte blocks of Application Flash:
No images found!
================
System Information Blocks
=========================
Address Owner Size Idx Rev
~~~~~~~ ~~~~~ ~~~~ ~~~ ~~~
0x05FE0000 ARM Boot Monitor 312 0 0
Blocks of unknown type
======================
Block Size Footer Type
~~~~~ ~~~~ ~~~~~~~~~~~
252 1 0x52420000
boot Monitor >
</screen>
This causes the last block of the flash to be initialized with the ARM
Boot Monitor ID, necessary for the Monitor to work properly. When
resetting the board now, it should automatically start RedBoot. If you
ever need to get into the ARM Boot Monitor again, reset the board
while pressing the SPACE key.
</para></sect3>
-->
</sect2>
<sect2>
<title>Special RedBoot Commands </title>
<para>The <command>exec</command> command which allows the loading
and execution of Linux kernels,
is supported for this board (see <xref linkend="executing-programs">). The <command>
exec</command> parameters used for the AAED2000 are:</para>
<variablelist><varlistentry>
<term>-b <replaceable><addr></replaceable></term>
<listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry>
<varlistentry><term>
-l <replaceable><len></replaceable></term>
<listitem><para>Length of kernel</para></listitem></varlistentry>
<varlistentry><term>
-c <replaceable>"params"</replaceable></term>
<listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
<varlistentry><term>-r <replaceable><addr></replaceable></term>
<listitem><para>'initrd' ramdisk location</para></listitem></varlistentry>
<varlistentry><term>-s <replaceable><len></replaceable></term>
<listitem><para>Length of initrd ramdisk</para></listitem></varlistentry>
</variablelist>
<para>The parameters for kernel image base and size are automatically
set after a load operation. So one way of starting the kernel would
be:
<screen>RedBoot> <userinput>load -r -b 0x100000 zImage</userinput>
Raw file loaded 0x00100000-0x001a3d6c
RedBoot> exec -c "console=ttyAC0,38400"
Using base address 0x00100000 and length 0x000a3d6c
Uncompressing Linux.....
</screen>
An image could also be put in flash and started directly:
<screen>RedBoot> <userinput>exec -b 0x60040000 -l 0xc0000 -c "console=ttyAC0,38400"</userinput>
Uncompressing Linux.....
</screen>
</para>
</sect2>
<sect2>
<title>Memory Maps </title>
<para>The MMU page tables are located at 0x4000. <note><title>NOTE
</title>
<para>The virtual memory maps in this section use a C and B column to indicate
whether or not the region is cached (C) or buffered (B).</para>
</note><programlisting>Physical Address Range Description
----------------------- ----------------------------------
0x00000000 - 0x01ffffff Flash
0x10000000 - 0x100fffff Ethernet
0x30000000 - 0x300fffff Board registers
0x40000000 - 0x4fffffff PCMCIA Slot (0)
0x50000000 - 0x5fffffff Compact Flash Slot (1)
0x80000000 - 0x800037ff I/O registers
0xb0060000 - 0xb00fffff On-chip SRAM
0xf0000000 - 0xfd3fffff SDRAM
Virtual Address Range C B Description
----------------------- - - ----------------------------------
0x00000000 - 0x01f7ffff Y Y SDRAM
0x01f80000 - 0x01ffffff Y Y SDRAM (used for LCD frame buffer)
0x10000000 - 0x100fffff N N Ethernet
0x30000000 - 0x300fffff N N Board registers
0x40000000 - 0x4fffffff N N PCMCIA Slot (0)
0x50000000 - 0x5fffffff N N Compact Flash Slot (1)
0x60000000 - 0x61ffffff N N Flash
0x80000000 - 0x800037ff N N I/O registers
0xf0000000 - 0xffffffff N N SDRAM (uncached)
</programlisting></para>
</sect2>
<sect2>
<title>Rebuilding RedBoot</title>
<para>These shell variables provide the platform-specific information
needed for building RedBoot according to the procedure described in
<xref linkend="Rebuilding-Redboot">:
<programlisting>
export TARGET=aaed
export ARCH_DIR=arm
export PLATFORM_DIR=arm9/aaed2000
</programlisting>
</para>
<para>The names of configuration files are listed above with the
description of the associated modes.</para>
</sect2>
</sect1>
<?Pub _newpage>
<sect1 id="excaliburarm9">
<title>ARM/ARM9 Altera Excalibur</title>
<sect2>
<title>Overview</title>
<para><indexterm><primary>Altera Excalibur ARM9 (excalibur_arm9)</primary>
<secondary>installing and testing</secondary></indexterm><indexterm><primary>
installing and testing</primary><secondary>Altera Excalibur ARM9 (excalibur_arm9)
</secondary></indexterm>RedBoot supports the serial port labelled
P2 on the board. The default serial port settings are 57600,8,N,1. RedBoot
also supports flash management on the Excalibur.</para>
<para>The following RedBoot configurations are supported:
<informaltable frame="all">
<tgroup cols="4" colsep="1" rowsep="1" align="left">
<thead>
<row>
<entry>Configuration</entry>
<entry>Mode</entry>
<entry>Description</entry>
<entry>File</entry>
</row>
</thead>
<tbody>
<row>
<entry>ROMRAM</entry>
<entry>[ROMRAM]</entry>
<entry>RedBoot running from RAM, but contained in the
board's flash boot sector.</entry>
<entry>redboot_ROMRAM.ecm</entry>
</row>
<row>
<entry>RAM</entry>
<entry>[RAM]</entry>
<entry>RedBoot running from RAM with RedBoot in the
flash boot sector.</entry>
<entry>redboot_RAM.ecm</entry>
</row>
<row>
<entry>REDBOOT</entry>
<entry>[ROMRAM]</entry>
<entry>RedBoot running from top of RAM, but contained in
the board's flash boot sector.</entry>
<entry>redboot_REDBOOT.ecm</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
<note> <title>NOTE</title>
<para>RedBoot is currently hardwired to use a 128MB SDRAM SIMM module.
</para>
</note>
</sect2>
<sect2>
<title>Initial Installation Method </title>
<para>A Windows utility
(<application>exc_flash_programmer.exe</application>) is used to
program flash using the ByteBlasterMV JTAG unit.
See board documentation for details on
in situ flash programming. </para>
<para>For ethernet to work (under Linux) the following jumper
settings should be used on a REV 2 board: <literallayout>
SW2-9 : OFF
U179 : 2-3
JP14-18 : OPEN
JP40-41 : 2-3
JP51-55 : 2-3
</literallayout>
</para>
</sect2>
<sect2>
<title>Flash management</title>
<para>The ROMRAM and REDBOOT configurations supported on this platform
differ only in the memory layout (ROMRAM configuration runs RedBoot from
0x00008000 while REDBOOT configuration runs RedBoot from 0x07f80000). The
REDBOOT configuration allows applications to be loaded and run from
address 0x00008000.</para>
</sect2>
<sect2>
<title>Special RedBoot Commands </title>
<para>The <command>exec</command> command which allows the loading
and execution of Linux kernels,
is supported for this board (see <xref linkend="executing-programs">). The <command>
exec</command> parameters used for the Excalibur are:</para>
<variablelist><varlistentry>
<term>-b <replaceable><addr></replaceable></term>
<listitem><para>Location Linux kernel was loaded to</para></listitem></varlistentry>
<varlistentry><term>
-l <replaceable><len></replaceable></term>
<listitem><para>Length of kernel</para></listitem></varlistentry>
<varlistentry><term>
-c <replaceable>"params"</replaceable></term>
<listitem><para>Parameters passed to kernel</para></listitem></varlistentry>
<varlistentry><term>-r <replaceable><addr></replaceable></term>
<listitem><para>'initrd' ramdisk location</para></listitem></varlistentry>
<varlistentry><term>-s <replaceable><len></replaceable></term>
<listitem><para>Length of initrd ramdisk</para></listitem></varlistentry>
</variablelist>
<para>The parameters for kernel image base and size are automatically
set after a load operation. So one way of starting the kernel would
be:
<screen>RedBoot> <userinput>load -r -b 0x100000 zImage</userinput>
Raw file loaded 0x00100000-0x001a3d6c
RedBoot> <userinput>exec -c "console=ttyUA0,57600"</userinput>
Using base address 0x00100000 and length 0x000a3d6c
Uncompressing Linux.....
</screen>
An image could also be put in flash and started directly:
<screen>RedBoot> <userinput>exec -b 0x40400000 -l 0xc0000 -c "console=ttyUA0,57600"</userinput>
Uncompressing Linux.....
</screen>
</para>
</sect2>
<sect2>
<title>Memory Maps </title>
<para>The MMU page tables are located at 0x4000. <note><title>NOTE
</title>
<para>The virtual memory maps in this section use a C and B column to indicate
whether or not the region is cached (C) or buffered (B).</para>
</note><programlisting>Physical Address Range Description
----------------------- ----------------------------------
0x00000000 - 0x07ffffff SDRAM
0x08000000 - 0x0805ffff On-chip SRAM
0x40000000 - 0x40ffffff Flash
0x7fffc000 - 0x7fffffff I/O registers
0x80000000 - 0x8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -