Name
exec — Execute a Linux kernel
Synopsis
exec
[-w timeout
] [-r ramdisk_address
] [-s ramdisk_length
] [-b load_address
{-l load_length
}
] [-c kernel_command_line
] [
entry_point
]
Arguments
Name | Type | Description | Default |
---|---|---|---|
-w timeout | Number | Time to wait before starting execution. | 0 |
-r ramdisk_address | Number | Address in memory of "initrd"-style ramdisk - passed to Linux kernel. | None |
-s ramdisk_length | Number | Length of ramdisk image - passed to Linux kernel. | None |
-b load_address | Number | Address in memory of the Linux kernel image. | Value set by load or fis load |
-l load_length | Number | Length of Linux kernel image. | none |
-c kernel_command_line | String | Command line to pass to the Linux kernel. | None |
-x | Boot kernel with endianess opposite of RedBoot endianess. | Boot kernel with same endianess as RedBoot | |
entry_address
| Number | Starting address for Linux kernel execution | Implied by architecture |
Description
The exec 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 which is architecture dependent(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 punctuation (spaces, etc), then it must be quoted using the double-quote character '"'. If the quote character is required, it should be written as '\"'.
The "-x" option is optionally available on some bi-endian platforms. It is used to boot a kernel built with an endianess opposite of RedBoot.
Examples
Execute a Linux kernel, passing a command line, which needs relocation. The result from RedBoot is normally quiet, with the target platform being passed over to Linux immediately.
RedBoot> exec -b 0x100000 -l 0x80000 -c "noinitrd root=/dev/mtdblock3 console=ttySA0"
Execute a Linux kernel, default entry address and no relocation required, with a timeout. The emphasized lines are output from the loaded kernel.
RedBoot> exec -c "console=ttyS0,38400 ip=dhcp nfsroot=/export/elfs-sh" -w 5
Now booting linux kernel:
Base address 0x8c001000 Entry 0x8c210000
Cmdline : console=ttyS0,38400 ip=dhcp nfsroot=/export/elfs-sh
About to start execution at 0x8x210000 - abort with ^C within 5 seconds
Linux version 2.4.10-pre6 (...) (gcc version 3.1-stdsh-010931) #3 Thu Sep 27 11:04:23 BST 2001
2024-03-18 | eCosPro Non-Commercial Public License |