The Device Tree Describes a System's Configuration
As mentioned, plug-in devices describe their own characteristics with
FCode. Such descriptions are stored in the Open Firmware device
tree, a data structure consisting of a collection of nodes.
Each device tree node represents either:
Each device tree node contains descriptive information called
properties, and nodes representing hardware buses and devices
also contain the software methods that are used to interact with the
hardware. Buses are represented by "interior" nodes in the device
tree. The "children" of a bus node represent the devices attached to
that bus. Permanently-installed "built-in" devices also have device
tree nodes with associated descriptions. The set of descriptive
information about a particular device is open-ended, so new types of
devices and new characteristics are handled easily.
- A hardware bus,
- A hardware device,
- A collection of descriptive information, or
- A software library accessible by FCode drivers.
An operating system may use the device tree, with its device
descriptions, to configure itself, locate particular devices, attach
device drivers, etc. The ability of Open Firmware to obtain
complete descriptions and control methods from the FCode ROM contained
on each hardware device supports the growing requirement for "plug and
play" installation of new devices.
Configuration Variables Record User Choices
Another configuration issue is storage and maintenance of user choices,
such as the preferred boot device and the amount of memory to test.
Open Firmware has a facility for keeping such user choices in
non-volatile memory, such as battery-backed RAM, electrically erasable
PROM, or FLASH memory. Open Firmware configuration variables use
self-describing human-readable variable names and values. The human
readable values are encoded for efficient storage in the non-volatile
memory device, where space is often at a premium. All access to these
variables is by name. New variables may be added and old ones deleted,
at will, allowing for easy evolution of product families.
Forward to next feature
Back to Features
Back to FirmWorks Home Page
Last Modified: November 17, 1997