From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id CBB1E740041 for ; Fri, 12 Jan 2024 11:38:03 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=9XI892OqwcOWWIypX29sgStED5PgibATVi7c6VxiI2M=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1705059482; v=1; b=lQNp2DyW61SO7y4/cMLgpuHvFjGeAiaGdH4DPstkHRkwAmPwJe8X7WSgtxTvhli7TlwV66SI m3O1BxiA/d8sMMJ6xmr8o5fPOWDhNWIx1/FkA8OW3DrBNnmeRltc2uMTttFpiwU1+xqQRfa0yD7 uVHbUJN+sCJu1gsCjhMO1wag= X-Received: by 127.0.0.2 with SMTP id aOR6YY7687511x52ASkKPaf4; Fri, 12 Jan 2024 03:38:02 -0800 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web10.5236.1705059480833919809 for ; Fri, 12 Jan 2024 03:38:01 -0800 X-Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-312-tsU0PfzlO065nKFKe6_osA-1; Fri, 12 Jan 2024 06:37:57 -0500 X-MC-Unique: tsU0PfzlO065nKFKe6_osA-1 X-Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 62BA1106D061; Fri, 12 Jan 2024 11:37:57 +0000 (UTC) X-Received: from dobby.home.kraxel.org (unknown [10.39.194.144]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 271A040C6EB9; Fri, 12 Jan 2024 11:37:57 +0000 (UTC) X-Received: by dobby.home.kraxel.org (Postfix, from userid 1000) id 87871ABB82; Fri, 12 Jan 2024 12:37:54 +0100 (CET) From: "Gerd Hoffmann" To: devel@edk2.groups.io Cc: Laszlo Ersek , Gerd Hoffmann , Ard Biesheuvel , Jiewen Yao , oliver@redhat.com Subject: [edk2-devel] [PATCH 3/4] OvmfPkg/VirtNorFlashDxe: allow larger writes without block erase Date: Fri, 12 Jan 2024 12:37:53 +0100 Message-ID: <20240112113754.14710-4-kraxel@redhat.com> In-Reply-To: <20240112113754.14710-1-kraxel@redhat.com> References: <20240112113754.14710-1-kraxel@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.2 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kraxel@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 1PjnjT3Br3eGFq6Za1xWYixYx7686176AA= Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=lQNp2DyW; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Raise the limit for writes without block erase from two to four P30_MAX_BUFFER_SIZE_IN_BYTES blocks. With this in place almost all efi variable updates are handled without block erase. With the old limit some variable updates (with device paths) took the block erase code path. Signed-off-by: Gerd Hoffmann --- OvmfPkg/VirtNorFlashDxe/VirtNorFlash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OvmfPkg/VirtNorFlashDxe/VirtNorFlash.c b/OvmfPkg/VirtNorFlashDxe/VirtNorFlash.c index 90db12716a4c..c631ffd3a62d 100644 --- a/OvmfPkg/VirtNorFlashDxe/VirtNorFlash.c +++ b/OvmfPkg/VirtNorFlashDxe/VirtNorFlash.c @@ -555,7 +555,7 @@ NorFlashWriteSingleBlock ( // To avoid pathological cases were a 2 byte write is disregarded because it // occurs right at a 128 byte buffered write alignment boundary, permit up to // twice the max buffer size, and perform two writes if needed. - if ((*NumBytes + (Offset & BOUNDARY_OF_32_WORDS)) <= (2 * P30_MAX_BUFFER_SIZE_IN_BYTES)) { + if ((*NumBytes + (Offset & BOUNDARY_OF_32_WORDS)) <= (4 * P30_MAX_BUFFER_SIZE_IN_BYTES)) { // Check to see if we need to erase before programming the data into NOR. // If the destination bits are only changing from 1s to 0s we can just write. // After a block is erased all bits in the block is set to 1. -- 2.43.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113718): https://edk2.groups.io/g/devel/message/113718 Mute This Topic: https://groups.io/mt/103680934/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-