diff packages/redboot/current/doc/users_guide @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents
children 0ec04793409a
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/redboot/current/doc/users_guide
@@ -0,0 +1,292 @@
+The standard RedBoot command set is structured around the bootstrap
+environment.  These commands are designed to be simple to use and
+remember, while still providing sufficient power and flexibility to
+be useful.  No attempt has been made to make RedBoot be the end-all
+product.  As such, things such as the debug environment are left
+to other modules such as GDB stubs which are typically included in
+RedBoot.
+
+Also, the command set may be extended on a platform basis.
+
+Common commands:
+
+The general format of commands is:
+  <command> <options, paramters>
+Elements are separated by the space character.  Other control characters,
+such as TAB or editting keys (Insert) are not currently supported.
+
+Numbers, such as a memory location, may be specified in either
+decimal or hexadecimal (requires a 0x prefix).
+
+Use the 'help' command to get limited help on command syntax.
+
+    =======================================================================
+    RedBoot> help
+    Display (hex dump) a range of memory
+       dump <location> [<length>]
+    Manage FLASH images
+       fis {cmds}
+    Manage configuration kept in FLASH memory
+       fconfig 
+    Execute code at a location
+       go [-w <timeout>] [entry]
+    Help about help?
+       help <topic>
+    Load a file
+       load [-raw] [-b <mem_addr>]]
+    RedBoot> 
+    =======================================================================
+
+Commands may be abbreviated to any unique string.  E.g. 'lo' is equivalent
+to 'loa' and 'load'.
+
+- Download process
+
+Currently, download is only supported using TFTP over a network.
+Files to be downloaded may be executable images or raw data.
+The format of the command is:
+  RedBoot> load <file> [-v] [-b <location>] [-r]
+where:
+  <file> - The name of the file on the TFTP server.  Details of how
+           this is specified are host specific.
+  -v     - Display a small spinner (indicator) while download in 
+           progress.  Just for feedback, especially during long loads.
+  -b     - Specify the location in memory to load the file.  Executable
+           images normally load at the location the file was linked for.
+           This option allows the file to be loaded to a specific memory
+           location, possibly overriding any assumed location.
+  -r     - Download raw data.  Normally, the load command is used to 
+           load executable images into memory.  This option allows for
+           raw data to be loaded.  If this option is given, "-b" will
+           be required as well.
+
+    =======================================================================
+    RedBoot> lo redboot.ROM -b 0x8c400000   
+    Address offset = 0x0c400000
+    Entry point: 0x80000000, address range: 0x80000000-0x8000fe80
+    =======================================================================
+
+- Flash Image System (FIS)
+
+If the platform has flash memory, RedBoot can use this for image storage.
+Executable images, as well as data, can be stored in flash in a simple
+file store.  The 'fis' command is used to manipulate and maintain flash images.
+
+The available 'fis' commands are:
+
+  fis init [-f]
+
+This command is used to initialize the Flash Image System (FIS).  It should
+only be executed once, when RedBoot is first installed on the hardware.  
+Subsequent executions will cause loss of data in the flash (previously saved
+images will no longer be accessible).
+
+If the "-f" option is specified, all blocks of flash memory will be erased
+as part of this process.
+
+    =======================================================================
+    RedBoot> fis init -f
+    About to initialize [format] FLASH image system - are you sure (y/n)? n
+    =======================================================================
+
+  fis list 
+
+This command lists the images currently available in the FIS.  Certain images
+are used by RedBoot and have fixed names.  Other images can be manipulated by
+the user.
+
+    =======================================================================
+    RedBoot> fis list
+    Name              FLASH addr   Mem addr    Length    Entry point
+    RedBoot           0xA0000000   0xA0000000  0x020000  0x80000000
+    RedBoot[backup]   0xA0020000   0x8C010000  0x010000  0x8C010000
+    RedBoot config    0xA0FC0000   0xA0FC0000  0x020000  0x00000000
+    FIS directory     0xA0FE0000   0xA0FE0000  0x020000  0x00000000
+    =======================================================================
+
+  fis free 
+
+This command shows which areas of the flash memory are currently not in use.
+In use means that the block contains non-erased contents.  Since it is possible
+to force an image to be loaded at a particular flash location, this command
+can be used to check whether that location is in use by any other image.
+
+Note: there currently is no cross-checking between actual flash contents and
+the image directory.  i.e. there could be a segment of flash which is not erased
+that does not correspond to a named image, or vice-versa.
+
+    =======================================================================
+    RedBoot> fis free
+      0xA0040000 .. 0xA07C0000
+      0xA0840000 .. 0xA0FC0000
+    =======================================================================
+
+  fis create -b <mem_base> -l <length> [-f <flash_addr>] [-e <entry_point>] [-r <ram_addr>] <name>
+
+This command creates an image in the FIS directory.  The data for the image must
+exist in RAM memory before the copy.  Typically, one would use the RedBoot 'load'
+command to load an image into RAM and then the 'fis create' command to write it
+to flash. 
+
+Options:
+  <name> - The name of the file, as shown in the FIS directory.
+  -b     - The location in RAM used to obtain the image *required*
+  -l     - The length of the location *required*
+  -f     - The location in flash for the image.  If not provided, the first free
+           block which is large enough will be used.  See 'fis free'.
+  -e     - The execution entry address.  Used if the starting address for an image
+           is not known, or needs to be overridden.
+  -r     - The location in RAM when the image is loaded via 'fis load'.  This only
+           needs to be specified for images which will eventually loaded via 'fis load'.
+           Fixed images, such as RedBoot itself, will not need this.
+
+    =======================================================================
+    RedBoot> fis create RedBoot -f 0xa0000000 -b 0x8c400000 -l 0x20000
+    An image named 'RedBoot' exists - are you sure (y/n)? n
+    RedBoot> fis create junk -b 0x8c400000 -l 0x20000
+    ... Erase from 0xa0040000-0xa0060000: .
+    ... Program from 0x8c400000-0x8c420000 at 0xa0040000: .
+    ... Erase from 0xa0fe0000-0xa1000000: .
+    ... Program from 0x8c7d0000-0x8c7f0000 at 0xa0fe0000: .
+    =======================================================================
+
+  fis load name
+
+This command is used to transfer an image from flash memory to RAM.  Once loaded,
+it may be executed using the 'go' command.
+
+    =======================================================================
+    RedBoot> fis load RedBoot[backup]
+    RedBoot> go
+    =======================================================================
+
+  fis delete name
+
+This command removes an image from the FIS.  The flash memory will be erased
+as part of the execution of this command, as well as removal of the name from
+the FIS directory.
+
+    =======================================================================
+    RedBoot> fis list
+    Name              FLASH addr   Mem addr    Length    Entry point
+    RedBoot           0xA0000000   0xA0000000  0x020000  0x80000000
+    RedBoot[backup]   0xA0020000   0x8C010000  0x020000  0x8C010000
+    RedBoot config    0xA0FC0000   0xA0FC0000  0x020000  0x00000000
+    FIS directory     0xA0FE0000   0xA0FE0000  0x020000  0x00000000
+    junk              0xA0040000   0x8C400000  0x020000  0x80000000
+    RedBoot> fis delete junk
+    Delete image 'junk' - are you sure (y/n)? y
+    ... Erase from 0xa0040000-0xa0060000: .
+    ... Erase from 0xa0fe0000-0xa1000000: .
+    ... Program from 0x8c7d0000-0x8c7f0000 at 0xa0fe0000: .
+    =======================================================================
+
+  fis erase -f <flash_addr> -l <length>
+
+This command is used to forceably erase a portion of flash memory.  There is
+no cross-checking to ensure that the area being erased does not correspond to
+a loaded image.
+
+    =======================================================================
+    RedBoot> fis erase -f 0xa0040000 -l 0x20000
+    ... Erase from 0xa0040000-0xa0060000: .
+    =======================================================================
+
+- Persistent state [flash-based configuration] control
+
+Additionally, if the platform has flash memory, certain control and configuration
+information used by RedBoot can be stored in flash.  The details of what information
+is maintained in flash differs based on the platform and the configuration.
+
+However, the basic operation used to maintain this information is the same.
+Using the 'fconfig' command, the information may be displayed and/or changed.
+
+Usage:
+  RedBoot> fconfig [-l]
+If the optional flag "-l" is specified, the configuration data is simply listed.
+Otherwise, each configuration parameter will be displayed and the user given
+a chance to change it.  The entire value must be typed.  Typing just carriage
+return will leave a value unchanged.  Boolean values may be entered by just the
+first letter ('t' for true, 'f' for false).  At any time the editting process
+may be stopped by entering just a '.' (period) on the line.  Entry of the character
+'^' will move the editting back to the previous item.
+
+If any changes are made in the configuration, then the updated data will be
+written back to flash.
+
+One item which is always present in the configuration data is the ability to
+execute a script at boot/startup time.  A sequence of RedBoot commands can
+be entered which will be executed when the system starts up.  Optionally,
+a time out period can be provided which allows the user to abort the
+startup script and proceed with normal command processing from the console.
+
+    =======================================================================
+    RedBoot> fconfig -l
+    Run script at boot: false 
+    Use BOOTP for network configuration: false 
+    Local IP address: 192.168.1.29 
+    Default server IP address: 192.168.1.101 
+    GDB connection port: 9000 
+    Network debug at boot time: false 
+    =======================================================================
+
+The following example sets a boot script and then shows it running.
+    =======================================================================
+    RedBoot> fconfig
+             ^^^^^^^
+    Run script at boot: false t
+                              ^
+    Boot script: 
+    Enter script, terminate with empty line
+    >> fi li
+       ^^^^^
+    >> 
+       ^
+    Boot script timeout: 0 10
+                           ^^
+    Use BOOTP for network configuration: false .
+                                               ^
+    Update RedBoot non-volatile configuration - are you sure (y/n)? y
+                                                                    ^
+    ... Erase from 0xa0fc0000-0xa0fe0000: .
+    ... Program from 0x8c021f60-0x8c022360 at 0xa0fc0000: .
+    RedBoot> 
+    RedBoot(tm) debug environment - built 08:22:24, Aug 23 2000
+    Copyright (C) 2000, Red Hat, Inc.
+    
+    RAM: 0x8c000000-0x8c800000
+    FLASH: 0xa0000000 - 0xa1000000, 128 blocks of 0x00020000 bytes ea.
+    Socket Communications, Inc: Low Power Ethernet CF Revision C 5V/3.3V 08/27/98
+    IP: 192.168.1.29, Default server: 192.168.1.101
+    == Executing boot script in 10 seconds - enter ^C to abort
+    RedBoot> fi li
+    Name              FLASH addr   Mem addr    Length    Entry point
+    RedBoot           0xA0000000   0xA0000000  0x020000  0x80000000
+    RedBoot[backup]   0xA0020000   0x8C010000  0x020000  0x8C010000
+    RedBoot config    0xA0FC0000   0xA0FC0000  0x020000  0x00000000
+    FIS directory     0xA0FE0000   0xA0FE0000  0x020000  0x00000000
+    RedBoot>
+             ^
+    =======================================================================
+
+Note: the '^' characters above indicate where something was entered on the
+console.  As you can see, the 'fi li' command at the end came from the script,
+not the console.  Once the script was executed, command processing reverted
+to the console.
+
+- Program execution
+
+Once an image has been loaded into memory, either via the 'load' command
+or the 'fis load' command, execution may be transfered to that image.
+Note: the image is assumed to be a stand-alone entity, as RedBoot gives
+the entire platform over to it.  Typical examples would be an eCos application
+or a Linux kernel.
+
+The format of the 'go' command is:
+  RedBoot> go [-w <time>] [<location>]
+Execution will begin at <location> if specified.  Otherwise, the "entry 
+point" of the last image loaded will be used.
+
+The "-w" option gives the user <time> seconds before execution begins.
+The execution may be aborted by typing ^C on the console.  This mode
+would typically be used in startup scripts.