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
This commit is contained in:
oliviermartin 2011-03-31 12:11:12 +00:00
parent 2637d1ef35
commit 262a9b0444
20 changed files with 52 additions and 50 deletions

View File

@ -83,11 +83,17 @@
gArmTokenSpaceGuid.PcdGicNumInterrupts|96|UINT32|0x00000023 gArmTokenSpaceGuid.PcdGicNumInterrupts|96|UINT32|0x00000023
# #
# ARM Secure SEC PCDs # ARM Secure Firmware PCDs
# #
gArmTokenSpaceGuid.PcdSecureFdBaseAddress|0|UINT32|0x00000015 gArmTokenSpaceGuid.PcdSecureFdBaseAddress|0|UINT32|0x00000015
gArmTokenSpaceGuid.PcdSecureFdSize|0|UINT32|0x00000016 gArmTokenSpaceGuid.PcdSecureFdSize|0|UINT32|0x00000016
#
# ARM Normal (or Non Secure) Firmware PCDs
#
gArmTokenSpaceGuid.PcdNormalFdBaseAddress|0|UINT32|0x0000002B
gArmTokenSpaceGuid.PcdNormalFdSize|0|UINT32|0x0000002C
# #
# ARM MPCore MailBox PCDs # ARM MPCore MailBox PCDs
# #

View File

@ -323,8 +323,8 @@
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrAddr|0x48020004 # Pei Services Ptr just above stack gArmPlatformTokenSpaceGuid.PcdPeiServicePtrAddr|0x48020004 # Pei Services Ptr just above stack
# Non Sec UEFI Firmware: These two PCDs must match PcdFlashFvMainBase/PcdFlashFvMainSize # Non Sec UEFI Firmware: These two PCDs must match PcdFlashFvMainBase/PcdFlashFvMainSize
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress|0x40050000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase gArmTokenSpaceGuid.PcdNormalFdBaseAddress|0x40050000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize|0x00100000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize gArmTokenSpaceGuid.PcdNormalFdSize|0x00100000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms

View File

@ -327,8 +327,8 @@
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrAddr|0x48020004 # Pei Services Ptr just above stack gArmPlatformTokenSpaceGuid.PcdPeiServicePtrAddr|0x48020004 # Pei Services Ptr just above stack
# Non Sec UEFI Firmware: These two PCDs must match PcdFlashFvMainBase/PcdFlashFvMainSize # Non Sec UEFI Firmware: These two PCDs must match PcdFlashFvMainBase/PcdFlashFvMainSize
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress|0x40050000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase gArmTokenSpaceGuid.PcdNormalFdBaseAddress|0x40050000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize|0x00100000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize gArmTokenSpaceGuid.PcdNormalFdSize|0x00100000 # Must be equal to gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms

View File

@ -42,5 +42,5 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize

View File

@ -179,14 +179,14 @@ VOID ArmPlatformGetEfiMemoryMap (
// Chunk between the EFI Memory region and the firmware // Chunk between the EFI Memory region and the firmware
EfiMemoryTable[++Index].ResourceAttribute = Attributes; EfiMemoryTable[++Index].ResourceAttribute = Attributes;
EfiMemoryTable[Index].PhysicalStart = MemoryBase; EfiMemoryTable[Index].PhysicalStart = MemoryBase;
EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdEmbeddedFdBaseAddress) - MemoryBase; EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdNormalFdBaseAddress) - MemoryBase;
// Chunk reserved by the firmware in DRAM // Chunk reserved by the firmware in DRAM
EfiMemoryTable[++Index].ResourceAttribute = Attributes & (~EFI_RESOURCE_ATTRIBUTE_PRESENT); EfiMemoryTable[++Index].ResourceAttribute = Attributes & (~EFI_RESOURCE_ATTRIBUTE_PRESENT);
EfiMemoryTable[Index].PhysicalStart = PcdGet32(PcdEmbeddedFdBaseAddress); EfiMemoryTable[Index].PhysicalStart = PcdGet32(PcdNormalFdBaseAddress);
EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdEmbeddedFdSize); EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdNormalFdSize);
MemoryBase = PcdGet32(PcdEmbeddedFdBaseAddress) + PcdGet32(PcdEmbeddedFdSize); MemoryBase = PcdGet32(PcdNormalFdBaseAddress) + PcdGet32(PcdNormalFdSize);
} }
// We allocate all the remain memory as untested system memory // We allocate all the remain memory as untested system memory

View File

@ -42,5 +42,5 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize

View File

@ -55,11 +55,11 @@ FV = FVMAIN_SEC
[FD.ArmVExpress_EFI] [FD.ArmVExpress_EFI]
!if $(EDK2_ARMVE_STANDALONE) == 1 !if $(EDK2_ARMVE_STANDALONE) == 1
BaseAddress = 0x45000000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress # The base address of the Firmware in NOR Flash. BaseAddress = 0x45000000|gArmTokenSpaceGuid.PcdNormalFdBaseAddress # The base address of the Firmware in NOR Flash.
!else !else
BaseAddress = 0x80000000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress # The base address of the Firmware in remapped DRAM. BaseAddress = 0x80000000|gArmTokenSpaceGuid.PcdNormalFdBaseAddress # The base address of the Firmware in remapped DRAM.
!endif !endif
Size = 0x00200000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize # The size in bytes of the FLASH Device Size = 0x00200000|gArmTokenSpaceGuid.PcdNormalFdSize # The size in bytes of the FLASH Device
ErasePolarity = 1 ErasePolarity = 1
# This one is tricky, it must be: BlockSize * NumBlocks = Size # This one is tricky, it must be: BlockSize * NumBlocks = Size

View File

@ -45,5 +45,5 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize

View File

@ -46,5 +46,5 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize

View File

@ -189,14 +189,14 @@ VOID ArmPlatformGetEfiMemoryMap (
// Chunk between the EFI Memory region and the firmware // Chunk between the EFI Memory region and the firmware
EfiMemoryTable[++Index].ResourceAttribute = Attributes; EfiMemoryTable[++Index].ResourceAttribute = Attributes;
EfiMemoryTable[Index].PhysicalStart = MemoryBase; EfiMemoryTable[Index].PhysicalStart = MemoryBase;
EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdEmbeddedFdBaseAddress) - MemoryBase; EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdNormalFdBaseAddress) - MemoryBase;
// Chunk reserved by the firmware in DRAM // Chunk reserved by the firmware in DRAM
EfiMemoryTable[++Index].ResourceAttribute = Attributes & (~EFI_RESOURCE_ATTRIBUTE_PRESENT); EfiMemoryTable[++Index].ResourceAttribute = Attributes & (~EFI_RESOURCE_ATTRIBUTE_PRESENT);
EfiMemoryTable[Index].PhysicalStart = PcdGet32(PcdEmbeddedFdBaseAddress); EfiMemoryTable[Index].PhysicalStart = PcdGet32(PcdNormalFdBaseAddress);
EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdEmbeddedFdSize); EfiMemoryTable[Index].NumberOfBytes = PcdGet32(PcdNormalFdSize);
MemoryBase = PcdGet32(PcdEmbeddedFdBaseAddress) + PcdGet32(PcdEmbeddedFdSize); MemoryBase = PcdGet32(PcdNormalFdBaseAddress) + PcdGet32(PcdNormalFdSize);
} }
// We allocate all the remain memory as untested system memory // We allocate all the remain memory as untested system memory

View File

@ -9,8 +9,8 @@ Porting UEFI to a ARM platform
PCD Description PCD Description
gArmTokenSpaceGuid.PcdSecureFdBaseAddress : Base address of your Secure Firmware gArmTokenSpaceGuid.PcdSecureFdBaseAddress : Base address of your Secure Firmware
gArmTokenSpaceGuid.PcdSecureFdSize : Size in byte of your Secure Firmware gEmbeddedTokenSpaceGuid. gArmTokenSpaceGuid.PcdSecureFdSize : Size in byte of your Secure Firmware gEmbeddedTokenSpaceGuid.
PcdEmbeddedFdBaseAddress : Base Address of your Non-Secure Firmware gEmbeddedTokenSpaceGuid. gArmTokenSpaceGuid.PcdNormalFdBaseAddress : Base Address of your Non-Secure Firmware gEmbeddedTokenSpaceGuid.
PcdEmbeddedFdSize : Size in bytes of your Non-Secure Firmware gArmTokenSpaceGuid.PcdNormalFdSize : Size in bytes of your Non-Secure Firmware
gArmTokenSpaceGuid.PcdL2x0ControllerBase : Base Address of your L2x0 controller gArmTokenSpaceGuid.PcdL2x0ControllerBase : Base Address of your L2x0 controller
gArmTokenSpaceGuid.PcdGicDistributorBase : Base address of the Distributor of your General Interrupt Controller gArmTokenSpaceGuid. 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. PcdGicInterruptInterfaceBase : Base address of the Interface of your General Interrupt Controller gArmVExpressTokenSpaceGuid.

View File

@ -33,6 +33,7 @@
[Packages] [Packages]
MdePkg/MdePkg.dec MdePkg/MdePkg.dec
EmbeddedPkg/EmbeddedPkg.dec EmbeddedPkg/EmbeddedPkg.dec
ArmPkg/ArmPkg.dec
[LibraryClasses] [LibraryClasses]
PeimEntryPoint PeimEntryPoint
@ -44,8 +45,8 @@
gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED gEfiPeiBootInRecoveryModePpiGuid # PPI SOMETIMES_PRODUCED
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress #The base address of the FLASH Device. gArmTokenSpaceGuid.PcdNormalFdBaseAddress # The base address of the FLASH Device.
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize #The size in bytes of the FLASH Device gArmTokenSpaceGuid.PcdNormalFdSize # The size in bytes of the FLASH Device
gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase
gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize

View File

@ -77,8 +77,8 @@ VOID primary_main (
// Note also: HOBs (pei temp ram) MUST be above stack // Note also: HOBs (pei temp ram) MUST be above stack
// //
SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF); SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF);
SecCoreData.BootFirmwareVolumeBase = (VOID *)(UINTN)PcdGet32 (PcdEmbeddedFdBaseAddress); SecCoreData.BootFirmwareVolumeBase = (VOID *)(UINTN)PcdGet32 (PcdNormalFdBaseAddress);
SecCoreData.BootFirmwareVolumeSize = PcdGet32 (PcdEmbeddedFdSize); SecCoreData.BootFirmwareVolumeSize = PcdGet32 (PcdNormalFdSize);
SecCoreData.TemporaryRamBase = (VOID *)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackBase); // We consider we run on the primary core (and so we use the first stack) SecCoreData.TemporaryRamBase = (VOID *)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackBase); // We consider we run on the primary core (and so we use the first stack)
SecCoreData.TemporaryRamSize = (UINTN)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackSize); SecCoreData.TemporaryRamSize = (UINTN)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackSize);
SecCoreData.PeiTemporaryRamBase = (VOID *)((UINTN)(SecCoreData.TemporaryRamBase) + (SecCoreData.TemporaryRamSize / 2)); SecCoreData.PeiTemporaryRamBase = (VOID *)((UINTN)(SecCoreData.TemporaryRamBase) + (SecCoreData.TemporaryRamSize / 2));

View File

@ -39,8 +39,8 @@ VOID primary_main (
// Note also: HOBs (pei temp ram) MUST be above stack // Note also: HOBs (pei temp ram) MUST be above stack
// //
SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF); SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF);
SecCoreData.BootFirmwareVolumeBase = (VOID *)(UINTN)PcdGet32 (PcdEmbeddedFdBaseAddress); SecCoreData.BootFirmwareVolumeBase = (VOID *)(UINTN)PcdGet32 (PcdNormalFdBaseAddress);
SecCoreData.BootFirmwareVolumeSize = PcdGet32 (PcdEmbeddedFdSize); SecCoreData.BootFirmwareVolumeSize = PcdGet32 (PcdNormalFdSize);
SecCoreData.TemporaryRamBase = (VOID *)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackBase); // We consider we run on the primary core (and so we use the first stack) SecCoreData.TemporaryRamBase = (VOID *)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackBase); // We consider we run on the primary core (and so we use the first stack)
SecCoreData.TemporaryRamSize = (UINTN)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackSize); SecCoreData.TemporaryRamSize = (UINTN)(UINTN)PcdGet32 (PcdCPUCoresNonSecStackSize);
SecCoreData.PeiTemporaryRamBase = (VOID *)((UINTN)(SecCoreData.TemporaryRamBase) + (SecCoreData.TemporaryRamSize / 2)); SecCoreData.PeiTemporaryRamBase = (VOID *)((UINTN)(SecCoreData.TemporaryRamBase) + (SecCoreData.TemporaryRamSize / 2));

View File

@ -48,7 +48,7 @@ _SetupStack:
# lr points to area in reset vector block containing PEI core address. lr needs to # lr points to area in reset vector block containing PEI core address. lr needs to
# be saved from the beginning as the _ModuleEntryPoint could call helper functions # be saved from the beginning as the _ModuleEntryPoint could call helper functions
# that will overwrite 'lr' # that will overwrite 'lr'
LoadConstantToReg (FixedPcdGet32(PcdEmbeddedFdBaseAddress), r2) LoadConstantToReg (FixedPcdGet32(PcdNormalFdBaseAddress), r2)
add r2, r2, #4 add r2, r2, #4
ldr r1, [r2] ldr r1, [r2]
@ -56,10 +56,9 @@ _SetupStack:
# ensure we're jumping to FV version of the code (not boot remapped alias) # ensure we're jumping to FV version of the code (not boot remapped alias)
ldr r2, StartupAddr ldr r2, StartupAddr
# jump to SEC C code # jump to PrePeiCore C code
# r0 = core_id # r0 = core_id
# r1 = pei_core_address # r1 = pei_core_address
blx r2 blx r2
#end of the file
.end .end

View File

@ -26,8 +26,6 @@
StartupAddr DCD CEntryPoint StartupAddr DCD CEntryPoint
SCC_SYS_SW EQU 0x0004
_ModuleEntryPoint _ModuleEntryPoint
// Identify CPU ID // Identify CPU ID
mrc p15, 0, r0, c0, c0, 5 mrc p15, 0, r0, c0, c0, 5
@ -45,7 +43,7 @@ _SetupStack
mov sp, r3 mov sp, r3
// The PEI Core Entry Point has been computed by GenFV and stored in the second entry of the Reset Vector // The PEI Core Entry Point has been computed by GenFV and stored in the second entry of the Reset Vector
LoadConstantToReg (FixedPcdGet32(PcdEmbeddedFdBaseAddress), r2) LoadConstantToReg (FixedPcdGet32(PcdNormalFdBaseAddress), r2)
add r2, r2, #4 add r2, r2, #4
ldr r1, [r2] ldr r1, [r2]
@ -53,7 +51,7 @@ _SetupStack
// ensure we're jumping to FV version of the code (not boot remapped alias) // ensure we're jumping to FV version of the code (not boot remapped alias)
ldr r2, StartupAddr ldr r2, StartupAddr
// jump to SEC C code // jump to PrePeiCore C code
// r0 = core_id // r0 = core_id
// r1 = pei_core_address // r1 = pei_core_address
blx r2 blx r2

View File

@ -33,7 +33,6 @@
[Packages] [Packages]
MdePkg/MdePkg.dec MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec MdeModulePkg/MdeModulePkg.dec
EmbeddedPkg/EmbeddedPkg.dec
ArmPkg/ArmPkg.dec ArmPkg/ArmPkg.dec
ArmPlatformPkg/ArmPlatformPkg.dec ArmPlatformPkg/ArmPlatformPkg.dec
@ -54,8 +53,8 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize

View File

@ -33,7 +33,6 @@
[Packages] [Packages]
MdePkg/MdePkg.dec MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec MdeModulePkg/MdeModulePkg.dec
EmbeddedPkg/EmbeddedPkg.dec
ArmPkg/ArmPkg.dec ArmPkg/ArmPkg.dec
ArmPlatformPkg/ArmPlatformPkg.dec ArmPlatformPkg/ArmPlatformPkg.dec
@ -52,8 +51,8 @@
gArmPlatformTokenSpaceGuid.PcdStandalone gArmPlatformTokenSpaceGuid.PcdStandalone
[FixedPcd] [FixedPcd]
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize gArmTokenSpaceGuid.PcdNormalFdSize
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize

View File

@ -195,7 +195,7 @@ CEntryPoint (
// If ArmVe has not been built as Standalone then we need to patch the DRAM to add an infinite loop at the start address // If ArmVe has not been built as Standalone then we need to patch the DRAM to add an infinite loop at the start address
if (FeaturePcdGet(PcdStandalone) == FALSE) { if (FeaturePcdGet(PcdStandalone) == FALSE) {
if (CoreId == 0) { if (CoreId == 0) {
UINTN* StartAddress = (UINTN*)PcdGet32(PcdEmbeddedFdBaseAddress); UINTN* StartAddress = (UINTN*)PcdGet32(PcdNormalFdBaseAddress);
// Patch the DRAM to make an infinite loop at the start address // Patch the DRAM to make an infinite loop at the start address
*StartAddress = 0xEAFFFFFE; // opcode for while(1) *StartAddress = 0xEAFFFFFE; // opcode for while(1)
@ -204,7 +204,7 @@ CEntryPoint (
SerialPortWrite ((UINT8 *) Buffer, CharCount); SerialPortWrite ((UINT8 *) Buffer, CharCount);
// To enter into Non Secure state, we need to make a return from exception // To enter into Non Secure state, we need to make a return from exception
return_from_exception(PcdGet32(PcdEmbeddedFdBaseAddress)); return_from_exception(PcdGet32(PcdNormalFdBaseAddress));
} else { } else {
// When the primary core is stopped by the hardware debugger to copy the firmware // When the primary core is stopped by the hardware debugger to copy the firmware
// into DRAM. The secondary cores are still running. As soon as the first bytes of // into DRAM. The secondary cores are still running. As soon as the first bytes of
@ -218,7 +218,7 @@ CEntryPoint (
} }
} else { } else {
// To enter into Non Secure state, we need to make a return from exception // To enter into Non Secure state, we need to make a return from exception
return_from_exception(PcdGet32(PcdEmbeddedFdBaseAddress)); return_from_exception(PcdGet32(PcdNormalFdBaseAddress));
} }
//-------------------- Non Secure Mode --------------------- //-------------------- Non Secure Mode ---------------------
@ -232,7 +232,7 @@ VOID NonSecureWaitForFirmware() {
VOID (*secondary_start)(VOID); VOID (*secondary_start)(VOID);
// The secondary cores will execute the fimrware once wake from WFI. // The secondary cores will execute the fimrware once wake from WFI.
secondary_start = (VOID (*)())PcdGet32(PcdEmbeddedFdBaseAddress); secondary_start = (VOID (*)())PcdGet32(PcdNormalFdBaseAddress);
ArmCallWFI(); ArmCallWFI();

View File

@ -54,7 +54,7 @@
gArmTokenSpaceGuid.PcdVFPEnabled gArmTokenSpaceGuid.PcdVFPEnabled
gArmPlatformTokenSpaceGuid.PcdMPCoreSupport gArmPlatformTokenSpaceGuid.PcdMPCoreSupport
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress gArmTokenSpaceGuid.PcdNormalFdBaseAddress
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecStackSize gArmPlatformTokenSpaceGuid.PcdCPUCoreSecStackSize