From: Thomas Abraham <thomas.abraham@arm.com>
To: Leif Lindholm <leif.lindholm@linaro.org>
Cc: AlexeiFedorov <Alexei.Fedorov@arm.com>,
nd@arm.com, Arvind Chauhan <Arvind.Chauhan@arm.com>,
Ard Biesheuvel <Ard.Biesheuvel@linaro.org>,
edk2-devel@lists.01.org, Stephanie.Hughes-Fitt@arm.com
Subject: Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
Date: Mon, 4 Jun 2018 18:44:33 +0530 [thread overview]
Message-ID: <CAJuA9ag-b24JyfVQ=nLcej1fuXrfYS1xwJUYoC+NAp6+0KweAw@mail.gmail.com> (raw)
In-Reply-To: <20180531213411.tndxn5oltr5vtsa2@bivouac.eciton.net>
On Fri, Jun 1, 2018 at 3:04 AM, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Wed, May 23, 2018 at 02:51:34PM +0100, AlexeiFedorov 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>
>
> The patch looks good to me, so if Thomas agrees:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>
> Thomas?
Verified that frame #1 can be marked as accessible from non-secure mode.
Reviewed-by: Thomas Abraham <thomas.abraham@arm.com>
>
> /
> Leif
>
>> ---
>> 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)'
>>
>>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2018-06-04 13:14 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 [this message]
2018-06-05 12:16 ` Leif Lindholm
2018-06-01 8:16 ` Ard Biesheuvel
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='CAJuA9ag-b24JyfVQ=nLcej1fuXrfYS1xwJUYoC+NAp6+0KweAw@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