OpenBoot deals directly with hardware devices in the virtual machine. Each device has a unique name representing the type of device and where that device is located in the addressing structure. The textual representation of a such a path is called a device path. Device paths are composed as follows:
/node-name0/node-name1/ ... /node-nameN
This example shows a full device path name:
A full device path name is a series of node names separated by slashes (/). The root of the tree is the machine node, which is not named explicitly but is indicated by a leading slash (/). Each node name has the form:
When OpenBoot is searching for a particular node, and either the device name or @unit-address portion of the node name is not given, OpenBoot arbitrarily chooses a node matching the portion that is present.
The OpenBoot CLI uses pathnames to identify particular device nodes.
The full device path name mimics the hardware addressing used by the virtual machine to distinguish between different devices. Thus, you can specify a particular device without ambiguity.
In general, the unit-address part of a node name represents an address in the physical address space of its parent. The exact meaning of a particular address depends on the bus to which the device is attached. Consider this example:
/ – Is the root of the tree.
pci@301 – Is the PCIe bus with a unit address of 301.
pci@2 – Is the PCIe controller with a PCI device ID of 2.
scsi@0 – Is the SCSI controller with a PCI device ID of 0.
disk@w5000cca123456789,0:a – Is the SCSI drive LUN with a unit address of 5000cca0566d3b21 (WWN of the drive in this example) , and a device argument of a (disk slice in this example).
When specifying a path name, either the @unit-address or device-name part of a node name is optional, in which case the firmware tries to pick the device that best matches the given name. If there are several matching nodes, the firmware chooses one (but it may not be the one you want).