HDMI port can be used with I2cHdmiDebugSerialPortLib, for debugging in all phases.
Cc: Chasel Chiu <chasel.c...@intel.com> Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> Cc: Isaac Oram <isaac.w.o...@intel.com> Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> Cc: Ankit Sinha <ankit.si...@intel.com> Signed-off-by: Benjamin Doron <benjamin.doro...@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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#93284): https://edk2.groups.io/g/devel/message/93284 Mute This Topic: https://groups.io/mt/93506705/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-