Patchwork [v2] powerpc/4xx: DTS: Add Add'l SDRAM0 Compatible and Interrupt Info

login
register
mail settings
Submitter Grant Erickson
Date Dec. 18, 2008, 1:31 a.m.
Message ID <1229563900-10447-1-git-send-email-gerickson@nuovations.com>
Download mbox | patch
Permalink /patch/14600/
State Superseded, archived
Headers show

Comments

Grant Erickson - Dec. 18, 2008, 1:31 a.m.
Added additional information for type and compatibility strings and
interrupt information to the SDRAM0 memory-controller device tree
nodes for AMCC PowerPC 405EX[r]-based boards to facilitate binding
with the new "ibm,sdram-4xx-ddr2" EDAC memory controller adapter driver.

Signed-off-by: Grant Erickson <gerickson@nuovations.com>
---
As support in the associated EDAC adapter driver is added over time,
similar changes will/should be made to the DTS files for boards
leveraging realizations of this "ibm,sdram-4xx-ddr2" controller,
including the 440SP, 440SPe, 460EX, 460GT and 460SX.

Patch v2, based on review from David Gibson, removes the 'device_type'
field because it is only used for legacy OpenFirmware method
interfaces and no such compatibility is warranted here. In addition,
removed address- and size-cells as this node has no children.

 arch/powerpc/boot/dts/haleakala.dts |    8 +-
 arch/powerpc/boot/dts/kilauea.dts   |    8 +-
 arch/powerpc/boot/dts/makalu.dts    |    8 +-
 3 files changed, 21 insertions(+), 3 deletions(-)
David Gibson - Dec. 18, 2008, 1:54 a.m.
On Wed, Dec 17, 2008 at 05:31:40PM -0800, Grant Erickson wrote:
> Added additional information for type and compatibility strings and
> interrupt information to the SDRAM0 memory-controller device tree
> nodes for AMCC PowerPC 405EX[r]-based boards to facilitate binding
> with the new "ibm,sdram-4xx-ddr2" EDAC memory controller adapter driver.
> 
> Signed-off-by: Grant Erickson <gerickson@nuovations.com>

Acked-by: David Gibson <david@gibson.dropbear.id.au>
Stefan Roese - Dec. 18, 2008, 8:04 a.m.
On Thursday 18 December 2008, Grant Erickson wrote:
> Added additional information for type and compatibility strings and
> interrupt information to the SDRAM0 memory-controller device tree
> nodes for AMCC PowerPC 405EX[r]-based boards to facilitate binding
> with the new "ibm,sdram-4xx-ddr2" EDAC memory controller adapter driver.
>
> Signed-off-by: Grant Erickson <gerickson@nuovations.com>
> ---
> As support in the associated EDAC adapter driver is added over time,
> similar changes will/should be made to the DTS files for boards
> leveraging realizations of this "ibm,sdram-4xx-ddr2" controller,
> including the 440SP, 440SPe, 460EX, 460GT and 460SX.
>
> Patch v2, based on review from David Gibson, removes the 'device_type'
> field because it is only used for legacy OpenFirmware method
> interfaces and no such compatibility is warranted here. In addition,
> removed address- and size-cells as this node has no children.
>
>  arch/powerpc/boot/dts/haleakala.dts |    8 +-
>  arch/powerpc/boot/dts/kilauea.dts   |    8 +-
>  arch/powerpc/boot/dts/makalu.dts    |    8 +-
>  3 files changed, 21 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/boot/dts/haleakala.dts
> b/arch/powerpc/boot/dts/haleakala.dts index 513bc43..64880ab 100644
> --- a/arch/powerpc/boot/dts/haleakala.dts
> +++ b/arch/powerpc/boot/dts/haleakala.dts
> @@ -89,8 +89,14 @@
>  		clock-frequency = <0>; /* Filled in by U-Boot */
>
>  		SDRAM0: memory-controller {
> -			compatible = "ibm,sdram-405exr";
> +			compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
>  			dcr-reg = <0x010 0x002>;
> +			#interrupt-cells = <1>;
> +			interrupt-parent = <&SDRAM0>;
> +			interrupts = <0x0 0x1>;
> +			interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
> +					 /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
> +			interrupt-map-mask = <0xffffffff>;

When all interrupts are mapped the same parent, this should do as well:

			interrupt-parent = <&UIC2>;
			interrupts = <0x5 0x4	/* ECCDED Error */
				      0x6 0x4>; /* ECCSEC Error */

Other than this:

Acked-by: Stefan Roese <sr@denx.de>

Thanks.

Best regards,
Stefan
Josh Boyer - Dec. 18, 2008, 5:56 p.m.
On Thu, Dec 18, 2008 at 09:04:23AM +0100, Stefan Roese wrote:
>On Thursday 18 December 2008, Grant Erickson wrote:
>> Added additional information for type and compatibility strings and
>> interrupt information to the SDRAM0 memory-controller device tree
>> nodes for AMCC PowerPC 405EX[r]-based boards to facilitate binding
>> with the new "ibm,sdram-4xx-ddr2" EDAC memory controller adapter driver.
>>
>> Signed-off-by: Grant Erickson <gerickson@nuovations.com>
>> ---
>> As support in the associated EDAC adapter driver is added over time,
>> similar changes will/should be made to the DTS files for boards
>> leveraging realizations of this "ibm,sdram-4xx-ddr2" controller,
>> including the 440SP, 440SPe, 460EX, 460GT and 460SX.
>>
>> Patch v2, based on review from David Gibson, removes the 'device_type'
>> field because it is only used for legacy OpenFirmware method
>> interfaces and no such compatibility is warranted here. In addition,
>> removed address- and size-cells as this node has no children.
>>
>>  arch/powerpc/boot/dts/haleakala.dts |    8 +-
>>  arch/powerpc/boot/dts/kilauea.dts   |    8 +-
>>  arch/powerpc/boot/dts/makalu.dts    |    8 +-
>>  3 files changed, 21 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/powerpc/boot/dts/haleakala.dts
>> b/arch/powerpc/boot/dts/haleakala.dts index 513bc43..64880ab 100644
>> --- a/arch/powerpc/boot/dts/haleakala.dts
>> +++ b/arch/powerpc/boot/dts/haleakala.dts
>> @@ -89,8 +89,14 @@
>>  		clock-frequency = <0>; /* Filled in by U-Boot */
>>
>>  		SDRAM0: memory-controller {
>> -			compatible = "ibm,sdram-405exr";
>> +			compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
>>  			dcr-reg = <0x010 0x002>;
>> +			#interrupt-cells = <1>;
>> +			interrupt-parent = <&SDRAM0>;
>> +			interrupts = <0x0 0x1>;
>> +			interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
>> +					 /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
>> +			interrupt-map-mask = <0xffffffff>;
>
>When all interrupts are mapped the same parent, this should do as well:
>
>			interrupt-parent = <&UIC2>;
>			interrupts = <0x5 0x4	/* ECCDED Error */
>				      0x6 0x4>; /* ECCSEC Error */
>
>Other than this:
>
>Acked-by: Stefan Roese <sr@denx.de>

Yeah, I agree.  Adding an interrupt map when it's not needed is
just complexity that doesn't need to be there.

josh
Grant Erickson - Dec. 18, 2008, 6:04 p.m.
On 12/18/08 9:56 AM, Josh Boyer wrote:
> On Thu, Dec 18, 2008 at 09:04:23AM +0100, Stefan Roese wrote:
>> On Thursday 18 December 2008, Grant Erickson wrote:
>>> diff --git a/arch/powerpc/boot/dts/haleakala.dts
>>> b/arch/powerpc/boot/dts/haleakala.dts index 513bc43..64880ab 100644
>>> --- a/arch/powerpc/boot/dts/haleakala.dts
>>> +++ b/arch/powerpc/boot/dts/haleakala.dts
>>> @@ -89,8 +89,14 @@
>>> clock-frequency = <0>; /* Filled in by U-Boot */
>>> 
>>> SDRAM0: memory-controller {
>>> -   compatible = "ibm,sdram-405exr";
>>> +   compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
>>> dcr-reg = <0x010 0x002>;
>>> +   #interrupt-cells = <1>;
>>> +   interrupt-parent = <&SDRAM0>;
>>> +   interrupts = <0x0 0x1>;
>>> +   interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
>>> +      /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
>>> +   interrupt-map-mask = <0xffffffff>;
>> 
>> When all interrupts are mapped the same parent, this should do as well:
>> 
>> interrupt-parent = <&UIC2>;
>> interrupts = <0x5 0x4 /* ECCDED Error */
>>      0x6 0x4>; /* ECCSEC Error */
>> 
>> Other than this:
>> 
>> Acked-by: Stefan Roese <sr@denx.de>
> 
> Yeah, I agree.  Adding an interrupt map when it's not needed is
> just complexity that doesn't need to be there.

Stefan and Josh:

From a programmatic perspective, does the above still allow the code to
index virtual interrupt indices 0 and 1 rather than 5 and 6 when calling
irq_of_parse_and_map()?

Regards,

Grant
Josh Boyer - Dec. 18, 2008, 6:34 p.m.
On Thu, Dec 18, 2008 at 10:04:48AM -0800, Grant Erickson wrote:
>On 12/18/08 9:56 AM, Josh Boyer wrote:
>> On Thu, Dec 18, 2008 at 09:04:23AM +0100, Stefan Roese wrote:
>>> On Thursday 18 December 2008, Grant Erickson wrote:
>>>> diff --git a/arch/powerpc/boot/dts/haleakala.dts
>>>> b/arch/powerpc/boot/dts/haleakala.dts index 513bc43..64880ab 100644
>>>> --- a/arch/powerpc/boot/dts/haleakala.dts
>>>> +++ b/arch/powerpc/boot/dts/haleakala.dts
>>>> @@ -89,8 +89,14 @@
>>>> clock-frequency = <0>; /* Filled in by U-Boot */
>>>> 
>>>> SDRAM0: memory-controller {
>>>> -   compatible = "ibm,sdram-405exr";
>>>> +   compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
>>>> dcr-reg = <0x010 0x002>;
>>>> +   #interrupt-cells = <1>;
>>>> +   interrupt-parent = <&SDRAM0>;
>>>> +   interrupts = <0x0 0x1>;
>>>> +   interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
>>>> +      /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
>>>> +   interrupt-map-mask = <0xffffffff>;
>>> 
>>> When all interrupts are mapped the same parent, this should do as well:
>>> 
>>> interrupt-parent = <&UIC2>;
>>> interrupts = <0x5 0x4 /* ECCDED Error */
>>>      0x6 0x4>; /* ECCSEC Error */
>>> 
>>> Other than this:
>>> 
>>> Acked-by: Stefan Roese <sr@denx.de>
>> 
>> Yeah, I agree.  Adding an interrupt map when it's not needed is
>> just complexity that doesn't need to be there.
>
>Stefan and Josh:
>
>From a programmatic perspective, does the above still allow the code to
>index virtual interrupt indices 0 and 1 rather than 5 and 6 when calling
>irq_of_parse_and_map()?

Yes.  The index parameter to irq_of_parse_and_map is just an index into
the interrupts property.  So index 0 will use the first set of numbers
that matches the required #interrupt-cells.  In this case it's two, one
for the hardware irq number and one for the level/edge/polarity settings.

josh

Patch

diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts
index 513bc43..64880ab 100644
--- a/arch/powerpc/boot/dts/haleakala.dts
+++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -89,8 +89,14 @@ 
 		clock-frequency = <0>; /* Filled in by U-Boot */
 
 		SDRAM0: memory-controller {
-			compatible = "ibm,sdram-405exr";
+			compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
 			dcr-reg = <0x010 0x002>;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&SDRAM0>;
+			interrupts = <0x0 0x1>;
+			interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
+					 /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
+			interrupt-map-mask = <0xffffffff>;
 		};
 
 		MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index dececc4..bc32b60 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -90,8 +90,14 @@ 
 		clock-frequency = <0>; /* Filled in by U-Boot */
 
 		SDRAM0: memory-controller {
-			compatible = "ibm,sdram-405ex";
+			compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
 			dcr-reg = <0x010 0x002>;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&SDRAM0>;
+			interrupts = <0x0 0x1>;
+			interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
+					 /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
+			interrupt-map-mask = <0xffffffff>;
 		};
 
 		MAL0: mcmal {
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index 945508c..472d22d 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -90,8 +90,14 @@ 
 		clock-frequency = <0>; /* Filled in by U-Boot */
 
 		SDRAM0: memory-controller {
-			compatible = "ibm,sdram-405ex";
+			compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
 			dcr-reg = <0x010 0x002>;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&SDRAM0>;
+			interrupts = <0x0 0x1>;
+			interrupt-map = </* ECCDED Error */ 0x0 &UIC2 0x5 0x4
+					 /* ECCSEC Error */ 0x1 &UIC2 0x6 0x4>;
+			interrupt-map-mask = <0xffffffff>;
 		};
 
 		MAL0: mcmal {