April 3, 2004 KLOADER 4

### NAME

kloader - in-kernel bootloader

### SYNOPSIS

options KLOADER options KLOADER_KERNEL_PATH="\"/netbsd\""

### DESCRIPTION

The kloader is the in-kernel bootloader for platforms that do not have a proper firmware.

Some platforms supported by NetBSD do not have a firmware that can boot the NetBSD kernel. Examples are game consoles (dreamcast and playstation2 ports), and handhelds (hpcarm, hpcmips, and hpcsh ports). On such platforms the bootloader is usually a host program that runs under the native OS. This means that rebooting NetBSD is a lengthy process of booting into the native OS first, launching the bootloader program, and finally booting NetBSD again. This problem is addressed by , which allows the currently running kernel to serve as a bootloader for the kernel being booted, thus avoiding the burden of booting into the native OS first.

When kloader is configured into the kernel, a call to reboot(2) causes the kloader to load the new kernel into memory, and arrange for control to be passed to the new kernel -- just like a standalone bootloader does. The new kernel then boots in the ordinary manner.

### SEE ALSO

reboot(2), boot(8), reboot(8)

### HISTORY

kloader first appeared in NetBSD1.6.

### BUGS

kloader ignores ```howto` and ```bootstr` arguments passed to the reboot(2) system call, and reboots the system with the previous boot settings.

kloader doesn't support booting compressed kernels.

The hpcarm port doesn't support kloader yet.