Executing Programs from RedBoot

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.

go - Execute a program

The format of the go command is:

RedBoot> go [-w time] [-c] [-n] [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 Ctrl+C on the console. This mode would typically be used in startup scripts.

The -c option is used to allow execution with caches enabled. Normally, the go command will disable caches before execution.

The -n option is only available when RedBoot supports a network device. It causes the network interface to be disabled before execution begins.

exec - Execute a Linux kernel image

NOTE: This command is not available for all platforms. Its availability is indicated in specific platform information in Chapter 5.

Arguments

[-w timeout]
[-b <load addr> [-l <length]]
[-r <ramdisk addr>
[-s <ramdisk length>]]
[-c "kernel command line"] [<entry_point>]

This command is used to execute a non-eCos application, typically a Linux kernel. Additional information may be passed to the kernel at startup time. This command is quite special (and unique from the 'go' command) in that the program being executed may expect certain environmental setups, for example that the MMU is turned off, etc.

The Linux kernel expects to have been loaded to a particular memory location (0xC0008000 in the case of the SA1110). Since this memory is used by RedBoot internally, it is not possible to load the kernel to that location directly. Thus the requirement for the "-b" option which tells the command where the kernel has been loaded. When the exec command runs, the image will be relocated to the appropriate location before being started. The "-r" and "-s" options are used to pass information to the kernel about where a statically loaded ramdisk (initrd) is located.

The "-c" option can be used to pass textual "command line" information to the kernel. If the command line data contains any puncuation (spaces, etc), then it must be quoted using the double-quote character '"'. If the quote character is required, it should be written as '\"'.