On 2020.03.06 11:42, Pete Batard via Groups.Io wrote:
This currently produces an ASSERT for me:
ASSERT [ArmPlatformPrePiUniCore]
/usr/src/edk2/ArmPlatformPkg/PrePi/PrePi.c(75): (((UINT64)0x00000000ULL
> mSystemMemoryEnd) || ((0x00000000ULL + 0x00200000U) < 0x00200000ULL))
|| ((0x00000000ULL >= 0x00200000ULL) && ((UINT64)(0x00000000ULL +
0x00200000U)
Please hold off integration until we've looked into it further.
Disregard. I was missing the fix IS_XIP dependency mentioned below.
With this:
Reviewed-by: Pete Batard <[email protected]>
Tested-by: Pete Batard <[email protected]>
Regards,
/Pete
On 2020.03.05 22:46, Andrei Warkentin wrote:
From: Andrei Warkentin <[email protected]>
The RPi4 TF-A is much smaller than RPi3 TF-A, and doesn't need
an extra 2MB region.
Note: this depends on the edk2 ArmPlatformPkg/PrePi: fix IS_XIP.
Signed-off-by: Andrei Warkentin <[email protected]>
---
Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c | 22
++++++++++++--------
Platform/RaspberryPi/RPi4/RPi4.dsc | 4 ++--
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c
b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c
index 901e5e3e..e795a885 100644
--- a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c
+++ b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c
@@ -39,8 +39,6 @@ STATIC RPI_MEMORY_REGION_INFO
VirtualMemoryInfo[MAX_VIRTUAL_MEMORY_MAP_DESCRIP
FixedPcdGet32(PcdFdSize) - \
VariablesSize)
-#define ATFBase (FixedPcdGet64(PcdFdBaseAddress) +
FixedPcdGet32(PcdFdSize))
-
/**
Return the Virtual Memory Map of your platform
@@ -96,13 +94,19 @@ ArmPlatformGetVirtualMemoryMap (
VirtualMemoryInfo[Index].Type = RPI_MEM_RUNTIME_REGION;
VirtualMemoryInfo[Index++].Name = L"FD Variables";
- // TF-A reserved RAM
- VirtualMemoryTable[Index].PhysicalBase = ATFBase;
- VirtualMemoryTable[Index].VirtualBase =
VirtualMemoryTable[Index].PhysicalBase;
- VirtualMemoryTable[Index].Length = FixedPcdGet64
(PcdSystemMemoryBase) - ATFBase;
- VirtualMemoryTable[Index].Attributes =
ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
- VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION;
- VirtualMemoryInfo[Index++].Name = L"TF-A RAM";
+ if (BCM2711_SOC_REGISTERS == 0) {
+ //
+ // TF-A reserved RAM only exists for the Pi 3 TF-A.
+ //
+ // This is 2MB that directly follows the FD.
+ //
+ VirtualMemoryTable[Index].PhysicalBase =
(FixedPcdGet64(PcdFdBaseAddress) + FixedPcdGet32(PcdFdSize));
+ VirtualMemoryTable[Index].VirtualBase =
VirtualMemoryTable[Index].PhysicalBase;
+ VirtualMemoryTable[Index].Length = FixedPcdGet64
(PcdSystemMemoryBase) - VirtualMemoryTable[Index].PhysicalBase;
+ VirtualMemoryTable[Index].Attributes =
ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
+ VirtualMemoryInfo[Index].Type =
RPI_MEM_RESERVED_REGION;
+ VirtualMemoryInfo[Index++].Name = L"TF-A RAM";
+ }
// Base System RAM
VirtualMemoryTable[Index].PhysicalBase = FixedPcdGet64
(PcdSystemMemoryBase);
diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc
b/Platform/RaspberryPi/RPi4/RPi4.dsc
index 79295729..da62dc5b 100644
--- a/Platform/RaspberryPi/RPi4/RPi4.dsc
+++ b/Platform/RaspberryPi/RPi4/RPi4.dsc
@@ -396,8 +396,8 @@
# This matches PcdFvBaseAddress, since everything less is ATF, and
# will be reserved away.
#
- gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00400000
- gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fc00000
+ gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00200000
+ gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fe00000
#
# Device specific addresses
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#55596): https://edk2.groups.io/g/devel/message/55596
Mute This Topic: https://groups.io/mt/71761855/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-