From: Udit Kumar <udit.kumar@nxp.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
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 10:32:28 +0000 [thread overview]
Message-ID: <AM6PR0402MB33341374962000C3166FF04F91780@AM6PR0402MB3334.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <CAKv+Gu_nxgDyunx7LTkxBuXB9rjZs3q1ZFyxBiQ+RdsHxW1RLA@mail.gmail.com>
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
> >
next prev parent reply other threads:[~2018-06-11 10:32 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
2018-06-11 10:32 ` Udit Kumar [this message]
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=AM6PR0402MB33341374962000C3166FF04F91780@AM6PR0402MB3334.eurprd04.prod.outlook.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