From nobody Sun Apr 28 14:35:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 151992792468962.69985384606332; Thu, 1 Mar 2018 10:12:04 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 8002D22451181; Thu, 1 Mar 2018 10:05:54 -0800 (PST) Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1385122423858 for ; Thu, 1 Mar 2018 10:05:52 -0800 (PST) Received: by mail-wr0-x241.google.com with SMTP id v65so7526219wrc.11 for ; Thu, 01 Mar 2018 10:12:01 -0800 (PST) Received: from localhost.localdomain ([196.71.216.221]) by smtp.gmail.com with ESMTPSA id w195sm78568wmw.9.2018.03.01.10.11.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Mar 2018 10:11:58 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::241; helo=mail-wr0-x241.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aAhh6YnMpcRVu0w2TlO9EgVK/UmyDSD54+vuGF85LWc=; b=RHTfD9jBdYvECFzWphtOy1AWoqps3G3hDBhkMw8iELam4DDB9XAEyI6W9Wxw2EUAYw 7IZGHro9ratIZEcCn8FzZ1w33nWcrWLkYUlfEzO9wW9Awcv8So/PW+d4RUsG1tG4Cb9j 7vhmQdneDo+q7otKM7H2BXlO8MgSAbcP5tzdM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aAhh6YnMpcRVu0w2TlO9EgVK/UmyDSD54+vuGF85LWc=; b=rpuklrdKlvCUkFz3MZNLzD04OVYRkG6J52xeU5/jlm1zJZTkMPXh00aaO09okocEXL QhuQrCoE7pmD6zCr3oyOPwnvcOLADveUz4cWN9SuwtBnjccnLJg6iqziCrZsja4NKDlD un6jLMDH4sAIAtc0v3/UfYeqAUOSsVU3tvPi/rjkoX6JAYBIZgHQMneYXvbP5lNVjhQv 9NVGR4WhucJMnh0FcK2mEN1hkCAXFiAO32XdIxpIUEW2sLUbpDSwTv6AoRKIWjAaQBm+ xSM1HMEquJzvHC9tey+sXV/P+GNkOzyvtcuI+735WSrMdpC7JEUyw18S25lYhlrfdghP zCEw== X-Gm-Message-State: APf1xPDczizBLAXkiui+d1eD33WYl5Wu+1dc5/GI4qiR9K0ZlwxCnpTk FWRMCL9pIdnX3fpOoXKvPwiS1W06iPY= X-Google-Smtp-Source: AG47ELualmqlXiFTxWlfrb6VC+Vf0R8cex1H/mO+pvRs6w+am5XCIuI6MhuQC81FuUgw7Na5Zj7xuQ== X-Received: by 10.223.193.69 with SMTP id w5mr2447318wre.42.1519927919570; Thu, 01 Mar 2018 10:11:59 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 1 Mar 2018 18:11:39 +0000 Message-Id: <20180301181142.16817-2-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180301181142.16817-1-ard.biesheuvel@linaro.org> References: <20180301181142.16817-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 1/4] MdePkg: move DxeRuntimeDebugLibSerialPort to MdeModulePkg X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: eric.dong@intel.com, Ard Biesheuvel , leif.lindholm@linaro.org, heyi.guo@linaro.org, liming.gao@intel.com, michael.d.kinney@intel.com, lersek@redhat.com, star.zeng@intel.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Before making enhancements to DxeRuntimeDebugLibSerialPort involving EDK2 specific protocols, move the driver from MdePkg to MdeModulePkg, which permits such EDK2 specific deviations from the PI spec. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmVirtPkg/ArmVirt.dsc.inc = | 2 +- {MdePkg =3D> MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c= | 0 {MdePkg =3D> MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntime= DebugLibSerialPort.inf | 0 {MdePkg =3D> MdeModulePkg}/Library/DxeRuntimeDebugLibSerialPort/DxeRuntime= DebugLibSerialPort.uni | 0 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index cde514958da2..8f411fde1f8b 100644 --- a/ArmVirtPkg/ArmVirt.dsc.inc +++ b/ArmVirtPkg/ArmVirt.dsc.inc @@ -232,7 +232,7 @@ [LibraryClasses.common.DXE_RUNTIME_DRIVER] MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf !if $(TARGET) !=3D RELEASE - DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibS= erialPort.inf + DebugLib|MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDeb= ugLibSerialPort.inf !endif =20 !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE diff --git a/MdePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c b/MdeMo= dulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c similarity index 100% rename from MdePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c rename to MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c diff --git a/MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLib= SerialPort.inf b/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRunti= meDebugLibSerialPort.inf similarity index 100% rename from MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibS= erialPort.inf rename to MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebug= LibSerialPort.inf diff --git a/MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLib= SerialPort.uni b/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRunti= meDebugLibSerialPort.uni similarity index 100% rename from MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibS= erialPort.uni rename to MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebug= LibSerialPort.uni --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun Apr 28 14:35:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1519927928073789.8683103053767; Thu, 1 Mar 2018 10:12:08 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id DCC71224511A5; Thu, 1 Mar 2018 10:05:57 -0800 (PST) Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BF5BE2245119D for ; Thu, 1 Mar 2018 10:05:55 -0800 (PST) Received: by mail-wr0-x242.google.com with SMTP id l43so7573929wrc.2 for ; Thu, 01 Mar 2018 10:12:04 -0800 (PST) Received: from localhost.localdomain ([196.71.216.221]) by smtp.gmail.com with ESMTPSA id w195sm78568wmw.9.2018.03.01.10.11.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Mar 2018 10:12:02 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::242; helo=mail-wr0-x242.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fu8z9X4IjWt97oDD7jGUNSoYqeeX5c2xvxyJzOvpZRE=; b=UK96FO3M0E6DxxRcyGyHXuluOU+Orts2wK1BwgHgY0SS3DUIrFQQe/9GVpkzks66e/ 7eZdJ3WYr+IDK1sieVt2zB29Um3b9PMD9C7YSvrbkey4Zp7tNYBHx5oIYsGqA7HlWXfU eHfN9BAU3pz4imN8sA0gd9ZLU5+QYaxnYY858= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fu8z9X4IjWt97oDD7jGUNSoYqeeX5c2xvxyJzOvpZRE=; b=dxIP4ZRDesh6VzuABCmsaUCWdUnHxQpSgvf/C3AvteCAdbF7cX8lQ2Uc/IyoBj47nJ cX01u+IKTv/I3yoybIozpytuUoy8tY7JmlfnfIkmrksBiebNHjJZfBG770zITaAcLfBq Qsrok0754g/v+cAsKPkRZwUGAD8eTeK81zISJoTZgxl7Iva8onXJBkDAnVn5h9fUqBYG /sSUHujT2ITFZ8DiRp6h3Q1/jsc/X6S3O6TDuYjjGX3t4rIQTqQ2tfjDp2cNxwzPGw6Z I42/mmzy4AaEPogjjHVXqJqci3RLb4wc6f8n8HtiwWBdh41j4M3ZaFTWAPw60jgn9bsK Eh0A== X-Gm-Message-State: APf1xPCMpzyPGExxphXbGGBtQYUikJtxXqhAv3QtVFXXgP+RlTSr4a6/ dCmHplIxe7ym3Z8CYpaAZfQ+4Y7nzVE= X-Google-Smtp-Source: AG47ELuCsRmhpinrZg8Lze1zggGYuc/CkiK9LSgCW1r2WUdsMafgLUmYQbwK+K8MdjrSr/YQ4LlMWQ== X-Received: by 10.223.201.11 with SMTP id m11mr2822726wrh.146.1519927922779; Thu, 01 Mar 2018 10:12:02 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 1 Mar 2018 18:11:40 +0000 Message-Id: <20180301181142.16817-3-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180301181142.16817-1-ard.biesheuvel@linaro.org> References: <20180301181142.16817-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 2/4] MdeModulePkg: introduce runtime debug output protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: eric.dong@intel.com, Ard Biesheuvel , leif.lindholm@linaro.org, heyi.guo@linaro.org, liming.gao@intel.com, michael.d.kinney@intel.com, lersek@redhat.com, star.zeng@intel.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Introduce a EDK2 specific protocol that may be invoked to produce debug output at runtime. This may be used, e.g., by DebugLib library class implementations called from DXE_RUNTIME_DRIVER modules, which may only be able to produce debug output at boot time, and will be able to defer to this protocol to produce debug output at runtime as well. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h | 58 ++++++++++++++++++= ++ MdeModulePkg/MdeModulePkg.dec | 4 ++ 2 files changed, 62 insertions(+) diff --git a/MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h b/MdeModule= Pkg/Include/Protocol/RuntimeDebugOutput.h new file mode 100644 index 000000000000..ac6e0c27d86d --- /dev/null +++ b/MdeModulePkg/Include/Protocol/RuntimeDebugOutput.h @@ -0,0 +1,58 @@ +/** @file + Protocol for emitting debug output at runtime. May be consumed by DebugL= ib + implementations that can only produce output safely at boot time. + + Copyright (c) 2018, Linaro, Ltd. All rights reserved.
+ + This program and the accompanying materials are licensed and made availa= ble + 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 IMP= LIED. + +**/ + +#ifndef __EDK2_RUNTIME_DEBUG_OUTPUT_H__ +#define __EDK2_RUNTIME_DEBUG_OUTPUT_H__ + +#define EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL_GUID \ + { 0x3f4fe308, 0x2284, 0x4ca2, { 0xbe, 0x2c, 0x2d, 0xa8, 0xdf, 0x7a, 0xec= , 0xd6 } } + +typedef struct _EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL EDK2_RUNTIME_DEBUG_OUTP= UT_PROTOCOL; + +/** + Write data from buffer to debug output device + + Writes NumberOfBytes data bytes from Buffer to the debug output device. + The number of bytes actually written to the device is returned. + If the return value is less than NumberOfBytes, then the write operation + failed. + If NumberOfBytes is zero, then return 0. + + @param Buffer Pointer to the data buffer to be written. + @param NumberOfBytes Number of bytes to written to the device. + + @retval 0 NumberOfBytes is 0. + @retval >0 The number of bytes written to the serial devic= e. + If this value is less than NumberOfBytes, then = the + write operation failed. + +**/ +typedef +UINTN +(EFIAPI *RUNTIME_DEBUG_OUTPUT_WRITE) ( + IN EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL *This, + IN UINT8 *Buffer, + IN UINTN NumberOfBytes + ); + + +struct _EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL { + RUNTIME_DEBUG_OUTPUT_WRITE Write; +}; + +extern EFI_GUID gEdkiiRuntimeDebugOutputProtocolGuid; + +#endif diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index ba0585936b6e..faaf189fe464 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -592,6 +592,10 @@ [Protocols] gEdkiiPlatformSpecificResetFilterProtocolGuid =3D { 0x695d7835, 0x8d47,= 0x4c11, { 0xab, 0x22, 0xfa, 0x8a, 0xcc, 0xe7, 0xae, 0x7a } } ## Include/Protocol/PlatformSpecificResetHandler.h gEdkiiPlatformSpecificResetHandlerProtocolGuid =3D { 0x2df6ba0b, 0x7092,= 0x440d, { 0xbd, 0x4, 0xfb, 0x9, 0x1e, 0xc3, 0xf3, 0xc1 } } + + ## Include/Protocol/RuntimeDebugOutput.h + gEdkiiRuntimeDebugOutputProtocolGuid =3D { 0x3f4fe308, 0x2284, 0x4ca2, {= 0xbe, 0x2c, 0x2d, 0xa8, 0xdf, 0x7a, 0xec, 0xd6 } } + # # [Error.gEfiMdeModulePkgTokenSpaceGuid] # 0x80000001 | Invalid value provided. --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun Apr 28 14:35:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1519927931421511.6648753481742; Thu, 1 Mar 2018 10:12:11 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 43E7E224511AD; Thu, 1 Mar 2018 10:06:01 -0800 (PST) Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8B3F22245119D for ; Thu, 1 Mar 2018 10:05:59 -0800 (PST) Received: by mail-wm0-x243.google.com with SMTP id 139so13960134wmn.2 for ; Thu, 01 Mar 2018 10:12:08 -0800 (PST) Received: from localhost.localdomain ([196.71.216.221]) by smtp.gmail.com with ESMTPSA id w195sm78568wmw.9.2018.03.01.10.12.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Mar 2018 10:12:05 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::243; helo=mail-wm0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3ygqM//nCAp++782fDBzQCvuU0N1w/DbwKSmjE8OADo=; b=i35oCirDcqAStzIb6qAQ3UP/hYxDU9OUuJu0LDn6v1gjVQi9WG9mjYRLxQOe5XoAmV Wx8nMQonKsYaK8wmINgBW6oLFetI/46VnYM/LLu1fRFwIFX3KxG+zhFICHLdyU0ytwPy WMCfC+TnY+5S5FryLz/H0Kw4flk3cCSBQzHUY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3ygqM//nCAp++782fDBzQCvuU0N1w/DbwKSmjE8OADo=; b=rq2ain9xD+HAiHbFEG7hglpANqwo/4Qx16ITsySdTS61Lw3ErMWm7a+6CqoKHKG1NW BpczFvhsRQYcluR7jwYKm8hIsMI7Vl5+tj84fYJXkveqsqQbzix9kOsQFwml2UKVOpdh PEUgzMFOHlbZrYcfba1LMHRG3eu3uMlg8LdSUP2WklKMVA+JyC8A4tUSsERPyRpd9U3r q8yan7/De3dohrsqflQoxPAHKkdcRnIrO7GemZM7MI0v5Os6nhXMSRQXpYJX+Dn4R51K B+Galm7BIlsgpz58MEEKTBiRLraLloLblqGfDKuCSDZ+dOkOS2KofrifbiIL1moeygk0 wuxg== X-Gm-Message-State: AElRT7GJOk20Y+f/hbPsX4jdvGGZtip3n5JgtA+zE0oDt5XvPjb0nd1A MMy4sRI9yIXFguaYSi+EvR1rWUELjkI= X-Google-Smtp-Source: AG47ELsq77sl9+56udguBfzfY5NE2ZlN2e17Ud+8Of8nTg2J+MmJfj/LpWKUhp74P+LruiTEpgQeCw== X-Received: by 10.28.220.66 with SMTP id t63mr2464678wmg.100.1519927926315; Thu, 01 Mar 2018 10:12:06 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 1 Mar 2018 18:11:41 +0000 Message-Id: <20180301181142.16817-4-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180301181142.16817-1-ard.biesheuvel@linaro.org> References: <20180301181142.16817-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 3/4] MdeModulePkg/DxeRuntimeDebugLibSerialPort: invoke RuntimeDebugOutputProtocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: eric.dong@intel.com, Ard Biesheuvel , leif.lindholm@linaro.org, heyi.guo@linaro.org, liming.gao@intel.com, michael.d.kinney@intel.com, lersek@redhat.com, star.zeng@intel.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Extend the functionality of DxeRuntimeDebugLibSerialPort by invoking any available RuntimeDebugOutputProtocol to emit debug output at runtime rather than staying silent. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c = | 155 +++++++++++++++++--- MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerial= Port.inf | 5 + 2 files changed, 143 insertions(+), 17 deletions(-) diff --git a/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c b= /MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c index e1266f77fa41..b5460f10ebb6 100644 --- a/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c +++ b/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DebugLib.c @@ -25,10 +25,16 @@ #include #include #include +#include =20 STATIC EFI_EVENT mEfiExitBootServicesEvent; +STATIC EFI_EVENT mEfiVirtualAddressChangeEvent; +STATIC EFI_EVENT mRegisterRuntimeDebugOutputProtocolEvent; +STATIC VOID *mRegisterProtocolRegistration; STATIC BOOLEAN mEfiAtRuntime =3D FALSE; =20 +STATIC EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL *mRuntimeOutput =3D NULL; + // // Define the maximum debug and assert message length that this library su= pports // @@ -53,6 +59,58 @@ ExitBootServicesEvent ( } =20 /** + Attach to the RuntimeDebugOutputProtocol as soon as it gets registered + + @param[in] Event The Event that is being processed. + @param[in] Context The Event Context. + +**/ +STATIC +VOID +EFIAPI +RegisterRuntimeDebugOutputProtocolEvent ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + EFI_STATUS Status; + EFI_BOOT_SERVICES *BS; + + BS =3D Context; + + Status =3D BS->LocateProtocol (&gEdkiiRuntimeDebugOutputProtocolGuid, + mRegisterProtocolRegistration, + (VOID **)&mRuntimeOutput); + if (EFI_ERROR (Status)) { + return; + } + + BS->CloseEvent (Event); +} + +/** + Fix up virtual address of the runtime debug output protocol + + @param[in] Event The Event that is being processed. + @param[in] Context The Event Context. + +**/ +STATIC +VOID +EFIAPI +VirtualAddressChangeEvent ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + EFI_RUNTIME_SERVICES *RT; + + RT =3D Context; + + RT->ConvertPointer (0x0, (VOID **)&mRuntimeOutput); +} + +/** The constructor function to initialize the Serial Port library and register a callback for the ExitBootServices event. =20 @@ -70,17 +128,64 @@ DxeRuntimeDebugLibSerialPortConstructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; + EFI_STATUS Status; + EFI_BOOT_SERVICES *BS; =20 Status =3D SerialPortInitialize (); if (EFI_ERROR (Status)) { return Status; } =20 - return SystemTable->BootServices->CreateEventEx (EVT_NOTIFY_SIGNAL, - TPL_NOTIFY, ExitBootServicesEvent, N= ULL, - &gEfiEventExitBootServicesGuid, - &mEfiExitBootServicesEvent); + BS =3D SystemTable->BootServices; + + Status =3D BS->CreateEvent (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, + RegisterRuntimeDebugOutputProtocolEvent, BS, + &mRegisterRuntimeDebugOutputProtocolEvent); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Register for protocol notifications on this event + // + Status =3D BS->RegisterProtocolNotify (&gEdkiiRuntimeDebugOutputProtocol= Guid, + mRegisterRuntimeDebugOutputProtocolEvent, + &mRegisterProtocolRegistration); + if (EFI_ERROR (Status)) { + goto CloseProtocolEvent; + } + + // + // Kick the event so we will perform an initial pass of + // current installed drivers + // + BS->SignalEvent (mRegisterRuntimeDebugOutputProtocolEvent); + + Status =3D BS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, + ExitBootServicesEvent, NULL, + &gEfiEventExitBootServicesGuid, + &mEfiExitBootServicesEvent); + if (EFI_ERROR (Status)) { + goto CloseProtocolEvent; + } + + Status =3D BS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, + VirtualAddressChangeEvent, SystemTable->RuntimeServices, + &gEfiEventVirtualAddressChangeGuid, + &mEfiVirtualAddressChangeEvent); + if (EFI_ERROR (Status)) { + goto CloseExitBootServicesEvent; + } + + return EFI_SUCCESS; + +CloseExitBootServicesEvent: + BS->CloseEvent (mEfiExitBootServicesEvent); + +CloseProtocolEvent: + BS->CloseEvent (mRegisterRuntimeDebugOutputProtocolEvent); + + return Status; } =20 /** @@ -100,7 +205,29 @@ DxeRuntimeDebugLibSerialPortDestructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - return SystemTable->BootServices->CloseEvent (mEfiExitBootServicesEvent); + EFI_BOOT_SERVICES *BS; + + BS =3D SystemTable->BootServices; + + BS->CloseEvent (mRegisterRuntimeDebugOutputProtocolEvent); + BS->CloseEvent (mEfiExitBootServicesEvent); + + return EFI_SUCCESS; +} + +STATIC +UINTN +DebugWriteOutput ( + IN UINT8 *Buffer, + IN UINTN NumberOfBytes + ) +{ + if (!mEfiAtRuntime) { + return SerialPortWrite (Buffer, NumberOfBytes); + } else if (mRuntimeOutput !=3D NULL) { + return mRuntimeOutput->Write (mRuntimeOutput, Buffer, NumberOfBytes); + } + return 0; } =20 /** @@ -129,10 +256,6 @@ DebugPrint ( CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH]; VA_LIST Marker; =20 - if (mEfiAtRuntime) { - return; - } - // // If Format is NULL, then ASSERT(). // @@ -155,7 +278,7 @@ DebugPrint ( // // Send the print string to a Serial Port // - SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer)); + DebugWriteOutput ((UINT8 *)Buffer, AsciiStrLen (Buffer)); } =20 =20 @@ -196,12 +319,10 @@ DebugAssert ( AsciiSPrint (Buffer, sizeof (Buffer), "ASSERT [%a] %a(%d): %a\n", gEfiCallerBaseName, FileName, LineNumber, Description); =20 - if (!mEfiAtRuntime) { - // - // Send the print string to the Console Output device - // - SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer)); - } + // + // Send the print string to the Console Output device + // + DebugWriteOutput ((UINT8 *)Buffer, AsciiStrLen (Buffer)); =20 // // Generate a Breakpoint, DeadLoop, or NOP based on PCD settings diff --git a/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDe= bugLibSerialPort.inf b/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/Dx= eRuntimeDebugLibSerialPort.inf index 813358096982..d2fbdde25f1d 100644 --- a/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibS= erialPort.inf +++ b/MdeModulePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibS= erialPort.inf @@ -36,6 +36,7 @@ [Sources] DebugLib.c =20 [Packages] + MdeModulePkg/MdeModulePkg.dec MdePkg/MdePkg.dec =20 [LibraryClasses] @@ -48,6 +49,10 @@ [LibraryClasses] =20 [Guids] gEfiEventExitBootServicesGuid ## CONSUMES ## Eve= nt + gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Eve= nt + +[Protocols] + gEdkiiRuntimeDebugOutputProtocolGuid ## SOMETIMES_CONSU= MES =20 [Pcd] gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue ## SOMETIMES_CONSU= MES --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Sun Apr 28 14:35:51 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1519927934903326.8803216523297; Thu, 1 Mar 2018 10:12:14 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 9B395224511B1; Thu, 1 Mar 2018 10:06:04 -0800 (PST) Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F2E0B22423858 for ; Thu, 1 Mar 2018 10:06:02 -0800 (PST) Received: by mail-wm0-x241.google.com with SMTP id z9so13854174wmb.3 for ; Thu, 01 Mar 2018 10:12:11 -0800 (PST) Received: from localhost.localdomain ([196.71.216.221]) by smtp.gmail.com with ESMTPSA id w195sm78568wmw.9.2018.03.01.10.12.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Mar 2018 10:12:07 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::241; helo=mail-wm0-x241.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xfXEQI+MZ2WZJtzDwSAWYPZ9yP3J7+TSpRJ7XO1N6PE=; b=WoB1PwYpPSNW3AZQXcbAHn3v3pg8t9Mmgxa7GurOPMLF6sgkkRAQgNCou7leP1wbpd ZwTSZ+eaTHWmda/YuoJTRheRImtHQnGxn76z08lZRVbhdUSKr3aKwOsX4Sd9bbLdTEox yrrInJ15pQxetOuyBkjJSzHKEkMDzxmeJQ7gM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xfXEQI+MZ2WZJtzDwSAWYPZ9yP3J7+TSpRJ7XO1N6PE=; b=i8hQiJo8kwdvnSQG4H4knOJu4wwvWDcGU2+SKOhXJ3C09SWjgFPGpJp/tU5Kq2h4F5 5op+Xe7lvS4WJcXelIiBy2lEoJ7JgfDtEV5Pyx6BsT/0IFkqLnRoubYI0wkSz9OGPlO7 ZI65RS8FFUDzbBXKUY0JArvnKBYShds+oeZQ0oCZbdaf3AtDNYHCKqjHADdw4faSryig F+FWgH7DhHuhBlGUpquCoFXJnUhC1zkjfTPqTYClP+l9zkDVX04KSK5U5amQKwuuIuZT rPdwxG8Nj6VdQGfyd3AayrAwmoJrDLq0cy57Re8wdDQsICGSJWyvzQD05F+B/uL2xiTV eBmg== X-Gm-Message-State: AElRT7H1awUDJAE9R+RgC64ftx6e05nel/xydyFFYxuB/kjN2ZdfxeFn lbMqZWjgi5hE0W0kjfkEf0Nve8N/dts= X-Google-Smtp-Source: AG47ELvb5yAdb8oXgv5NF8VNguVKkpiKpf7ReFB8g4EvMBEhmqS6zupAk7oin13udkUxiG7UbD9vmw== X-Received: by 10.28.166.201 with SMTP id p192mr2359222wme.132.1519927929927; Thu, 01 Mar 2018 10:12:09 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 1 Mar 2018 18:11:42 +0000 Message-Id: <20180301181142.16817-5-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180301181142.16817-1-ard.biesheuvel@linaro.org> References: <20180301181142.16817-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 4/4] ArmPlatformPkg: add PL011 UART runtime debug driver X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: eric.dong@intel.com, Ard Biesheuvel , leif.lindholm@linaro.org, heyi.guo@linaro.org, liming.gao@intel.com, michael.d.kinney@intel.com, lersek@redhat.com, star.zeng@intel.com MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Implement the new runtime debug output protocol on top of a PL011 UART. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm --- ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputD= xe.c | 144 ++++++++++++++++++++ ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOutputD= xe.inf | 62 +++++++++ 2 files changed, 206 insertions(+) diff --git a/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011Runtime= DebugOutputDxe.c b/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011R= untimeDebugOutputDxe.c new file mode 100644 index 000000000000..155b2c50d463 --- /dev/null +++ b/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOu= tputDxe.c @@ -0,0 +1,144 @@ +/** @file + Runtime driver to produce debug output on a PL011 UART + + Copyright (c) 2018, Linaro, Ltd. All rights reserved.
+ + This program and the accompanying materials are licensed and made availa= ble + 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 IMP= LIED. + +**/ + +#include +#include +#include +#include +#include +#include +#include + +STATIC UINTN mUartBase; +STATIC EFI_EVENT mVirtualAddressChangeEvent; + +/** + Write data from buffer to debug output device + + Writes NumberOfBytes data bytes from Buffer to the debug output device. + The number of bytes actually written to the device is returned. + If the return value is less than NumberOfBytes, then the write operation + failed. + If NumberOfBytes is zero, then return 0. + + @param Buffer Pointer to the data buffer to be written. + @param NumberOfBytes Number of bytes to written to the device. + + @retval 0 NumberOfBytes is 0. + @retval >0 The number of bytes written to the serial devic= e. + If this value is less than NumberOfBytes, then = the + write operation failed. + +**/ +STATIC +UINTN +PL011RuntimeDebugOutputWrite ( + IN EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL *This, + IN UINT8 *Buffer, + IN UINTN NumberOfBytes + ) +{ + return PL011UartWrite (mUartBase, Buffer, NumberOfBytes); +} + +STATIC EDK2_RUNTIME_DEBUG_OUTPUT_PROTOCOL mRuntimeDebugOutput =3D { + PL011RuntimeDebugOutputWrite +}; + +/** + Fixup internal data so that EFI can be called in virtual mode. + + @param[in] Event The Event that is being processed + @param[in] Context Event Context +**/ +STATIC +VOID +EFIAPI +VirtualNotifyEvent ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + EfiConvertPointer (0x0, (VOID **)&mUartBase); +} + +EFI_STATUS +EFIAPI +PL011RuntimeDebugOutputDxeEntry ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_HANDLE Handle; + UINT64 BaudRate; + UINT32 ReceiveFifoDepth; + EFI_PARITY_TYPE Parity; + UINT8 DataBits; + EFI_STOP_BITS_TYPE StopBits; + + mUartBase =3D (UINTN)FixedPcdGet64 (PcdSerialRegisterBase); + BaudRate =3D FixedPcdGet64 (PcdUartDefaultBaudRate); + ReceiveFifoDepth =3D 0; // Use default FIFO depth + Parity =3D (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity= ); + DataBits =3D FixedPcdGet8 (PcdUartDefaultDataBits); + StopBits =3D (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultSt= opBits); + + Status =3D PL011UartInitializePort (mUartBase, FixedPcdGet32 (PL011UartC= lkInHz), + &BaudRate, &ReceiveFifoDepth, &Parity, &DataBits, &StopBits); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Register for the virtual address change event + // + Status =3D gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, + VirtualNotifyEvent, NULL, &gEfiEventVirtualAddressChange= Guid, + &mVirtualAddressChangeEvent); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Declare the UART MMIO region as EFI_MEMORY_RUNTIME + // + Status =3D gDS->AddMemorySpace (EfiGcdMemoryTypeMemoryMappedIo, mUartBas= e, + SIZE_4KB, EFI_MEMORY_UC | EFI_MEMORY_RUNTIME); + if (EFI_ERROR (Status)) { + goto CloseEvent; + } + + Status =3D gDS->SetMemorySpaceAttributes (mUartBase, SIZE_4KB, + EFI_MEMORY_UC | EFI_MEMORY_RUNTIME); + if (EFI_ERROR (Status)) { + goto CloseEvent; + } + + Handle =3D NULL; + Status =3D gBS->InstallMultipleProtocolInterfaces (&Handle, + &gEdkiiRuntimeDebugOutputProtocolGuid, &mRuntimeDebugOut= put, + NULL); + if (EFI_ERROR (Status)) { + goto CloseEvent; + } + + return EFI_SUCCESS; + +CloseEvent: + gBS->CloseEvent (mVirtualAddressChangeEvent); + + return Status; +} diff --git a/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011Runtime= DebugOutputDxe.inf b/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL01= 1RuntimeDebugOutputDxe.inf new file mode 100644 index 000000000000..28a8e514552e --- /dev/null +++ b/ArmPlatformPkg/Drivers/PL011RuntimeDebugOutputDxe/PL011RuntimeDebugOu= tputDxe.inf @@ -0,0 +1,62 @@ +#/** @file +# Runtime driver to produce debug output on a PL011 UART +# +# Copyright (c) 2018, Linaro, Ltd. All rights reserved.
+# +# This program and the accompanying materials are licensed and made avail= able +# 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 IM= PLIED. +# +# +#**/ + +[Defines] + INF_VERSION =3D 0x0001001A + BASE_NAME =3D PL011RuntimeDebugOutputDxe + FILE_GUID =3D 494297ca-9205-463a-aae5-215ffd067cbb + MODULE_TYPE =3D DXE_RUNTIME_DRIVER + VERSION_STRING =3D 1.0 + ENTRY_POINT =3D PL011RuntimeDebugOutputDxeEntry + +# +# The following information is for reference only and not required by the = build tools. +# +# VALID_ARCHITECTURES =3D AARCH64 ARM +# + +[Sources.common] + PL011RuntimeDebugOutputDxe.c + +[Packages] + ArmPlatformPkg/ArmPlatformPkg.dec + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + DxeServicesTableLib + PcdLib + PL011UartLib + UefiBootServicesTableLib + UefiDriverEntryPoint + UefiRuntimeLib + +[Guids] + gEfiEventVirtualAddressChangeGuid ## CONSUMES # Event + +[Protocols] + gEdkiiRuntimeDebugOutputProtocolGuid ## PROTOCOL ALWAYS_PRODUCED + +[FixedPcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits + gArmPlatformTokenSpaceGuid.PL011UartClkInHz + +[Depex] + TRUE --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel