Commit Graph

15 Commits

Author SHA1 Message Date
Olivier Martin c357fd6a1f ArmPkg/ArmPkg.dec: Redefined PcdSystemMemory(Base|Size) as UINT64
The System Memory region might be out of the 32-bit memory space.

This change has been validated on the FVP AArch64 model using 4GB
of DRAM at 0x8_0000_0000:

-  # System Memory (2GB)
-  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000
+  # System Memory (4GB)
+  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x800000000
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x100000000

EFI Shell and Linux kernel boot successfully.

Note: This change has not been validated on AArch32. I expect some
early assembly code to not work.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15093 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-10 11:27:31 +00:00
Garrett Kirkendall 2a414cd3c3 ArmPlatformPkg/MemoryInitPei: AARCH64 fix memory address calculations
At least for AARCH64 currently, SystemMemoryTop and FdTop can overflow
while adding the 32-bit PCDs together.  The resulting value loses the
upper 32-bits.  Cast each of the values to EFI_PHYSICAL_ADDRESS size
before doing the addition to prevent erroneous overflow.  There is currently
no 32-bit platform in EDKII open source that will overflow and this change
would not fix that problem anyway.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Garrett Kirkendall <garrett.kirkendall@amd.com>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14675 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-16 09:29:52 +00:00
Olivier Martin 6f050ad6bf ArmPkg: Made ArmConfigureMmu() returns a status code
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14445 6f19259b-4bc3-4df7-8a09-765794883524
2013-06-27 18:16:06 +00:00
oliviermartin 1e57a46299 ARM Packages: Fixed line endings
This large code change only modifies the line endings to be CRLF to be
compliant with the EDK2 coding convention document.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14088 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-25 11:28:06 +00:00
oliviermartin b34e4db382 ARM Packages: Minor typo, mispellings and coding style changes
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13752 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-27 13:39:40 +00:00
oliviermartin bd6b97994a ArmPkg/ArmLib: Clean ArmV7Lib
- Move the non specific ArmV7 functions to ArmLib.
- Clean the ARM Platform common components to not depend on ArmV7 if not required



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12453 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:31:20 +00:00
oliviermartin f92b93c9a3 ARM Packages: Rename PcdNormal* into Pcd* PCDs
The denomination 'Normal' was used to make reference to the 'Normal'
or 'Non Secure' or 'Non Trusted' world.
To avoid confusion, this prefix has been removed from PCDs to define
the normal world.

The PCDs explicitely related to the Secure/Trusted World continue to
have the 'Sec' prefix.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12416 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:06:31 +00:00
oliviermartin d269095b71 ArmPlatformPkg: Change the memory model for the ARM Platform components
In the former memory model, the UEFI firmware was expected to be located
at the top of the system memory. Stacks & Pi memory regions were set below
the firmware.
On some platform, the UEFI firmware could be shadowed by the ROM firmware
(case of the BeagleBoard) and in some cases the firmware is copied at the
beginning of the system memory.

With this new memory model, stack and Pi/DXE memory regions are set at the
top of the system memory wherever the UEFI firmware is located in the memory
map.
Because DXE core does not support shadowed firmwares, the system memory covered
by the UEFI firmware is marked as 'Non Present' to avoid to be overlapped by
DXE allocations.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11992 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:27:21 +00:00
oliviermartin 5cc45b70c3 ArmPkg: Move ARM Platform drivers from ArmPkg/Drivers/ to ArmPlatformPkg/Drivers/
The idea is to keep ArmPkg responsible for the ARM architectural modules and ArmPlatformPkg
the ARM development platform packages (with their respective drivers).


ArmPlatformPkg: Reduce driver dependency on ArmPlatform.h

- Move some driver definitions from C-Macro to PCD values
- Unify PCD driver namespace




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11956 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 15:30:01 +00:00
oliviermartin bf72cf3381 ArmPlatformPkg: Move PcdStandalone from Feature PCD to Fixed PCD
Feature PCDs cannot be used in assembly files.
The PcdStandalone PCD is needed in one of the assembly file of the
ArmPlatformPkg/PrePi module.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11952 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 14:21:12 +00:00
oliviermartin 3a6eaccf2f ArmPlatformPkg/MemoryInitPei: Generate a library from the PEI Module
In the aim to reuse the memory init features in a PrePi module (use to
skip the PEI Core), this module has been divided into two files:
- MemoryInitPeiLib: declare the memory HOBs
- MemoryIniPeim: PEIM warpper for the library



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11950 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 11:41:53 +00:00
oliviermartin e862cd50c6 ArmPkg: Fix warnings raised by ARMGCC
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11829 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-15 19:53:15 +00:00
oliviermartin f598bf1266 ArmPlatformPkg: Code cleaning
- Fix coding style to follow EDK2 coding convention
- Remove deprecated function
- Remove unused PCDs



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11808 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:10:19 +00:00
oliviermartin 964680c124 ArmPlatformPkg/ArmPlatformLib: Move the UEFI memory partionning to MemoryInitPei
Formerly, each platform was responsible to declare the location of its UEFI memory
region (used by PEI and DXE Foundations).
The ArmPlatformLib was also declaring every region of its partitionned system memory
with a System Resource HOB.
    
In this new model, the MemoryInit expects the system memory to be declared with the
PCDs gArmTokenSpaceGuid.PcdSystemMemoryBase/Size.
These PCDs declare the largest continuous DRAM region. Additional regions can be
declared with the ArmPLatformLib function ArmPlatformGetAdditionalSystemMemory().
    
Now, it is the PEIM that partitions the system memory for every platform. It installs
a region of the size PcdSystemMemoryUefiRegionSize (default 128MB) for the PEI permanent
memory at the top of the DRAM region.
And a region of gArmPlatformTokenSpaceGuid.PcdSystemMemoryFixRegionSize (default 128MB)
is declared at the base of the system memory. This region is used for the allocation that
requires fixed address or have some constraints on their locations.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11481 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:21:41 +00:00
andrewfish 1d5d0ae92d Add ArmPlatformPkg from ARM Ltd. patch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11291 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-01 05:41:42 +00:00