From: "Benjamin Doron" <benjamin.doron00@gmail.com>
To: devel@edk2.groups.io
Cc: Chasel Chiu <chasel.chiu@intel.com>,
Sai Chaganty <rangasai.v.chaganty@intel.com>,
Isaac Oram <isaac.w.oram@intel.com>,
Nate DeSimone <nathaniel.l.desimone@intel.com>,
Ankit Sinha <ankit.sinha@intel.com>
Subject: [edk2-devel][edk2-platforms][PATCH v1 3/3] KabylakeOpenBoardPkg/AspireVn7Dash572G: Hook-up HDMI debug port to build
Date: Tue, 6 Sep 2022 13:26:54 -0400 [thread overview]
Message-ID: <3760ced8e358f92136308754ab57938f1dd3f9e7.1662484082.git.benjamin.doron00@gmail.com> (raw)
In-Reply-To: <cover.1662484082.git.benjamin.doron00@gmail.com>
HDMI port can be used with I2cHdmiDebugSerialPortLib, for debugging in
all phases.
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>
Signed-off-by: Benjamin Doron <benjamin.doron00@gmail.com>
---
.../AspireVn7Dash572G/OpenBoardPkg.dsc | 85 +++++++++++++++----
.../AspireVn7Dash572G/OpenBoardPkg.fdf | 11 ++-
.../AspireVn7Dash572G/OpenBoardPkgPcd.dsc | 54 ++++++++++--
3 files changed, 121 insertions(+), 29 deletions(-)
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.dsc b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.dsc
index 261f141056f5..c71b7169a38a 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.dsc
@@ -25,9 +25,10 @@
#
# Debug logging
#
+ DEFINE USE_HDMI_DEBUG_PORT = FALSE
DEFINE USE_PEI_SPI_LOGGING = FALSE
DEFINE USE_MEMORY_LOGGING = FALSE
- DEFINE RELEASE_LOGGING = ($(USE_PEI_SPI_LOGGING) || $(USE_MEMORY_LOGGING))
+ DEFINE RELEASE_LOGGING = ($(USE_HDMI_DEBUG_PORT) || $(USE_PEI_SPI_LOGGING) || $(USE_MEMORY_LOGGING))
DEFINE TESTING = TRUE
PLATFORM_NAME = $(PLATFORM_PACKAGE)
@@ -205,6 +206,15 @@
#######################################
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
+
+ #######################################
+ # Board-specific/Silicon Package
+ #######################################
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/SecI2cHdmiDebugSerialPortLib.inf
+!endif
+
#######################################
# Platform Package
#######################################
@@ -277,7 +287,7 @@
# Edk2 Packages
#######################################
# In-memory logging may require too many services for early core debug output
-!if $(USE_MEMORY_LOGGING) == TRUE
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
!endif
@@ -285,7 +295,7 @@
#######################################
# Edk2 Packages
#######################################
-!if $(USE_MEMORY_LOGGING) == TRUE
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
!endif
@@ -322,7 +332,7 @@
#######################################
# Edk2 Packages
#######################################
-!if $(USE_MEMORY_LOGGING) == TRUE
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
!endif
@@ -336,7 +346,7 @@
# Edk2 Packages
#######################################
# In-memory logging may require too many services for early core debug output
-!if $(USE_MEMORY_LOGGING) == TRUE
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
!endif
@@ -344,7 +354,7 @@
#######################################
# Edk2 Packages
#######################################
-!if $(USE_MEMORY_LOGGING) == TRUE
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
!endif
@@ -363,7 +373,21 @@
TestPointCheckLib|$(PLATFORM_PACKAGE)/Test/Library/TestPointCheckLib/SmmTestPointCheckLib.inf
!endif
-# TODO: DebugLib override for UEFI_DRIVER and UEFI_APPLICATION?
+[LibraryClasses.common.UEFI_DRIVER]
+ #######################################
+ # Edk2 Packages
+ #######################################
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
+ DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+!endif
+
+[LibraryClasses.common.UEFI_APPLICATION]
+ #######################################
+ # Edk2 Packages
+ #######################################
+!if ($(USE_MEMORY_LOGGING) == TRUE || $(USE_HDMI_DEBUG_PORT) == TRUE)
+ DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
+!endif
# TODO: Add and improve feature support
#######################################
@@ -389,6 +413,9 @@
!if $(USE_MEMORY_LOGGING) == TRUE
SerialPortLib|MdeModulePkg/Library/PeiDxeSerialPortLibMem/PeiSerialPortLibMem.inf
!endif
+!endif
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/PeiI2cHdmiDebugSerialPortLib.inf
!endif
<PcdsFixedAtBuild>
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|$(RELEASE_LOGGING)
@@ -517,14 +544,24 @@
#######################################
# Edk2 Packages
#######################################
+ MdeModulePkg/Core/Dxe/DxeMain.inf {
+ <LibraryClasses>
+ # Can debug CpuExceptionHandlerLib
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/DxeI2cHdmiDebugSerialPortLib.inf
+!endif
+ }
MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf {
<LibraryClasses>
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
!if $(USE_MEMORY_LOGGING) == TRUE
SerialPortLib|MdeModulePkg/Library/PeiDxeSerialPortLibMem/DxeSerialPortLibMem.inf
+!endif
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/RuntimeDxeI2cHdmiDebugSerialPortLib.inf
!endif
<PcdsFixedAtBuild>
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|$(USE_MEMORY_LOGGING)
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|($(USE_MEMORY_LOGGING) || $(USE_HDMI_DEBUG_PORT))
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|512
}
# TODO: Still requires a little more thought
@@ -533,9 +570,12 @@
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
!if $(USE_MEMORY_LOGGING) == TRUE
SerialPortLib|MdeModulePkg/Library/PeiDxeSerialPortLibMem/SmmSerialPortLibMem.inf
+!endif
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/SmmI2cHdmiDebugSerialPortLib.inf
!endif
<PcdsFixedAtBuild>
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|$(USE_MEMORY_LOGGING)
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|($(USE_MEMORY_LOGGING) || $(USE_HDMI_DEBUG_PORT))
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|512
}
MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
@@ -548,12 +588,24 @@
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf {
<LibraryClasses>
NULL|BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf
+!if gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortSerialTerminalEnable == TRUE
+ NULL|BoardModulePkg/Library/BdsSerialPortTerminalLib/BdsSerialPortTerminalLib.inf
+!endif
}
+!if gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortSerialTerminalEnable == TRUE
+ MdeModulePkg/Universal/SerialDxe/SerialDxe.inf {
+ <LibraryClasses>
+ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/DxeI2cHdmiDebugSerialPortLib.inf
+ }
+ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
+!endif
+
UefiCpuPkg/CpuDxe/CpuDxe.inf {
<LibraryClasses>
-!if $(USE_MEMORY_LOGGING) == TRUE
-# TODO/TEST
-# SerialPortLib|MdeModulePkg/Library/PeiDxeSerialPortLibMem/DxeSerialPortLibMem.inf
+ # Can debug CpuExceptionHandlerLib
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/DxeI2cHdmiDebugSerialPortLib.inf
!endif
}
@@ -589,12 +641,9 @@
<PcdsPatchableInModule>
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80080046
<LibraryClasses>
- !if $(TARGET) == DEBUG
- DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
- !endif
-!if $(USE_MEMORY_LOGGING) == TRUE
-# TODO/TEST
-# SerialPortLib|MdeModulePkg/Library/PeiDxeSerialPortLibMem/SmmSerialPortLibMem.inf
+ # Can debug CpuExceptionHandlerLib
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ SerialPortLib|$(PLATFORM_BOARD_PACKAGE)/Library/I2cHdmiDebugSerialPortLib/SmmI2cHdmiDebugSerialPortLib.inf
!endif
}
!endif
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.fdf b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.fdf
index 9eb37e7d230e..864d5561d7d8 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.fdf
+++ b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkg.fdf
@@ -353,6 +353,10 @@ INF MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutputDxe.inf
INF BoardModulePkg/LegacySioDxe/LegacySioDxe.inf
INF MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf
INF MdeModulePkg/Bus/Isa/Ps2MouseDxe/Ps2MouseDxe.inf
+!if gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortSerialTerminalEnable == TRUE
+ INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
+ INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
+!endif
INF BoardModulePkg/BoardBdsHookDxe/BoardBdsHookDxe.inf
INF ShellPkg/Application/Shell/Shell.inf
@@ -584,12 +588,7 @@ INF IntelSiliconPkg/Feature/VTd/IntelVTdDxe/IntelVTdDxe.inf
!if gMinPlatformPkgTokenSpaceGuid.PcdBootToShellOnly == FALSE
-INF $(PLATFORM_SI_PACKAGE)/Hsti/Dxe/HstiSiliconDxe.inf
-
-!endif
-
-!if gMinPlatformPkgTokenSpaceGuid.PcdBootToShellOnly == FALSE
-
+INF $(PLATFORM_SI_PACKAGE)/Hsti/Dxe/HstiSiliconDxe.inf
INF $(PLATFORM_PACKAGE)/Hsti/HstiIbvPlatformDxe/HstiIbvPlatformDxe.inf
!if gMinPlatformPkgTokenSpaceGuid.PcdTpm2Enable == TRUE
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkgPcd.dsc b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkgPcd.dsc
index a9d531a269a5..a4ea524e26bc 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkgPcd.dsc
+++ b/Platform/Intel/KabylakeOpenBoardPkg/AspireVn7Dash572G/OpenBoardPkgPcd.dsc
@@ -228,7 +228,7 @@
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
!else
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0
- gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x3
+ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x03
!endif # $(RELEASE_LOGGING)
!else
# FIXME: More than just compiler optimisation is hooked to DEBUG builds.
@@ -264,6 +264,8 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE
!if $(TARGET) == RELEASE
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE
+ # Determine RTS/CTS requirement
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE
!else
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE
@@ -407,7 +409,37 @@
# 3: DDC channel C
# 4: DDC channel D
# @Prompt DDC I2C channel to claim as the HDMI debug port
- gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortDdcI2cChannel|0x00 #@todo - Set to correct value for VN7-572G
+ gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortDdcI2cChannel|0x02
+
+ ## Enable usage the HDMI DDC channel as a debug port - Causes the BIOS debug log
+ # to be written to the HDMI DDC channel.
+ # The value is defined as below.
+ # FALSE: Do NOT use the HDMI DDC channel as a debug port
+ # TRUE: Use the HDMI DDC channel as a debug port
+ # @Prompt Enable usage the HDMI DDC channel as a debug port
+ gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortEnable|$(USE_HDMI_DEBUG_PORT)
+
+ ## Enable usage the HDMI DDC channel as a serial terminal - Enables usage of the
+ # HDMI DDC channel to display BIOS Setup, UEFI Shell, etc. using a terminal
+ # emulator. Useful for cases where video is not operating correctly.
+ #
+ # The value is defined as below.
+ # FALSE: Do NOT use the HDMI DDC channel as a debug port
+ # TRUE: Use the HDMI DDC channel as a debug port
+ # @Prompt Enable usage the HDMI DDC channel as a debug port
+ gKabylakeOpenBoardPkgTokenSpaceGuid.PcdI2cHdmiDebugPortSerialTerminalEnable|FALSE
+
+ ## Indicates the type of terminal to use.
+ # If PcdI2cHdmiDebugPortSerialTerminalEnable is TRUE, this PCD will be used
+ # to determine which terminal protocol to use.
+ # 0 - PCANSI
+ # 1 - VT100
+ # 2 - VT100+
+ # 3 - UTF8
+ # 4 - TTYTERM
+ # @Prompt Default Terminal Type.
+ # @ValidRange 0x80000001 | 0 - 4
+ gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|3
[PcdsFixedAtBuild.IA32]
######################################
@@ -433,7 +465,16 @@
######################################
# Edk2 Configuration
######################################
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000046 # 0x804800C7/0x806A15CF give useful information, but is very noisy
+ # TODO: Dynamic in HII
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000046
+!if FALSE
+ # Filtered DEBUG_POOL, DEBUG_PAGE, DEBUG_GCD and DEBUG_CACHE
+ # - Unused: DEBUG_VARIABLE, DEBUG_BM and DEBUG_LOADFILE
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x804950CF
+!endif
+!if ($(TESTING) == TRUE && $(USE_HDMI_DEBUG_PORT) == FALSE)
+ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80400046
+!endif
######################################
# Silicon Configuration
@@ -446,9 +487,9 @@
# Platform Configuration
######################################
!if $(TARGET) == DEBUG
- gMinPlatformPkgTokenSpaceGuid.PcdSecSerialPortDebugEnable|1
+ gMinPlatformPkgTokenSpaceGuid.PcdSecSerialPortDebugEnable|TRUE
!else
- gMinPlatformPkgTokenSpaceGuid.PcdSecSerialPortDebugEnable|0
+ gMinPlatformPkgTokenSpaceGuid.PcdSecSerialPortDebugEnable|FALSE
!endif
[PcdsDynamicDefault]
@@ -528,6 +569,9 @@
!else
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5 # Variable: L"Timeout"
!endif
+!if $(USE_HDMI_DEBUG_PORT) == TRUE
+ gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|15 # Variable: L"Timeout"
+!endif
!if gMinPlatformPkgTokenSpaceGuid.PcdTpm2Enable == TRUE
gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x0|"1.3"|NV,BS
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev|L"TCG2_VERSION"|gTcg2ConfigFormSetGuid|0x8|3|NV,BS
--
2.37.2
next prev parent reply other threads:[~2022-09-06 17:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-06 17:26 [edk2-devel][edk2-platforms][PATCH v1 0/3] Benjamin Doron
2022-09-06 17:26 ` [edk2-devel][edk2-platforms][PATCH v1 1/3] MinPlatformPkg,WhiskeylakeOpenBoardPkg/SecFspWrapperPlatformSecLib: First BoardInitLib Benjamin Doron
2022-09-09 14:38 ` Isaac Oram
2022-09-09 17:47 ` Nate DeSimone
2022-09-09 23:09 ` Nate DeSimone
2022-09-06 17:26 ` [edk2-devel][edk2-platforms][PATCH v1 2/3] [WIP] KabylakeOpenBoardPkg/I2cHdmiDebugSerialPortLib: Commit local Benjamin Doron
2022-09-09 23:09 ` Nate DeSimone
2022-09-06 17:26 ` Benjamin Doron [this message]
2022-09-09 23:09 ` [edk2-devel][edk2-platforms][PATCH v1 3/3] KabylakeOpenBoardPkg/AspireVn7Dash572G: Hook-up HDMI debug port to build Nate DeSimone
2022-09-09 23:09 ` [edk2-devel][edk2-platforms][PATCH v1 0/3] Nate DeSimone
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=3760ced8e358f92136308754ab57938f1dd3f9e7.1662484082.git.benjamin.doron00@gmail.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