From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by mx.groups.io with SMTP id smtpd.web11.73501.1673568889664138301 for ; Thu, 12 Jan 2023 16:14:49 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@google.com header.s=20210112 header.b=XKxGa+P9; spf=pass (domain: flex--dionnaglaze.bounces.google.com, ip: 209.85.214.201, mailfrom: 3eklaywskbemintssflqfejlttlqj.htrijajqjiph.lwtzux.nt@flex--dionnaglaze.bounces.google.com) Received: by mail-pl1-f201.google.com with SMTP id u13-20020a170902e5cd00b001946b7ded08so531219plf.12 for ; Thu, 12 Jan 2023 16:14:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=x9vQ0RNEdcCoh+VI2wzVPDZilRNCQ3wAIvZ1N+fmB/g=; b=XKxGa+P9IvqxP9cQNBWW4a4vjSzbM+68Dm4EfwFxqIytGaqQgT6Mt3kay5uDat0l7o GB5uVpDbcVbuwcGXdK3uGzaihAL3mexUsj6DDPBxKQ6KL+kKd95RHUU9nvZRDueUSCKt SJcmJwgo8TT47f3drmNkSP1WMcewhu6eskvI65Epnvz77DPL3Z7f0wUwGnG0thZkLc2F 2PsGvp4QnXDr/CXVUIUeuzRPp5X+cbBHchHnSjQRTnz1HdwX891S4/w0/PXrnWC6eake ftUE6aybAsbawrn1D7wEf42T4P5gbqLrRkvql1XB/xisNvP23pK2QnWJx5GmIuCmG4Qp +n3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=x9vQ0RNEdcCoh+VI2wzVPDZilRNCQ3wAIvZ1N+fmB/g=; b=AF8ZyyBpBDHxlj8WB4tB/4o8D4UPKhcDXw3W60dWkmE/pOSR5YsT3nR/ogW9gFeGCF TXdUq4nlqzIAgrDxafI3ssNPD4HkojyJCA/b0ScQk/tN7cWBchkQP4Zpvr5O5CFzkwuV ag2keBNDS9+koxxqFKXzutCXbBLMJksj0vzH1i2PSJ3iaU+ujXs9mJco5wLJrcZB12mt ad8al2yC7vvRN+0XWTEDcOvITqC1eWK4NVaDkkAsCk9JUQ3DsDwEWBU9+hAqTEyG01Nq wCyt5tP8oWNYPg8aa4sb/HiDnul4o+pyGcIpLn4sRro9bHIzoUzrSLSESqjes5/coagh R9aQ== X-Gm-Message-State: AFqh2kqlraUzyfkY1K8csF9vukXHifUjmtDxXaZhDc6sGe5Z7nU6xLGZ XtJ1E9fy4kqcmUIJDJ92EDILV6UuDCtpwil4stsl4tLZiGLLea/aerp/GIv40xtucpnQQdG0UoM fwXapkkvElh/t85fuIR7yyEnkOnLiSRQUEponWz7lRoRCNH8KZmACKq0lmsPBzzi+Wi0Az86a X-Google-Smtp-Source: AMrXdXsjKCGM90hybDGLXtJwWK8J3OtbD1rQA/4OdaxJHKlXrMew1V9wtzwTRwum6uMLa16b++btDYWd8JvM9YHpTw== X-Received: from dionnaglaze.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2ee6]) (user=dionnaglaze job=sendgmr) by 2002:a17:902:7401:b0:194:52ed:7a29 with SMTP id g1-20020a170902740100b0019452ed7a29mr614996pll.66.1673568888764; Thu, 12 Jan 2023 16:14:48 -0800 (PST) Date: Fri, 13 Jan 2023 00:14:18 +0000 In-Reply-To: <20230113001419.2519031-1-dionnaglaze@google.com> Mime-Version: 1.0 References: <20230113001419.2519031-1-dionnaglaze@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230113001419.2519031-4-dionnaglaze@google.com> Subject: [PATCH v9 3/4] OvmfPkg: Implement AcceptAllUnacceptedMemory in CocoDxe From: "Dionna Glaze" To: devel@edk2.groups.io Cc: Dionna Glaze , Gerd Hoffmann , James Bottomley , Jiewen Yao , Tom Lendacky , Ard Biesheuvel , "Min M. Xu" , Andrew Fish , "Michael D. Kinney" Content-Type: text/plain; charset="UTF-8" This protocol implementation disables the accept-all-memory behavior of the BeforeExitBootServices event this driver adds. Cc: Gerd Hoffmann Cc: James Bottomley Cc: Jiewen Yao Cc: Tom Lendacky Cc: Ard Biesheuvel Cc: "Min M. Xu" Cc: Andrew Fish Cc: "Michael D. Kinney" Signed-off-by: Dionna Glaze --- OvmfPkg/CocoDxe/CocoDxe.c | 28 ++++++++++++++++++++++++++++ OvmfPkg/CocoDxe/CocoDxe.inf | 1 + 2 files changed, 29 insertions(+) diff --git a/OvmfPkg/CocoDxe/CocoDxe.c b/OvmfPkg/CocoDxe/CocoDxe.c index da16af32a3..57169b0481 100644 --- a/OvmfPkg/CocoDxe/CocoDxe.c +++ b/OvmfPkg/CocoDxe/CocoDxe.c @@ -18,11 +18,14 @@ #include #include #include +#include STATIC BOOLEAN mAcceptAllMemoryAtEBS = TRUE; STATIC EFI_EVENT mAcceptAllMemoryEvent = NULL; +STATIC EFI_HANDLE mCocoDxeHandle = NULL; + STATIC EFI_STATUS AcceptAllMemory ( @@ -111,6 +114,21 @@ ResolveUnacceptedMemory ( ASSERT_EFI_ERROR (Status); } +STATIC +EFI_STATUS +EFIAPI +AllowUnacceptedMemory ( + IN BZ3987_MEMORY_ACCEPTANCE_PROTOCOL *This + ) +{ + mAcceptAllMemoryAtEBS = FALSE; + return EFI_SUCCESS; +} + +STATIC +BZ3987_MEMORY_ACCEPTANCE_PROTOCOL + mMemoryAcceptanceProtocol = { AllowUnacceptedMemory }; + EFI_STATUS EFIAPI CocoDxeEntryPoint ( @@ -143,5 +161,15 @@ CocoDxeEntryPoint ( DEBUG ((DEBUG_ERROR, "AllowUnacceptedMemory event creation for EventBeforeExitBootServices failed.\n")); } + Status = gBS->InstallProtocolInterface ( + &mCocoDxeHandle, + &gBz3987MemoryAcceptanceProtocolGuid, + EFI_NATIVE_INTERFACE, + &mMemoryAcceptanceProtocol + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Install Bz3987MemoryAcceptanceProtocol failed.\n")); + } + return EFI_SUCCESS; } diff --git a/OvmfPkg/CocoDxe/CocoDxe.inf b/OvmfPkg/CocoDxe/CocoDxe.inf index 8d4452e94d..05c2651a89 100644 --- a/OvmfPkg/CocoDxe/CocoDxe.inf +++ b/OvmfPkg/CocoDxe/CocoDxe.inf @@ -42,4 +42,5 @@ gEfiEventBeforeExitBootServicesGuid [Protocols] + gBz3987MemoryAcceptanceProtocolGuid gEdkiiMemoryAcceptProtocolGuid -- 2.39.0.314.g84b9a713c41-goog