linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: udmderic@gmail.com (udmd-eric wann)
To: linux-arm-kernel@lists.infradead.org
Subject: About secondary CPU resume PC address?
Date: Tue, 14 Jun 2011 19:02:24 +0800	[thread overview]
Message-ID: <BANLkTim-QXzsNTgrKsGac+Yum44KavvJ2w@mail.gmail.com> (raw)

  Hi:

        We am tracing Cortex-A9 SMP suspend/resume code now.
        We use linux-2.6.39 mach-tegra and mach-exynos4210 for reference code.
        (We don't have the hardware.)

        In mach-tegra, hardware can power down both CPU cores and the GICs.
      (http://lists.arm.linux.org.uk/lurker/message/20110124.020118.a08c51fc.en.html)

        Because CPU power off, so some CPU information should be
remembered in SRAM/Register/RAM ...
      The most important information we think is resume PC address for
"both" CPUs.

      For boot CPU, the resume address is handled by ROM code.
      But for secondary CPU, where is the resume entry address??

      It seems that tegra2 set the secondary CPU wakeup address in
function
       boot_secondary

       int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
       {
       		...
       		/* set the reset vector to point to the secondary_startup routine */

		boot_vector = virt_to_phys(tegra_secondary_startup);
		old_boot_vector = readl(EVP_CPU_RESET_VECTOR);
		writel(boot_vector, EVP_CPU_RESET_VECTOR);
		...
       }

       mach-tegra also set the function tegra_secondary_startup in
__CPUINIT section.
       So the secondary CPU resume will run the same path like the
first cold boot...
       Is it correct?

          However, in mach-exynos4, we don't see this behavior.
       mach-exynos4 set secondary cpu wakeup address only in
       void __init platform_smp_prepare_cpus(unsigned int max_cpus)
       and exynos4_secondary_startup is in __INIT section.
       So we don't know when the secondary cpu resume, which entry
address it should run...
       Do we miss some important key point?

       Thanks for your help.

       Best Regards

Eric Wann

             reply	other threads:[~2011-06-14 11:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-14 11:02 udmd-eric wann [this message]
2011-06-14 14:48 ` About secondary CPU resume PC address? Colin Cross

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=BANLkTim-QXzsNTgrKsGac+Yum44KavvJ2w@mail.gmail.com \
    --to=udmderic@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).