From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by mx.groups.io with SMTP id smtpd.web10.1415.1666644096638138152 for ; Mon, 24 Oct 2022 13:41:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@google.com header.s=20210112 header.b=FQpJrPwG; spf=pass (domain: flex--dionnaglaze.bounces.google.com, ip: 209.85.214.202, mailfrom: 3f_hwywskbewrwcbbouzonsuccuzs.qcarsjszsryq.ufcidg.wc@flex--dionnaglaze.bounces.google.com) Received: by mail-pl1-f202.google.com with SMTP id c12-20020a170903234c00b0017f695bf8f0so6944114plh.6 for ; Mon, 24 Oct 2022 13:41:36 -0700 (PDT) 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=B696QvZqIZgyT6msegi2n8neWbyLjlwCz5toiRI6Z70=; b=FQpJrPwGtZfvzE/YwLfSoI6ENGuqrCduIlER037f9LRMZhggGHmGEoS7bRGBYQaMZc FD/9qLo084o4u1CPu/fJNetwImjMME8YGAiftQFD7yNPRFvvK0oBpAiHiixelEbdL2Gn obO45CdNuAakFX7fr5hn+8NOZqar5PgxeWOl2mocC5WhZ49hguOdpyIinI7oG+RaLJaH xiDzcH8GVHACSU3sJPnYYlX+x6KqAvcTS9BHbOnaOQYw439bRr0fViWNjTMoa0pkEiYu SNjedsikOMG0PHkkeBdAYG3ggI150ceKpZzm+Kyl3ytSCeVHuh3H9LgYmVIoPfK9ZKB0 oeCg== 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=B696QvZqIZgyT6msegi2n8neWbyLjlwCz5toiRI6Z70=; b=4ZulQQQUpgxd+3vttW8QJi7SVtyI2zacn7Bnz/6n9nmZUxCcLlzuaDhvR3UjPKtA/Y SfJaDNtB1kzp+hVsm9FpEoWCRhWOdGEXa8jz4NpkgTDd5qNcwj+ofeRNTCD4MWtS1qBe b3aJt3jUO/Lj23ktuCz4cg/je7LY4KEIqNRBZ3RwojVfkBU3hYxKeFe5nto53KfiOBmu SSK19SGzwUcxnh9lITLAkx4eO02f2J1IaHSr/+H42gFZJbnJ0/UR0XDeIOQDVHIrvdWk DzoKdldyk5yVvl55YMopOwLtZgZQKGzi5A2Xy0O4dXGmBa0aefVRODUuNbihhP0nKl1H 5N1A== X-Gm-Message-State: ACrzQf3r0q51DuAEgKgTHClQ5kFANy8fTEyc3qPTYyFlyOu9bgZ3Wc2+ 6/6Y8hMNLb3D0h26IA2X8iTykHaBX1XE4dvw5H+8U+KgE5l1CT7wacTGe2J8Ip+5qMxGZ4YPZnG tpxSL++5k9JfhFVopHwr85F3FE04Jf1eijLtvFbPFJMoNX6pqQJ8xpJNgmSUOfZx5op28ymTO X-Google-Smtp-Source: AMsMyM7CVgyPjUXhEeaViPfXZda+f7yW79KxlTP3zmVI2+ybIEDfcx56vSlr/Q2xLxg/Co/4YZp3E2AeDOK/w55DRA== X-Received: from dionnaglaze.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:2ee6]) (user=dionnaglaze job=sendgmr) by 2002:a63:d202:0:b0:46f:930:ea56 with SMTP id a2-20020a63d202000000b0046f0930ea56mr6235815pgg.275.1666644095999; Mon, 24 Oct 2022 13:41:35 -0700 (PDT) Date: Mon, 24 Oct 2022 20:41:13 +0000 In-Reply-To: <20221024204114.2772064-1-dionnaglaze@google.com> Mime-Version: 1.0 References: <20221024204114.2772064-1-dionnaglaze@google.com> X-Mailer: git-send-email 2.38.0.135.g90850a2211-goog Message-ID: <20221024204114.2772064-7-dionnaglaze@google.com> Subject: [PATCH v8 6/7] 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 98874e6cfc..14fbcf60d7 100644 --- a/OvmfPkg/CocoDxe/CocoDxe.c +++ b/OvmfPkg/CocoDxe/CocoDxe.c @@ -17,11 +17,14 @@ #include #include #include +#include STATIC BOOLEAN mAcceptAllMemoryAtEBS = TRUE; STATIC EFI_EVENT mAcceptAllMemoryEvent = NULL; +STATIC EFI_HANDLE mCocoDxeHandle = NULL; + STATIC EFI_STATUS AcceptAllMemory ( @@ -110,6 +113,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 ( @@ -142,5 +160,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.38.0.135.g90850a2211-goog