From nobody Tue Feb 10 06:43:18 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+93562+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+93562+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1662693146; cv=none; d=zohomail.com; s=zohoarc; b=aYyQhq/9A+VdbglN+LR5Uyui3lHTQflaRzRVgfxWUbuRc7K5+5LY53ezRMbym8rv2aYApX8QHLqYTzs8tOO8C1W/YCFkJV7YM7YURi1sltTsZp8I/piGQFTcWH+O+rC+VFDVoLwJ1QINr35FRRw/NcLf9mzAfuAkVu9MNIbEt9o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1662693146; 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=RN4/kxpyvfa8b+Pel9EXDfNzUF2EKjsNDHw7YAHMjaA=; b=TaM2994tfmoLl771lO/QNPzFZp55H2TptpvAwNU8W9sEtT+WpX7W+Z6P2DF3dymlhJ9XrecJ/st5rVws10MiK0gLSwT6kCU8YIEDqqbL/ADKNXGgbLmxsnMKI1uojokVguThoX69o95RLK10GQs1zhfGpfq5lWu1rulPfv6X5UE= 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+93562+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1662693146408808.7609823911475; Thu, 8 Sep 2022 20:12:26 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id W4AeYY1788612xp9rl0nXSf5; Thu, 08 Sep 2022 20:12:26 -0700 X-Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web08.2378.1662693141308155204 for ; Thu, 08 Sep 2022 20:12:21 -0700 X-Received: from localhost.localdomain (unknown [10.2.5.185]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxXWsMrxpjRP8UAA--.23346S18; Fri, 09 Sep 2022 11:12:19 +0800 (CST) From: "xianglai" To: devel@edk2.groups.io Cc: maobibo@loongson.cn Subject: [edk2-devel] [edk2-platforms][PATCH V1 16/16] Platform/Loongson: Support for saving variables to flash. Date: Fri, 9 Sep 2022 11:12:12 +0800 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-CM-TRANSID: AQAAf8BxXWsMrxpjRP8UAA--.23346S18 X-Coremail-Antispam: 1UD129KBjvJXoWxtrWUJry3CryUJryfuF4xCrg_yoW3ArW3pr 4UuFn7Kr1kKr4Utr1Yy34DWwnxAryak3s8Jw43tr17WF9rJ3WDG3yjva15Ary7A347tryx tr109w4UuF1qv3DanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== 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: GcFuHVptpMM25CUYok7H4TBbx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1662693146; bh=O2hTowqPcZtExLgE3+yQgLILglfL35igMNB/43DGf+s=; h=Cc:Date:From:Reply-To:Subject:To; b=W0dfqc2Nozh8b2/wzYHv9s1Og8ENsw7oBpAJhU0WZKCRlOmHg/2sw0rDcvRUF9wBVJB IWcEC3cjbD3GmkBiJZbV0XB5hP7qmnBHp3hT2KKwk/e0q+I7QkMCwulHGYIY7wB34c8HC x1leUHImplG7i8asdexO9BVOMYMRROUCBio= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1662693146725100034 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 | 14 ++++++++++++++ .../Loongson/LoongArchQemuPkg/Loongson.fdf.inc | 11 +++++++++++ .../Loongson/LoongArchQemuPkg/VarStore.fdf.inc | 10 +++++----- 5 files changed, 37 insertions(+), 6 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 ed06558f18..ec6234a26e 100644 --- a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc @@ -447,7 +447,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 ba2942e455..12920a0833 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 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 (#93562): https://edk2.groups.io/g/devel/message/93562 Mute This Topic: https://groups.io/mt/93565584/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-