Message ID | 20181217185145.24618-1-ard.biesheuvel@linaro.org |
---|---|
State | Accepted |
Commit | 5a9b3eb8e5fbbc0a49f80630039d58712aacfab8 |
Headers | show |
Series | [edk2] ArmPlatformPkg/PL011SerialPortLib: use untyped PCD for register base | expand |
On 12/17/18 7:51 PM, Ard Biesheuvel wrote: > Use an untyped PCD reference for PcdSerialRegisterBase, so that the > library gets built without hardcoded values, permitting modules to > override the default serial port. This allows SerialDxe to use a > different serial port from the one used for DEBUG output (which > often gets occluded due to the console driver clearing the screen) You missed the trailing '.' :) > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c | 14 +++++++------- > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 4 +++- > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > index 212991d63859..d576f79c3e6e 100644 > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > @@ -48,7 +48,7 @@ SerialPortInitialize ( > StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); > > return PL011UartInitializePort ( > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > PL011UartClockGetFreq(), > &BaudRate, > &ReceiveFifoDepth, > @@ -75,7 +75,7 @@ SerialPortWrite ( > IN UINTN NumberOfBytes > ) > { > - return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > + return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > } > > /** > @@ -95,7 +95,7 @@ SerialPortRead ( > IN UINTN NumberOfBytes > ) > { > - return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > + return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > } > > /** > @@ -111,7 +111,7 @@ SerialPortPoll ( > VOID > ) > { > - return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); > + return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); > } > /** > Set new attributes to PL011. > @@ -156,7 +156,7 @@ SerialPortSetAttributes ( > ) > { > return PL011UartInitializePort ( > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > PL011UartClockGetFreq(), > BaudRate, > ReceiveFifoDepth, > @@ -198,7 +198,7 @@ SerialPortSetControl ( > IN UINT32 Control > ) > { > - return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > + return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > } > > /** > @@ -239,5 +239,5 @@ SerialPortGetControl ( > OUT UINT32 *Control > ) > { > - return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > + return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > } > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > index 5ce5b2f5304c..bca7bed875c6 100644 > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > @@ -36,8 +36,10 @@ > MdeModulePkg/MdeModulePkg.dec > ArmPlatformPkg/ArmPlatformPkg.dec > > -[FixedPcd] > +[Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase > + > +[FixedPcd] > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity >
On Mon, Dec 17, 2018 at 07:51:45PM +0100, Ard Biesheuvel wrote: > Use an untyped PCD reference for PcdSerialRegisterBase, so that the > library gets built without hardcoded values, permitting modules to > override the default serial port. This allows SerialDxe to use a > different serial port from the one used for DEBUG output (which > often gets occluded due to the console driver clearing the screen) > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > --- > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c | 14 +++++++------- > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 4 +++- > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > index 212991d63859..d576f79c3e6e 100644 > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > @@ -48,7 +48,7 @@ SerialPortInitialize ( > StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); > > return PL011UartInitializePort ( > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > PL011UartClockGetFreq(), > &BaudRate, > &ReceiveFifoDepth, > @@ -75,7 +75,7 @@ SerialPortWrite ( > IN UINTN NumberOfBytes > ) > { > - return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > + return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > } > > /** > @@ -95,7 +95,7 @@ SerialPortRead ( > IN UINTN NumberOfBytes > ) > { > - return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > + return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > } > > /** > @@ -111,7 +111,7 @@ SerialPortPoll ( > VOID > ) > { > - return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); > + return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); > } > /** > Set new attributes to PL011. > @@ -156,7 +156,7 @@ SerialPortSetAttributes ( > ) > { > return PL011UartInitializePort ( > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > PL011UartClockGetFreq(), > BaudRate, > ReceiveFifoDepth, > @@ -198,7 +198,7 @@ SerialPortSetControl ( > IN UINT32 Control > ) > { > - return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > + return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > } > > /** > @@ -239,5 +239,5 @@ SerialPortGetControl ( > OUT UINT32 *Control > ) > { > - return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > + return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > } > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > index 5ce5b2f5304c..bca7bed875c6 100644 > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > @@ -36,8 +36,10 @@ > MdeModulePkg/MdeModulePkg.dec > ArmPlatformPkg/ArmPlatformPkg.dec > > -[FixedPcd] > +[Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase > + > +[FixedPcd] > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity > -- > 2.17.1 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
On Thu, 20 Dec 2018 at 16:20, Leif Lindholm <leif.lindholm@linaro.org> wrote: > > On Mon, Dec 17, 2018 at 07:51:45PM +0100, Ard Biesheuvel wrote: > > Use an untyped PCD reference for PcdSerialRegisterBase, so that the > > library gets built without hardcoded values, permitting modules to > > override the default serial port. This allows SerialDxe to use a > > different serial port from the one used for DEBUG output (which > > often gets occluded due to the console driver clearing the screen) > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > > Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > Thanks Pushed as 6f42f9a54bf0..5a9b3eb8e5fb > > --- > > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c | 14 +++++++------- > > ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 4 +++- > > 2 files changed, 10 insertions(+), 8 deletions(-) > > > > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > > index 212991d63859..d576f79c3e6e 100644 > > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c > > @@ -48,7 +48,7 @@ SerialPortInitialize ( > > StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); > > > > return PL011UartInitializePort ( > > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > > PL011UartClockGetFreq(), > > &BaudRate, > > &ReceiveFifoDepth, > > @@ -75,7 +75,7 @@ SerialPortWrite ( > > IN UINTN NumberOfBytes > > ) > > { > > - return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > > + return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > > } > > > > /** > > @@ -95,7 +95,7 @@ SerialPortRead ( > > IN UINTN NumberOfBytes > > ) > > { > > - return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > > + return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); > > } > > > > /** > > @@ -111,7 +111,7 @@ SerialPortPoll ( > > VOID > > ) > > { > > - return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); > > + return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); > > } > > /** > > Set new attributes to PL011. > > @@ -156,7 +156,7 @@ SerialPortSetAttributes ( > > ) > > { > > return PL011UartInitializePort ( > > - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), > > + (UINTN)PcdGet64 (PcdSerialRegisterBase), > > PL011UartClockGetFreq(), > > BaudRate, > > ReceiveFifoDepth, > > @@ -198,7 +198,7 @@ SerialPortSetControl ( > > IN UINT32 Control > > ) > > { > > - return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > > + return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > > } > > > > /** > > @@ -239,5 +239,5 @@ SerialPortGetControl ( > > OUT UINT32 *Control > > ) > > { > > - return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); > > + return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); > > } > > diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > > index 5ce5b2f5304c..bca7bed875c6 100644 > > --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > > +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf > > @@ -36,8 +36,10 @@ > > MdeModulePkg/MdeModulePkg.dec > > ArmPlatformPkg/ArmPlatformPkg.dec > > > > -[FixedPcd] > > +[Pcd] > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase > > + > > +[FixedPcd] > > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate > > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits > > gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity > > -- > > 2.17.1 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c index 212991d63859..d576f79c3e6e 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c @@ -48,7 +48,7 @@ SerialPortInitialize ( StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); return PL011UartInitializePort ( - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), + (UINTN)PcdGet64 (PcdSerialRegisterBase), PL011UartClockGetFreq(), &BaudRate, &ReceiveFifoDepth, @@ -75,7 +75,7 @@ SerialPortWrite ( IN UINTN NumberOfBytes ) { - return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -95,7 +95,7 @@ SerialPortRead ( IN UINTN NumberOfBytes ) { - return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -111,7 +111,7 @@ SerialPortPoll ( VOID ) { - return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); + return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); } /** Set new attributes to PL011. @@ -156,7 +156,7 @@ SerialPortSetAttributes ( ) { return PL011UartInitializePort ( - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), + (UINTN)PcdGet64 (PcdSerialRegisterBase), PL011UartClockGetFreq(), BaudRate, ReceiveFifoDepth, @@ -198,7 +198,7 @@ SerialPortSetControl ( IN UINT32 Control ) { - return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); } /** @@ -239,5 +239,5 @@ SerialPortGetControl ( OUT UINT32 *Control ) { - return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); } diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf index 5ce5b2f5304c..bca7bed875c6 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf @@ -36,8 +36,10 @@ MdeModulePkg/MdeModulePkg.dec ArmPlatformPkg/ArmPlatformPkg.dec -[FixedPcd] +[Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase + +[FixedPcd] gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
Use an untyped PCD reference for PcdSerialRegisterBase, so that the library gets built without hardcoded values, permitting modules to override the default serial port. This allows SerialDxe to use a different serial port from the one used for DEBUG output (which often gets occluded due to the console driver clearing the screen) Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c | 14 +++++++------- ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) -- 2.17.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel