public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Use PCD for Watchdog count
@ 2017-09-21 21:01 evan.lloyd
  2017-09-21 21:01 ` [PATCH v2 1/2] ArmPlatformPkg: Add PCD for SBSA Watchdog Count evan.lloyd
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: evan.lloyd @ 2017-09-21 21:01 UTC (permalink / raw)
  To: edk2-devel
  Cc: "ard.biesheuvel, "leif.lindholm, "Matteo.Carlini,
	"nd, "Arvind.Chauhan, "Daniil.Egranov,
	"thomas.abraham

From: EvanLloyd <evan.lloyd@arm.com>

Paired patches for edk2 and edk2-platforms that add and use a PCD
indicating the number of SBSA Watchdog timers present.  This makes
things more configurable, and is consistent with other examples of
platform characteristics. It may also help with debates over GTDT
inclusion (or not) of secure timers.

Code is available at:
  https://github.com/EvanLloyd/tianocore/tree/162_WDpcd_v2
  https://github.com/EvanLloyd/edk2-platforms/tree/162_WDpcd_v2

Orignal submission was:
https://lists.01.org/pipermail/edk2-devel/2017-September/014838.html

Sami Mujawar (1):
  ArmPlatformPkg: Add PCD for SBSA Watchdog Count

 ArmPlatformPkg/ArmPlatformPkg.dec               | 4 +++-
 ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h | 3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)

Sami Mujawar (1):
  Platforms/ARM: SBSA Watchdog PCD and build option

 Platform/ARM/JunoPkg/ArmJuno.dsc                     |  7 ++++++-
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc |  7 ++++++-
 Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf       |  4 +++-
 Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf   |  4 +++-
 Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc            |  6 +++++-
 Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc        | 14 +++++++++++---
 6 files changed, 34 insertions(+), 8 deletions(-)

-- 
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] ArmPlatformPkg: Add PCD for SBSA Watchdog Count
  2017-09-21 21:01 [PATCH v2 0/2] Use PCD for Watchdog count evan.lloyd
@ 2017-09-21 21:01 ` evan.lloyd
  2017-09-21 21:01 ` [PATCH v2 2/2] [edk2-platforms] Platforms/ARM: SBSA Watchdog PCD and build option evan.lloyd
  2017-10-06 14:18 ` [PATCH v2 0/2] Use PCD for Watchdog count Leif Lindholm
  2 siblings, 0 replies; 4+ messages in thread
From: evan.lloyd @ 2017-09-21 21:01 UTC (permalink / raw)
  To: edk2-devel
  Cc: "ard.biesheuvel, "leif.lindholm, "Matteo.Carlini,
	"nd, "Arvind.Chauhan, "Daniil.Egranov,
	"thomas.abraham

From: Sami Mujawar <sami.mujawar@arm.com>

The Juno and FVP platform implement the SBSA Watchdog timers.
Added PcdWatchdogCount to specify the number of Watchdog timers
that are available.

This allows configurability and an option to disable the watchdog
timers if required for testing.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
---

Notes:
    162_WDpcd_v2:
    - Moved JUNO_WATCHDOG_COUNT [Thomas Panakamattam Abraham]

 ArmPlatformPkg/ArmPlatformPkg.dec               | 4 +++-
 ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h | 3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec
index b8a6b131632dc6788b73a034a41b9e3176dffafa..2d82ead7612ae05c6f16f76008bde605a80ae5b9 100644
--- a/ArmPlatformPkg/ArmPlatformPkg.dec
+++ b/ArmPlatformPkg/ArmPlatformPkg.dec
@@ -1,6 +1,6 @@
 #/** @file
 #
-#  Copyright (c) 2011-2016, ARM Limited. All rights reserved.
+#  Copyright (c) 2011-2017, ARM Limited. All rights reserved.
 #  Copyright (c) 2015, Intel Corporation. All rights reserved.
 #
 #  This program and the accompanying materials
@@ -131,6 +131,8 @@ [PcdsFixedAtBuild.common,PcdsDynamic.common]
   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024
   gArmPlatformTokenSpaceGuid.PcdPL031RtcPpmAccuracy|300000000|UINT32|0x00000022
 
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount|0x0|UINT32|0x00000033
+
 [PcdsFixedAtBuild.ARM]
   # Stack for CPU Cores in Secure Monitor Mode
   gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0|UINT64|0x00000007
diff --git a/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h b/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h
index 7eaa239b1cbd4a2f54aa2d71e4e3b0279c5527d1..f7bfe0a1f937f17dfb68d0761cea3cbc5eacc14e 100644
--- a/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h
+++ b/ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2013-2014, ARM Limited. All rights reserved.
+*  Copyright (c) 2013-2017, ARM Limited. All rights reserved.
 *
 *  This program and the accompanying materials
 *  are licensed and made available under the terms and conditions of the BSD License
@@ -108,7 +108,6 @@
   JunoRevision = ARM_VE_BOARD_SYS_ID_REV( SysId );                     \
 }
 
-#define JUNO_WATCHDOG_COUNT  2
 
 // Define if the exported ACPI Tables are based on ACPI 5.0 spec or latest
 //#define ARM_JUNO_ACPI_5_0
-- 
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] [edk2-platforms] Platforms/ARM: SBSA Watchdog PCD and build option
  2017-09-21 21:01 [PATCH v2 0/2] Use PCD for Watchdog count evan.lloyd
  2017-09-21 21:01 ` [PATCH v2 1/2] ArmPlatformPkg: Add PCD for SBSA Watchdog Count evan.lloyd
@ 2017-09-21 21:01 ` evan.lloyd
  2017-10-06 14:18 ` [PATCH v2 0/2] Use PCD for Watchdog count Leif Lindholm
  2 siblings, 0 replies; 4+ messages in thread
From: evan.lloyd @ 2017-09-21 21:01 UTC (permalink / raw)
  To: edk2-devel
  Cc: "ard.biesheuvel, "leif.lindholm, "Matteo.Carlini,
	"nd, "Arvind.Chauhan, "Daniil.Egranov,
	"thomas.abraham

From: Sami Mujawar <sami.mujawar@arm.com>

Added PcdWatchdogCount to specify the number of Watchdog timers
that are available on Juno and FVP platform.

Also added DISABLE_SBSA_WATCHDOG option to disable the watchdog
timers if required for testing.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
---

Notes:
    162_WDpcd_v2:
    - Moved JUNO_WATCHDOG_COUNT [Thomas Panakamattam Abraham]

 Platform/ARM/JunoPkg/ArmJuno.dsc                     |  7 ++++++-
 Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc |  7 ++++++-
 Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf       |  4 +++-
 Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf   |  4 +++-
 Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc            |  9 ++++++++-
 Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc        | 14 +++++++++++---
 6 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/Platform/ARM/JunoPkg/ArmJuno.dsc b/Platform/ARM/JunoPkg/ArmJuno.dsc
index 72eab8b5be22a5516b243b2b5e70f6b919854707..54158d709ae836202254eef8b2e0eac8209ca9cc 100644
--- a/Platform/ARM/JunoPkg/ArmJuno.dsc
+++ b/Platform/ARM/JunoPkg/ArmJuno.dsc
@@ -1,5 +1,5 @@
 #
-#  Copyright (c) 2013-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2013-2017, ARM Limited. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -131,6 +131,11 @@ [PcdsFixedAtBuild.common]
   ## PL031 RealTimeClock
   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
 
+  ## SBSA Watchdog Count
+!ifndef DISABLE_SBSA_WATCHDOG
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount|2
+!endif
+
   # LAN9118 Ethernet Driver
   gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x18000000
   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultMacAddress|0x1215161822242628
diff --git a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
index e9f954d926ac25a2abd2f97a4141267927dfc0a3..51f0529db2516285641a8b6a49473db9d3d9224a 100644
--- a/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
+++ b/Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc
@@ -1,5 +1,5 @@
 #
-#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2011-2017, ARM Limited. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -135,6 +135,11 @@ [PcdsFixedAtBuild.common]
   ## PL031 RealTimeClock
   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
 
+  ## SBSA Watchdog Count
+!ifndef DISABLE_SBSA_WATCHDOG
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount|1
+!endif
+
 !ifdef EDK2_ENABLE_PL111
   ## PL111 Versatile Express Motherboard controller
   gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
diff --git a/Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf b/Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf
index e099c02f39dad4bb19692c87a12d8d3d6f1da4b6..741ea191be3672db225b82dc0e182fceddec83f2 100644
--- a/Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf
+++ b/Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf
@@ -2,7 +2,7 @@
 #
 #  ACPI table data and ASL sources required to boot the platform.
 #
-#  Copyright (c) 2014-2016, ARM Ltd. All rights reserved.
+#  Copyright (c) 2014-2017, ARM Ltd. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -61,3 +61,5 @@ [FixedPcd]
   gArmPlatformTokenSpaceGuid.PL011UartInterrupt
 
   gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
+
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount
diff --git a/Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf b/Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
index 59d323840a3a5e32a1a870f2098bdb2588ae91e1..cc0f06f533236b3bf68bfc6eefc745b776fdad16 100644
--- a/Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
+++ b/Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf
@@ -2,7 +2,7 @@
 #
 #  ACPI table data and ASL sources required to boot the platform.
 #
-#  Copyright (c) 2014-2016, ARM Ltd. All rights reserved.
+#  Copyright (c) 2014-2017, ARM Ltd. All rights reserved.
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD License
@@ -41,3 +41,5 @@ [FixedPcd]
   gArmTokenSpaceGuid.PcdGicDistributorBase
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
   gArmTokenSpaceGuid.PcdGicRedistributorsBase
+
+  gArmPlatformTokenSpaceGuid.PcdWatchdogCount
diff --git a/Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc b/Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc
index 5e83802d576b11178a7fdb556086dea41ee0859f..9d1296fdf29e9c233557cc8fb502fbbe932bc2db 100644
--- a/Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc
+++ b/Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc
@@ -1,7 +1,7 @@
 /** @file
 *  Generic Timer Description Table (GTDT)
 *
-*  Copyright (c) 2012 - 2016, ARM Limited. All rights reserved.
+*  Copyright (c) 2012 - 2017, ARM Limited. All rights reserved.
 *
 *  This program and the accompanying materials
 *  are licensed and made available under the terms and conditions of the BSD License
@@ -38,6 +38,9 @@
 
 #define GTDT_GTIMER_FLAGS           (GTDT_TIMER_ACTIVE_LOW | GTDT_TIMER_LEVEL_TRIGGERED)
 
+#define JUNO_WATCHDOG_COUNT         FixedPcdGet32 (PcdWatchdogCount)
+
+
 #ifdef ARM_JUNO_ACPI_5_0
   EFI_ACPI_5_0_GENERIC_TIMER_DESCRIPTION_TABLE Gtdt = {
     ARM_ACPI_HEADER(
@@ -87,7 +90,11 @@
       GTDT_GTIMER_FLAGS,                            // UINT32  NonSecurePL2TimerFlags
       0xFFFFFFFFFFFFFFFF,                           // UINT64  CntReadBasePhysicalAddress
       JUNO_WATCHDOG_COUNT,                          // UINT32  PlatformTimerCount
+#if (JUNO_WATCHDOG_COUNT != 0)
       sizeof (EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE) // UINT32 PlatfromTimerOffset
+#else
+      0
+#endif
     },
 #if (JUNO_WATCHDOG_COUNT != 0)
     {
diff --git a/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc b/Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc
index fc8f91f8b7ad8a066fb5fe4e3f98b1d5e9a3158c..ae570574b298094ff468f30b78fbd8c98db506c5 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 - 2014, ARM Limited. All rights reserved.
+*  Copyright (c) 2012 - 2017, ARM Limited. All rights reserved.
 *  Copyright (c) 2016, Linaro Ltd. All rights reserved
 *
 *  This program and the accompanying materials
@@ -36,9 +36,9 @@
 
 #define FVP_GTDT_GTIMER_FLAGS       (GTDT_TIMER_LOSE_CONTEXT | GTDT_TIMER_ACTIVE_HIGH | GTDT_TIMER_EDGE_TRIGGERED)
 
-#define FVP_PLATFORM_TIMER_COUNT    2
+#define FVP_WATCHDOG_COUNT          FixedPcdGet32 (PcdWatchdogCount)
+#define FVP_PLATFORM_TIMER_COUNT    (FVP_WATCHDOG_COUNT + 1)
 #define FVP_TIMER_FRAMES_COUNT      2
-#define FVP_WATCHDOG_COUNT          1
 
 #define FVP_GT_BLOCK_CTL_BASE           0x000000002A810000
 #define FVP_GT_BLOCK_FRAME0_CTL_BASE    0x000000002A820000
@@ -82,7 +82,9 @@ typedef struct {
   EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE          Gtdt;
   EFI_ACPI_6_1_GTDT_GT_BLOCK_STRUCTURE                  GtBlock;
   EFI_ACPI_6_1_GTDT_GT_BLOCK_TIMER_STRUCTURE            Frames[FVP_TIMER_FRAMES_COUNT];
+#if (FVP_WATCHDOG_COUNT != 0)
   EFI_ACPI_6_1_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE     Watchdogs[FVP_WATCHDOG_COUNT];
+#endif
 } FVP_GENERIC_TIMER_DESCRIPTION_TABLES;
 
 #pragma pack ()
@@ -106,7 +108,11 @@ FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
     FVP_GTDT_GTIMER_FLAGS,                                // UINT32  NonSecurePL2TimerFlags
     FVP_CNT_READ_BASE_ADDRESS,                            // UINT64  CntReadBasePhysicalAddress
     FVP_PLATFORM_TIMER_COUNT,                             // UINT32  PlatformTimerCount
+#if (FVP_WATCHDOG_COUNT != 0)
     sizeof (EFI_ACPI_6_1_GENERIC_TIMER_DESCRIPTION_TABLE) // UINT32  PlatfromTimerOffset
+#else
+    0
+#endif
   },
   {
     EFI_ACPI_6_1_GTDT_GT_BLOCK,                           // UINT8 Type
@@ -146,6 +152,7 @@ FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
       FVP_GTX_COMMON_FLAGS                                  // UINT32 GTxCommonFlags
     }
   },
+#if (FVP_WATCHDOG_COUNT != 0)
   {
     {
       EFI_ACPI_6_1_GTDT_SBSA_GENERIC_WATCHDOG,                // UINT8 Type
@@ -157,6 +164,7 @@ FVP_GENERIC_TIMER_DESCRIPTION_TABLES Gtdt = {
       FVP_SBSA_WATCHDOG_FLAGS                                 // UINT32 WatchdogTimerFlags
     }
   }
+#endif
 };
 
 //
-- 
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 0/2] Use PCD for Watchdog count
  2017-09-21 21:01 [PATCH v2 0/2] Use PCD for Watchdog count evan.lloyd
  2017-09-21 21:01 ` [PATCH v2 1/2] ArmPlatformPkg: Add PCD for SBSA Watchdog Count evan.lloyd
  2017-09-21 21:01 ` [PATCH v2 2/2] [edk2-platforms] Platforms/ARM: SBSA Watchdog PCD and build option evan.lloyd
@ 2017-10-06 14:18 ` Leif Lindholm
  2 siblings, 0 replies; 4+ messages in thread
From: Leif Lindholm @ 2017-10-06 14:18 UTC (permalink / raw)
  To: evan.lloyd; +Cc: edk2-devel

On Thu, Sep 21, 2017 at 10:01:40PM +0100, evan.lloyd@arm.com wrote:
> From: EvanLloyd <evan.lloyd@arm.com>
> 
> Paired patches for edk2 and edk2-platforms that add and use a PCD
> indicating the number of SBSA Watchdog timers present.  This makes
> things more configurable, and is consistent with other examples of
> platform characteristics. It may also help with debates over GTDT
> inclusion (or not) of secure timers.
> 
> Code is available at:
>   https://github.com/EvanLloyd/tianocore/tree/162_WDpcd_v2
>   https://github.com/EvanLloyd/edk2-platforms/tree/162_WDpcd_v2

The only comment from round one has been addressed.

Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

Pushed as 08e94eee94 (edk2) and 7f0f07968b (edk2-platforms).

> Orignal submission was:
> https://lists.01.org/pipermail/edk2-devel/2017-September/014838.html
> 
> Sami Mujawar (1):
>   ArmPlatformPkg: Add PCD for SBSA Watchdog Count
> 
>  ArmPlatformPkg/ArmPlatformPkg.dec               | 4 +++-
>  ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h | 3 +--
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> Sami Mujawar (1):
>   Platforms/ARM: SBSA Watchdog PCD and build option
> 
>  Platform/ARM/JunoPkg/ArmJuno.dsc                     |  7 ++++++-
>  Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc |  7 ++++++-
>  Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf       |  4 +++-
>  Platform/ARM/VExpressPkg/AcpiTables/AcpiTables.inf   |  4 +++-
>  Platform/ARM/JunoPkg/AcpiTables/Gtdt.aslc            |  6 +++++-
>  Platform/ARM/VExpressPkg/AcpiTables/Gtdt.aslc        | 14 +++++++++++---
>  6 files changed, 34 insertions(+), 8 deletions(-)
> 
> -- 
> Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-10-06 14:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-21 21:01 [PATCH v2 0/2] Use PCD for Watchdog count evan.lloyd
2017-09-21 21:01 ` [PATCH v2 1/2] ArmPlatformPkg: Add PCD for SBSA Watchdog Count evan.lloyd
2017-09-21 21:01 ` [PATCH v2 2/2] [edk2-platforms] Platforms/ARM: SBSA Watchdog PCD and build option evan.lloyd
2017-10-06 14:18 ` [PATCH v2 0/2] Use PCD for Watchdog count Leif Lindholm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox