From: Heyi Guo <guoheyi@huawei.com>
To: <edk2-devel@lists.01.org>
Cc: <wanghaibin.wang@huawei.com>, Laszlo Ersek <lersek@redhat.com>,
"Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
Julien Grall <julien.grall@arm.com>,
Heyi Guo <heyi.guo@linaro.org>
Subject: [RFC 3/3] ArmVirtQemu: enable runtime debug by build flag
Date: Thu, 28 Feb 2019 16:05:12 +0800 [thread overview]
Message-ID: <1551341112-21645-4-git-send-email-guoheyi@huawei.com> (raw)
In-Reply-To: <1551341112-21645-1-git-send-email-guoheyi@huawei.com>
Introduce a build definition "RT_DEBUG" to enable runtime debug, so
that we can have a handy method for UEFI runtime services debug.
This build flag only applies to DEBUG build; the reason for not
enabling it for DEBUG build by default is the related modules have
some dependencies, so "DEBUG(())" won't print any anything until the
status code handler driver has run.
User needs to specify "-D RT_DEBUG=TRUE"; "-D RT_DEBUG" is not enough
for we use !if $(RT_DEBUG)==TRUE in the code.
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Julien Grall <julien.grall@arm.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Heyi Guo <guoheyi@huawei.com>
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
---
ArmVirtPkg/ArmVirt.dsc.inc | 6 ++++++
ArmVirtPkg/ArmVirtQemu.dsc | 13 +++++++++++++
ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 5 +++++
3 files changed, 24 insertions(+)
diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index d172a08..26984d6 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -240,8 +240,14 @@
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
!if $(TARGET) != RELEASE
+!if $(RT_DEBUG) == TRUE
+ SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLibRuntime.inf
+ ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
+ DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+!else
DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf
!endif
+!endif
!if $(SECURE_BOOT_ENABLE) == TRUE
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index d703317..6309903 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -37,6 +37,7 @@
DEFINE SECURE_BOOT_ENABLE = FALSE
DEFINE NETWORK_IP6_ENABLE = FALSE
DEFINE HTTP_BOOT_ENABLE = FALSE
+ DEFINE RT_DEBUG = FALSE
!include ArmVirtPkg/ArmVirt.dsc.inc
@@ -93,6 +94,10 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
+!if $(TARGET) != RELEASE && $(RT_DEBUG) == TRUE
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerialRuntime|TRUE
+!endif
+
[PcdsFixedAtBuild.common]
!if $(ARCH) == AARCH64
gArmTokenSpaceGuid.PcdVFPEnabled|1
@@ -159,7 +164,11 @@
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
!endif
+!if $(TARGET) != RELEASE && $(RT_DEBUG) == TRUE
+ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|7
+!else
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3
+!endif
[PcdsFixedAtBuild.AARCH64]
# Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
@@ -263,6 +272,10 @@
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
}
+!if $(TARGET) != RELEASE && $(RT_DEBUG) == TRUE
+ MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
+!endif
+
#
# Architectural Protocols
#
diff --git a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
index 098d40b..bf86e61 100644
--- a/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
+++ b/ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
@@ -46,6 +46,11 @@ READ_LOCK_STATUS = TRUE
INF MdeModulePkg/Core/Dxe/DxeMain.inf
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
+
+!if $(TARGET) != RELEASE && $(RT_DEBUG) == TRUE
+ INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf
+!endif
+
INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf
--
1.8.3.1
next prev parent reply other threads:[~2019-02-28 8:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-28 8:05 [RFC 0/3] Enable runtime serial debug for ArmVirtQemu Heyi Guo
2019-02-28 8:05 ` [RFC 1/3] MdeModulePkg/StatusCode: Add PCD to enable runtime serial debug Heyi Guo
2019-02-28 8:05 ` [RFC 2/3] ArmVirtPkg: add runtime instance of FdtPL011SerialPortLib Heyi Guo
2019-02-28 8:05 ` Heyi Guo [this message]
2019-02-28 12:10 ` [RFC 0/3] Enable runtime serial debug for ArmVirtQemu Ard Biesheuvel
2019-03-01 15:27 ` Laszlo Ersek
2019-03-04 13:52 ` Heyi Guo
2019-03-12 6:56 ` Heyi Guo
2019-03-12 17:05 ` Laszlo Ersek
2019-03-12 17:28 ` Andrew Fish
2019-03-12 19:42 ` Laszlo Ersek
2019-03-13 20:16 ` Brian J. Johnson
2019-03-14 3:52 ` Andrew Fish
2019-03-16 9:41 ` Heyi Guo
2019-03-20 9:55 ` Laszlo Ersek
2019-03-20 12:16 ` Heyi Guo
2019-03-20 17:47 ` Laszlo Ersek
2019-03-21 3:23 ` Heyi Guo
2019-02-28 13:39 ` Laszlo Ersek
2019-03-01 12:24 ` Heyi Guo
2019-03-01 14:59 ` Laszlo Ersek
2019-03-01 15:14 ` Ard Biesheuvel
[not found] ` <CAFEAcA8AQjMJytpbXbBPH_YyuVW-PawhSgGeXaZGhVzRUPh9+A@mail.gmail.com>
2019-03-01 16:14 ` Laszlo Ersek
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=1551341112-21645-4-git-send-email-guoheyi@huawei.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