Linux-OMAP Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
@ 2020-07-09 23:19 Suman Anna
  2020-07-09 23:19 ` [PATCH 01/13] ARM: dts: omap4: Add timer_sys_ck clocks for timers Suman Anna
                   ` (14 more replies)
  0 siblings, 15 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

Hi Tony,

The following series contains all the necessary DT pieces to boot the
IPU and DSP remote processors on OMAP4 and OMAP5 SoCs. They are
enabled specifically on the TI OMAP4 PandaBoard and OMAP5 uEVM boards.
This is the last DT piece that now completes the support for IPUs and
DSPs on all OMAP4+ SoCs, similar patches were merged for 5.8 covering
the DRA7xx/AM57xx SoCs. Appreciate it if you can pick up the series for
5.9 if it isn't too late.

There is one issue that I have run into while testing this series on
the latest kernel. I am seeing a l3_noc error for OMAP4 DSP when it
attempts to auto-suspend or stop after it is booted. The issue is a
L4CFG read error that happens in the sysc_disable_module() function
in ti-sysc code.

I do not have any issues on my downstream 5.4 based SDK kernel. I have
root-caused this to the OMAP4 voltage controller patches you added for
5.5 kernel through your omap-for-v5.5/pm branch, specifically the
commit 4873843718f9 ("ARM: OMAP2+: Initialize voltage controller for omap4").
The VOLTCTRL register value is 0x300 before that patch, and modifying
this register either through  omap4_vc_init_pmic_signaling() or
omap4_vc_set_pmic_signaling() will trigger this. A debug print in
sysc_disable_module() also seems to help.

regards
Suman

Suman Anna (13):
  ARM: dts: omap4: Add timer_sys_ck clocks for timers
  ARM: dts: omap5: Add timer_sys_ck clocks for timers
  ARM: dts: omap4: Update the DSP node
  ARM: dts: omap4: Add IPU DT node
  ARM: dts: omap4: Add aliases for rproc nodes
  ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
  ARM: dts: omap5: Add DSP and IPU nodes
  ARM: dts: omap5: Add aliases for rproc nodes
  ARM: dts: omap5-uevm: Add CMA pools and enable IPU & DSP
  ARM: dts: omap5-uevm: Add system timers to DSP and IPU
  ARM: dts: omap4-panda-common: Add watchdog timers for IPU and DSP
  ARM: dts: omap5-uevm: Add watchdog timers for IPU and DSP

 arch/arm/boot/dts/omap4-l4-abe.dtsi       | 20 +++++++------
 arch/arm/boot/dts/omap4-l4.dtsi           | 35 ++++++++++++++---------
 arch/arm/boot/dts/omap4-panda-common.dtsi | 34 ++++++++++++++++++++++
 arch/arm/boot/dts/omap4.dtsi              | 29 ++++++++++++++++---
 arch/arm/boot/dts/omap5-l4-abe.dtsi       | 20 +++++++------
 arch/arm/boot/dts/omap5-l4.dtsi           | 35 ++++++++++++++---------
 arch/arm/boot/dts/omap5-uevm.dts          | 34 ++++++++++++++++++++++
 arch/arm/boot/dts/omap5.dtsi              | 25 ++++++++++++++++
 8 files changed, 184 insertions(+), 48 deletions(-)

-- 
2.26.0


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

* [PATCH 01/13] ARM: dts: omap4: Add timer_sys_ck clocks for timers
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 02/13] ARM: dts: omap5: " Suman Anna
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The commit 1c7de9f27a65 ("clk: ti: omap4: cleanup unnecessary clock
aliases") has cleaned up all timer_sys_ck clock aliases and retained
only the timer_32k_ck clock alias. The OMAP clocksource timer driver
though still uses this clock alias when reconfiguring the parent
clock source for the timer functional clocks, so add these clocks
to all the timer nodes.

This is required by the OMAP remoteproc driver to successfully
acquire a timer and configure the source clock to be driven from
timer_sys_ck clock.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4-l4-abe.dtsi | 20 ++++++++++-------
 arch/arm/boot/dts/omap4-l4.dtsi     | 35 +++++++++++++++++------------
 2 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/arch/arm/boot/dts/omap4-l4-abe.dtsi b/arch/arm/boot/dts/omap4-l4-abe.dtsi
index a6feb201c569..b2cf5f41e222 100644
--- a/arch/arm/boot/dts/omap4-l4-abe.dtsi
+++ b/arch/arm/boot/dts/omap4-l4-abe.dtsi
@@ -333,8 +333,9 @@ timer5: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x00000000 0x80>,
 				      <0x49038000 0x80>;
-				clocks = <&abe_clkctrl OMAP4_TIMER5_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP4_TIMER5_CLKCTRL 24>,
+					 <&syc_clk_div_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 			};
@@ -363,8 +364,9 @@ timer6: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x00000000 0x80>,
 				      <0x4903a000 0x80>;
-				clocks = <&abe_clkctrl OMAP4_TIMER6_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP4_TIMER6_CLKCTRL 24>,
+					 <&syc_clk_div_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 			};
@@ -393,8 +395,9 @@ timer7: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x00000000 0x80>,
 				      <0x4903c000 0x80>;
-				clocks = <&abe_clkctrl OMAP4_TIMER7_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP4_TIMER7_CLKCTRL 24>,
+					 <&syc_clk_div_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 			};
@@ -423,8 +426,9 @@ timer8: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x00000000 0x80>,
 				      <0x4903e000 0x80>;
-				clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>,
+					 <&syc_clk_div_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 				ti,timer-dsp;
diff --git a/arch/arm/boot/dts/omap4-l4.dtsi b/arch/arm/boot/dts/omap4-l4.dtsi
index fcc52121ff09..bf90a683d7b8 100644
--- a/arch/arm/boot/dts/omap4-l4.dtsi
+++ b/arch/arm/boot/dts/omap4-l4.dtsi
@@ -1163,8 +1163,9 @@ SYSC_OMAP2_SOFTRESET |
 			timer1: timer@0 {
 				compatible = "ti,omap3430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-alwon;
 			};
@@ -1439,8 +1440,9 @@ SYSC_OMAP2_SOFTRESET |
 			timer2: timer@0 {
 				compatible = "ti,omap3430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER2_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER2_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1466,8 +1468,9 @@ target-module@34000 {			/* 0x48034000, ap 7 04.0 */
 			timer3: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER3_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER3_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1493,8 +1496,9 @@ target-module@36000 {			/* 0x48036000, ap 9 0e.0 */
 			timer4: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER4_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER4_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1520,8 +1524,9 @@ target-module@3e000 {			/* 0x4803e000, ap 11 08.0 */
 			timer9: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
@@ -1954,8 +1959,9 @@ SYSC_OMAP2_SOFTRESET |
 			timer10: timer@0 {
 				compatible = "ti,omap3430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER10_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER10_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
@@ -1982,8 +1988,9 @@ target-module@88000 {			/* 0x48088000, ap 45 2e.0 */
 			timer11: timer@0 {
 				compatible = "ti,omap4430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4_per_clkctrl OMAP4_TIMER11_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4_per_clkctrl OMAP4_TIMER11_CLKCTRL 24>,
+					 <&sys_clkin_ck>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
-- 
2.26.0


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

* [PATCH 02/13] ARM: dts: omap5: Add timer_sys_ck clocks for timers
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
  2020-07-09 23:19 ` [PATCH 01/13] ARM: dts: omap4: Add timer_sys_ck clocks for timers Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 03/13] ARM: dts: omap4: Update the DSP node Suman Anna
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The commit d41e53040926 ("clk: ti: omap5: cleanup unnecessary clock
aliases") has cleaned up all timer_sys_ck clock aliases and retained
only the timer_32k_ck clock alias. The OMAP clocksource timer driver
though still uses this clock alias when reconfiguring the parent
clock source for the timer functional clocks, so add these clocks
to all the timer nodes except for the always-on timers 1 and 12.

This is required by the OMAP remoteproc driver to successfully
acquire a timer and configure the source clock to be driven from
timer_sys_ck clock.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5-l4-abe.dtsi | 20 ++++++++++-------
 arch/arm/boot/dts/omap5-l4.dtsi     | 35 +++++++++++++++++------------
 2 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/arch/arm/boot/dts/omap5-l4-abe.dtsi b/arch/arm/boot/dts/omap5-l4-abe.dtsi
index bafd6adf9f45..25b7fce8de2d 100644
--- a/arch/arm/boot/dts/omap5-l4-abe.dtsi
+++ b/arch/arm/boot/dts/omap5-l4-abe.dtsi
@@ -298,8 +298,9 @@ timer5: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>,
 				      <0x49038000 0x80>;
-				clocks = <&abe_clkctrl OMAP5_TIMER5_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP5_TIMER5_CLKCTRL 24>,
+					 <&dss_syc_gfclk_div>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 				ti,timer-pwm;
@@ -329,8 +330,9 @@ timer6: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>,
 				      <0x4903a000 0x80>;
-				clocks = <&abe_clkctrl OMAP5_TIMER6_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP5_TIMER6_CLKCTRL 24>,
+					 <&dss_syc_gfclk_div>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 				ti,timer-pwm;
@@ -360,8 +362,9 @@ timer7: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>,
 				      <0x4903c000 0x80>;
-				clocks = <&abe_clkctrl OMAP5_TIMER7_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP5_TIMER7_CLKCTRL 24>,
+					 <&dss_syc_gfclk_div>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 			};
@@ -390,8 +393,9 @@ timer8: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>,
 				      <0x4903e000 0x80>;
-				clocks = <&abe_clkctrl OMAP5_TIMER8_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&abe_clkctrl OMAP5_TIMER8_CLKCTRL 24>,
+					 <&dss_syc_gfclk_div>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-dsp;
 				ti,timer-pwm;
diff --git a/arch/arm/boot/dts/omap5-l4.dtsi b/arch/arm/boot/dts/omap5-l4.dtsi
index 5217805bf126..683394d1e4d6 100644
--- a/arch/arm/boot/dts/omap5-l4.dtsi
+++ b/arch/arm/boot/dts/omap5-l4.dtsi
@@ -1082,8 +1082,9 @@ target-module@32000 {			/* 0x48032000, ap 5 3e.0 */
 			timer2: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER2_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER2_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1109,8 +1110,9 @@ target-module@34000 {			/* 0x48034000, ap 7 46.0 */
 			timer3: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER3_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER3_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1136,8 +1138,9 @@ target-module@36000 {			/* 0x48036000, ap 9 4e.0 */
 			timer4: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER4_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER4_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
 			};
 		};
@@ -1163,8 +1166,9 @@ target-module@3e000 {			/* 0x4803e000, ap 11 56.0 */
 			timer9: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER9_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER9_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
@@ -1730,8 +1734,9 @@ target-module@86000 {			/* 0x48086000, ap 41 5e.0 */
 			timer10: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER10_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER10_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
@@ -1758,8 +1763,9 @@ target-module@88000 {			/* 0x48088000, ap 43 66.0 */
 			timer11: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&l4per_clkctrl OMAP5_TIMER11_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&l4per_clkctrl OMAP5_TIMER11_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-pwm;
 			};
@@ -2387,8 +2393,9 @@ timer1_target: target-module@8000 {	/* 0x4ae18000, ap 9 18.0 */
 			timer1: timer@0 {
 				compatible = "ti,omap5430-timer";
 				reg = <0x0 0x80>;
-				clocks = <&wkupaon_clkctrl OMAP5_TIMER1_CLKCTRL 24>;
-				clock-names = "fck";
+				clocks = <&wkupaon_clkctrl OMAP5_TIMER1_CLKCTRL 24>,
+					 <&sys_clkin>;
+				clock-names = "fck", "timer_sys_ck";
 				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
 				ti,timer-alwon;
 			};
-- 
2.26.0


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

* [PATCH 03/13] ARM: dts: omap4: Update the DSP node
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
  2020-07-09 23:19 ` [PATCH 01/13] ARM: dts: omap4: Add timer_sys_ck clocks for timers Suman Anna
  2020-07-09 23:19 ` [PATCH 02/13] ARM: dts: omap5: " Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 04/13] ARM: dts: omap4: Add IPU DT node Suman Anna
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The compatible property for the DSP node is updated to match
the OMAP remoteproc bindings. The node is moved from the soc
node to the ocp node to better reflect the connectivity from
MPU side.

The node is updated with the 'ti,bootreg', 'clocks', 'resets',
'iommus', 'mboxes' and 'firmware' properties. Note that the
node does not have any 'reg' or 'reg-names' properties since
it doesn't have any L2 RAM memory, but only Unicaches.

The node is disabled for now, and should be enabled as per
the individual product configuration in the corresponding
board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4.dtsi | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 4400f5f8e099..8f6b38bb5753 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -106,10 +106,6 @@ mpu {
 			sram = <&ocmcram>;
 		};
 
-		dsp {
-			compatible = "ti,omap3-c64";
-		};
-
 		iva {
 			compatible = "ti,ivahd";
 			ti,hwmods = "iva";
@@ -277,6 +273,17 @@ emif2: emif@4d000000 {
 			hw-caps-temp-alert;
 		};
 
+		dsp: dsp {
+			compatible = "ti,omap4-dsp";
+			ti,bootreg = <&scm_conf 0x304 0>;
+			iommus = <&mmu_dsp>;
+			resets = <&prm_tesla 0>;
+			clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
+			firmware-name = "omap4-dsp-fw.xe64T";
+			mboxes = <&mailbox &mbox_dsp>;
+			status = "disabled";
+		};
+
 		aes1_target: target-module@4b501000 {
 			compatible = "ti,sysc-omap2", "ti,sysc";
 			reg = <0x4b501080 0x4>,
-- 
2.26.0


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

* [PATCH 04/13] ARM: dts: omap4: Add IPU DT node
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (2 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 03/13] ARM: dts: omap4: Update the DSP node Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 05/13] ARM: dts: omap4: Add aliases for rproc nodes Suman Anna
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The DT node for the Dual-Cortex M3 IPU processor sub-system has
been added for OMAP4 SoCs. The L2RAM memory region information
has been added to the node through the 'reg' and 'reg-names'
properties. The node has the 'iommus', 'clocks', 'resets',
'mboxes' and 'firmware' properties also added, and is disabled
for now. It should be enabled as per the individual product
configuration in the corresponding board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 8f6b38bb5753..4928951ad9db 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -284,6 +284,18 @@ dsp: dsp {
 			status = "disabled";
 		};
 
+		ipu: ipu@55020000 {
+			compatible = "ti,omap4-ipu";
+			reg = <0x55020000 0x10000>;
+			reg-names = "l2ram";
+			iommus = <&mmu_ipu>;
+			resets = <&prm_core 0>, <&prm_core 1>;
+			clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
+			firmware-name = "omap4-ipu-fw.xem3";
+			mboxes = <&mailbox &mbox_ipu>;
+			status = "disabled";
+		};
+
 		aes1_target: target-module@4b501000 {
 			compatible = "ti,sysc-omap2", "ti,sysc";
 			reg = <0x4b501080 0x4>,
-- 
2.26.0


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

* [PATCH 05/13] ARM: dts: omap4: Add aliases for rproc nodes
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (3 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 04/13] ARM: dts: omap4: Add IPU DT node Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP Suman Anna
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

Add aliases for the DSP and IPU remoteproc processor
nodes common to all OMAP4 boards. The aliases uses
the stem "rproc".

The aliases can be overridden, if needed, in the
respective board files.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 4928951ad9db..3fd26b22c4f3 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -26,6 +26,8 @@ aliases {
 		serial1 = &uart2;
 		serial2 = &uart3;
 		serial3 = &uart4;
+		rproc0 = &dsp;
+		rproc1 = &ipu;
 	};
 
 	cpus {
-- 
2.26.0


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

* [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (4 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 05/13] ARM: dts: omap4: Add aliases for rproc nodes Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-08-12  5:31   ` Guillaume Tucker
  2020-07-09 23:19 ` [PATCH 07/13] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU Suman Anna
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The CMA reserved memory nodes have been added for the IPU and DSP
remoteproc devices on all the OMAP4-based Panda boards. These nodes
are assigned to the respective rproc device nodes, and both the
IPU and DSP remote processors are enabled for all these boards.

The current CMA pools and sizes are defined statically for each device.
The starting addresses are fixed to meet current dependencies on the
remote processor firmwares, and will go away when the remote-side
code has been improved to gather this information runtime during
its initialization.

An associated pair of the rproc node and its CMA node can be disabled
later on if there is no use-case defined to use that remote processor.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index 55ea8b6189af..ef79028fc95f 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -12,6 +12,26 @@ memory@80000000 {
 		reg = <0x80000000 0x40000000>; /* 1 GB */
 	};
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		dsp_memory_region: dsp-memory@98000000 {
+			compatible = "shared-dma-pool";
+			reg = <0x98000000 0x800000>;
+			reusable;
+			status = "okay";
+		};
+
+		ipu_memory_region: ipu-memory@98800000 {
+			compatible = "shared-dma-pool";
+			reg = <0x98800000 0x7000000>;
+			reusable;
+			status = "okay";
+		};
+	};
+
 	chosen {
 		stdout-path = &uart3;
 	};
@@ -571,3 +591,13 @@ hdmi_out: endpoint {
 		};
 	};
 };
+
+&dsp {
+	status = "okay";
+	memory-region = <&dsp_memory_region>;
+};
+
+&ipu {
+	status = "okay";
+	memory-region = <&ipu_memory_region>;
+};
-- 
2.26.0


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

* [PATCH 07/13] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (5 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 08/13] ARM: dts: omap5: Add DSP and IPU nodes Suman Anna
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The BIOS System Tick timers have been added for the IPU and DSP
remoteproc devices on all the OMAP4-based Panda boards. The
following DMTimers are chosen:
	IPU : GPT3 (SMP-mode)
	DSP : GPT5

IPU has two Cortex-M3 processors, and is currently expected to be
running in SMP-mode, so only a single timer suffices to provide
the BIOS tick timer. An additional timer should be added for the
second processor in IPU if it were to be run in non-SMP mode. The
timer value also needs to be unique from the ones used by other
processors so that they can be run simultaneously.

The timers are optional, but are mandatory to support device
management features such as power management and watchdog support.
The above are added to successfully boot and execute firmware images
configured with the respective timers, images that use internal
processor subsystem timers are not affected. The timers can be
changed or removed as per the system integration needs, alongside
equivalent changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4-panda-common.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index ef79028fc95f..db0b7e9264f9 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -595,9 +595,11 @@ hdmi_out: endpoint {
 &dsp {
 	status = "okay";
 	memory-region = <&dsp_memory_region>;
+	ti,timers = <&timer5>;
 };
 
 &ipu {
 	status = "okay";
 	memory-region = <&ipu_memory_region>;
+	ti,timers = <&timer3>;
 };
-- 
2.26.0


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

* [PATCH 08/13] ARM: dts: omap5: Add DSP and IPU nodes
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (6 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 07/13] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 09/13] ARM: dts: omap5: Add aliases for rproc nodes Suman Anna
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

OMAP5, like OMAP4, also has two remote processor subsystems,
DSP and IPU. The IPU subsystem though has dual Cortex-M4
processors instead of the dual Cortex-M3 processors in OMAP4,
but otherwise has almost the same set of features. Add the
DT nodes for these two processor sub-systems for all OMAP5
SoCs.

The nodes have the 'iommus', 'clocks', 'resets', 'firmware' and
'mboxes' properties added, and are disabled for now. The IPU node
has its L2 RAM memory specified through the 'reg' and 'reg-names'
properties. The DSP node doesn't have these since it doesn't have
any L2 RAM memories, but has an additional 'ti,bootreg' property
instead as it has a specific boot register that needs to be
programmed for booting.

These nodes should be enabled as per the individual product
configuration in the corresponding board dts files.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5.dtsi | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index fb889c5b00c9..116150ded018 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -216,6 +216,29 @@ mmu_ipu: mmu@0 {
 			};
 		};
 
+		dsp: dsp {
+			compatible = "ti,omap5-dsp";
+			ti,bootreg = <&scm_conf 0x304 0>;
+			iommus = <&mmu_dsp>;
+			resets = <&prm_dsp 0>;
+			clocks = <&dsp_clkctrl OMAP5_MMU_DSP_CLKCTRL 0>;
+			firmware-name = "omap5-dsp-fw.xe64T";
+			mboxes = <&mailbox &mbox_dsp>;
+			status = "disabled";
+		};
+
+		ipu: ipu@55020000 {
+			compatible = "ti,omap5-ipu";
+			reg = <0x55020000 0x10000>;
+			reg-names = "l2ram";
+			iommus = <&mmu_ipu>;
+			resets = <&prm_core 0>, <&prm_core 1>;
+			clocks = <&ipu_clkctrl OMAP5_MMU_IPU_CLKCTRL 0>;
+			firmware-name = "omap5-ipu-fw.xem4";
+			mboxes = <&mailbox &mbox_ipu>;
+			status = "disabled";
+		};
+
 		dmm@4e000000 {
 			compatible = "ti,omap5-dmm";
 			reg = <0x4e000000 0x800>;
-- 
2.26.0


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

* [PATCH 09/13] ARM: dts: omap5: Add aliases for rproc nodes
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (7 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 08/13] ARM: dts: omap5: Add DSP and IPU nodes Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 10/13] ARM: dts: omap5-uevm: Add CMA pools and enable IPU & DSP Suman Anna
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

Add aliases for the DSP and IPU remoteproc processor
nodes common to all OMAP5 boards. The aliases uses
the stem "rproc", and are identical to the values
chosen on OMAP4 boards.

The aliases can be overridden, if needed, in the
respective board files.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 116150ded018..adffc48a6d55 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -31,6 +31,8 @@ aliases {
 		serial3 = &uart4;
 		serial4 = &uart5;
 		serial5 = &uart6;
+		rproc0 = &dsp;
+		rproc1 = &ipu;
 	};
 
 	cpus {
-- 
2.26.0


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

* [PATCH 10/13] ARM: dts: omap5-uevm: Add CMA pools and enable IPU & DSP
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (8 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 09/13] ARM: dts: omap5: Add aliases for rproc nodes Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 11/13] ARM: dts: omap5-uevm: Add system timers to DSP and IPU Suman Anna
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The CMA reserved memory nodes have been added for the IPU and DSP
remoteproc devices on the OMAP5 uEVM board. These nodes are assigned
to the respective rproc device nodes, and both the IPU and DSP remote
processors are enabled for this board.

The current CMA pools and sizes are defined statically for each device.
The starting addresses are fixed to meet current dependencies on the
remote processor firmwares, and will go away when the remote-side
code has been improved to gather this information runtime during
its initialization.

An associated pair of the rproc node and its CMA node can be disabled
later on if there is no use-case defined to use that remote processor.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5-uevm.dts | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 9441e9a572ad..251885656697 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -15,6 +15,26 @@ memory@80000000 {
 		reg = <0 0x80000000 0 0x7f000000>; /* 2032 MB */
 	};
 
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		dsp_memory_region: dsp-memory@95000000 {
+			compatible = "shared-dma-pool";
+			reg = <0 0x95000000 0 0x800000>;
+			reusable;
+			status = "okay";
+		};
+
+		ipu_memory_region: ipu-memory@95800000 {
+			compatible = "shared-dma-pool";
+			reg = <0 0x95800000 0 0x3800000>;
+			reusable;
+			status = "okay";
+		};
+	};
+
 	aliases {
 		ethernet = &ethernet;
 	};
@@ -198,3 +218,13 @@ ethernet: usbether@3 {
 &wlcore {
 	compatible = "ti,wl1837";
 };
+
+&dsp {
+	status = "okay";
+	memory-region = <&dsp_memory_region>;
+};
+
+&ipu {
+	status = "okay";
+	memory-region = <&ipu_memory_region>;
+};
-- 
2.26.0


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

* [PATCH 11/13] ARM: dts: omap5-uevm: Add system timers to DSP and IPU
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (9 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 10/13] ARM: dts: omap5-uevm: Add CMA pools and enable IPU & DSP Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 12/13] ARM: dts: omap4-panda-common: Add watchdog timers for IPU and DSP Suman Anna
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The BIOS System Tick timers have been added for the IPU and DSP
remoteproc devices for the OMAP5 uEVM boards. The following timers
(same as the timers on OMAP4 Panda boards) are chosen:
        IPU : GPT3 (SMP-mode)
        DSP : GPT5

IPU has two Cortex-M4 processors, and is currently expected to be
running in SMP-mode, so only a single timer suffices to provide
the BIOS tick timer. An additional timer should be added for the
second processor in IPU if it were to be run in non-SMP mode. The
timer value also needs to be unique from the ones used by other
processors so that they can be run simultaneously.

The timers are optional, but are mandatory to support device
management features such as power management and watchdog support.
The above are added to successfully boot and execute firmware images
configured with the respective timers, images that use internal
processor subsystem timers are not affected. The timers can be
changed or removed as per the system integration needs, alongside
equivalent changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5-uevm.dts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 251885656697..bb016419ef61 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -222,9 +222,11 @@ &wlcore {
 &dsp {
 	status = "okay";
 	memory-region = <&dsp_memory_region>;
+	ti,timers = <&timer5>;
 };
 
 &ipu {
 	status = "okay";
 	memory-region = <&ipu_memory_region>;
+	ti,timers = <&timer3>;
 };
-- 
2.26.0


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

* [PATCH 12/13] ARM: dts: omap4-panda-common: Add watchdog timers for IPU and DSP
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (10 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 11/13] ARM: dts: omap5-uevm: Add system timers to DSP and IPU Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-09 23:19 ` [PATCH 13/13] ARM: dts: omap5-uevm: " Suman Anna
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The watchdog timers have been added for the IPU and DSP remoteproc
devices on all the OMAP4-based Panda boards. The following timers
are used as the watchdog timers,
	DSP : GPT6
	IPU : GPT9 & GPT11 (one for each Cortex-M3 core)

The MPU-side drivers will use this data to initialize the watchdog
timers, and listen for any watchdog triggers. The BIOS-side code
needs to configure and refresh these timers properly to not throw
a watchdog error.

These timers can be changed or removed as per the system integration
needs, alongside appropriate equivalent changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap4-panda-common.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index db0b7e9264f9..a6a0c7b832dd 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -596,10 +596,12 @@ &dsp {
 	status = "okay";
 	memory-region = <&dsp_memory_region>;
 	ti,timers = <&timer5>;
+	ti,watchdog-timers = <&timer6>;
 };
 
 &ipu {
 	status = "okay";
 	memory-region = <&ipu_memory_region>;
 	ti,timers = <&timer3>;
+	ti,watchdog-timers = <&timer9>, <&timer11>;
 };
-- 
2.26.0


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

* [PATCH 13/13] ARM: dts: omap5-uevm: Add watchdog timers for IPU and DSP
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (11 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 12/13] ARM: dts: omap4-panda-common: Add watchdog timers for IPU and DSP Suman Anna
@ 2020-07-09 23:19 ` Suman Anna
  2020-07-10 16:58 ` [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Tony Lindgren
  2020-07-13 18:24 ` Tony Lindgren
  14 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-09 23:19 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo, Suman Anna

The watchdog timers have been added for the IPU and DSP remoteproc
devices for the OMAP5 uEVM board. The following timers (same as the
timers on OMAP4 Panda boards) are used as the watchdog timers,
        DSP : GPT6
        IPU : GPT9 & GPT11 (one for each Cortex-M4 core)

The MPU-side drivers will use this data to initialize the watchdog
timers, and listen for any watchdog triggers. The BIOS-side code
needs to configure and refresh these timers properly to not throw
a watchdog error.

These timers can be changed or removed as per the system integration
needs, alongside appropriate equivalent changes on the firmware side.

Signed-off-by: Suman Anna <s-anna@ti.com>
---
 arch/arm/boot/dts/omap5-uevm.dts | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index bb016419ef61..9b9e9ee51b5c 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -223,10 +223,12 @@ &dsp {
 	status = "okay";
 	memory-region = <&dsp_memory_region>;
 	ti,timers = <&timer5>;
+	ti,watchdog-timers = <&timer6>;
 };
 
 &ipu {
 	status = "okay";
 	memory-region = <&ipu_memory_region>;
 	ti,timers = <&timer3>;
+	ti,watchdog-timers = <&timer9>, <&timer11>;
 };
-- 
2.26.0


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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (12 preceding siblings ...)
  2020-07-09 23:19 ` [PATCH 13/13] ARM: dts: omap5-uevm: " Suman Anna
@ 2020-07-10 16:58 ` Tony Lindgren
  2020-07-10 17:17   ` Suman Anna
  2020-07-13 18:24 ` Tony Lindgren
  14 siblings, 1 reply; 30+ messages in thread
From: Tony Lindgren @ 2020-07-10 16:58 UTC (permalink / raw)
  To: Suman Anna; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

Hi,

* Suman Anna <s-anna@ti.com> [200709 16:20]:
> Hi Tony,
> 
> The following series contains all the necessary DT pieces to boot the
> IPU and DSP remote processors on OMAP4 and OMAP5 SoCs. They are
> enabled specifically on the TI OMAP4 PandaBoard and OMAP5 uEVM boards.
> This is the last DT piece that now completes the support for IPUs and
> DSPs on all OMAP4+ SoCs, similar patches were merged for 5.8 covering
> the DRA7xx/AM57xx SoCs. Appreciate it if you can pick up the series for
> 5.9 if it isn't too late.

Great and good to hear things are working with only dts changes now :)
Yes let's try to get these merged.

> There is one issue that I have run into while testing this series on
> the latest kernel. I am seeing a l3_noc error for OMAP4 DSP when it
> attempts to auto-suspend or stop after it is booted. The issue is a
> L4CFG read error that happens in the sysc_disable_module() function
> in ti-sysc code.
> 
> I do not have any issues on my downstream 5.4 based SDK kernel. I have
> root-caused this to the OMAP4 voltage controller patches you added for
> 5.5 kernel through your omap-for-v5.5/pm branch, specifically the
> commit 4873843718f9 ("ARM: OMAP2+: Initialize voltage controller for omap4").
> The VOLTCTRL register value is 0x300 before that patch, and modifying
> this register either through  omap4_vc_init_pmic_signaling() or
> omap4_vc_set_pmic_signaling() will trigger this. A debug print in
> sysc_disable_module() also seems to help.

Hmm interesting, not sure how the VOLTCTRL register affects this.

I wonder the following commit in v5.8-rc3 might help with this though:

5ce8aee81be6 ("bus: ti-sysc: Flush posted write on enable and disable")

I was seeing that occasionally with mcspi, but never had anything
reproducable.

Regards,

Tony

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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 16:58 ` [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Tony Lindgren
@ 2020-07-10 17:17   ` Suman Anna
  2020-07-10 17:28     ` Suman Anna
  2020-07-10 17:40     ` Tony Lindgren
  0 siblings, 2 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-10 17:17 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

On 7/10/20 11:58 AM, Tony Lindgren wrote:
> Hi,
> 
> * Suman Anna <s-anna@ti.com> [200709 16:20]:
>> Hi Tony,
>>
>> The following series contains all the necessary DT pieces to boot the
>> IPU and DSP remote processors on OMAP4 and OMAP5 SoCs. They are
>> enabled specifically on the TI OMAP4 PandaBoard and OMAP5 uEVM boards.
>> This is the last DT piece that now completes the support for IPUs and
>> DSPs on all OMAP4+ SoCs, similar patches were merged for 5.8 covering
>> the DRA7xx/AM57xx SoCs. Appreciate it if you can pick up the series for
>> 5.9 if it isn't too late.
> 
> Great and good to hear things are working with only dts changes now :)
> Yes let's try to get these merged.

Thanks.

> 
>> There is one issue that I have run into while testing this series on
>> the latest kernel. I am seeing a l3_noc error for OMAP4 DSP when it
>> attempts to auto-suspend or stop after it is booted. The issue is a
>> L4CFG read error that happens in the sysc_disable_module() function
>> in ti-sysc code.
>>
>> I do not have any issues on my downstream 5.4 based SDK kernel. I have
>> root-caused this to the OMAP4 voltage controller patches you added for
>> 5.5 kernel through your omap-for-v5.5/pm branch, specifically the
>> commit 4873843718f9 ("ARM: OMAP2+: Initialize voltage controller for omap4").
>> The VOLTCTRL register value is 0x300 before that patch, and modifying
>> this register either through  omap4_vc_init_pmic_signaling() or
>> omap4_vc_set_pmic_signaling() will trigger this. A debug print in
>> sysc_disable_module() also seems to help.
> 
> Hmm interesting, not sure how the VOLTCTRL register affects this.
> 
> I wonder the following commit in v5.8-rc3 might help with this though:
> 
> 5ce8aee81be6 ("bus: ti-sysc: Flush posted write on enable and disable")
> 

I had already tested on v5.8-rc4 when I posted the patches, so this 
patch doesn't help. OMAP5 DSP is fine, because Think it has to do with 
this automated

So, I am looking at the TRM, and the three 
VDD_{IVA,MPU,CORE}_I2C_DISABLE bits in VOLTCTRL are marked debug-purpose 
only, so I don't think we should be setting those to begin with. Any 
reason why you want to set those? Anyway, these bits were not an issue, 
I have specifically tried that already.

regards
Suman

> I was seeing that occasionally with mcspi, but never had anything
> reproducable.
> 
> Regards,
> 
> Tony
> 


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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 17:17   ` Suman Anna
@ 2020-07-10 17:28     ` Suman Anna
  2020-07-10 17:59       ` Tony Lindgren
  2020-07-10 17:40     ` Tony Lindgren
  1 sibling, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-07-10 17:28 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

On 7/10/20 12:17 PM, Suman Anna wrote:
> On 7/10/20 11:58 AM, Tony Lindgren wrote:
>> Hi,
>>
>> * Suman Anna <s-anna@ti.com> [200709 16:20]:
>>> Hi Tony,
>>>
>>> The following series contains all the necessary DT pieces to boot the
>>> IPU and DSP remote processors on OMAP4 and OMAP5 SoCs. They are
>>> enabled specifically on the TI OMAP4 PandaBoard and OMAP5 uEVM boards.
>>> This is the last DT piece that now completes the support for IPUs and
>>> DSPs on all OMAP4+ SoCs, similar patches were merged for 5.8 covering
>>> the DRA7xx/AM57xx SoCs. Appreciate it if you can pick up the series for
>>> 5.9 if it isn't too late.
>>
>> Great and good to hear things are working with only dts changes now :)
>> Yes let's try to get these merged.
> 
> Thanks.
> 
>>
>>> There is one issue that I have run into while testing this series on
>>> the latest kernel. I am seeing a l3_noc error for OMAP4 DSP when it
>>> attempts to auto-suspend or stop after it is booted. The issue is a
>>> L4CFG read error that happens in the sysc_disable_module() function
>>> in ti-sysc code.
>>>
>>> I do not have any issues on my downstream 5.4 based SDK kernel. I have
>>> root-caused this to the OMAP4 voltage controller patches you added for
>>> 5.5 kernel through your omap-for-v5.5/pm branch, specifically the
>>> commit 4873843718f9 ("ARM: OMAP2+: Initialize voltage controller for 
>>> omap4").
>>> The VOLTCTRL register value is 0x300 before that patch, and modifying
>>> this register either through  omap4_vc_init_pmic_signaling() or
>>> omap4_vc_set_pmic_signaling() will trigger this. A debug print in
>>> sysc_disable_module() also seems to help.
>>
>> Hmm interesting, not sure how the VOLTCTRL register affects this.
>>
>> I wonder the following commit in v5.8-rc3 might help with this though:
>>
>> 5ce8aee81be6 ("bus: ti-sysc: Flush posted write on enable and disable")
>>
> 
> I had already tested on v5.8-rc4 when I posted the patches, so this 
> patch doesn't help. OMAP5 DSP is fine, because Think it has to do with 
> this automated
> 
> So, I am looking at the TRM, and the three 
> VDD_{IVA,MPU,CORE}_I2C_DISABLE bits in VOLTCTRL are marked debug-purpose 
> only, so I don't think we should be setting those to begin with. Any 
> reason why you want to set those? Anyway, these bits were not an issue, 
> I have specifically tried that already.

FYI, the following one-line removal is enough for me to not see the error.

diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
index 86f1ac4c2412..b80c9dff81c4 100644
--- a/arch/arm/mach-omap2/vc.c
+++ b/arch/arm/mach-omap2/vc.c
@@ -44,7 +44,6 @@
  #define OMAP4_VDD_DEFAULT_VAL  \
         (OMAP4430_VDD_I2C_DISABLE_MASK | \
          OMAP4430_VDD_IVA_PRESENCE | OMAP4430_VDD_MPU_PRESENCE | \
-        OMAP4430_AUTO_CTRL_VDD_IVA(OMAP4430_AUTO_CTRL_VDD_RET) | \
          OMAP4430_AUTO_CTRL_VDD_MPU(OMAP4430_AUTO_CTRL_VDD_RET) | \
          OMAP4430_AUTO_CTRL_VDD_CORE(OMAP4430_AUTO_CTRL_VDD_RET))

regards
Suman

> 
>> I was seeing that occasionally with mcspi, but never had anything
>> reproducable.
>>
>> Regards,
>>
>> Tony
>>
> 


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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 17:17   ` Suman Anna
  2020-07-10 17:28     ` Suman Anna
@ 2020-07-10 17:40     ` Tony Lindgren
  2020-07-10 18:24       ` Suman Anna
  1 sibling, 1 reply; 30+ messages in thread
From: Tony Lindgren @ 2020-07-10 17:40 UTC (permalink / raw)
  To: Suman Anna; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

* Suman Anna <s-anna@ti.com> [200710 17:18]:
> On 7/10/20 11:58 AM, Tony Lindgren wrote:
> > I wonder the following commit in v5.8-rc3 might help with this though:
> > 
> > 5ce8aee81be6 ("bus: ti-sysc: Flush posted write on enable and disable")
> > 
> 
> I had already tested on v5.8-rc4 when I posted the patches, so this patch
> doesn't help. OMAP5 DSP is fine, because Think it has to do with this
> automated

OK

> So, I am looking at the TRM, and the three VDD_{IVA,MPU,CORE}_I2C_DISABLE
> bits in VOLTCTRL are marked debug-purpose only, so I don't think we should
> be setting those to begin with. Any reason why you want to set those?
> Anyway, these bits were not an issue, I have specifically tried that
> already.

I'm pretty sure that's how the old TI PM branch was initializing them to
disable voltctrl I2C use on init. But if these are not the issue I guess
no need to mess with them.

Could it be that we have wrong voltage tables for 4460 in the mainline
kernel? See earlier commit 32236a84906f ("ARM: OMAP2+: Update 4430
voltage controller operating points").

Regards,

Tony

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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 17:28     ` Suman Anna
@ 2020-07-10 17:59       ` Tony Lindgren
  2020-07-10 18:29         ` Suman Anna
  0 siblings, 1 reply; 30+ messages in thread
From: Tony Lindgren @ 2020-07-10 17:59 UTC (permalink / raw)
  To: Suman Anna; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

* Suman Anna <s-anna@ti.com> [200710 17:29]:
> FYI, the following one-line removal is enough for me to not see the error.
> 
> diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> index 86f1ac4c2412..b80c9dff81c4 100644
> --- a/arch/arm/mach-omap2/vc.c
> +++ b/arch/arm/mach-omap2/vc.c
> @@ -44,7 +44,6 @@
>  #define OMAP4_VDD_DEFAULT_VAL  \
>         (OMAP4430_VDD_I2C_DISABLE_MASK | \
>          OMAP4430_VDD_IVA_PRESENCE | OMAP4430_VDD_MPU_PRESENCE | \
> -        OMAP4430_AUTO_CTRL_VDD_IVA(OMAP4430_AUTO_CTRL_VDD_RET) | \
>          OMAP4430_AUTO_CTRL_VDD_MPU(OMAP4430_AUTO_CTRL_VDD_RET) | \
>          OMAP4430_AUTO_CTRL_VDD_CORE(OMAP4430_AUTO_CTRL_VDD_RET))
> 

OK.

Below is an untested attempt to sync the 4460 opp values with
what earlier TI kernels had. Not sure if this help, might be worth
testing :) My pandaboard-es seems to have a corrupt sdio card.

Regards,

Tony

8< ---------------------
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c
--- a/arch/arm/mach-omap2/opp4xxx_data.c
+++ b/arch/arm/mach-omap2/opp4xxx_data.c
@@ -66,21 +66,23 @@ struct omap_volt_data omap443x_vdd_core_volt_data[] = {
 };
 
 #define OMAP4460_VDD_MPU_OPP50_UV		1025000
-#define OMAP4460_VDD_MPU_OPP100_UV		1200000
-#define OMAP4460_VDD_MPU_OPPTURBO_UV		1313000
-#define OMAP4460_VDD_MPU_OPPNITRO_UV		1375000
+#define OMAP4460_VDD_MPU_OPP100_UV		1203000
+#define OMAP4460_VDD_MPU_OPPTURBO_UV		1317000
+#define OMAP4460_VDD_MPU_OPPNITRO_UV		1380000
+#define OMAP4460_VDD_MPU_OPPNITROSB_UV		1390000
 
 struct omap_volt_data omap446x_vdd_mpu_volt_data[] = {
 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
 	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
+	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITROSB_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27),
 	VOLT_DATA_DEFINE(0, 0, 0, 0),
 };
 
-#define OMAP4460_VDD_IVA_OPP50_UV		1025000
-#define OMAP4460_VDD_IVA_OPP100_UV		1200000
-#define OMAP4460_VDD_IVA_OPPTURBO_UV		1313000
+#define OMAP4460_VDD_IVA_OPP50_UV		 950000
+#define OMAP4460_VDD_IVA_OPP100_UV		1140000
+#define OMAP4460_VDD_IVA_OPPTURBO_UV		1291000
 #define OMAP4460_VDD_IVA_OPPNITRO_UV		1375000
 
 struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
@@ -91,8 +93,8 @@ struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
 	VOLT_DATA_DEFINE(0, 0, 0, 0),
 };
 
-#define OMAP4460_VDD_CORE_OPP50_UV		1025000
-#define OMAP4460_VDD_CORE_OPP100_UV		1200000
+#define OMAP4460_VDD_CORE_OPP50_UV		 962000
+#define OMAP4460_VDD_CORE_OPP100_UV		1127000
 #define OMAP4460_VDD_CORE_OPP100_OV_UV		1250000
 
 struct omap_volt_data omap446x_vdd_core_volt_data[] = {
-- 
2.27.0

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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 17:40     ` Tony Lindgren
@ 2020-07-10 18:24       ` Suman Anna
  0 siblings, 0 replies; 30+ messages in thread
From: Suman Anna @ 2020-07-10 18:24 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

On 7/10/20 12:40 PM, Tony Lindgren wrote:
> * Suman Anna <s-anna@ti.com> [200710 17:18]:
>> On 7/10/20 11:58 AM, Tony Lindgren wrote:
>>> I wonder the following commit in v5.8-rc3 might help with this though:
>>>
>>> 5ce8aee81be6 ("bus: ti-sysc: Flush posted write on enable and disable")
>>>
>>
>> I had already tested on v5.8-rc4 when I posted the patches, so this patch
>> doesn't help. OMAP5 DSP is fine, because Think it has to do with this
>> automated
> 
> OK
> 
>> So, I am looking at the TRM, and the three VDD_{IVA,MPU,CORE}_I2C_DISABLE
>> bits in VOLTCTRL are marked debug-purpose only, so I don't think we should
>> be setting those to begin with. Any reason why you want to set those?
>> Anyway, these bits were not an issue, I have specifically tried that
>> already.
> 
> I'm pretty sure that's how the old TI PM branch was initializing them to
> disable voltctrl I2C use on init. But if these are not the issue I guess
> no need to mess with them.

OK.

> 
> Could it be that we have wrong voltage tables for 4460 in the mainline
> kernel? See earlier commit 32236a84906f ("ARM: OMAP2+: Update 4430
> voltage controller operating points").

I am running on Pandaboard, so it's a OMAP4430 ES2.2. Tried with the 
older values reverting the above commit, didn't make any difference. So, 
the only trigger point so far seems to be the automatic IVA voltage 
domain transition. Looks to be a timing related issue given that a debug 
trace also helped, wondering if it goes through a quick RET->ON->RET 
sequence from the time I disable the MMUs (child device) to the actual 
module disabling in sysc_module_disable() on the parent target-module 
device.

regards
Suman

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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 17:59       ` Tony Lindgren
@ 2020-07-10 18:29         ` Suman Anna
  2020-07-10 20:45           ` Suman Anna
  0 siblings, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-07-10 18:29 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

On 7/10/20 12:59 PM, Tony Lindgren wrote:
> * Suman Anna <s-anna@ti.com> [200710 17:29]:
>> FYI, the following one-line removal is enough for me to not see the error.
>>
>> diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
>> index 86f1ac4c2412..b80c9dff81c4 100644
>> --- a/arch/arm/mach-omap2/vc.c
>> +++ b/arch/arm/mach-omap2/vc.c
>> @@ -44,7 +44,6 @@
>>   #define OMAP4_VDD_DEFAULT_VAL  \
>>          (OMAP4430_VDD_I2C_DISABLE_MASK | \
>>           OMAP4430_VDD_IVA_PRESENCE | OMAP4430_VDD_MPU_PRESENCE | \
>> -        OMAP4430_AUTO_CTRL_VDD_IVA(OMAP4430_AUTO_CTRL_VDD_RET) | \
>>           OMAP4430_AUTO_CTRL_VDD_MPU(OMAP4430_AUTO_CTRL_VDD_RET) | \
>>           OMAP4430_AUTO_CTRL_VDD_CORE(OMAP4430_AUTO_CTRL_VDD_RET))
>>
> 
> OK.
> 
> Below is an untested attempt to sync the 4460 opp values with
> what earlier TI kernels had. Not sure if this help, might be worth
> testing :) My pandaboard-es seems to have a corrupt sdio card.

Yeah, mine is the regular pandaboard with 4430, so the below patch will 
not make any difference.

regards
Suman

> 
> Regards,
> 
> Tony
> 
> 8< ---------------------
> diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c
> --- a/arch/arm/mach-omap2/opp4xxx_data.c
> +++ b/arch/arm/mach-omap2/opp4xxx_data.c
> @@ -66,21 +66,23 @@ struct omap_volt_data omap443x_vdd_core_volt_data[] = {
>   };
>   
>   #define OMAP4460_VDD_MPU_OPP50_UV		1025000
> -#define OMAP4460_VDD_MPU_OPP100_UV		1200000
> -#define OMAP4460_VDD_MPU_OPPTURBO_UV		1313000
> -#define OMAP4460_VDD_MPU_OPPNITRO_UV		1375000
> +#define OMAP4460_VDD_MPU_OPP100_UV		1203000
> +#define OMAP4460_VDD_MPU_OPPTURBO_UV		1317000
> +#define OMAP4460_VDD_MPU_OPPNITRO_UV		1380000
> +#define OMAP4460_VDD_MPU_OPPNITROSB_UV		1390000
>   
>   struct omap_volt_data omap446x_vdd_mpu_volt_data[] = {
>   	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
>   	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
>   	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
>   	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
> +	VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITROSB_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27),
>   	VOLT_DATA_DEFINE(0, 0, 0, 0),
>   };
>   
> -#define OMAP4460_VDD_IVA_OPP50_UV		1025000
> -#define OMAP4460_VDD_IVA_OPP100_UV		1200000
> -#define OMAP4460_VDD_IVA_OPPTURBO_UV		1313000
> +#define OMAP4460_VDD_IVA_OPP50_UV		 950000
> +#define OMAP4460_VDD_IVA_OPP100_UV		1140000
> +#define OMAP4460_VDD_IVA_OPPTURBO_UV		1291000
>   #define OMAP4460_VDD_IVA_OPPNITRO_UV		1375000
>   
>   struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
> @@ -91,8 +93,8 @@ struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
>   	VOLT_DATA_DEFINE(0, 0, 0, 0),
>   };
>   
> -#define OMAP4460_VDD_CORE_OPP50_UV		1025000
> -#define OMAP4460_VDD_CORE_OPP100_UV		1200000
> +#define OMAP4460_VDD_CORE_OPP50_UV		 962000
> +#define OMAP4460_VDD_CORE_OPP100_UV		1127000
>   #define OMAP4460_VDD_CORE_OPP100_OV_UV		1250000
>   
>   struct omap_volt_data omap446x_vdd_core_volt_data[] = {
> 


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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 18:29         ` Suman Anna
@ 2020-07-10 20:45           ` Suman Anna
  2020-07-10 22:08             ` Tony Lindgren
  0 siblings, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-07-10 20:45 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

On 7/10/20 1:29 PM, Suman Anna wrote:
> On 7/10/20 12:59 PM, Tony Lindgren wrote:
>> * Suman Anna <s-anna@ti.com> [200710 17:29]:
>>> FYI, the following one-line removal is enough for me to not see the 
>>> error.
>>>
>>> diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
>>> index 86f1ac4c2412..b80c9dff81c4 100644
>>> --- a/arch/arm/mach-omap2/vc.c
>>> +++ b/arch/arm/mach-omap2/vc.c
>>> @@ -44,7 +44,6 @@
>>>   #define OMAP4_VDD_DEFAULT_VAL  \
>>>          (OMAP4430_VDD_I2C_DISABLE_MASK | \
>>>           OMAP4430_VDD_IVA_PRESENCE | OMAP4430_VDD_MPU_PRESENCE | \
>>> -        OMAP4430_AUTO_CTRL_VDD_IVA(OMAP4430_AUTO_CTRL_VDD_RET) | \
>>>           OMAP4430_AUTO_CTRL_VDD_MPU(OMAP4430_AUTO_CTRL_VDD_RET) | \
>>>           OMAP4430_AUTO_CTRL_VDD_CORE(OMAP4430_AUTO_CTRL_VDD_RET))
>>>
>>
>> OK.
>>
>> Below is an untested attempt to sync the 4460 opp values with
>> what earlier TI kernels had. Not sure if this help, might be worth
>> testing :) My pandaboard-es seems to have a corrupt sdio card.
> 
> Yeah, mine is the regular pandaboard with 4430, so the below patch will 
> not make any difference.
> 
> regards
> Suman
> 
>>
>> Regards,
>>
>> Tony
>>
>> 8< ---------------------
>> diff --git a/arch/arm/mach-omap2/opp4xxx_data.c 
>> b/arch/arm/mach-omap2/opp4xxx_data.c
>> --- a/arch/arm/mach-omap2/opp4xxx_data.c
>> +++ b/arch/arm/mach-omap2/opp4xxx_data.c
>> @@ -66,21 +66,23 @@ struct omap_volt_data 
>> omap443x_vdd_core_volt_data[] = {
>>   };
>>   #define OMAP4460_VDD_MPU_OPP50_UV        1025000
>> -#define OMAP4460_VDD_MPU_OPP100_UV        1200000
>> -#define OMAP4460_VDD_MPU_OPPTURBO_UV        1313000
>> -#define OMAP4460_VDD_MPU_OPPNITRO_UV        1375000
>> +#define OMAP4460_VDD_MPU_OPP100_UV        1203000
>> +#define OMAP4460_VDD_MPU_OPPTURBO_UV        1317000
>> +#define OMAP4460_VDD_MPU_OPPNITRO_UV        1380000
>> +#define OMAP4460_VDD_MPU_OPPNITROSB_UV        1390000

I am not sure about this, I see it as 1380 for both OPPNITRO and OPPNITROSB.

>>   struct omap_volt_data omap446x_vdd_mpu_volt_data[] = {
>>       VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, 
>> OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c),
>>       VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, 
>> OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16),
>>       VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, 
>> OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23),
>>       VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, 
>> OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27),
>> +    VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITROSB_UV, 
>> OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27),
>>       VOLT_DATA_DEFINE(0, 0, 0, 0),
>>   };
>> -#define OMAP4460_VDD_IVA_OPP50_UV        1025000
>> -#define OMAP4460_VDD_IVA_OPP100_UV        1200000
>> -#define OMAP4460_VDD_IVA_OPPTURBO_UV        1313000
>> +#define OMAP4460_VDD_IVA_OPP50_UV         950000
>> +#define OMAP4460_VDD_IVA_OPP100_UV        1140000

Btw, this should be 1114000

>> +#define OMAP4460_VDD_IVA_OPPTURBO_UV        1291000
>>   #define OMAP4460_VDD_IVA_OPPNITRO_UV        1375000
>>   struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
>> @@ -91,8 +93,8 @@ struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
>>       VOLT_DATA_DEFINE(0, 0, 0, 0),
>>   };
>> -#define OMAP4460_VDD_CORE_OPP50_UV        1025000
>> -#define OMAP4460_VDD_CORE_OPP100_UV        1200000
>> +#define OMAP4460_VDD_CORE_OPP50_UV         962000
>> +#define OMAP4460_VDD_CORE_OPP100_UV        1127000
>>   #define OMAP4460_VDD_CORE_OPP100_OV_UV        1250000
>>   struct omap_volt_data omap446x_vdd_core_volt_data[] = {
>>
> 

Atleast this update and the previous OMAP4430 patch matches up to what I 
can see from the Data Manual. So, guess you can add an official version 
of this patch.

regards
Suman


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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-10 20:45           ` Suman Anna
@ 2020-07-10 22:08             ` Tony Lindgren
  0 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2020-07-10 22:08 UTC (permalink / raw)
  To: Suman Anna; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

* Suman Anna <s-anna@ti.com> [200710 20:46]:
> On 7/10/20 1:29 PM, Suman Anna wrote:
> > On 7/10/20 12:59 PM, Tony Lindgren wrote:
> > > +#define OMAP4460_VDD_MPU_OPPNITROSB_UV        1390000
> 
> I am not sure about this, I see it as 1380 for both OPPNITRO and OPPNITROSB.

OK I'll drop that one.

> > > +#define OMAP4460_VDD_IVA_OPP100_UV        1140000
> 
> Btw, this should be 1114000

OK thanks for catching it.

> > > +#define OMAP4460_VDD_IVA_OPPTURBO_UV        1291000
> > >   #define OMAP4460_VDD_IVA_OPPNITRO_UV        1375000
> > >   struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
> > > @@ -91,8 +93,8 @@ struct omap_volt_data omap446x_vdd_iva_volt_data[] = {
> > >       VOLT_DATA_DEFINE(0, 0, 0, 0),
> > >   };
> > > -#define OMAP4460_VDD_CORE_OPP50_UV        1025000
> > > -#define OMAP4460_VDD_CORE_OPP100_UV        1200000
> > > +#define OMAP4460_VDD_CORE_OPP50_UV         962000
> > > +#define OMAP4460_VDD_CORE_OPP100_UV        1127000
> > >   #define OMAP4460_VDD_CORE_OPP100_OV_UV        1250000
> > >   struct omap_volt_data omap446x_vdd_core_volt_data[] = {
> > > 
> > 
> 
> Atleast this update and the previous OMAP4430 patch matches up to what I can
> see from the Data Manual. So, guess you can add an official version of this
> patch.

OK thanks for checking. I'll post an updated patch with a proper
description.

Regards,

Tony

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

* Re: [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5
  2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
                   ` (13 preceding siblings ...)
  2020-07-10 16:58 ` [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Tony Lindgren
@ 2020-07-13 18:24 ` Tony Lindgren
  14 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2020-07-13 18:24 UTC (permalink / raw)
  To: Suman Anna; +Cc: linux-omap, devicetree, linux-arm-kernel, Tero Kristo

* Suman Anna <s-anna@ti.com> [200709 16:20]:
> Hi Tony,
> 
> The following series contains all the necessary DT pieces to boot the
> IPU and DSP remote processors on OMAP4 and OMAP5 SoCs. They are
> enabled specifically on the TI OMAP4 PandaBoard and OMAP5 uEVM boards.
> This is the last DT piece that now completes the support for IPUs and
> DSPs on all OMAP4+ SoCs, similar patches were merged for 5.8 covering
> the DRA7xx/AM57xx SoCs. Appreciate it if you can pick up the series for
> 5.9 if it isn't too late.

Applying the series into omap-for-v5.9/dt thanks.

Regards,

Tony

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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-07-09 23:19 ` [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP Suman Anna
@ 2020-08-12  5:31   ` Guillaume Tucker
  2020-08-14 14:32     ` Guillaume Tucker
  0 siblings, 1 reply; 30+ messages in thread
From: Guillaume Tucker @ 2020-08-12  5:31 UTC (permalink / raw)
  To: Suman Anna, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel, kernelci-results

On 10/07/2020 00:19, Suman Anna wrote:
> The CMA reserved memory nodes have been added for the IPU and DSP
> remoteproc devices on all the OMAP4-based Panda boards. These nodes
> are assigned to the respective rproc device nodes, and both the
> IPU and DSP remote processors are enabled for all these boards.
> 
> The current CMA pools and sizes are defined statically for each device.
> The starting addresses are fixed to meet current dependencies on the
> remote processor firmwares, and will go away when the remote-side
> code has been improved to gather this information runtime during
> its initialization.
> 
> An associated pair of the rproc node and its CMA node can be disabled
> later on if there is no use-case defined to use that remote processor.
> 
> Signed-off-by: Suman Anna <s-anna@ti.com>
> ---
>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
> index 55ea8b6189af..ef79028fc95f 100644
> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
> @@ -12,6 +12,26 @@ memory@80000000 {
>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>  	};
>  
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		dsp_memory_region: dsp-memory@98000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x98000000 0x800000>;
> +			reusable;
> +			status = "okay";
> +		};
> +
> +		ipu_memory_region: ipu-memory@98800000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x98800000 0x7000000>;
> +			reusable;
> +			status = "okay";
> +		};
> +	};
> +
>  	chosen {
>  		stdout-path = &uart3;
>  	};
> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>  		};
>  	};
>  };
> +
> +&dsp {
> +	status = "okay";
> +	memory-region = <&dsp_memory_region>;
> +};
> +
> +&ipu {
> +	status = "okay";
> +	memory-region = <&ipu_memory_region>;
> +};
> 

This appears to be causing some BUG alert messages:

  BUG: Bad page state in process swapper/0  pfn:9c801

as reported on kernelci.org:

  https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/

I've run a bisection and it landed on this commit.  If you fix it
with another patch, please add:

  Reported-by: "kernelci.org bot" <bot@kernelci.org>

Hope this helps!

Thanks,
Guillaume


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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-08-12  5:31   ` Guillaume Tucker
@ 2020-08-14 14:32     ` Guillaume Tucker
  2020-08-14 15:26       ` Suman Anna
  0 siblings, 1 reply; 30+ messages in thread
From: Guillaume Tucker @ 2020-08-14 14:32 UTC (permalink / raw)
  To: Suman Anna, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel, kernelci-results

On 12/08/2020 06:31, Guillaume Tucker wrote:
> On 10/07/2020 00:19, Suman Anna wrote:
>> The CMA reserved memory nodes have been added for the IPU and DSP
>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>> are assigned to the respective rproc device nodes, and both the
>> IPU and DSP remote processors are enabled for all these boards.
>>
>> The current CMA pools and sizes are defined statically for each device.
>> The starting addresses are fixed to meet current dependencies on the
>> remote processor firmwares, and will go away when the remote-side
>> code has been improved to gather this information runtime during
>> its initialization.
>>
>> An associated pair of the rproc node and its CMA node can be disabled
>> later on if there is no use-case defined to use that remote processor.
>>
>> Signed-off-by: Suman Anna <s-anna@ti.com>
>> ---
>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>  1 file changed, 30 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>> index 55ea8b6189af..ef79028fc95f 100644
>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>> @@ -12,6 +12,26 @@ memory@80000000 {
>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>  	};
>>  
>> +	reserved-memory {
>> +		#address-cells = <1>;
>> +		#size-cells = <1>;
>> +		ranges;
>> +
>> +		dsp_memory_region: dsp-memory@98000000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0x98000000 0x800000>;
>> +			reusable;
>> +			status = "okay";
>> +		};
>> +
>> +		ipu_memory_region: ipu-memory@98800000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0x98800000 0x7000000>;
>> +			reusable;
>> +			status = "okay";
>> +		};
>> +	};
>> +
>>  	chosen {
>>  		stdout-path = &uart3;
>>  	};
>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>  		};
>>  	};
>>  };
>> +
>> +&dsp {
>> +	status = "okay";
>> +	memory-region = <&dsp_memory_region>;
>> +};
>> +
>> +&ipu {
>> +	status = "okay";
>> +	memory-region = <&ipu_memory_region>;
>> +};
>>
> 
> This appears to be causing some BUG alert messages:
> 
>   BUG: Bad page state in process swapper/0  pfn:9c801
> 
> as reported on kernelci.org:
> 
>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
> 
> I've run a bisection and it landed on this commit.  If you fix it
> with another patch, please add:
> 
>   Reported-by: "kernelci.org bot" <bot@kernelci.org>


This was bisected again automatically on mainline, see the report
below.  Is anyone available to take a look, or could the patch be
reverted?

Thanks,
Guillaume

On 14/08/2020 15:22, KernelCI bot wrote:
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * This automated bisection report was sent to you on the basis  *
> * that you may be involved with the breaking commit it has      *
> * found.  No manual investigation has been done to verify it,   *
> * and the root cause of the problem may be somewhere else.      *
> *                                                               *
> * If you do send a fix, please include this trailer:            *
> *   Reported-by: "kernelci.org bot" <bot@kernelci.org>          *
> *                                                               *
> * Hope this helps!                                              *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> 
> mainline/master bisection: baseline.dmesg.alert on panda
> 
> Summary:
>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
> 
> Checks:
>   revert:     PASS
>   verify:     PASS
> 
> Parameters:
>   Tree:       mainline
>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>   Branch:     master
>   Target:     panda
>   CPU arch:   arm
>   Lab:        lab-collabora
>   Compiler:   gcc-8
>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>   Test case:  baseline.dmesg.alert
> 
> Breaking commit found:
> 
> -------------------------------------------------------------------------------
> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
> Author: Suman Anna <s-anna@ti.com>
> Date:   Thu Jul 9 18:19:47 2020 -0500
> 
>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>     
>     The CMA reserved memory nodes have been added for the IPU and DSP
>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>     are assigned to the respective rproc device nodes, and both the
>     IPU and DSP remote processors are enabled for all these boards.
>     
>     The current CMA pools and sizes are defined statically for each device.
>     The starting addresses are fixed to meet current dependencies on the
>     remote processor firmwares, and will go away when the remote-side
>     code has been improved to gather this information runtime during
>     its initialization.
>     
>     An associated pair of the rproc node and its CMA node can be disabled
>     later on if there is no use-case defined to use that remote processor.
>     
>     Signed-off-by: Suman Anna <s-anna@ti.com>
>     Signed-off-by: Tony Lindgren <tony@atomide.com>
> 
> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
> index 55ea8b6189af..ef79028fc95f 100644
> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
> @@ -12,6 +12,26 @@
>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>  	};
>  
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		dsp_memory_region: dsp-memory@98000000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x98000000 0x800000>;
> +			reusable;
> +			status = "okay";
> +		};
> +
> +		ipu_memory_region: ipu-memory@98800000 {
> +			compatible = "shared-dma-pool";
> +			reg = <0x98800000 0x7000000>;
> +			reusable;
> +			status = "okay";
> +		};
> +	};
> +
>  	chosen {
>  		stdout-path = &uart3;
>  	};
> @@ -571,3 +591,13 @@
>  		};
>  	};
>  };
> +
> +&dsp {
> +	status = "okay";
> +	memory-region = <&dsp_memory_region>;
> +};
> +
> +&ipu {
> +	status = "okay";
> +	memory-region = <&ipu_memory_region>;
> +};
> -------------------------------------------------------------------------------
> 
> 
> Git bisection log:
> 
> -------------------------------------------------------------------------------
> git bisect start
> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
> -------------------------------------------------------------------------------



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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-08-14 14:32     ` Guillaume Tucker
@ 2020-08-14 15:26       ` Suman Anna
  2020-08-14 16:33         ` Guillaume Tucker
  0 siblings, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-08-14 15:26 UTC (permalink / raw)
  To: Guillaume Tucker, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel, kernelci-results

On 8/14/20 9:32 AM, Guillaume Tucker wrote:
> On 12/08/2020 06:31, Guillaume Tucker wrote:
>> On 10/07/2020 00:19, Suman Anna wrote:
>>> The CMA reserved memory nodes have been added for the IPU and DSP
>>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>> are assigned to the respective rproc device nodes, and both the
>>> IPU and DSP remote processors are enabled for all these boards.
>>>
>>> The current CMA pools and sizes are defined statically for each device.
>>> The starting addresses are fixed to meet current dependencies on the
>>> remote processor firmwares, and will go away when the remote-side
>>> code has been improved to gather this information runtime during
>>> its initialization.
>>>
>>> An associated pair of the rproc node and its CMA node can be disabled
>>> later on if there is no use-case defined to use that remote processor.
>>>
>>> Signed-off-by: Suman Anna <s-anna@ti.com>
>>> ---
>>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>>  1 file changed, 30 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> index 55ea8b6189af..ef79028fc95f 100644
>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> @@ -12,6 +12,26 @@ memory@80000000 {
>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>  	};
>>>  
>>> +	reserved-memory {
>>> +		#address-cells = <1>;
>>> +		#size-cells = <1>;
>>> +		ranges;
>>> +
>>> +		dsp_memory_region: dsp-memory@98000000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98000000 0x800000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +
>>> +		ipu_memory_region: ipu-memory@98800000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98800000 0x7000000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +	};
>>> +
>>>  	chosen {
>>>  		stdout-path = &uart3;
>>>  	};
>>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>>  		};
>>>  	};
>>>  };
>>> +
>>> +&dsp {
>>> +	status = "okay";
>>> +	memory-region = <&dsp_memory_region>;
>>> +};
>>> +
>>> +&ipu {
>>> +	status = "okay";
>>> +	memory-region = <&ipu_memory_region>;
>>> +};
>>>
>>
>> This appears to be causing some BUG alert messages:
>>
>>   BUG: Bad page state in process swapper/0  pfn:9c801
>>
>> as reported on kernelci.org:
>>
>>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
>>
>> I've run a bisection and it landed on this commit.  If you fix it
>> with another patch, please add:
>>
>>   Reported-by: "kernelci.org bot" <bot@kernelci.org>
> 
> 
> This was bisected again automatically on mainline, see the report
> below.  Is anyone available to take a look, or could the patch be
> reverted?

Thanks Guillaume for the report. I will take a look at this today. It is strange
that the bisect is pointing to this commit as reserving a CMA pool and assigning
it to a device should be fairly normal usage. Is the issue seen only on OMAP4
Pandaboard and not any of the other OMAP5 uEVM or DRA7xx/AM57xx EVMS?

regards
Suman



> 
> Thanks,
> Guillaume
> 
> On 14/08/2020 15:22, KernelCI bot wrote:
>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> * This automated bisection report was sent to you on the basis  *
>> * that you may be involved with the breaking commit it has      *
>> * found.  No manual investigation has been done to verify it,   *
>> * and the root cause of the problem may be somewhere else.      *
>> *                                                               *
>> * If you do send a fix, please include this trailer:            *
>> *   Reported-by: "kernelci.org bot" <bot@kernelci.org>          *
>> *                                                               *
>> * Hope this helps!                                              *
>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>
>> mainline/master bisection: baseline.dmesg.alert on panda
>>
>> Summary:
>>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>
>> Checks:
>>   revert:     PASS
>>   verify:     PASS
>>
>> Parameters:
>>   Tree:       mainline
>>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>   Branch:     master
>>   Target:     panda
>>   CPU arch:   arm
>>   Lab:        lab-collabora
>>   Compiler:   gcc-8
>>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>>   Test case:  baseline.dmesg.alert
>>
>> Breaking commit found:
>>
>> -------------------------------------------------------------------------------
>> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>> Author: Suman Anna <s-anna@ti.com>
>> Date:   Thu Jul 9 18:19:47 2020 -0500
>>
>>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>     
>>     The CMA reserved memory nodes have been added for the IPU and DSP
>>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>     are assigned to the respective rproc device nodes, and both the
>>     IPU and DSP remote processors are enabled for all these boards.
>>     
>>     The current CMA pools and sizes are defined statically for each device.
>>     The starting addresses are fixed to meet current dependencies on the
>>     remote processor firmwares, and will go away when the remote-side
>>     code has been improved to gather this information runtime during
>>     its initialization.
>>     
>>     An associated pair of the rproc node and its CMA node can be disabled
>>     later on if there is no use-case defined to use that remote processor.
>>     
>>     Signed-off-by: Suman Anna <s-anna@ti.com>
>>     Signed-off-by: Tony Lindgren <tony@atomide.com>
>>
>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>> index 55ea8b6189af..ef79028fc95f 100644
>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>> @@ -12,6 +12,26 @@
>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>  	};
>>  
>> +	reserved-memory {
>> +		#address-cells = <1>;
>> +		#size-cells = <1>;
>> +		ranges;
>> +
>> +		dsp_memory_region: dsp-memory@98000000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0x98000000 0x800000>;
>> +			reusable;
>> +			status = "okay";
>> +		};
>> +
>> +		ipu_memory_region: ipu-memory@98800000 {
>> +			compatible = "shared-dma-pool";
>> +			reg = <0x98800000 0x7000000>;
>> +			reusable;
>> +			status = "okay";
>> +		};
>> +	};
>> +
>>  	chosen {
>>  		stdout-path = &uart3;
>>  	};
>> @@ -571,3 +591,13 @@
>>  		};
>>  	};
>>  };
>> +
>> +&dsp {
>> +	status = "okay";
>> +	memory-region = <&dsp_memory_region>;
>> +};
>> +
>> +&ipu {
>> +	status = "okay";
>> +	memory-region = <&ipu_memory_region>;
>> +};
>> -------------------------------------------------------------------------------
>>
>>
>> Git bisection log:
>>
>> -------------------------------------------------------------------------------
>> git bisect start
>> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
>> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
>> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
>> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
>> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
>> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
>> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
>> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
>> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
>> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
>> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
>> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
>> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
>> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
>> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
>> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
>> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
>> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
>> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
>> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
>> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
>> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
>> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
>> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
>> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
>> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
>> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
>> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>> -------------------------------------------------------------------------------
> 
> 


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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-08-14 15:26       ` Suman Anna
@ 2020-08-14 16:33         ` Guillaume Tucker
  2020-08-14 19:33           ` Suman Anna
  0 siblings, 1 reply; 30+ messages in thread
From: Guillaume Tucker @ 2020-08-14 16:33 UTC (permalink / raw)
  To: Suman Anna, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel, kernelci-results

On 14/08/2020 16:26, Suman Anna wrote:
> On 8/14/20 9:32 AM, Guillaume Tucker wrote:
>> On 12/08/2020 06:31, Guillaume Tucker wrote:
>>> On 10/07/2020 00:19, Suman Anna wrote:
>>>> The CMA reserved memory nodes have been added for the IPU and DSP
>>>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>> are assigned to the respective rproc device nodes, and both the
>>>> IPU and DSP remote processors are enabled for all these boards.
>>>>
>>>> The current CMA pools and sizes are defined statically for each device.
>>>> The starting addresses are fixed to meet current dependencies on the
>>>> remote processor firmwares, and will go away when the remote-side
>>>> code has been improved to gather this information runtime during
>>>> its initialization.
>>>>
>>>> An associated pair of the rproc node and its CMA node can be disabled
>>>> later on if there is no use-case defined to use that remote processor.
>>>>
>>>> Signed-off-by: Suman Anna <s-anna@ti.com>
>>>> ---
>>>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>>>  1 file changed, 30 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> @@ -12,6 +12,26 @@ memory@80000000 {
>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>  	};
>>>>  
>>>> +	reserved-memory {
>>>> +		#address-cells = <1>;
>>>> +		#size-cells = <1>;
>>>> +		ranges;
>>>> +
>>>> +		dsp_memory_region: dsp-memory@98000000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98000000 0x800000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +
>>>> +		ipu_memory_region: ipu-memory@98800000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98800000 0x7000000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +	};
>>>> +
>>>>  	chosen {
>>>>  		stdout-path = &uart3;
>>>>  	};
>>>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>>>  		};
>>>>  	};
>>>>  };
>>>> +
>>>> +&dsp {
>>>> +	status = "okay";
>>>> +	memory-region = <&dsp_memory_region>;
>>>> +};
>>>> +
>>>> +&ipu {
>>>> +	status = "okay";
>>>> +	memory-region = <&ipu_memory_region>;
>>>> +};
>>>>
>>>
>>> This appears to be causing some BUG alert messages:
>>>
>>>   BUG: Bad page state in process swapper/0  pfn:9c801
>>>
>>> as reported on kernelci.org:
>>>
>>>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
>>>
>>> I've run a bisection and it landed on this commit.  If you fix it
>>> with another patch, please add:
>>>
>>>   Reported-by: "kernelci.org bot" <bot@kernelci.org>
>>
>>
>> This was bisected again automatically on mainline, see the report
>> below.  Is anyone available to take a look, or could the patch be
>> reverted?
> 
> Thanks Guillaume for the report. I will take a look at this today. It is strange
> that the bisect is pointing to this commit as reserving a CMA pool and assigning
> it to a device should be fairly normal usage. Is the issue seen only on OMAP4
> Pandaboard and not any of the other OMAP5 uEVM or DRA7xx/AM57xx EVMS?

Thanks for taking a look.

In the extended OMAP family, aside from the Panda only the
BeagleBone Black and BeagleBoard xM are being tested on
kernelci.org and they don't show this problem:

  https://kernelci.org/soc/omap2/job/next/kernel/next-20200814/plan/baseline/

Thanks,
Guillaume

>> On 14/08/2020 15:22, KernelCI bot wrote:
>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>> * This automated bisection report was sent to you on the basis  *
>>> * that you may be involved with the breaking commit it has      *
>>> * found.  No manual investigation has been done to verify it,   *
>>> * and the root cause of the problem may be somewhere else.      *
>>> *                                                               *
>>> * If you do send a fix, please include this trailer:            *
>>> *   Reported-by: "kernelci.org bot" <bot@kernelci.org>          *
>>> *                                                               *
>>> * Hope this helps!                                              *
>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>
>>> mainline/master bisection: baseline.dmesg.alert on panda
>>>
>>> Summary:
>>>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>>>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>>>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>
>>> Checks:
>>>   revert:     PASS
>>>   verify:     PASS
>>>
>>> Parameters:
>>>   Tree:       mainline
>>>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>   Branch:     master
>>>   Target:     panda
>>>   CPU arch:   arm
>>>   Lab:        lab-collabora
>>>   Compiler:   gcc-8
>>>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>>>   Test case:  baseline.dmesg.alert
>>>
>>> Breaking commit found:
>>>
>>> -------------------------------------------------------------------------------
>>> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>> Author: Suman Anna <s-anna@ti.com>
>>> Date:   Thu Jul 9 18:19:47 2020 -0500
>>>
>>>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>     
>>>     The CMA reserved memory nodes have been added for the IPU and DSP
>>>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>     are assigned to the respective rproc device nodes, and both the
>>>     IPU and DSP remote processors are enabled for all these boards.
>>>     
>>>     The current CMA pools and sizes are defined statically for each device.
>>>     The starting addresses are fixed to meet current dependencies on the
>>>     remote processor firmwares, and will go away when the remote-side
>>>     code has been improved to gather this information runtime during
>>>     its initialization.
>>>     
>>>     An associated pair of the rproc node and its CMA node can be disabled
>>>     later on if there is no use-case defined to use that remote processor.
>>>     
>>>     Signed-off-by: Suman Anna <s-anna@ti.com>
>>>     Signed-off-by: Tony Lindgren <tony@atomide.com>
>>>
>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> index 55ea8b6189af..ef79028fc95f 100644
>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> @@ -12,6 +12,26 @@
>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>  	};
>>>  
>>> +	reserved-memory {
>>> +		#address-cells = <1>;
>>> +		#size-cells = <1>;
>>> +		ranges;
>>> +
>>> +		dsp_memory_region: dsp-memory@98000000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98000000 0x800000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +
>>> +		ipu_memory_region: ipu-memory@98800000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98800000 0x7000000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +	};
>>> +
>>>  	chosen {
>>>  		stdout-path = &uart3;
>>>  	};
>>> @@ -571,3 +591,13 @@
>>>  		};
>>>  	};
>>>  };
>>> +
>>> +&dsp {
>>> +	status = "okay";
>>> +	memory-region = <&dsp_memory_region>;
>>> +};
>>> +
>>> +&ipu {
>>> +	status = "okay";
>>> +	memory-region = <&ipu_memory_region>;
>>> +};
>>> -------------------------------------------------------------------------------
>>>
>>>
>>> Git bisection log:
>>>
>>> -------------------------------------------------------------------------------
>>> git bisect start
>>> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>>> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
>>> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
>>> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>>> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
>>> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
>>> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
>>> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
>>> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
>>> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
>>> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
>>> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
>>> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
>>> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
>>> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
>>> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
>>> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
>>> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
>>> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
>>> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
>>> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
>>> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
>>> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
>>> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
>>> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
>>> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
>>> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
>>> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
>>> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
>>> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>> -------------------------------------------------------------------------------
>>
>>
> 


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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-08-14 16:33         ` Guillaume Tucker
@ 2020-08-14 19:33           ` Suman Anna
  2020-08-20  9:17             ` Guillaume Tucker
  0 siblings, 1 reply; 30+ messages in thread
From: Suman Anna @ 2020-08-14 19:33 UTC (permalink / raw)
  To: Guillaume Tucker, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel, kernelci-results

Hi Guillaume,

On 8/14/20 11:33 AM, Guillaume Tucker wrote:
> On 14/08/2020 16:26, Suman Anna wrote:
>> On 8/14/20 9:32 AM, Guillaume Tucker wrote:
>>> On 12/08/2020 06:31, Guillaume Tucker wrote:
>>>> On 10/07/2020 00:19, Suman Anna wrote:
>>>>> The CMA reserved memory nodes have been added for the IPU and DSP
>>>>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>>> are assigned to the respective rproc device nodes, and both the
>>>>> IPU and DSP remote processors are enabled for all these boards.
>>>>>
>>>>> The current CMA pools and sizes are defined statically for each device.
>>>>> The starting addresses are fixed to meet current dependencies on the
>>>>> remote processor firmwares, and will go away when the remote-side
>>>>> code has been improved to gather this information runtime during
>>>>> its initialization.
>>>>>
>>>>> An associated pair of the rproc node and its CMA node can be disabled
>>>>> later on if there is no use-case defined to use that remote processor.
>>>>>
>>>>> Signed-off-by: Suman Anna <s-anna@ti.com>
>>>>> ---
>>>>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>>>>  1 file changed, 30 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> @@ -12,6 +12,26 @@ memory@80000000 {
>>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>>  	};
>>>>>  
>>>>> +	reserved-memory {
>>>>> +		#address-cells = <1>;
>>>>> +		#size-cells = <1>;
>>>>> +		ranges;
>>>>> +
>>>>> +		dsp_memory_region: dsp-memory@98000000 {
>>>>> +			compatible = "shared-dma-pool";
>>>>> +			reg = <0x98000000 0x800000>;
>>>>> +			reusable;
>>>>> +			status = "okay";
>>>>> +		};
>>>>> +
>>>>> +		ipu_memory_region: ipu-memory@98800000 {
>>>>> +			compatible = "shared-dma-pool";
>>>>> +			reg = <0x98800000 0x7000000>;
>>>>> +			reusable;
>>>>> +			status = "okay";
>>>>> +		};
>>>>> +	};
>>>>> +
>>>>>  	chosen {
>>>>>  		stdout-path = &uart3;
>>>>>  	};
>>>>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>>>>  		};
>>>>>  	};
>>>>>  };
>>>>> +
>>>>> +&dsp {
>>>>> +	status = "okay";
>>>>> +	memory-region = <&dsp_memory_region>;
>>>>> +};
>>>>> +
>>>>> +&ipu {
>>>>> +	status = "okay";
>>>>> +	memory-region = <&ipu_memory_region>;
>>>>> +};
>>>>>
>>>>
>>>> This appears to be causing some BUG alert messages:
>>>>
>>>>   BUG: Bad page state in process swapper/0  pfn:9c801
>>>>
>>>> as reported on kernelci.org:
>>>>
>>>>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
>>>>
>>>> I've run a bisection and it landed on this commit.  If you fix it
>>>> with another patch, please add:
>>>>
>>>>   Reported-by: "kernelci.org bot" <bot@kernelci.org>
>>>
>>>
>>> This was bisected again automatically on mainline, see the report
>>> below.  Is anyone available to take a look, or could the patch be
>>> reverted?
>>
>> Thanks Guillaume for the report. I will take a look at this today. It is strange
>> that the bisect is pointing to this commit as reserving a CMA pool and assigning
>> it to a device should be fairly normal usage. Is the issue seen only on OMAP4
>> Pandaboard and not any of the other OMAP5 uEVM or DRA7xx/AM57xx EVMS?
> 
> Thanks for taking a look.
> 
> In the extended OMAP family, aside from the Panda only the
> BeagleBone Black and BeagleBoard xM are being tested on
> kernelci.org and they don't show this problem:

OK, neither of these boards have these IPU remote processors, and so they do not
define any reserved-memory pools.

Anyway, the issue started popping up because of the mem arguments used in the
bootargs on these kernelci setups, and the current CMA pools using addresses
from this region, resulting in the kernel panic traces.

Kernel command line: console=ttyO2,115200n8 root=/dev/ram0 fixrtc nocompcache
vram=48M omapfb.vram=0:24M mem=456M@0x80000000 mem=512M@0xA0000000 rootdelay=5
console_msg_format=syslog ip=dhcp

The bootargs leave out a hole in the available memory for kernel, and this way
of specifying was coming from really very old downstream TI kernel usage (pre-DT
days). This carveout hole was used to define the memory used by remoteprocs.
This has come through a long evolution of using memblock functions in code, to
finally using the reserved-memory nodes in dts since then.

The issue should be fixed once the bootargs are fixed up to remove using these
mem args, and let the memory for the board be defined by the regular dts memory
node.

I have checked the next git history and these patches were first added from
next-20200714 onwards, and that matches the kernelci failure log history.

regards
Suman

> 
>   https://kernelci.org/soc/omap2/job/next/kernel/next-20200814/plan/baseline/
> 
> Thanks,
> Guillaume
> 
>>> On 14/08/2020 15:22, KernelCI bot wrote:
>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>> * This automated bisection report was sent to you on the basis  *
>>>> * that you may be involved with the breaking commit it has      *
>>>> * found.  No manual investigation has been done to verify it,   *
>>>> * and the root cause of the problem may be somewhere else.      *
>>>> *                                                               *
>>>> * If you do send a fix, please include this trailer:            *
>>>> *   Reported-by: "kernelci.org bot" <bot@kernelci.org>          *
>>>> *                                                               *
>>>> * Hope this helps!                                              *
>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>
>>>> mainline/master bisection: baseline.dmesg.alert on panda
>>>>
>>>> Summary:
>>>>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>>>>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>>>>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>
>>>> Checks:
>>>>   revert:     PASS
>>>>   verify:     PASS
>>>>
>>>> Parameters:
>>>>   Tree:       mainline
>>>>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>>   Branch:     master
>>>>   Target:     panda
>>>>   CPU arch:   arm
>>>>   Lab:        lab-collabora
>>>>   Compiler:   gcc-8
>>>>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>>>>   Test case:  baseline.dmesg.alert
>>>>
>>>> Breaking commit found:
>>>>
>>>> -------------------------------------------------------------------------------
>>>> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>>> Author: Suman Anna <s-anna@ti.com>
>>>> Date:   Thu Jul 9 18:19:47 2020 -0500
>>>>
>>>>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>     
>>>>     The CMA reserved memory nodes have been added for the IPU and DSP
>>>>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>>     are assigned to the respective rproc device nodes, and both the
>>>>     IPU and DSP remote processors are enabled for all these boards.
>>>>     
>>>>     The current CMA pools and sizes are defined statically for each device.
>>>>     The starting addresses are fixed to meet current dependencies on the
>>>>     remote processor firmwares, and will go away when the remote-side
>>>>     code has been improved to gather this information runtime during
>>>>     its initialization.
>>>>     
>>>>     An associated pair of the rproc node and its CMA node can be disabled
>>>>     later on if there is no use-case defined to use that remote processor.
>>>>     
>>>>     Signed-off-by: Suman Anna <s-anna@ti.com>
>>>>     Signed-off-by: Tony Lindgren <tony@atomide.com>
>>>>
>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> @@ -12,6 +12,26 @@
>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>  	};
>>>>  
>>>> +	reserved-memory {
>>>> +		#address-cells = <1>;
>>>> +		#size-cells = <1>;
>>>> +		ranges;
>>>> +
>>>> +		dsp_memory_region: dsp-memory@98000000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98000000 0x800000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +
>>>> +		ipu_memory_region: ipu-memory@98800000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98800000 0x7000000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +	};
>>>> +
>>>>  	chosen {
>>>>  		stdout-path = &uart3;
>>>>  	};
>>>> @@ -571,3 +591,13 @@
>>>>  		};
>>>>  	};
>>>>  };
>>>> +
>>>> +&dsp {
>>>> +	status = "okay";
>>>> +	memory-region = <&dsp_memory_region>;
>>>> +};
>>>> +
>>>> +&ipu {
>>>> +	status = "okay";
>>>> +	memory-region = <&ipu_memory_region>;
>>>> +};
>>>> -------------------------------------------------------------------------------
>>>>
>>>>
>>>> Git bisection log:
>>>>
>>>> -------------------------------------------------------------------------------
>>>> git bisect start
>>>> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>>>> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
>>>> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
>>>> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>>>> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
>>>> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
>>>> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
>>>> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
>>>> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
>>>> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
>>>> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
>>>> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
>>>> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
>>>> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
>>>> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
>>>> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
>>>> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
>>>> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
>>>> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
>>>> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
>>>> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
>>>> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
>>>> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
>>>> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
>>>> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
>>>> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
>>>> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
>>>> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
>>>> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
>>>> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>>> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>> -------------------------------------------------------------------------------
>>>
>>>
>>
> 


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

* Re: [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
  2020-08-14 19:33           ` Suman Anna
@ 2020-08-20  9:17             ` Guillaume Tucker
  0 siblings, 0 replies; 30+ messages in thread
From: Guillaume Tucker @ 2020-08-20  9:17 UTC (permalink / raw)
  To: Suman Anna, Tony Lindgren
  Cc: Tero Kristo, devicetree, linux-omap, linux-arm-kernel,
	kernelci-results, Corentin Labbe

On 14/08/2020 20:33, Suman Anna wrote:
> Hi Guillaume,
> 
> On 8/14/20 11:33 AM, Guillaume Tucker wrote:
>> On 14/08/2020 16:26, Suman Anna wrote:
>>> On 8/14/20 9:32 AM, Guillaume Tucker wrote:
>>>> On 12/08/2020 06:31, Guillaume Tucker wrote:
>>>>> On 10/07/2020 00:19, Suman Anna wrote:
>>>>>> The CMA reserved memory nodes have been added for the IPU and DSP
>>>>>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>>>> are assigned to the respective rproc device nodes, and both the
>>>>>> IPU and DSP remote processors are enabled for all these boards.
>>>>>>
>>>>>> The current CMA pools and sizes are defined statically for each device.
>>>>>> The starting addresses are fixed to meet current dependencies on the
>>>>>> remote processor firmwares, and will go away when the remote-side
>>>>>> code has been improved to gather this information runtime during
>>>>>> its initialization.
>>>>>>
>>>>>> An associated pair of the rproc node and its CMA node can be disabled
>>>>>> later on if there is no use-case defined to use that remote processor.
>>>>>>
>>>>>> Signed-off-by: Suman Anna <s-anna@ti.com>
>>>>>> ---
>>>>>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>>>>>  1 file changed, 30 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>>> @@ -12,6 +12,26 @@ memory@80000000 {
>>>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>>>  	};
>>>>>>  
>>>>>> +	reserved-memory {
>>>>>> +		#address-cells = <1>;
>>>>>> +		#size-cells = <1>;
>>>>>> +		ranges;
>>>>>> +
>>>>>> +		dsp_memory_region: dsp-memory@98000000 {
>>>>>> +			compatible = "shared-dma-pool";
>>>>>> +			reg = <0x98000000 0x800000>;
>>>>>> +			reusable;
>>>>>> +			status = "okay";
>>>>>> +		};
>>>>>> +
>>>>>> +		ipu_memory_region: ipu-memory@98800000 {
>>>>>> +			compatible = "shared-dma-pool";
>>>>>> +			reg = <0x98800000 0x7000000>;
>>>>>> +			reusable;
>>>>>> +			status = "okay";
>>>>>> +		};
>>>>>> +	};
>>>>>> +
>>>>>>  	chosen {
>>>>>>  		stdout-path = &uart3;
>>>>>>  	};
>>>>>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>>>>>  		};
>>>>>>  	};
>>>>>>  };
>>>>>> +
>>>>>> +&dsp {
>>>>>> +	status = "okay";
>>>>>> +	memory-region = <&dsp_memory_region>;
>>>>>> +};
>>>>>> +
>>>>>> +&ipu {
>>>>>> +	status = "okay";
>>>>>> +	memory-region = <&ipu_memory_region>;
>>>>>> +};
>>>>>>
>>>>>
>>>>> This appears to be causing some BUG alert messages:
>>>>>
>>>>>   BUG: Bad page state in process swapper/0  pfn:9c801
>>>>>
>>>>> as reported on kernelci.org:
>>>>>
>>>>>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
>>>>>
>>>>> I've run a bisection and it landed on this commit.  If you fix it
>>>>> with another patch, please add:
>>>>>
>>>>>   Reported-by: "kernelci.org bot" <bot@kernelci.org>
>>>>
>>>>
>>>> This was bisected again automatically on mainline, see the report
>>>> below.  Is anyone available to take a look, or could the patch be
>>>> reverted?
>>>
>>> Thanks Guillaume for the report. I will take a look at this today. It is strange
>>> that the bisect is pointing to this commit as reserving a CMA pool and assigning
>>> it to a device should be fairly normal usage. Is the issue seen only on OMAP4
>>> Pandaboard and not any of the other OMAP5 uEVM or DRA7xx/AM57xx EVMS?
>>
>> Thanks for taking a look.
>>
>> In the extended OMAP family, aside from the Panda only the
>> BeagleBone Black and BeagleBoard xM are being tested on
>> kernelci.org and they don't show this problem:
> 
> OK, neither of these boards have these IPU remote processors, and so they do not
> define any reserved-memory pools.
> 
> Anyway, the issue started popping up because of the mem arguments used in the
> bootargs on these kernelci setups, and the current CMA pools using addresses
> from this region, resulting in the kernel panic traces.
> 
> Kernel command line: console=ttyO2,115200n8 root=/dev/ram0 fixrtc nocompcache
> vram=48M omapfb.vram=0:24M mem=456M@0x80000000 mem=512M@0xA0000000 rootdelay=5
> console_msg_format=syslog ip=dhcp
> 
> The bootargs leave out a hole in the available memory for kernel, and this way
> of specifying was coming from really very old downstream TI kernel usage (pre-DT
> days). This carveout hole was used to define the memory used by remoteprocs.
> This has come through a long evolution of using memblock functions in code, to
> finally using the reserved-memory nodes in dts since then.
> 
> The issue should be fixed once the bootargs are fixed up to remove using these
> mem args, and let the memory for the board be defined by the regular dts memory
> node.
> 
> I have checked the next git history and these patches were first added from
> next-20200714 onwards, and that matches the kernelci failure log history.

Many thanks for taking the time to look into this, especially as
it wasn't due to your patch indeed.  We'll change the kernel
command line accordingly.

Best wishes,
Guillaume

>>>> On 14/08/2020 15:22, KernelCI bot wrote:
>>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>> * This automated bisection report was sent to you on the basis  *
>>>>> * that you may be involved with the breaking commit it has      *
>>>>> * found.  No manual investigation has been done to verify it,   *
>>>>> * and the root cause of the problem may be somewhere else.      *
>>>>> *                                                               *
>>>>> * If you do send a fix, please include this trailer:            *
>>>>> *   Reported-by: "kernelci.org bot" <bot@kernelci.org>          *
>>>>> *                                                               *
>>>>> * Hope this helps!                                              *
>>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>>
>>>>> mainline/master bisection: baseline.dmesg.alert on panda
>>>>>
>>>>> Summary:
>>>>>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>>>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>>>>>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>>>>>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>>
>>>>> Checks:
>>>>>   revert:     PASS
>>>>>   verify:     PASS
>>>>>
>>>>> Parameters:
>>>>>   Tree:       mainline
>>>>>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>>>   Branch:     master
>>>>>   Target:     panda
>>>>>   CPU arch:   arm
>>>>>   Lab:        lab-collabora
>>>>>   Compiler:   gcc-8
>>>>>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>>>>>   Test case:  baseline.dmesg.alert
>>>>>
>>>>> Breaking commit found:
>>>>>
>>>>> -------------------------------------------------------------------------------
>>>>> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>>>> Author: Suman Anna <s-anna@ti.com>
>>>>> Date:   Thu Jul 9 18:19:47 2020 -0500
>>>>>
>>>>>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>>     
>>>>>     The CMA reserved memory nodes have been added for the IPU and DSP
>>>>>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>>>     are assigned to the respective rproc device nodes, and both the
>>>>>     IPU and DSP remote processors are enabled for all these boards.
>>>>>     
>>>>>     The current CMA pools and sizes are defined statically for each device.
>>>>>     The starting addresses are fixed to meet current dependencies on the
>>>>>     remote processor firmwares, and will go away when the remote-side
>>>>>     code has been improved to gather this information runtime during
>>>>>     its initialization.
>>>>>     
>>>>>     An associated pair of the rproc node and its CMA node can be disabled
>>>>>     later on if there is no use-case defined to use that remote processor.
>>>>>     
>>>>>     Signed-off-by: Suman Anna <s-anna@ti.com>
>>>>>     Signed-off-by: Tony Lindgren <tony@atomide.com>
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>>> @@ -12,6 +12,26 @@
>>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>>  	};
>>>>>  
>>>>> +	reserved-memory {
>>>>> +		#address-cells = <1>;
>>>>> +		#size-cells = <1>;
>>>>> +		ranges;
>>>>> +
>>>>> +		dsp_memory_region: dsp-memory@98000000 {
>>>>> +			compatible = "shared-dma-pool";
>>>>> +			reg = <0x98000000 0x800000>;
>>>>> +			reusable;
>>>>> +			status = "okay";
>>>>> +		};
>>>>> +
>>>>> +		ipu_memory_region: ipu-memory@98800000 {
>>>>> +			compatible = "shared-dma-pool";
>>>>> +			reg = <0x98800000 0x7000000>;
>>>>> +			reusable;
>>>>> +			status = "okay";
>>>>> +		};
>>>>> +	};
>>>>> +
>>>>>  	chosen {
>>>>>  		stdout-path = &uart3;
>>>>>  	};
>>>>> @@ -571,3 +591,13 @@
>>>>>  		};
>>>>>  	};
>>>>>  };
>>>>> +
>>>>> +&dsp {
>>>>> +	status = "okay";
>>>>> +	memory-region = <&dsp_memory_region>;
>>>>> +};
>>>>> +
>>>>> +&ipu {
>>>>> +	status = "okay";
>>>>> +	memory-region = <&ipu_memory_region>;
>>>>> +};
>>>>> -------------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> Git bisection log:
>>>>>
>>>>> -------------------------------------------------------------------------------
>>>>> git bisect start
>>>>> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>>>>> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
>>>>> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>>> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
>>>>> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>>>>> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
>>>>> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
>>>>> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
>>>>> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
>>>>> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
>>>>> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
>>>>> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
>>>>> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
>>>>> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
>>>>> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
>>>>> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
>>>>> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
>>>>> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
>>>>> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
>>>>> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
>>>>> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
>>>>> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
>>>>> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
>>>>> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
>>>>> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
>>>>> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
>>>>> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
>>>>> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
>>>>> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
>>>>> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
>>>>> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>>>> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>>> -------------------------------------------------------------------------------
>>>>
>>>>
>>>
>>
> 


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

end of thread, back to index

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 23:19 [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Suman Anna
2020-07-09 23:19 ` [PATCH 01/13] ARM: dts: omap4: Add timer_sys_ck clocks for timers Suman Anna
2020-07-09 23:19 ` [PATCH 02/13] ARM: dts: omap5: " Suman Anna
2020-07-09 23:19 ` [PATCH 03/13] ARM: dts: omap4: Update the DSP node Suman Anna
2020-07-09 23:19 ` [PATCH 04/13] ARM: dts: omap4: Add IPU DT node Suman Anna
2020-07-09 23:19 ` [PATCH 05/13] ARM: dts: omap4: Add aliases for rproc nodes Suman Anna
2020-07-09 23:19 ` [PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP Suman Anna
2020-08-12  5:31   ` Guillaume Tucker
2020-08-14 14:32     ` Guillaume Tucker
2020-08-14 15:26       ` Suman Anna
2020-08-14 16:33         ` Guillaume Tucker
2020-08-14 19:33           ` Suman Anna
2020-08-20  9:17             ` Guillaume Tucker
2020-07-09 23:19 ` [PATCH 07/13] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU Suman Anna
2020-07-09 23:19 ` [PATCH 08/13] ARM: dts: omap5: Add DSP and IPU nodes Suman Anna
2020-07-09 23:19 ` [PATCH 09/13] ARM: dts: omap5: Add aliases for rproc nodes Suman Anna
2020-07-09 23:19 ` [PATCH 10/13] ARM: dts: omap5-uevm: Add CMA pools and enable IPU & DSP Suman Anna
2020-07-09 23:19 ` [PATCH 11/13] ARM: dts: omap5-uevm: Add system timers to DSP and IPU Suman Anna
2020-07-09 23:19 ` [PATCH 12/13] ARM: dts: omap4-panda-common: Add watchdog timers for IPU and DSP Suman Anna
2020-07-09 23:19 ` [PATCH 13/13] ARM: dts: omap5-uevm: " Suman Anna
2020-07-10 16:58 ` [PATCH 00/13] Add IPU & DSP remoteprocs on OMAP4 and OMAP5 Tony Lindgren
2020-07-10 17:17   ` Suman Anna
2020-07-10 17:28     ` Suman Anna
2020-07-10 17:59       ` Tony Lindgren
2020-07-10 18:29         ` Suman Anna
2020-07-10 20:45           ` Suman Anna
2020-07-10 22:08             ` Tony Lindgren
2020-07-10 17:40     ` Tony Lindgren
2020-07-10 18:24       ` Suman Anna
2020-07-13 18:24 ` Tony Lindgren

Linux-OMAP Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-omap/0 linux-omap/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-omap linux-omap/ https://lore.kernel.org/linux-omap \
		linux-omap@vger.kernel.org
	public-inbox-index linux-omap

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-omap


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git