All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <cw00.choi@samsung.com>
To: Olof Johansson <olof@lixom.net>
Cc: kgene.kim@samsung.com, t.figa@samsung.com,
	linux-samsung-soc@vger.kernel.org, kyungmin.park@samsung.com,
	inki.dae@samsung.com, sw0312.kim@samsung.com,
	hyunhee.kim@samsung.com, yj44.cho@samsung.com,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 04/27] ARM: EXYNOS: Support secondary CPU boot of Exynos4212
Date: Fri, 11 Apr 2014 14:14:01 +0900	[thread overview]
Message-ID: <53477A19.6070509@samsung.com> (raw)
In-Reply-To: <20140411014424.GA14934@quad.lixom.net>

Hi,

On 04/11/2014 10:44 AM, Olof Johansson wrote:
> On Thu, Apr 10, 2014 at 06:37:15PM +0900, Chanwoo Choi wrote:
>> From: Kyungmin Park <kyungmin.park@samsung.com>
>>
>> This patch fix the offset of CPU boot address and change parameter of smc call
>> of SMC_CMD_CPU1BOOT command for Exynos4212.
>>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> ---
>>  arch/arm/mach-exynos/firmware.c | 14 ++++++++++++--
>>  1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
>> index 932129e..91a911d 100644
>> --- a/arch/arm/mach-exynos/firmware.c
>> +++ b/arch/arm/mach-exynos/firmware.c
>> @@ -18,6 +18,8 @@
>>  
>>  #include <mach/map.h>
>>  
>> +#include <plat/cpu.h>
>> +
>>  #include "smc.h"
>>  
>>  static int exynos_do_idle(void)
>> @@ -28,14 +30,22 @@ static int exynos_do_idle(void)
>>  
>>  static int exynos_cpu_boot(int cpu)
>>  {
>> -	exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
>> +	if (soc_is_exynos4212())
>> +		exynos_smc(SMC_CMD_CPU1BOOT, 0, 0, 0);
>> +	else
>> +		exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
> 
> 	/* <explain why you need this special case on 4212> */

It's better to ask system lsi person. We don't know it well.
I got the guide about secondary boot from system lsi.
But, this patch was completely tested.

> 	if (soc_is_exynos4212())
> 		cpu = 0;
> 
> ...and then do the call as before.

OK, I'll modify it as following:

 static int exynos_cpu_boot(int cpu)
 {
+       if (soc_is_exynos4212())
+               cpu = 0;
+
        exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
        return 0;
 }

> 
> 
>>  	return 0;
>>  }
>>  
>>  static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
>>  {
>> -	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
>> +	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
>>  
>> +	if (soc_is_exynos4212())
>> +		goto out;
>> +	else
>> +		boot_reg += 4*cpu;
> 
> 	if (!soc_is_exynos4212())
> 		boot_reg += 4 * cpu;
> 
> That way you avoid a goto, especially since the "goto out" isn't actually
> an "out", it's still doing stuff at the end of the funciton.
> 

OK, I'll remove goto statement and then modify it as your comment.

-       void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
+       void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
+
+       if (!soc_is_exynos4212())
+               boot_reg += 4*cpu;

Best Regards,
Chanwoo Choi

WARNING: multiple messages have this Message-ID (diff)
From: cw00.choi@samsung.com (Chanwoo Choi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/27] ARM: EXYNOS: Support secondary CPU boot of Exynos4212
Date: Fri, 11 Apr 2014 14:14:01 +0900	[thread overview]
Message-ID: <53477A19.6070509@samsung.com> (raw)
In-Reply-To: <20140411014424.GA14934@quad.lixom.net>

Hi,

On 04/11/2014 10:44 AM, Olof Johansson wrote:
> On Thu, Apr 10, 2014 at 06:37:15PM +0900, Chanwoo Choi wrote:
>> From: Kyungmin Park <kyungmin.park@samsung.com>
>>
>> This patch fix the offset of CPU boot address and change parameter of smc call
>> of SMC_CMD_CPU1BOOT command for Exynos4212.
>>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> ---
>>  arch/arm/mach-exynos/firmware.c | 14 ++++++++++++--
>>  1 file changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
>> index 932129e..91a911d 100644
>> --- a/arch/arm/mach-exynos/firmware.c
>> +++ b/arch/arm/mach-exynos/firmware.c
>> @@ -18,6 +18,8 @@
>>  
>>  #include <mach/map.h>
>>  
>> +#include <plat/cpu.h>
>> +
>>  #include "smc.h"
>>  
>>  static int exynos_do_idle(void)
>> @@ -28,14 +30,22 @@ static int exynos_do_idle(void)
>>  
>>  static int exynos_cpu_boot(int cpu)
>>  {
>> -	exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
>> +	if (soc_is_exynos4212())
>> +		exynos_smc(SMC_CMD_CPU1BOOT, 0, 0, 0);
>> +	else
>> +		exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
> 
> 	/* <explain why you need this special case on 4212> */

It's better to ask system lsi person. We don't know it well.
I got the guide about secondary boot from system lsi.
But, this patch was completely tested.

> 	if (soc_is_exynos4212())
> 		cpu = 0;
> 
> ...and then do the call as before.

OK, I'll modify it as following:

 static int exynos_cpu_boot(int cpu)
 {
+       if (soc_is_exynos4212())
+               cpu = 0;
+
        exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
        return 0;
 }

> 
> 
>>  	return 0;
>>  }
>>  
>>  static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
>>  {
>> -	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
>> +	void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
>>  
>> +	if (soc_is_exynos4212())
>> +		goto out;
>> +	else
>> +		boot_reg += 4*cpu;
> 
> 	if (!soc_is_exynos4212())
> 		boot_reg += 4 * cpu;
> 
> That way you avoid a goto, especially since the "goto out" isn't actually
> an "out", it's still doing stuff at the end of the funciton.
> 

OK, I'll remove goto statement and then modify it as your comment.

-       void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c + 4*cpu;
+       void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
+
+       if (!soc_is_exynos4212())
+               boot_reg += 4*cpu;

Best Regards,
Chanwoo Choi

  reply	other threads:[~2014-04-11  5:14 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-10  9:37 [PATCH 00/27] Support new Exynos3250 SoC based on Cortex-A7 dual core Chanwoo Choi
2014-04-10  9:37 ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 01/27] ARM: EXYNOS: Add Exynos3250 SoC ID Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-11  1:46   ` Olof Johansson
2014-04-11  1:46     ` Olof Johansson
2014-04-11  6:32     ` Chanwoo Choi
2014-04-11  6:32       ` Chanwoo Choi
2014-04-11  7:09       ` Chanwoo Choi
2014-04-11  7:09         ` Chanwoo Choi
2014-04-11  8:12         ` Arnd Bergmann
2014-04-11  8:12           ` Arnd Bergmann
2014-04-11  8:12           ` Arnd Bergmann
2014-04-11  8:39       ` Tomasz Figa
2014-04-11  8:39         ` Tomasz Figa
2014-04-14  5:13         ` Chanwoo Choi
2014-04-14  5:13           ` Chanwoo Choi
2014-04-16 15:53           ` Tomasz Figa
2014-04-16 15:53             ` Tomasz Figa
2014-04-17  1:37             ` Chanwoo Choi
2014-04-17  1:37               ` Chanwoo Choi
2014-04-11  3:56   ` Sachin Kamat
2014-04-11  3:56     ` Sachin Kamat
2014-04-11  5:54     ` Chanwoo Choi
2014-04-11  5:54       ` Chanwoo Choi
2014-04-11  5:56       ` Sachin Kamat
2014-04-11  5:56         ` Sachin Kamat
2014-04-11  6:07         ` Chanwoo Choi
2014-04-11  6:07           ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 02/27] ARM: EXYNOS: Add IO mapping for non-secure SYSRAM of Exynos3250 Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 03/27] ARM: EXYNOS: Add IO mapping for PMU " Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-11  1:48   ` Olof Johansson
2014-04-11  1:48     ` Olof Johansson
2014-04-11  2:03     ` Chanwoo Choi
2014-04-11  2:03       ` Chanwoo Choi
2014-04-11  8:41       ` Arnd Bergmann
2014-04-11  8:41         ` Arnd Bergmann
2014-04-11 22:39         ` 최찬우
2014-04-11 22:39           ` 최찬우
2014-04-10  9:37 ` [PATCH 04/27] ARM: EXYNOS: Support secondary CPU boot of Exynos4212 Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-11  1:44   ` Olof Johansson
2014-04-11  1:44     ` Olof Johansson
2014-04-11  5:14     ` Chanwoo Choi [this message]
2014-04-11  5:14       ` Chanwoo Choi
2014-04-11  6:04       ` Sangbeom Kim
2014-04-11  6:04         ` Sangbeom Kim
2014-04-11  7:14         ` Tomasz Figa
2014-04-11  7:14           ` Tomasz Figa
2014-04-10  9:37 ` [PATCH 05/27] ARM: EXYNOS: Support secondary CPU boot of Exynos3250 Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 06/27] ARM: EXYNOS:: Enter a15 lowpower mode for Exynos3250 based on Cortex-a7 Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 07/27] irqchip: Declare cortex-a7's irqchip to initialize gic from dt Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10  9:37 ` [PATCH 08/27] pinctrl: exynos: Add driver data for Exynos3250 Chanwoo Choi
2014-04-10  9:37   ` Chanwoo Choi
2014-04-10 10:05 ` [PATCH 09/27] clk: samsung: exynos3250: Add clocks using common clock framework Chanwoo Choi
2014-04-10 10:05   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 10/27] ARM: dts: exynos3250: Add new exynos3250.dtsi file Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-11  4:01   ` Sachin Kamat
2014-04-11  4:01     ` Sachin Kamat
2014-04-11  4:46     ` Chanwoo Choi
2014-04-11  4:46       ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 11/27] ARM: dts: exynos3250: Add GIC dt node for Exynos3250 Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 12/27] ARM: dts: exynos3250: Add default interrupt-parent connected with GIC Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-11  4:00   ` Olof Johansson
2014-04-11  4:00     ` Olof Johansson
2014-04-11  4:44     ` Chanwoo Choi
2014-04-11  4:44       ` Chanwoo Choi
2014-04-11  4:44       ` Chanwoo Choi
2014-04-11  8:51       ` Tomasz Figa
2014-04-11  8:51         ` Tomasz Figa
2014-04-11 22:30         ` 최찬우
2014-04-11 22:30           ` 최찬우
2014-04-10 10:06 ` [PATCH 13/27] ARM: dts: exynos3250: Add pin control device tree data Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 14/27] ARM: dts: exynos3250: Add device tree nodes for clock controllers Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 15/27] ARM: dts: exynos3250: Add uart dt node to support seiral ports Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-11  4:03   ` Sachin Kamat
2014-04-11  4:03     ` Sachin Kamat
2014-04-11  4:50     ` Chanwoo Choi
2014-04-11  4:50       ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 16/27] ARM: dts: exynos3250: Add MCT dt node Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 17/27] ARM: dts: exynos3250: Add ADC dt node to read analog raw data Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 18/27] ARM: dts: exynos3250: Add i2c dt node Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 19/27] ARM: dts: exynos3250: Add Mobile Storage Host Card Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 20/27] ARM: dts: exynos3250: Move definitions of external clocks to SoC dtsi Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 21/27] ARM: dts: exynos3250: Add PMU dt data Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:23   ` Chanho Park
2014-04-10 10:23     ` Chanho Park
2014-04-10 11:20     ` Chanwoo Choi
2014-04-10 11:20       ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 22/27] ARM: dts: exynos3250: Add amba and pdma dt node Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 23/27] ARM: dts: exynos3250: Add spi dt node to support spi bus Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 24/27] ARM: dts: exynos3250: Add pwm dt node to support PWM Timer Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 25/27] ARM: dts: exynos3250: Add RTC dt node Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 26/27] ARM: dts: exynos3250: Add power domain dt nodes Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06 ` [PATCH 27/27] ARM: dts: exynos3250: Add CPUs dt node for Exynos3250 Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
2014-04-10 10:06   ` Chanwoo Choi
  -- strict thread matches above, loose matches on Subject: below --
2014-04-10  9:28 [PATCH 00/27] Support new Exynos3250 SoC based on Cortex-A7 dual core Chanwoo Choi
2014-04-10  9:28 ` [PATCH 04/27] ARM: EXYNOS: Support secondary CPU boot of Exynos4212 Chanwoo Choi
2014-04-10  9:28   ` Chanwoo Choi

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=53477A19.6070509@samsung.com \
    --to=cw00.choi@samsung.com \
    --cc=hyunhee.kim@samsung.com \
    --cc=inki.dae@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=sw0312.kim@samsung.com \
    --cc=t.figa@samsung.com \
    --cc=yj44.cho@samsung.com \
    /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.