Hi Etienn,

Thank you for this patch.

These changes look good to me.

Reviewed-by: Sami Mujawar <sami.muja...@arm.com>

Regards,

Sami Mujawar

On 10/05/2021 08:53 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+tianoc...@kernel.org>
Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org>
Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Sami Mujawar <sami.muja...@arm.com>
Signed-off-by: Etienne Carriere <etienne.carri...@linaro.org>
---
  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;

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75067): https://edk2.groups.io/g/devel/message/75067
Mute This Topic: https://groups.io/mt/82714634/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to