1AUTOCONFIG(8) System Manager's Manual AUTOCONFIG(8)
2
3
4
6 autoconfig - configure the running system to the hardware
7
9 autoconfig [-i ifile] [-n nfile] [-k kfile] [-v] [-d] [-c]
10
12 Autoconfig is called by init(8) to configure the currently running sys‐
13 tem. Init checks the exit status of autoconfig to determine if the
14 configuration was successful. Autoconfig reads the device table
15 /etc/dtab for a list of devices which may be on the system. It first
16 verifies that the kernel has an attach routine for each device (and
17 therefore has a device handler) and that the kernel has a probe rou‐
18 tine. It then checks each of these devices to see if it is present,
19 and if it is, attempts to make it interrupt (if possible) to verify
20 that the interrupt vector is correct. The interrupt vector is checked
21 to see that it has not previously been used. An interrupt through any
22 of the device's consecutive vectors is sufficient.
23
24 Devices which use programmable vectors (MSCP and TMSCP) are permitted
25 to have a value of 0 in the dtab vector field. This special value
26 tells autoconfig to call the kernel's get next available vector routine
27 and assign that to the device. For programmable vector devices if the
28 dtab vector field is non 0 then the value specified in the dtab file is
29 used. In both cases the driver is called at its xxVec() routine with
30 the vector being assigned to the device.
31
32 If the address and vector are correct, it then attaches the device by
33 passing the address and unit number to the kernel's attach routine and
34 setting up the interrupt vector according to the interrupt handlers and
35 priority listed in the device table. If the unit number is given as a
36 '?' in the device table, it will be assigned the next available unit
37 number if the device exists. If the device is not present or the vec‐
38 tor is incorrect, and if the unit number was specified (not a '?'),
39 then the kernel is notified that that unit is not present, preventing
40 accesses to a nonexistent device address.
41
42 There are only a few flags which are mostly useful for debugging but
43 for completeness, here they are.
44
45 -i ifile Use ifile instead of /etc/dtab as the device table.
46
47 -n nfile Use nfile instead of /unix for finding the namelist of the
48 currently running kernel.
49
50 -k kfile The file kfile should be used instead of /dev/kmem to alter
51 and read kernel memory.
52
53 -v Verbose output, indicates reason for rejecting any device in
54 the device table. Normally only attached devices are
55 reported.
56
57 -c Report error messages for devices skipped because of problems
58 with their interrupt vectors.
59
60 -d Turn on debugging mode. Shows many gory details of autocon‐
61 fig's internal processing.
62
64 Devices of the same type must be listed with ascending unit numbers or
65 with wildcards.
66
67 Disks that could be root devices must have their addresses and vectors
68 initialized in the kernel; the kernel uses a root attach entry in the
69 block device switch to allow disk drivers to do any probes necessary
70 before autoconfiguration.
71
72 Must be run only by init(8). There is a flag set in the kernel that
73 autoconfig has already run, running autoconfig a second time results in
74 the error:
75
76 "namelist doesn't match running kernel."
77 Autoconfig attempts to open /dev/kmem for write. If the kernel
78 is in securelevel 1 or higher the open of /dev/kmem will fail.
79
81 /etc/dtab device table
82 /unix
83 /dev/kmem
84
86 ucall(2), nlist(3), dtab(5)
87
88
89
903rd Berkeley Distribution December 30, 1992 AUTOCONFIG(8)