[edk2,0/4] implement runtime debug output protocl

Message ID 20180301181142.16817-1-ard.biesheuvel@linaro.org
Headers show
Series
  • implement runtime debug output protocl
Related show

Message

Ard Biesheuvel March 1, 2018, 6:11 p.m.
As discussed on list, MMIO based UARTs cannot be used at runtime without
taking special precautions to register the MMIO region and switch to the
virtual address when accessing it at runtime.

So extend the recently introduced DxeRuntimeDebugLibSerialPort library by
invoking the proposed RuntimeDebugOutput protocol at runtime if one is
available, and providing an implementation of this protocol for PL011.

Ard Biesheuvel (4):
  MdePkg: move DxeRuntimeDebugLibSerialPort to MdeModulePkg
  MdeModulePkg: introduce runtime debug output protocol
  MdeModulePkg/DxeRuntimeDebugLibSerialPort: invoke
    RuntimeDebugOutputProtocol
  ArmPlatformPkg: add PL011 UART runtime debug driver

 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.c                 | 144 ++++++++++++++++++
 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.inf               |  62 ++++++++
 ArmVirtPkg/ArmVirt.dsc.inc                                                                     |   2 +-
 MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h                                             |  58 ++++++++
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c                       | 155 +++++++++++++++++---
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf |   5 +
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.uni |   0
 MdeModulePkg/MdeModulePkg.dec                                                                  |   4 +
 8 files changed, 412 insertions(+), 18 deletions(-)
 create mode 100644 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.c
 create mode 100644 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.inf
 create mode 100644 MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h
 rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c (70%)
 rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf (88%)
 rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.uni (100%)

-- 
2.11.0

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

Comments

Zeng, Star March 2, 2018, 2:09 a.m. | #1
Sorry, I did not follow up the thread for DxeRuntimeDebugLibSerialPort.

For this thread, do you think it is feasible below for the case?

Use PeiDxeDebugLibReportStatusCode -> RuntimeDxeReportStatusCodeLib -> ReportStatusCodeRouterRuntimeDxe

ReportStatusCodeRouterRuntimeDxe will produce gEfiRscHandlerProtocolGuid protocol.
Like StatusCodeHandlerRuntimeDxe, consumer of gEfiRscHandlerProtocolGuid protocol can register handler to show debug message and etc.


Thanks,
Star
-----Original Message-----
From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] 

Sent: Friday, March 2, 2018 2:12 AM
To: edk2-devel@lists.01.org
Cc: lersek@redhat.com; leif.lindholm@linaro.org; heyi.guo@linaro.org; Zeng, Star <star.zeng@intel.com>; Dong, Eric <eric.dong@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: [PATCH 0/4] implement runtime debug output protocl

As discussed on list, MMIO based UARTs cannot be used at runtime without taking special precautions to register the MMIO region and switch to the virtual address when accessing it at runtime.

So extend the recently introduced DxeRuntimeDebugLibSerialPort library by invoking the proposed RuntimeDebugOutput protocol at runtime if one is available, and providing an implementation of this protocol for PL011.

Ard Biesheuvel (4):
  MdePkg: move DxeRuntimeDebugLibSerialPort to MdeModulePkg
  MdeModulePkg: introduce runtime debug output protocol
  MdeModulePkg/DxeRuntimeDebugLibSerialPort: invoke
    RuntimeDebugOutputProtocol
  ArmPlatformPkg: add PL011 UART runtime debug driver

 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.c                 | 144 ++++++++++++++++++
 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.inf               |  62 ++++++++
 ArmVirtPkg/ArmVirt.dsc.inc                                                                     |   2 +-
 MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h                                             |  58 ++++++++
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c                       | 155 +++++++++++++++++---
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf |   5 +
 {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.uni |   0
 MdeModulePkg/MdeModulePkg.dec                                                                  |   4 +
 8 files changed, 412 insertions(+), 18 deletions(-)  create mode 100644 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.c
 create mode 100644 ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputDxe.inf
 create mode 100644 MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h
 rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c (70%)  rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf (88%)  rename {MdePkg => MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.uni (100%)

--
2.11.0

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