linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
@ 2025-05-08 10:32 Sudeep Holla
  2025-05-08 10:32 ` [PATCH 2/3] arm64: dts: fvp: Add system timer for broadcast during CPU idle Sudeep Holla
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-08 10:32 UTC (permalink / raw)
  To: linux-arm-kernel, devicetree
  Cc: Sudeep Holla, Lorenzo Pieralisi, Liviu Dudau, Leo Yan

Add CPU idle state definitions to the FVP Rev C device tree to enable
support for CPU lower power modes. This allows the system to properly
enter low power states during idle. It is disabled by default as it is
know to impact performance on the models.

Note that the power_state parameter(arm,psci-suspend-param) doesn't use
the Extended StateID format for compatibility reasons on FVP.

Tested on the FVP Rev C model with PSCI support enabled firmware.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 arch/arm64/boot/dts/arm/fvp-base-revc.dts | 32 +++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
index 9e10d7a6b5a2..ff4e6f4d8797 100644
--- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts
+++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
@@ -44,6 +44,30 @@ cpus {
 		#address-cells = <2>;
 		#size-cells = <0>;
 
+		idle-states {
+			entry-method = "arm,psci";
+
+			CPU_SLEEP_0: cpu-sleep-0 {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x0010000>;
+				entry-latency-us = <40>;
+				exit-latency-us = <100>;
+				min-residency-us = <150>;
+				status = "disabled";
+			};
+
+			CLUSTER_SLEEP_0: cluster-sleep-0 {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x1010000>;
+				entry-latency-us = <500>;
+				exit-latency-us = <1000>;
+				min-residency-us = <2500>;
+				status = "disabled";
+			};
+		};
+
 		cpu0: cpu@0 {
 			device_type = "cpu";
 			compatible = "arm,armv8";
@@ -56,6 +80,7 @@ cpu0: cpu@0 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C0_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu1: cpu@100 {
 			device_type = "cpu";
@@ -69,6 +94,7 @@ cpu1: cpu@100 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C0_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu2: cpu@200 {
 			device_type = "cpu";
@@ -82,6 +108,7 @@ cpu2: cpu@200 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C0_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu3: cpu@300 {
 			device_type = "cpu";
@@ -95,6 +122,7 @@ cpu3: cpu@300 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C0_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu4: cpu@10000 {
 			device_type = "cpu";
@@ -108,6 +136,7 @@ cpu4: cpu@10000 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C1_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu5: cpu@10100 {
 			device_type = "cpu";
@@ -121,6 +150,7 @@ cpu5: cpu@10100 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C1_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu6: cpu@10200 {
 			device_type = "cpu";
@@ -134,6 +164,7 @@ cpu6: cpu@10200 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C1_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		cpu7: cpu@10300 {
 			device_type = "cpu";
@@ -147,6 +178,7 @@ cpu7: cpu@10300 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&C1_L2>;
+			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
 		};
 		C0_L2: l2-cache0 {
 			compatible = "cache";
-- 
2.34.1



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

* [PATCH 2/3] arm64: dts: fvp: Add system timer for broadcast during CPU idle
  2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
@ 2025-05-08 10:32 ` Sudeep Holla
  2025-05-08 10:32 ` [PATCH 3/3] arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map Sudeep Holla
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-08 10:32 UTC (permalink / raw)
  To: linux-arm-kernel, devicetree
  Cc: Sudeep Holla, Lorenzo Pieralisi, Liviu Dudau, Leo Yan

Introduce a system-level timer node in the FVP device tree to act as
a broadcast timer when CPUs are in context losing idle states where
the local timer stops on entering such low power states.

This change complements recent CPU idle state additions.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 arch/arm64/boot/dts/arm/fvp-base-revc.dts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
index ff4e6f4d8797..c1e22ffca623 100644
--- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts
+++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
@@ -249,6 +249,20 @@ timer {
 			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
 	};
 
+	timer@2a810000 {
+		compatible = "arm,armv7-timer-mem";
+		reg = <0x0 0x2a810000 0x0 0x10000>;
+		clock-frequency = <100000000>;
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+		frame@2a830000 {
+			frame-number = <1>;
+			interrupts = <0 26 4>;
+			reg = <0x0 0x2a830000 0x0 0x10000>;
+		};
+	};
+
 	pmu {
 		compatible = "arm,armv8-pmuv3";
 		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
-- 
2.34.1



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

* [PATCH 3/3] arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map
  2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
  2025-05-08 10:32 ` [PATCH 2/3] arm64: dts: fvp: Add system timer for broadcast during CPU idle Sudeep Holla
@ 2025-05-08 10:32 ` Sudeep Holla
  2025-05-08 13:25 ` [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Ben Horgan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-08 10:32 UTC (permalink / raw)
  To: linux-arm-kernel, devicetree
  Cc: Sudeep Holla, Lorenzo Pieralisi, Liviu Dudau, Leo Yan

Reserve 64MB of memory at the end of the first bank of DRAM on FVP model.
This is mainly for FF-A firmware use, as required by various firmware
configurations using the Firmware Framework for Arm (FF-A). This prevents
the kernel from overwriting the firmware region.

This is also useful when running other firmware configurations(non FF-A
based) that rely on usage of 64MB at the end of first DRAM bank.

Necessary for proper coexistence of firmware(FF-A partitions) and the OS.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 arch/arm64/boot/dts/arm/fvp-base-revc.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
index c1e22ffca623..2c2c9f45b3fe 100644
--- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts
+++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
@@ -201,7 +201,7 @@ C1_L2: l2-cache1 {
 
 	memory@80000000 {
 		device_type = "memory";
-		reg = <0x00000000 0x80000000 0 0x80000000>,
+		reg = <0x00000000 0x80000000 0 0x7c000000>,
 		      <0x00000008 0x80000000 0 0x80000000>;
 	};
 
-- 
2.34.1



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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
  2025-05-08 10:32 ` [PATCH 2/3] arm64: dts: fvp: Add system timer for broadcast during CPU idle Sudeep Holla
  2025-05-08 10:32 ` [PATCH 3/3] arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map Sudeep Holla
@ 2025-05-08 13:25 ` Ben Horgan
  2025-05-08 15:51   ` Sudeep Holla
  2025-05-08 16:09 ` Leo Yan
  2025-05-09 14:16 ` Rob Herring (Arm)
  4 siblings, 1 reply; 9+ messages in thread
From: Ben Horgan @ 2025-05-08 13:25 UTC (permalink / raw)
  To: Sudeep Holla, linux-arm-kernel, devicetree
  Cc: Lorenzo Pieralisi, Liviu Dudau, Leo Yan

Hi,

On 5/8/25 11:32, Sudeep Holla wrote:
> Add CPU idle state definitions to the FVP Rev C device tree to enable
> support for CPU lower power modes. This allows the system to properly
> enter low power states during idle. It is disabled by default as it is
> know to impact performance on the models.
> 
> Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> the Extended StateID format for compatibility reasons on FVP.
> 
> Tested on the FVP Rev C model with PSCI support enabled firmware.
> 
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>   arch/arm64/boot/dts/arm/fvp-base-revc.dts | 32 +++++++++++++++++++++++
>   1 file changed, 32 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> index 9e10d7a6b5a2..ff4e6f4d8797 100644
> --- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> +++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> @@ -44,6 +44,30 @@ cpus {
>   		#address-cells = <2>;
>   		#size-cells = <0>;
>   
> +		idle-states {
> +			entry-method = "arm,psci";
> +
> +			CPU_SLEEP_0: cpu-sleep-0 {
> +				compatible = "arm,idle-state";
> +				local-timer-stop;
> +				arm,psci-suspend-param = <0x0010000>;
> +				entry-latency-us = <40>;
> +				exit-latency-us = <100>;
> +				min-residency-us = <150>;
> +				status = "disabled";
> +			};
> +
> +			CLUSTER_SLEEP_0: cluster-sleep-0 {
> +				compatible = "arm,idle-state";
> +				local-timer-stop;
> +				arm,psci-suspend-param = <0x1010000>;
> +				entry-latency-us = <500>;
> +				exit-latency-us = <1000>;
> +				min-residency-us = <2500>;
> +				status = "disabled";
> +			};
> +		};
Do we need a cpu-map so we know which cpus the cluster idle affects?
> +
>   		cpu0: cpu@0 {
>   			device_type = "cpu";
>   			compatible = "arm,armv8";
> @@ -56,6 +80,7 @@ cpu0: cpu@0 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C0_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu1: cpu@100 {
>   			device_type = "cpu";
> @@ -69,6 +94,7 @@ cpu1: cpu@100 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C0_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu2: cpu@200 {
>   			device_type = "cpu";
> @@ -82,6 +108,7 @@ cpu2: cpu@200 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C0_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu3: cpu@300 {
>   			device_type = "cpu";
> @@ -95,6 +122,7 @@ cpu3: cpu@300 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C0_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu4: cpu@10000 {
>   			device_type = "cpu";
> @@ -108,6 +136,7 @@ cpu4: cpu@10000 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C1_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu5: cpu@10100 {
>   			device_type = "cpu";
> @@ -121,6 +150,7 @@ cpu5: cpu@10100 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C1_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu6: cpu@10200 {
>   			device_type = "cpu";
> @@ -134,6 +164,7 @@ cpu6: cpu@10200 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C1_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		cpu7: cpu@10300 {
>   			device_type = "cpu";
> @@ -147,6 +178,7 @@ cpu7: cpu@10300 {
>   			d-cache-line-size = <64>;
>   			d-cache-sets = <256>;
>   			next-level-cache = <&C1_L2>;
> +			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
>   		};
>   		C0_L2: l2-cache0 {
>   			compatible = "cache";

-- 
Thanks,

Ben



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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-08 13:25 ` [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Ben Horgan
@ 2025-05-08 15:51   ` Sudeep Holla
  0 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-08 15:51 UTC (permalink / raw)
  To: Ben Horgan
  Cc: linux-arm-kernel, devicetree, Lorenzo Pieralisi, Sudeep Holla,
	Liviu Dudau, Leo Yan

Hi Ben,

Thanks for taking a look at this.

On Thu, May 08, 2025 at 02:25:19PM +0100, Ben Horgan wrote:
> Hi,
> 
> On 5/8/25 11:32, Sudeep Holla wrote:
> > Add CPU idle state definitions to the FVP Rev C device tree to enable
> > support for CPU lower power modes. This allows the system to properly
> > enter low power states during idle. It is disabled by default as it is
> > know to impact performance on the models.
> > 
> > Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> > the Extended StateID format for compatibility reasons on FVP.
> > 
> > Tested on the FVP Rev C model with PSCI support enabled firmware.
> > 
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >   arch/arm64/boot/dts/arm/fvp-base-revc.dts | 32 +++++++++++++++++++++++
> >   1 file changed, 32 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/arm/fvp-base-revc.dts b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> > index 9e10d7a6b5a2..ff4e6f4d8797 100644
> > --- a/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> > +++ b/arch/arm64/boot/dts/arm/fvp-base-revc.dts
> > @@ -44,6 +44,30 @@ cpus {
> >   		#address-cells = <2>;
> >   		#size-cells = <0>;
> > +		idle-states {
> > +			entry-method = "arm,psci";
> > +
> > +			CPU_SLEEP_0: cpu-sleep-0 {
> > +				compatible = "arm,idle-state";
> > +				local-timer-stop;
> > +				arm,psci-suspend-param = <0x0010000>;
> > +				entry-latency-us = <40>;
> > +				exit-latency-us = <100>;
> > +				min-residency-us = <150>;
> > +				status = "disabled";
> > +			};
> > +
> > +			CLUSTER_SLEEP_0: cluster-sleep-0 {
> > +				compatible = "arm,idle-state";
> > +				local-timer-stop;
> > +				arm,psci-suspend-param = <0x1010000>;
> > +				entry-latency-us = <500>;
> > +				exit-latency-us = <1000>;
> > +				min-residency-us = <2500>;
> > +				status = "disabled";
> > +			};
> > +		};
> Do we need a cpu-map so we know which cpus the cluster idle affects?

Generally we only infer the CPU topology information from cpu-map.
We can reuse the cluster idle state node with CPUs on 2 different
clusters if they both has similar characteristics as each CPUs carry
this information independent of each other. On new DSU style clusters
with 3 different types of cpus within a single cluster, each type may
have different idle state characteristics and may need different nodes
for both cpu and cluster level idle states.

In short, the term cluster used here doesn't mean anything specific and
may not co-relate to the CPU topology.

-- 
Regards,
Sudeep


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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
                   ` (2 preceding siblings ...)
  2025-05-08 13:25 ` [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Ben Horgan
@ 2025-05-08 16:09 ` Leo Yan
  2025-05-08 16:13   ` Sudeep Holla
  2025-05-09 14:16 ` Rob Herring (Arm)
  4 siblings, 1 reply; 9+ messages in thread
From: Leo Yan @ 2025-05-08 16:09 UTC (permalink / raw)
  To: Sudeep Holla; +Cc: linux-arm-kernel, devicetree, Lorenzo Pieralisi, Liviu Dudau

Hi Sudeep,

On Thu, May 08, 2025 at 11:32:23AM +0100, Sudeep Holla wrote:
> Add CPU idle state definitions to the FVP Rev C device tree to enable
> support for CPU lower power modes. This allows the system to properly
> enter low power states during idle. It is disabled by default as it is
> know to impact performance on the models.
> 
> Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> the Extended StateID format for compatibility reasons on FVP.
> 
> Tested on the FVP Rev C model with PSCI support enabled firmware.

I verified this series and confirmed the CPUIdle states work well (I
manually removed the status = "disabled" in idle state nodes).

Tested-by: Leo Yan <leo.yan@arm.com>

Just a nitpick, we should firstly add the timer node and then add the
idle state nodes, as CPUIdle is dependent on broadcast timer.

As the idle states are disabled by default, current patch ordering
would be fine as well.

Thanks,
Leo


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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-08 16:09 ` Leo Yan
@ 2025-05-08 16:13   ` Sudeep Holla
  0 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-08 16:13 UTC (permalink / raw)
  To: Leo Yan
  Cc: linux-arm-kernel, devicetree, Sudeep Holla, Lorenzo Pieralisi,
	Liviu Dudau

On Thu, May 08, 2025 at 05:09:20PM +0100, Leo Yan wrote:
> Hi Sudeep,
> 
> On Thu, May 08, 2025 at 11:32:23AM +0100, Sudeep Holla wrote:
> > Add CPU idle state definitions to the FVP Rev C device tree to enable
> > support for CPU lower power modes. This allows the system to properly
> > enter low power states during idle. It is disabled by default as it is
> > know to impact performance on the models.
> > 
> > Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> > the Extended StateID format for compatibility reasons on FVP.
> > 
> > Tested on the FVP Rev C model with PSCI support enabled firmware.
> 
> I verified this series and confirmed the CPUIdle states work well (I
> manually removed the status = "disabled" in idle state nodes).
> 
> Tested-by: Leo Yan <leo.yan@arm.com>
> 
> Just a nitpick, we should firstly add the timer node and then add the
> idle state nodes, as CPUIdle is dependent on broadcast timer.
> 
> As the idle states are disabled by default, current patch ordering
> would be fine as well.
>

Good point, I will reverse the order when applying. Thanks for the testing.

-- 
Regards,
Sudeep


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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
                   ` (3 preceding siblings ...)
  2025-05-08 16:09 ` Leo Yan
@ 2025-05-09 14:16 ` Rob Herring (Arm)
  2025-05-09 15:29   ` Sudeep Holla
  4 siblings, 1 reply; 9+ messages in thread
From: Rob Herring (Arm) @ 2025-05-09 14:16 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: devicetree, Leo Yan, linux-arm-kernel, Lorenzo Pieralisi,
	Liviu Dudau


On Thu, 08 May 2025 11:32:23 +0100, Sudeep Holla wrote:
> Add CPU idle state definitions to the FVP Rev C device tree to enable
> support for CPU lower power modes. This allows the system to properly
> enter low power states during idle. It is disabled by default as it is
> know to impact performance on the models.
> 
> Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> the Extended StateID format for compatibility reasons on FVP.
> 
> Tested on the FVP Rev C model with PSCI support enabled firmware.
> 
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  arch/arm64/boot/dts/arm/fvp-base-revc.dts | 32 +++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


This patch series was applied (using b4) to base:
 Base: attempting to guess base-commit...
 Base: tags/v6.15-rc1-1-g59529bbe642d (exact match)

If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)

New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/arm/' for 20250508103225.354925-1-sudeep.holla@arm.com:

arch/arm64/boot/dts/arm/fvp-base-revc.dtb: idle-states: entry-method:0: 'psci' was expected
	from schema $id: http://devicetree.org/schemas/cpu/idle-states.yaml#
arch/arm64/boot/dts/arm/fvp-base-revc.dtb: timer@2a810000 (arm,armv7-timer-mem): #size-cells: 1 was expected
	from schema $id: http://devicetree.org/schemas/timer/arm,arch_timer_mmio.yaml#







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

* Re: [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model
  2025-05-09 14:16 ` Rob Herring (Arm)
@ 2025-05-09 15:29   ` Sudeep Holla
  0 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-05-09 15:29 UTC (permalink / raw)
  To: Rob Herring (Arm)
  Cc: devicetree, Leo Yan, linux-arm-kernel, Lorenzo Pieralisi,
	Liviu Dudau

On Fri, May 09, 2025 at 09:16:54AM -0500, Rob Herring (Arm) wrote:
> 
> On Thu, 08 May 2025 11:32:23 +0100, Sudeep Holla wrote:
> > Add CPU idle state definitions to the FVP Rev C device tree to enable
> > support for CPU lower power modes. This allows the system to properly
> > enter low power states during idle. It is disabled by default as it is
> > know to impact performance on the models.
> > 
> > Note that the power_state parameter(arm,psci-suspend-param) doesn't use
> > the Extended StateID format for compatibility reasons on FVP.
> > 
> > Tested on the FVP Rev C model with PSCI support enabled firmware.
> > 
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >  arch/arm64/boot/dts/arm/fvp-base-revc.dts | 32 +++++++++++++++++++++++
> >  1 file changed, 32 insertions(+)
> > 
> 
> 
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
> 
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
> 
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
> 
>   pip3 install dtschema --upgrade
> 
> 
> This patch series was applied (using b4) to base:
>  Base: attempting to guess base-commit...
>  Base: tags/v6.15-rc1-1-g59529bbe642d (exact match)
> 
> If this is not the correct base, please add 'base-commit' tag
> (or use b4 which does this automatically)
> 
> New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/arm/' for 20250508103225.354925-1-sudeep.holla@arm.com:
> 
> arch/arm64/boot/dts/arm/fvp-base-revc.dtb: idle-states: entry-method:0: 'psci' was expected
> 	from schema $id: http://devicetree.org/schemas/cpu/idle-states.yaml#
> arch/arm64/boot/dts/arm/fvp-base-revc.dtb: timer@2a810000 (arm,armv7-timer-mem): #size-cells: 1 was expected
> 	from schema $id: http://devicetree.org/schemas/timer/arm,arch_timer_mmio.yaml#
>

Thanks for the report. Now fixed locally.

-- 
Regards,
Sudeep


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

end of thread, other threads:[~2025-05-09 20:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-08 10:32 [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Sudeep Holla
2025-05-08 10:32 ` [PATCH 2/3] arm64: dts: fvp: Add system timer for broadcast during CPU idle Sudeep Holla
2025-05-08 10:32 ` [PATCH 3/3] arm64: dts: fvp: Reserve 64MB for the FF-A firmware in memory map Sudeep Holla
2025-05-08 13:25 ` [PATCH 1/3] arm64: dts: fvp: Add CPU idle states for Rev C model Ben Horgan
2025-05-08 15:51   ` Sudeep Holla
2025-05-08 16:09 ` Leo Yan
2025-05-08 16:13   ` Sudeep Holla
2025-05-09 14:16 ` Rob Herring (Arm)
2025-05-09 15:29   ` Sudeep Holla

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