All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Joseph Lo <josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: Peter De Schrijver
	<pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH] ARM: tegra30: fix power up sequence for boot_secondary
Date: Fri, 21 Dec 2012 14:12:51 -0700	[thread overview]
Message-ID: <50D4D0D3.5090106@wwwdotorg.org> (raw)
In-Reply-To: <1356077271.26029.81.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>

On 12/21/2012 01:07 AM, Joseph Lo wrote:
> On Fri, 2012-12-21 at 00:55 +0800, Stephen Warren wrote:
>> On 12/19/2012 07:30 PM, Joseph Lo wrote:
>>> The power up sequence is different on the cold boot CPU and the CPU
>>> that resumed from the hotplug. For the cold boot CPU, it was been power
>>> gated as default. To power up the cold boot CPU, the power should be
>>> un-gated by un toggling the power gate register manually.
>>>
>>> For the CPU that resumed from the hotplug, after un-halted the CPU. The
>>> flow controller will un-gate the power of the CPU. No need to manually
>>> control, just wait the power be resumed and continue the power up
>>> sequence after the CPU power is ready.
...
>> Also, it'd be good to explain (or at least briefly reference) the boot
>> path for a cold-boot CPU and a warm boot CPU; I assume that somehow a
>> cold boot CPU doesn't execute tegra_secondary_init(), but a warm boot
>> CPU does?
>>
> The boot path was the same. Both of the conditions were booted from
> tegra_boot_secondary. Just the power sequence has been different. We add
> the code to recover the power up sequence of warm boot CPU.

Ah, I see - tegra20_power_up_cpu() runs first to boot the secondary CPU,
and tegra_secondary_init() runs on the secondary CPU during the boot
process, which then sets tegra_cpu_init_mask which influences what
tegra20_power_up_cpu() does next time around. It'd be useful to say that
in the patch description.

WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: tegra30: fix power up sequence for boot_secondary
Date: Fri, 21 Dec 2012 14:12:51 -0700	[thread overview]
Message-ID: <50D4D0D3.5090106@wwwdotorg.org> (raw)
In-Reply-To: <1356077271.26029.81.camel@jlo-ubuntu-64.nvidia.com>

On 12/21/2012 01:07 AM, Joseph Lo wrote:
> On Fri, 2012-12-21 at 00:55 +0800, Stephen Warren wrote:
>> On 12/19/2012 07:30 PM, Joseph Lo wrote:
>>> The power up sequence is different on the cold boot CPU and the CPU
>>> that resumed from the hotplug. For the cold boot CPU, it was been power
>>> gated as default. To power up the cold boot CPU, the power should be
>>> un-gated by un toggling the power gate register manually.
>>>
>>> For the CPU that resumed from the hotplug, after un-halted the CPU. The
>>> flow controller will un-gate the power of the CPU. No need to manually
>>> control, just wait the power be resumed and continue the power up
>>> sequence after the CPU power is ready.
...
>> Also, it'd be good to explain (or at least briefly reference) the boot
>> path for a cold-boot CPU and a warm boot CPU; I assume that somehow a
>> cold boot CPU doesn't execute tegra_secondary_init(), but a warm boot
>> CPU does?
>>
> The boot path was the same. Both of the conditions were booted from
> tegra_boot_secondary. Just the power sequence has been different. We add
> the code to recover the power up sequence of warm boot CPU.

Ah, I see - tegra20_power_up_cpu() runs first to boot the secondary CPU,
and tegra_secondary_init() runs on the secondary CPU during the boot
process, which then sets tegra_cpu_init_mask which influences what
tegra20_power_up_cpu() does next time around. It'd be useful to say that
in the patch description.

  parent reply	other threads:[~2012-12-21 21:12 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-20  2:30 [PATCH] ARM: tegra30: fix power up sequence for boot_secondary Joseph Lo
2012-12-20  2:30 ` Joseph Lo
     [not found] ` <1355970603-28531-1-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-12-20 16:55   ` Stephen Warren
2012-12-20 16:55     ` Stephen Warren
     [not found]     ` <50D3430A.4020901-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-12-21  8:07       ` Joseph Lo
2012-12-21  8:07         ` Joseph Lo
     [not found]         ` <1356077271.26029.81.camel-yx3yKKdKkHfc7b1ADBJPm0n48jw8i0AO@public.gmane.org>
2012-12-21 21:12           ` Stephen Warren [this message]
2012-12-21 21:12             ` Stephen Warren
2013-01-02 12:15   ` Peter De Schrijver
2013-01-02 12:15     ` Peter De Schrijver

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=50D4D0D3.5090106@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.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.