]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - doc/html/ref/nano.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / nano.html
diff --git a/doc/html/ref/nano.html b/doc/html/ref/nano.html
new file mode 100644 (file)
index 0000000..08e2cf9
--- /dev/null
@@ -0,0 +1,684 @@
+<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
+<!-- This material may be distributed only subject to the terms      -->
+<!-- and conditions set forth in the Open Publication License, v1.0  -->
+<!-- or later (the latest version is presently available at          -->
+<!-- http://www.opencontent.org/openpub/).                           -->
+<!-- Distribution of the work or derivative of the work in any       -->
+<!-- standard (paper) book form is prohibited unless prior           -->
+<!-- permission is obtained from the copyright holder.               -->
+<HTML
+><HEAD
+><TITLE
+>ARM/StrongARM(SA11X0) Bright Star Engineering commEngine and nanoEngine</TITLE
+><meta name="MSSmartTagsPreventParsing" content="TRUE">
+<META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="eCos Reference Manual"
+HREF="ecos-ref.html"><LINK
+REL="UP"
+TITLE="Installation and Testing"
+HREF="installation-and-testing.html"><LINK
+REL="PREVIOUS"
+TITLE="ARM/StrongARM(SA1110) Intel SA1110 (Assabet) "
+HREF="assabet.html"><LINK
+REL="NEXT"
+TITLE="ARM/StrongARM(SA11X0) Compaq iPAQ PocketPC"
+HREF="ipaq.html"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>eCos Reference Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="assabet.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 5. Installation and Testing</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="ipaq.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="NANO">ARM/StrongARM(SA11X0) Bright Star Engineering commEngine and nanoEngine</H1
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5802">Overview</H2
+><P
+>RedBoot supports a serial port and the built in ethernet port
+for communication and downloads. The default serial port settings are 38400,8,N,1.
+RedBoot runs from and supports flash management for the system flash
+region.</P
+><P
+>The following RedBoot configurations are supported:
+
+      <DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5818"><P
+></P
+><TABLE
+BORDER="1"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+ALIGN="LEFT"
+VALIGN="TOP"
+>Configuration</TH
+><TH
+ALIGN="LEFT"
+VALIGN="TOP"
+>Mode</TH
+><TH
+ALIGN="LEFT"
+VALIGN="TOP"
+>Description</TH
+><TH
+ALIGN="LEFT"
+VALIGN="TOP"
+>File</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>POST</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>[ROM]</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>RedBoot running from the first free flash block
+             at 0x40000.</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>redboot_ROM.ecm</TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>RAM</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>[RAM]</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>RedBoot running from RAM with RedBoot in the
+             flash boot sector.</TD
+><TD
+ALIGN="LEFT"
+VALIGN="TOP"
+>redboot_RAM.ecm</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5837">Initial Installation</H2
+><P
+>Unlike other targets, the nanoEngine comes equipped with boot firmware
+which you cannot modify.  See chapter 5, "nanoEngine Firmware" of the <I
+CLASS="CITETITLE"
+>nanoEngine Hardware Reference Manual</I
+> (we refer to "July 17, 2000
+Rev 0.6") from Bright Star Engineering. </P
+><P
+>Because of this, eCos, and therefore Redboot, only supports a
+special configuration of the ROM mode, starting at offset 0x40000 in
+the flash.</P
+><P
+>Briefly, the POST-configuration RedBoot image lives in flash following the
+BSE firmware. The BSE firmware is configured, using its standard <B
+CLASS="COMMAND"
+>bootcmd</B
+> command, to run RedBoot at startup.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5844">Download Instructions</H2
+><P
+>You can perform the initial load of the POST-configuration RedBoot image into
+flash using the BSE firmware's <B
+CLASS="COMMAND"
+>load</B
+> command.
+This will load a binary file, using TFTP, and program it into flash in one
+operation. Because no memory management is used in the BSE firmware, flash
+is mapped from address zero upwards, so the address for the RedBoot POST image
+is 0x40000.  You must use the binary version of RedBoot for this,
+<TT
+CLASS="FILENAME"
+>redboot-post.bin</TT
+>.</P
+><P
+>This assumes you have set up the other BSE firmware config
+parameters such that it can communicate over your network to your TFTP
+server.
+<TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>&#62;<TT
+CLASS="USERINPUT"
+><B
+>load redboot-post.bin 40000</B
+></TT
+>
+loading ... erasing blk at 00040000
+erasing blk at 00050000
+94168 bytes loaded cksum 00008579
+done
+&#62;
+&#62; <TT
+CLASS="USERINPUT"
+><B
+>set bootcmd "go 40000"</B
+></TT
+>
+&#62; <TT
+CLASS="USERINPUT"
+><B
+>get</B
+></TT
+>
+myip = 10.16.19.198
+netmask = 255.255.255.0
+eth = 0
+gateway = 10.16.19.66
+serverip = 10.16.19.66
+bootcmd = go 40000
+&#62;</PRE
+></TD
+></TR
+></TABLE
+>
+
+<DIV
+CLASS="NOTE"
+><BLOCKQUOTE
+CLASS="NOTE"
+><P
+><B
+>NOTE: </B
+>the BSE firmware runs its serial IO at 9600 Baud; RedBoot runs instead
+at 38400 Baud. You must select the right baud rate in your terminal program
+to be able to set up the BSE firmware.</P
+></BLOCKQUOTE
+></DIV
+>
+
+After a reset, the BSE firmware will print
+
+<TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>Boot: BSE 2000 Sep 12 2000 14:00:30
+autoboot: "go 40000" [hit ESC to abort]</PRE
+></TD
+></TR
+></TABLE
+>
+
+and then RedBoot starts, switching to 38400 Baud.</P
+><P
+>Once you have installed a bootable RedBoot in the system in this
+manner, we advise re-installing using the generic method described in
+<A
+HREF="updating-redboot.html"
+>Chapter 4</A
+> in order that the Flash Image System
+contains an appropriate description of the flash entries.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5860">Cohabiting with POST in Flash</H2
+><P
+>The configuration file named <TT
+CLASS="FILENAME"
+>redboot_POST.ecm</TT
+>
+configures RedBoot to build for execution at address 0x50040000 (or, during
+bootup, 0x00040000). This is to allow power-on self-test (POST) code or immutable
+firmware to live in the lower addresses of the flash and to run before RedBoot
+gets control. The assumption is that RedBoot will be entered at its base address
+in physical memory, that is 0x00040000.</P
+><P
+>Alternatively, for testing, you can call it in an already running system
+by using <TT
+CLASS="USERINPUT"
+><B
+>go 0x50040040</B
+></TT
+> at another RedBoot prompt, or
+a branch to that address. The address is where the reset vector
+points. It is reported by RedBoot's <B
+CLASS="COMMAND"
+>load</B
+> command
+and listed
+by the <B
+CLASS="COMMAND"
+>fis list</B
+> command, amongst other
+places.</P
+><P
+>Using the POST configuration enables a normal config option which causes
+linking and initialization against memory layout files called "...post..."
+rather than "...rom..." or "...ram..." in the <TT
+CLASS="FILENAME"
+>include/pkgconf</TT
+> directory. Specifically:<P
+CLASS="LITERALLAYOUT"
+><TT
+CLASS="FILENAME"
+>include/pkgconf/mlt_arm_sa11x0_nano_post.h</TT
+><br>
+<TT
+CLASS="FILENAME"
+>include/pkgconf/mlt_arm_sa11x0_nano_post.ldi</TT
+><br>
+<TT
+CLASS="FILENAME"
+>include/pkgconf/mlt_arm_sa11x0_nano_post.mlt</TT
+></P
+>
+
+It is these you should edit if you wish to move the execution address
+from 0x50040000 in the POST configuration.  Startup mode naturally
+remains ROM in this configuration.</P
+><P
+>Because the nanoEngine contains immutable boot firmware at the start
+of flash, RedBoot for this target is configured to reserve that area in the
+Flash Image System, and to create by default an entry for the POST
+mode RedBoot.      
+<TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>RedBoot&#62; <TT
+CLASS="USERINPUT"
+><B
+>fis list</B
+></TT
+>
+Name              FLASH addr  Mem addr    Length      Entry point
+(reserved)        0x50000000  0x50000000  0x00040000  0x00000000
+RedBoot[post]     0x50040000  0x00100000  0x00020000  0x50040040
+RedBoot config    0x503E0000  0x503E0000  0x00010000  0x00000000
+FIS directory     0x503F0000  0x503F0000  0x00010000  0x00000000
+RedBoot&#62;</PRE
+></TD
+></TR
+></TABLE
+>    
+The entry "(reserved)" ensures that the FIS cannot attempt
+to overwrite the BSE firmware, thus ensuring that the board remains bootable
+and recoverable even after installing a broken RedBoot image.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5877">Special RedBoot Commands</H2
+><P
+>The nanoEngine/commEngine has one or two Intel i82559 Ethernet controllers
+installed, but these have no associated serial EEPROM in which to record their
+Ethernet Station Address (ESA, or MAC address). The BSE firmware records an
+ESA for the device it uses, but this information is not available to RedBoot;
+we cannot share it.</P
+><P
+>To keep the ESAs for the two ethernet interfaces, two new items of RedBoot
+configuration data are introduced.  You can list them with the RedBoot command <B
+CLASS="COMMAND"
+>fconfig -l</B
+> thus:     
+<TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>RedBoot&#62; <TT
+CLASS="USERINPUT"
+><B
+>fconfig -l</B
+></TT
+>
+Run script at boot: false
+Use BOOTP for network configuration: false
+Local IP address: 10.16.19.91
+Default server IP address: 10.16.19.66
+Network hardware address [MAC] for eth0: 0x00:0xB5:0xE0:0xB5:0xE0:0x99
+Network hardware address [MAC] for eth1: 0x00:0xB5:0xE0:0xB5:0xE0:0x9A
+GDB connection port: 9000
+Network debug at boot time: false
+RedBoot&#62;</PRE
+></TD
+></TR
+></TABLE
+>
+
+You should set them before running RedBoot or eCos applications with
+the board connected to a network. The <B
+CLASS="COMMAND"
+>fconfig </B
+>
+command can be used as for any configuration data item; the entire ESA
+is entered in one line.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5885">Memory Maps</H2
+><P
+>The first level page table is located at physical address 0xc0004000.
+ No second level tables are used.   <DIV
+CLASS="NOTE"
+><BLOCKQUOTE
+CLASS="NOTE"
+><P
+><B
+>NOTE: </B
+>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).</P
+></BLOCKQUOTE
+></DIV
+><TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>Physical Address Range     Description
+-----------------------    ----------------------------------
+0x00000000 - 0x003fffff    4Mb FLASH (nCS0)
+0x18000000 - 0x18ffffff    Internal PCI bus - 2 x i82559 ethernet
+0x40000000 - 0x4fffffff    External IO or PCI bus
+0x80000000 - 0xbfffffff    SA-1110 Internal Registers
+0xc0000000 - 0xc7ffffff    DRAM Bank 0 - 32Mb SDRAM
+0xc8000000 - 0xcfffffff    DRAM Bank 1 - empty
+0xe0000000 - 0xe7ffffff    Cache Clean
+
+Virtual Address Range    C B  Description
+-----------------------  - -  ----------------------------------
+0x00000000 - 0x001fffff  Y Y  DRAM - 8Mb to 32Mb
+0x18000000 - 0x180fffff  N N  Internal PCI bus - 2 x i82559 ethernet
+0x40000000 - 0x4fffffff  N N  External IO or PCI bus
+0x50000000 - 0x51ffffff  Y Y  Up to 32Mb FLASH (nCS0)
+0x80000000 - 0xbfffffff  N N  SA-1110 Internal Registers
+0xc0000000 - 0xc0ffffff  N Y  DRAM Bank 0: 8 or 16Mb
+0xc8000000 - 0xc8ffffff  N Y  DRAM Bank 1: 8 or 16Mb or absent
+0xe0000000 - 0xe7ffffff  Y Y  Cache Clean</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+>The ethernet devices use a "PCI window" to communicate with the CPU.
+This is 1Mb of SDRAM which is shared with the ethernet devices that are on
+the PCI bus. It is neither cached nor buffered, to ensure that CPU and PCI
+accesses see correct data in the correct order. By default it is configured
+to be megabyte number 30, at addresses 0x01e00000-0x01efffff. This can be
+modified, and indeed must be, if less than 32Mb of SDRAM is installed, via
+the memory layout tool, or by moving the section <TT
+CLASS="COMPUTEROUTPUT"
+>__pci_window</TT
+> referred to by symbols <TT
+CLASS="COMPUTEROUTPUT"
+>CYGMEM_SECTION_pci_window*</TT
+> in the linker script.   </P
+><P
+>Though the nanoEngine ships with 32Mb of SDRAM all attached to DRAM
+bank 0, the code can cope with any of these combinations also; "2 x " in this
+context means one device in each DRAM Bank.     <P
+CLASS="LITERALLAYOUT"
+>1&nbsp;x&nbsp;8Mb&nbsp;=&nbsp;8Mb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;x&nbsp;8Mb&nbsp;=&nbsp;16Mb<br>
+1&nbsp;x&nbsp;16Mb&nbsp;=&nbsp;16Mb&nbsp;&nbsp;&nbsp;2&nbsp;x&nbsp;16Mb&nbsp;=&nbsp;32Mb</P
+>All are programmed the same
+in the memory controller.   </P
+><P
+>Startup code detects which is fitted and programs the memory map accordingly.
+If the device(s) is 8Mb, then there are gaps in the physical memory map, because
+a high order address bit is not connected. The gaps are the higher 2Mb out
+of every 4Mb.</P
+><P
+> The SA11x0 OS timer is used as a polled timer to provide timeout
+support within RedBoot.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5899">Nano Platform Port</H2
+><P
+>The nano is in the set of SA11X0-based platforms. It uses the arm architectural
+HAL, the sa11x0 variant HAL, plus the nano platform hal. These are components
+        <P
+CLASS="LITERALLAYOUT"
+>CYGPKG_HAL_ARM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hal/arm/arch/<br>
+CYGPKG_HAL_ARM_SA11X0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hal/arm/sa11x0/var<br>
+CYGPKG_HAL_ARM_SA11X0_NANO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hal/arm/sa11x0/nano</P
+> respectively.
+  </P
+><P
+>The target name is "nano" which includes all these, plus the ethernet
+driver packages, flash driver, and so on.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5904">Ethernet Driver</H2
+><P
+>The ethernet driver is in two parts:   </P
+><P
+>A generic ether driver for Intel i8255x series devices, specifically
+the i82559, is <TT
+CLASS="COMPUTEROUTPUT"
+>devs/eth/intel/i82559</TT
+>.  Its
+package name is <TT
+CLASS="COMPUTEROUTPUT"
+>CYGPKG_DEVS_ETH_INTEL_I82559</TT
+>.
+  </P
+><P
+>The platform-specific ether driver is <TT
+CLASS="COMPUTEROUTPUT"
+>devs/eth/arm/nano</TT
+>.  Its package is <TT
+CLASS="COMPUTEROUTPUT"
+>CYGPKG_DEVS_ETH_ARM_NANO</TT
+>.  This tells the generic driver the address in IO memory
+of the chip, for example, and other configuration details. This driver picks
+up the ESA from RedBoot's configuration data - unless configured to use a
+static ESA in the usual manner. </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN5913">Rebuilding RedBoot</H2
+><P
+>These shell variables provide the platform-specific information
+needed for building RedBoot according to the procedure described in
+<A
+HREF="rebuilding-redboot.html"
+>Chapter 3</A
+>:
+<TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>export TARGET=nano
+export ARCH_DIR=arm
+export PLATFORM_DIR=sa11x0/nano</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+>The names of configuration files are listed above with the
+description of the associated modes.</P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="assabet.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="ecos-ref.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="ipaq.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>ARM/StrongARM(SA1110) Intel SA1110 (Assabet)</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="installation-and-testing.html"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>ARM/StrongARM(SA11X0) Compaq iPAQ PocketPC</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file