]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Documentation/ArmPlatformPkg.txt
49152722d4047ed42b299cc01bcd9514d4b29ff7
[mirror_edk2.git] / ArmPlatformPkg / Documentation / ArmPlatformPkg.txt
1 Porting UEFI to a ARM platform
2 ------------------------------
3 1. Create the new platform directory under ArmPlatformPkg
4
5 2. Create its DSC and FDF files into this new directory. These files can be copied from ArmVExpress-CTA9x4.dsc and ArmVExpress-CTA9x4.fdf; and adapted following the requirement of your platform.
6
7 3. Set up the PCDs required by ArmPlatformPkg in your FDF or DSC files
8
9 PCD Description
10 gArmTokenSpaceGuid.PcdSecureFdBaseAddress : Base address of your Secure Firmware
11 gArmTokenSpaceGuid.PcdSecureFdSize : Size in byte of your Secure Firmware gEmbeddedTokenSpaceGuid.
12 PcdEmbeddedFdBaseAddress : Base Address of your Non-Secure Firmware gEmbeddedTokenSpaceGuid.
13 PcdEmbeddedFdSize : Size in bytes of your Non-Secure Firmware
14 gArmTokenSpaceGuid.PcdL2x0ControllerBase : Base Address of your L2x0 controller
15 gArmTokenSpaceGuid.PcdGicDistributorBase : Base address of the Distributor of your General Interrupt Controller gArmTokenSpaceGuid.
16 PcdGicInterruptInterfaceBase : Base address of the Interface of your General Interrupt Controller gArmVExpressTokenSpaceGuid.
17 PcdCPUCoresSecStackBase : Top of Secure Stack for Secure World gArmVExpressTokenSpaceGuid.
18 PcdCPUCoreSecStackSize : Size of the stack for each of the 4 CPU cores gArmVExpressTokenSpaceGuid.
19 PcdCPUCoresSecMonStackBase : Top of Stack for Monitor World gArmVExpressTokenSpaceGuid.
20 PcdCPUCoreSecMonStackSize : Size of the stack for each of the 4 CPU cores gArmVExpressTokenSpaceGuid.
21 PcdCPUCoresNonSecStackBase : Top of SEC Stack for Normal World gArmVExpressTokenSpaceGuid.
22 PcdCPUCoresNonSecStackSize : Size of the stack for each of the 4 CPU Cores gArmVExpressTokenSpaceGuid.
23 PcdPeiServicePtrAddr : Cached value of PeiServicesTable
24
25 4. Implement 'ArmPlatformLib' for your platform following the interface defined by ArmPlatformPkg\Include\Library\ArmPlatformLib.h.
26
27 Functions to implement:
28
29 VOID ArmPlatformIsMemoryInitialized(VOID);
30 VOID ArmPlatformInitializeBootMemory(VOID);
31 VOID ArmPlatformInitializeSystemMemory(VOID);
32 VOID ArmPlatformBootRemapping(VOID);
33 UINTN ArmPlatformTrustzoneSupported(VOID);
34 VOID ArmPlatformTrustzoneInit(VOID);
35 VOID ArmPlatformGetPeiMemory (
36 OUT UINTN* PeiMemoryBase,
37 OUT UINTN* PeiMemorySize);
38 VOID ArmPlatformGetVirtualMemoryMap (
39 OUT ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap);
40 VOID ArmPlatformGetEfiMemoryMap (
41 OUT ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR** EfiMemoryMap)