All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoffer Dall <christoffer.dall@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 7/8] ARM: extend non-secure switch to also go into HYP mode
Date: Thu, 3 Oct 2013 19:55:15 +0100	[thread overview]
Message-ID: <20131003185515.GG3029@lvm> (raw)
In-Reply-To: <20131003082457.4fcb136f@lilith>

On Thu, Oct 03, 2013 at 08:24:57AM +0200, Albert ARIBAUD wrote:
> Hi Andre,
> 
> On Thu, 19 Sep 2013 18:06:45 +0200, Andre Przywara
> <andre.przywara@linaro.org> wrote:
> 
> > For the KVM and XEN hypervisors to be usable, we need to enter the
> > kernel in HYP mode. Now that we already are in non-secure state,
> > HYP mode switching is within short reach.
> > 
> > While doing the non-secure switch, we have to enable the HVC
> > instruction and setup the HYP mode HVBAR (while still secure).
> > 
> > The actual switch is done by dropping back from a HYP mode handler
> > without actually leaving HYP mode, so we introduce a new handler
> > routine in our new secure exception vector table.
> > 
> > In the assembly switching routine we save and restore the banked LR
> > and SP registers around the hypercall to do the actual HYP mode
> > switch.
> > 
> > The C routine first checks whether we are in HYP mode already and
> > also whether the virtualization extensions are available. It also
> > checks whether the HYP mode switch was finally successful.
> > The bootm command part only calls the new function after the
> > non-secure switch.
> > 
> > Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
> > ---
> >  arch/arm/cpu/armv7/Makefile      |  2 +-
> >  arch/arm/cpu/armv7/nonsec_virt.S | 43 +++++++++++++++++++++++++++++++++++-----
> >  arch/arm/cpu/armv7/virt-v7.c     | 37 ++++++++++++++++++++++++++++++++++
> >  arch/arm/include/asm/armv7.h     |  6 ++++--
> >  arch/arm/lib/bootm.c             |  7 ++++++-
> >  5 files changed, 86 insertions(+), 9 deletions(-)
> > 
> > Changes:
> > v3..v4: w/s fixes, embed error output
> > v4..v5: none
> 
> Seems like Christoffer's comment was not addressed here but IIUC, it
> was in other files (Christoffer, feel free to comment). Any reason why
> the "older asm" comments form was not replaced in here?
>   

I think these comments are a bit superflous, but not exactly harmful, so
I didn't raise the flag when they were not corrected.  My thought was
that if you're building for a board that has support for the
virtualization extensions you should be using a toolchain that knows
about them too, but Andre pointed out that his (I think Debian) still
used an old enough cross toolchain not to have this support.

In any case, I don't think this warrants holding back the patches but
can be fixed as a follow-up if the community agrees that we need to
support older toolchains by some define that encodes the hvc and eret
instructions properly.

Thanks,
-Christoffer

  reply	other threads:[~2013-10-03 18:55 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-19 16:06 [U-Boot] [PATCH v5 0/8] ARMv7: Add HYP mode switching support Andre Przywara
2013-09-19 16:06 ` [U-Boot] [PATCH v5 1/8] ARM: prepare armv7.h to be included from assembly source Andre Przywara
2013-09-19 16:06 ` [U-Boot] [PATCH v5 2/8] ARM: add secure monitor handler to switch to non-secure state Andre Przywara
2013-09-19 21:50   ` Mj Embd
2013-09-20  0:42     ` Christoffer Dall
2013-09-20  2:38       ` Mj Embd
2013-09-20  3:47         ` Christoffer Dall
2013-10-03  6:30   ` Albert ARIBAUD
2013-10-12  9:27   ` [U-Boot] [PATCH v5 2/8] ARM: add secure monitor handler to switchto " TigerLiu at viatech.com.cn
2013-10-12 19:50     ` Albert ARIBAUD
2013-10-14  2:14       ` TigerLiu at viatech.com.cn
2013-10-14  5:16         ` Albert ARIBAUD
2013-10-14  5:23           ` TigerLiu at viatech.com.cn
2013-09-19 16:06 ` [U-Boot] [PATCH v5 3/8] ARM: add assembly routine to switch to " Andre Przywara
2013-09-19 16:30   ` Mj Embd
2013-09-19 19:26     ` Christoffer Dall
2013-09-19 19:57       ` Mj Embd
2013-09-19 20:11         ` Christoffer Dall
2013-09-19 20:38           ` Mj Embd
2013-09-19 21:31             ` Andre Przywara
2013-09-19 21:39               ` Mj Embd
2013-09-19 21:55                 ` Mj Embd
2013-09-19 22:35                   ` Peter Maydell
2013-09-19 22:50                     ` Mj Embd
2013-09-19 23:21                       ` Peter Maydell
2013-09-19 21:28           ` Ian Campbell
2013-09-19 21:09         ` Andre Przywara
2013-09-19 21:27         ` Ian Campbell
2013-09-19 16:06 ` [U-Boot] [PATCH v5 4/8] ARM: add C function " Andre Przywara
2013-09-19 16:06 ` [U-Boot] [PATCH v5 5/8] ARM: trigger non-secure state switch during bootm execution Andre Przywara
2013-09-19 16:06 ` [U-Boot] [PATCH v5 6/8] ARM: add SMP support for non-secure switch Andre Przywara
2013-09-19 16:06 ` [U-Boot] [PATCH v5 7/8] ARM: extend non-secure switch to also go into HYP mode Andre Przywara
2013-10-03  6:24   ` Albert ARIBAUD
2013-10-03 18:55     ` Christoffer Dall [this message]
2013-10-03 19:14       ` Albert ARIBAUD
2013-09-19 16:06 ` [U-Boot] [PATCH v5 8/8] ARM: VExpress: enable ARMv7 virt support for VExpress A15 Andre Przywara
2013-10-03 19:31 ` [U-Boot] [PATCH v5 0/8] ARMv7: Add HYP mode switching support Albert ARIBAUD

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=20131003185515.GG3029@lvm \
    --to=christoffer.dall@linaro.org \
    --cc=u-boot@lists.denx.de \
    /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.