arm: tegra: use ARM's DEN0028 v0.9 and PSCI specs to define SMCs
authorVarun Wadekar <vwadekar@nvidia.com>
Mon, 11 Nov 2013 10:19:34 +0000 (15:19 +0530)
committerVarun Wadekar <vwadekar@nvidia.com>
Wed, 4 Dec 2013 04:05:13 +0000 (20:05 -0800)
commit66c8ea1b606bffd20d6520e958859a76b8be86df
treef019e61852812d786cf91436b5df57e1d9cf4f1e
parent3f2221cc49a7d8084a78e2b8ae9110d8f9d39fbc
arm: tegra: use ARM's DEN0028 v0.9 and PSCI specs to define SMCs

Use SIP Service calls (0x82000000x) and Standard Service calls
(0x8400000x) from the DEN0028 spec.

PSCI says that we need to use 0x8400000x in r0 for any power
management features i.e. cpu idle/hotplug/on/off followed by the
actual cpu state (LP2/LP1/LP0) in r1. This translates to Std service
calls space mentioned in the DEN0028 spec.

The SIP service calls can be used by silicon partners for their CPU
specific settings. We use this SMC space for L2 settings and to set
the CPU reset vector.

SMCs that are interrupted return a special status code to the NS world.
Look for that status and send a restart SMC (value = 60 << 24) when
received.

Also removed save/restore of r4-r12 as we rely on the secure OS to
do this for us.

Change-Id: I6fae83cc96d29c23305177df770fa07f7970c383
Signed-off-by: Scott Long <scottl@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-on: http://git-master/r/329998
arch/arm/mach-tegra/common.c
arch/arm/mach-tegra/cpuidle-t11x.c
arch/arm/mach-tegra/pm.c
arch/arm/mach-tegra/reset.c
arch/arm/mach-tegra/sleep.S