linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mans@mansr.com (Måns Rullgård)
To: linux-arm-kernel@lists.infradead.org
Subject: CPU_METHOD_OF_DECLARE() with Linux as non-secure OS
Date: Thu, 29 Oct 2015 18:04:40 +0000	[thread overview]
Message-ID: <yw1xeggdd007.fsf@unicorn.mansr.com> (raw)
In-Reply-To: <56325C67.8000007@free.fr> (Mason's message of "Thu, 29 Oct 2015 18:50:31 +0100")

Mason <slash.tmp@free.fr> writes:

> On 29/10/2015 17:03, M?ns Rullg?rd wrote:
>
>> Mason writes:
>> 
>>> I'm working on a dual-core SoC (Cortex-A9 MPCore) with Linux running
>>> as the non-secure OS. The secure OS implements some of the APIs used
>>> in OMAP2 via SMC.
>>>
>>> To start the second core, I used to define .smp in my DT_MACHINE_START
>>> definition, but Arnd wrote: "There are other ways to do [.smp and .restart]
>>> too, see CPU_METHOD_OF_DECLARE() and register_restart_handler()."
>>>
>>> Is CPU_METHOD_OF_DECLARE() the way to go?
>>> Is it "compatible" with executing smc to ask the secure OS to do whatever
>>> is needed to start the second core? (I don't understand why starting cores
>>> is secure OS responsibility.)
>>>
>>> I've located three relevant secure OS services:
>>> get_aux_core_boot
>>> set_aux_core_boot0
>>> set_aux_core_boot_addr
>>>
>>> I'm looking for guidance. What mach-* should I take as a reference to
>>> implement "second core startup from non-secure OS"?
>> 
>> See https://github.com/mansr/linux-tangox/commit/717dd5fab87aa90255460ba409970331cb577247
>
> I discussed cpu1 startup with the firmware author; he said the
> secure OS does all the heavy lifting, Linux is only expected to
> provide secondary_startup. AFAICT, we don't need to jump hoops
> like mach-vexpress did.

No major hoops really, and it's nice to have there as an extra safety
check.

> I don't think you can define the cpus node in your smp87xx.dtsi
> because smp8756 is single-core.

OK, I'll fix that.

> BTW, I see that you've tried to enable L2C. I would expect your
> board would panic?
>
> http://thread.gmane.org/gmane.linux.ports.arm.kernel/447493

I hacked around that, and everything works fine.  Nice performance boost
too.

There's also something wrong with the L2C-310 aux control register
setting.  The SMC call ID from OMAP (0x109) which is also used in some
Sigma code I found somewhere doesn't seem to do anything, so the
register is left at the value set by the secure boot code.  Perhaps you
can check with your firmware guy if there's another way of writing that
register.

-- 
M?ns Rullg?rd
mans at mansr.com

  reply	other threads:[~2015-10-29 18:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-28 12:36 CPU_METHOD_OF_DECLARE() with Linux as non-secure OS Mason
2015-10-29  4:22 ` Rob Herring
2015-10-29 16:03 ` Måns Rullgård
2015-10-29 17:50   ` Mason
2015-10-29 18:04     ` Måns Rullgård [this message]
2015-10-30 20:12       ` Mason
2015-10-31 15:41         ` Måns Rullgård
2015-11-02 10:10           ` Mason
2015-11-02 13:31             ` Måns Rullgård
2015-11-02 10:17           ` Russell King - ARM Linux
2015-11-02 11:55             ` Mason

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=yw1xeggdd007.fsf@unicorn.mansr.com \
    --to=mans@mansr.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).