]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/NorFlashDxe: Fixed LBA for FVB
authorOlivier Martin <olivier.martin@arm.com>
Wed, 14 May 2014 22:11:04 +0000 (22:11 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 14 May 2014 22:11:04 +0000 (22:11 +0000)
FVB (for instance for UEFI Variable) might not be at the
start of the NOR Flash. 'Lba' needs to be fixed up for it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15532 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.c
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashFvbDxe.c

index 7030a3c866c342dc2a6eb4afbbe3329fb592761c..4fac20199ba0b0e929de5a0bfcb85fda1c547788 100644 (file)
@@ -886,7 +886,7 @@ NorFlashWriteSingleBlock (
     Instance->Initialize(Instance);\r
   }\r
 \r
-  DEBUG ((DEBUG_BLKIO, "NorFlashWriteSingleBlock(Parameters: Lba=%ld, Offset=0x%x, *NumBytes=0x%x, Buffer @ 0x%08x)\n", Instance->StartLba + Lba, Offset, *NumBytes, Buffer));\r
+  DEBUG ((DEBUG_BLKIO, "NorFlashWriteSingleBlock(Parameters: Lba=%ld, Offset=0x%x, *NumBytes=0x%x, Buffer @ 0x%08x)\n", Lba, Offset, *NumBytes, Buffer));\r
 \r
   // Detect WriteDisabled state\r
   if (Instance->Media.ReadOnly == TRUE) {\r
@@ -928,8 +928,7 @@ NorFlashWriteSingleBlock (
     while (BytesToWrite > 0) {\r
       // Read full word from NOR, splice as required. A word is the smallest\r
       // unit we can write.\r
-      TempStatus = NorFlashRead (Instance, Instance->StartLba + Lba,\r
-                                 CurOffset & ~(0x3), sizeof(Tmp), &Tmp);\r
+      TempStatus = NorFlashRead (Instance, Lba, CurOffset & ~(0x3), sizeof(Tmp), &Tmp);\r
       if (EFI_ERROR (TempStatus)) {\r
         return EFI_DEVICE_ERROR;\r
       }\r
@@ -1042,7 +1041,7 @@ NorFlashWriteSingleBlock (
   }\r
 \r
   // Read NOR Flash data into shadow buffer\r
-  TempStatus = NorFlashReadBlocks (Instance, Instance->StartLba + Lba, BlockSize, Instance->ShadowBuffer);\r
+  TempStatus = NorFlashReadBlocks (Instance, Lba, BlockSize, Instance->ShadowBuffer);\r
   if (EFI_ERROR (TempStatus)) {\r
     // Return one of the pre-approved error statuses\r
     return EFI_DEVICE_ERROR;\r
@@ -1052,7 +1051,7 @@ NorFlashWriteSingleBlock (
   CopyMem ((VOID*)((UINTN)Instance->ShadowBuffer + Offset), Buffer, *NumBytes);\r
 \r
   // Write the modified buffer back to the NorFlash\r
-  TempStatus = NorFlashWriteBlocks (Instance, Instance->StartLba + Lba, BlockSize, Instance->ShadowBuffer);\r
+  TempStatus = NorFlashWriteBlocks (Instance, Lba, BlockSize, Instance->ShadowBuffer);\r
   if (EFI_ERROR (TempStatus)) {\r
     // Return one of the pre-approved error statuses\r
     return EFI_DEVICE_ERROR;\r
index bf420853b0a173d96cbb37a163f11ae2fac2eec2..efe87e57fd4e87921c4245d1cacf65918b958609 100644 (file)
@@ -535,7 +535,7 @@ FvbWrite (
 \r
   Instance = INSTANCE_FROM_FVB_THIS (This);\r
 \r
-  return NorFlashWriteSingleBlock (Instance, Lba, Offset, NumBytes, Buffer);\r
+  return NorFlashWriteSingleBlock (Instance, Instance->StartLba + Lba, Offset, NumBytes, Buffer);\r
 }\r
 \r
 /**\r