/dts-v1/;

/ {
    #address-cells = <0x1>;
    #size-cells = <0x1>;

    cpus {
        #address-cells = <0x1>;
        #size-cells = <0x0>;

        Mips,32@0 {
            device_type = "cpu";
            icudev_type = "cpu:mips";
            name = "Mips,32";
            reg = <0x00000000>;
        };

        Mips,32@1 {
            device_type = "cpu";
            icudev_type = "cpu:mips";
            name = "Mips,32";
            reg = <0x00000001>;
        };

        Mips,32@2 {
            device_type = "cpu";
            icudev_type = "cpu:mips";
            name = "Mips,32";
            reg = <0x00000002>;
        };

        Mips,32@3 {
            device_type = "cpu";
            icudev_type = "cpu:mips";
            name = "Mips,32";
            reg = <0x00000003>;
        };
    };

    memory@0x00000000 {
        cached = <0x1>;
        device_type = "memory";
        reg = <0x00000000 0x08000000>;
    };

    memory@0xbfc00000 {
        cached = <0x1>;
        device_type = "rom";
        reg = <0xbfc00000 0x00400000>;
    };

    tty@0xfc000000 {
        device_type = "soclib:tty";
        irq = <&{/xicu@0xfd000000} 0x0>;
        reg = <0xfc000000 0x00000010>;
        tty_count = <0x1>;
    };
    simhelper@0xf1000000 {
        device_type = "soclib:simhelper";
        reg = <0xf1000000 0x00000010>;
    };

    blockdevice@0xfb000000 {
        device_type = "soclib:blockdevice";
        irq = <&{/xicu@0xfd000000} 0x1>;
        reg = <0xfb000000 0x00000020>;
    };

    fb@0xf0000000 {
	device_type = "soclib:frame_buffer";
	reg = <0xf0000000 0x400000>;
	mode = <32>;
	width = <640>;
	height = <480>; 
    };

    xicu@0xfd000000 {
        device_type = "soclib:xicu:root";
        input_lines = <0x2>;
        ipis = <0x4>;
        reg = <0xfd000000 0x00001000>;
        timers = <0x4>;

        out@0 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@0} 0x0>;
            output_line = <0x0>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@1 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@0} 0x1>;
            output_line = <0x1>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@2 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@0} 0x2>;
            output_line = <0x2>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@3 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@1} 0x0>;
            output_line = <0x3>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@4 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@1} 0x1>;
            output_line = <0x4>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@5 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@1} 0x2>;
            output_line = <0x5>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@6 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@2} 0x0>;
            output_line = <0x6>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@7 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@2} 0x1>;
            output_line = <0x7>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@8 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@2} 0x2>;
            output_line = <0x8>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@9 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@3} 0x0>;
            output_line = <0x9>;
            parent = <&{/xicu@0xfd000000}>;
        };
        out@10 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@3} 0x1>;
            output_line = <0xa>;
            parent = <&{/xicu@0xfd000000}>;
        };

        out@11 {
            device_type = "soclib:xicu:filter";
            irq = <&{/cpus/Mips,32@3} 0x2>;
            output_line = <0xb>;
            parent = <&{/xicu@0xfd000000}>;
        };

    };
  topology {
    #address-cells = <2>;
    #size-cells = <0>;
    cluster@0,0 {
    	reg = <0 0>;
    	devices = <&{/cpus/Mips,32@0} &{/cpus/Mips,32@1} &{/cpus/Mips,32@2} &{/cpus/Mips,32@3} &{/xicu@0xfd000000} &{/tty@0xfc000000} &{/simhelper@0xf1000000} &{/blockdevice@0xfb000000} &{/fb@0xf0000000} >;
    };
  };
};
