Thread (3 messages) flat view 3 messages, 3 authors, 2008-02-18

Re: How to describe FPGA-based devices in the device tree ?

From: Scott Wood <hidden>
Date: 2008-02-18 17:46:57

On Mon, Feb 18, 2008 at 01:43:52PM +0100, Laurent Pinchart wrote:
                bcsr@3,0 {
                        device_type = "board-control";
                        reg = <3 0 00000020>;
                };
No device_type.  Needs a compatible.
                fpga@4,0 {
                        reg = <4 0 00010000>;
                };
        };

The fourth device is a FPGA that contains several IP cores such as an 
interrupt controller and a SD/MMC host controller. If I understand things 
correctly, each IP core should have its own node in the device tree to allow 
proper binding with device drivers. 
Correct.
As booting-without-of.txt describes the localbus node ranges as
corresponding to a single chipselect and covering the entire chipselect
access window, I can't have nodes for each IP core as children of the
localbus node.
That does not follow.  The ranges entry has to cover the whole chipselect,
but there's no one-to-one correspondence between nodes and ranges entries.

There's nothing wrong with doing this:

fpga@4,0 {
	compatible = "foo,bar";
	reg = <4 0 00010000>;
};

fpga@4,10000 {
	compatible = "foo,baz";
	reg = <4 00010000 00010000>;
};

fpga@4,20000 {
	compatible = "foo,blah";
	reg = <4 00020000 00010000>;
};
Should I put IP core nodes as children of the FPGA node ?
You could do that as well.
If so, how do I map addresses at the FPGA level ? A ranges property in the
FPGA node would let me map addresses in the FPGA scope to the localbus
scope. However, as the localbus scope use the chipselect number as its
first address cell and 0 as its second address cell,
The second cell is the address within the chipselect.  If it were always
zero, it wouldn't be there at all.

-Scott
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help