All of lore.kernel.org
 help / color / mirror / Atom feed
From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
To: Julien Grall <julien.grall@arm.com>, xen-devel@lists.xen.org
Cc: sstabellini@kernel.org, andre.przywara@linaro.org
Subject: Re: [PATCH v2 03/15] xen/arm: vsmc: Implement SMCCC 1.1
Date: Fri, 9 Feb 2018 18:08:38 +0200	[thread overview]
Message-ID: <0c629724-ea99-8d39-b31c-1b5d137c41e3@epam.com> (raw)
In-Reply-To: <20180208192203.9556-4-julien.grall@arm.com>

Hi,

On 08.02.18 21:21, Julien Grall wrote:
> The new SMC Calling Convention (v1.1) allows for a reduced overhead
> when calling into the firmware, and provides a new feature discovery 
> mechanism. See "Firmware interfaces for mitigating CVE-2017-5715" ARM
> DEN 00070A.
> 
> Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> --- Changes in v2: - Add a humand readable name for the
> specification --- xen/arch/arm/vpsci.c        |  1 + 
> xen/arch/arm/vsmc.c         | 23 +++++++++++++++++++++++ 
> xen/include/asm-arm/smccc.h | 15 +++++++++++++++ 3 files changed, 39
> insertions(+)
> 
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c index
> e82b62db1a..19ee7caeb4 100644 --- a/xen/arch/arm/vpsci.c +++
> b/xen/arch/arm/vpsci.c @@ -212,6 +212,7 @@ static int32_t
> do_psci_1_0_features(uint32_t psci_func_id) case
> PSCI_0_2_FN32_SYSTEM_OFF: case PSCI_0_2_FN32_SYSTEM_RESET: case
> PSCI_1_0_FN32_PSCI_FEATURES: +    case ARM_SMCCC_VERSION_FID: return
> 0; default: return PSCI_NOT_SUPPORTED; diff --git
> a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c index
> 3d3bd95fee..a708aa5e81 100644 --- a/xen/arch/arm/vsmc.c +++
> b/xen/arch/arm/vsmc.c @@ -81,6 +81,26 @@ static bool
> fill_function_call_count(struct cpu_user_regs *regs, uint32_t cnt) 
> return true; }
> 
> +/* SMCCC interface for ARM Architecture */ +static bool
> handle_arch(struct cpu_user_regs *regs) +{ +    uint32_t fid =
> (uint32_t)get_user_reg(regs, 0); + +    switch ( fid ) +    { +
> case ARM_SMCCC_VERSION_FID: +        set_user_reg(regs, 0,
> ARM_SMCCC_VERSION_1_1); +        return true; + +    case
> ARM_SMCCC_ARCH_FEATURES_FID: +        /* Nothing supported yet */ +
> set_user_reg(regs, 0, -1); +        return true; +    } + +    return
> false; +} + /* SMCCC interface for hypervisor. Tell about itself. */ 
> static bool handle_hypervisor(struct cpu_user_regs *regs) { @@ -188,6
> +208,9 @@ static bool vsmccc_handle_call(struct cpu_user_regs *regs) 
> { switch ( smccc_get_owner(funcid) ) { +        case
> ARM_SMCCC_OWNER_ARCH: +            handled = handle_arch(regs); +
> break; case ARM_SMCCC_OWNER_HYPERVISOR: handled =
> handle_hypervisor(regs); break; diff --git
> a/xen/include/asm-arm/smccc.h b/xen/include/asm-arm/smccc.h index
> 62b3a8cdf5..431389c118 100644 --- a/xen/include/asm-arm/smccc.h +++
> b/xen/include/asm-arm/smccc.h @@ -16,6 +16,9 @@ #ifndef
> __ASM_ARM_SMCCC_H__ #define __ASM_ARM_SMCCC_H__
> 
> +#define ARM_SMCCC_VERSION_1_0   0x10000 +#define
> ARM_SMCCC_VERSION_1_1   0x10001 + /* * This file provides common
> defines for ARM SMC Calling Convention as * specified in @@ -100,6
> +103,18 @@ static inline uint32_t smccc_get_owner(register_t funcid) 
> ARM_SMCCC_OWNER_##owner,     \ 0xFF03)
> 
> +#define ARM_SMCCC_VERSION_FID                       \ +
> ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \ +
> ARM_SMCCC_CONV_32,           \ +
> ARM_SMCCC_OWNER_ARCH,        \ +                       0x0)
> \ + +#define ARM_SMCCC_ARCH_FEATURES_FID                 \ +
> ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \ +
> ARM_SMCCC_CONV_32,           \ +
> ARM_SMCCC_OWNER_ARCH,        \ +                       0x1) + /* Only
> one error code defined in SMCCC */ #define
> ARM_SMCCC_ERR_UNKNOWN_FUNCTION  (-1)
> 
> 

-- 
Volodymyr Babchuk

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-02-09 16:08 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-08 19:21 [PATCH v2 00/15] xen/arm: PSCI 1.1 and SMCCC-1.1 support and XSA-254 variant 2 update Julien Grall
2018-02-08 19:21 ` [PATCH v2 01/15] xen/arm: psci: Rework the PSCI definitions Julien Grall
2018-02-08 19:21 ` [PATCH v2 02/15] xen/arm: vpsci: Add support for PSCI 1.1 Julien Grall
2018-02-09 16:07   ` Volodymyr Babchuk
2018-02-09 16:13     ` Julien Grall
2018-02-09 16:30       ` Volodymyr Babchuk
2018-02-12 14:43   ` Wei Liu
2018-02-12 20:12   ` Mirela Simonovic
2018-02-12 21:41     ` Julien Grall
2018-02-12 23:16       ` Mirela Simonovic
2018-02-12 23:44         ` Julien Grall
2018-02-14 19:14           ` Mirela Simonovic
2018-02-15 11:25             ` Julien Grall
2018-02-08 19:21 ` [PATCH v2 03/15] xen/arm: vsmc: Implement SMCCC 1.1 Julien Grall
2018-02-09 16:08   ` Volodymyr Babchuk [this message]
2018-02-09 16:15     ` Julien Grall
2018-02-09 16:47       ` Volodymyr Babchuk
2018-02-08 19:21 ` [PATCH v2 04/15] xen/arm: vsmc: Implement SMCCC_ARCH_WORKAROUND_1 BP hardening support Julien Grall
2018-02-20  0:26   ` Stefano Stabellini
2018-02-08 19:21 ` [PATCH v2 05/15] xen/arm: Adapt smccc.h to be able to use it in assembly code Julien Grall
2018-02-20  0:28   ` Stefano Stabellini
2018-02-08 19:21 ` [PATCH v2 06/15] xen/arm64: Implement a fast path for handling SMCCC_ARCH_WORKAROUND_1 Julien Grall
2018-02-08 19:21 ` [PATCH v2 07/15] xen/arm64: Print a per-CPU message with the BP hardening method used Julien Grall
2018-02-09 16:43   ` Volodymyr Babchuk
2018-02-08 19:21 ` [PATCH v2 08/15] xen/arm: smccc: Add macros SMCCC_VERSION, SMCCC_VERSION_{MINOR, MAJOR} Julien Grall
2018-02-09 16:11   ` Volodymyr Babchuk
2018-02-08 19:21 ` [PATCH v2 09/15] xen/arm: psci: Detect SMCCC version Julien Grall
2018-02-09 17:04   ` Volodymyr Babchuk
2018-02-09 17:09     ` Julien Grall
2018-02-12 14:43       ` Volodymyr Babchuk
2018-02-12 15:06         ` Julien Grall
2018-02-08 19:21 ` [PATCH v2 10/15] xen/arm: smccc: Implement SMCCC v1.1 inline primitive Julien Grall
2018-02-08 19:21 ` [PATCH v2 11/15] xen/arm64: Add ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support Julien Grall
2018-02-12 16:55   ` Volodymyr Babchuk
2018-02-12 17:12     ` Julien Grall
2018-02-12 17:20       ` Volodymyr Babchuk
2018-02-12 17:26         ` Julien Grall
2018-02-08 19:22 ` [PATCH v2 12/15] xen/arm64: Kill PSCI_GET_VERSION as a variant-2 workaround Julien Grall
2018-02-13 11:59   ` Volodymyr Babchuk
2018-02-08 19:22 ` [PATCH v2 13/15] xen/arm: vpsci: Remove parameter 'ver' from do_common_cpu Julien Grall
2018-02-08 19:22 ` [PATCH v2 14/15] xen/arm: psci: Consolidate PSCI version print Julien Grall
2018-02-09 16:40   ` Volodymyr Babchuk
2018-02-08 19:22 ` [PATCH v2 15/15] xen/arm: psci: Prefix with static any functions not exported Julien Grall
2018-02-09 16:40   ` Volodymyr Babchuk

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=0c629724-ea99-8d39-b31c-1b5d137c41e3@epam.com \
    --to=volodymyr_babchuk@epam.com \
    --cc=andre.przywara@linaro.org \
    --cc=julien.grall@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xen.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.