Commit Graph

135 Commits

Author SHA1 Message Date
oliviermartin abb4e5f346 ArmPkg/DebugAgentSymbolsOnlyLib: Fix the Firmware Base Address containing the Sec module
The previous version was using the FD base address. But the FV base address
should be used instead.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12138 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 17:00:09 +00:00
oliviermartin e6d572ba03 ArmPkg/ArmDmaLib: Fix coherency issues in DmaLib
Some coherencies issues were existing in the former version of DmaLib.
These issues could have for consequences to not make the MdeModulePkg/Bus/Usb
software stack not work.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12137 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 16:55:05 +00:00
oliviermartin 9201b04422 ArmPkg/DebugAgentSymbolsOnlyLib: Fixed switch() statement - missing 'break'
This library is used to display the loaded address of the 'Sec' at the early
stage of the boot process. The debug command line generated by PeCoffExtraActionLib
can be used for Source Level Debugging at the early stage of the UEFI boot process.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12136 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 16:51:11 +00:00
oliviermartin 43f69915d9 ArmPkg/PL390Gic: Fix RegisterInterruptSource() to be able to unregister an interrupt handler
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12135 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 16:47:18 +00:00
oliviermartin 1d36ec02a5 ArmPkg: Fix ARM builds for XCode32
- Build BeagleBoardPkg, ArmRealViewEb-A8, ArmRealView-A9x2 and ArmVExpress-CTA9x4




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12055 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-28 14:58:52 +00:00
oliviermartin 5f4f1334e3 ArmPkg/SemiHostingSerialPortLib: Return number of written bytes in SerialPortWrite()
It was previously returning '0' written bytes that was interprating by the higher
layers as a failing operation.

Fix proposed by Eugene Cohen (HP)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12026 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-19 15:01:27 +00:00
oliviermartin 44c011619e ArmPkg/UncachedMemoryAllocationLib: Use gDS function to set memory attributes
Calling directly the CPU Architectural protocol does not update the GCD.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12024 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-18 17:40:12 +00:00
oliviermartin 65cd89d008 ArmPkg/DebugAgentSymbolsOnlyLib: Add library to print loaded address of the SEC and PEI_CORE modules
This library that uses the DebugAgentLib interface prints the loaded addresses
of the SEC and PEI_CORE module using PeCoffExtraActionLib.

Note: Because there is no PE loader for these XIP modules, PeCoffExtraActionLib is not invoked.
This library scans the firmware volume to find these modules and calculate their fixup loaded
addresses used to load their symbols in the debugger.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12023 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-18 10:27:12 +00:00
oliviermartin 438311a3bd ArmPkg: Minor coding style changes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11993 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:35:30 +00:00
oliviermartin a6caee65ac ArmPlatformPkg: Remove PcdStandalone from Sec module and Introduce ArmPlatformSecExtraAction()
The PcdStandalone is a PCD ARM Ltd uses to make the difference between a standalone UEFI (boot
from cold boot to Boot Manager without user intervention) and a Debug UEFI firmware (the firmware
engineer has to copy the Normale World image into the DRAM to enable his/her firmware).

By coping the firmware into DRAM in the non standalone version it is much faster than reflashing
the NOR Flash after each build.

ArmPlatformSecExtraAction() function is called just before the Sec module jump to normal world.
The platform firmware can run extra actions at this stage.
The 'ARM Standalone' concept has moved to the implementation of ArmPlatformSecExtraAction() for
the ARM development boards (in ArmPlatformPkg/Library/DebugSecExtraActionLib).


ArmPlatformPkg: Enable DebugAgentLib in Sec and PrePeiCore


ArmPlatformPkg: Fix line endings in some source files

Use CR+LF line endings as defined by the EDK2 coding convention




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11991 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:07:54 +00:00
oliviermartin 1c1e70fa6e ArmPkg/BdsLib: Linux kernel supports either FDT or ATAG
If a FDT blob is passed to the kernel it is required we can load it.
If we fail to load the binary then we must abort the Linux booting
process.


ArmPkg/CpuDxe: Ensure the reset vector passed to the CP15 VBAR register is aligned on the right boundary





git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11968 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-04 10:02:49 +00:00
oliviermartin 6e88239331 ArmPkg/CpuDxe: ZeroMem the gExceptionHandlers[] array
Prevent an IRQ (or any other exceptions) to make a call to an undefined
handler when the interrupt handler has not been registered yet.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11965 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 20:02:14 +00:00
oliviermartin 3723a71a33 ArmPlatformPkg: Fix builds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11964 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 19:51:48 +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 5b491514ec ArmPkg/BdsLib: Check if the performance timer is counting down or up in PrintPerformance()
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11914 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-28 11:41:34 +00:00
oliviermartin 8513037f2c ArmPkg/CpuDxe: Register a callback for the gIdleLoopEventGuid event
This gIdleLoopEventGuid event signals the Cpu that it should go into
the idle state waiting for any events.
CpuSleep() is used in this implementation to make the Cpu wait for
the next interrupt (WFI instruction).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11863 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:35:50 +00:00
oliviermartin 149daa615f ArmPkg/CpuPei: Declare the CPU HOB
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11862 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:33:56 +00:00
oliviermartin fbcd5cea83 ArmPkg/CpuPei: Get the System Memory from the Resource Memory HOB
Declare the system memory provided by the first Resource Memory HOB
as cached memory to the MMU.
All the remaining memory space is declared as Device Memory.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11861 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:32:46 +00:00
oliviermartin d7b6c49b78 ArmPkg/CpuDxe: Change chain of dependency for CpuDxe and PL390Gic
Previously the CPU driver had a dependency on the GIC driver.
But by design is should be the opposite. The CPU driver installs the
CPU protocol that exposes the exception registration function.
And then, the interrupt controller registers its IRQ handler through
this interface.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11860 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:30:51 +00:00
oliviermartin 6bab33c7b6 ArmPlatformPkg/Bds: Fix various bugs in the new BDS
The errors were:
- uncaught returned error
- used of uninitialized variables


ArmPlatformPkg/Bds: Implement the update of MemMap Boot Device



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11830 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-15 19:56:50 +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 1ad14bc86b ArmPlatformPkg: Unify the Secure and Normal FD and FV PCD naming
With this change, we now have these following PCDs values to define the
location of the Secure and Normal firmwares:
- gArmTokenSpaceGuid.PcdSecureFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdSecureFv(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFv(BaseAddress|Size)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11806 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:06:59 +00:00
oliviermartin a355a3654f ArmPkg/BdsLib: Upgrade the library to use natively the Device Path
The previous version was using the string representation of the Device Path.
This new version takes as paramater the binary representation of the Device Path

It also tries to detect which kind of device support it refers by using the remaining
part of the Device Path after it has been loaded by gBS->ConnectController()

Lots of bug have been fixed as well in this new version.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11799 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:56:30 +00:00
oliviermartin f501f5d1b5 ArmPkg/PL35xSmc: Split the SMC initialization in multiple Chip Select initialization functions
Some ArmVExpress-based tiles do not map all the ArmVExpress Chips into their memory map.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11797 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:26:42 +00:00
oliviermartin 9e2b420ee9 ArmPkg: Fix coding style to follow EDK2 coding convention
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11789 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:15:55 +00:00
oliviermartin 838725abd7 ArmPkg/PL180MciDxe: Replace VenHw Device Path GUID by EFI_CALLER_ID_GUID
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11788 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:14:51 +00:00
oliviermartin 0530bfe360 ArmPkg: Implement PeiServicesTablePointerLib using TPIDRURW register
This implementation use the Tpidrurw software context register to
store the PEI Services Table Pointer.

The author of this patch is Eugene Cohen (HP).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11750 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:43:12 +00:00
oliviermartin f0a7a8ce23 ArmPkg/CompilerIntrinsincsLib: Add div and mullu functions to ARMGCC
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11742 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:28:40 +00:00
oliviermartin e748229889 ArmPkg/PeCoffExtraActionLib: Add the return carriage character after printing the debugger command lines
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11741 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:26:44 +00:00
oliviermartin 4705b7da4b ArmPkg: Add comments to ArmEnableVFP
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11740 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:25:51 +00:00
oliviermartin f0fef790ff ArmPkg: Introduce ArmSetLowVectors/ArmSetHighVectors functions
These functions set/clear the SCTLR.V bit that controls the location
of the Vector Table.
This commit also forces the SCTLR.V to be clear when the VBAR register
is set.

Note: The original fix has been proposed by Eugene Cohen (HP).




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11739 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:25:01 +00:00
oliviermartin e7f7105ba0 ArmPkg: Renamed PL354SmcSecLib into PL354SmcLib
There is no requirement to initialize the SMC in secure world.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11738 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:23:19 +00:00
oliviermartin 5a4b8c6a55 ArmPkg: Fix the default value of PcdCpuVectorBaseAddress
The High Vector Table base address is 0xFFFF0000 (was 0xFFF00000).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11737 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:22:32 +00:00
oliviermartin 8be5d4d65e ArmPkg/PL34xDmc: Remove magic values in PL310L2Cache and clean the code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11736 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:21:30 +00:00
oliviermartin 51d191aad5 ArmPkg/PL310L2Cache: Remove magic values in PL310L2Cache and clean the code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11735 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:20:30 +00:00
oliviermartin 63adfb1129 Armkg: Fix EDK2 coding style
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11734 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:18:48 +00:00
oliviermartin eeec69c5dc ArmPkg: Introduce the PCD PcdDebuggerExceptionSupport
The Exception Vector can be set before installing the CPU DXE driver to add
debugger support at the early stage of the firmware initialization.
If no one has touched the exception vector prior to the CPU DXE then the Vector
might contain non zero data.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11733 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:18:00 +00:00
oliviermartin ce73d60afb EmbeddedPkg: Move Universal/MmcDxe from ArmPkg to EmbeddedPkg
The MmcDxe is not ARM architecture specific.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11725 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:07:31 +00:00
oliviermartin 2cf57c92af ArmPkg/PL180Mci: Fix build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11598 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-27 17:07:34 +00:00
oliviermartin 50c5f18731 ArmPkg/PL180MciDxe: Use the new flag MMC_CMD_NO_CRC_RESPONSE
This new MMC flag defines if a CRC is attached to MMC Response.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11587 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-26 16:54:05 +00:00
oliviermartin 2b826e7350 ArmPkg/MmcDxe: Introduce MMC_CMD_NO_CRC_RESPONSE flag
Some MMC Responses do not have a CRC field in their packets.
This flag defines if the reponse to a MMC command skips the CRC field.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11586 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-26 16:44:46 +00:00
andrewfish 8ea50d2e4a Fix Xcode compile bug. It looks like these two arguments had an extra level of indirection that was in error. Good thing about extra compilers is we catch this kind of thing for almost free.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11491 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 15:31:36 +00:00
oliviermartin 2e3650d97d ArmPkg/Arm9Lib: Assert if memory region size is TT_DESCRIPTOR_SECTION_SIZE aligned
The current code does not support memory region size that is not
aligned on TT_DESCRIPTOR_SECTION_SIZE boundary.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11490 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 13:06:48 +00:00
oliviermartin 709497d198 ArmPkg: Fix ArmPkg.dsc and ArmVExpress-CTA9x4.dsc builds
- There were some missing and duplicate files in ArmPkg.dsc
- PL301Axi.h was missing to build ArmVExpress-CTA9x4 build


Note: PL34xDmc has been temporary removed from ArmPkg just
the time to fix its dependency on ArmPlatform.h



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11488 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:55:48 +00:00
oliviermartin 643ec0e7c1 ArmPkg: Fix InternalMemCopyMem()
This function crashed when regions overalapped. The condition to
optimize the copy of overlapped regions was not correct.
    

ArmPkg: Add comments to InternalMemCopyMem()
    
These comments explain the flow of this assembly function.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11486 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:26:20 +00:00
oliviermartin 61afd6a9e2 ArmPkg/ArmDisassemblerLib: Fix register list
'r1' register was missing from the list.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11485 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:24:44 +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
oliviermartin cf3a77a02a ArmPkg/BdsLib: Fix GetSystemMemoryResources()
The function was not correctly merging the system memory chunks.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11479 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:17:37 +00:00
oliviermartin bad880b172 ArmPkg/BdsLib: Prevent application to hang the platform using watchdog
Before to start an image we start the watchdog. And it stops when the
application returns.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11478 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:16:28 +00:00
oliviermartin 262a9b0444 ArmPlatformPkg: Rename gEmbeddedTokenSpaceGuid.PcdEmbeddedFd* into gArmTokenSpaceGuid.PcdNormalFd*
This renaming is for matching the namespace with the secure firmware
gArmTokenSpaceGuid.PcdSecureFdBaseAddress/Size.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11475 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:11:12 +00:00