public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: AlexeiFedorov <Alexei.Fedorov@arm.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	Arvind Chauhan <Arvind.Chauhan@arm.com>,
	 Thomas Panakamattam Abraham <thomas.abraham@arm.com>,
	Leif Lindholm <Leif.Lindholm@linaro.org>,
	 Matteo Carlini <Matteo.Carlini@arm.com>,
	 Stephanie Hughes-Fitt <Stephanie.Hughes-Fitt@arm.com>,
	nd <nd@arm.com>,  Evan Lloyd <Evan.Lloyd@arm.com>,
	Sami Mujawar <Sami.Mujawar@arm.com>
Subject: Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
Date: Fri, 1 Jun 2018 10:16:28 +0200	[thread overview]
Message-ID: <CAKv+Gu-qu_4R0Z4raPxU3SPOESbqhOzpz3Y5tE6F0Og4uhb8ug@mail.gmail.com> (raw)
In-Reply-To: <1527083494-26148-1-git-send-email-Alexei.Fedorov@arm.com>

On 23 May 2018 at 15:51, AlexeiFedorov <Alexei.Fedorov@arm.com> wrote:
> From: Alexei Fedorov <alexei.fedorov@arm.com>
>
> Programming Reference for Base FVPs describes 2 Generic Memory-mapped
> Timer frames with Non-secure access permitted to frame #1.
> However ACPI GTDT lists both timer frames #0 and #1 with
> Secure Timer flag being set in GTx Common Flags field:
>  #define FVP_GTX_COMMON_FLAGS
>    (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_SECURE)
> Declaring both timer frames as Secure prevents OS running
> in Non-secure state from accessing Generic Timer frame #1.
>
> This patch fixes the above issue by removal of FVP_GTX_COMMON_FLAGS
> and adding two FVP_GTX_COMMON_FLAGS_S and FVP_GTX_COMMON_FLAGS_NS
> definitions used for Secure frame #0 and Non-secure frame #1
> accordingly.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---
> All the changes can be reviewed at:
> https://github.com/AlexeiFedorov/edk2-platforms/tree/262_gtdt_timer_frame_ns_v1
>
> Notes:
>     v1:
>     - remove FVP_GTX_COMMON_FLAGS                                 [Alexei]
>     - define FVP_GTX_COMMON_FLAGS_S and FVP_GTX_COMMON_FLAGS_NS   [Alexei]
>     - use FVP_GTX_COMMON_FLAGS_S for timer frame #0 and           [Alexei]
>           FVP_GTX_COMMON_FLAGS_NS for frame #1
>
>  Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc b/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc
> index 1cb4b498300cf1a08514835677154eace1dd1803..7a0b2b686ec849a8385ac5793e5d5855b9ba83ca 100644
> --- a/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc
> +++ b/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc
> @@ -1,7 +1,7 @@
>  /** @file
>  *  Generic Timer Description Table (GTDT)
>  *
> -*  Copyright (c) 2012 - 2017, ARM Limited. All rights reserved.
> +*  Copyright (c) 2012 - 2018, ARM Limited. All rights reserved.
>  *  Copyright (c) 2016, Linaro Ltd. All rights reserved
>  *
>  *  This program and the accompanying materials
> @@ -61,7 +61,8 @@
>  #define GTX_TIMER_SAVE_CONTEXT      EFI_ACPI_6_1_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY
>  #define GTX_TIMER_LOSE_CONTEXT      0
>
> -#define FVP_GTX_COMMON_FLAGS        (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_SECURE)
> +#define FVP_GTX_COMMON_FLAGS_S      (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_SECURE)
> +#define FVP_GTX_COMMON_FLAGS_NS     (GTX_TIMER_SAVE_CONTEXT | GTX_TIMER_NON_SECURE)
>
>  #define FVP_SBSA_WATCHDOG_REFRESH_BASE     0x000000002a450000
>  #define FVP_SBSA_WATCHDOG_CONTROL_BASE     0x000000002a440000
> @@ -136,7 +137,7 @@ FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
>        FVP_GTX_TIMER_FLAGS,                                  // UINT32 GTxPhysicalTimerFlags
>        0,                                                    // UINT32 GTxVirtualTimerGSIV
>        0,                                                    // UINT32 GTxVirtualTimerFlags
> -      FVP_GTX_COMMON_FLAGS                                  // UINT32 GTxCommonFlags
> +      FVP_GTX_COMMON_FLAGS_S                                // UINT32 GTxCommonFlags
>      },
>      {
>        1,                                                    // UINT8 GTFrameNumber
> @@ -149,7 +150,7 @@ FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
>        FVP_GTX_TIMER_FLAGS,                                  // UINT32 GTxPhysicalTimerFlags
>        0,                                                    // UINT32 GTxVirtualTimerGSIV
>        0,                                                    // UINT32 GTxVirtualTimerFlags
> -      FVP_GTX_COMMON_FLAGS                                  // UINT32 GTxCommonFlags
> +      FVP_GTX_COMMON_FLAGS_NS                               // UINT32 GTxCommonFlags
>      }
>    },
>  #if (FVP_WATCHDOG_COUNT != 0)
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
>
>


      parent reply	other threads:[~2018-06-01  8:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-23 13:51 [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure AlexeiFedorov
2018-05-31 21:34 ` Leif Lindholm
2018-06-04 13:14   ` Thomas Abraham
2018-06-05 12:16     ` Leif Lindholm
2018-06-01  8:16 ` Ard Biesheuvel [this message]

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-list 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=CAKv+Gu-qu_4R0Z4raPxU3SPOESbqhOzpz3Y5tE6F0Og4uhb8ug@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /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