August 4, 2001 BOOT26 8 acorn26

### NAME

boot26 - Bootloader for NetBSD/acorn26

### SYNOPSIS

*boot26 [-acdqsv] [file]

### DESCRIPTION

boot26 is a program that runs under RISC OS and launches the NetBSD/acorn26 kernel. It needs to be installed in a RISC OS filesystem and given file type FFA (Module). The kernel it is to load also needs to be stored in a RISC OS filesystem.

It takes the following options, which set flags in the boothowto variable in the booted kernel:

-a
  (```RB_ASKNAME`) Cause the kernel to prompt the user for the name of the device containing the root filesystem. This also causes boot26 to prompt for the name of the kernel to be loaded.

-s
  (```RB_SINGLE`) Cause the kernel to ask init to boot into single-user mode.

-d
  (```RB_KDB`) Cause the kernel to enter the kernel debugger as soon as possible.

-c
  (```RB_USERCONF`) Enter the in-kernel device configuration manager before attaching any devices.

-q
  (```RB_QUIET`) Cause the kernel to emit fewer messages than normal while starting up.

-v
  (```RB_VERBOSE`) Cause the kernel to emit more messages than normal while starting up.

boot26 attempts to load the kernel from the RISC OS file specified as file, or from ```netbsd` if file is not specified. The file must be an ELF image, and may have been compressed using gzip(1).

#### Use as a module

boot26 is implemented as a RISC OS relocatable module. It can be loaded into memory by running `*RMLoad boot26'. After this, NetBSD can be booted by running `*boot26' as usual, but the command will be handled by the module.

It should also be possible to arrange for boot26 to be loaded from ROM (e.g. from the ROM on an expansion card), in which case NetBSD could be made to boot automatically by making boot26 the configured language using `*Configure Language'.

#### Screen display

When it starts up, boot26 displays the current memory map. Each character in the map represents one page of (physical) RAM. The ticks along the top are to stop you getting lost. The characters in the map indicate what the memory's being used for (actually where it's logically mapped):

  `

      0 -> zero-page
      + -> boot26 workspace
      * -> Free space (boot26 wants to put the kernel here)
      d -> RAM disc
      s -> System sprite area
      m -> RMA
      h -> System heap/stack
      f -> Font cache
      S -> Screen memory

  `

On a machine with 32k pages (which is all NetBSD/acorn26 supports), the left half of the first line is potential screen memory, and hence not used by . The next page is usually zero page under RISC OS, and is used for zero page under NetBSD as well. The next is usually the system heap under RISC OS, and is used for process 0's kernel stack under NetBSD. The next is used for the message buffer under NetBSD. Pages from there on are used to load the kernel, and must be free if boot26 is to do so successfully. Future bootloaders should load the kernel into whatever pages are free, then kick out RISC OS and shuffle them into the right shape. This is left as an exercise for the enthusiastic reader.

### FILES

```/usr/mdec/boot26,ffa`
  The location of boot26 in the NetBSD filesystem.

### SEE ALSO

gzip(1), reboot(2), ddb(4), userconf(4), init(8)

### HISTORY

boot26 was introduced in NetBSD1.6 as a replacement for the original NetBSD/arm26 bootloader, which was written in BBC BASIC.

### BUGS

boot26 cannot load kernels from a NetBSD filesystem.