On Tue, Oct 23, 2007 at 09:34:37AM +0200, Michal Simek wrote:
> Hi David,
> I remove some labels from my generator. I created fake system with some 
> peripherals. 
> There are 3 buses and 3 bridges. 
> Can you check it and tell me what is wrong?

Grant's comments all seem reasonable, apologies if I've duplicated
some of them below.

> 
> Thanks,
> Michal Simek
> 
> / {
>       model = "mONStR";

You should have #address-cells and #size-cells properties.

>       chosen {
>               bootargs = "root=/dev/xsysace/disc0/part2";
>       } ;
>       cpus {
>               #size-cells = <0>;
>               #cpus = < 0 >;
>               #address-cells = <1>;
>               microblaze_0,[EMAIL PROTECTED] {

That name is acceptable, but I think just [EMAIL PROTECTED] would be better.  
The
generic names convention seems to be frequently ignored for cpus, but
I don't see a good reason to.

>                       device_type = "cpu";
>                       reg = <0>;
>                       clock-frequency = <5f5e1000>;
>                       timebase-frequency = <1FCA055>;
>                       i-cache-line-size = <2000>;
>                       i-cache-size = <10>;
>                       d-cache-line-size = <2000>;
>                       d-cache-size = <10>;
>                       xilinx,pvr = <0>;
>                       xilinx,debug-enabled = <1>;
>                       xilinx,fsl-links = <0>;
>               } ;
>       } ;
> 
>       [EMAIL PROTECTED] {
>               compatible = "opb_ethernet_1.04.a","opb_ethernet";
>               interrupts = < 3 0 >;
>               reg = < 10060000 10000 >;
>               device_type = "network";
>               xilinx,cam-exist = <0>;
>               xilinx,dev-blk-id = <1>;
>               xilinx,dev-mir-enable = <1>;
>               xilinx,dma-present = <1>;
>               xilinx,include-dev-pencoder = <1>;
>               xilinx,ipif-rdfifo-depth = <8000>;
>               xilinx,ipif-wrfifo-depth = <8000>;
>               xilinx,mii-exist = <1>;
>       } ;
>       [EMAIL PROTECTED] {
>               memreg:reg = < 20000000 10000000 >;
>               device_type = "memory";
>       } ;
>       [EMAIL PROTECTED] {
>               compatible = "opb_uart16550_1.00.d","opb_uart16550";

Is this serial port actually 16550 compatible?  If so it should have
"ns16550" in the compatible list.

>               reg = < 10030000 10000 >;
>               device_type = "serial";
>       } ;
>       [EMAIL PROTECTED] {
>               compatible = "opb_timer_1.00.b","opb_timer";
>               interrupts = < 0 0 >;
>               reg = < 10020000 10000 >;
>               xilinx,count-width = <20>;
>               xilinx,one-timer-only = <0>;
>       } ;
>       [EMAIL PROTECTED] {

This is a bus bridge, and so needs #address-cells and #size-cells
properties.  It should also have a compatible property to describe the
type of bridge.


>               ranges = < 0 30000000 10000000 >;
>               [EMAIL PROTECTED] {
>                       compatible = "opb_gpio_3.01.b","opb_gpio";
>                       reg = < 30020000 10000 >;

This doesn't look quite right.  The reg property is translated by the
parent's ranges property.  So shouldn't this be just reg = <20000
10000>, with the 30000000 added by the parent?

>                       xilinx,gpio-width = <4>;
>                       xilinx,is-dual = <0>;
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = "opb_iic_1.02.a","opb_iic";
>                       reg = < 30030000 10000 >;
>                       device_type = "i2c";

There was talk of an i2c device_type, but I don't think it ever
actually happened.  I think we should drop this.

>               } ;
> 
>               [EMAIL PROTECTED] {
>                       compatible = "opb_gpio_3.01.b","opb_gpio";
>                       reg = < 30010000 10000 >;
>                       xilinx,gpio-width = <20>;
>                       xilinx,is-dual = <0>;
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = 
> "opb_ethernetlite_1.01.b","opb_ethernetlite";
>                       reg = < 30040000 10000 >;
>                       device_type = "network";
>                       xilinx,duplex = <1>;
>                       xilinx,rx-ping-pong = <0>;
>                       xilinx,tx-ping-pong = <0>;
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = "opb_sysace_1.00.c","opb_sysace";
>                       reg = < 30050000 10000 >;
>                       xilinx,mem-width = <10>;
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = 
> "opb_ps2_dual_ref_1.00.a","opb_ps2_dual_ref";
>                       interrupts = < 2 0 >;
>                       interrupts = < 1 0 >;

Uh... duplicate property names here.  Should be
        interrupts = <2 0 1 0>;

Also you need an interrupt-parent property somewhere.  Either here, or
in one of the ancestor bridges.

>                       reg = < 30060000 10000 >;
>               } ;
>       };
>       [EMAIL PROTECTED] {
>               compatible = "opb_intc_1.00.c","opb_intc";
>               reg = < 10010000 10000 >;

Is this an interrupt controller?  If so it should have the
interrupt-controller and #interrupt-cells properties.

>       } ;
>       [EMAIL PROTECTED] {
>               compatible = "opb_mdm_2.00.a","opb_mdm";
>               reg = < 10050000 10000 >;
>               xilinx,mb-dbg-ports = <1>;
>               xilinx,uart-width = <8>;
>               xilinx,use-uart = <1>;
>       } ;
>       [EMAIL PROTECTED] {
>               compatible = "opb_uartlite_1.00.b","opb_uartlite";
>               interrupts = < 4 0 >;
>               reg = < 10040000 10000 >;
>               device_type = "serial";
>               xilinx,baudrate = <2580>;
>               xilinx,data-bits = <8>;
>               xilinx,clk-freq = <5f5e100>;
>               xilinx,odd-parity = <0>;
>               xilinx,use-parity = <0>;
>       } ;
>       [EMAIL PROTECTED] {
>               ranges = < 0 80000000 80000000 >;

Missing #address-cells and #size-cells again.

>               [EMAIL PROTECTED] {
>                       compatible = "plb_uart16550_1.00.c","plb_uart16550";
>                       reg = < a0020000 10000 >;
>                       device_type = "serial";
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = "plb_gpio_1.00.b","plb_gpio";
>                       reg = < a0010000 10000 >;
>                       xilinx,gpio-width = <20>;
>                       xilinx,is-dual = <0>;
>               } ;
>               [EMAIL PROTECTED] {
>                       compatible = "plb_ethernet_1.01.a","plb_ethernet";
>                       reg = < a0000000 10000 >;
>                       device_type = "network";
>               } ;
>               [EMAIL PROTECTED] {
>                       ranges = < 0 10000000 10000000 >;
>                       ranges = < 1 20000000 10000000 >;

Duplicate properties again.

>               };
>               cpus {

This really doesn't look right.  I don't think it's technically
forbidden, but almost nothing is going to look for cpus anywhere other
than /cpus.  If this dt is for some sort of daughter card, and these
entries represent the cpu of the containing system, we'll need to work
out a different representation (that won't have device_type="cpu").
Although it may be a cpu, it's not *the* cpu from the prespective of
something running on the microblaze.

>                       #size-cells = <0>;
>                       #cpus = < 1 >;
>                       #address-cells = <1>;
>                       ppc405_0,[EMAIL PROTECTED] {
>                               device_type = "cpu";
>                               reg = <0>;
>                               clock-frequency = <5f5e1000>;
>                               timebase-frequency = <1FCA055>;
>                       } ;
>               } ;
>       };
> } ;
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to