|
|
|
|
| |
L4Ka::Kickstart
L4Ka::Kickstart is a generic and extensible boot strapper for
L4Ka::Pistachio, currently supporting the IA32 and
AMD64 systems. L4Ka::Kickstart loads and
configures the kernel with the architectural configuration parameters
such as available and reserved memory areas. It further loads and
registers the initial servers' memory location, and starts the kernel.
Kickstart Options
L4Ka::Kickstart accepts a number of command line arguments that can be
used to configure the system. The command line arguments are
specified on the kickstart line in the boot loader's configuration
file, such as menu.lst in case of GRUB. The following
command line arguments are supported:
maxmem=num[K|M|G]
- Limits the amount of available physical memory in the system.
kmem=num[K|M|G] (default 16M)
- Reserves a specific amount of physical memory for kernel usage.
The extra memory is recorded in the kernel interface page as a
memory descriptor with a reserved memory type and picked up by the
kernel during initialization.
bootinfo=<on|off> (default on)
- Enables/disables creation of a generic bootinfo structure.
If enabled, the bootinfo location will be recorded in the bootinfo
field of the kernel interface page.
mbi=<on|off> (default on)
- Enables/disables passing the multiboot info to the
root tasks. If both bootinfo and mbi are enabled, the mbi
location will be recorded in a special bootinfo record. If
bootinfo is not specified, the mbi location is recorded in the
bootinfo field of the kernel interface page.
decode-all=<on|off> (default off)
- Enables/disables decoding all ELF binaries found in
the module list. The switch is useful for testing out multiple
applications without having some special ELF decoder in the root
task. The location and entry points for the binaries are
recorded in SimpleExec bootinfo records. Kickstart will not
complain if the decoded binaries overlap.
Memory Descriptors
L4Ka::Kickstart will, in addition to the regular memory descriptors defined
in the L4 specification, insert a number of boot loader specific memory
descriptors in the kernel interface page. These memory descriptors will
have type 0xE (i.e., boot loader specific type) and one of
the following subtypes:
0x0
- Undefined/miscellaneous boot loader memory. Used for memory
types that do not fit into any of the other categories.
0x1
- Initial data structures required to boot strap the system (e.g.,
the multiboot info structure or generic bootinfo structure).
These data structures may be safely freed up after the system has
been initialized.
0x2
- Initial L4 server (i.e., sigma0, sigma1, or root
server).
0x3
- Boot modules. Modules (simple files or executables) that are
loaded by the boot loader.
|
| |
|
|