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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to