diff mbox

ARM: arm64: dts: Add expansion bus to VExpress and Juno

Message ID 1459786850-29409-1-git-send-email-brian.starkey@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Brian Starkey April 4, 2016, 4:20 p.m. UTC
The VExpress and Juno development platforms have an external expansion
bus which can be used for additional hardware (e.g. LogicTile Express
daughterboards).
Add this bus to all VExpress CoreTile and Juno device-trees.

On VExpress, the bus is described for a CoreTile located on site 1.

Signed-off-by: Brian Starkey <brian.starkey@arm.com>
---
 arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts |   13 +++++++++++++
 arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts  |   13 +++++++++++++
 arch/arm/boot/dts/vexpress-v2p-ca5s.dts     |   13 +++++++++++++
 arch/arm/boot/dts/vexpress-v2p-ca9.dts      |   13 +++++++++++++
 arch/arm64/boot/dts/arm/juno-base.dtsi      |   10 ++++++++++
 5 files changed, 62 insertions(+)

Comments

Liviu Dudau April 4, 2016, 4:54 p.m. UTC | #1
On Mon, Apr 04, 2016 at 05:20:50PM +0100, Brian Starkey wrote:
> The VExpress and Juno development platforms have an external expansion
> bus which can be used for additional hardware (e.g. LogicTile Express
> daughterboards).
> Add this bus to all VExpress CoreTile and Juno device-trees.
> 
> On VExpress, the bus is described for a CoreTile located on site 1.

s/located on/occupying/

You're trying to say that the CPU for which one of these DTs apply is running
on SITE1 so the expansion bus described here is available on SITE2.

> 
> Signed-off-by: Brian Starkey <brian.starkey@arm.com>

Otherwise, looks good to me.

With that change:

Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>

Best regards,
Liviu

> ---
>  arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts |   13 +++++++++++++
>  arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts  |   13 +++++++++++++
>  arch/arm/boot/dts/vexpress-v2p-ca5s.dts     |   13 +++++++++++++
>  arch/arm/boot/dts/vexpress-v2p-ca9.dts      |   13 +++++++++++++
>  arch/arm64/boot/dts/arm/juno-base.dtsi      |   10 ++++++++++
>  5 files changed, 62 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
> index 9420053..ec7539b 100644
> --- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
> +++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
> @@ -280,4 +280,17 @@
>  
>  		/include/ "vexpress-v2m-rs1.dtsi"
>  	};
> +
> +	site2: hsb@40000000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0 0x40000000 0x3fef0000>;
> +		#interrupt-cells = <1>;
> +		interrupt-map-mask = <0 3>;
> +		interrupt-map = <0 0 &gic 0 36 4>,
> +				<0 1 &gic 0 37 4>,
> +				<0 2 &gic 0 38 4>,
> +				<0 3 &gic 0 39 4>;
> +	};
>  };
> diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
> index 17f63f7..a339b0c 100644
> --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
> +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
> @@ -638,4 +638,17 @@
>  
>  		/include/ "vexpress-v2m-rs1.dtsi"
>  	};
> +
> +	site2: hsb@40000000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0 0x40000000 0x3fef0000>;
> +		#interrupt-cells = <1>;
> +		interrupt-map-mask = <0 3>;
> +		interrupt-map = <0 0 &gic 0 36 4>,
> +				<0 1 &gic 0 37 4>,
> +				<0 2 &gic 0 38 4>,
> +				<0 3 &gic 0 39 4>;
> +	};
>  };
> diff --git a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
> index d2709b7..76a9ccb 100644
> --- a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
> +++ b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
> @@ -250,4 +250,17 @@
>  
>  		/include/ "vexpress-v2m-rs1.dtsi"
>  	};
> +
> +	site2: hsb@40000000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0x40000000 0x40000000>;
> +		#interrupt-cells = <1>;
> +		interrupt-map-mask = <0 3>;
> +		interrupt-map = <0 0 &gic 0 36 4>,
> +				<0 1 &gic 0 37 4>,
> +				<0 2 &gic 0 38 4>,
> +				<0 3 &gic 0 39 4>;
> +	};
>  };
> diff --git a/arch/arm/boot/dts/vexpress-v2p-ca9.dts b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
> index d949fac..edac212 100644
> --- a/arch/arm/boot/dts/vexpress-v2p-ca9.dts
> +++ b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
> @@ -359,4 +359,17 @@
>  
>  		/include/ "vexpress-v2m.dtsi"
>  	};
> +
> +	site2: hsb@e0000000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0xe0000000 0x20000000>;
> +		#interrupt-cells = <1>;
> +		interrupt-map-mask = <0 3>;
> +		interrupt-map = <0 0 &gic 0 36 4>,
> +				<0 1 &gic 0 37 4>,
> +				<0 2 &gic 0 38 4>,
> +				<0 3 &gic 0 39 4>;
> +	};
>  };
> diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
> index 68ccc39..dee2386 100644
> --- a/arch/arm64/boot/dts/arm/juno-base.dtsi
> +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
> @@ -272,3 +272,13 @@
>  
>  		/include/ "juno-motherboard.dtsi"
>  	};
> +
> +	site2: tlx@60000000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0 0 0x60000000 0x10000000>;
> +		#interrupt-cells = <1>;
> +		interrupt-map-mask = <0 0>;
> +		interrupt-map = <0 0 &gic 0 0 0 168 IRQ_TYPE_LEVEL_HIGH>;
> +	};
> -- 
> 1.7.9.5
>
Sudeep Holla April 4, 2016, 5:05 p.m. UTC | #2
On 04/04/16 17:20, Brian Starkey wrote:
> The VExpress and Juno development platforms have an external expansion
> bus which can be used for additional hardware (e.g. LogicTile Express
> daughterboards).

How do you plan to add those additional hardware on the expansion bus ?

IIUC having them in DT and running on a system without the tile
connected will cause aborts, hence you are just adding bus definition.

Is there any use in having just the bus definition in DT. If you are
planning to add devices using overlays, can't the bus definition also
be added then ?

I am fine with the patch as such, just wanted to know the information.
Brian Starkey April 5, 2016, 8:14 a.m. UTC | #3
Hi Sudeep,

On Mon, Apr 04, 2016 at 06:05:11PM +0100, Sudeep Holla wrote:
>How do you plan to add those additional hardware on the expansion bus ?
>
>IIUC having them in DT and running on a system without the tile
>connected will cause aborts, hence you are just adding bus definition.
>
>Is there any use in having just the bus definition in DT. If you are
>planning to add devices using overlays, can't the bus definition also
>be added then ?

Did you mean "then" as "when I submit the overlay patches" or "add the
bus in the overlay"?

I wasn't sure the overlays would get accepted into mainline as they
describe proprietary FPGA bitfiles which aren't going to be publicly
available. We should be able to upstream them if that's not an issue.

I'm still interested in getting the bus definition upstream so that we
have a basis for defining our bitfile overlays in our kernel tree(s).
Previously there's been no example or convention leading us to hack the
DTs together in various ways:
https://git.linaro.org/landing-teams/working/arm/kernel.git/commit/14ebf51be6ead99b3861d779bdcf3cee18ab81d6
https://git.linaro.org/landing-teams/working/arm/kernel.git/commit/8e3f902e202f48e2b424c0f049f3894ac83c4c65

As for adding it via overlays; as we use the same bitfile on multiple
platforms, we'd need to maintain and apply a bunch of overlays: one
per-platform for the bus, and one per bitfile for the devices.
It seemed better to get the bus definition (which is fixed) into the
base platform definitions, then we only need overlays to describe the
devices which are unique to a bitfile.

Having the bus definition also serves to document the interrupt lines
and address ranges on the different platforms.

>
>I am fine with the patch as such, just wanted to know the information.
>

Thanks for having a look,

Brian

>-- 
>Regards,
>Sudeep
>
>_______________________________________________
>linux-arm-kernel mailing list
>linux-arm-kernel@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
index 9420053..ec7539b 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
@@ -280,4 +280,17 @@ 
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb@40000000 {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0 0x40000000 0x3fef0000>;
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 3>;
+		interrupt-map = <0 0 &gic 0 36 4>,
+				<0 1 &gic 0 37 4>,
+				<0 2 &gic 0 38 4>,
+				<0 3 &gic 0 39 4>;
+	};
 };
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
index 17f63f7..a339b0c 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
@@ -638,4 +638,17 @@ 
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb@40000000 {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0 0x40000000 0x3fef0000>;
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 3>;
+		interrupt-map = <0 0 &gic 0 36 4>,
+				<0 1 &gic 0 37 4>,
+				<0 2 &gic 0 38 4>,
+				<0 3 &gic 0 39 4>;
+	};
 };
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
index d2709b7..76a9ccb 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
@@ -250,4 +250,17 @@ 
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb@40000000 {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0x40000000 0x40000000>;
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 3>;
+		interrupt-map = <0 0 &gic 0 36 4>,
+				<0 1 &gic 0 37 4>,
+				<0 2 &gic 0 38 4>,
+				<0 3 &gic 0 39 4>;
+	};
 };
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca9.dts b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
index d949fac..edac212 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca9.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
@@ -359,4 +359,17 @@ 
 
 		/include/ "vexpress-v2m.dtsi"
 	};
+
+	site2: hsb@e0000000 {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0xe0000000 0x20000000>;
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 3>;
+		interrupt-map = <0 0 &gic 0 36 4>,
+				<0 1 &gic 0 37 4>,
+				<0 2 &gic 0 38 4>,
+				<0 3 &gic 0 39 4>;
+	};
 };
diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
index 68ccc39..dee2386 100644
--- a/arch/arm64/boot/dts/arm/juno-base.dtsi
+++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
@@ -272,3 +272,13 @@ 
 
 		/include/ "juno-motherboard.dtsi"
 	};
+
+	site2: tlx@60000000 {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0 0 0x60000000 0x10000000>;
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 0>;
+		interrupt-map = <0 0 &gic 0 0 0 168 IRQ_TYPE_LEVEL_HIGH>;
+	};