[edk2-devel] [edk2-platforms][PATCH v2 5/6] Drivers/OpTee: address cast build warning issue in 32b mode

Sami Mujawar sami.mujawar at arm.com
Tue May 18 14:43:11 UTC 2021


Hi Etienn,

This patch looks good to me.

Reviewed-by: Sami Mujawar <sami.mujawar at arm.com>

Regards,

Sami Mujawar


On 17/05/2021 06:50 AM, Etienne Carriere wrote:
> Use (UINTN) cast to cast physical or virtual address values to the
> pointer size before casting from/to a pointer value.
>
> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Leif Lindholm <leif at nuviainc.com>
> Cc: Sami Mujawar <sami.mujawar at arm.com>
> Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
> ---
> No change since v1
> ---
>   Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c | 21 +++++++++++++-------
>   1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c b/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c
> index 6eb19bed0e..83c2750368 100644
> --- a/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c
> +++ b/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c
> @@ -305,7 +305,8 @@ OpTeeRpmbFvbRead (
>       }
>     }
>   
> -  Base = (VOID *)Instance->MemBaseAddress + (Lba * Instance->BlockSize) + Offset;
> +  Base = (VOID *)(UINTN)Instance->MemBaseAddress + (Lba * Instance->BlockSize) +
> +         Offset;
>     // We could read the data from the RPMB instead of memory
>     // The 2 copies should already be identical
>     // Copy from memory image
> @@ -387,7 +388,8 @@ OpTeeRpmbFvbWrite (
>         return Status;
>       }
>     }
> -  Base = (VOID *)Instance->MemBaseAddress + Lba * Instance->BlockSize + Offset;
> +  Base = (VOID *)(UINTN)Instance->MemBaseAddress + (Lba * Instance->BlockSize) +
> +         Offset;
>     Status = ReadWriteRpmb (
>                SP_SVC_RPMB_WRITE,
>                (UINTN)Buffer,
> @@ -477,7 +479,8 @@ OpTeeRpmbFvbErase (
>         return EFI_INVALID_PARAMETER;
>       }
>       NumBytes = NumLba * Instance->BlockSize;
> -    Base = (VOID *)Instance->MemBaseAddress + Start * Instance->BlockSize;
> +    Base = (VOID *)(UINTN)Instance->MemBaseAddress +
> +           (Start * Instance->BlockSize);
>       Buf = AllocatePool (NumLba * Instance->BlockSize);
>       if (Buf == NULL) {
>         return EFI_DEVICE_ERROR;
> @@ -689,7 +692,7 @@ InitializeFvAndVariableStoreHeaders (
>       goto Exit;
>     }
>     // Install the combined header in memory
> -  CopyMem ((VOID*)Instance->MemBaseAddress, Headers, HeadersLength);
> +  CopyMem ((VOID*)(UINTN)Instance->MemBaseAddress, Headers, HeadersLength);
>   
>   Exit:
>     FreePool (Headers);
> @@ -747,14 +750,18 @@ FvbInitialize (
>     // Read the file from disk and copy it to memory
>     ReadEntireFlash (Instance);
>   
> -  FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)Instance->MemBaseAddress;
> +  FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)Instance->MemBaseAddress;
>     Status = ValidateFvHeader (FwVolHeader);
>     if (EFI_ERROR (Status)) {
>       // There is no valid header, so time to install one.
>       DEBUG ((DEBUG_INFO, "%a: The FVB Header is not valid.\n", __FUNCTION__));
>   
>       // Reset memory
> -    SetMem64 ((VOID *)Instance->MemBaseAddress, Instance->NBlocks * Instance->BlockSize, ~0UL);
> +    SetMem64 (
> +      (VOID *)(UINTN)Instance->MemBaseAddress,
> +      Instance->NBlocks * Instance->BlockSize,
> +      ~0UL
> +      );
>       DEBUG ((DEBUG_INFO, "%a: Erasing Flash.\n", __FUNCTION__));
>       Status = ReadWriteRpmb (
>                  SP_SVC_RPMB_WRITE,
> @@ -827,7 +834,7 @@ OpTeeRpmbFvbInit (
>     mInstance.FvbProtocol.Write              = OpTeeRpmbFvbWrite;
>     mInstance.FvbProtocol.Read               = OpTeeRpmbFvbRead;
>   
> -  mInstance.MemBaseAddress = (EFI_PHYSICAL_ADDRESS)Addr;
> +  mInstance.MemBaseAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)Addr;
>     mInstance.Signature      = FLASH_SIGNATURE;
>     mInstance.Initialize     = FvbInitialize;
>     mInstance.BlockSize      = EFI_PAGE_SIZE;



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75255): https://edk2.groups.io/g/devel/message/75255
Mute This Topic: https://groups.io/mt/82880298/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list