mirror of https://github.com/acidanthera/audk.git
EmbeddedPkg: Fix build error for MmcDxe
The following command line: build -b NOOPT -a IA32 -t VS2017 -p edk2\EmbeddedPkg\EmbeddedPkg.dsc Generates the following error: MmcDxe.lib(Diagnostics.obj) : error LNK2001: unresolved external symbol __allshl MmcDxe.lib(Diagnostics.obj) : error LNK2001: unresolved external symbol __aullshr MmcDxe.lib(MmcBlockIo.obj) : error LNK2001: unresolved external symbol __allmul These erros are due to the use of shift/multiply operations on UINT64 variable on a IA32 architecture. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
This commit is contained in:
parent
d0da48f112
commit
7ff0459739
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Diagnostics Protocol implementation for the MMC DXE driver
|
||||
|
||||
Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
||||
Copyright (c) 2011-2020, ARM Limited. All rights reserved.
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
|
@ -56,7 +56,7 @@ GenerateRandomBuffer (
|
|||
UINT64* Buffer64 = (UINT64*)Buffer;
|
||||
|
||||
for (i = 0; i < (BufferSize >> 3); i++) {
|
||||
*Buffer64 = i | (~i << 32);
|
||||
*Buffer64 = i | LShiftU64 (~i, 32);
|
||||
Buffer64++;
|
||||
}
|
||||
}
|
||||
|
@ -227,7 +227,11 @@ MmcDriverDiagnosticsRunDiagnostics (
|
|||
|
||||
// LBA=10 Size=BlockSize
|
||||
DiagnosticLog (L"MMC Driver Diagnostics - Test: Any Block\n");
|
||||
Status = MmcReadWriteDataTest (MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock >> 1, MmcHostInstance->BlockIo.Media->BlockSize);
|
||||
Status = MmcReadWriteDataTest (
|
||||
MmcHostInstance,
|
||||
RShiftU64 (MmcHostInstance->BlockIo.Media->LastBlock, 1),
|
||||
MmcHostInstance->BlockIo.Media->BlockSize
|
||||
);
|
||||
|
||||
// LBA=LastBlock Size=BlockSize
|
||||
DiagnosticLog (L"MMC Driver Diagnostics - Test: Last Block\n");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/** @file
|
||||
*
|
||||
* Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
||||
* Copyright (c) 2011-2020, ARM Limited. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
*
|
||||
|
@ -149,7 +149,7 @@ MmcTransferBlock (
|
|||
if (MmcHostInstance->CardInfo.OCRData.AccessMode & SD_CARD_CAPACITY) {
|
||||
CmdArg = Lba;
|
||||
} else {
|
||||
CmdArg = Lba * This->Media->BlockSize;
|
||||
CmdArg = MultU64x32 (Lba, This->Media->BlockSize);
|
||||
}
|
||||
} else {
|
||||
//Set command argument based on the card access mode (Byte mode or Block mode)
|
||||
|
@ -157,7 +157,7 @@ MmcTransferBlock (
|
|||
MMC_OCR_ACCESS_SECTOR) {
|
||||
CmdArg = Lba;
|
||||
} else {
|
||||
CmdArg = Lba * This->Media->BlockSize;
|
||||
CmdArg = MultU64x32 (Lba, This->Media->BlockSize);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue