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