From nobody Tue Feb 10 01:32:34 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+88010+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+88010+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1648176691; cv=none; d=zohomail.com; s=zohoarc; b=A+gLK2NubyfYYZKmRtCqfVpkVp2/+dbWlA8NP9rUSgAD2APxwhYWGUmg8nNzvkbJQfail3AjLTTMZaSmd+aj5nD5KAmGrf3BkJ0E+QvVGsKMlhQlR40SV0GHksR16lxCqa5wwyRhgr1uh0Z6aOEx1OwXajOQe4sqJxl9Rn5qUWw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1648176691; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=cLT2wshRc2rxucLKF4WJiXsdXDXe4W6WshFe25Pnnrg=; b=L33ohmoCp/svQnWpYxAz0JzL0NkrJV568lEs93ZIvt7+KujFfhVdRSGL6HswbSvCa/l4eBkA9tkmZ7/aRKjvyjcMqZ/kh0/ExQQnPhD3kZGzL1Xr/oCfjNpTznW8H/x1S79bZIAk850Uc0mwqA5Ii97/wDAMQVdV47EAsBLIiqk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+88010+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1648176691129234.5657224252693; Thu, 24 Mar 2022 19:51:31 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id keQ1YY1788612xTmhPqL6ig9; Thu, 24 Mar 2022 19:51:30 -0700 X-Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web09.748.1648176689268187060 for ; Thu, 24 Mar 2022 19:51:30 -0700 X-Received: from localhost.localdomain (unknown [10.2.10.197]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9AxyswuLj1i92UPAA--.22216S2; Fri, 25 Mar 2022 10:51:26 +0800 (CST) From: "xianglai" To: devel@edk2.groups.io Cc: maobibo@loongson.cn Subject: [edk2-devel] [edk2-platforms][PATCH V2 16/16] Platform/Loongson: Support for saving variables to flash. Date: Fri, 25 Mar 2022 10:51:13 +0800 Message-Id: <868cc62825c2aca1ebf04931b97b3f1206ac97de.1648171285.git.lixianglai@loongson.cn> In-Reply-To: References: MIME-Version: 1.0 X-CM-TRANSID: AQAAf9AxyswuLj1i92UPAA--.22216S2 X-Coremail-Antispam: 1UD129KBjvJXoWxtrWUJry3CryUJryfuF4xCrg_yoW3Kry8pr 4UuFn7Kr1kKrWjqryYy34DWw1ayryak3s8Jw43tr17WF9rJ3WDC3yjva1Yyry7A347try8 tr109w4UuF1qv3DanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkS14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26F1j6w1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U JVWxJr1l84ACjcxK6I8E87Iv67AKxVWxJr0_GcWl84ACjcxK6I8E87Iv6xkF7I0E14v26r xl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj 6xIIjxv20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr 0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7MxkIecxEwVCm-wCF 04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r 18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jrv_JF1lIxkGc2Ij64vI r41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr 1lIxAIcVCF04k26cxKx2IYs7xG6Fyj6rWUJwCI42IY6I8E87Iv67AKxVW8JVWxJwCI42IY 6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUYDGYDUUUU X-CM-SenderInfo: 5ol0xt5qjotxo6or00hjvr0hdfq/ Precedence: Bulk List-Unsubscribe: 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,lixianglai@loongson.cn X-Gm-Message-State: AzONBIoHlCVFfsL2Q5AVT22Sx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1648176690; bh=3sLGkCgsnAxQpiZ9b8mpyVUQJFSvrkF7dFYZ3pUXbKE=; h=Cc:Date:From:Reply-To:Subject:To; b=RVulX9UwCu31itOfA3tdaD+KHUAFZumk1LNQhAjKULSM7opzov6KeWxgAkt84AaGnoE iEv9vqp1uCo99RTL1t9pdiq5G0p15LmS4DtHbPosHNN4nNy53WfvIp1DHFYUnIhjFgrsv wrEYFquTOn0YUmHkBZl8FUOT3lON7m6KFoU= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1648176693032100002 Content-Type: text/plain; charset="utf-8" Added the function of saving non-volatile variables. Signed-off-by: xianglai li --- Platform/Loongson/LoongArchQemuPkg/Loongson.dec | 6 ++++++ Platform/Loongson/LoongArchQemuPkg/Loongson.dsc | 2 +- Platform/Loongson/LoongArchQemuPkg/Loongson.fdf | 16 +++++++++++++++- .../Loongson/LoongArchQemuPkg/Loongson.fdf.inc | 11 +++++++++++ .../Loongson/LoongArchQemuPkg/VarStore.fdf.inc | 10 +++++----- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec b/Platform/Loo= ngson/LoongArchQemuPkg/Loongson.dec index 508a770a22..c3e523b39b 100644 --- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec @@ -32,6 +32,8 @@ [Protocols] =20 [PcdsFixedAtBuild, PcdsDynamic] + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashFdBase|0x0|UINT64|0 + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashBlockSize|0x0|UINT32|2 gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|0x0|UINT64|0x00000003 gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize|0x0|UINT32|0x00000004 gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvOffset|0x0|UINT64|0x00000007 @@ -50,6 +52,10 @@ gLoongArchQemuPkgTokenSpaceGuid.PcdSecPeiTempRamSize|0|UINT32|0x0000001d gLoongArchQemuPkgTokenSpaceGuid.PcdUefiRamTop|0x0|UINT64|0x0000001e gLoongArchQemuPkgTokenSpaceGuid.PcdRamRegionsBottom|0x0|UINT64|0x00000022 + gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase|0x0|UI= NT64|0x00000024 + gLoongArchQemuPkgTokenSpaceGuid.PcdAllVarSize|0x0|UINT32|0x00000025 + gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase|0x0|UI= NT64|0x00000026 + gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase|0x0|= UINT64|0x00000027 gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvBase|0x0|UINT64|0x00000028 gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvSize|0x0|UINT32|0x00000029 =20 diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc b/Platform/Loo= ngson/LoongArchQemuPkg/Loongson.dsc index 4707b6dc9b..adda94c755 100644 --- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc @@ -437,7 +437,7 @@ # # Variable # -# Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeD= xe/FvbServicesRuntimeDxe.inf + Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntimeDx= e/FvbServicesRuntimeDxe.inf OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf { PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.i= nf diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf b/Platform/Loo= ngson/LoongArchQemuPkg/Loongson.fdf index 7084c90c56..5a92f724a7 100644 --- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf @@ -31,6 +31,19 @@ gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase|gLoong= ArchQemuPkgTokenSpaceGui FV =3D FVMAIN_COMPACT =20 !include VarStore.fdf.inc + +##########################################################################= ########################### +[FD.QEMU_EFI_VARS] +BaseAddress =3D $(VARIABLE_BASE_ADDRESS) +Size =3D $(VAR_ALL_SIZE) +ErasePolarity =3D 1 +BlockSize =3D $(BLOCK_SIZE) +NumBlocks =3D $(VAR_ALL_BLOCKS) + +DEFINE VARIABLE_OFFSET =3D 0 +!include VarStore.fdf.inc +DEFINE VARIABLE_OFFSET =3D 0x003a0000 + ##########################################################################= ########################### [FV.SECFV] FvNameGuid =3D 587d4265-5e71-41da-9c35-4258551f1e22 @@ -87,6 +100,7 @@ INF MdeModulePkg/Core/Pei/PeiMain.inf INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf INF Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf + ##########################################################################= ########################### [FV.DXEFV] FvNameGuid =3D 5d19a5b3-130f-459b-a292-9270a9e6bc62 @@ -135,7 +149,7 @@ INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRu= ntimeDxe.inf # # Variable # -#INF Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRunti= meDxe/FvbServicesRuntimeDxe.inf +INF Platform/Loongson/LoongArchQemuPkg/Drivers/QemuFlashFvbServicesRuntim= eDxe/FvbServicesRuntimeDxe.inf INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc b/Platform= /Loongson/LoongArchQemuPkg/Loongson.fdf.inc index 964d69ed44..4b926a85ff 100644 --- a/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc @@ -34,6 +34,7 @@ DEFINE VAR_ALL_SIZE =3D 0x60000 =20 ##########################################################################= ## #Set Var Flash layout +DEFINE VARIABLE_BASE_ADDRESS =3D 0x1c3a0000 DEFINE VARIABLE_SIZE =3D 0x00010000 DEFINE VAR_ALL_BLOCKS =3D 0x60 =20 @@ -53,11 +54,21 @@ DEFINE EVENT_LOG_OFFSET =3D $(FWTWORKING_OFFS= ET) + $(FWTWORKING_SIZE) DEFINE EVENT_LOG_SIZE =3D 0x8000 =20 # Set Variable +SET gLoongArchQemuPkgTokenSpaceGuid.PcdFlashFdBase =3D $(FD_BASE_ADDRESS) + +SET gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageVariableBase =3D = $(FD_BASE_ADDRESS) + $(VARIABLE_OFFSET) +SET gLoongArchQemuPkgTokenSpaceGuid.PcdAllVarSize =3D $(VAR_ALL_SIZE) + +SET gLoongArchQemuPkgTokenSpaceGuid.PcdFlashBlockSize =3D $(BLOCK_SIZE) SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 =3D 0 SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize =3D $(VAR= IABLE_SIZE) =20 # Set FtwSpare +SET gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase =3D= $(FD_BASE_ADDRESS) + $(SPARE_OFFSET) +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 =3D 0 SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize =3D $(SPA= RE_SIZE) =20 # Set FtwWorking +SET gLoongArchQemuPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase = =3D $(FD_BASE_ADDRESS) + $(SPARE_OFFSET) + $(SPARE_SIZE) +SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 =3D 0 SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize =3D $(F= WTWORKING_SIZE) diff --git a/Platform/Loongson/LoongArchQemuPkg/VarStore.fdf.inc b/Platform= /Loongson/LoongArchQemuPkg/VarStore.fdf.inc index 625fa23543..a4e0158cf8 100644 --- a/Platform/Loongson/LoongArchQemuPkg/VarStore.fdf.inc +++ b/Platform/Loongson/LoongArchQemuPkg/VarStore.fdf.inc @@ -38,16 +38,16 @@ DATA =3D { # FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32 0x5a, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } -$(RESERVE1_OFFSET)|$(RESERVE1_SIZE) +$(VARIABLE_OFFSET) + $(VARIABLE_SIZE)|$(RESERVE1_SIZE) #NV_RESERVE1_STORE =20 -$(RESERVE2_OFFSET)|$(RESERVE2_SIZE) +$(VARIABLE_OFFSET) + $(VARIABLE_SIZE) + $(RESERVE1_SIZE)|$(RESERVE2_SIZE) #NV_RESERVE2_STORE =20 -$(SPARE_OFFSET)|$(SPARE_SIZE) +$(VARIABLE_OFFSET) + $(VARIABLE_SIZE) + $(RESERVE1_SIZE) + $(RESERVE2_SIZE= )|$(SPARE_SIZE) #NV_FTW_SPARE =20 -$(FWTWORKING_OFFSET)|$(FWTWORKING_SIZE) +$(VARIABLE_OFFSET) + $(VARIABLE_SIZE) + $(RESERVE1_SIZE) + $(RESERVE2_SIZE= ) + $(SPARE_SIZE)|$(FWTWORKING_SIZE) #NV_FTW_WORKING DATA =3D { # EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature =3D gEdkiiWorkingBl= ockSignatureGuid =3D @@ -60,5 +60,5 @@ DATA =3D { 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } =20 -$(EVENT_LOG_OFFSET)|$(EVENT_LOG_SIZE) +$(VARIABLE_OFFSET) + $(VARIABLE_SIZE) + $(RESERVE1_SIZE) + $(RESERVE2_SIZE= ) + $(SPARE_SIZE) + $(FWTWORKING_SIZE)|$(EVENT_LOG_SIZE) #NV_EVENT_LOG --=20 2.31.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88010): https://edk2.groups.io/g/devel/message/88010 Mute This Topic: https://groups.io/mt/90015104/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-