diff --git a/OvmfPkg/ResetVector/QemuDebugCon.asm b/OvmfPkg/ResetVector/QemuDebugCon.asm new file mode 100644 index 0000000000..8729fc2ffc --- /dev/null +++ b/OvmfPkg/ResetVector/QemuDebugCon.asm @@ -0,0 +1,36 @@ +;------------------------------------------------------------------------------ +; @file +; qemu debug console support macros (based on serial port macros) +; +; Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.
+; Copyright (c) 2024, Red Hat, Inc.
+; SPDX-License-Identifier: BSD-2-Clause-Patent +; +;------------------------------------------------------------------------------ + +%macro debugShowCharacter 1 + mov dx, 0x402 + mov al, %1 + out dx, al +%endmacro + +%macro debugShowHexDigit 1 + %if (%1 < 0xa) + debugShowCharacter BYTE ('0' + (%1)) + %else + debugShowCharacter BYTE ('a' + ((%1) - 0xa)) + %endif +%endmacro + +%macro debugShowPostCode 1 + debugShowHexDigit (((%1) >> 4) & 0xf) + debugShowHexDigit ((%1) & 0xf) + debugShowCharacter `\r` + debugShowCharacter `\n` +%endmacro + +BITS 16 + +%macro debugInitialize 0 + ; not required +%endmacro diff --git a/OvmfPkg/ResetVector/ResetVector.nasmb b/OvmfPkg/ResetVector/ResetVector.nasmb index 5832aaa8ab..366a70fb99 100644 --- a/OvmfPkg/ResetVector/ResetVector.nasmb +++ b/OvmfPkg/ResetVector/ResetVector.nasmb @@ -40,6 +40,10 @@ %include "Port80Debug.asm" %elifdef DEBUG_SERIAL %include "SerialDebug.asm" +%elif 0 +; Set ^ this to 1 to enable postcodes on the qemu debug console. +; Disabled by default because it is incompatible with SEV-ES/SEV-SNP and TDX. + %include "QemuDebugCon.asm" %else %include "DebugDisabled.asm" %endif