Reusing DTSI files across trees with differing numbers of address-cells

Grant Likely grant.likely at secretlab.ca
Sat Jul 20 15:03:04 EST 2013


On Fri, 26 Apr 2013 16:17:52 -0700, Stepan Moskovchenko <stepanm at codeaurora.org> wrote:
> 
> Hello. I am creating a DTS file for an ARM (Qualcomm MSM) target which 
> supports LPAE, meaning that the target is capable of addressing memory 
> beyond the standard 4GB boundary. To account for the fact that the 
> memory node can contain reg addresses that exceed 32 bits, I am setting 
> #address-cells and #size-cells to 2 at the top level of my tree, since 
> this is what the kernel will use when parsing the memory node.
> 
> However, my internal tree contains multiple DTSI files with definitions 
> for some hardware blocks that are used across multiple MSM targets, 
> including ones that have #address-cells and #size-cells set to 1 at the 
> top level, I would like to re-use some of these files in the tree for my 
> LPAE-based target. Additionally, most MSM I/O devices are declared at 
> the top level of the tree, rather than on a dedicated simple-bus.
> 
> To allow reuse of common hardware block definitions, I am considering 
> moving all the MSM memory-mapped I/O devices to a dedicated /soc node 
> (per the Power spec), declaring this node as a simple-bus with 
> #address-cells and #size-cells of 1, and using the ranges property to 
> map this bus into the top-level address space. Since MSM I/O devices are 
> located at addresses below 4GB, I believe it is okay to keep them on a 
> simple-bus with #address-cells=1.
> 
> Does this seem like a reasonable approach?

Yes.

g.



More information about the devicetree-discuss mailing list