From: Lina Iyer <lina.iyer@linaro.org>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: 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, lorenzo.pieralisi@arm.com,
msivasub@codeaurora.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v9 1/9] qcom: scm: scm_set_warm_boot_addr() to set the warmboot address
Date: Fri, 14 Nov 2014 09:33:32 -0700 [thread overview]
Message-ID: <20141114163332.GF45276@linaro.org> (raw)
In-Reply-To: <5465BD97.5070506@linaro.org>
On Fri, Nov 14 2014 at 01:30 -0700, Daniel Lezcano wrote:
>On 10/25/2014 01:40 AM, Lina Iyer wrote:
>>Set the warmboot address using an SCM call, only if the new address is
>>different than the old one.
>
>Please could you elaborate why a new address can be changed ?
>
Hotplug could have a different warmboot address.
>>Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
>>---
>> drivers/soc/qcom/scm-boot.c | 22 ++++++++++++++++++++++
>> include/soc/qcom/scm-boot.h | 1 +
>> 2 files changed, 23 insertions(+)
>>
>>diff --git a/drivers/soc/qcom/scm-boot.c b/drivers/soc/qcom/scm-boot.c
>>index 60ff7b4..5710967 100644
>>--- a/drivers/soc/qcom/scm-boot.c
>>+++ b/drivers/soc/qcom/scm-boot.c
>>@@ -37,3 +37,25 @@ int scm_set_boot_addr(phys_addr_t addr, int flags)
>> &cmd, sizeof(cmd), NULL, 0);
>> }
>> EXPORT_SYMBOL(scm_set_boot_addr);
>>+
>>+
>
>extra line.
>
>>+int scm_set_warm_boot_addr(void *entry, int cpu)
>>+{
>>+ static int flags[NR_CPUS] = {
>>+ SCM_FLAG_WARMBOOT_CPU0,
>>+ SCM_FLAG_WARMBOOT_CPU1,
>>+ SCM_FLAG_WARMBOOT_CPU2,
>>+ SCM_FLAG_WARMBOOT_CPU3,
>>+ };
>
>Please do not do that, you don't know what NR_CPUS value could be in
>the future with the single kernel image and that could lead to a bug
>very hard to find. The kernel stack is 4096.
>
>Move this out of the function:
>
>static int scm_flags[] = {
> SCM_FLAG_WARMBOOT_CPU0,
> SCM_FLAG_WARMBOOT_CPU1,
> SCM_FLAG_WARMBOOT_CPU2,
> SCM_FLAG_WARMBOOT_CPU3,
>};
Sure.
>
>>+ static DEFINE_PER_CPU(void *, last_known_entry);
>
>It sounds odd to add those static declaration here even if I
>understand that is to encapsulate them.
>
Sure.
>>+ int ret;
>>+
>>+ if (entry == per_cpu(last_known_entry, cpu))
>>+ return 0;
>
>My question is: why scm_set_warm_boot_addr could be called with
>different addresses ?
>
>If this is really needed, please replace the per_cpu variable by:
>
>struct scm_boot_addr {
> int flag;
> phys_addr_t entry;
>};
>
>static struct scm_boot_addr scm_flags[] = {
> { SCM_FLAG_WARMBOOT_CPU0, },
> { SCM_FLAG_WARMBOOT_CPU1, },
> { SCM_FLAG_WARMBOOT_CPU2, },
> { SCM_FLAG_WARMBOOT_CPU3, },
>};
>
Hmm.. OK.
>>+ ret = scm_set_boot_addr(virt_to_phys(entry), flags[cpu]);
>>+ if (!ret)
>>+ per_cpu(last_known_entry, cpu) = entry;
>>+
>>+ return ret;
>>+}
>>diff --git a/include/soc/qcom/scm-boot.h b/include/soc/qcom/scm-boot.h
>>index 02b445c..100938b 100644
>>--- a/include/soc/qcom/scm-boot.h
>>+++ b/include/soc/qcom/scm-boot.h
>>@@ -22,5 +22,6 @@
>> #define SCM_FLAG_WARMBOOT_CPU3 0x40
>
>By the way, if you look for encapsulation, perhaps these macros could
>be moved into scm-boot.c, no ?
>
Dont think anybody outside the file needs it.
>> 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: lina.iyer@linaro.org (Lina Iyer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v9 1/9] qcom: scm: scm_set_warm_boot_addr() to set the warmboot address
Date: Fri, 14 Nov 2014 09:33:32 -0700 [thread overview]
Message-ID: <20141114163332.GF45276@linaro.org> (raw)
In-Reply-To: <5465BD97.5070506@linaro.org>
On Fri, Nov 14 2014 at 01:30 -0700, Daniel Lezcano wrote:
>On 10/25/2014 01:40 AM, Lina Iyer wrote:
>>Set the warmboot address using an SCM call, only if the new address is
>>different than the old one.
>
>Please could you elaborate why a new address can be changed ?
>
Hotplug could have a different warmboot address.
>>Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
>>---
>> drivers/soc/qcom/scm-boot.c | 22 ++++++++++++++++++++++
>> include/soc/qcom/scm-boot.h | 1 +
>> 2 files changed, 23 insertions(+)
>>
>>diff --git a/drivers/soc/qcom/scm-boot.c b/drivers/soc/qcom/scm-boot.c
>>index 60ff7b4..5710967 100644
>>--- a/drivers/soc/qcom/scm-boot.c
>>+++ b/drivers/soc/qcom/scm-boot.c
>>@@ -37,3 +37,25 @@ int scm_set_boot_addr(phys_addr_t addr, int flags)
>> &cmd, sizeof(cmd), NULL, 0);
>> }
>> EXPORT_SYMBOL(scm_set_boot_addr);
>>+
>>+
>
>extra line.
>
>>+int scm_set_warm_boot_addr(void *entry, int cpu)
>>+{
>>+ static int flags[NR_CPUS] = {
>>+ SCM_FLAG_WARMBOOT_CPU0,
>>+ SCM_FLAG_WARMBOOT_CPU1,
>>+ SCM_FLAG_WARMBOOT_CPU2,
>>+ SCM_FLAG_WARMBOOT_CPU3,
>>+ };
>
>Please do not do that, you don't know what NR_CPUS value could be in
>the future with the single kernel image and that could lead to a bug
>very hard to find. The kernel stack is 4096.
>
>Move this out of the function:
>
>static int scm_flags[] = {
> SCM_FLAG_WARMBOOT_CPU0,
> SCM_FLAG_WARMBOOT_CPU1,
> SCM_FLAG_WARMBOOT_CPU2,
> SCM_FLAG_WARMBOOT_CPU3,
>};
Sure.
>
>>+ static DEFINE_PER_CPU(void *, last_known_entry);
>
>It sounds odd to add those static declaration here even if I
>understand that is to encapsulate them.
>
Sure.
>>+ int ret;
>>+
>>+ if (entry == per_cpu(last_known_entry, cpu))
>>+ return 0;
>
>My question is: why scm_set_warm_boot_addr could be called with
>different addresses ?
>
>If this is really needed, please replace the per_cpu variable by:
>
>struct scm_boot_addr {
> int flag;
> phys_addr_t entry;
>};
>
>static struct scm_boot_addr scm_flags[] = {
> { SCM_FLAG_WARMBOOT_CPU0, },
> { SCM_FLAG_WARMBOOT_CPU1, },
> { SCM_FLAG_WARMBOOT_CPU2, },
> { SCM_FLAG_WARMBOOT_CPU3, },
>};
>
Hmm.. OK.
>>+ ret = scm_set_boot_addr(virt_to_phys(entry), flags[cpu]);
>>+ if (!ret)
>>+ per_cpu(last_known_entry, cpu) = entry;
>>+
>>+ return ret;
>>+}
>>diff --git a/include/soc/qcom/scm-boot.h b/include/soc/qcom/scm-boot.h
>>index 02b445c..100938b 100644
>>--- a/include/soc/qcom/scm-boot.h
>>+++ b/include/soc/qcom/scm-boot.h
>>@@ -22,5 +22,6 @@
>> #define SCM_FLAG_WARMBOOT_CPU3 0x40
>
>By the way, if you look for encapsulation, perhaps these macros could
>be moved into scm-boot.c, no ?
>
Dont think anybody outside the file needs it.
>> 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-14 16:33 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-24 23:40 [PATCH v9 0/9] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 1/9] qcom: scm: scm_set_warm_boot_addr() to set the warmboot address Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-14 8:30 ` Daniel Lezcano
2014-11-14 8:30 ` Daniel Lezcano
2014-11-14 16:33 ` Lina Iyer [this message]
2014-11-14 16:33 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 2/9] qcom: spm: Add Subsystem Power Manager driver Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-14 15:56 ` Daniel Lezcano
2014-11-14 15:56 ` Daniel Lezcano
2014-11-19 17:43 ` Lina Iyer
2014-11-19 17:43 ` Lina Iyer
2014-11-26 11:19 ` Daniel Lezcano
2014-11-26 11:19 ` Daniel Lezcano
2014-11-26 15:20 ` Lina Iyer
2014-11-26 15:20 ` Lina Iyer
2014-11-26 15:22 ` Lina Iyer
2014-11-26 15:22 ` Lina Iyer
2014-11-14 22:46 ` Stephen Boyd
2014-11-14 22:46 ` Stephen Boyd
2014-11-18 16:56 ` Lina Iyer
2014-11-18 16:56 ` Lina Iyer
2014-11-18 20:28 ` Stephen Boyd
2014-11-18 20:28 ` Stephen Boyd
2014-11-17 21:32 ` Daniel Lezcano
2014-11-17 21:32 ` Daniel Lezcano
2014-11-18 18:00 ` Lina Iyer
2014-11-18 18:00 ` Lina Iyer
2014-11-18 19:39 ` Bjorn Andersson
2014-11-18 19:39 ` Bjorn Andersson
2014-11-26 18:04 ` Kevin Hilman
2014-11-26 18:04 ` Kevin Hilman
2014-11-26 21:25 ` Daniel Lezcano
2014-11-26 21:25 ` Daniel Lezcano
2014-10-24 23:40 ` [PATCH v9 3/9] arm: dts: qcom: Add power-controller device node for 8974 Krait CPUs Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 4/9] arm: dts: qcom: Add power-controller device node for 8084 " Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 5/9] arm: dts: qcom: Update power-controller device node for 8064 " Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 6/9] qcom: cpuidle: Add cpuidle driver for QCOM cpus Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-11-16 21:20 ` Daniel Lezcano
2014-11-16 21:20 ` Daniel Lezcano
2014-11-17 18:30 ` Lina Iyer
2014-11-17 18:30 ` Lina Iyer
2014-11-17 17:39 ` Lorenzo Pieralisi
2014-11-17 17:39 ` Lorenzo Pieralisi
2014-11-17 22:15 ` Lina Iyer
2014-11-17 22:15 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 7/9] arm: dts: qcom: Add idle states device nodes for 8974 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 8/9] arm: dts: qcom: Add idle states device nodes for 8084 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-24 23:40 ` [PATCH v9 9/9] arm: dts: qcom: Add idle state device nodes for 8064 Lina Iyer
2014-10-24 23:40 ` Lina Iyer
2014-10-27 9:15 ` [PATCH v9 0/9] cpuidle driver for QCOM SoCs: 8064, 8074, 8084 Ivan T. Ivanov
2014-10-27 9:15 ` Ivan T. Ivanov
2014-10-27 14:45 ` Lina Iyer
2014-10-27 14:45 ` Lina Iyer
2014-11-13 20:25 ` Lina Iyer
2014-11-13 20:25 ` 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=20141114163332.GF45276@linaro.org \
--to=lina.iyer@linaro.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=khilman@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.