From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lina Iyer <lina.iyer@linaro.org>,
khilman@linaro.org, sboyd@codeaurora.org, galak@codeaurora.org,
linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Cc: lorenzo.pieralisi@arm.com, msivasub@codeaurora.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v10 02/10] qcom: scm: Add SCM warmboot support for quad core SoCs
Date: Wed, 26 Nov 2014 10:41:35 +0100 [thread overview]
Message-ID: <5475A04F.9070508@linaro.org> (raw)
In-Reply-To: <1416593037-27527-3-git-send-email-lina.iyer@linaro.org>
On 11/21/2014 07:03 PM, Lina Iyer wrote:
> Quad core SoCs like APQ8074, APQ8064, APQ8084 need SCM support set up
> warm boot addresses in the Secure Monitor. Extend the SCM flags to
> support warm boot addresses for secondary cores.
>
> We do not need to export the warmboot flags. Move them into the
> implementation file.
>
> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+ one comment below
> ---
> drivers/soc/qcom/scm-boot.c | 31 +++++++++++++++++++++++++++++++
> include/soc/qcom/scm-boot.h | 3 +--
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/scm-boot.c b/drivers/soc/qcom/scm-boot.c
> index 60ff7b4..0871659 100644
> --- a/drivers/soc/qcom/scm-boot.c
> +++ b/drivers/soc/qcom/scm-boot.c
> @@ -21,6 +21,23 @@
> #include <soc/qcom/scm.h>
> #include <soc/qcom/scm-boot.h>
>
> +#define SCM_FLAG_WARMBOOT_CPU0 0x04
> +#define SCM_FLAG_WARMBOOT_CPU1 0x02
> +#define SCM_FLAG_WARMBOOT_CPU2 0x10
> +#define SCM_FLAG_WARMBOOT_CPU3 0x40
> +
> +struct scm_warmboot {
> + int flag;
> + void *entry;
> +};
> +
> +static struct scm_warmboot scm_flags[] = {
> + { .flag = SCM_FLAG_WARMBOOT_CPU0 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU1 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU2 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU3 },
> +};
> +
> /*
> * Set the cold/warm boot address for one of the CPU cores.
> */
> @@ -37,3 +54,17 @@ int scm_set_boot_addr(phys_addr_t addr, int flags)
> &cmd, sizeof(cmd), NULL, 0);
> }
> EXPORT_SYMBOL(scm_set_boot_addr);
> +
> +int scm_set_warm_boot_addr(void *entry, int cpu)
> +{
> + int ret;
> +
> + if (entry == scm_flags[cpu].entry)
> + return 0;
IMO, this test deserves a comment of why this is needed.
> +
> + ret = scm_set_boot_addr(virt_to_phys(entry), scm_flags[cpu].flag);
> + if (!ret)
> + scm_flags[cpu].entry = entry;
> +
> + return ret;
> +}
> diff --git a/include/soc/qcom/scm-boot.h b/include/soc/qcom/scm-boot.h
> index 6aabb24..529f55a 100644
> --- a/include/soc/qcom/scm-boot.h
> +++ b/include/soc/qcom/scm-boot.h
> @@ -16,9 +16,8 @@
> #define SCM_FLAG_COLDBOOT_CPU1 0x01
> #define SCM_FLAG_COLDBOOT_CPU2 0x08
> #define SCM_FLAG_COLDBOOT_CPU3 0x20
> -#define SCM_FLAG_WARMBOOT_CPU0 0x04
> -#define SCM_FLAG_WARMBOOT_CPU1 0x02
>
> int scm_set_boot_addr(phys_addr_t addr, int flags);
> +int scm_set_warm_boot_addr(void *entry, int cpu);
>
> #endif
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v10 02/10] qcom: scm: Add SCM warmboot support for quad core SoCs
Date: Wed, 26 Nov 2014 10:41:35 +0100 [thread overview]
Message-ID: <5475A04F.9070508@linaro.org> (raw)
In-Reply-To: <1416593037-27527-3-git-send-email-lina.iyer@linaro.org>
On 11/21/2014 07:03 PM, Lina Iyer wrote:
> Quad core SoCs like APQ8074, APQ8064, APQ8084 need SCM support set up
> warm boot addresses in the Secure Monitor. Extend the SCM flags to
> support warm boot addresses for secondary cores.
>
> We do not need to export the warmboot flags. Move them into the
> implementation file.
>
> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+ one comment below
> ---
> drivers/soc/qcom/scm-boot.c | 31 +++++++++++++++++++++++++++++++
> include/soc/qcom/scm-boot.h | 3 +--
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/scm-boot.c b/drivers/soc/qcom/scm-boot.c
> index 60ff7b4..0871659 100644
> --- a/drivers/soc/qcom/scm-boot.c
> +++ b/drivers/soc/qcom/scm-boot.c
> @@ -21,6 +21,23 @@
> #include <soc/qcom/scm.h>
> #include <soc/qcom/scm-boot.h>
>
> +#define SCM_FLAG_WARMBOOT_CPU0 0x04
> +#define SCM_FLAG_WARMBOOT_CPU1 0x02
> +#define SCM_FLAG_WARMBOOT_CPU2 0x10
> +#define SCM_FLAG_WARMBOOT_CPU3 0x40
> +
> +struct scm_warmboot {
> + int flag;
> + void *entry;
> +};
> +
> +static struct scm_warmboot scm_flags[] = {
> + { .flag = SCM_FLAG_WARMBOOT_CPU0 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU1 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU2 },
> + { .flag = SCM_FLAG_WARMBOOT_CPU3 },
> +};
> +
> /*
> * Set the cold/warm boot address for one of the CPU cores.
> */
> @@ -37,3 +54,17 @@ int scm_set_boot_addr(phys_addr_t addr, int flags)
> &cmd, sizeof(cmd), NULL, 0);
> }
> EXPORT_SYMBOL(scm_set_boot_addr);
> +
> +int scm_set_warm_boot_addr(void *entry, int cpu)
> +{
> + int ret;
> +
> + if (entry == scm_flags[cpu].entry)
> + return 0;
IMO, this test deserves a comment of why this is needed.
> +
> + ret = scm_set_boot_addr(virt_to_phys(entry), scm_flags[cpu].flag);
> + if (!ret)
> + scm_flags[cpu].entry = entry;
> +
> + return ret;
> +}
> diff --git a/include/soc/qcom/scm-boot.h b/include/soc/qcom/scm-boot.h
> index 6aabb24..529f55a 100644
> --- a/include/soc/qcom/scm-boot.h
> +++ b/include/soc/qcom/scm-boot.h
> @@ -16,9 +16,8 @@
> #define SCM_FLAG_COLDBOOT_CPU1 0x01
> #define SCM_FLAG_COLDBOOT_CPU2 0x08
> #define SCM_FLAG_COLDBOOT_CPU3 0x20
> -#define SCM_FLAG_WARMBOOT_CPU0 0x04
> -#define SCM_FLAG_WARMBOOT_CPU1 0x02
>
> int scm_set_boot_addr(phys_addr_t addr, int flags);
> +int scm_set_warm_boot_addr(void *entry, int cpu);
>
> #endif
>
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2014-11-26 9:41 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-21 18:03 [PATCH v10 00/10] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-21 18:03 ` [PATCH v10 01/10] qom: scm: Move scm-boot files to drivers/soc/qcom/ and include/soc/qcom Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 19:41 ` Stephen Boyd
2014-11-26 19:41 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 02/10] qcom: scm: Add SCM warmboot support for quad core SoCs Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 9:41 ` Daniel Lezcano [this message]
2014-11-26 9:41 ` Daniel Lezcano
2014-11-26 19:48 ` Stephen Boyd
2014-11-26 19:48 ` Stephen Boyd
2014-11-26 19:56 ` Lina Iyer
2014-11-26 19:56 ` Lina Iyer
2014-11-21 18:03 ` [PATCH v10 03/10] qcom: spm: Add Subsystem Power Manager driver Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:00 ` Stephen Boyd
2014-11-26 20:00 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 04/10] arm: dts: qcom: Add power-controller device node for 8074 Krait CPUs Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:01 ` Stephen Boyd
2014-11-26 20:01 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 05/10] arm: dts: qcom: Add power-controller device node for 8084 " Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:05 ` Stephen Boyd
2014-11-26 20:05 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 06/10] arm: dts: qcom: Update power-controller device node for 8064 " Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:06 ` Stephen Boyd
2014-11-26 20:06 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 07/10] qcom: cpuidle: Add cpuidle driver for QCOM cpus Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 10:04 ` Daniel Lezcano
2014-11-26 10:04 ` Daniel Lezcano
2014-11-26 19:43 ` Kevin Hilman
2014-11-26 19:43 ` Kevin Hilman
2014-11-27 10:23 ` Lorenzo Pieralisi
2014-11-27 10:23 ` Lorenzo Pieralisi
2014-11-26 17:59 ` Lorenzo Pieralisi
2014-11-26 17:59 ` Lorenzo Pieralisi
2014-11-26 21:03 ` Lina Iyer
2014-11-26 21:03 ` Lina Iyer
[not found] ` <1416593037-27527-1-git-send-email-lina.iyer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-11-21 18:03 ` [PATCH v10 08/10] arm: dts: qcom: Add idle states device nodes for 8074 Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:15 ` Stephen Boyd
2014-11-26 20:15 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 09/10] arm: dts: qcom: Add idle states device nodes for 8084 Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:16 ` Stephen Boyd
2014-11-26 20:16 ` Stephen Boyd
2014-11-21 18:03 ` [PATCH v10 10/10] arm: dts: qcom: Add idle state device nodes for 8064 Lina Iyer
2014-11-21 18:03 ` Lina Iyer
2014-11-26 20:18 ` Stephen Boyd
2014-11-26 20:18 ` Stephen Boyd
2014-11-25 19:11 ` [PATCH v10 00/10] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Lina Iyer
2014-11-25 19:11 ` Lina Iyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5475A04F.9070508@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=khilman@linaro.org \
--cc=lina.iyer@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=msivasub@codeaurora.org \
--cc=sboyd@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.