Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
device_tree_standard_properties [2018/11/18 12:50] – [#address-cells, #size-calls] rpjdaydevice_tree_standard_properties [2018/11/18 13:54] (current) – [ranges] rpjday
Line 15: Line 15:
 ==== #address-cells, #size-calls ==== ==== #address-cells, #size-calls ====
  
-Not inherited, must be explicitly defined.+The #address-cells and #size-cells properties are not inherited from ancestors in the devicetree. They shall be explicitly defined. 
 + 
 +A DTSpec-compliant boot program shall supply #address-cells and #size-cells on all nodes that have children. 
 + 
 +If missing, a client program should assume a default value of 2 for #address-cells, and a value of 1 for #size-cells. 
 + 
 +==== reg ==== 
 + 
 +The reg property describes the address of the device’s resources within the address space defined by its parent bus. Most commonly this means the offsets and lengths of memory-mapped IO register blocks, but may have a different meaning on some bus types. Addresses in the address space defined by the root node are CPU real addresses. 
 + 
 +The value is a <prop-encoded-array>, composed of an arbitrary number of pairs of address and length, <address length>. The number of <u32> cells required to specify the address and length are bus-specific and are specified by the #address-cells and #size-cells properties in the parent of the device node. If the parent node specifies a value of 0 for #size-cells, the length field in the value of reg shall be omitted. 
 + 
 +==== virtual-reg ==== 
 + 
 +Seems to be PowerPC only. 
 + 
 +==== ranges ==== 
 + 
 +The format of the value of the ranges property is an arbitrary number of triplets of (child-bus-address, parent-bus-address, length) 
 + 
 +  * The child-bus-address is a physical address within the child bus’ address space. The number of cells to represent the address is bus dependent and can be determined from the #address-cells of this node (the node in which the ranges property appears). 
 +  * The parent-bus-address is a physical address within the parent bus’ address space. The number of cells to represent the parent address is bus dependent and can be determined from the #address-cells property of the node that defines the parent’s address space. 
 +  * The length specifies the size of the range in the child’s address space. The number of cells to represent the size can be determined from the #size-cells of this node (the node in which the ranges property appears). 
 + 
 +If the property is defined with an <empty> value, it specifies that the parent and child address space is identical, and no address translation is required. 
 + 
 +If the property is not present in a bus node, it is assumed that no mapping exists between children of the node and the parent address space. 
 +==== dma-ranges ====
  • device_tree_standard_properties.1542545410.txt.gz
  • Last modified: 2018/11/18 12:50
  • by rpjday