Skip to contentSkip to conversation

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

PATCH New Brian Starkey 3 participants 4 messages Apr 4, 2016 – Apr 5, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: arm64: dts: Add expansion bus to VExpress and Juno

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.

---
 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(+)
arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +13 -0
index 9420053..ec7539b 100644
@@ -280,4 +280,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +13 -0
index 17f63f7..a339b0c 100644
@@ -638,4 +638,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca5s.dts +13 -0
index d2709b7..76a9ccb 100644
@@ -250,4 +250,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca9.dts +13 -0
index d949fac..edac212 100644
@@ -359,4 +359,17 @@
 
 		/include/ "vexpress-v2m.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm64/boot/dts/arm/juno-base.dtsi +10 -0
index 68ccc39..dee2386 100644
@@ -272,3 +272,13 @@
 
 		/include/ "juno-motherboard.dtsi"
 	};
+
+	site2: tlx at 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>;
+	};
Signature · 1 line
1.7.9.5
maintainer
#1 lore raw

PATCH 1/1 ARM: arm64: dts: Add expansion bus to VExpress and Juno

Quoted 6 lines · Brian Starkey

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.

Quoted 2 lines

Otherwise, looks good to me.

With that change:

Best regards,
Liviu

Quoted 117 lines
---
 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(+)
arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts +13 -0
index 9420053..ec7539b 100644
@@ -280,4 +280,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +13 -0
index 17f63f7..a339b0c 100644
@@ -638,4 +638,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca5s.dts +13 -0
index d2709b7..76a9ccb 100644
@@ -250,4 +250,17 @@
 
 		/include/ "vexpress-v2m-rs1.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm/boot/dts/vexpress-v2p-ca9.dts +13 -0
index d949fac..edac212 100644
@@ -359,4 +359,17 @@
 
 		/include/ "vexpress-v2m.dtsi"
 	};
+
+	site2: hsb at 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>;
+	};
 };
arch/arm64/boot/dts/arm/juno-base.dtsi +10 -0
index 68ccc39..dee2386 100644
@@ -272,3 +272,13 @@
 
 		/include/ "juno-motherboard.dtsi"
 	};
+
+	site2: tlx at 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>;
+	};
Signature · 1 line
1.7.9.5
Signature · 8 lines
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ?\_(?)_/?
#2 lore raw

PATCH 1/1 ARM: arm64: dts: Add expansion bus to VExpress and Juno

In reply to Brian Starkey
Quoted 3 lines · Brian Starkey

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.

Signature · 2 lines
Regards,
Sudeep
#3 lore raw

PATCH 1/1 ARM: arm64: dts: Add expansion bus to VExpress and Juno

Hi Sudeep,

Quoted 8 lines · Sudeep Holla

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.

Quoted 3 lines

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

Thanks for having a look,

Brian

Quoted 9 lines
Signature · 7 lines
Regards,
Sudeep

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel