]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/Ata.c
The ATA alignment_logic_in_phy_blocks field doesn’t directly report the lowest aligne...
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / IdeBusDxe / Ata.c
index c22f7a3b303e48347c077fe897ada72d61059208..7d92065b1cb3c7b19385de7e1c5c8236bb92574a 100644 (file)
@@ -2563,7 +2563,8 @@ AtaEnableLongPhysicalSector (
       //\r
       if ((AtaIdentifyData->alignment_logic_in_phy_blocks & 0xc000) == 0x4000) {\r
         IdeDev->BlkIo.Media->LowestAlignedLba =\r
-          (EFI_LBA) (AtaIdentifyData->alignment_logic_in_phy_blocks & 0x3fff);\r
+          (EFI_LBA) (IdeDev->BlkIo.Media->LogicalBlocksPerPhysicalBlock - (AtaIdentifyData->alignment_logic_in_phy_blocks & 0x3fff)) %\r
+          IdeDev->BlkIo.Media->LogicalBlocksPerPhysicalBlock;\r
       }\r
     }\r
     //\r