public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Udit Kumar <udit.kumar@nxp.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>,
	 "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support
Date: Mon, 11 Jun 2018 12:05:15 +0200	[thread overview]
Message-ID: <CAKv+Gu_nxgDyunx7LTkxBuXB9rjZs3q1ZFyxBiQ+RdsHxW1RLA@mail.gmail.com> (raw)
In-Reply-To: <1528221595-22145-2-git-send-email-udit.kumar@nxp.com>

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
>


  reply	other threads:[~2018-06-11 10:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-05 17:59 [PATCH v2 0/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
2018-06-05 17:59 ` [PATCH 1/2] " Udit Kumar
2018-06-11 10:05   ` Ard Biesheuvel [this message]
2018-06-11 10:32     ` Udit Kumar
2018-06-05 17:59 ` [PATCH 2/2] ArmPlatformPkg: Include PL011UartClock Lib Udit Kumar
2018-06-11 10:07   ` Ard Biesheuvel
2018-06-11 10:24     ` Udit Kumar
  -- strict thread matches above, loose matches on Subject: below --
2018-06-04 23:35 [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Udit Kumar
2018-06-05 12:23 ` 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAKv+Gu_nxgDyunx7LTkxBuXB9rjZs3q1ZFyxBiQ+RdsHxW1RLA@mail.gmail.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox