linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [arm64/apm] add support for the gigabyte mp30-ar0 board
@ 2015-08-30 15:24 Janne Grunau
  2015-08-30 15:24 ` [PATCH 1/2] arm64/apm: create X-Gene storm chip variant dtsi Janne Grunau
  2015-08-30 15:24 ` [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board Janne Grunau
  0 siblings, 2 replies; 8+ messages in thread
From: Janne Grunau @ 2015-08-30 15:24 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

following two patches add support for the gigabyte mp30-ar0 mainboard
based on the APM X-Gene Storm (APM883408). The only difference to the
APM88320T used in the mustang board seems to be that it has 4 instead
of 2 DDR memory controllers.

Every device defined in 4.2-rc8's apm-storm.dtsi appears to work.
I haven't tested the 10G ethernet device and the PCIexpress slots.
The second 10G device is missing. It boots only with clk_ignored_unused.
I haven't had a chance to investigate why. The bootloader doesn't clear
x2 and x3.

The board ships with u-boot (U-Boot 2013.04 (Jun 02 2015 - 10:54:10)
REV: 1.15.01-F05), Linux 3.12 and a buildroot based initrd. There seems
no sources available for the shipped binaries. There is no mention of
the GPL in the handbook or shipped materials. The handbook is available
from http://b2b.gigabyte.com/products/product-page.aspx?pid=5422#manual .
The binaries are also available as download from http://b2b.gigabyte.com/products/product-page.aspx?pid=5422#bios .

I asked Thursday for sources of the GPL licensed parts but have of
course no answer yet.

cheers,

Janne


 arch/arm64/boot/dts/apm/Makefile              |  1 +
 arch/arm64/boot/dts/apm/apm-mustang.dts       |  1 +
 arch/arm64/boot/dts/apm/apm-storm-883208.dtsi | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/apm/apm-storm.dtsi        | 87 --------------------------------------------
 arch/arm64/boot/dts/apm/mp30ar0.dts           | 85 +++++++++++++++++++++++++++++++++++++++++++

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] arm64/apm: create X-Gene storm chip variant dtsi
  2015-08-30 15:24 [arm64/apm] add support for the gigabyte mp30-ar0 board Janne Grunau
@ 2015-08-30 15:24 ` Janne Grunau
  2015-08-30 15:24 ` [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board Janne Grunau
  1 sibling, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2015-08-30 15:24 UTC (permalink / raw)
  To: linux-arm-kernel

The CPU and timer table and GIC registers differ between APM883208 and
APM883408 chip variants.  Move them to their own file so the soc node in
apm-storm.dtsi can be shared.

Signed-off-by: Janne Grunau <j@jannau.net>
---
 arch/arm64/boot/dts/apm/apm-mustang.dts       |  1 +
 arch/arm64/boot/dts/apm/apm-storm-883208.dtsi | 99 +++++++++++++++++++++++++++
 arch/arm64/boot/dts/apm/apm-storm.dtsi        | 87 -----------------------
 3 files changed, 100 insertions(+), 87 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apm/apm-storm-883208.dtsi

diff --git a/arch/arm64/boot/dts/apm/apm-mustang.dts b/arch/arm64/boot/dts/apm/apm-mustang.dts
index 4c55833..096e5ec 100644
--- a/arch/arm64/boot/dts/apm/apm-mustang.dts
+++ b/arch/arm64/boot/dts/apm/apm-mustang.dts
@@ -11,6 +11,7 @@
 
 /dts-v1/;
 
+/include/ "apm-storm-883208.dtsi"
 /include/ "apm-storm.dtsi"
 
 / {
diff --git a/arch/arm64/boot/dts/apm/apm-storm-883208.dtsi b/arch/arm64/boot/dts/apm/apm-storm-883208.dtsi
new file mode 100644
index 0000000..e4daaf9
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/apm-storm-883208.dtsi
@@ -0,0 +1,99 @@
+/*
+ * dts file for AppliedMicro (APM) X-Gene Storm SOC
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/ {
+	compatible = "apm,xgene-storm";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu at 000 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x000>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 001 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x001>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 100 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x100>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 101 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x101>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 200 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x200>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 201 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x201>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 300 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x300>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu at 301 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x301>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+	};
+
+	gic: interrupt-controller at 78010000 {
+		compatible = "arm,cortex-a15-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		reg = <0x0 0x78010000 0x0 0x1000>,	/* GIC Dist */
+		      <0x0 0x78020000 0x0 0x1000>,	/* GIC CPU */
+		      <0x0 0x78040000 0x0 0x2000>,	/* GIC VCPU Control */
+		      <0x0 0x78060000 0x0 0x2000>;	/* GIC VCPU */
+		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <1 0 0xff01>,	/* Secure Phys IRQ */
+			     <1 13 0xff01>,	/* Non-secure Phys IRQ */
+			     <1 14 0xff01>,	/* Virt IRQ */
+			     <1 15 0xff01>;	/* Hyp IRQ */
+		clock-frequency = <50000000>;
+	};
+};
diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi
index 58093ed..4177b3d 100644
--- a/arch/arm64/boot/dts/apm/apm-storm.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-storm.dtsi
@@ -10,93 +10,6 @@
  */
 
 / {
-	compatible = "apm,xgene-storm";
-	interrupt-parent = <&gic>;
-	#address-cells = <2>;
-	#size-cells = <2>;
-
-	cpus {
-		#address-cells = <2>;
-		#size-cells = <0>;
-
-		cpu at 000 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x000>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 001 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x001>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 100 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x100>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 101 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x101>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 200 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x200>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 201 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x201>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 300 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x300>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu at 301 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x301>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-	};
-
-	gic: interrupt-controller at 78010000 {
-		compatible = "arm,cortex-a15-gic";
-		#interrupt-cells = <3>;
-		interrupt-controller;
-		reg = <0x0 0x78010000 0x0 0x1000>,	/* GIC Dist */
-		      <0x0 0x78020000 0x0 0x1000>,	/* GIC CPU */
-		      <0x0 0x78040000 0x0 0x2000>,	/* GIC VCPU Control */
-		      <0x0 0x78060000 0x0 0x2000>;	/* GIC VCPU */
-		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
-	};
-
-	timer {
-		compatible = "arm,armv8-timer";
-		interrupts = <1 0 0xff01>,	/* Secure Phys IRQ */
-			     <1 13 0xff01>,	/* Non-secure Phys IRQ */
-			     <1 14 0xff01>,	/* Virt IRQ */
-			     <1 15 0xff01>;	/* Hyp IRQ */
-		clock-frequency = <50000000>;
-	};
-
 	soc {
 		compatible = "simple-bus";
 		#address-cells = <2>;
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-08-30 15:24 [arm64/apm] add support for the gigabyte mp30-ar0 board Janne Grunau
  2015-08-30 15:24 ` [PATCH 1/2] arm64/apm: create X-Gene storm chip variant dtsi Janne Grunau
@ 2015-08-30 15:24 ` Janne Grunau
  2015-08-30 17:26   ` Janne Grunau
  2015-09-01 10:55   ` Mark Rutland
  1 sibling, 2 replies; 8+ messages in thread
From: Janne Grunau @ 2015-08-30 15:24 UTC (permalink / raw)
  To: linux-arm-kernel

Creates apm-storm-883408.dtsi which should be shareable with the HP
Moonshot m400 cartridge.

Signed-off-by: Janne Grunau <j@jannau.net>
---
 arch/arm64/boot/dts/apm/Makefile              |  1 +
 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi | 98 +++++++++++++++++++++++++++
 arch/arm64/boot/dts/apm/mp30ar0.dts           | 85 +++++++++++++++++++++++
 3 files changed, 184 insertions(+)
 create mode 100644 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
 create mode 100644 arch/arm64/boot/dts/apm/mp30ar0.dts

diff --git a/arch/arm64/boot/dts/apm/Makefile b/arch/arm64/boot/dts/apm/Makefile
index a2afabb..b0ec2b6 100644
--- a/arch/arm64/boot/dts/apm/Makefile
+++ b/arch/arm64/boot/dts/apm/Makefile
@@ -1,4 +1,5 @@
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
+dtb-$(CONFIG_ARCH_XGENE) += mp30ar0.dtb
 
 always		:= $(dtb-y)
 subdir-y	:= $(dts-dirs)
diff --git a/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
new file mode 100644
index 0000000..83116df
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
@@ -0,0 +1,98 @@
+/*
+ * dts file for AppliedMicro (APM) X-Gene Storm SOC APM883408
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/ {
+	compatible = "apm,xgene-storm";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu at 000 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x000>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 001 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x001>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 100 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x100>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 101 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x101>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 200 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x200>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 201 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x201>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 300 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x300>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+		cpu at 301 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x301>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x40 0x0000fff8>;
+		};
+	};
+
+	gic: interrupt-controller at 78090000 {
+		compatible = "arm,cortex-a15-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		reg = <0x0 0x78090000 0x0 0x10000>,	/* GIC Dist */
+		      <0x0 0x780a0000 0x0 0x10000>,	/* GIC CPU */
+		      <0x0 0x780c0000 0x0 0x20000>,	/* GIC VCPU Control */
+		      <0x0 0x780e0000 0x0 0x20000>;	/* GIC VCPU */
+		interrupts = <1 9 0xf04>;
+	};
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <1 0 0xff04>,	/* Secure Phys IRQ */
+			     <1 13 0xff04>,	/* Non-secure Phys IRQ */
+			     <1 14 0xff04>,	/* Virt IRQ */
+			     <1 15 0xff04>;	/* Hyp IRQ */
+		clock-frequency = <50000000>;
+	};
+};
diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
new file mode 100644
index 0000000..f7a9dae5
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/mp30ar0.dts
@@ -0,0 +1,85 @@
+/*
+ * dts file for Gigabyte MP30-AR0 board
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+/include/ "apm-storm-883408.dtsi"
+/include/ "apm-storm-soc.dtsi"
+
+/ {
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <0x1 0xc 0xff04>;
+	};
+
+	memory {
+		#address-cells = <0x2>;
+		#size-cells = <0x2>;
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x2000000>;
+	};
+
+	poweroff_mbox: poweroff_mbox at 10548000 {
+		compatible = "syscon";
+		reg = <0x0 0x10548000 0x0 0x100>;
+	};
+
+	poweroff at 10548010 {
+		compatible = "syscon-poweroff";
+		regmap = <&poweroff_mbox>;
+		offset = <0x10>;
+		mask = <0x1>;
+	};
+
+	chosen {
+		linux,stdout-path = "/soc/serial at 1c020000";
+	};
+};
+
+&pcie0clk {
+	status = "ok";
+};
+
+&pcie2clk {
+	status = "ok";
+};
+
+&pcie3clk {
+	status = "ok";
+};
+
+&pcie0 {
+	status = "ok";
+};
+
+&pcie2 {
+	status = "ok";
+};
+
+&pcie3 {
+	status = "ok";
+};
+
+&serial0 {
+	status = "ok";
+};
+
+&sgenet0 {
+	status = "ok";
+};
+
+&sgenet1 {
+	status = "ok";
+};
+
+&xgenet {
+	status = "ok";
+};
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-08-30 15:24 ` [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board Janne Grunau
@ 2015-08-30 17:26   ` Janne Grunau
  2015-09-01 10:55   ` Mark Rutland
  1 sibling, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2015-08-30 17:26 UTC (permalink / raw)
  To: linux-arm-kernel

On 2015-08-30 17:24:30 +0200, Janne Grunau wrote:
> Creates apm-storm-883408.dtsi which should be shareable with the HP
> Moonshot m400 cartridge.
> 
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
>  arch/arm64/boot/dts/apm/Makefile              |  1 +
>  arch/arm64/boot/dts/apm/apm-storm-883408.dtsi | 98 +++++++++++++++++++++++++++
>  arch/arm64/boot/dts/apm/mp30ar0.dts           | 85 +++++++++++++++++++++++
>  3 files changed, 184 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
>  create mode 100644 arch/arm64/boot/dts/apm/mp30ar0.dts
>
> diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
> new file mode 100644
> index 0000000..f7a9dae5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apm/mp30ar0.dts
> @@ -0,0 +1,85 @@
> +/*
> + * dts file for Gigabyte MP30-AR0 board
> + *
> + * Copyright (C) 2013, Applied Micro Circuits Corporation
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + */
> +
> +/dts-v1/;
> +
> +/include/ "apm-storm-883408.dtsi"
> +/include/ "apm-storm-soc.dtsi"

/include/ "apm-storm.dtsi"

I split the soc node first into its own file but then decided that 
keeping the larger part in the same file introduces less merge 
conflicts.

> +
> +/ {
> +	pmu {
> +		compatible = "arm,armv8-pmuv3";
> +		interrupts = <0x1 0xc 0xff04>;
> +	};
> +
> +	memory {
> +		#address-cells = <0x2>;
> +		#size-cells = <0x2>;
> +		device_type = "memory";
> +		reg = <0x0 0x0 0x0 0x2000000>;
> +	};
> +
> +	poweroff_mbox: poweroff_mbox at 10548000 {
> +		compatible = "syscon";
> +		reg = <0x0 0x10548000 0x0 0x100>;
> +	};
> +
> +	poweroff at 10548010 {
> +		compatible = "syscon-poweroff";
> +		regmap = <&poweroff_mbox>;
> +		offset = <0x10>;
> +		mask = <0x1>;
> +	};

This doesn't seem to work, even with the poweroff/reset patches for 
mustang.

Janne

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-08-30 15:24 ` [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board Janne Grunau
  2015-08-30 17:26   ` Janne Grunau
@ 2015-09-01 10:55   ` Mark Rutland
  2015-09-02  7:59     ` Janne Grunau
  1 sibling, 1 reply; 8+ messages in thread
From: Mark Rutland @ 2015-09-01 10:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Aug 30, 2015 at 04:24:30PM +0100, Janne Grunau wrote:
> Creates apm-storm-883408.dtsi which should be shareable with the HP
> Moonshot m400 cartridge.
> 
> Signed-off-by: Janne Grunau <j@jannau.net>
> ---
>  arch/arm64/boot/dts/apm/Makefile              |  1 +
>  arch/arm64/boot/dts/apm/apm-storm-883408.dtsi | 98 +++++++++++++++++++++++++++
>  arch/arm64/boot/dts/apm/mp30ar0.dts           | 85 +++++++++++++++++++++++
>  3 files changed, 184 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
>  create mode 100644 arch/arm64/boot/dts/apm/mp30ar0.dts
> 
> diff --git a/arch/arm64/boot/dts/apm/Makefile b/arch/arm64/boot/dts/apm/Makefile
> index a2afabb..b0ec2b6 100644
> --- a/arch/arm64/boot/dts/apm/Makefile
> +++ b/arch/arm64/boot/dts/apm/Makefile
> @@ -1,4 +1,5 @@
>  dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
> +dtb-$(CONFIG_ARCH_XGENE) += mp30ar0.dtb
>  
>  always		:= $(dtb-y)
>  subdir-y	:= $(dts-dirs)
> diff --git a/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
> new file mode 100644
> index 0000000..83116df
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
> @@ -0,0 +1,98 @@
> +/*
> + * dts file for AppliedMicro (APM) X-Gene Storm SOC APM883408
> + *
> + * Copyright (C) 2013, Applied Micro Circuits Corporation
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + */
> +
> +/ {
> +	compatible = "apm,xgene-storm";
> +	interrupt-parent = <&gic>;
> +	#address-cells = <2>;
> +	#size-cells = <2>;
> +
> +	cpus {
> +		#address-cells = <2>;
> +		#size-cells = <0>;
> +
> +		cpu at 000 {
> +			device_type = "cpu";
> +			compatible = "apm,potenza", "arm,armv8";
> +			reg = <0x0 0x000>;
> +			enable-method = "spin-table";
> +			cpu-release-addr = <0x40 0x0000fff8>;
> +		};

This release address doesn't fall in the region described by the memory
node, and I don't see any /memreserve/. That worries me.

Does the bootlaoder override the memory node?

Does it add the requisite memreserve?

Does it override the cpu-release-addr?

[...]

> +	gic: interrupt-controller at 78090000 {
> +		compatible = "arm,cortex-a15-gic";
> +		#interrupt-cells = <3>;
> +		interrupt-controller;
> +		reg = <0x0 0x78090000 0x0 0x10000>,	/* GIC Dist */
> +		      <0x0 0x780a0000 0x0 0x10000>,	/* GIC CPU */
> +		      <0x0 0x780c0000 0x0 0x20000>,	/* GIC VCPU Control */
> +		      <0x0 0x780e0000 0x0 0x20000>;	/* GIC VCPU */
> +		interrupts = <1 9 0xf04>;
> +	};

Nit: add a blank line here.

> +	timer {
> +		compatible = "arm,armv8-timer";
> +		interrupts = <1 0 0xff04>,	/* Secure Phys IRQ */
> +			     <1 13 0xff04>,	/* Non-secure Phys IRQ */
> +			     <1 14 0xff04>,	/* Virt IRQ */
> +			     <1 15 0xff04>;	/* Hyp IRQ */
> +		clock-frequency = <50000000>;
> +	};

Surely the firmware is configuring CNTFRQ, and it's not necessary to
have a clock-frequency property?

> +};
> diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
> new file mode 100644
> index 0000000..f7a9dae5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/apm/mp30ar0.dts
> @@ -0,0 +1,85 @@
> +/*
> + * dts file for Gigabyte MP30-AR0 board
> + *
> + * Copyright (C) 2013, Applied Micro Circuits Corporation
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + */
> +
> +/dts-v1/;
> +
> +/include/ "apm-storm-883408.dtsi"
> +/include/ "apm-storm-soc.dtsi"
> +
> +/ {
> +	pmu {
> +		compatible = "arm,armv8-pmuv3";
> +		interrupts = <0x1 0xc 0xff04>;
> +	};
> +
> +	memory {
> +		#address-cells = <0x2>;
> +		#size-cells = <0x2>;

I don't see why these properties should be here.

> +		device_type = "memory";
> +		reg = <0x0 0x0 0x0 0x2000000>;

Is this overriden by the bootloader? It seems a tad small...

> +	};
> +
> +	poweroff_mbox: poweroff_mbox at 10548000 {
> +		compatible = "syscon";
> +		reg = <0x0 0x10548000 0x0 0x100>;
> +	};
> +
> +	poweroff at 10548010 {
> +		compatible = "syscon-poweroff";
> +		regmap = <&poweroff_mbox>;
> +		offset = <0x10>;
> +		mask = <0x1>;
> +	};
> +
> +	chosen {
> +		linux,stdout-path = "/soc/serial at 1c020000";

Please use stdout-path rather than linux,stdout-path.

No rate configuration?

This would look nicer with an alias.

Thanks,
Mark.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-09-01 10:55   ` Mark Rutland
@ 2015-09-02  7:59     ` Janne Grunau
  2015-09-02 13:57       ` Mark Rutland
  0 siblings, 1 reply; 8+ messages in thread
From: Janne Grunau @ 2015-09-02  7:59 UTC (permalink / raw)
  To: linux-arm-kernel

On 2015-09-01 11:55:11 +0100, Mark Rutland wrote:
> On Sun, Aug 30, 2015 at 04:24:30PM +0100, Janne Grunau wrote:
> > Creates apm-storm-883408.dtsi which should be shareable with the HP
> > Moonshot m400 cartridge.
> > 
> > Signed-off-by: Janne Grunau <j@jannau.net>
> > ---
> >  arch/arm64/boot/dts/apm/Makefile              |  1 +
> >  arch/arm64/boot/dts/apm/apm-storm-883408.dtsi | 98 +++++++++++++++++++++++++++
> >  arch/arm64/boot/dts/apm/mp30ar0.dts           | 85 +++++++++++++++++++++++
> >  3 files changed, 184 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
> >  create mode 100644 arch/arm64/boot/dts/apm/mp30ar0.dts
> > 
> > diff --git a/arch/arm64/boot/dts/apm/Makefile b/arch/arm64/boot/dts/apm/Makefile
> > index a2afabb..b0ec2b6 100644
> > --- a/arch/arm64/boot/dts/apm/Makefile
> > +++ b/arch/arm64/boot/dts/apm/Makefile
> > @@ -1,4 +1,5 @@
> >  dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
> > +dtb-$(CONFIG_ARCH_XGENE) += mp30ar0.dtb
> >  
> >  always		:= $(dtb-y)
> >  subdir-y	:= $(dts-dirs)
> > diff --git a/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
> > new file mode 100644
> > index 0000000..83116df
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/apm/apm-storm-883408.dtsi
> > @@ -0,0 +1,98 @@
> > +/*
> > + * dts file for AppliedMicro (APM) X-Gene Storm SOC APM883408
> > + *
> > + * Copyright (C) 2013, Applied Micro Circuits Corporation
> > + *
> > + * This program is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU General Public License as
> > + * published by the Free Software Foundation; either version 2 of
> > + * the License, or (at your option) any later version.
> > + */
> > +
> > +/ {
> > +	compatible = "apm,xgene-storm";
> > +	interrupt-parent = <&gic>;
> > +	#address-cells = <2>;
> > +	#size-cells = <2>;
> > +
> > +	cpus {
> > +		#address-cells = <2>;
> > +		#size-cells = <0>;
> > +
> > +		cpu at 000 {
> > +			device_type = "cpu";
> > +			compatible = "apm,potenza", "arm,armv8";
> > +			reg = <0x0 0x000>;
> > +			enable-method = "spin-table";
> > +			cpu-release-addr = <0x40 0x0000fff8>;
> > +		};
> 
> This release address doesn't fall in the region described by the memory
> node, and I don't see any /memreserve/. That worries me.
> 
> Does the bootlaoder override the memory node?

The bootloader overrides the memory node and memory starts at 0x40 0x0

> Does it add the requisite memreserve?
> 
> Does it override the cpu-release-addr?

neither of that

> > +	timer {
> > +		compatible = "arm,armv8-timer";
> > +		interrupts = <1 0 0xff04>,	/* Secure Phys IRQ */
> > +			     <1 13 0xff04>,	/* Non-secure Phys IRQ */
> > +			     <1 14 0xff04>,	/* Virt IRQ */
> > +			     <1 15 0xff04>;	/* Hyp IRQ */
> > +		clock-frequency = <50000000>;
> > +	};
> 
> Surely the firmware is configuring CNTFRQ, and it's not necessary to
> have a clock-frequency property?

it does, clock-frequency removed

> > +};
> > diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
> > new file mode 100644
> > index 0000000..f7a9dae5
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/apm/mp30ar0.dts

[...]

> > +	memory {
> > +		#address-cells = <0x2>;
> > +		#size-cells = <0x2>;
> 
> I don't see why these properties should be here.

removed

> > +		device_type = "memory";
> > +		reg = <0x0 0x0 0x0 0x2000000>;
> 
> Is this overriden by the bootloader? It seems a tad small...

yes, it is overriden by the bootloader. It requires a memory node in the 
dts but will overwrite the contents. I'll set size to zero and add a 
comment that it is updated by the bootloader. I could set start to 0x40 
0x00 or leave it at zero.

> > +	};
> > +
> > +	poweroff_mbox: poweroff_mbox at 10548000 {
> > +		compatible = "syscon";
> > +		reg = <0x0 0x10548000 0x0 0x100>;
> > +	};
> > +
> > +	poweroff at 10548010 {
> > +		compatible = "syscon-poweroff";
> > +		regmap = <&poweroff_mbox>;
> > +		offset = <0x10>;
> > +		mask = <0x1>;
> > +	};
> > +
> > +	chosen {
> > +		linux,stdout-path = "/soc/serial at 1c020000";
> 
> Please use stdout-path rather than linux,stdout-path.
> 
> No rate configuration?
> 
> This would look nicer with an alias.

I can change that but the bootloader will add a 'linux,stdout-path' and 
the stdout-path will override it. OTOH the bootloader seems to always 
add this exact string so it will be fine to "override" it from the dts.
The alternative would to remove it.

Thanks,

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-09-02  7:59     ` Janne Grunau
@ 2015-09-02 13:57       ` Mark Rutland
  2015-09-03 22:28         ` Janne Grunau
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Rutland @ 2015-09-02 13:57 UTC (permalink / raw)
  To: linux-arm-kernel

> > > +};
> > > diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
> > > new file mode 100644
> > > index 0000000..f7a9dae5
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/apm/mp30ar0.dts
> 
> [...]
> 
> > > +	memory {
> > > +		#address-cells = <0x2>;
> > > +		#size-cells = <0x2>;
> > 
> > I don't see why these properties should be here.
> 
> removed
> 
> > > +		device_type = "memory";
> > > +		reg = <0x0 0x0 0x0 0x2000000>;
> > 
> > Is this overriden by the bootloader? It seems a tad small...
> 
> yes, it is overriden by the bootloader. It requires a memory node in the 
> dts but will overwrite the contents. I'll set size to zero and add a 
> comment that it is updated by the bootloader. I could set start to 0x40 
> 0x00 or leave it at zero.

I think all zeroes is preferable. The comment is definitely worthwhile.

> > > +	};
> > > +
> > > +	poweroff_mbox: poweroff_mbox at 10548000 {
> > > +		compatible = "syscon";
> > > +		reg = <0x0 0x10548000 0x0 0x100>;
> > > +	};
> > > +
> > > +	poweroff at 10548010 {
> > > +		compatible = "syscon-poweroff";
> > > +		regmap = <&poweroff_mbox>;
> > > +		offset = <0x10>;
> > > +		mask = <0x1>;
> > > +	};
> > > +
> > > +	chosen {
> > > +		linux,stdout-path = "/soc/serial at 1c020000";
> > 
> > Please use stdout-path rather than linux,stdout-path.
> > 
> > No rate configuration?
> > 
> > This would look nicer with an alias.
> 
> I can change that but the bootloader will add a 'linux,stdout-path' and 
> the stdout-path will override it. OTOH the bootloader seems to always 
> add this exact string so it will be fine to "override" it from the dts.
> The alternative would to remove it.

I guess it doesn't fill in the rate, which is somewhat unfortunate.

Does it override an existing linux,stdout-path? If not, we could add the
rate.

I think we should have a comment about the bootlaoder filling in
linux,stdout-path, but other than that I'm not really sure what the best
option is.

Thanks,
Mark.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board
  2015-09-02 13:57       ` Mark Rutland
@ 2015-09-03 22:28         ` Janne Grunau
  0 siblings, 0 replies; 8+ messages in thread
From: Janne Grunau @ 2015-09-03 22:28 UTC (permalink / raw)
  To: linux-arm-kernel

On 2015-09-02 14:57:53 +0100, Mark Rutland wrote:
> > > > +};
> > > > diff --git a/arch/arm64/boot/dts/apm/mp30ar0.dts b/arch/arm64/boot/dts/apm/mp30ar0.dts
> > > > new file mode 100644
> > > > index 0000000..f7a9dae5
> > > > --- /dev/null
> > > > +++ b/arch/arm64/boot/dts/apm/mp30ar0.dts

[...]

> > > > +	};
> > > > +
> > > > +	poweroff_mbox: poweroff_mbox at 10548000 {
> > > > +		compatible = "syscon";
> > > > +		reg = <0x0 0x10548000 0x0 0x100>;
> > > > +	};
> > > > +
> > > > +	poweroff at 10548010 {
> > > > +		compatible = "syscon-poweroff";
> > > > +		regmap = <&poweroff_mbox>;
> > > > +		offset = <0x10>;
> > > > +		mask = <0x1>;
> > > > +	};
> > > > +
> > > > +	chosen {
> > > > +		linux,stdout-path = "/soc/serial at 1c020000";
> > > 
> > > Please use stdout-path rather than linux,stdout-path.
> > > 
> > > No rate configuration?
> > > 
> > > This would look nicer with an alias.
> > 
> > I can change that but the bootloader will add a 'linux,stdout-path' and 
> > the stdout-path will override it. OTOH the bootloader seems to always 
> > add this exact string so it will be fine to "override" it from the dts.
> > The alternative would to remove it.
> 
> I guess it doesn't fill in the rate, which is somewhat unfortunate.
> 
> Does it override an existing linux,stdout-path? If not, we could add the
> rate.

yes, it overrides an existing linux,stdout-path and it looks like an 
hardcoded string.

> I think we should have a comment about the bootlaoder filling in
> linux,stdout-path, but other than that I'm not really sure what the best
> option is.

I'll add the comment and a stdout-path with alias and rate. There is at 
least some hope that Gigabyte or APM will realease a newer/fixed 
bootloader. The installed bootloader doesn't clear x2/x3.

Thanks Janne

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-09-03 22:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-30 15:24 [arm64/apm] add support for the gigabyte mp30-ar0 board Janne Grunau
2015-08-30 15:24 ` [PATCH 1/2] arm64/apm: create X-Gene storm chip variant dtsi Janne Grunau
2015-08-30 15:24 ` [PATCH 2/2] arm64/apm: add dts for Gigabyte MP30-AR0 board Janne Grunau
2015-08-30 17:26   ` Janne Grunau
2015-09-01 10:55   ` Mark Rutland
2015-09-02  7:59     ` Janne Grunau
2015-09-02 13:57       ` Mark Rutland
2015-09-03 22:28         ` Janne Grunau

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).