From 17d1417a9ce30283a5341ce5ad17e289ac517a4a Mon Sep 17 00:00:00 2001 From: Girish Mahadevan Date: Tue, 10 Dec 2024 09:43:00 -0700 Subject: [PATCH] fix: bug in block erase logic When figuring out the LBA for the current block we accidentally used the partition offset and not the block size. Signed-off-by: Girish Mahadevan Reviewed-by: Jeff Brasen Tested-by: Jake Garver Reviewed-by: Jake Garver --- Silicon/NVIDIA/Drivers/FvbNorFlashDxe/VarIntCheck.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Silicon/NVIDIA/Drivers/FvbNorFlashDxe/VarIntCheck.c b/Silicon/NVIDIA/Drivers/FvbNorFlashDxe/VarIntCheck.c index 11cd4d4f94..59b09e9956 100644 --- a/Silicon/NVIDIA/Drivers/FvbNorFlashDxe/VarIntCheck.c +++ b/Silicon/NVIDIA/Drivers/FvbNorFlashDxe/VarIntCheck.c @@ -294,7 +294,7 @@ GetWriteOffset ( *Offset = BlockOffset; break; } else if (ReadBuf[0] == VAR_INT_VALID) { - ValidRecord = CurOffset; + ValidRecord = BlockOffset; } BlockOffset += This->MeasurementSize; @@ -313,7 +313,7 @@ GetWriteOffset ( if ((ValidRecord == 0) || (NumPartitionBlocks == 1)) { *Offset = This->PartitionByteOffset; } else { - CurBlock = (ValidRecord / This->PartitionByteOffset); + CurBlock = (ValidRecord / This->BlockSize); if (CurBlock == EndBlock) { *Offset = This->PartitionByteOffset; } else {