* [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
@ 2018-05-23 13:51 AlexeiFedorov
2018-05-31 21:34 ` Leif Lindholm
2018-06-01 8:16 ` Ard Biesheuvel
0 siblings, 2 replies; 5+ messages in thread
From: AlexeiFedorov @ 2018-05-23 13:51 UTC (permalink / raw)
To: edk2-devel
Cc: Arvind Chauhan, Thomas Panakamattam Abraham, Ard.Biesheuvel,
Leif.Lindholm, Matteo.Carlini, Stephanie.Hughes-Fitt, nd,
Thomas.Abraham, Evan.Lloyd, Sami.Mujawar
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>
---
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)'
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
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-01 8:16 ` Ard Biesheuvel
1 sibling, 1 reply; 5+ messages in thread
From: Leif Lindholm @ 2018-05-31 21:34 UTC (permalink / raw)
To: AlexeiFedorov
Cc: edk2-devel, Arvind Chauhan, Thomas Panakamattam Abraham,
Ard.Biesheuvel, Matteo.Carlini, Stephanie.Hughes-Fitt, nd,
Evan.Lloyd, Sami.Mujawar
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?
/
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)'
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
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-01 8:16 ` Ard Biesheuvel
1 sibling, 0 replies; 5+ messages in thread
From: Ard Biesheuvel @ 2018-06-01 8:16 UTC (permalink / raw)
To: AlexeiFedorov
Cc: edk2-devel@lists.01.org, Arvind Chauhan,
Thomas Panakamattam Abraham, Leif Lindholm, Matteo Carlini,
Stephanie Hughes-Fitt, nd, Evan Lloyd, Sami Mujawar
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)'
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
2018-05-31 21:34 ` Leif Lindholm
@ 2018-06-04 13:14 ` Thomas Abraham
2018-06-05 12:16 ` Leif Lindholm
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Abraham @ 2018-06-04 13:14 UTC (permalink / raw)
To: Leif Lindholm
Cc: AlexeiFedorov, nd, Arvind Chauhan, Ard Biesheuvel, edk2-devel,
Stephanie.Hughes-Fitt
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH edk2-platforms v1] Platform/ARM: Declare FVP Generic Timer Frame #1 as Non-secure
2018-06-04 13:14 ` Thomas Abraham
@ 2018-06-05 12:16 ` Leif Lindholm
0 siblings, 0 replies; 5+ messages in thread
From: Leif Lindholm @ 2018-06-05 12:16 UTC (permalink / raw)
To: Thomas Abraham
Cc: AlexeiFedorov, nd, Arvind Chauhan, Ard Biesheuvel, edk2-devel,
Stephanie.Hughes-Fitt
On Mon, Jun 04, 2018 at 06:44:33PM +0530, Thomas Abraham wrote:
> 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>
Thanks!
Pushed as 9bb89f3323.
/
Leif
> >
> > /
> > 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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-06-05 12:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox