Commit Graph

200 Commits

Author SHA1 Message Date
oliviermartin 916666c009 ArmPkg/ArmLib: Replaced 'UINTN' type by architecture agnostic types (EFI_PHYSICAL_ADDRESS & EFI_VIRTUAL_ADDRESS) to describe memory addresses
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13073 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-29 17:22:11 +00:00
oliviermartin afb9f4da94 ArmPkg/Library/SemihostLib: Removed depenencies on Uefi.h (Base library)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13065 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:34:12 +00:00
oliviermartin 1377db63ff ArmPlatformPkg: Updated the stack setup to have the same geometry between the Secure and Normal World
Having a similar setup reduces the error during the MPCore stack setup.
The stack setup is described on this wikipage:
https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ArmPlatformPkg/Stack



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13058 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:23:53 +00:00
oliviermartin 5ed2368498 ArmPkg/ArmLib: Fixed 'ArmConfigureMmu()' to avoid overflow when an entry is mapped at 0xFFFFFFFF
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13056 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:20:34 +00:00
oliviermartin 3b73c91b65 ArmPkg/ArmLib.h: Update 'ARM_MEMORY_REGION_DESCRIPTOR' to support 64bit addresses
Replaced 'UINT32' by 'UINTN'.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13055 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:18:35 +00:00
oliviermartin 65acd8e7b3 ArmPlatformPkg: Moved 'ArmTrustZoneLib' from ArmPkg/Library to ArmPlatformPkg/Drivers
This library is really the driver for the ARM Trustzone controllers (TZPC and TZASC).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13054 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:16:58 +00:00
oliviermartin 0db25ccc6c ArmPlatformPkg: Minor code changes (comments, misspellings, coding stylei, line endings)
- Fixed misspellings
- Updated Copyright
- Remove unused sections in INF file
- Fixed incorrect commentsi
- Fixed coding style
- Fixed line endings (CRLR)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13052 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:11:42 +00:00
oliviermartin 31d196c16f ArmPkg/ArmArchTimerLib: Renamed the constructor to 'TimerConstructor()'
Some ARM Platform components (ie: PrePei) use this constructor name to
initialize the timers (at this time there is no PE loader to call the
library constructors) when PI/UEFI is started to initialize the
PerformanceLib.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13041 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27 10:23:08 +00:00
oliviermartin 1bccfbe5ab ArmPkg/PL390Gic: Removed duplicated line of codes disabling the interrupts
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13040 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27 10:20:46 +00:00
oliviermartin ac7362c985 ArmPkg/LinuxLoader: Fixed memory leak
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13039 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27 10:18:35 +00:00
oliviermartin c0a1f7776b ArmPkg/BdsLib: Added support for using uInitrd
Detect if there is a u-boot header on the initrd (by checking the
signature) and skip it.

Signed-off-by: ryan.harkin@linaro.org
Reviewed-by: oliviermartin




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13031 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-24 16:11:51 +00:00
oliviermartin 1093e3074f ArmPkg/BdsLib: Fixed LinuxImageSize if uImagei format
The uImage is 64Bytes smaller (size of the u-boot header) than
the size of the file read from the file system.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13030 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-24 16:05:00 +00:00
oliviermartin d60f6af456 ArmPkg/ArmV7Lib: Add support for Invalid Instruction Cache to Point of Unification
This patch adds support to invalidate Instruction Cache to the Point of Unification (PoU).

Signed-off-by: eugenecohen
Reviewed-by: oliviermartin



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13012 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-14 18:44:40 +00:00
oliviermartin 9207c5d758 ArmPkg: Changed ARM CPU SetMemoryAttributes to always use strongly ordered for the EFI_MEMORY_UC attribute
Changed ARM CPU SetMemoryAttributes to always use strongly ordered for the EFI_MEMORY_UC attribute. 

Signed-off-by: 
Reviewed-by: eugenecohen
Reviewed-by: yanivtal




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13011 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-14 15:54:05 +00:00
oliviermartin 3d565dd674 ArmPkg/BdsLib: Fixed memory leak
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12996 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-09 15:28:25 +00:00
oliviermartin 7598f36265 ArmPkg/BdsLib: Fixed incorrect typecasting
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12995 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-09 15:27:22 +00:00
oliviermartin 4671d15d7a ArmPkg/BdsLib: Load initrd next to the Linux kernel to allow to reduce the memory from the Linux command line
The initrd was loaded at the top of the UEFI System Memory. By consequence, if the system memory
was reduced by the Linux command line then the initrd was not part of the system memory.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12994 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-09 15:25:40 +00:00
oliviermartin 995d9676c8 ArmPkg/BdsLib: Added support to start uImage
Detect if there is a u-boot header (by checking the signature) and skip it.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12993 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-09 15:23:58 +00:00
oliviermartin 513aa3497a ArmPlatformPkg/Sec: Replaced hardcode SCR and NSACR values by PCDs to enable CPU and Platform Specific settings
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12637 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:41:20 +00:00
oliviermartin d314d05f40 ArmPkg/ArmPkg.dsc: Add latest drivers to the DSC file to validate that they build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12631 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:35:38 +00:00
oliviermartin 3d4c7abc56 ArmPkg/RvdPeCoffExtraActionLib: Add quotes in RVD command line for RVD under Linux
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12630 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:35:05 +00:00
oliviermartin 7755dfd3a5 ArmPkg/DefaultExceptionHandlerLib: Replace the Print() by SerialOutputWrite() function
Print() is using the Console Output Protocol that cannot be available at the time of the exception.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12629 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:34:14 +00:00
oliviermartin ce4b2bd4c2 ArmPkg/ArmArchTimerLib: Fix TimerLib when the security extension is not implemented
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12628 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:33:29 +00:00
oliviermartin a8151a7074 ArmPkg: Fix GetClusterId() calculation from MpId
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12627 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:32:45 +00:00
oliviermartin 81be6e070f ArmPkg/ArmCpuLib: Fix GCC/XCode builds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12626 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:32:04 +00:00
oliviermartin 793275a858 ArmPlatformPkg: Coding style (minor changes)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12625 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:31:02 +00:00
oliviermartin 89bbce116a Arm Packages: Fix builds for XCODE32 toolchain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12509 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-04 13:58:28 +00:00
oliviermartin 68085d37f8 ArmPkg/CompilerIntrinsicsLib: Reverse the order of the 'ldrb' instructions in __aeabi_uread4
Change __aeabi_uread4 from:
    ldrb    r2, [r0, #1]
    ldrb    r1, [r0]
    (...)
to:
    ldrb    r1, [r0]
    ldrb    r2, [r0, #1]
    (...)

This change is a workaround to handle correctly __aeabi_uread4 on ARM
Versatile Express RTSM.
It should not have any major consequence on the other ARM platforms.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12481 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-29 20:55:10 +00:00
oliviermartin 19a7404aec ArmPkg/BdsLib: Fix incorrect pointer casting
A physical address (64bit) was cast to a 32bit pointer.

Signed-off-by: Eugene Cohen (HP)
Reviewed-by: oliviermartin



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12460 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 18:27:20 +00:00
oliviermartin ae7f81cba3 ArmPkg/CompilerIntrinsicsLib: Fix __aeabi_memclr and __aeabi_memclr4
The passed arguments did not match the __aeabi_memset prototype.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12459 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 18:13:26 +00:00
oliviermartin 886f97c86b ARM Packages: Fixed Build failings/warnings/EDK2 coding convention
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12458 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:42:47 +00:00
oliviermartin 88d4f51dfc ArmPlatformPkg: Add support for ARM RTSM Versatile Express A15x1 and A15x4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12456 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:37:01 +00:00
oliviermartin da9675a241 ArmPkg: Add ARM Architectural Timer support
ARM Architectural Timer support is defined by the ARM Generic Timer Specification.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12455 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:35:16 +00:00
oliviermartin 0c0e7ef451 ArmPkg/ArmLib: Update Arm11 port
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12454 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:33:20 +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 12c5ae238e ArmPlatformPkg: Replaced 'ArmPlatformTrustzoneSupported' by the fixed Pcd gArmTokenSpaceGuid.PcdTrustzoneSupport
This change does not make possible to disable Trustzone from the firmware.
The firmware has to be built for Trustzone support enabled or disabled.

The memory page table are now defined as 'Normal Memory' in any case.
Except for RTSM Device Memory which as to be Secure Device Memory due
to a RTSM bug.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12452 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:29:07 +00:00
oliviermartin 3127615b4d ArmPkg: Introduce ArmCpuLib to abstract ARM Cpu specific initialization (2)
Missed new files.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12450 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:26:03 +00:00
oliviermartin aa84fef5fe ArmPkg: Removed 'ArmV7/ArmV7MPCore*' files
These files were Cortex A9 specific. The A9 specific functions have
moved to ArmCpuLib/ArmCortexA9Lib.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12449 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:24:30 +00:00
oliviermartin 90d6a1bbf1 ArmPkg: Introduce ArmCpuLib to abstract ARM Cpu specific initialization
Every CPUs have their own initialization requirements.
This library allows to allows to abstract these initialization requirements
into the ARM Platform common components.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12448 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:22:09 +00:00
oliviermartin d9e4abb1bb ArmPkg/ArmV7: Move the MMU specific macros into 'Chipset/ArmV7Mmu.h
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12426 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:18:09 +00:00
oliviermartin 1d2bbdbb8d ArmPkg: Removed deprecated 'ArmMPCoreMailBoxLib'
This library has been replaced by ArmMpCoreInfo PPI and HOBs.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12424 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:16:04 +00:00
oliviermartin 44788bae6f ArmPkg: Create MpCoreInfo PPI and HOB to describe CPU Cores on a MPCore platform
These info are:
- ClusterId, CoreId
- MailBox Set/Get/Clear address



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12423 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:14:01 +00:00
oliviermartin 8fc38a3f50 ArmPlatformPkg: Introduce ArmPlatformGlobalVariableLib
This library hides where the 'XIP' Global Variable are located in the memory.
It is expected the Sec/PrePi modules define the Global Variable area through
the GlobalVariable HOB.

The ArmPlatformGlobalVariableLib library allows access to global variables by
their offsets in this region.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12420 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:11:03 +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 2dbcb8f0a3 ArmPlatformPkg: Changed memory model for the stacks
In the previous version, every cores had the same stack size.
To avoid to waste memory with secondary core stacks, the primary core stack
size is now different from the secondary cores stack size.

These are the Stack PCDs and their default values:

gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x10000
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x1000

gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0x1000

gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x10000
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12415 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:05:20 +00:00
oliviermartin 0787bc6184 ArmPlatformPkg: Introduce Primary core macros
On MpCore system, the primary core can now be any core of the system.

To identify the primary core, you can use 'gArmTokenSpaceGuid.PcdArmPrimaryCoreMask'
and 'gArmTokenSpaceGuid.PcdArmPrimaryCore'.
These PCDs by default use the ClusterId and CoreId to identify the core. And the
primary core is defined as the ClusetrId=0 and CoreId=0.

The helper macros are: IS_PRIMARY_CORE(MpId), GET_CORE_ID(MpId), GET_CLUSTER_ID(MpId),
GET_CORE_POS(MpId), PRIMARY_CORE_ID.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12412 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:01:13 +00:00
oliviermartin 55a0d64b88 ArmPkg: Renamed library 'PL390GicLib' into 'ArmGicLib'
This library is the interface for the ARM Generic Interrupt Controller
Architecture Specification.
ARM Platform can use any GIC controller (not necessary PL390 GIC).




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12411 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:59:52 +00:00
oliviermartin 75e4db2d3b ArmPkg/Application/LinuxLoader: Create a Linux Loader EFI application
There are two variants of the Linux Loader EFI application:
- the ATAG version 'LinuxAtagLoader.inf': expect to start an ATAG 'zImage'
in the same directory as the EFI application
- the FDT version 'LinuxFdtLoader.inf': load the FDT blob 'platform.dtb'
and the FDT 'zImage' from the same directory as the EFI application.

When these applications are started without any argument, a menu appears
to the user to create/update a boot entry.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12410 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:57:03 +00:00
oliviermartin d9325c8e4f ArmPkg/BdsLib: Move the code specific to the Atag preparation into a separate file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12409 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:55:54 +00:00
oliviermartin 76d17c3156 ArmPkg/BdsLib: Use two distinct functions to boot Linux either by Atag or Fdt
Separate the BdsBootLinux() function into two functions for Atag and Fdt specific Linux booting
- BdsBootLinuxAtag ()
- BdsBootLinuxFdt ()



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12408 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:54:38 +00:00