Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: eric Dong <[email protected]>
Cc: Feng Tian <Feng, [email protected]>
---
IntelFrameworkModulePkg/Csm/BiosThunk/BlockIoDxe/BiosInt13.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IntelFrameworkModulePkg/Csm/BiosThunk/BlockIoDxe/BiosInt13.c
b/IntelFrameworkModulePkg/Csm/BiosThunk/BlockIoDxe/BiosInt13.c
index 63aa1a2..2ca5183 100644
--- a/IntelFrameworkModulePkg/Csm/BiosThunk/BlockIoDxe/BiosInt13.c
+++ b/IntelFrameworkModulePkg/Csm/BiosThunk/BlockIoDxe/BiosInt13.c
@@ -868,11 +868,11 @@ Edd11BiosReadBlocks (
// TransferBuffer has been 4KB alignment. Normalize TransferBuffer to make
offset as 0 in seg:offset
// format to transfer maximum 127 blocks of data.
// Otherwise when offset adding data size exceeds 0xFFFF, if OpROM does
not normalize TransferBuffer,
// INT13 function 42H will return data boundary error 09H.
//
- AddressPacket->SegOffset = (UINT32) ((TransferBuffer >> 4) << 16);
+ AddressPacket->SegOffset = (UINT32) LShiftU64 (RShiftU64(TransferBuffer,
4), 16);
AddressPacket->Lba = (UINT64) Lba;
Regs.H.AH = 0x42;
Regs.H.DL = BiosBlockIoDev->Bios.Number;
Regs.X.SI = EFI_OFFSET (AddressPacket);
@@ -1021,11 +1021,11 @@ Edd11BiosWriteBlocks (
// TransferBuffer has been 4KB alignment. Normalize TransferBuffer to make
offset as 0 in seg:offset
// format to transfer maximum 127 blocks of data.
// Otherwise when offset adding data size exceeds 0xFFFF, if OpROM does
not normalize TransferBuffer,
// INT13 function 42H will return data boundary error 09H.
//
- AddressPacket->SegOffset = (UINT32) ((TransferBuffer >> 4) << 16);
+ AddressPacket->SegOffset = (UINT32) LShiftU64 (RShiftU64(TransferBuffer,
4), 16);
AddressPacket->Lba = (UINT64) Lba;
Regs.H.AH = 0x43;
Regs.H.AL = 0x00;
//
--
1.9.5.msysgit.1
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel