diff --git a/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c b/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c index 15e836e75e..b4fffed9ae 100644 --- a/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c +++ b/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c @@ -225,7 +225,7 @@ FillTranslationTable ( return; } - PhysicalBase = MemoryRegion->PhysicalBase; + PhysicalBase = (UINT32)MemoryRegion->PhysicalBase; RemainLength = MIN(MemoryRegion->Length, SIZE_4GB - PhysicalBase); switch (MemoryRegion->Attributes) { @@ -291,7 +291,7 @@ FillTranslationTable ( PhysicalBase += TT_DESCRIPTOR_SECTION_SIZE; RemainLength -= TT_DESCRIPTOR_SECTION_SIZE; } else { - PageMapLength = MIN (RemainLength, TT_DESCRIPTOR_SECTION_SIZE - + PageMapLength = MIN ((UINT32)RemainLength, TT_DESCRIPTOR_SECTION_SIZE - (PhysicalBase % TT_DESCRIPTOR_SECTION_SIZE)); // Case: Physical address aligned on the Section Size (1MB) && the length diff --git a/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c b/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c index 1ec734deab..6f18604f79 100644 --- a/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c +++ b/ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c @@ -152,7 +152,7 @@ UpdatePageEntries ( FirstLevelTable = (ARM_FIRST_LEVEL_DESCRIPTOR *)ArmGetTTBR0BaseAddress (); // Calculate number of 4KB page table entries to change - NumPageEntries = Length / TT_DESCRIPTOR_PAGE_SIZE; + NumPageEntries = (UINT32)(Length / TT_DESCRIPTOR_PAGE_SIZE); // Iterate for the number of 4KB pages to change Offset = 0; @@ -288,7 +288,7 @@ UpdateSectionEntries ( ASSERT (FirstLevelIdx < TRANSLATION_TABLE_SECTION_COUNT); // calculate number of 1MB first level entries this applies to - NumSections = Length / TT_DESCRIPTOR_SECTION_SIZE; + NumSections = (UINT32)(Length / TT_DESCRIPTOR_SECTION_SIZE); // iterate through each descriptor for(i=0; i