diff mbox series

[edk2,edk2-platforms,v1,09/38] Hisilicon/D06: Add Debug Serial Port Init Driver

Message ID 20180724070922.63362-10-ming.huang@linaro.org
State New
Headers show
Series Upload for D06 platform | expand

Commit Message

Ming Huang July 24, 2018, 7:08 a.m. UTC
From: Yan Zhang <zhangyan81@huawei.com>


Debug serial port init driver is added to initilize debug
serial port.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yan Zhang <zhangyan81@huawei.com>

Signed-off-by: Ming Huang <ming.huang@linaro.org>

Signed-off-by: Heyi Guo <heyi.guo@linaro.org>

---
 Platform/Hisilicon/D06/D06.dsc                                                               |  1 +
 Platform/Hisilicon/D06/D06.fdf                                                               |  1 +
 Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c   | 64 ++++++++++++++++++++
 Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf | 48 +++++++++++++++
 4 files changed, 114 insertions(+)

-- 
2.17.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Leif Lindholm Aug. 2, 2018, 6:10 p.m. UTC | #1
On Tue, Jul 24, 2018 at 03:08:53PM +0800, Ming Huang wrote:
> From: Yan Zhang <zhangyan81@huawei.com>

> 

> Debug serial port init driver is added to initilize debug

> serial port.


What is special about this platform that makes it require a separate
initialization function for the PL011?

/
    Leif

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: Yan Zhang <zhangyan81@huawei.com>

> Signed-off-by: Ming Huang <ming.huang@linaro.org>

> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>

> ---

>  Platform/Hisilicon/D06/D06.dsc                                                               |  1 +

>  Platform/Hisilicon/D06/D06.fdf                                                               |  1 +

>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c   | 64 ++++++++++++++++++++

>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf | 48 +++++++++++++++

>  4 files changed, 114 insertions(+)

> 

> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc

> index f4dfef1087..3f6f1ff20d 100644

> --- a/Platform/Hisilicon/D06/D06.dsc

> +++ b/Platform/Hisilicon/D06/D06.dsc

> @@ -426,6 +426,7 @@

>    # Memory test

>    #

>    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf

> +  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf

>    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf

>    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf

>    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf

> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf

> index 2730eb42a9..bc016a32ae 100644

> --- a/Platform/Hisilicon/D06/D06.fdf

> +++ b/Platform/Hisilicon/D06/D06.fdf

> @@ -303,6 +303,7 @@ READ_LOCK_STATUS   = TRUE

>    INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf

>    INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf

>  

> +  INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf

>    INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf

>    #

>    # Build Shell from latest source code instead of prebuilt binary

> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c

> new file mode 100644

> index 0000000000..b7233eed21

> --- /dev/null

> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c

> @@ -0,0 +1,64 @@

> +/** @file

> +

> +    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.

> +    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.

> +

> +    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 <Uefi.h>

> +#include <Library/BaseLib.h>

> +#include <Library/DebugLib.h>

> +#include <Library/PL011UartLib.h>

> +#include <Library/PcdLib.h>

> +#include <Library/SerialPortLib.h>

> +

> +RETURN_STATUS

> +EFIAPI

> +DebugSerialPortInitialize (

> +  VOID

> +  )

> +{

> +  UINT64              BaudRate;

> +  UINT32              ReceiveFifoDepth;

> +  EFI_PARITY_TYPE     Parity;

> +  UINT8               DataBits;

> +  EFI_STOP_BITS_TYPE  StopBits;

> +

> +  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);

> +  ReceiveFifoDepth = 0;         // Use default FIFO depth

> +  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);

> +  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);

> +  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);

> +  return PL011UartInitializePort (

> +           (UINTN)FixedPcdGet64 (PcdSerialDbgRegisterBase),

> +           FixedPcdGet32 (PL011UartClkInHz),

> +           &BaudRate,

> +           &ReceiveFifoDepth,

> +           &Parity,

> +           &DataBits,

> +           &StopBits

> +           );

> +}

> +

> +EFI_STATUS

> +SerialPortEntry (

> +  IN EFI_HANDLE         ImageHandle,

> +  IN EFI_SYSTEM_TABLE   *SystemTable

> +  )

> +{

> +  EFI_STATUS Status;

> +  Status = DebugSerialPortInitialize ();

> +  if (EFI_ERROR (Status)) {

> +    DEBUG ((DEBUG_ERROR, "CPU1 TB serial port init ERROR: %r\n", Status));

> +  }

> +  return EFI_SUCCESS;

> +}

> +

> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf

> new file mode 100644

> index 0000000000..8c91bdf0f4

> --- /dev/null

> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf

> @@ -0,0 +1,48 @@

> +#/** @file

> +#

> +#    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.

> +#    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.

> +#

> +#    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                    = 0x0001001A

> +  BASE_NAME                      = Pl011DebugSerialPortInitDxe

> +  FILE_GUID                      = 16D53E86-7EA4-47bd-861F-511EA9B8ABE0

> +  MODULE_TYPE                    = DXE_DRIVER

> +  VERSION_STRING                 = 1.0

> +  ENTRY_POINT                    = SerialPortEntry

> +

> +[Sources.common]

> +  Pl011DebugSerialPortInitDxe.c

> +

> +

> +[Packages]

> +  ArmPlatformPkg/ArmPlatformPkg.dec

> +  MdeModulePkg/MdeModulePkg.dec

> +  MdePkg/MdePkg.dec

> +  Silicon/Hisilicon/HisiPkg.dec

> +

> +[LibraryClasses]

> +  BaseLib

> +  UefiDriverEntryPoint

> +

> +[Pcd]

> +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz

> +  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase

> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate

> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits

> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity

> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits

> +

> +[Depex]

> +  TRUE

> +

> -- 

> 2.17.0

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ming Huang Aug. 8, 2018, 7:37 a.m. UTC | #2
在 8/3/2018 2:10 AM, Leif Lindholm 写道:
> On Tue, Jul 24, 2018 at 03:08:53PM +0800, Ming Huang wrote:
>> From: Yan Zhang <zhangyan81@huawei.com>
>>
>> Debug serial port init driver is added to initilize debug
>> serial port.
> 
> What is special about this platform that makes it require a separate
> initialization function for the PL011?
> 

We have two physical PL011 serial ports on the board, one for serial port
console (described by ACPI SPCR) and the other for standard debug port
(described by ACPI DBG2). This driver is to initialize the debug UART,
not the serial console.

Ming

> /
>     Leif
> 
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Yan Zhang <zhangyan81@huawei.com>
>> Signed-off-by: Ming Huang <ming.huang@linaro.org>
>> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
>> ---
>>  Platform/Hisilicon/D06/D06.dsc                                                               |  1 +
>>  Platform/Hisilicon/D06/D06.fdf                                                               |  1 +
>>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c   | 64 ++++++++++++++++++++
>>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf | 48 +++++++++++++++
>>  4 files changed, 114 insertions(+)
>>
>> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
>> index f4dfef1087..3f6f1ff20d 100644
>> --- a/Platform/Hisilicon/D06/D06.dsc
>> +++ b/Platform/Hisilicon/D06/D06.dsc
>> @@ -426,6 +426,7 @@
>>    # Memory test
>>    #
>>    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
>> +  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
>>    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
>>    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
>> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
>> index 2730eb42a9..bc016a32ae 100644
>> --- a/Platform/Hisilicon/D06/D06.fdf
>> +++ b/Platform/Hisilicon/D06/D06.fdf
>> @@ -303,6 +303,7 @@ READ_LOCK_STATUS   = TRUE
>>    INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
>>    INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
>>  
>> +  INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>    INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
>>    #
>>    # Build Shell from latest source code instead of prebuilt binary
>> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
>> new file mode 100644
>> index 0000000000..b7233eed21
>> --- /dev/null
>> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
>> @@ -0,0 +1,64 @@
>> +/** @file
>> +
>> +    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
>> +    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
>> +
>> +    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 <Uefi.h>
>> +#include <Library/BaseLib.h>
>> +#include <Library/DebugLib.h>
>> +#include <Library/PL011UartLib.h>
>> +#include <Library/PcdLib.h>
>> +#include <Library/SerialPortLib.h>
>> +
>> +RETURN_STATUS
>> +EFIAPI
>> +DebugSerialPortInitialize (
>> +  VOID
>> +  )
>> +{
>> +  UINT64              BaudRate;
>> +  UINT32              ReceiveFifoDepth;
>> +  EFI_PARITY_TYPE     Parity;
>> +  UINT8               DataBits;
>> +  EFI_STOP_BITS_TYPE  StopBits;
>> +
>> +  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
>> +  ReceiveFifoDepth = 0;         // Use default FIFO depth
>> +  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
>> +  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
>> +  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
>> +  return PL011UartInitializePort (
>> +           (UINTN)FixedPcdGet64 (PcdSerialDbgRegisterBase),
>> +           FixedPcdGet32 (PL011UartClkInHz),
>> +           &BaudRate,
>> +           &ReceiveFifoDepth,
>> +           &Parity,
>> +           &DataBits,
>> +           &StopBits
>> +           );
>> +}
>> +
>> +EFI_STATUS
>> +SerialPortEntry (
>> +  IN EFI_HANDLE         ImageHandle,
>> +  IN EFI_SYSTEM_TABLE   *SystemTable
>> +  )
>> +{
>> +  EFI_STATUS Status;
>> +  Status = DebugSerialPortInitialize ();
>> +  if (EFI_ERROR (Status)) {
>> +    DEBUG ((DEBUG_ERROR, "CPU1 TB serial port init ERROR: %r\n", Status));
>> +  }
>> +  return EFI_SUCCESS;
>> +}
>> +
>> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>> new file mode 100644
>> index 0000000000..8c91bdf0f4
>> --- /dev/null
>> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>> @@ -0,0 +1,48 @@
>> +#/** @file
>> +#
>> +#    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
>> +#    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
>> +#
>> +#    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                    = 0x0001001A
>> +  BASE_NAME                      = Pl011DebugSerialPortInitDxe
>> +  FILE_GUID                      = 16D53E86-7EA4-47bd-861F-511EA9B8ABE0
>> +  MODULE_TYPE                    = DXE_DRIVER
>> +  VERSION_STRING                 = 1.0
>> +  ENTRY_POINT                    = SerialPortEntry
>> +
>> +[Sources.common]
>> +  Pl011DebugSerialPortInitDxe.c
>> +
>> +
>> +[Packages]
>> +  ArmPlatformPkg/ArmPlatformPkg.dec
>> +  MdeModulePkg/MdeModulePkg.dec
>> +  MdePkg/MdePkg.dec
>> +  Silicon/Hisilicon/HisiPkg.dec
>> +
>> +[LibraryClasses]
>> +  BaseLib
>> +  UefiDriverEntryPoint
>> +
>> +[Pcd]
>> +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
>> +  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
>> +
>> +[Depex]
>> +  TRUE
>> +
>> -- 
>> 2.17.0
>>
Leif Lindholm Aug. 8, 2018, 10:01 a.m. UTC | #3
On Wed, Aug 08, 2018 at 03:37:23PM +0800, Ming wrote:
> 
> 
> 在 8/3/2018 2:10 AM, Leif Lindholm 写道:
> > On Tue, Jul 24, 2018 at 03:08:53PM +0800, Ming Huang wrote:
> >> From: Yan Zhang <zhangyan81@huawei.com>
> >>
> >> Debug serial port init driver is added to initilize debug
> >> serial port.
> > 
> > What is special about this platform that makes it require a separate
> > initialization function for the PL011?
> > 
> 
> We have two physical PL011 serial ports on the board, one for serial port
> console (described by ACPI SPCR) and the other for standard debug port
> (described by ACPI DBG2). This driver is to initialize the debug UART,
> not the serial console.

OK, that makes sense, but was not clear from the commit message.
Can you add a note about what sort of debug this is used for?
(Is it just the DEBUG printouts, is it a serial debugger connection, ...)

/
    Leif

> Ming
> 
> > /
> >     Leif
> > 
> >> Contributed-under: TianoCore Contribution Agreement 1.1
> >> Signed-off-by: Yan Zhang <zhangyan81@huawei.com>
> >> Signed-off-by: Ming Huang <ming.huang@linaro.org>
> >> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
> >> ---
> >>  Platform/Hisilicon/D06/D06.dsc                                                               |  1 +
> >>  Platform/Hisilicon/D06/D06.fdf                                                               |  1 +
> >>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c   | 64 ++++++++++++++++++++
> >>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf | 48 +++++++++++++++
> >>  4 files changed, 114 insertions(+)
> >>
> >> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
> >> index f4dfef1087..3f6f1ff20d 100644
> >> --- a/Platform/Hisilicon/D06/D06.dsc
> >> +++ b/Platform/Hisilicon/D06/D06.dsc
> >> @@ -426,6 +426,7 @@
> >>    # Memory test
> >>    #
> >>    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
> >> +  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
> >>    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
> >>    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> >>    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
> >> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
> >> index 2730eb42a9..bc016a32ae 100644
> >> --- a/Platform/Hisilicon/D06/D06.fdf
> >> +++ b/Platform/Hisilicon/D06/D06.fdf
> >> @@ -303,6 +303,7 @@ READ_LOCK_STATUS   = TRUE
> >>    INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
> >>    INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
> >>  
> >> +  INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
> >>    INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
> >>    #
> >>    # Build Shell from latest source code instead of prebuilt binary
> >> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
> >> new file mode 100644
> >> index 0000000000..b7233eed21
> >> --- /dev/null
> >> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
> >> @@ -0,0 +1,64 @@
> >> +/** @file
> >> +
> >> +    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
> >> +    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
> >> +
> >> +    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 <Uefi.h>
> >> +#include <Library/BaseLib.h>
> >> +#include <Library/DebugLib.h>
> >> +#include <Library/PL011UartLib.h>
> >> +#include <Library/PcdLib.h>
> >> +#include <Library/SerialPortLib.h>
> >> +
> >> +RETURN_STATUS
> >> +EFIAPI
> >> +DebugSerialPortInitialize (
> >> +  VOID
> >> +  )
> >> +{
> >> +  UINT64              BaudRate;
> >> +  UINT32              ReceiveFifoDepth;
> >> +  EFI_PARITY_TYPE     Parity;
> >> +  UINT8               DataBits;
> >> +  EFI_STOP_BITS_TYPE  StopBits;
> >> +
> >> +  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
> >> +  ReceiveFifoDepth = 0;         // Use default FIFO depth
> >> +  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
> >> +  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
> >> +  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
> >> +  return PL011UartInitializePort (
> >> +           (UINTN)FixedPcdGet64 (PcdSerialDbgRegisterBase),
> >> +           FixedPcdGet32 (PL011UartClkInHz),
> >> +           &BaudRate,
> >> +           &ReceiveFifoDepth,
> >> +           &Parity,
> >> +           &DataBits,
> >> +           &StopBits
> >> +           );
> >> +}
> >> +
> >> +EFI_STATUS
> >> +SerialPortEntry (
> >> +  IN EFI_HANDLE         ImageHandle,
> >> +  IN EFI_SYSTEM_TABLE   *SystemTable
> >> +  )
> >> +{
> >> +  EFI_STATUS Status;
> >> +  Status = DebugSerialPortInitialize ();
> >> +  if (EFI_ERROR (Status)) {
> >> +    DEBUG ((DEBUG_ERROR, "CPU1 TB serial port init ERROR: %r\n", Status));
> >> +  }
> >> +  return EFI_SUCCESS;
> >> +}
> >> +
> >> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
> >> new file mode 100644
> >> index 0000000000..8c91bdf0f4
> >> --- /dev/null
> >> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
> >> @@ -0,0 +1,48 @@
> >> +#/** @file
> >> +#
> >> +#    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
> >> +#    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
> >> +#
> >> +#    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                    = 0x0001001A
> >> +  BASE_NAME                      = Pl011DebugSerialPortInitDxe
> >> +  FILE_GUID                      = 16D53E86-7EA4-47bd-861F-511EA9B8ABE0
> >> +  MODULE_TYPE                    = DXE_DRIVER
> >> +  VERSION_STRING                 = 1.0
> >> +  ENTRY_POINT                    = SerialPortEntry
> >> +
> >> +[Sources.common]
> >> +  Pl011DebugSerialPortInitDxe.c
> >> +
> >> +
> >> +[Packages]
> >> +  ArmPlatformPkg/ArmPlatformPkg.dec
> >> +  MdeModulePkg/MdeModulePkg.dec
> >> +  MdePkg/MdePkg.dec
> >> +  Silicon/Hisilicon/HisiPkg.dec
> >> +
> >> +[LibraryClasses]
> >> +  BaseLib
> >> +  UefiDriverEntryPoint
> >> +
> >> +[Pcd]
> >> +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
> >> +  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
> >> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
> >> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
> >> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
> >> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
> >> +
> >> +[Depex]
> >> +  TRUE
> >> +
> >> -- 
> >> 2.17.0
> >>
Ming Huang Aug. 8, 2018, 2:48 p.m. UTC | #4
在 8/8/2018 6:01 PM, Leif Lindholm 写道:
> On Wed, Aug 08, 2018 at 03:37:23PM +0800, Ming wrote:
>>
>>
>> 在 8/3/2018 2:10 AM, Leif Lindholm 写道:
>>> On Tue, Jul 24, 2018 at 03:08:53PM +0800, Ming Huang wrote:
>>>> From: Yan Zhang <zhangyan81@huawei.com>
>>>>
>>>> Debug serial port init driver is added to initilize debug
>>>> serial port.
>>>
>>> What is special about this platform that makes it require a separate
>>> initialization function for the PL011?
>>>
>>
>> We have two physical PL011 serial ports on the board, one for serial port
>> console (described by ACPI SPCR) and the other for standard debug port
>> (described by ACPI DBG2). This driver is to initialize the debug UART,
>> not the serial console.
> 
> OK, that makes sense, but was not clear from the commit message.
> Can you add a note about what sort of debug this is used for?

OK

> (Is it just the DEBUG printouts, is it a serial debugger connection, ...)

Yes, it is a serial debugger connection.

>> /
>     Leif
> 
>> Ming
>>
>>> /
>>>     Leif
>>>
>>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>>> Signed-off-by: Yan Zhang <zhangyan81@huawei.com>
>>>> Signed-off-by: Ming Huang <ming.huang@linaro.org>
>>>> Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
>>>> ---
>>>>  Platform/Hisilicon/D06/D06.dsc                                                               |  1 +
>>>>  Platform/Hisilicon/D06/D06.fdf                                                               |  1 +
>>>>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c   | 64 ++++++++++++++++++++
>>>>  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf | 48 +++++++++++++++
>>>>  4 files changed, 114 insertions(+)
>>>>
>>>> diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
>>>> index f4dfef1087..3f6f1ff20d 100644
>>>> --- a/Platform/Hisilicon/D06/D06.dsc
>>>> +++ b/Platform/Hisilicon/D06/D06.dsc
>>>> @@ -426,6 +426,7 @@
>>>>    # Memory test
>>>>    #
>>>>    MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
>>>> +  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>>>    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
>>>>    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
>>>>    MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
>>>> diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
>>>> index 2730eb42a9..bc016a32ae 100644
>>>> --- a/Platform/Hisilicon/D06/D06.fdf
>>>> +++ b/Platform/Hisilicon/D06/D06.fdf
>>>> @@ -303,6 +303,7 @@ READ_LOCK_STATUS   = TRUE
>>>>    INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
>>>>    INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
>>>>  
>>>> +  INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>>>    INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
>>>>    #
>>>>    # Build Shell from latest source code instead of prebuilt binary
>>>> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
>>>> new file mode 100644
>>>> index 0000000000..b7233eed21
>>>> --- /dev/null
>>>> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
>>>> @@ -0,0 +1,64 @@
>>>> +/** @file
>>>> +
>>>> +    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
>>>> +    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
>>>> +
>>>> +    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 <Uefi.h>
>>>> +#include <Library/BaseLib.h>
>>>> +#include <Library/DebugLib.h>
>>>> +#include <Library/PL011UartLib.h>
>>>> +#include <Library/PcdLib.h>
>>>> +#include <Library/SerialPortLib.h>
>>>> +
>>>> +RETURN_STATUS
>>>> +EFIAPI
>>>> +DebugSerialPortInitialize (
>>>> +  VOID
>>>> +  )
>>>> +{
>>>> +  UINT64              BaudRate;
>>>> +  UINT32              ReceiveFifoDepth;
>>>> +  EFI_PARITY_TYPE     Parity;
>>>> +  UINT8               DataBits;
>>>> +  EFI_STOP_BITS_TYPE  StopBits;
>>>> +
>>>> +  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
>>>> +  ReceiveFifoDepth = 0;         // Use default FIFO depth
>>>> +  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
>>>> +  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
>>>> +  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
>>>> +  return PL011UartInitializePort (
>>>> +           (UINTN)FixedPcdGet64 (PcdSerialDbgRegisterBase),
>>>> +           FixedPcdGet32 (PL011UartClkInHz),
>>>> +           &BaudRate,
>>>> +           &ReceiveFifoDepth,
>>>> +           &Parity,
>>>> +           &DataBits,
>>>> +           &StopBits
>>>> +           );
>>>> +}
>>>> +
>>>> +EFI_STATUS
>>>> +SerialPortEntry (
>>>> +  IN EFI_HANDLE         ImageHandle,
>>>> +  IN EFI_SYSTEM_TABLE   *SystemTable
>>>> +  )
>>>> +{
>>>> +  EFI_STATUS Status;
>>>> +  Status = DebugSerialPortInitialize ();
>>>> +  if (EFI_ERROR (Status)) {
>>>> +    DEBUG ((DEBUG_ERROR, "CPU1 TB serial port init ERROR: %r\n", Status));
>>>> +  }
>>>> +  return EFI_SUCCESS;
>>>> +}
>>>> +
>>>> diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>>> new file mode 100644
>>>> index 0000000000..8c91bdf0f4
>>>> --- /dev/null
>>>> +++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
>>>> @@ -0,0 +1,48 @@
>>>> +#/** @file
>>>> +#
>>>> +#    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
>>>> +#    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
>>>> +#
>>>> +#    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                    = 0x0001001A
>>>> +  BASE_NAME                      = Pl011DebugSerialPortInitDxe
>>>> +  FILE_GUID                      = 16D53E86-7EA4-47bd-861F-511EA9B8ABE0
>>>> +  MODULE_TYPE                    = DXE_DRIVER
>>>> +  VERSION_STRING                 = 1.0
>>>> +  ENTRY_POINT                    = SerialPortEntry
>>>> +
>>>> +[Sources.common]
>>>> +  Pl011DebugSerialPortInitDxe.c
>>>> +
>>>> +
>>>> +[Packages]
>>>> +  ArmPlatformPkg/ArmPlatformPkg.dec
>>>> +  MdeModulePkg/MdeModulePkg.dec
>>>> +  MdePkg/MdePkg.dec
>>>> +  Silicon/Hisilicon/HisiPkg.dec
>>>> +
>>>> +[LibraryClasses]
>>>> +  BaseLib
>>>> +  UefiDriverEntryPoint
>>>> +
>>>> +[Pcd]
>>>> +  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
>>>> +  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
>>>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
>>>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
>>>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
>>>> +  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
>>>> +
>>>> +[Depex]
>>>> +  TRUE
>>>> +
>>>> -- 
>>>> 2.17.0
>>>>
diff mbox series

Patch

diff --git a/Platform/Hisilicon/D06/D06.dsc b/Platform/Hisilicon/D06/D06.dsc
index f4dfef1087..3f6f1ff20d 100644
--- a/Platform/Hisilicon/D06/D06.dsc
+++ b/Platform/Hisilicon/D06/D06.dsc
@@ -426,6 +426,7 @@ 
   # Memory test
   #
   MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
+  Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
   MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
diff --git a/Platform/Hisilicon/D06/D06.fdf b/Platform/Hisilicon/D06/D06.fdf
index 2730eb42a9..bc016a32ae 100644
--- a/Platform/Hisilicon/D06/D06.fdf
+++ b/Platform/Hisilicon/D06/D06.fdf
@@ -303,6 +303,7 @@  READ_LOCK_STATUS   = TRUE
   INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
   INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
 
+  INF Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
   INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
   #
   # Build Shell from latest source code instead of prebuilt binary
diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
new file mode 100644
index 0000000000..b7233eed21
--- /dev/null
+++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.c
@@ -0,0 +1,64 @@ 
+/** @file
+
+    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
+    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
+
+    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 <Uefi.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/PL011UartLib.h>
+#include <Library/PcdLib.h>
+#include <Library/SerialPortLib.h>
+
+RETURN_STATUS
+EFIAPI
+DebugSerialPortInitialize (
+  VOID
+  )
+{
+  UINT64              BaudRate;
+  UINT32              ReceiveFifoDepth;
+  EFI_PARITY_TYPE     Parity;
+  UINT8               DataBits;
+  EFI_STOP_BITS_TYPE  StopBits;
+
+  BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);
+  ReceiveFifoDepth = 0;         // Use default FIFO depth
+  Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);
+  DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);
+  StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);
+  return PL011UartInitializePort (
+           (UINTN)FixedPcdGet64 (PcdSerialDbgRegisterBase),
+           FixedPcdGet32 (PL011UartClkInHz),
+           &BaudRate,
+           &ReceiveFifoDepth,
+           &Parity,
+           &DataBits,
+           &StopBits
+           );
+}
+
+EFI_STATUS
+SerialPortEntry (
+  IN EFI_HANDLE         ImageHandle,
+  IN EFI_SYSTEM_TABLE   *SystemTable
+  )
+{
+  EFI_STATUS Status;
+  Status = DebugSerialPortInitialize ();
+  if (EFI_ERROR (Status)) {
+    DEBUG ((DEBUG_ERROR, "CPU1 TB serial port init ERROR: %r\n", Status));
+  }
+  return EFI_SUCCESS;
+}
+
diff --git a/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
new file mode 100644
index 0000000000..8c91bdf0f4
--- /dev/null
+++ b/Silicon/Hisilicon/Hi1620/Drivers/Pl011DebugSerialPortInitDxe/Pl011DebugSerialPortInitDxe.inf
@@ -0,0 +1,48 @@ 
+#/** @file
+#
+#    Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
+#    Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
+#
+#    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                    = 0x0001001A
+  BASE_NAME                      = Pl011DebugSerialPortInitDxe
+  FILE_GUID                      = 16D53E86-7EA4-47bd-861F-511EA9B8ABE0
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = SerialPortEntry
+
+[Sources.common]
+  Pl011DebugSerialPortInitDxe.c
+
+
+[Packages]
+  ArmPlatformPkg/ArmPlatformPkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  MdePkg/MdePkg.dec
+  Silicon/Hisilicon/HisiPkg.dec
+
+[LibraryClasses]
+  BaseLib
+  UefiDriverEntryPoint
+
+[Pcd]
+  gArmPlatformTokenSpaceGuid.PL011UartClkInHz
+  gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
+  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
+
+[Depex]
+  TRUE
+