Subject: Re: [PATCH 15/16] Add device tree for Ebony

From: Segher Boessenkool <[email-masked]>
Date: Thu, 15 Feb 2007 01:10:54 +0100

>>> As I undestand it the "soc" device type is a logical container
>>> for a group of devices in an SOC, not necessarily a group
>>> of devices on the same bus.  Could we simply list all those
>>> devices under an "soc" node at the same level.
>>
>> A "soc" node is meant to contain SoC specific stuff like
>> clock registers or whatnot.  It typically wouldn't have
>> child nodes.
>
> That's not what booting_without_of.txt says.  It says:
>
>     The SOC node may contain child nodes for each SOC
>     device that the  platform uses.

*May*.  There often is a better way to represent devices;
if they sit on some bus in reality, that's the best way
to describe them: by exposing that bus in the device tree.

> The current practice seems to be that an "soc" node contains
> all the on chip devices (regardless of the physical bus internal
> to the soc).

You can make the busses child nodes of the "soc" device
if you prefer.  I might even consider it good taste ;-)

>>> my suggestion would be to create new generic device type for
>>> representing an internal bus.   The "device_type" is supposed
>>> to be somewhat general-- "network", "serial", etc.
>>
>> The device_type represents the programming model of the
>> device (programming model for OF).
>
> The device_type is typically things like "network" and "serial"
> which don't specify the programming model.

The ___OF___ programming model, i.e. as you would use from
either of the client-, device- or user interface.  This
interface typically consists of a handful of properties
and device methods ("read", "seek", "max-transfer").

> The compatible
> property is used in driver selection.

For the OS, yes.

>> Each type of bus has
>> its own programming model.  Your suggestion makes sense
>> for bus bridges that are 100% transparent -- same address
>> domain on both sides, completely identical ordering rules,
>> no configuration whatsoever.  I've never seen such a bus.
>
> If the busses have different address domains and specific
> configuration then I agree, they need their own unique device_type.
>
> Do the ipb and opb busses have their own device driver similar to
> PCI?

Sigh.  Like I must have said 2**20 times now, it doesn't matter
if you currently have a certain Linux driver for something, nor
does it actually matter if there will ever be one.  I do know
that the OPB bus is different from the PLB bus and as such should
not be hidden.  Hey, it seems there are some DCR registers to
configure the thing if I remember the device tree that was posted
correctly.

Segher