diff mbox

[RFT] ARM: bcm2835: dt: fix memory of Raspberry Pi B+

Message ID 1444942124-23122-1-git-send-email-stefan.wahren@i2se.com (mailing list archive)
State New, archived
Headers show

Commit Message

Stefan Wahren Oct. 15, 2015, 8:48 p.m. UTC
Since the Raspberry Pi models differ in memory amount we
better define it at board level. After that we are able
to fix the memory node of the Raspberry Pi B+ .

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 arch/arm/boot/dts/bcm2835-rpi-a-plus.dts |    4 ++++
 arch/arm/boot/dts/bcm2835-rpi-b-plus.dts |    4 ++++
 arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts |    4 ++++
 arch/arm/boot/dts/bcm2835-rpi-b.dts      |    4 ++++
 arch/arm/boot/dts/bcm2835-rpi.dtsi       |    4 ----
 5 files changed, 16 insertions(+), 4 deletions(-)

This patch is only compile-tested.

Comments

Eric Anholt Oct. 20, 2015, 8:53 a.m. UTC | #1
Stefan Wahren <stefan.wahren@i2se.com> writes:

> Since the Raspberry Pi models differ in memory amount we
> better define it at board level. After that we are able
> to fix the memory node of the Raspberry Pi B+ .
>
> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>  arch/arm/boot/dts/bcm2835-rpi-a-plus.dts |    4 ++++
>  arch/arm/boot/dts/bcm2835-rpi-b-plus.dts |    4 ++++
>  arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts |    4 ++++
>  arch/arm/boot/dts/bcm2835-rpi-b.dts      |    4 ++++
>  arch/arm/boot/dts/bcm2835-rpi.dtsi       |    4 ----
>  5 files changed, 16 insertions(+), 4 deletions(-)
>
> This patch is only compile-tested.
>
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
> index b2bff43..c08dff2 100644
> --- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
> +++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
> @@ -5,6 +5,10 @@
>  	compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";
>  	model = "Raspberry Pi Model A+";
>  
> +	memory {
> +		reg = <0 0x10000000>; /* 256 MB */
> +	};
> +
>  	leds {
>  		act {
>  			gpios = <&gpio 47 0>;
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
> index 668442b..b4a1e56 100644
> --- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
> +++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
> @@ -5,6 +5,10 @@
>  	compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
>  	model = "Raspberry Pi Model B+";
>  
> +	memory {
> +		reg = <0 0x20000000>; /* 512 MB */
> +	};
> +
>  	leds {
>  		act {
>  			gpios = <&gpio 47 0>;
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
> index eab8b591..e6ccfab 100644
> --- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
> +++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
> @@ -5,6 +5,10 @@
>  	compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
>  	model = "Raspberry Pi Model B rev2";
>  
> +	memory {
> +		reg = <0 0x10000000>; /* 256 MB */
> +	};
> +
>  	leds {
>  		act {
>  			gpios = <&gpio 16 1>;
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
> index ff6b2d1..bfd917c 100644
> --- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
> +++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
> @@ -5,6 +5,10 @@
>  	compatible = "raspberrypi,model-b", "brcm,bcm2835";
>  	model = "Raspberry Pi Model B";
>  
> +	memory {
> +		reg = <0 0x10000000>; /* 256 MB */
> +	};
> +
>  	leds {
>  		act {
>  			gpios = <&gpio 16 1>;

Seems like a good idea.  The closed firmware passes us an edited
devicetree with good memory fields, but I don't think U-Boot is up to it
if you chainload it.

However, isn't the rpi-b-rev2 the 512MB variant of the rpi-b?
Stefan Wahren Oct. 20, 2015, 5:29 p.m. UTC | #2
Am 20.10.2015 um 10:53 schrieb Eric Anholt:
> Stefan Wahren <stefan.wahren@i2se.com> writes:
>
>> Since the Raspberry Pi models differ in memory amount we
>> better define it at board level. After that we are able
>> to fix the memory node of the Raspberry Pi B+ .
>>
>> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> [...]
>
> Seems like a good idea.  The closed firmware passes us an edited
> devicetree with good memory fields, but I don't think U-Boot is up to it
> if you chainload it.
>
> However, isn't the rpi-b-rev2 the 512MB variant of the rpi-b?
>

Unfortunately not. There are rev2 boards with 256 MB and with 512 MB RAM 
[1]. I'm not sure it is worth to create 2 dts files for both.

[1] - http://elinux.org/Board_revisions
Stephen Warren Oct. 21, 2015, 2:37 a.m. UTC | #3
On 10/20/2015 02:53 AM, Eric Anholt wrote:
> Stefan Wahren <stefan.wahren@i2se.com> writes:
> 
>> Since the Raspberry Pi models differ in memory amount we better
>> define it at board level. After that we are able to fix the
>> memory node of the Raspberry Pi B+ .

>> diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
>> b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts

>> +	memory { +		reg = <0 0x10000000>; /* 256 MB */ +	}; +

> 
> Seems like a good idea.  The closed firmware passes us an edited 
> devicetree with good memory fields, but I don't think U-Boot is up
> to it if you chainload it.

U-Boot fills in the memory size in DT correctly too.

I have no objection to the patch since it looks correct at a very
brief glance, but I think it will have zero practical effect.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
index b2bff43..c08dff2 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
@@ -5,6 +5,10 @@ 
 	compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";
 	model = "Raspberry Pi Model A+";
 
+	memory {
+		reg = <0 0x10000000>; /* 256 MB */
+	};
+
 	leds {
 		act {
 			gpios = <&gpio 47 0>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 668442b..b4a1e56 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -5,6 +5,10 @@ 
 	compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
 	model = "Raspberry Pi Model B+";
 
+	memory {
+		reg = <0 0x20000000>; /* 512 MB */
+	};
+
 	leds {
 		act {
 			gpios = <&gpio 47 0>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index eab8b591..e6ccfab 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -5,6 +5,10 @@ 
 	compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
 	model = "Raspberry Pi Model B rev2";
 
+	memory {
+		reg = <0 0x10000000>; /* 256 MB */
+	};
+
 	leds {
 		act {
 			gpios = <&gpio 16 1>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index ff6b2d1..bfd917c 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -5,6 +5,10 @@ 
 	compatible = "raspberrypi,model-b", "brcm,bcm2835";
 	model = "Raspberry Pi Model B";
 
+	memory {
+		reg = <0 0x10000000>; /* 256 MB */
+	};
+
 	leds {
 		act {
 			gpios = <&gpio 16 1>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 3572f03..d1c6538 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -1,10 +1,6 @@ 
 #include "bcm2835.dtsi"
 
 / {
-	memory {
-		reg = <0 0x10000000>;
-	};
-
 	leds {
 		compatible = "gpio-leds";