Rely on AutoGen for declaring ProcessLibraryConstructorList().
Build-tested with:
  build -a AARCH64 -b DEBUG \
    -m ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf \
    -p ArmPlatformPkg/ArmPlatformPkg.dsc -t GCC5
  build -a AARCH64 -b DEBUG \
    -m ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf \
    -p ArmPlatformPkg/ArmPlatformPkg.dsc -t GCC5
  build -a AARCH64 -b DEBUG \
    -m ArmPlatformPkg/PrePi/PeiMPCore.inf \
    -p ArmPlatformPkg/ArmPlatformPkg.dsc -t GCC5
  build -a AARCH64 -b DEBUG \
    -m ArmPlatformPkg/PrePi/PeiUniCore.inf \
    -p ArmPlatformPkg/ArmPlatformPkg.dsc -t GCC5
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=990
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20240305113843.68812-6-lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Main file supporting the transition to PEI Core in Normal World for Versatile Express
 | |
| 
 | |
|   Copyright (c) 2011 - 2022, ARM Limited. All rights reserved.
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __PREPEICORE_H_
 | |
| #define __PREPEICORE_H_
 | |
| 
 | |
| #include <Library/ArmLib.h>
 | |
| #include <Library/ArmPlatformLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/IoLib.h>
 | |
| #include <Library/PcdLib.h>
 | |
| 
 | |
| #include <PiPei.h>
 | |
| #include <Ppi/TemporaryRamSupport.h>
 | |
| 
 | |
| VOID
 | |
| CreatePpiList (
 | |
|   OUT UINTN                   *PpiListSize,
 | |
|   OUT EFI_PEI_PPI_DESCRIPTOR  **PpiList
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| PrePeiCoreTemporaryRamSupport (
 | |
|   IN CONST EFI_PEI_SERVICES  **PeiServices,
 | |
|   IN EFI_PHYSICAL_ADDRESS    TemporaryMemoryBase,
 | |
|   IN EFI_PHYSICAL_ADDRESS    PermanentMemoryBase,
 | |
|   IN UINTN                   CopySize
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| SecSwitchStack (
 | |
|   INTN  StackDelta
 | |
|   );
 | |
| 
 | |
| // Vector Table for Pei Phase
 | |
| VOID
 | |
| PeiVectorTable (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| EFIAPI
 | |
| PrimaryMain (
 | |
|   IN  EFI_PEI_CORE_ENTRY_POINT  PeiCoreEntryPoint
 | |
|   );
 | |
| 
 | |
| /*
 | |
|  * This is the main function for secondary cores. They loop around until a non Null value is written to
 | |
|  * SYS_FLAGS register.The SYS_FLAGS register is platform specific.
 | |
|  * Note:The secondary cores, while executing secondary_main, assumes that:
 | |
|  *      : SGI 0 is configured as Non-secure interrupt
 | |
|  *      : Priority Mask is configured to allow SGI 0
 | |
|  *      : Interrupt Distributor and CPU interfaces are enabled
 | |
|  *
 | |
|  */
 | |
| VOID
 | |
| EFIAPI
 | |
| SecondaryMain (
 | |
|   IN UINTN  MpId
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| PeiCommonExceptionEntry (
 | |
|   IN UINT32  Entry,
 | |
|   IN UINTN   LR
 | |
|   );
 | |
| 
 | |
| #endif
 |