public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
@ 2018-06-04 23:35 Udit Kumar
  2018-06-04 23:35 ` [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib Udit Kumar
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-04 23:35 UTC (permalink / raw)
  To: edk2-devel, ard.biesheuvel, leif.lindholm

Some platform support dynamic clocking, Which is controlled
by some jumper setting or hardware registers.
Result of that PCD PL011UartClkInHz needs to be updated for
frequency change.
This patch implements support for dynamic frequency for
PL011 uart.
This patch implement NULL lib for such platform where
Pcd clock frequency to PL011 can change

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
---
 .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
 .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
 .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
 3 files changed, 100 insertions(+)
 create mode 100644 ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
 create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
 create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c

diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
new file mode 100644
index 0000000..f9d1425
--- /dev/null
+++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
@@ -0,0 +1,32 @@
+/** @file
+*
+*  Copyright 2018 NXP
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef _ARMPLATFORMCLOCKLIB_H_
+#define _ARMPLATFORMCLOCKLIB_H_
+
+
+/**
+  Return frequency of PL011.
+
+  If this function return 0 then fixed value in Pcd will be used
+
+  @return Return frequency of PL011
+
+**/
+UINT32
+ArmPlatformGetPL011ClockFreq (
+  VOID
+  );
+
+#endif
diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
new file mode 100644
index 0000000..b708ad3
--- /dev/null
+++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
@@ -0,0 +1,33 @@
+#/* @file
+#  Copyright 2018 NXP
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#*/
+
+[Defines]
+  INF_VERSION                    = 0x0001000A
+  BASE_NAME                      = ArmPlatformClockLibNull
+  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = ArmPlatformClockLib
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+
+[LibraryClasses]
+  ArmLib
+  DebugLib
+
+[Sources.common]
+  ArmPlatformClockLibNull.c
diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
new file mode 100644
index 0000000..28eaa63
--- /dev/null
+++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
@@ -0,0 +1,35 @@
+/** @file
+*
+*  Copyright 2018 NXP
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include <Library/ArmPlatformClockLib.h>
+
+
+
+/**
+  Return clock in for PL011 Uart IP.
+**/
+UINT32
+ArmPlatformGetPL011ClockFreq (
+  VOID
+  )
+{
+  // Implement platform specific code
+  // and return PL011 freq
+
+  // Some platform supports dynamic clocking,
+  // This function needs to be implemented on platforms which supports
+  // dynamic clocking to avoid re-building of UEFI firmware for PL011
+  // clock change
+  return 0;
+}
-- 
1.9.1



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

* [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib
  2018-06-04 23:35 [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
@ 2018-06-04 23:35 ` Udit Kumar
  2018-06-05 12:24   ` Ard Biesheuvel
  2018-06-05 12:23 ` [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Ard Biesheuvel
  2018-06-05 12:30 ` Alexei Fedorov
  2 siblings, 1 reply; 13+ messages in thread
From: Udit Kumar @ 2018-06-04 23:35 UTC (permalink / raw)
  To: edk2-devel, ard.biesheuvel, leif.lindholm

This patch includes, ArmPlatformClock in PL011 lib.

In case of NULL implemenation of Clock Lib, Pcd
value will be used for PL011 frequency.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
---
 ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c   | 7 +++++--
 ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
index 6aa8063..40fa50a 100644
--- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
+++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
@@ -17,11 +17,14 @@
 
 #include <Base.h>
 
+#include <Library/ArmPlatformClockLib.h>
 #include <Library/IoLib.h>
 #include <Library/PcdLib.h>
 #include <Library/PL011UartLib.h>
 #include <Library/SerialPortLib.h>
 
+
+
 /** Initialise the serial device hardware with default settings.
 
   @retval RETURN_SUCCESS            The serial device was initialised.
@@ -48,7 +51,7 @@ SerialPortInitialize (
 
   return PL011UartInitializePort (
            (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
-           FixedPcdGet32 (PL011UartClkInHz),
+           ArmPlatformGetPL011ClockFreq() ? ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),
            &BaudRate,
            &ReceiveFifoDepth,
            &Parity,
@@ -156,7 +159,7 @@ SerialPortSetAttributes (
 {
   return PL011UartInitializePort (
            (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
-           FixedPcdGet32 (PL011UartClkInHz),
+           ArmPlatformGetPL011ClockFreq() ? ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),
            BaudRate,
            ReceiveFifoDepth,
            Parity,
diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
index 3683e06..9820811 100644
--- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
+++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
@@ -26,6 +26,7 @@
   PL011SerialPortLib.c
 
 [LibraryClasses]
+  ArmPlatformClockLib
   PL011UartLib
   PcdLib
 
-- 
1.9.1



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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-04 23:35 [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
  2018-06-04 23:35 ` [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib Udit Kumar
@ 2018-06-05 12:23 ` Ard Biesheuvel
  2018-06-05 12:25   ` Ard Biesheuvel
  2018-06-05 17:11   ` Udit Kumar
  2018-06-05 12:30 ` Alexei Fedorov
  2 siblings, 2 replies; 13+ messages in thread
From: Ard Biesheuvel @ 2018-06-05 12:23 UTC (permalink / raw)
  To: Udit Kumar; +Cc: edk2-devel@lists.01.org, Leif Lindholm

On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
> Some platform support dynamic clocking, Which is controlled
> by some jumper setting or hardware registers.
> Result of that PCD PL011UartClkInHz needs to be updated for
> frequency change.
> This patch implements support for dynamic frequency for
> PL011 uart.
> This patch implement NULL lib for such platform where
> Pcd clock frequency to PL011 can change
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>

I'm not crazy about this. How exactly are you reading the frequency in
your case?

> ---
>  .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
>  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
>  .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
>  3 files changed, 100 insertions(+)
>  create mode 100644 ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
>  create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
>  create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
>

ArmPlatformClockLib doesn't make sense, since this is specific to PL011, no?


> diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> new file mode 100644
> index 0000000..f9d1425
> --- /dev/null
> +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h

Please add new library classes to the package .dec file

> @@ -0,0 +1,32 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of the BSD License
> +*  which accompanies this distribution.  The full text of the license may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#ifndef _ARMPLATFORMCLOCKLIB_H_
> +#define _ARMPLATFORMCLOCKLIB_H_
> +
> +
> +/**
> +  Return frequency of PL011.
> +
> +  If this function return 0 then fixed value in Pcd will be used
> +
> +  @return Return frequency of PL011
> +
> +**/
> +UINT32
> +ArmPlatformGetPL011ClockFreq (
> +  VOID
> +  );
> +
> +#endif
> diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> new file mode 100644
> index 0000000..b708ad3
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> @@ -0,0 +1,33 @@
> +#/* @file
> +#  Copyright 2018 NXP
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +#*/
> +
> +[Defines]
> +  INF_VERSION                    = 0x0001000A
> +  BASE_NAME                      = ArmPlatformClockLibNull
> +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> +  MODULE_TYPE                    = BASE
> +  VERSION_STRING                 = 1.0
> +  LIBRARY_CLASS                  = ArmPlatformClockLib
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  ArmPkg/ArmPkg.dec
> +  ArmPlatformPkg/ArmPlatformPkg.dec
> +
> +[LibraryClasses]
> +  ArmLib
> +  DebugLib
> +
> +[Sources.common]
> +  ArmPlatformClockLibNull.c
> diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
> new file mode 100644
> index 0000000..28eaa63
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
> @@ -0,0 +1,35 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of the BSD License
> +*  which accompanies this distribution.  The full text of the license may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#include <Library/ArmPlatformClockLib.h>
> +
> +
> +
> +/**
> +  Return clock in for PL011 Uart IP.
> +**/
> +UINT32
> +ArmPlatformGetPL011ClockFreq (
> +  VOID
> +  )
> +{
> +  // Implement platform specific code
> +  // and return PL011 freq
> +
> +  // Some platform supports dynamic clocking,
> +  // This function needs to be implemented on platforms which supports
> +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
> +  // clock change
> +  return 0;

Why not return the PCD value here? That way, you can also get rid of
the horrid conditional expression in the next patch.

> +}
> --
> 1.9.1
>


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

* Re: [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib
  2018-06-04 23:35 ` [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib Udit Kumar
@ 2018-06-05 12:24   ` Ard Biesheuvel
  2018-06-05 17:13     ` Udit Kumar
  0 siblings, 1 reply; 13+ messages in thread
From: Ard Biesheuvel @ 2018-06-05 12:24 UTC (permalink / raw)
  To: Udit Kumar; +Cc: edk2-devel@lists.01.org, Leif Lindholm

On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
> This patch includes, ArmPlatformClock in PL011 lib.
>
> In case of NULL implemenation of Clock Lib, Pcd
> value will be used for PL011 frequency.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> ---
>  ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c   | 7 +++++--
>  ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 1 +
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> index 6aa8063..40fa50a 100644
> --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> @@ -17,11 +17,14 @@
>
>  #include <Base.h>
>
> +#include <Library/ArmPlatformClockLib.h>
>  #include <Library/IoLib.h>
>  #include <Library/PcdLib.h>
>  #include <Library/PL011UartLib.h>
>  #include <Library/SerialPortLib.h>
>
> +
> +

Spurious whitespace changes

>  /** Initialise the serial device hardware with default settings.
>
>    @retval RETURN_SUCCESS            The serial device was initialised.
> @@ -48,7 +51,7 @@ SerialPortInitialize (
>
>    return PL011UartInitializePort (
>             (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
> -           FixedPcdGet32 (PL011UartClkInHz),
> +           ArmPlatformGetPL011ClockFreq() ? ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),

Get rid of this conditional please

>             &BaudRate,
>             &ReceiveFifoDepth,
>             &Parity,
> @@ -156,7 +159,7 @@ SerialPortSetAttributes (
>  {
>    return PL011UartInitializePort (
>             (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
> -           FixedPcdGet32 (PL011UartClkInHz),
> +           ArmPlatformGetPL011ClockFreq() ? ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),
>             BaudRate,
>             ReceiveFifoDepth,
>             Parity,
> diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> index 3683e06..9820811 100644
> --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> @@ -26,6 +26,7 @@
>    PL011SerialPortLib.c
>
>  [LibraryClasses]
> +  ArmPlatformClockLib
>    PL011UartLib
>    PcdLib
>
> --
> 1.9.1
>


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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 12:23 ` [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Ard Biesheuvel
@ 2018-06-05 12:25   ` Ard Biesheuvel
  2018-06-05 17:15     ` Udit Kumar
  2018-06-05 17:11   ` Udit Kumar
  1 sibling, 1 reply; 13+ messages in thread
From: Ard Biesheuvel @ 2018-06-05 12:25 UTC (permalink / raw)
  To: Udit Kumar; +Cc: edk2-devel@lists.01.org, Leif Lindholm

On 5 June 2018 at 14:23, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
>> Some platform support dynamic clocking, Which is controlled
>> by some jumper setting or hardware registers.
>> Result of that PCD PL011UartClkInHz needs to be updated for
>> frequency change.
>> This patch implements support for dynamic frequency for
>> PL011 uart.
>> This patch implement NULL lib for such platform where
>> Pcd clock frequency to PL011 can change
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
>
> I'm not crazy about this. How exactly are you reading the frequency in
> your case?
>
>> ---
>>  .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
>>  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
>>  .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
>>  3 files changed, 100 insertions(+)
>>  create mode 100644 ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
>>  create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
>>  create mode 100644 ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
>>
>
> ArmPlatformClockLib doesn't make sense, since this is specific to PL011, no?
>
>
>> diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
>> new file mode 100644
>> index 0000000..f9d1425
>> --- /dev/null
>> +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
>
> Please add new library classes to the package .dec file
>
>> @@ -0,0 +1,32 @@
>> +/** @file
>> +*
>> +*  Copyright 2018 NXP
>> +*
>> +*  This program and the accompanying materials
>> +*  are licensed and made available under the terms and conditions of the BSD License
>> +*  which accompanies this distribution.  The full text of the license may be found at
>> +*  http://opensource.org/licenses/bsd-license.php
>> +*
>> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
>> +*
>> +**/
>> +
>> +#ifndef _ARMPLATFORMCLOCKLIB_H_
>> +#define _ARMPLATFORMCLOCKLIB_H_
>> +
>> +
>> +/**
>> +  Return frequency of PL011.
>> +
>> +  If this function return 0 then fixed value in Pcd will be used
>> +
>> +  @return Return frequency of PL011
>> +
>> +**/
>> +UINT32
>> +ArmPlatformGetPL011ClockFreq (
>> +  VOID
>> +  );
>> +
>> +#endif
>> diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
>> new file mode 100644
>> index 0000000..b708ad3
>> --- /dev/null
>> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
>> @@ -0,0 +1,33 @@
>> +#/* @file
>> +#  Copyright 2018 NXP
>> +#
>> +#  This program and the accompanying materials
>> +#  are licensed and made available under the terms and conditions of the BSD License
>> +#  which accompanies this distribution.  The full text of the license may be found at
>> +#  http://opensource.org/licenses/bsd-license.php
>> +#
>> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
>> +#
>> +#*/
>> +
>> +[Defines]
>> +  INF_VERSION                    = 0x0001000A
>> +  BASE_NAME                      = ArmPlatformClockLibNull

I forgot: the Null suffix is inappropriate here. Please invent a name
that reflects the fixed, constant nature of the clock frequency.

>> +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
>> +  MODULE_TYPE                    = BASE
>> +  VERSION_STRING                 = 1.0
>> +  LIBRARY_CLASS                  = ArmPlatformClockLib
>> +
>> +[Packages]
>> +  MdePkg/MdePkg.dec
>> +  MdeModulePkg/MdeModulePkg.dec
>> +  ArmPkg/ArmPkg.dec
>> +  ArmPlatformPkg/ArmPlatformPkg.dec
>> +
>> +[LibraryClasses]
>> +  ArmLib
>> +  DebugLib
>> +
>> +[Sources.common]
>> +  ArmPlatformClockLibNull.c
>> diff --git a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
>> new file mode 100644
>> index 0000000..28eaa63
>> --- /dev/null
>> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
>> @@ -0,0 +1,35 @@
>> +/** @file
>> +*
>> +*  Copyright 2018 NXP
>> +*
>> +*  This program and the accompanying materials
>> +*  are licensed and made available under the terms and conditions of the BSD License
>> +*  which accompanies this distribution.  The full text of the license may be found at
>> +*  http://opensource.org/licenses/bsd-license.php
>> +*
>> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
>> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
>> +*
>> +**/
>> +
>> +#include <Library/ArmPlatformClockLib.h>
>> +
>> +
>> +
>> +/**
>> +  Return clock in for PL011 Uart IP.
>> +**/
>> +UINT32
>> +ArmPlatformGetPL011ClockFreq (
>> +  VOID
>> +  )
>> +{
>> +  // Implement platform specific code
>> +  // and return PL011 freq
>> +
>> +  // Some platform supports dynamic clocking,
>> +  // This function needs to be implemented on platforms which supports
>> +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
>> +  // clock change
>> +  return 0;
>
> Why not return the PCD value here? That way, you can also get rid of
> the horrid conditional expression in the next patch.
>
>> +}
>> --
>> 1.9.1
>>


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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-04 23:35 [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
  2018-06-04 23:35 ` [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib Udit Kumar
  2018-06-05 12:23 ` [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Ard Biesheuvel
@ 2018-06-05 12:30 ` Alexei Fedorov
  2018-06-05 17:16   ` Udit Kumar
  2 siblings, 1 reply; 13+ messages in thread
From: Alexei Fedorov @ 2018-06-05 12:30 UTC (permalink / raw)
  To: Udit Kumar, edk2-devel@lists.01.org, ard.biesheuvel@linaro.org,
	leif.lindholm@linaro.org

Please see my comment in-lined

> -----Original Message-----
> From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Udit Kumar
> Sent: 05 June 2018 00:36
> To: edk2-devel@lists.01.org; ard.biesheuvel@linaro.org;
> leif.lindholm@linaro.org
> Subject: [edk2] [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
>
> Some platform support dynamic clocking, Which is controlled by some jumper
> setting or hardware registers.
> Result of that PCD PL011UartClkInHz needs to be updated for frequency change.
> This patch implements support for dynamic frequency for
> PL011 uart.
> This patch implement NULL lib for such platform where Pcd clock frequency to
> PL011 can change
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> ---
>  .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
>  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
>  .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
>  3 files changed, 100 insertions(+)
>  create mode 100644 ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
>  create mode 100644
> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
>  create mode 100644
> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
>
> diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> new file mode 100644
> index 0000000..f9d1425
> --- /dev/null
> +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> @@ -0,0 +1,32 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of
> +the BSD License
> +*  which accompanies this distribution.  The full text of the license
> +may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> +BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#ifndef _ARMPLATFORMCLOCKLIB_H_
> +#define _ARMPLATFORMCLOCKLIB_H_
> +
> +
> +/**
> +  Return frequency of PL011.
> +
> +  If this function return 0 then fixed value in Pcd will be used

Why cannot this function just return FixedPcdGet32 (PL011UartClkInHz) if dynamic clocking is not supported?

> +
> +  @return Return frequency of PL011
> +
> +**/
> +UINT32
> +ArmPlatformGetPL011ClockFreq (
> +  VOID
> +  );
> +
> +#endif
> diff --git
> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> new file mode 100644
> index 0000000..b708ad3
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib
> +++ .inf
> @@ -0,0 +1,33 @@
> +#/* @file
> +#  Copyright 2018 NXP
> +#
> +#  This program and the accompanying materials #  are licensed and made
> +available under the terms and conditions of the BSD License #  which
> +accompanies this distribution.  The full text of the license may be
> +found at #  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> +BASIS, #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +#
> +#*/
> +
> +[Defines]
> +  INF_VERSION                    = 0x0001000A
> +  BASE_NAME                      = ArmPlatformClockLibNull
> +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> +  MODULE_TYPE                    = BASE
> +  VERSION_STRING                 = 1.0
> +  LIBRARY_CLASS                  = ArmPlatformClockLib
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  ArmPkg/ArmPkg.dec
> +  ArmPlatformPkg/ArmPlatformPkg.dec
> +
> +[LibraryClasses]
> +  ArmLib
> +  DebugLib
> +
> +[Sources.common]
> +  ArmPlatformClockLibNull.c
> diff --git
> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull.c
> new file mode 100644
> index 0000000..28eaa63
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib
> +++ Null.c
> @@ -0,0 +1,35 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of
> +the BSD License
> +*  which accompanies this distribution.  The full text of the license
> +may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> +BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#include <Library/ArmPlatformClockLib.h>
> +
> +
> +
> +/**
> +  Return clock in for PL011 Uart IP.
> +**/
> +UINT32
> +ArmPlatformGetPL011ClockFreq (
> +  VOID
> +  )
> +{
> +  // Implement platform specific code
> +  // and return PL011 freq
> +
> +  // Some platform supports dynamic clocking,
> +  // This function needs to be implemented on platforms which supports
> +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
> +  // clock change
> +  return 0;
> +}
> --
> 1.9.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 12:23 ` [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Ard Biesheuvel
  2018-06-05 12:25   ` Ard Biesheuvel
@ 2018-06-05 17:11   ` Udit Kumar
  1 sibling, 0 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-05 17:11 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Leif Lindholm



> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> Sent: Tuesday, June 5, 2018 5:54 PM
> To: Udit Kumar <udit.kumar@nxp.com>
> Cc: edk2-devel@lists.01.org; Leif Lindholm <leif.lindholm@linaro.org>
> Subject: Re: [edk2][PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq
> Support
> 
> On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
> > Some platform support dynamic clocking, Which is controlled by some
> > jumper setting or hardware registers.
> > Result of that PCD PL011UartClkInHz needs to be updated for frequency
> > change.
> > This patch implements support for dynamic frequency for
> > PL011 uart.
> > This patch implement NULL lib for such platform where Pcd clock
> > frequency to PL011 can change
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> 
> I'm not crazy about this. How exactly are you reading the frequency in your
> case?

On our SOC, we have sysclk, which is going to system PLL. System PLL generate the
clocks for different IPs. 
Sysclk can be 66MHz to 100Mhz, the value of sysclk is read from FPGA register.
To get IP clock, we need to read system PLL multiplier, Which is derived from 
a programmable hardware configuration called RCW (Reset configuration Word)   

 
> > ---
> >  .../Include/Library/ArmPlatformClockLib.h          | 32
> ++++++++++++++++++++
> >  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
> >  .../ArmPlatformClockLibNull.c                      | 35
> ++++++++++++++++++++++
> >  3 files changed, 100 insertions(+)
> >  create mode 100644
> > ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >  create mode 100644
> >
> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> >  create mode 100644
> >
> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull
> > .c
> >
> 
> ArmPlatformClockLib doesn't make sense, since this is specific to PL011, no?

Ok, I will rename it 
 
> 
> > diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> > b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> > new file mode 100644
> > index 0000000..f9d1425
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> 
> Please add new library classes to the package .dec file

Ok 
 
> > @@ -0,0 +1,32 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> e
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cad5930949e7843640e4e08d5cadf3192%7C686ea1d3bc2b4
> c6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636637982321509959&sdata=EjBUXzY%2F0DcM
> OZ22tlOlSK0
> > +tZqANTqrgS%2BtgzLXLxrY%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#ifndef _ARMPLATFORMCLOCKLIB_H_
> > +#define _ARMPLATFORMCLOCKLIB_H_
> > +
> > +
> > +/**
> > +  Return frequency of PL011.
> > +
> > +  If this function return 0 then fixed value in Pcd will be used
> > +
> > +  @return Return frequency of PL011
> > +
> > +**/
> > +UINT32
> > +ArmPlatformGetPL011ClockFreq (
> > +  VOID
> > +  );
> > +
> > +#endif
> > diff --git
> >
> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.i
> > nf
> >
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.i
> > nf
> > new file mode 100644
> > index 0000000..b708ad3
> > --- /dev/null
> > +++
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockL
> > +++ ib.inf
> > @@ -0,0 +1,33 @@
> > +#/* @file
> > +#  Copyright 2018 NXP
> > +#
> > +#  This program and the accompanying materials #  are licensed and
> > +made available under the terms and conditions of the BSD License #
> > +which accompanies this distribution.  The full text of the license
> > +may be found at #
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> e
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cad5930949e7843640e4e08d5cadf3192%7C686ea1d3bc2b4
> c6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636637982321509959&sdata=EjBUXzY%2F0DcM
> OZ22tlOlSK0
> > +tZqANTqrgS%2BtgzLXLxrY%3D&reserved=0
> > +#
> > +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS, #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> > +#
> > +#*/
> > +
> > +[Defines]
> > +  INF_VERSION                    = 0x0001000A
> > +  BASE_NAME                      = ArmPlatformClockLibNull
> > +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> > +  MODULE_TYPE                    = BASE
> > +  VERSION_STRING                 = 1.0
> > +  LIBRARY_CLASS                  = ArmPlatformClockLib
> > +
> > +[Packages]
> > +  MdePkg/MdePkg.dec
> > +  MdeModulePkg/MdeModulePkg.dec
> > +  ArmPkg/ArmPkg.dec
> > +  ArmPlatformPkg/ArmPlatformPkg.dec
> > +
> > +[LibraryClasses]
> > +  ArmLib
> > +  DebugLib
> > +
> > +[Sources.common]
> > +  ArmPlatformClockLibNull.c
> > diff --git
> >
> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibN
> u
> > ll.c
> >
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibN
> u
> > ll.c
> > new file mode 100644
> > index 0000000..28eaa63
> > --- /dev/null
> > +++
> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockL
> > +++ ibNull.c
> > @@ -0,0 +1,35 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> e
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cad5930949e7843640e4e08d5cadf3192%7C686ea1d3bc2b4
> c6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636637982321509959&sdata=EjBUXzY%2F0DcM
> OZ22tlOlSK0
> > +tZqANTqrgS%2BtgzLXLxrY%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#include <Library/ArmPlatformClockLib.h>
> > +
> > +
> > +
> > +/**
> > +  Return clock in for PL011 Uart IP.
> > +**/
> > +UINT32
> > +ArmPlatformGetPL011ClockFreq (
> > +  VOID
> > +  )
> > +{
> > +  // Implement platform specific code
> > +  // and return PL011 freq
> > +
> > +  // Some platform supports dynamic clocking,  // This function needs
> > + to be implemented on platforms which supports  // dynamic clocking
> > + to avoid re-building of UEFI firmware for PL011  // clock change
> > + return 0;
> 
> Why not return the PCD value here? That way, you can also get rid of the
> horrid conditional expression in the next patch.

Thanks, will do in v2. 
 
> > +}
> > --
> > 1.9.1
> >

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

* Re: [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib
  2018-06-05 12:24   ` Ard Biesheuvel
@ 2018-06-05 17:13     ` Udit Kumar
  0 siblings, 0 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-05 17:13 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Leif Lindholm

Thanks Ard, 
I accept all of your comments, I will take care in v2 

Regards
Udit

> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> Sent: Tuesday, June 5, 2018 5:55 PM
> To: Udit Kumar <udit.kumar@nxp.com>
> Cc: edk2-devel@lists.01.org; Leif Lindholm <leif.lindholm@linaro.org>
> Subject: Re: [edk2][PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib
> 
> On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
> > This patch includes, ArmPlatformClock in PL011 lib.
> >
> > In case of NULL implemenation of Clock Lib, Pcd value will be used for
> > PL011 frequency.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> > ---
> >  ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c   | 7 +++++--
> >  ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 1
> > +
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git
> > a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> > b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> > index 6aa8063..40fa50a 100644
> > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
> > @@ -17,11 +17,14 @@
> >
> >  #include <Base.h>
> >
> > +#include <Library/ArmPlatformClockLib.h>
> >  #include <Library/IoLib.h>
> >  #include <Library/PcdLib.h>
> >  #include <Library/PL011UartLib.h>
> >  #include <Library/SerialPortLib.h>
> >
> > +
> > +
> 
> Spurious whitespace changes
> 
> >  /** Initialise the serial device hardware with default settings.
> >
> >    @retval RETURN_SUCCESS            The serial device was initialised.
> > @@ -48,7 +51,7 @@ SerialPortInitialize (
> >
> >    return PL011UartInitializePort (
> >             (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
> > -           FixedPcdGet32 (PL011UartClkInHz),
> > +           ArmPlatformGetPL011ClockFreq() ?
> > + ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),
> 
> Get rid of this conditional please
> 
> >             &BaudRate,
> >             &ReceiveFifoDepth,
> >             &Parity,
> > @@ -156,7 +159,7 @@ SerialPortSetAttributes (  {
> >    return PL011UartInitializePort (
> >             (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),
> > -           FixedPcdGet32 (PL011UartClkInHz),
> > +           ArmPlatformGetPL011ClockFreq() ?
> > + ArmPlatformGetPL011ClockFreq() : FixedPcdGet32 (PL011UartClkInHz),
> >             BaudRate,
> >             ReceiveFifoDepth,
> >             Parity,
> > diff --git
> > a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> > b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> > index 3683e06..9820811 100644
> > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
> > @@ -26,6 +26,7 @@
> >    PL011SerialPortLib.c
> >
> >  [LibraryClasses]
> > +  ArmPlatformClockLib
> >    PL011UartLib
> >    PcdLib
> >
> > --
> > 1.9.1
> >

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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 12:25   ` Ard Biesheuvel
@ 2018-06-05 17:15     ` Udit Kumar
  0 siblings, 0 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-05 17:15 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Leif Lindholm



> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> Sent: Tuesday, June 5, 2018 5:56 PM
> To: Udit Kumar <udit.kumar@nxp.com>
> Cc: edk2-devel@lists.01.org; Leif Lindholm <leif.lindholm@linaro.org>
> Subject: Re: [edk2][PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq
> Support
> 
> On 5 June 2018 at 14:23, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> > On 5 June 2018 at 01:35, Udit Kumar <udit.kumar@nxp.com> wrote:
> >> Some platform support dynamic clocking, Which is controlled by some
> >> jumper setting or hardware registers.
> >> Result of that PCD PL011UartClkInHz needs to be updated for frequency
> >> change.
> >> This patch implements support for dynamic frequency for
> >> PL011 uart.
> >> This patch implement NULL lib for such platform where Pcd clock
> >> frequency to PL011 can change
> >>
> >> Contributed-under: TianoCore Contribution Agreement 1.1
> >> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> >
> > I'm not crazy about this. How exactly are you reading the frequency in
> > your case?
> >
> >> ---
> >>  .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
> >>  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
> >>  .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
> >>  3 files changed, 100 insertions(+)
> >>  create mode 100644
> >> ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >>  create mode 100644
> >> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.in
> >> f  create mode 100644
> >> ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNul
> >> l.c
> >>
> >
> > ArmPlatformClockLib doesn't make sense, since this is specific to PL011, no?
> >
> >
> >> diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >> b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >> new file mode 100644
> >> index 0000000..f9d1425
> >> --- /dev/null
> >> +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >
> > Please add new library classes to the package .dec file
> >
> >> @@ -0,0 +1,32 @@
> >> +/** @file
> >> +*
> >> +*  Copyright 2018 NXP
> >> +*
> >> +*  This program and the accompanying materials
> >> +*  are licensed and made available under the terms and conditions of
> >> +the BSD License
> >> +*  which accompanies this distribution.  The full text of the
> >> +license may be found at
> >> +*
> >> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> >> +ensource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%
> >>
> +40nxp.com%7C1293bf5f16dd456e1a4708d5cadf750d%7C686ea1d3bc2b4c6fa
> 92cd
> >>
> +99c5c301635%7C0%7C0%7C636637983450007594&sdata=1qT2ZTJAYabHBvcQ
> kNXnP
> >> +PPQgM038f7hSYUa7r2Hhvo%3D&reserved=0
> >> +*
> >> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> >> +BASIS,
> >> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> >> +*
> >> +**/
> >> +
> >> +#ifndef _ARMPLATFORMCLOCKLIB_H_
> >> +#define _ARMPLATFORMCLOCKLIB_H_
> >> +
> >> +
> >> +/**
> >> +  Return frequency of PL011.
> >> +
> >> +  If this function return 0 then fixed value in Pcd will be used
> >> +
> >> +  @return Return frequency of PL011
> >> +
> >> +**/
> >> +UINT32
> >> +ArmPlatformGetPL011ClockFreq (
> >> +  VOID
> >> +  );
> >> +
> >> +#endif
> >> diff --git
> >> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.
> >> inf
> >> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.
> >> inf
> >> new file mode 100644
> >> index 0000000..b708ad3
> >> --- /dev/null
> >> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClock
> >> +++ Lib.inf
> >> @@ -0,0 +1,33 @@
> >> +#/* @file
> >> +#  Copyright 2018 NXP
> >> +#
> >> +#  This program and the accompanying materials #  are licensed and
> >> +made available under the terms and conditions of the BSD License #
> >> +which accompanies this distribution.  The full text of the license
> >> +may be found at #
> >> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> >> +ensource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%
> >>
> +40nxp.com%7C1293bf5f16dd456e1a4708d5cadf750d%7C686ea1d3bc2b4c6fa
> 92cd
> >>
> +99c5c301635%7C0%7C0%7C636637983450007594&sdata=1qT2ZTJAYabHBvcQ
> kNXnP
> >> +PPQgM038f7hSYUa7r2Hhvo%3D&reserved=0
> >> +#
> >> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> >> +BASIS, #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> >> +#
> >> +#*/
> >> +
> >> +[Defines]
> >> +  INF_VERSION                    = 0x0001000A
> >> +  BASE_NAME                      = ArmPlatformClockLibNull
> 
> I forgot: the Null suffix is inappropriate here. Please invent a name that reflects
> the fixed, constant nature of the clock frequency.

Agree, with return of Pcd value, NULL make no sense 
Will update in v2 

Thanks 
 
> >> +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> >> +  MODULE_TYPE                    = BASE
> >> +  VERSION_STRING                 = 1.0
> >> +  LIBRARY_CLASS                  = ArmPlatformClockLib
> >> +
> >> +[Packages]
> >> +  MdePkg/MdePkg.dec
> >> +  MdeModulePkg/MdeModulePkg.dec
> >> +  ArmPkg/ArmPkg.dec
> >> +  ArmPlatformPkg/ArmPlatformPkg.dec
> >> +
> >> +[LibraryClasses]
> >> +  ArmLib
> >> +  DebugLib
> >> +
> >> +[Sources.common]
> >> +  ArmPlatformClockLibNull.c
> >> diff --git
> >> a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibN
> >> ull.c
> >> b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibN
> >> ull.c
> >> new file mode 100644
> >> index 0000000..28eaa63
> >> --- /dev/null
> >> +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClock
> >> +++ LibNull.c
> >> @@ -0,0 +1,35 @@
> >> +/** @file
> >> +*
> >> +*  Copyright 2018 NXP
> >> +*
> >> +*  This program and the accompanying materials
> >> +*  are licensed and made available under the terms and conditions of
> >> +the BSD License
> >> +*  which accompanies this distribution.  The full text of the
> >> +license may be found at
> >> +*
> >> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> >> +ensource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%
> >>
> +40nxp.com%7C1293bf5f16dd456e1a4708d5cadf750d%7C686ea1d3bc2b4c6fa
> 92cd
> >>
> +99c5c301635%7C0%7C0%7C636637983450007594&sdata=1qT2ZTJAYabHBvcQ
> kNXnP
> >> +PPQgM038f7hSYUa7r2Hhvo%3D&reserved=0
> >> +*
> >> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> >> +BASIS,
> >> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> >> +*
> >> +**/
> >> +
> >> +#include <Library/ArmPlatformClockLib.h>
> >> +
> >> +
> >> +
> >> +/**
> >> +  Return clock in for PL011 Uart IP.
> >> +**/
> >> +UINT32
> >> +ArmPlatformGetPL011ClockFreq (
> >> +  VOID
> >> +  )
> >> +{
> >> +  // Implement platform specific code
> >> +  // and return PL011 freq
> >> +
> >> +  // Some platform supports dynamic clocking,  // This function
> >> + needs to be implemented on platforms which supports  // dynamic
> >> + clocking to avoid re-building of UEFI firmware for PL011  // clock
> >> + change  return 0;
> >
> > Why not return the PCD value here? That way, you can also get rid of
> > the horrid conditional expression in the next patch.
> >
> >> +}
> >> --
> >> 1.9.1
> >>

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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 12:30 ` Alexei Fedorov
@ 2018-06-05 17:16   ` Udit Kumar
  0 siblings, 0 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-05 17:16 UTC (permalink / raw)
  To: Alexei Fedorov, edk2-devel@lists.01.org,
	ard.biesheuvel@linaro.org, leif.lindholm@linaro.org


> -----Original Message-----
> From: Alexei Fedorov [mailto:Alexei.Fedorov@arm.com]
> Sent: Tuesday, June 5, 2018 6:01 PM
> To: Udit Kumar <udit.kumar@nxp.com>; edk2-devel@lists.01.org;
> ard.biesheuvel@linaro.org; leif.lindholm@linaro.org
> Subject: RE: [edk2] [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq
> Support
> 
> Please see my comment in-lined
> 
> > -----Original Message-----
> > From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Udit
> > Kumar
> > Sent: 05 June 2018 00:36
> > To: edk2-devel@lists.01.org; ard.biesheuvel@linaro.org;
> > leif.lindholm@linaro.org
> > Subject: [edk2] [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq
> > Support
> >
> > Some platform support dynamic clocking, Which is controlled by some
> > jumper setting or hardware registers.
> > Result of that PCD PL011UartClkInHz needs to be updated for frequency
> change.
> > This patch implements support for dynamic frequency for
> > PL011 uart.
> > This patch implement NULL lib for such platform where Pcd clock
> > frequency to
> > PL011 can change
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> > ---
> >  .../Include/Library/ArmPlatformClockLib.h          | 32 ++++++++++++++++++++
> >  .../ArmPlatformClockLib.inf                        | 33 ++++++++++++++++++++
> >  .../ArmPlatformClockLibNull.c                      | 35 ++++++++++++++++++++++
> >  3 files changed, 100 insertions(+)
> >  create mode 100644
> > ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> >  create mode 100644
> > ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.inf
> >  create mode 100644
> > ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNull
> > .c
> >
> > diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> > b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> > new file mode 100644
> > index 0000000..f9d1425
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Include/Library/ArmPlatformClockLib.h
> > @@ -0,0 +1,32 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> > +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fope
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cdd365496e05b46d7be4508d5cae0286e%7C686ea1d3bc2b4c6fa9
> 2cd99c
> >
> +5c301635%7C0%7C1%7C636637986464241388&sdata=rmypRtJplfoFQHAftihQ
> tfqHQ
> > +IcLO0Xele3IKdab6fM%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#ifndef _ARMPLATFORMCLOCKLIB_H_
> > +#define _ARMPLATFORMCLOCKLIB_H_
> > +
> > +
> > +/**
> > +  Return frequency of PL011.
> > +
> > +  If this function return 0 then fixed value in Pcd will be used
> 
> Why cannot this function just return FixedPcdGet32 (PL011UartClkInHz) if
> dynamic clocking is not supported?

Ok, agreed with Ard's comment too 
Thanks
 
> > +
> > +  @return Return frequency of PL011
> > +
> > +**/
> > +UINT32
> > +ArmPlatformGetPL011ClockFreq (
> > +  VOID
> > +  );
> > +
> > +#endif
> > diff --git
> > a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.i
> > nf
> > b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLib.i
> > nf
> > new file mode 100644
> > index 0000000..b708ad3
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockL
> > +++ ib
> > +++ .inf
> > @@ -0,0 +1,33 @@
> > +#/* @file
> > +#  Copyright 2018 NXP
> > +#
> > +#  This program and the accompanying materials #  are licensed and
> > +made available under the terms and conditions of the BSD License #
> > +which accompanies this distribution.  The full text of the license
> > +may be found at #
> > +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fope
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cdd365496e05b46d7be4508d5cae0286e%7C686ea1d3bc2b4c6fa9
> 2cd99c
> >
> +5c301635%7C0%7C1%7C636637986464241388&sdata=rmypRtJplfoFQHAftihQ
> tfqHQ
> > +IcLO0Xele3IKdab6fM%3D&reserved=0
> > +#
> > +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS, #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER
> > EXPRESS OR IMPLIED.
> > +#
> > +#*/
> > +
> > +[Defines]
> > +  INF_VERSION                    = 0x0001000A
> > +  BASE_NAME                      = ArmPlatformClockLibNull
> > +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> > +  MODULE_TYPE                    = BASE
> > +  VERSION_STRING                 = 1.0
> > +  LIBRARY_CLASS                  = ArmPlatformClockLib
> > +
> > +[Packages]
> > +  MdePkg/MdePkg.dec
> > +  MdeModulePkg/MdeModulePkg.dec
> > +  ArmPkg/ArmPkg.dec
> > +  ArmPlatformPkg/ArmPlatformPkg.dec
> > +
> > +[LibraryClasses]
> > +  ArmLib
> > +  DebugLib
> > +
> > +[Sources.common]
> > +  ArmPlatformClockLibNull.c
> > diff --git
> > a/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNu
> > ll.c
> > b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockLibNu
> > ll.c
> > new file mode 100644
> > index 0000000..28eaa63
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Library/ArmPlatformClockLibNull/ArmPlatformClockL
> > +++ ib
> > +++ Null.c
> > @@ -0,0 +1,35 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> > +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fope
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7Cdd365496e05b46d7be4508d5cae0286e%7C686ea1d3bc2b4c6fa9
> 2cd99c
> >
> +5c301635%7C0%7C1%7C636637986464241388&sdata=rmypRtJplfoFQHAftihQ
> tfqHQ
> > +IcLO0Xele3IKdab6fM%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#include <Library/ArmPlatformClockLib.h>
> > +
> > +
> > +
> > +/**
> > +  Return clock in for PL011 Uart IP.
> > +**/
> > +UINT32
> > +ArmPlatformGetPL011ClockFreq (
> > +  VOID
> > +  )
> > +{
> > +  // Implement platform specific code
> > +  // and return PL011 freq
> > +
> > +  // Some platform supports dynamic clocking,
> > +  // This function needs to be implemented on platforms which
> > +supports
> > +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
> > +  // clock change
> > +  return 0;
> > +}
> > --
> > 1.9.1
> >
> > _______________________________________________
> > edk2-devel mailing list
> > edk2-devel@lists.01.org
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flis
> > ts.01.org%2Fmailman%2Flistinfo%2Fedk2-
> devel&data=02%7C01%7Cudit.kumar%
> >
> 40nxp.com%7Cdd365496e05b46d7be4508d5cae0286e%7C686ea1d3bc2b4c6fa
> 92cd99
> >
> c5c301635%7C0%7C1%7C636637986464241388&sdata=u3j1ouO0GgtN2uKGAQ
> BdJ%2Bh
> > PdQkIjfyd3t7N%2FYyTCTA%3D&reserved=0
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended recipient,
> please notify the sender immediately and do not disclose the contents to any
> other person, use it for any purpose, or store or copy the information in any
> medium. Thank you.


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

* [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 17:59 [PATCH v2 0/2] " Udit Kumar
@ 2018-06-05 17:59 ` Udit Kumar
  2018-06-11 10:05   ` Ard Biesheuvel
  0 siblings, 1 reply; 13+ messages in thread
From: Udit Kumar @ 2018-06-05 17:59 UTC (permalink / raw)
  To: ard.biesheuvel, leif.lindholm, edk2-devel

Some platform support dynamic clocking, Which is controlled
by some jumper setting or hardware registers.
Result of that PCD PL011UartClkInHz needs to be updated for
frequency change.
This patch implements support for dynamic frequency for
PL011 uart.
This patch implements default lib, which is using Pcd.
Platform which needs dynamic clocking needs implement
PL011UartClockLib

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
---
 ArmPlatformPkg/ArmPlatformPkg.dec                  |  1 +
 ArmPlatformPkg/Include/Library/PL011UartClockLib.h | 32 +++++++++++++++++++
 .../Library/PL011UartClockLib/PL011UartClockLib.c  | 29 +++++++++++++++++
 .../PL011UartClockLib/PL011UartClockLib.inf        | 37 ++++++++++++++++++++++
 4 files changed, 99 insertions(+)
 create mode 100644 ArmPlatformPkg/Include/Library/PL011UartClockLib.h
 create mode 100644 ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
 create mode 100644 ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf

diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec
index dff4598..5f67e74 100644
--- a/ArmPlatformPkg/ArmPlatformPkg.dec
+++ b/ArmPlatformPkg/ArmPlatformPkg.dec
@@ -36,6 +36,7 @@
   LcdHwLib|Include/Library/LcdHwLib.h
   LcdPlatformLib|Include/Library/LcdPlatformLib.h
   NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h
+  PL011UartClockLib|Include/Library/PL011UartClockLib.h
   PL011UartLib|Include/Library/PL011UartLib.h
 
 [Guids.common]
diff --git a/ArmPlatformPkg/Include/Library/PL011UartClockLib.h b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
new file mode 100644
index 0000000..93813a0
--- /dev/null
+++ b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
@@ -0,0 +1,32 @@
+/** @file
+*
+*  Copyright 2018 NXP
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef __PL011CLOCKLIB_H__
+#define __PL011CLOCKLIB_H__
+
+
+/**
+  Return frequency of PL011.
+
+  By default this function returns FixedPcdGet32 (PL011UartClkInHz)
+
+  @return Return frequency of PL011
+
+**/
+UINT32
+ArmPlatformGetPL011ClockFreq (
+  VOID
+  );
+
+#endif
diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
new file mode 100644
index 0000000..b56af14
--- /dev/null
+++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
@@ -0,0 +1,29 @@
+/** @file
+*
+*  Copyright 2018 NXP
+*
+*  This program and the accompanying materials
+*  are licensed and made available under the terms and conditions of the BSD License
+*  which accompanies this distribution.  The full text of the license may be found at
+*  http://opensource.org/licenses/bsd-license.php
+*
+*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include <Library/PL011UartClockLib.h>
+
+/**
+  Return clock in for PL011 Uart IP.
+**/
+UINT32
+ArmPlatformGetPL011ClockFreq (
+  VOID
+  )
+{
+  // This function needs to be implemented on platforms which supports
+  // dynamic clocking to avoid re-building of UEFI firmware for PL011
+  // clock change
+  return FixedPcdGet32 (PL011UartClkInHz);
+}
diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
new file mode 100644
index 0000000..5f6f699
--- /dev/null
+++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
@@ -0,0 +1,37 @@
+#/* @file
+#  Copyright 2018 NXP
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD License
+#  which accompanies this distribution.  The full text of the license may be found at
+#  http://opensource.org/licenses/bsd-license.php
+#
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#*/
+
+[Defines]
+  INF_VERSION                    = 0x0001000A
+  BASE_NAME                      = PL011UartClockLib
+  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = PL011UartClockLib
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ArmPkg/ArmPkg.dec
+  ArmPlatformPkg/ArmPlatformPkg.dec
+
+[LibraryClasses]
+  ArmLib
+  DebugLib
+
+[Sources.common]
+  PL011UartClockLib.c
+
+[FixedPcd]
+  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
+
-- 
1.9.1



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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-05 17:59 ` [PATCH 1/2] " Udit Kumar
@ 2018-06-11 10:05   ` Ard Biesheuvel
  2018-06-11 10:32     ` Udit Kumar
  0 siblings, 1 reply; 13+ messages in thread
From: Ard Biesheuvel @ 2018-06-11 10:05 UTC (permalink / raw)
  To: Udit Kumar; +Cc: Leif Lindholm, edk2-devel@lists.01.org

Hello Udit,

Apologies for not bringing this up the first time, but I have some
additional comments. The first time around, I only had a cursory look
because at that point I was still skeptical whether we needed this
library in the first place.

On 5 June 2018 at 19:59, Udit Kumar <udit.kumar@nxp.com> wrote:
> Some platform support dynamic clocking, Which is controlled
> by some jumper setting or hardware registers.
> Result of that PCD PL011UartClkInHz needs to be updated for
> frequency change.
> This patch implements support for dynamic frequency for
> PL011 uart.
> This patch implements default lib, which is using Pcd.
> Platform which needs dynamic clocking needs implement
> PL011UartClockLib
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> ---
>  ArmPlatformPkg/ArmPlatformPkg.dec                  |  1 +
>  ArmPlatformPkg/Include/Library/PL011UartClockLib.h | 32 +++++++++++++++++++
>  .../Library/PL011UartClockLib/PL011UartClockLib.c  | 29 +++++++++++++++++
>  .../PL011UartClockLib/PL011UartClockLib.inf        | 37 ++++++++++++++++++++++

Please add a reference to the new library in the [Components] section
of ArmPlatformPkg.dsc as well, so we can build it standalone.

>  4 files changed, 99 insertions(+)
>  create mode 100644 ArmPlatformPkg/Include/Library/PL011UartClockLib.h
>  create mode 100644 ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
>  create mode 100644 ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
>
> diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec
> index dff4598..5f67e74 100644
> --- a/ArmPlatformPkg/ArmPlatformPkg.dec
> +++ b/ArmPlatformPkg/ArmPlatformPkg.dec
> @@ -36,6 +36,7 @@
>    LcdHwLib|Include/Library/LcdHwLib.h
>    LcdPlatformLib|Include/Library/LcdPlatformLib.h
>    NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h
> +  PL011UartClockLib|Include/Library/PL011UartClockLib.h
>    PL011UartLib|Include/Library/PL011UartLib.h
>
>  [Guids.common]
> diff --git a/ArmPlatformPkg/Include/Library/PL011UartClockLib.h b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> new file mode 100644
> index 0000000..93813a0
> --- /dev/null
> +++ b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> @@ -0,0 +1,32 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of the BSD License
> +*  which accompanies this distribution.  The full text of the license may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#ifndef __PL011CLOCKLIB_H__
> +#define __PL011CLOCKLIB_H__

Nit: use __PL011UARTCLOCKLIB_H__ to match the filename.

> +
> +
> +/**
> +  Return frequency of PL011.
> +

Mention the baud clock?
> +  By default this function returns FixedPcdGet32 (PL011UartClkInHz)
> +

Drop this line please, it is not part of the prototype

> +  @return Return frequency of PL011
> +
> +**/
> +UINT32
> +ArmPlatformGetPL011ClockFreq (

The ArmPlatform prefix is unnecessary here: please use
PL011UartClockGetFreq() instead.

> +  VOID
> +  );
> +
> +#endif
> diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> new file mode 100644
> index 0000000..b56af14
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> @@ -0,0 +1,29 @@
> +/** @file
> +*
> +*  Copyright 2018 NXP
> +*
> +*  This program and the accompanying materials
> +*  are licensed and made available under the terms and conditions of the BSD License
> +*  which accompanies this distribution.  The full text of the license may be found at
> +*  http://opensource.org/licenses/bsd-license.php
> +*
> +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#include <Library/PL011UartClockLib.h>
> +
> +/**
> +  Return clock in for PL011 Uart IP.
> +**/
> +UINT32

Please add EFIAPI even if it is defined to an empty string when using GCC/ARM.

> +ArmPlatformGetPL011ClockFreq (
> +  VOID
> +  )
> +{
> +  // This function needs to be implemented on platforms which supports
> +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
> +  // clock change

Please drop this comment, it does not belong here. You can add
something along these lines in the declaration of the library class if
you want, but you can drop it altogether IMO.

> +  return FixedPcdGet32 (PL011UartClkInHz);
> +}
> diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> new file mode 100644
> index 0000000..5f6f699
> --- /dev/null
> +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> @@ -0,0 +1,37 @@
> +#/* @file
> +#  Copyright 2018 NXP
> +#
> +#  This program and the accompanying materials
> +#  are licensed and made available under the terms and conditions of the BSD License
> +#  which accompanies this distribution.  The full text of the license may be found at
> +#  http://opensource.org/licenses/bsd-license.php
> +#
> +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +#
> +#*/
> +
> +[Defines]
> +  INF_VERSION                    = 0x0001000A

Please use 0x0001001A

> +  BASE_NAME                      = PL011UartClockLib

EDK2 usually has a BaseXxxLib implementation and does not reuse the
library class name for the base implementation, so I am fine with
this. Leif?


> +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> +  MODULE_TYPE                    = BASE
> +  VERSION_STRING                 = 1.0
> +  LIBRARY_CLASS                  = PL011UartClockLib
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec

Is this line needed?

> +  ArmPkg/ArmPkg.dec
> +  ArmPlatformPkg/ArmPlatformPkg.dec
> +

Sort alphabetically please.

> +[LibraryClasses]
> +  ArmLib
> +  DebugLib
> +
> +[Sources.common]
> +  PL011UartClockLib.c
> +
> +[FixedPcd]
> +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
> +
> --
> 1.9.1
>


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

* Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
  2018-06-11 10:05   ` Ard Biesheuvel
@ 2018-06-11 10:32     ` Udit Kumar
  0 siblings, 0 replies; 13+ messages in thread
From: Udit Kumar @ 2018-06-11 10:32 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: Leif Lindholm, edk2-devel@lists.01.org

Thanks for review Ard. 

> -----Original Message-----
> From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
> Sent: Monday, June 11, 2018 3:35 PM
> To: Udit Kumar <udit.kumar@nxp.com>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>; edk2-devel@lists.01.org
> Subject: Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq
> Support
> 
> Hello Udit,
> 
> Apologies for not bringing this up the first time, but I have some additional
> comments. The first time around, I only had a cursory look because at that
> point I was still skeptical whether we needed this library in the first place.

I hope, now you agree to have this lib 😊

> On 5 June 2018 at 19:59, Udit Kumar <udit.kumar@nxp.com> wrote:
> > Some platform support dynamic clocking, Which is controlled by some
> > jumper setting or hardware registers.
> > Result of that PCD PL011UartClkInHz needs to be updated for frequency
> > change.
> > This patch implements support for dynamic frequency for
> > PL011 uart.
> > This patch implements default lib, which is using Pcd.
> > Platform which needs dynamic clocking needs implement
> > PL011UartClockLib
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Udit Kumar <udit.kumar@nxp.com>
> > ---
> >  ArmPlatformPkg/ArmPlatformPkg.dec                  |  1 +
> >  ArmPlatformPkg/Include/Library/PL011UartClockLib.h | 32
> > +++++++++++++++++++
> .../Library/PL011UartClockLib/PL011UartClockLib.c  | 29
> +++++++++++++++++
> >  .../PL011UartClockLib/PL011UartClockLib.inf        | 37
> ++++++++++++++++++++++
> 
> Please add a reference to the new library in the [Components] section of
> ArmPlatformPkg.dsc as well, so we can build it standalone.

Ok 
 
> >  4 files changed, 99 insertions(+)
> >  create mode 100644
> ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> >  create mode 100644
> > ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> >  create mode 100644
> > ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> >
> > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec
> > b/ArmPlatformPkg/ArmPlatformPkg.dec
> > index dff4598..5f67e74 100644
> > --- a/ArmPlatformPkg/ArmPlatformPkg.dec
> > +++ b/ArmPlatformPkg/ArmPlatformPkg.dec
> > @@ -36,6 +36,7 @@
> >    LcdHwLib|Include/Library/LcdHwLib.h
> >    LcdPlatformLib|Include/Library/LcdPlatformLib.h
> >    NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h
> > +  PL011UartClockLib|Include/Library/PL011UartClockLib.h
> >    PL011UartLib|Include/Library/PL011UartLib.h
> >
> >  [Guids.common]
> > diff --git a/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> > b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> > new file mode 100644
> > index 0000000..93813a0
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h
> > @@ -0,0 +1,32 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fo
> pe
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7C2ac27eb60055478ac37d08d5cf82d550%7C686ea1d3bc2b4c
> 6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636643083195138179&sdata=C%2F2MhK2ZA6
> XPmC5c8byWlK3
> > +xAC6rFmLYofPKlj6M7%2FI%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS
> IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#ifndef __PL011CLOCKLIB_H__
> > +#define __PL011CLOCKLIB_H__
> 
> Nit: use __PL011UARTCLOCKLIB_H__ to match the filename.

My miss, thanks  will do in v3
 
> > +
> > +
> > +/**
> > +  Return frequency of PL011.
> > +
> 
> Mention the baud clock?

Sure 
> > +  By default this function returns FixedPcdGet32 (PL011UartClkInHz)
> > +
> 
> Drop this line please, it is not part of the prototype

Ok 
 
> > +  @return Return frequency of PL011
> > +
> > +**/
> > +UINT32
> > +ArmPlatformGetPL011ClockFreq (
> 
> The ArmPlatform prefix is unnecessary here: please use
> PL011UartClockGetFreq() instead.

Ok 
 
> > +  VOID
> > +  );
> > +
> > +#endif
> > diff --git
> > a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> > b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> > new file mode 100644
> > index 0000000..b56af14
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c
> > @@ -0,0 +1,29 @@
> > +/** @file
> > +*
> > +*  Copyright 2018 NXP
> > +*
> > +*  This program and the accompanying materials
> > +*  are licensed and made available under the terms and conditions of
> > +the BSD License
> > +*  which accompanies this distribution.  The full text of the license
> > +may be found at
> > +*
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fo
> pe
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7C2ac27eb60055478ac37d08d5cf82d550%7C686ea1d3bc2b4c
> 6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636643083195138179&sdata=C%2F2MhK2ZA6
> XPmC5c8byWlK3
> > +xAC6rFmLYofPKlj6M7%2FI%3D&reserved=0
> > +*
> > +*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS
> IS"
> > +BASIS,
> > +*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > +*
> > +**/
> > +
> > +#include <Library/PL011UartClockLib.h>
> > +
> > +/**
> > +  Return clock in for PL011 Uart IP.
> > +**/
> > +UINT32
> 
> Please add EFIAPI even if it is defined to an empty string when using
> GCC/ARM.

Ok 
 
> > +ArmPlatformGetPL011ClockFreq (
> > +  VOID
> > +  )
> > +{
> > +  // This function needs to be implemented on platforms which
> > +supports
> > +  // dynamic clocking to avoid re-building of UEFI firmware for PL011
> > +  // clock change
> 
> Please drop this comment, it does not belong here. You can add something
> along these lines in the declaration of the library class if you want, but you
> can drop it altogether IMO.

Ok, I will move to lib class declaration 
 
> > +  return FixedPcdGet32 (PL011UartClkInHz); }
> > diff --git
> > a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> > b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> > new file mode 100644
> > index 0000000..5f6f699
> > --- /dev/null
> > +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
> > @@ -0,0 +1,37 @@
> > +#/* @file
> > +#  Copyright 2018 NXP
> > +#
> > +#  This program and the accompanying materials #  are licensed and
> > +made available under the terms and conditions of the BSD License #
> > +which accompanies this distribution.  The full text of the license
> > +may be found at #
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fo
> pe
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cudit.kumar%40
> >
> +nxp.com%7C2ac27eb60055478ac37d08d5cf82d550%7C686ea1d3bc2b4c
> 6fa92cd99c
> >
> +5c301635%7C0%7C0%7C636643083195138179&sdata=C%2F2MhK2ZA6
> XPmC5c8byWlK3
> > +xAC6rFmLYofPKlj6M7%2FI%3D&reserved=0
> > +#
> > +#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS
> IS"
> > +BASIS, #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> > +#
> > +#*/
> > +
> > +[Defines]
> > +  INF_VERSION                    = 0x0001000A
> 
> Please use 0x0001001A
> 
Ok 

> > +  BASE_NAME                      = PL011UartClockLib
> 
> EDK2 usually has a BaseXxxLib implementation and does not reuse the
> library class name for the base implementation, so I am fine with this. Leif?
> 
> 
> > +  FILE_GUID                      = af8fef24-afbb-472a-b8b7-13101a79703c
> > +  MODULE_TYPE                    = BASE
> > +  VERSION_STRING                 = 1.0
> > +  LIBRARY_CLASS                  = PL011UartClockLib
> > +
> > +[Packages]
> > +  MdePkg/MdePkg.dec
> > +  MdeModulePkg/MdeModulePkg.dec
> 
> Is this line needed?

May be not , 
copy-paste mistake  

> 
> > +  ArmPkg/ArmPkg.dec
> > +  ArmPlatformPkg/ArmPlatformPkg.dec
> > +
> 
> Sort alphabetically please.

Ok 
 
> > +[LibraryClasses]
> > +  ArmLib
> > +  DebugLib
> > +
> > +[Sources.common]
> > +  PL011UartClockLib.c
> > +
> > +[FixedPcd]
> > +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
> > +
> > --
> > 1.9.1
> >

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

end of thread, other threads:[~2018-06-11 10:32 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-04 23:35 [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
2018-06-04 23:35 ` [PATCH 2/2] ArmPlatformPkg: Include ArmPlatformClock Lib Udit Kumar
2018-06-05 12:24   ` Ard Biesheuvel
2018-06-05 17:13     ` Udit Kumar
2018-06-05 12:23 ` [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Ard Biesheuvel
2018-06-05 12:25   ` Ard Biesheuvel
2018-06-05 17:15     ` Udit Kumar
2018-06-05 17:11   ` Udit Kumar
2018-06-05 12:30 ` Alexei Fedorov
2018-06-05 17:16   ` Udit Kumar
  -- strict thread matches above, loose matches on Subject: below --
2018-06-05 17:59 [PATCH v2 0/2] " Udit Kumar
2018-06-05 17:59 ` [PATCH 1/2] " Udit Kumar
2018-06-11 10:05   ` Ard Biesheuvel
2018-06-11 10:32     ` Udit Kumar

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