X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPlatformPkg%2FDocumentation%2FArmPlatformPkg.txt;fp=ArmPlatformPkg%2FDocumentation%2FArmPlatformPkg.txt;h=49152722d4047ed42b299cc01bcd9514d4b29ff7;hp=0000000000000000000000000000000000000000;hb=1d5d0ae92d95410f20bc6daab7a47e129fb2547a;hpb=fb334ef6c543b1babc9d8a613ad5d1ce6fe536e1 diff --git a/ArmPlatformPkg/Documentation/ArmPlatformPkg.txt b/ArmPlatformPkg/Documentation/ArmPlatformPkg.txt new file mode 100644 index 0000000000..49152722d4 --- /dev/null +++ b/ArmPlatformPkg/Documentation/ArmPlatformPkg.txt @@ -0,0 +1,41 @@ +Porting UEFI to a ARM platform +------------------------------ +1. Create the new platform directory under ArmPlatformPkg + +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. + +3. Set up the PCDs required by ArmPlatformPkg in your FDF or DSC files + +PCD Description +gArmTokenSpaceGuid.PcdSecureFdBaseAddress : Base address of your Secure Firmware +gArmTokenSpaceGuid.PcdSecureFdSize : Size in byte of your Secure Firmware gEmbeddedTokenSpaceGuid. +PcdEmbeddedFdBaseAddress : Base Address of your Non-Secure Firmware gEmbeddedTokenSpaceGuid. +PcdEmbeddedFdSize : Size in bytes of your Non-Secure Firmware +gArmTokenSpaceGuid.PcdL2x0ControllerBase : Base Address of your L2x0 controller +gArmTokenSpaceGuid.PcdGicDistributorBase : Base address of the Distributor of your General Interrupt Controller gArmTokenSpaceGuid. +PcdGicInterruptInterfaceBase : Base address of the Interface of your General Interrupt Controller gArmVExpressTokenSpaceGuid. +PcdCPUCoresSecStackBase : Top of Secure Stack for Secure World gArmVExpressTokenSpaceGuid. +PcdCPUCoreSecStackSize : Size of the stack for each of the 4 CPU cores gArmVExpressTokenSpaceGuid. +PcdCPUCoresSecMonStackBase : Top of Stack for Monitor World gArmVExpressTokenSpaceGuid. +PcdCPUCoreSecMonStackSize : Size of the stack for each of the 4 CPU cores gArmVExpressTokenSpaceGuid. +PcdCPUCoresNonSecStackBase : Top of SEC Stack for Normal World gArmVExpressTokenSpaceGuid. +PcdCPUCoresNonSecStackSize : Size of the stack for each of the 4 CPU Cores gArmVExpressTokenSpaceGuid. +PcdPeiServicePtrAddr : Cached value of PeiServicesTable + +4. Implement 'ArmPlatformLib' for your platform following the interface defined by ArmPlatformPkg\Include\Library\ArmPlatformLib.h. + +Functions to implement: + +VOID ArmPlatformIsMemoryInitialized(VOID); +VOID ArmPlatformInitializeBootMemory(VOID); +VOID ArmPlatformInitializeSystemMemory(VOID); +VOID ArmPlatformBootRemapping(VOID); +UINTN ArmPlatformTrustzoneSupported(VOID); +VOID ArmPlatformTrustzoneInit(VOID); +VOID ArmPlatformGetPeiMemory ( + OUT UINTN* PeiMemoryBase, + OUT UINTN* PeiMemorySize); +VOID ArmPlatformGetVirtualMemoryMap ( + OUT ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap); +VOID ArmPlatformGetEfiMemoryMap ( + OUT ARM_SYSTEM_MEMORY_REGION_DESCRIPTOR** EfiMemoryMap)