xref: /netbsd-src/share/man/man9/cpu_rootconf.9 (revision d7073c492f63717b30cd18e2d9a4b084b4b058a5)
1.\"     $NetBSD: cpu_rootconf.9,v 1.10 2014/11/26 20:46:46 wiz Exp $
2.\"
3.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
4.\" All rights reserved.
5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Gregory McGarry.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE.
29.\"
30.Dd November 11, 2014
31.Dt CPU_ROOTCONF 9
32.Os
33.Sh NAME
34.Nm cpu_rootconf ,
35.Nm rootconf ,
36.Nm setroot
37.Nd root file system setup
38.Sh SYNOPSIS
39.In sys/types.h
40.In sys/systm.h
41.Ft void
42.Fn cpu_rootconf "void"
43.Ft void
44.Fn rootconf "void"
45.Ft void
46.Fn setroot "device_t bootdv" "int bootpartition"
47.Sh DESCRIPTION
48The
49.Fn cpu_rootconf
50is a machine-dependent interface invoked during system bootstrap to
51determine the root file system device and initialize machine-dependent
52file system state.
53.Fn cpu_rootconf
54provides the global variables
55.Fa booted_device ,
56.Fa booted_partition ,
57.Fa booted_startblk ,
58.Fa booted_nblks ,
59and
60.Fa bootspec .
61.Fa cpu_rootconf
62invokes the machine-independent function
63.Fa rootconf
64which calls the function
65.Fa setroot
66to record the root device and the root partition information
67for use in machine-independent code.
68.Pp
69.Fa rootconf
70may adjust the global variables and determines the parameters
71for setroot.
72This is for example used to translate a device
73and partition number provided by the bootloader into a disk
74wedge device covering the same partition.
75.Pp
76If the bootloader already identified a disk wedge, it passes
77a non-zero value for
78.Fa booted_nblks ,
79then
80.Fa booted_startblk
81and
82.Fa booted_nblks
83specify a disk wedge as the boot device.
84.Pp
85.Fa setroot
86evaluates several sources to identify the root device in the
87following order until a valid device is selected:
88.Bl -enum
89.It
90The kernel configuration variable
91.Fa rootspec
92which is set by
93.Xr config 1 .
94The value is the name and unit of the root device, e.g., "sd0" (disk)
95or "dk0" (wedge) or "le0" (network) or the prefix "wedge:" followed
96by the name of the disk wedge.
97For disk devices the partition passed as argument to
98.Fa setroot
99is used.
100.It
101The variable
102.Fa bootspec
103following the same syntax.
104.It
105The result of an interactive query of the root device if
106.Fa boothowto
107has set the flag
108.Dv RB_ASKNAME .
109The input uses the same syntax as the previous sources.
110Here also the kernel dump device is queried.
111.It
112The boot device and partition passed as arguments.
113.El
114.Pp
115If a root device cannot be selected,
116.Fa setroot
117sets the
118.Dv RB_ASKNAME
119flag and loops.
120.Pp
121Otherwise the kernel dump device is identified in a similar
122manner from
123.Bl -enum
124.It
125The result of a previous interactive query.
126See above.
127.It
128The kernel configuration variable
129.Fa dumpspec ,
130if set.
131.It
132The second partition of the root device, if it is a regular disk.
133.It
134The first disk wedge device of type DKW_PTYPE_SWAP.
135.El
136.Sh SEE ALSO
137.Xr config 1 ,
138.Xr dk 4 ,
139.Xr boot 8 ,
140.Xr boothowto 9
141