Message ID | 1490701718-16571-1-git-send-email-jonathanh@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 28/03/17 12:48, Jon Hunter wrote: > Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that > all CPUs can be enabled on boot. This assumes that the PSCI firmware > has been loaded during the initial bootstrap on the device before the > kernel starts (which is typically the case for these platforms). The > PSCI firmware version is set to v0.2 which aligns with the current > shipping version for Tegra. > > Reported-by: Martin Michlmayr <tbm@cyrius.com> > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > --- > arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++ > arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 24 ++++++++++++++++++++++++ > 2 files changed, 47 insertions(+) > > diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > index 906fb836d241..de1696c28140 100644 > --- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > @@ -296,6 +296,29 @@ > }; > }; > > + cpus { > + cpu@0 { > + enable-method = "psci"; Is some firmware expected to populate other required properties ? If yes, why not populate everything in the firmware ? If no, how does it even boot secondaries without the "reg" property that usually contains MPIDR.
On 28/03/17 15:55, Sudeep Holla wrote: > On 28/03/17 12:48, Jon Hunter wrote: >> Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that >> all CPUs can be enabled on boot. This assumes that the PSCI firmware >> has been loaded during the initial bootstrap on the device before the >> kernel starts (which is typically the case for these platforms). The >> PSCI firmware version is set to v0.2 which aligns with the current >> shipping version for Tegra. >> >> Reported-by: Martin Michlmayr <tbm@cyrius.com> >> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> >> --- >> arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++ >> arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 24 ++++++++++++++++++++++++ >> 2 files changed, 47 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >> index 906fb836d241..de1696c28140 100644 >> --- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >> +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >> @@ -296,6 +296,29 @@ >> }; >> }; >> >> + cpus { >> + cpu@0 { >> + enable-method = "psci"; > > Is some firmware expected to populate other required properties ? > > If yes, why not populate everything in the firmware ? > > If no, how does it even boot secondaries without the "reg" property > that usually contains MPIDR. Please see 'arch/arm64/boot/dts/nvidia/tegra210.dtsi' which has these fields. So far we have been populating the psci information at the board level and so I have kept with that here and so the above is just the delta. Maybe the $subject could be a little clearer! Jon
On 28/03/17 16:32, Jon Hunter wrote: > > On 28/03/17 15:55, Sudeep Holla wrote: >> On 28/03/17 12:48, Jon Hunter wrote: >>> Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that >>> all CPUs can be enabled on boot. This assumes that the PSCI firmware >>> has been loaded during the initial bootstrap on the device before the >>> kernel starts (which is typically the case for these platforms). The >>> PSCI firmware version is set to v0.2 which aligns with the current >>> shipping version for Tegra. >>> >>> Reported-by: Martin Michlmayr <tbm@cyrius.com> >>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> >>> --- >>> arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++ >>> arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 24 ++++++++++++++++++++++++ >>> 2 files changed, 47 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >>> index 906fb836d241..de1696c28140 100644 >>> --- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >>> +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi >>> @@ -296,6 +296,29 @@ >>> }; >>> }; >>> >>> + cpus { >>> + cpu@0 { >>> + enable-method = "psci"; >> >> Is some firmware expected to populate other required properties ? >> >> If yes, why not populate everything in the firmware ? >> >> If no, how does it even boot secondaries without the "reg" property >> that usually contains MPIDR. > > Please see 'arch/arm64/boot/dts/nvidia/tegra210.dtsi' which has these > fields. So far we have been populating the psci information at the board > level and so I have kept with that here and so the above is just the > delta. Maybe the $subject could be a little clearer! Sorry for the noise, I traversed files/headers upwards and missed the innermost tegra210.dtsi :(
On 03/28/2017 05:48 AM, Jon Hunter wrote: > Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that > all CPUs can be enabled on boot. This assumes that the PSCI firmware > has been loaded during the initial bootstrap on the device before the > kernel starts (which is typically the case for these platforms). The > PSCI firmware version is set to v0.2 which aligns with the current > shipping version for Tegra. This seems fine, although I'd expect PSCI to be used everywhere on Tegra, so putting this in tegra210.dtsi would make more sense.
On 28/03/17 17:23, Stephen Warren wrote: > On 03/28/2017 05:48 AM, Jon Hunter wrote: >> Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that >> all CPUs can be enabled on boot. This assumes that the PSCI firmware >> has been loaded during the initial bootstrap on the device before the >> kernel starts (which is typically the case for these platforms). The >> PSCI firmware version is set to v0.2 which aligns with the current >> shipping version for Tegra. > > This seems fine, although I'd expect PSCI to be used everywhere on > Tegra, so putting this in tegra210.dtsi would make more sense. It's fine with me. Although technically, tegra210-smaug ships with psci-v1.0 and tegra210-jetson-tx1 currently have psci-v0.2. However, I did test both with the psci version set to v1.0 and the jetson-tx1, did detect the version automatically and reverted to v0.2 (which is a feature of psci >= v0.2). For Tegra186 we also have the psci node in the tegra186-p3310.dtsi. Jon
On Tue, Mar 28, 2017 at 05:49:41PM +0100, Jon Hunter wrote: > > On 28/03/17 17:23, Stephen Warren wrote: > > On 03/28/2017 05:48 AM, Jon Hunter wrote: > >> Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that > >> all CPUs can be enabled on boot. This assumes that the PSCI firmware > >> has been loaded during the initial bootstrap on the device before the > >> kernel starts (which is typically the case for these platforms). The > >> PSCI firmware version is set to v0.2 which aligns with the current > >> shipping version for Tegra. > > > > This seems fine, although I'd expect PSCI to be used everywhere on > > Tegra, so putting this in tegra210.dtsi would make more sense. > > It's fine with me. Although technically, tegra210-smaug ships with > psci-v1.0 and tegra210-jetson-tx1 currently have psci-v0.2. However, I > did test both with the psci version set to v1.0 and the jetson-tx1, did > detect the version automatically and reverted to v0.2 (which is a > feature of psci >= v0.2). Please don't rely upon that. If the DT lists 0.2 and the FW reports 1.0 we deliberately upgrade and treat it as 1.0, but the other way around was not a deliberate decision. If the FW is not necessarily 1.0, please do not list 1.0 in the DT. Thanks, Mark.
On 2017-03-28, Jon Hunter wrote: > Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that > all CPUs can be enabled on boot. This assumes that the PSCI firmware > has been loaded during the initial bootstrap on the device before the > kernel starts (which is typically the case for these platforms). The > PSCI firmware version is set to v0.2 which aligns with the current > shipping version for Tegra. > > Reported-by: Martin Michlmayr <tbm@cyrius.com> > Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Tested on a jetson-tx1; all CPUs were recognized. Tested-By: Vagrant Cascadian <vagrant@debian.org> > --- > arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++ > arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 24 ++++++++++++++++++++++++ > 2 files changed, 47 insertions(+) > > diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > index 906fb836d241..de1696c28140 100644 > --- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi > @@ -296,6 +296,29 @@ > }; > }; > > + cpus { > + cpu@0 { > + enable-method = "psci"; > + }; > + > + cpu@1 { > + enable-method = "psci"; > + }; > + > + cpu@2 { > + enable-method = "psci"; > + }; > + > + cpu@3 { > + enable-method = "psci"; > + }; > + }; > + > + psci { > + compatible = "arm,psci-0.2"; > + method = "smc"; > + }; > + > regulators { > vdd_gpu: regulator@100 { > compatible = "pwm-regulator"; > diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi > index 0ec92578cacb..67cb039965fd 100644 > --- a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi > +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi > @@ -51,4 +51,28 @@ > clock-frequency = <32768>; > }; > }; > + > + cpus { > + cpu@0 { > + enable-method = "psci"; > + }; > + > + cpu@1 { > + enable-method = "psci"; > + }; > + > + cpu@2 { > + enable-method = "psci"; > + }; > + > + cpu@3 { > + enable-method = "psci"; > + }; > + }; > + > + psci { > + compatible = "arm,psci-0.2"; > + method = "smc"; > + }; > + > }; > -- > 2.7.4
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi index 906fb836d241..de1696c28140 100644 --- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi @@ -296,6 +296,29 @@ }; }; + cpus { + cpu@0 { + enable-method = "psci"; + }; + + cpu@1 { + enable-method = "psci"; + }; + + cpu@2 { + enable-method = "psci"; + }; + + cpu@3 { + enable-method = "psci"; + }; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + regulators { vdd_gpu: regulator@100 { compatible = "pwm-regulator"; diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi index 0ec92578cacb..67cb039965fd 100644 --- a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi @@ -51,4 +51,28 @@ clock-frequency = <32768>; }; }; + + cpus { + cpu@0 { + enable-method = "psci"; + }; + + cpu@1 { + enable-method = "psci"; + }; + + cpu@2 { + enable-method = "psci"; + }; + + cpu@3 { + enable-method = "psci"; + }; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + };
Add the CPU and PSCI nodes for the NVIDIA Tegra210 platforms so that all CPUs can be enabled on boot. This assumes that the PSCI firmware has been loaded during the initial bootstrap on the device before the kernel starts (which is typically the case for these platforms). The PSCI firmware version is set to v0.2 which aligns with the current shipping version for Tegra. Reported-by: Martin Michlmayr <tbm@cyrius.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> --- arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 23 +++++++++++++++++++++++ arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 24 ++++++++++++++++++++++++ 2 files changed, 47 insertions(+)