EDAC platform devices for fsl_soc

Kumar Gala galak at kernel.crashing.org
Wed Jan 17 08:17:20 EST 2007


On Jan 16, 2007, at 2:46 PM, Dave wrote:

> I'm trying to write an EDAC driver for the mpc8560 board. I will need
> to access the DDR error management registers, the L2 error management
> registers, the PCI management registers, and also the related IRQs
> (internal 0, 2, and 8). So I would like to insert some entries into
> the 8560 fdt in order to parse them and map the hw irq to virq in
> order to setup the platform device resources.
>
> Below is what I was thinking the fdt should look like. Is that  
> reasonable?

I dont see the reason to introduce nodes that are specific to EDAC.   
You should add nodes for the full device (which includes the error  
mgmt).  In the case of PCI the node should be there and fixing the  
dts to report the proper irq is all that is needed.

>
>     soc8560 at e0000000 {
>        #address-cells = <1>;
>        #size-cells = <1>;
>        #interrupt-cells = <2>;
>        device_type = "soc";
>        ranges = <0 e0000000 00100000>;
>        reg = <e0000000 00000200>;
>        bus-frequency = <13ab6680>;
>
>        dram_control at 2000 {
>            device_type = "edac";
>            compatible = "85xx";
>            reg = <2000 e5c>;

expand to cover the full 4k allocated to ddr controller

>            linux,phandle = <2000>;
>            interrupt-parent = <40000>;
>            interrupts = <2 1>;

should be <2 2>

>        };

maybe something more generic like

memory-controller at 2000 {

...

}

>        l2_error at 20e00 {
>            device_type = "edac";
>            compatible = "85xx";
>            reg = <20e00 5c>;
>            linux,phandle = <20e00>;
>            interrupt-parent = <40000>;
>            interrupts = <0 1>;

should be <0 2>

>        };

Let's mimic the CPU cache node for this:

l2-cache at 20000 {
	device_type = "cache";
	...  (various cache properties, size, line size, etc.)

         compatible = "85xx";
(Not sure if 85xx is the best for compatible)

         reg = <20000 100>;
         interrupt-parent = <40000>;
         interrupts = <0 1>;
};

>
>        pci_error at 8e00 {
>            device_type = "edac";
>            compatible = "85xx";
>            reg = <8e00 20>;
>            linux,phandle = <8e00>;
>            interrupt-parent = <40000>;
>            interrupts = <8 0>;
>        };

Use the existing pci node as I mentioned above.

- k

> .....
>
> -- 
> -= Dave =-




More information about the Linuxppc-dev mailing list