NAME
boot26 —
Bootloader for
NetBSD/acorn26
SYNOPSIS
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 (see
boothowto(9)):
-
-
- -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
- (
AB_QUIET
) Cause the kernel to emit
fewer messages than normal while starting up.
-
-
- -v
- (
AB_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
boot26. 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),
boothowto(9)
HISTORY
boot26 was introduced in
NetBSD 1.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.