From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) by mx.groups.io with SMTP id smtpd.web10.14267.1683239795907479324 for ; Thu, 04 May 2023 15:36:36 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@gmail.com header.s=20221208 header.b=S3nnib1w; spf=pass (domain: gmail.com, ip: 209.85.222.176, mailfrom: benjamin.doron00@gmail.com) Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-74e07c2ee30so53211185a.1 for ; Thu, 04 May 2023 15:36:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683239794; x=1685831794; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=6IbQcpyK6vYpSvow0hirtK8nRDs+dqhYGuPbfF/bR9Y=; b=S3nnib1wKhkkrlrrlgGwZG0LkAqeRa9AxDPtwqyecJ0euTR+IxwS0+YrD83zJtVe1V 6D7skQQaleIL90ILf8MsW7bTu3SC6ubS4ac8+p9nm+1JPmc1J5S1L2wbFCfSJ8aNQ+Fh RSU65NS4lzCeVx3Qsi+5erPYM7uzBXGBu/v/2yJ/zZVTiOXRm/QmMlITjiFH/OKRmkwp fkJeX4Uf5Jdqv0iH3M0DseT2NTx1jurJrb9P+qRzp5ZBYI8zOoKTlD4HnFko8uEFfMgU rq7OiYikLcaY/M9S65pFuw1m1TK9f01h74TGhWBPR0LdRdVeLG+prXQh7fXAlblQL9yJ wukA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683239794; x=1685831794; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6IbQcpyK6vYpSvow0hirtK8nRDs+dqhYGuPbfF/bR9Y=; b=CC+Iz/E3oLhya3Y6h30gzWYY8v1hkzMh8kE0PB5h/s7GGZo4UjJpj+jeIqDz+5MSZ9 uTT3qlkyDxZD6IBLFEfFWIR6KbvrWgkP8cmYMhToG6KJpWdxvrptuvUQ5Wml+R9jgbYC nUIeIhxb50c0J7h7QpkanZJY7E6coxiewSKOrL+zWWb6h9nyYq4A789RoHvjykm8e5e9 amSXCvzD1oRSb1GqjgPuspuEWsKj5s+5KpYi8fZuzHe2dETo0j+DgglRKmJB8qPT7X2i 9S8WUsnM3iEn+kOLST+zyN62j7VwQoTXLeVJ1bt9Hy+6k4E9A0KUCq23psGzhRFeXWvW 42pQ== X-Gm-Message-State: AC+VfDxZS82eyl1juO2vtgx0NAefvKFLhWw+7NqQwYavEs+Htrf5BXHV 2fU/ZzR/FeQLrNi3ZMCjUlHxELMzGJA= X-Google-Smtp-Source: ACHHUZ7QCRoi140Er/DydS0ri6OthVA4KFNa4GQ5z01cnV+JBskk8i8aZrF+k00Y2X4zfi6RzHqY9w== X-Received: by 2002:a05:6214:766:b0:5ef:4bdd:42ed with SMTP id f6-20020a056214076600b005ef4bdd42edmr14399617qvz.50.1683239794676; Thu, 04 May 2023 15:36:34 -0700 (PDT) Return-Path: Received: from aturtleortwo-benjamindomain.sec.9e.network ([2607:f2c0:e98c:e:84d2:bf5:61d2:8ed1]) by smtp.gmail.com with ESMTPSA id u12-20020a0cdd0c000000b0061b62c15351sm86051qvk.90.2023.05.04.15.36.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 May 2023 15:36:34 -0700 (PDT) From: "Benjamin Doron" To: devel@edk2.groups.io Cc: Guo Dong , Ray Ni , Sean Rhodes , James Lu , Gua Guo Subject: [PATCH] UefiPayloadPkg: Use clearer debug flags with more flexibility Date: Thu, 4 May 2023 18:36:22 -0400 Message-Id: <20230504223622.77792-1-benjamin.doron00@gmail.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The default behaviour is that RELEASE builds have all DebugLib macros removed by MDEPKG_NDEBUG. Currently, UefiPayloadPkg has been using USE_CBMEM_FOR_CONSOLE to disable this behaviour, but it's unclear that this option changes DEBUG build behaviour too. Therefore, add a new build flag, RELEASE_LOGGING, that can be used to set the logging behaviour. The USE_CBMEM_FOR_CONSOLE flag only selects the library and options specific to it. For instance, logs can only be retrieved when the boot completes, so do not produce a CPU breakpoint or deadloop in this case. There are also cases where the platform builder may want behaviour or information from the DEBUG_CODE macros. Therefore, separate this into another build flag. Bitwise ORs enable this flexibility. Cc: Guo Dong Cc: Ray Ni Cc: Sean Rhodes Cc: James Lu Cc: Gua Guo Signed-off-by: Benjamin Doron --- UefiPayloadPkg/UefiPayloadPkg.dsc | 44 +++++++++++++++++++------------ 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc b/UefiPayloadPkg/UefiPayload= Pkg.dsc index 998d22290922..360ea71b149d 100644 --- a/UefiPayloadPkg/UefiPayloadPkg.dsc +++ b/UefiPayloadPkg/UefiPayloadPkg.dsc @@ -26,7 +26,6 @@ FLASH_DEFINITION =3D UefiPayloadPkg/UefiPayloadPkg.fd= f=0D PCD_DYNAMIC_AS_DYNAMICEX =3D TRUE=0D =0D - DEFINE SOURCE_DEBUG_ENABLE =3D FALSE=0D DEFINE PS2_KEYBOARD_ENABLE =3D FALSE=0D DEFINE RAM_DISK_ENABLE =3D FALSE=0D DEFINE SIO_BUS_ENABLE =3D FALSE=0D @@ -40,7 +39,6 @@ DEFINE PS2_MOUSE_ENABLE =3D TRUE=0D DEFINE CRYPTO_PROTOCOL_SUPPORT =3D FALSE=0D DEFINE SD_MMC_TIMEOUT =3D 1000000=0D - DEFINE USE_CBMEM_FOR_CONSOLE =3D FALSE=0D DEFINE BOOTSPLASH_IMAGE =3D FALSE=0D DEFINE NVME_ENABLE =3D TRUE=0D =0D @@ -101,6 +99,15 @@ # [Vendor] [Device] [----ClockR= ate---] [------------Offset-----------] [Bar] [Stride] [RxFifo] [TxFifo] = [Rsvd] [Vendor]=0D DEFINE PCI_SERIAL_PARAMETERS =3D {0xff,0xff, 0x00,0x00, 0x0,0x20,= 0x1c,0x00, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x00, 0x01, 0x0,0x0, 0x0,0x0= , 0x0,0x0, 0xff,0xff}=0D =0D + #=0D + # Debug options=0D + #=0D + DEFINE RELEASE_LOGGING =3D FALSE=0D + DEFINE USE_CBMEM_FOR_CONSOLE =3D FALSE=0D + DEFINE ENABLE_DEBUG_CODE =3D FALSE=0D +=0D + DEFINE SOURCE_DEBUG_ENABLE =3D FALSE=0D +=0D #=0D # Shell options: [BUILD_SHELL, MIN_BIN, NONE, UEFI_BIN]=0D #=0D @@ -135,7 +142,7 @@ =0D [BuildOptions]=0D *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES= =0D -!if $(USE_CBMEM_FOR_CONSOLE) =3D=3D FALSE=0D +!if $(RELEASE_LOGGING) =3D=3D FALSE=0D GCC:RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG=0D INTEL:RELEASE_*_*_CC_FLAGS =3D /D MDEPKG_NDEBUG=0D MSFT:RELEASE_*_*_CC_FLAGS =3D /D MDEPKG_NDEBUG=0D @@ -436,6 +443,21 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE=0D gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE=0D =0D + #=0D + # Build the PcdDebugPropertyMask from build flags=0D + #=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x03=0D +!if $(ENABLE_DEBUG_CODE) =3D=3D TRUE=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|(gEfiMdePkgTokenSpaceGuid.= PcdDebugPropertyMask | 0x04)=0D +!endif=0D +!if $(USE_CBMEM_FOR_CONSOLE) =3D=3D FALSE=0D + !if $(SOURCE_DEBUG_ENABLE) =3D=3D TRUE=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|(gEfiMdePkgTokenSpaceGui= d.PcdDebugPropertyMask | 0x10)=0D + !else=0D + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|(gEfiMdePkgTokenSpaceGui= d.PcdDebugPropertyMask | 0x28)=0D + !endif=0D +!endif=0D +=0D gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80,= 0xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xD5, 0x0B, 0x76, 0xd8, 0x95, 0x41 }=0D =0D !if $(SOURCE_DEBUG_ENABLE)=0D @@ -484,20 +506,8 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c= , 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0= x31 }=0D gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x7=0D gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F=0D -!if $(USE_CBMEM_FOR_CONSOLE) =3D=3D FALSE=0D - !if $(SOURCE_DEBUG_ENABLE)=0D - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17=0D - !else=0D - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F=0D - !endif=0D -!else=0D - !if $(TARGET) =3D=3D DEBUG=0D - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x07=0D - !else=0D - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x03=0D - !endif=0D -!endif=0D gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|$(MAX_SIZE_N= ON_POPULATE_CAPSULE)=0D +=0D #=0D # The following parameters are set by Library/PlatformHookLib=0D #=0D @@ -541,7 +551,7 @@ gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode|1=0D gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress|0x0=0D gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize|0x0=0D -!if ($(TARGET) =3D=3D DEBUG || $(USE_CBMEM_FOR_CONSOLE) =3D=3D TRUE)=0D +!if ($(TARGET) =3D=3D DEBUG || $(RELEASE_LOGGING) =3D=3D TRUE)=0D gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE=0D !else=0D gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE=0D --=20 2.39.2