Hi Sunil, Qingyu is from Penglai team, when we were working together in enabling StandaloneMm variable service, we found an issue in OvmfPkg/RiscVVirt/VarStore.fdf.inc, in which the blockmap config is not aligned with the value in OvmfPkg/RiscVVirt/Library/VirtNorFlashPlatformLib/VirtNorFlashStaticLib.c, which is SIZE_256KB
That mis-alignment won't cause any issue if the variable size is small and less than 0x1000, but if store more data in the flash device then it will cause data loss issue during reboot. Once reboot if any FV header data is corrupted it will result the whole variable system be re-initialized. Please help review the patch and give the comments, thanks Thanks, Yong Li -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Qingyu Shang Sent: Friday, August 11, 2023 7:05 PM To: devel@edk2.groups.io Cc: Qingyu Shang <2931013...@sjtu.edu.cn> Subject: [edk2-devel] [PATCH] OvmfPkg/RiscVVirt: Fix issues in VarStore Blockmap config The block size configuration of Blockmap does not match that in Qemu VirtNorFlash, which causes variable data to be written into FtwWorkBlock by mistake, resulting in data loss during reboot. Fix it and update new checksum value. Signed-off-by: Qingyu Shang <2931013...@sjtu.edu.cn> --- OvmfPkg/RiscVVirt/VarStore.fdf.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OvmfPkg/RiscVVirt/VarStore.fdf.inc b/OvmfPkg/RiscVVirt/VarStore.fdf.inc index 6bc619e50c..aba32315cc 100644 --- a/OvmfPkg/RiscVVirt/VarStore.fdf.inc +++ b/OvmfPkg/RiscVVirt/VarStore.fdf.inc @@ -30,9 +30,9 @@ DATA = { # Signature "_FVH" # Attributes 0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00, # HeaderLength # CheckSum # ExtHeaderOffset #Reserved #Revision- 0x48, 0x00, 0x2F, 0xF1, 0x00, 0x00, 0x00, 0x02,- # Blockmap[0]: 0x20 Blocks * 0x1000 Bytes / Block- 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,+ 0x48, 0x00, 0x28, 0x09, 0x00, 0x00, 0x00, 0x02,+ # Blockmap[0]: 0x3 Blocks * 0x40000 Bytes / Block+ 0x3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, # Blockmap[1]: End 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ## This is the VARIABLE_STORE_HEADER-- 2.25.1 -=-=-=-=-=-= Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107708): https://edk2.groups.io/g/devel/message/107708 Mute This Topic: https://groups.io/mt/100684601/6998987 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [yong...@intel.com] -=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107791): https://edk2.groups.io/g/devel/message/107791 Mute This Topic: https://groups.io/mt/100684601/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-