Arm Packages: Fixed coding style/Line endings to follow EDK2 coding convention
Arm Packages: Fixed mispelling Arm Packages: Reduced warnings all over the code git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12407 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
5439ccda50
commit
11c20f4e06
@ -35,7 +35,7 @@
|
|||||||
ArmLib|Include/Library/ArmLib.h
|
ArmLib|Include/Library/ArmLib.h
|
||||||
SemihostLib|Include/Library/Semihosting.h
|
SemihostLib|Include/Library/Semihosting.h
|
||||||
UncachedMemoryAllocationLib|Include/Library/UncachedMemoryAllocationLib.h
|
UncachedMemoryAllocationLib|Include/Library/UncachedMemoryAllocationLib.h
|
||||||
DefaultExceptioHandlerLib|Include/Library/DefaultExceptioHandlerLib.h
|
DefaultExceptionHandlerLib|Include/Library/DefaultExceptionHandlerLib.h
|
||||||
ArmDisassemblerLib|Include/Library/ArmDisassemblerLib.h
|
ArmDisassemblerLib|Include/Library/ArmDisassemblerLib.h
|
||||||
|
|
||||||
[Guids.common]
|
[Guids.common]
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
||||||
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
DefaultExceptioHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
||||||
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
||||||
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
||||||
|
@ -52,14 +52,12 @@
|
|||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
CacheMaintenanceLib
|
CacheMaintenanceLib
|
||||||
UefiDriverEntryPoint
|
CpuLib
|
||||||
ArmLib
|
DebugLib
|
||||||
|
DefaultExceptionHandlerLib
|
||||||
DxeServicesTableLib
|
DxeServicesTableLib
|
||||||
PeCoffGetEntryPointLib
|
PeCoffGetEntryPointLib
|
||||||
UefiLib
|
UefiLib
|
||||||
CpuLib
|
|
||||||
DefaultExceptioHandlerLib
|
|
||||||
DebugLib
|
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiCpuArchProtocolGuid
|
gEfiCpuArchProtocolGuid
|
||||||
|
@ -543,49 +543,49 @@ UpdatePageEntries (
|
|||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// obtain page table base
|
// Obtain page table base
|
||||||
FirstLevelTable = (ARM_FIRST_LEVEL_DESCRIPTOR *)ArmGetTTBR0BaseAddress ();
|
FirstLevelTable = (ARM_FIRST_LEVEL_DESCRIPTOR *)ArmGetTTBR0BaseAddress ();
|
||||||
|
|
||||||
// calculate number of 4KB page table entries to change
|
// Calculate number of 4KB page table entries to change
|
||||||
NumPageEntries = Length / TT_DESCRIPTOR_PAGE_SIZE;
|
NumPageEntries = Length / TT_DESCRIPTOR_PAGE_SIZE;
|
||||||
|
|
||||||
// iterate for the number of 4KB pages to change
|
// Iterate for the number of 4KB pages to change
|
||||||
Offset = 0;
|
Offset = 0;
|
||||||
for(p=0; p<NumPageEntries; p++) {
|
for(p = 0; p < NumPageEntries; p++) {
|
||||||
// calculate index into first level translation table for page table value
|
// Calculate index into first level translation table for page table value
|
||||||
|
|
||||||
FirstLevelIdx = TT_DESCRIPTOR_SECTION_BASE_ADDRESS(BaseAddress + Offset) >> TT_DESCRIPTOR_SECTION_BASE_SHIFT;
|
FirstLevelIdx = TT_DESCRIPTOR_SECTION_BASE_ADDRESS(BaseAddress + Offset) >> TT_DESCRIPTOR_SECTION_BASE_SHIFT;
|
||||||
ASSERT (FirstLevelIdx < TRANSLATION_TABLE_SECTION_COUNT);
|
ASSERT (FirstLevelIdx < TRANSLATION_TABLE_SECTION_COUNT);
|
||||||
|
|
||||||
// read the descriptor from the first level page table
|
// Read the descriptor from the first level page table
|
||||||
Descriptor = FirstLevelTable[FirstLevelIdx];
|
Descriptor = FirstLevelTable[FirstLevelIdx];
|
||||||
|
|
||||||
// does this descriptor need to be converted from section entry to 4K pages?
|
// Does this descriptor need to be converted from section entry to 4K pages?
|
||||||
if (!TT_DESCRIPTOR_SECTION_TYPE_IS_PAGE_TABLE(Descriptor)) {
|
if (!TT_DESCRIPTOR_SECTION_TYPE_IS_PAGE_TABLE(Descriptor)) {
|
||||||
Status = ConvertSectionToPages (FirstLevelIdx << TT_DESCRIPTOR_SECTION_BASE_SHIFT);
|
Status = ConvertSectionToPages (FirstLevelIdx << TT_DESCRIPTOR_SECTION_BASE_SHIFT);
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
// exit for loop
|
// Exit for loop
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// re-read descriptor
|
// Re-read descriptor
|
||||||
Descriptor = FirstLevelTable[FirstLevelIdx];
|
Descriptor = FirstLevelTable[FirstLevelIdx];
|
||||||
}
|
}
|
||||||
|
|
||||||
// obtain page table base address
|
// Obtain page table base address
|
||||||
PageTable = (ARM_PAGE_TABLE_ENTRY *)TT_DESCRIPTOR_PAGE_BASE_ADDRESS(Descriptor);
|
PageTable = (ARM_PAGE_TABLE_ENTRY *)TT_DESCRIPTOR_PAGE_BASE_ADDRESS(Descriptor);
|
||||||
|
|
||||||
// calculate index into the page table
|
// Calculate index into the page table
|
||||||
PageTableIndex = ((BaseAddress + Offset) & TT_DESCRIPTOR_PAGE_INDEX_MASK) >> TT_DESCRIPTOR_PAGE_BASE_SHIFT;
|
PageTableIndex = ((BaseAddress + Offset) & TT_DESCRIPTOR_PAGE_INDEX_MASK) >> TT_DESCRIPTOR_PAGE_BASE_SHIFT;
|
||||||
ASSERT (PageTableIndex < TRANSLATION_TABLE_PAGE_COUNT);
|
ASSERT (PageTableIndex < TRANSLATION_TABLE_PAGE_COUNT);
|
||||||
|
|
||||||
// get the entry
|
// Get the entry
|
||||||
CurrentPageTableEntry = PageTable[PageTableIndex];
|
CurrentPageTableEntry = PageTable[PageTableIndex];
|
||||||
|
|
||||||
// mask off appropriate fields
|
// Mask off appropriate fields
|
||||||
PageTableEntry = CurrentPageTableEntry & ~EntryMask;
|
PageTableEntry = CurrentPageTableEntry & ~EntryMask;
|
||||||
|
|
||||||
// mask in new attributes and/or permissions
|
// Mask in new attributes and/or permissions
|
||||||
PageTableEntry |= EntryValue;
|
PageTableEntry |= EntryValue;
|
||||||
|
|
||||||
if (VirtualMask != 0) {
|
if (VirtualMask != 0) {
|
||||||
@ -609,7 +609,7 @@ UpdatePageEntries (
|
|||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
Offset += TT_DESCRIPTOR_PAGE_SIZE;
|
Offset += TT_DESCRIPTOR_PAGE_SIZE;
|
||||||
|
|
||||||
} // end first level translation table loop
|
} // End first level translation table loop
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
@ -815,23 +815,24 @@ SetMemoryAttributes (
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if(((BaseAddress & 0xFFFFF) == 0) && ((Length & 0xFFFFF) == 0)) {
|
if(((BaseAddress & 0xFFFFF) == 0) && ((Length & 0xFFFFF) == 0)) {
|
||||||
// is the base and length a multiple of 1 MB?
|
// Is the base and length a multiple of 1 MB?
|
||||||
DEBUG ((EFI_D_PAGE, "SetMemoryAttributes(): MMU section 0x%x length 0x%x to %lx\n", (UINTN)BaseAddress, (UINTN)Length, Attributes));
|
DEBUG ((EFI_D_PAGE, "SetMemoryAttributes(): MMU section 0x%x length 0x%x to %lx\n", (UINTN)BaseAddress, (UINTN)Length, Attributes));
|
||||||
Status = UpdateSectionEntries (BaseAddress, Length, Attributes, VirtualMask);
|
Status = UpdateSectionEntries (BaseAddress, Length, Attributes, VirtualMask);
|
||||||
} else {
|
} else {
|
||||||
// base and/or length is not a multiple of 1 MB
|
// Base and/or length is not a multiple of 1 MB
|
||||||
DEBUG ((EFI_D_PAGE, "SetMemoryAttributes(): MMU page 0x%x length 0x%x to %lx\n", (UINTN)BaseAddress, (UINTN)Length, Attributes));
|
DEBUG ((EFI_D_PAGE, "SetMemoryAttributes(): MMU page 0x%x length 0x%x to %lx\n", (UINTN)BaseAddress, (UINTN)Length, Attributes));
|
||||||
Status = UpdatePageEntries (BaseAddress, Length, Attributes, VirtualMask);
|
Status = UpdatePageEntries (BaseAddress, Length, Attributes, VirtualMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
// flush d-cache so descriptors make it back to uncached memory for subsequent table walks
|
// Flush d-cache so descriptors make it back to uncached memory for subsequent table walks
|
||||||
// flush and invalidate pages
|
// flush and invalidate pages
|
||||||
|
//TODO: Do we really need to invalidate the caches everytime we change the memory attributes ?
|
||||||
ArmCleanInvalidateDataCache ();
|
ArmCleanInvalidateDataCache ();
|
||||||
|
|
||||||
ArmInvalidateInstructionCache ();
|
ArmInvalidateInstructionCache ();
|
||||||
|
|
||||||
// invalidate all TLB entries so changes are synced
|
// Invalidate all TLB entries so changes are synced
|
||||||
ArmInvalidateTlb ();
|
ArmInvalidateTlb ();
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
#ifndef __ARM_V7_H__
|
#ifndef __ARM_V7_H__
|
||||||
#define __ARM_V7_H__
|
#define __ARM_V7_H__
|
||||||
|
|
||||||
|
#include <Chipset/ArmV7Mmu.h>
|
||||||
|
|
||||||
// Domain Access Control Register
|
// Domain Access Control Register
|
||||||
#define DOMAIN_ACCESS_CONTROL_MASK(a) (3UL << (2 * (a)))
|
#define DOMAIN_ACCESS_CONTROL_MASK(a) (3UL << (2 * (a)))
|
||||||
#define DOMAIN_ACCESS_CONTROL_NONE(a) (0UL << (2 * (a)))
|
#define DOMAIN_ACCESS_CONTROL_NONE(a) (0UL << (2 * (a)))
|
||||||
@ -22,207 +24,6 @@
|
|||||||
#define DOMAIN_ACCESS_CONTROL_RESERVED(a) (2UL << (2 * (a)))
|
#define DOMAIN_ACCESS_CONTROL_RESERVED(a) (2UL << (2 * (a)))
|
||||||
#define DOMAIN_ACCESS_CONTROL_MANAGER(a) (3UL << (2 * (a)))
|
#define DOMAIN_ACCESS_CONTROL_MANAGER(a) (3UL << (2 * (a)))
|
||||||
|
|
||||||
#define TTBR_NOT_OUTER_SHAREABLE BIT5
|
|
||||||
#define TTBR_RGN_OUTER_NON_CACHEABLE 0
|
|
||||||
#define TTBR_RGN_OUTER_WRITE_BACK_ALLOC BIT3
|
|
||||||
#define TTBR_RGN_OUTER_WRITE_THROUGH BIT4
|
|
||||||
#define TTBR_RGN_OUTER_WRITE_BACK_NO_ALLOC (BIT3|BIT4)
|
|
||||||
#define TTBR_SHAREABLE BIT1
|
|
||||||
#define TTBR_NON_SHAREABLE 0
|
|
||||||
#define TTBR_INNER_CACHEABLE BIT0
|
|
||||||
#define TTBR_NON_INNER_CACHEABLE BIT0
|
|
||||||
#define TTBR_RGN_INNER_NON_CACHEABLE 0
|
|
||||||
#define TTBR_RGN_INNER_WRITE_BACK_ALLOC BIT6
|
|
||||||
#define TTBR_RGN_INNER_WRITE_THROUGH BIT0
|
|
||||||
#define TTBR_RGN_INNER_WRITE_BACK_NO_ALLOC (BIT0|BIT6)
|
|
||||||
|
|
||||||
#define TTBR_WRITE_THROUGH_NO_ALLOC ( TTBR_RGN_OUTER_WRITE_BACK_ALLOC | TTBR_RGN_INNER_WRITE_BACK_ALLOC )
|
|
||||||
#define TTBR_WRITE_BACK_NO_ALLOC ( TTBR_RGN_OUTER_WRITE_BACK_NO_ALLOC | TTBR_RGN_INNER_WRITE_BACK_NO_ALLOC )
|
|
||||||
#define TTBR_NON_CACHEABLE ( TTBR_RGN_OUTER_NON_CACHEABLE | TTBR_RGN_INNER_NON_CACHEABLE )
|
|
||||||
#define TTBR_WRITE_BACK_ALLOC ( TTBR_RGN_OUTER_WRITE_BACK_ALLOC | TTBR_RGN_INNER_WRITE_BACK_ALLOC )
|
|
||||||
|
|
||||||
|
|
||||||
#define TRANSLATION_TABLE_SECTION_COUNT 4096
|
|
||||||
#define TRANSLATION_TABLE_SECTION_SIZE (sizeof(UINT32) * TRANSLATION_TABLE_SECTION_COUNT)
|
|
||||||
#define TRANSLATION_TABLE_SECTION_ALIGNMENT (sizeof(UINT32) * TRANSLATION_TABLE_SECTION_COUNT)
|
|
||||||
#define TRANSLATION_TABLE_SECTION_ALIGNMENT_MASK (TRANSLATION_TABLE_SECTION_ALIGNMENT - 1)
|
|
||||||
|
|
||||||
#define TRANSLATION_TABLE_PAGE_COUNT 256
|
|
||||||
#define TRANSLATION_TABLE_PAGE_SIZE (sizeof(UINT32) * TRANSLATION_TABLE_PAGE_COUNT)
|
|
||||||
#define TRANSLATION_TABLE_PAGE_ALIGNMENT (sizeof(UINT32) * TRANSLATION_TABLE_PAGE_COUNT)
|
|
||||||
#define TRANSLATION_TABLE_PAGE_ALIGNMENT_MASK (TRANSLATION_TABLE_PAGE_ALIGNMENT - 1)
|
|
||||||
|
|
||||||
#define TRANSLATION_TABLE_ENTRY_FOR_VIRTUAL_ADDRESS(table, address) ((UINT32 *)(table) + (((UINTN)(address)) >> 20))
|
|
||||||
|
|
||||||
// Translation table descriptor types
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_MASK ((1UL << 18) | (3UL << 0))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_FAULT (0UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_PAGE_TABLE (1UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_SECTION ((0UL << 18) | (2UL << 0))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_SUPERSECTION ((1UL << 18) | (2UL << 0))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_TYPE_IS_PAGE_TABLE(Desc) (((Desc) & 3UL) == TT_DESCRIPTOR_SECTION_TYPE_PAGE_TABLE)
|
|
||||||
|
|
||||||
// Translation table descriptor types
|
|
||||||
#define TT_DESCRIPTOR_PAGE_TYPE_MASK (3UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_TYPE_FAULT (0UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_TYPE_PAGE (2UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_TYPE_PAGE_XN (3UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_TYPE_LARGEPAGE (1UL << 0)
|
|
||||||
|
|
||||||
// Section descriptor definitions
|
|
||||||
#define TT_DESCRIPTOR_SECTION_SIZE (0x00100000)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NS_MASK (1UL << 19)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NS_SECURE (0UL << 19)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NS_NON_SECURE (1UL << 19)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NG_MASK (1UL << 17)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NG_GLOBAL (0UL << 17)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_NG_LOCAL (1UL << 17)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_NG_MASK (1UL << 11)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_NG_GLOBAL (0UL << 11)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_NG_LOCAL (1UL << 11)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_S_MASK (1UL << 16)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_S_NOT_SHARED (0UL << 16)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_S_SHARED (1UL << 16)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_S_MASK (1UL << 10)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_S_NOT_SHARED (0UL << 10)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_S_SHARED (1UL << 10)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_MASK ((1UL << 15) | (3UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_NO_NO ((0UL << 15) | (0UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_RW_NO ((0UL << 15) | (1UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_RW_RO ((0UL << 15) | (2UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_RW_RW ((0UL << 15) | (3UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_RO_NO ((1UL << 15) | (1UL << 10))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_AP_RO_RO ((1UL << 15) | (3UL << 10))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_MASK ((1UL << 9) | (3UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_NO_NO ((0UL << 9) | (0UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_RW_NO ((0UL << 9) | (1UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_RW_RO ((0UL << 9) | (2UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_RW_RW ((0UL << 9) | (3UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_RO_NO ((1UL << 9) | (1UL << 4))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_AP_RO_RO ((1UL << 9) | (3UL << 4))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_XN_MASK (0x1UL << 4)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_XN_MASK (0x1UL << 0)
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_XN_MASK (0x1UL << 15)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK ((3UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHEABLE_MASK (1UL << 3)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_STRONGLY_ORDERED ((0UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE ((0UL << 12) | (0UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC ((0UL << 12) | (1UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_NO_ALLOC ((0UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE ((1UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC ((1UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_SHAREABLE_DEVICE ((2UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_SIZE (0x00001000)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_MASK ((3UL << 6) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHEABLE_MASK (1UL << 3)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_STRONGLY_ORDERED ((0UL << 6) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_SHAREABLE_DEVICE ((0UL << 6) | (0UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC ((0UL << 6) | (1UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_BACK_NO_ALLOC ((0UL << 6) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_NON_CACHEABLE ((1UL << 6) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_BACK_ALLOC ((1UL << 6) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_PAGE_CACHE_POLICY_NON_SHAREABLE_DEVICE ((2UL << 6) | (0UL << 3) | (0UL << 2))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK ((3UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_STRONGLY_ORDERED ((0UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_SHAREABLE_DEVICE ((0UL << 12) | (0UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC ((0UL << 12) | (1UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_WRITE_BACK_NO_ALLOC ((0UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_NON_CACHEABLE ((1UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_WRITE_BACK_ALLOC ((1UL << 12) | (1UL << 3) | (1UL << 2))
|
|
||||||
#define TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_NON_SHAREABLE_DEVICE ((2UL << 12) | (0UL << 3) | (0UL << 2))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_PAGE_AP(Desc) ((((Desc) & TT_DESCRIPTOR_SECTION_AP_MASK) >> 6) & TT_DESCRIPTOR_PAGE_AP_MASK)
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_PAGE_NG(Desc) ((((Desc) & TT_DESCRIPTOR_SECTION_NG_MASK) >> 6) & TT_DESCRIPTOR_PAGE_NG_MASK)
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_PAGE_S(Desc) ((((Desc) & TT_DESCRIPTOR_SECTION_S_MASK) >> 6) & TT_DESCRIPTOR_PAGE_S_MASK)
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_PAGE_XN(Desc,IsLargePage) ((IsLargePage)? \
|
|
||||||
((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) >> 4) & TT_DESCRIPTOR_LARGEPAGE_XN_MASK): \
|
|
||||||
((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) << 11) & TT_DESCRIPTOR_PAGE_XN_MASK))
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_PAGE_CACHE_POLICY(Desc,IsLargePage) (IsLargePage? \
|
|
||||||
(((Desc) & TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK) & TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK): \
|
|
||||||
(((((Desc) & (0x3 << 12)) >> 6) | (Desc & (0x3 << 2)))))
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_SECTION_AP(Desc) ((((Desc) & TT_DESCRIPTOR_PAGE_AP_MASK) << 6) & TT_DESCRIPTOR_SECTION_AP_MASK)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_CONVERT_TO_SECTION_CACHE_POLICY(Desc,IsLargePage) (IsLargePage? \
|
|
||||||
(((Desc) & TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK) & TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK): \
|
|
||||||
(((((Desc) & (0x3 << 6)) << 6) | (Desc & (0x3 << 2)))))
|
|
||||||
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_DOMAIN_MASK (0x0FUL << 5)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_DOMAIN(a) (((a) & 0x0FUL) << 5)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_BASE_ADDRESS_MASK (0xFFF00000)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_PAGETABLE_ADDRESS_MASK (0xFFFFFC00)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_BASE_ADDRESS(a) ((a) & TT_DESCRIPTOR_SECTION_BASE_ADDRESS_MASK)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_BASE_SHIFT 20
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_BASE_ADDRESS_MASK (0xFFFFF000)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_INDEX_MASK (0x000FF000)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_BASE_ADDRESS(a) ((a) & TT_DESCRIPTOR_PAGE_BASE_ADDRESS_MASK)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_BASE_SHIFT 12
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_SECTION_WRITE_BACK(Secure) (TT_DESCRIPTOR_SECTION_TYPE_SECTION | \
|
|
||||||
((Secure) ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE ) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_SECTION_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_SECTION_DOMAIN(0) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(Secure) (TT_DESCRIPTOR_SECTION_TYPE_SECTION | \
|
|
||||||
((Secure) ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE ) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_SECTION_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_SECTION_DOMAIN(0) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_DEVICE(Secure) (TT_DESCRIPTOR_SECTION_TYPE_SECTION | \
|
|
||||||
((Secure) ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE ) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_SECTION_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_SECTION_DOMAIN(0) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE)
|
|
||||||
#define TT_DESCRIPTOR_SECTION_UNCACHED(Secure) (TT_DESCRIPTOR_SECTION_TYPE_SECTION | \
|
|
||||||
((Secure) ? TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE ) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_SECTION_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_SECTION_DOMAIN(0) | \
|
|
||||||
TT_DESCRIPTOR_SECTION_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)
|
|
||||||
|
|
||||||
#define TT_DESCRIPTOR_PAGE_WRITE_BACK (TT_DESCRIPTOR_PAGE_TYPE_PAGE | \
|
|
||||||
TT_DESCRIPTOR_PAGE_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_PAGE_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_PAGE_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_BACK_ALLOC)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_WRITE_THROUGH (TT_DESCRIPTOR_PAGE_TYPE_PAGE | \
|
|
||||||
TT_DESCRIPTOR_PAGE_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_PAGE_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_PAGE_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_DEVICE (TT_DESCRIPTOR_PAGE_TYPE_PAGE | \
|
|
||||||
TT_DESCRIPTOR_PAGE_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_PAGE_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_PAGE_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_PAGE_CACHE_POLICY_SHAREABLE_DEVICE)
|
|
||||||
#define TT_DESCRIPTOR_PAGE_UNCACHED (TT_DESCRIPTOR_PAGE_TYPE_PAGE | \
|
|
||||||
TT_DESCRIPTOR_PAGE_NG_GLOBAL | \
|
|
||||||
TT_DESCRIPTOR_PAGE_S_NOT_SHARED | \
|
|
||||||
TT_DESCRIPTOR_PAGE_AP_RW_RW | \
|
|
||||||
TT_DESCRIPTOR_PAGE_CACHE_POLICY_NON_CACHEABLE)
|
|
||||||
|
|
||||||
// Cortex A9 feature bit definitions
|
// Cortex A9 feature bit definitions
|
||||||
#define A9_FEATURE_PARITY (1<<9)
|
#define A9_FEATURE_PARITY (1<<9)
|
||||||
#define A9_FEATURE_AOW (1<<8)
|
#define A9_FEATURE_AOW (1<<8)
|
||||||
@ -245,7 +46,7 @@
|
|||||||
#define SMP_GIC_CPUIF_BASE 0x100
|
#define SMP_GIC_CPUIF_BASE 0x100
|
||||||
#define SMP_GIC_DIST_BASE 0x1000
|
#define SMP_GIC_DIST_BASE 0x1000
|
||||||
|
|
||||||
// CPACR - Coprocessor Access Control Register defintions
|
// CPACR - Coprocessor Access Control Register definitions
|
||||||
#define CPACR_CP_DENIED(cp) 0x00
|
#define CPACR_CP_DENIED(cp) 0x00
|
||||||
#define CPACR_CP_PRIV(cp) ((0x1 << ((cp) << 1)) & 0x0FFFFFFF)
|
#define CPACR_CP_PRIV(cp) ((0x1 << ((cp) << 1)) & 0x0FFFFFFF)
|
||||||
#define CPACR_CP_FULL(cp) ((0x3 << ((cp) << 1)) & 0x0FFFFFFF)
|
#define CPACR_CP_FULL(cp) ((0x3 << ((cp) << 1)) & 0x0FFFFFFF)
|
||||||
@ -253,7 +54,7 @@
|
|||||||
#define CPACR_D32DIS (1 << 30)
|
#define CPACR_D32DIS (1 << 30)
|
||||||
#define CPACR_CP_FULL_ACCESS 0x0FFFFFFF
|
#define CPACR_CP_FULL_ACCESS 0x0FFFFFFF
|
||||||
|
|
||||||
// NSACR - Non-Secure Access Control Register defintions
|
// NSACR - Non-Secure Access Control Register definitions
|
||||||
#define NSACR_CP(cp) ((1 << (cp)) & 0x3FFF)
|
#define NSACR_CP(cp) ((1 << (cp)) & 0x3FFF)
|
||||||
#define NSACR_NSD32DIS (1 << 14)
|
#define NSACR_NSD32DIS (1 << 14)
|
||||||
#define NSACR_NSASEDIS (1 << 15)
|
#define NSACR_NSASEDIS (1 << 15)
|
||||||
@ -262,7 +63,7 @@
|
|||||||
#define NSACR_NS_SMP (1 << 18)
|
#define NSACR_NS_SMP (1 << 18)
|
||||||
#define NSACR_RFR (1 << 19)
|
#define NSACR_RFR (1 << 19)
|
||||||
|
|
||||||
// SCR - Secure Configuration Register defintions
|
// SCR - Secure Configuration Register definitions
|
||||||
#define SCR_NS (1 << 0)
|
#define SCR_NS (1 << 0)
|
||||||
#define SCR_IRQ (1 << 1)
|
#define SCR_IRQ (1 << 1)
|
||||||
#define SCR_FIQ (1 << 2)
|
#define SCR_FIQ (1 << 2)
|
||||||
@ -330,7 +131,6 @@ ArmInvalidScu (
|
|||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ArmGetScuBaseAddress (
|
ArmGetScuBaseAddress (
|
||||||
@ -367,7 +167,6 @@ ArmSetupSmpNonSecure (
|
|||||||
IN UINTN CoreId
|
IN UINTN CoreId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ArmReadCbar (
|
ArmReadCbar (
|
||||||
@ -387,14 +186,12 @@ ArmReadMpidr (
|
|||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ArmReadTpidrurw (
|
ArmReadTpidrurw (
|
||||||
VOID
|
VOID
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ArmWriteTpidrurw (
|
ArmWriteTpidrurw (
|
||||||
|
@ -26,12 +26,22 @@
|
|||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZPCSetDecProtBits(UINTN tzpc_base, UINTN tzpc_id, UINTN bits);
|
EFI_STATUS
|
||||||
|
TZPCSetDecProtBits (
|
||||||
|
IN UINTN TzpcBase,
|
||||||
|
IN UINTN TzpcId,
|
||||||
|
IN UINTN Bits
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZPCClearDecProtBits(UINTN tzpc_base, UINTN tzpc_id, UINTN bits);
|
EFI_STATUS
|
||||||
|
TZPCClearDecProtBits (
|
||||||
|
IN UINTN TzpcBase,
|
||||||
|
IN UINTN TzpcId,
|
||||||
|
IN UINTN Bits
|
||||||
|
);
|
||||||
|
|
||||||
// Setup TZ Address Space Controller
|
// Setup TZ Address Space Controller
|
||||||
#define TZASC_REGION_ENABLED 1
|
#define TZASC_REGION_ENABLED 1
|
||||||
@ -64,6 +74,15 @@ EFI_STATUS TZPCClearDecProtBits(UINTN tzpc_base, UINTN tzpc_id, UINTN bits);
|
|||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZASCSetRegion(UINTN tzasc_base, UINTN region_id, UINTN enabled, UINTN low_address, UINTN high_address, UINTN size, UINTN security);
|
EFI_STATUS
|
||||||
|
TZASCSetRegion (
|
||||||
|
IN INTN TzascBase,
|
||||||
|
IN UINTN RegionId,
|
||||||
|
IN UINTN Enabled,
|
||||||
|
IN UINTN LowAddress,
|
||||||
|
IN UINTN HighAddress,
|
||||||
|
IN UINTN Size,
|
||||||
|
IN UINTN Security
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -29,51 +29,77 @@
|
|||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZPCSetDecProtBits(UINTN TzpcBase, UINTN TzpcId, UINTN Bits) {
|
EFI_STATUS
|
||||||
if (TzpcId > TZPC_DECPROT_MAX) {
|
TZPCSetDecProtBits (
|
||||||
return EFI_INVALID_PARAMETER;
|
IN UINTN TzpcBase,
|
||||||
}
|
IN UINTN TzpcId,
|
||||||
|
IN UINTN Bits
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (TzpcId > TZPC_DECPROT_MAX) {
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
MmioWrite32((UINTN)TzpcBase + TZPC_DECPROT0_SET_REG + (TzpcId * 0x0C), Bits);
|
MmioWrite32 ((UINTN)TzpcBase + TZPC_DECPROT0_SET_REG + (TzpcId * 0x0C), Bits);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZPCClearDecProtBits(UINTN TzpcBase, UINTN TzpcId, UINTN Bits) {
|
EFI_STATUS
|
||||||
if (TzpcId> TZPC_DECPROT_MAX) {
|
TZPCClearDecProtBits (
|
||||||
return EFI_INVALID_PARAMETER;
|
IN UINTN TzpcBase,
|
||||||
}
|
IN UINTN TzpcId,
|
||||||
|
IN UINTN Bits
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (TzpcId> TZPC_DECPROT_MAX) {
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
MmioWrite32((UINTN)TzpcBase + TZPC_DECPROT0_CLEAR_REG + (TzpcId * 0x0C), Bits);
|
MmioWrite32 ((UINTN)TzpcBase + TZPC_DECPROT0_CLEAR_REG + (TzpcId * 0x0C), Bits);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
UINT32 TZASCGetNumRegions(UINTN TzascBase) {
|
UINT32
|
||||||
return (MmioRead32((UINTN)TzascBase + TZASC_CONFIGURATION_REG) & 0xF);
|
TZASCGetNumRegions (
|
||||||
|
IN UINTN TzascBase
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return (MmioRead32 ((UINTN)TzascBase + TZASC_CONFIGURATION_REG) & 0xF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
FIXME: Need documentation
|
FIXME: Need documentation
|
||||||
**/
|
**/
|
||||||
EFI_STATUS TZASCSetRegion(UINTN TzascBase, UINTN RegionId, UINTN Enabled, UINTN LowAddress, UINTN HighAddress, UINTN Size, UINTN Security) {
|
EFI_STATUS
|
||||||
UINT32* Region;
|
TZASCSetRegion (
|
||||||
|
IN INTN TzascBase,
|
||||||
|
IN UINTN RegionId,
|
||||||
|
IN UINTN Enabled,
|
||||||
|
IN UINTN LowAddress,
|
||||||
|
IN UINTN HighAddress,
|
||||||
|
IN UINTN Size,
|
||||||
|
IN UINTN Security
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINT32* Region;
|
||||||
|
|
||||||
if (RegionId > TZASCGetNumRegions(TzascBase)) {
|
if (RegionId > TZASCGetNumRegions(TzascBase)) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
Region = (UINT32*)((UINTN)TzascBase + TZASC_REGIONS_REG + (RegionId * 0x10));
|
Region = (UINT32*)((UINTN)TzascBase + TZASC_REGIONS_REG + (RegionId * 0x10));
|
||||||
|
|
||||||
MmioWrite32((UINTN)(Region), LowAddress&0xFFFF8000);
|
MmioWrite32((UINTN)(Region), LowAddress&0xFFFF8000);
|
||||||
MmioWrite32((UINTN)(Region+1), HighAddress);
|
MmioWrite32((UINTN)(Region+1), HighAddress);
|
||||||
MmioWrite32((UINTN)(Region+2), ((Security & 0xF) <<28) | ((Size & 0x3F) << 1) | (Enabled & 0x1));
|
MmioWrite32((UINTN)(Region+2), ((Security & 0xF) <<28) | ((Size & 0x3F) << 1) | (Enabled & 0x1));
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,6 @@ typedef struct {
|
|||||||
CHAR8 Char;
|
CHAR8 Char;
|
||||||
} CPSR_CHAR;
|
} CPSR_CHAR;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Use the EFI Debug Image Table to lookup the FaultAddress and find which PE/COFF image
|
Use the EFI Debug Image Table to lookup the FaultAddress and find which PE/COFF image
|
||||||
@ -61,7 +59,6 @@ GetImageName (
|
|||||||
UINTN Entry;
|
UINTN Entry;
|
||||||
CHAR8 *Address;
|
CHAR8 *Address;
|
||||||
|
|
||||||
|
|
||||||
DebugTable = gDebugImageTableHeader->EfiDebugImageInfoTable;
|
DebugTable = gDebugImageTableHeader->EfiDebugImageInfoTable;
|
||||||
if (DebugTable == NULL) {
|
if (DebugTable == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -102,9 +99,9 @@ CpsrString (
|
|||||||
OUT CHAR8 *ReturnStr
|
OUT CHAR8 *ReturnStr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
CHAR8 *Str = ReturnStr;
|
CHAR8* Str;
|
||||||
CHAR8 *ModeStr;
|
CHAR8* ModeStr;
|
||||||
CPSR_CHAR CpsrChar[] = {
|
CPSR_CHAR CpsrChar[] = {
|
||||||
{ 31, 'n' },
|
{ 31, 'n' },
|
||||||
{ 30, 'z' },
|
{ 30, 'z' },
|
||||||
@ -119,6 +116,8 @@ CpsrString (
|
|||||||
{ 0, '?' }
|
{ 0, '?' }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Str = ReturnStr;
|
||||||
|
|
||||||
for (Index = 0; CpsrChar[Index].BIT != 0; Index++, Str++) {
|
for (Index = 0; CpsrChar[Index].BIT != 0; Index++, Str++) {
|
||||||
*Str = CpsrChar[Index].Char;
|
*Str = CpsrChar[Index].Char;
|
||||||
if ((Cpsr & (1 << CpsrChar[Index].BIT)) != 0) {
|
if ((Cpsr & (1 << CpsrChar[Index].BIT)) != 0) {
|
||||||
@ -194,8 +193,7 @@ FaultStatusToString (
|
|||||||
return FaultSource;
|
return FaultSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STATIC CHAR8 *gExceptionTypeString[] = {
|
||||||
CHAR8 *gExceptionTypeString[] = {
|
|
||||||
"Reset",
|
"Reset",
|
||||||
"Undefined OpCode",
|
"Undefined OpCode",
|
||||||
"SWI",
|
"SWI",
|
||||||
@ -206,7 +204,6 @@ CHAR8 *gExceptionTypeString[] = {
|
|||||||
"FIQ"
|
"FIQ"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This is the default action to take on an unexpected exception
|
This is the default action to take on an unexpected exception
|
||||||
|
|
||||||
@ -228,7 +225,7 @@ DefaultExceptionHandler (
|
|||||||
BOOLEAN DfsrWrite;
|
BOOLEAN DfsrWrite;
|
||||||
UINT32 PcAdjust = 0;
|
UINT32 PcAdjust = 0;
|
||||||
|
|
||||||
DEBUG ((EFI_D_ERROR, "\n%a Exception PC at 0x%08x CPSR 0x%08x ", gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR));
|
Print(L"\n%a Exception PC at 0x%08x CPSR 0x%08x ", gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
CHAR8 *Pdb;
|
CHAR8 *Pdb;
|
||||||
UINT32 ImageBase;
|
UINT32 ImageBase;
|
||||||
@ -249,10 +246,10 @@ DefaultExceptionHandler (
|
|||||||
|
|
||||||
//
|
//
|
||||||
// A PE/COFF image loads its headers into memory so the headers are
|
// A PE/COFF image loads its headers into memory so the headers are
|
||||||
// included in the linked addressess. ELF and Mach-O images do not
|
// included in the linked addresses. ELF and Mach-O images do not
|
||||||
// include the headers so the first byte of the image is usually
|
// include the headers so the first byte of the image is usually
|
||||||
// text (code). If you look at link maps from ELF or Mach-O images
|
// text (code). If you look at link maps from ELF or Mach-O images
|
||||||
// you need to subtact out the size of the PE/COFF header to get
|
// you need to subtract out the size of the PE/COFF header to get
|
||||||
// get the offset that matches the link map.
|
// get the offset that matches the link map.
|
||||||
//
|
//
|
||||||
DEBUG ((EFI_D_ERROR, "loaded at 0x%08x (PE/COFF offset) 0x%x (ELF or Mach-O offset) 0x%x", ImageBase, Offset, Offset - PeCoffSizeOfHeader));
|
DEBUG ((EFI_D_ERROR, "loaded at 0x%08x (PE/COFF offset) 0x%x (ELF or Mach-O offset) 0x%x", ImageBase, Offset, Offset - PeCoffSizeOfHeader));
|
||||||
|
@ -89,7 +89,7 @@ DeCygwinPathIfNeeded (
|
|||||||
Ptr[9] = Ptr[10];
|
Ptr[9] = Ptr[10];
|
||||||
Ptr[10] = ':';
|
Ptr[10] = ':';
|
||||||
|
|
||||||
// switch path seperators
|
// switch path separators
|
||||||
for (Index = 11; Index < Len; Index++) {
|
for (Index = 11; Index < Len; Index++) {
|
||||||
if (Ptr[Index] == '/') {
|
if (Ptr[Index] == '/') {
|
||||||
Ptr[Index] = '\\' ;
|
Ptr[Index] = '\\' ;
|
||||||
|
@ -1,134 +1,132 @@
|
|||||||
#/** @file
|
#/** @file
|
||||||
# Arm Versatile Express package.
|
#
|
||||||
#
|
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||||
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
#
|
||||||
#
|
# This program and the accompanying materials
|
||||||
# This program and the accompanying materials
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
#
|
||||||
#
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
#
|
||||||
#
|
#**/
|
||||||
#**/
|
|
||||||
|
[Defines]
|
||||||
[Defines]
|
DEC_SPECIFICATION = 0x00010005
|
||||||
DEC_SPECIFICATION = 0x00010005
|
PACKAGE_NAME = ArmPlatformPkg
|
||||||
PACKAGE_NAME = ArmPlatformPkg
|
PACKAGE_GUID = 3308e0a0-1d94-11e0-915c-0002a5d5c51b
|
||||||
PACKAGE_GUID = 3308e0a0-1d94-11e0-915c-0002a5d5c51b
|
PACKAGE_VERSION = 0.1
|
||||||
PACKAGE_VERSION = 0.1
|
|
||||||
|
################################################################################
|
||||||
################################################################################
|
#
|
||||||
#
|
# Include Section - list of Include Paths that are provided by this package.
|
||||||
# Include Section - list of Include Paths that are provided by this package.
|
# Comments are used for Keywords and Module Types.
|
||||||
# Comments are used for Keywords and Module Types.
|
#
|
||||||
#
|
# Supported Module Types:
|
||||||
# Supported Module Types:
|
# BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION
|
||||||
# BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION
|
#
|
||||||
#
|
################################################################################
|
||||||
################################################################################
|
[Includes.common]
|
||||||
[Includes.common]
|
Include # Root include for the package
|
||||||
Include # Root include for the package
|
|
||||||
|
[Guids.common]
|
||||||
[Guids.common]
|
gArmPlatformTokenSpaceGuid = { 0x9c0aaed4, 0x74c5, 0x4043, { 0xb4, 0x17, 0xa3, 0x22, 0x38, 0x14, 0xce, 0x76 } }
|
||||||
gArmPlatformTokenSpaceGuid = { 0x9c0aaed4, 0x74c5, 0x4043, { 0xb4, 0x17, 0xa3, 0x22, 0x38, 0x14, 0xce, 0x76 } }
|
#
|
||||||
#
|
# Following Guid must match FILE_GUID in MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||||
# Following Guid must match FILE_GUID in MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
#
|
||||||
#
|
gVariableRuntimeDxeFileGuid = { 0xcbd2e4d5, 0x7068, 0x4ff5, { 0xb4, 0x62, 0x98, 0x22, 0xb4, 0xad, 0x8d, 0x60 } }
|
||||||
gVariableRuntimeDxeFileGuid = { 0xcbd2e4d5, 0x7068, 0x4ff5, { 0xb4, 0x62, 0x98, 0x22, 0xb4, 0xad, 0x8d, 0x60 } }
|
|
||||||
|
[PcdsFeatureFlag.common]
|
||||||
[PcdsFeatureFlag.common]
|
# Set this PCD to TRUE to map NORFlash at 0x0. FALSE means the DRAM is mapped at 0x0.
|
||||||
# Set this PCD to TRUE to map NORFlash at 0x0. FALSE means the DRAM is mapped at 0x0.
|
gArmPlatformTokenSpaceGuid.PcdNorFlashRemapping|FALSE|BOOLEAN|0x00000012
|
||||||
gArmPlatformTokenSpaceGuid.PcdNorFlashRemapping|FALSE|BOOLEAN|0x00000012
|
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdStandalone|TRUE|BOOLEAN|0x00000001
|
||||||
gArmPlatformTokenSpaceGuid.PcdStandalone|TRUE|BOOLEAN|0x00000001
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|FALSE|BOOLEAN|0x00000002
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|FALSE|BOOLEAN|0x00000002
|
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|FALSE|BOOLEAN|0x00000004
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|FALSE|BOOLEAN|0x00000004
|
|
||||||
|
[PcdsFixedAtBuild.common]
|
||||||
|
# These PCDs should be FeaturePcds. But we used these PCDs as an '#if' in an ASM file.
|
||||||
[PcdsFixedAtBuild.common]
|
# Using a FeaturePcd make a '(BOOLEAN) casting for its value which is not understood by the preprocessor.
|
||||||
# These PCDs should be FeaturePcds. But we used these PCDs as an '#if' in an ASM file.
|
gArmPlatformTokenSpaceGuid.PcdMPCoreSupport|0|UINT32|0x00000003
|
||||||
# Using a FeaturePcd make a '(BOOLEAN) casting for its value which is not understood by the preprocessor.
|
gArmPlatformTokenSpaceGuid.PcdMPCoreMaxCores|1|UINT32|0x0000002D
|
||||||
gArmPlatformTokenSpaceGuid.PcdMPCoreSupport|0|UINT32|0x00000003
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdMPCoreMaxCores|1|UINT32|0x0000002D
|
# Stack for CPU Cores in Secure Mode
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0|UINT32|0x00000005
|
||||||
# Stack for CPU Cores in Secure Mode
|
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecStackSize|0|UINT32|0x00000006
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0|UINT32|0x00000005
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecStackSize|0|UINT32|0x00000006
|
# Stack for CPU Cores in Secure Monitor Mode
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0|UINT32|0x00000007
|
||||||
# Stack for CPU Cores in Secure Monitor Mode
|
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0|UINT32|0x00000008
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0|UINT32|0x00000007
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0|UINT32|0x00000008
|
# Stack for CPU Cores in Non Secure Mode
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase|0|UINT32|0x00000009
|
||||||
# Stack for CPU Cores in Non Secure Mode
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize|0|UINT32|0x0000000A
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase|0|UINT32|0x00000009
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize|0|UINT32|0x0000000A
|
# Size of the region used by UEFI in permanent memory (Reserved 128MB by default)
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x08000000|UINT32|0x00000015
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 128MB by default)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x08000000|UINT32|0x00000015
|
# Size to reserve in the primary core stack for PEI Global Variables
|
||||||
|
# = sizeof(UINTN) /* PcdPeiServicePtr or HobListPtr */
|
||||||
# Size to reserve in the primary core stack for PEI Global Variables
|
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize|0x4|UINT32|0x00000016
|
||||||
# = sizeof(UINTN) /* PcdPeiServicePtr or HobListPtr */
|
# PeiServicePtr and HobListPtr shares the same location in the PEI Global Variable list
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize|0x4|UINT32|0x00000016
|
# PeiServicePtr is only valid with PEI Core and HobListPtr only when the PEI Core is skipped.
|
||||||
# PeiServicePtr and HobListPtr shares the same location in the PEI Global Variable list
|
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset|0x0|UINT32|0x00000017
|
||||||
# PeiServicePtr is only valid with PEI Core and HobListPtr only when the PEI Core is skipped.
|
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset|0x0|UINT32|0x00000018
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiServicePtrGlobalOffset|0x0|UINT32|0x00000017
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset|0x0|UINT32|0x00000018
|
#
|
||||||
|
# ARM Primecells
|
||||||
#
|
#
|
||||||
# ARM Primecells
|
|
||||||
#
|
## SP804 DualTimer
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdSP804TimerFrequencyInMHz|1|UINT32|0x0000001D
|
||||||
## SP804 DualTimer
|
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|0|UINT32|0x0000001E
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerFrequencyInMHz|1|UINT32|0x0000001D
|
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0|UINT32|0x0000002A
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|0|UINT32|0x0000001E
|
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0|UINT32|0x0000002B
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0|UINT32|0x0000002A
|
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0|UINT32|0x0000002C
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0|UINT32|0x0000002B
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0|UINT32|0x0000002C
|
## SP805 Watchdog
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x0|UINT32|0x00000023
|
||||||
## SP805 Watchdog
|
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogClockFrequencyInHz|32000|UINT32|0x00000021
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x0|UINT32|0x00000023
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogClockFrequencyInHz|32000|UINT32|0x00000021
|
## PL011 UART
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0x00000000|UINT32|0x0000001F
|
||||||
## PL011 UART
|
gArmPlatformTokenSpaceGuid.PcdUartDefaultTimeout|0x00000000|UINT32|0x00000020
|
||||||
gArmPlatformTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0x00000000|UINT32|0x0000001F
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdUartDefaultTimeout|0x00000000|UINT32|0x00000020
|
## PL031 RealTimeClock
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024
|
||||||
## PL031 RealTimeClock
|
gArmPlatformTokenSpaceGuid.PcdPL031RtcPpmAccuracy|300000000|UINT32|0x00000022
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0|UINT32|0x00000024
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcPpmAccuracy|300000000|UINT32|0x00000022
|
## PL061 GPIO
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdPL061GpioBase|0x0|UINT32|0x00000025
|
||||||
## PL061 GPIO
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL061GpioBase|0x0|UINT32|0x00000025
|
## PL111 Lcd
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x0|UINT32|0x00000026
|
||||||
## PL111 Lcd
|
gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x0|UINT32|0x00000027
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x0|UINT32|0x00000026
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x0|UINT32|0x00000027
|
## PL180 MCI
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x00000000|UINT32|0x00000028
|
||||||
## PL180 MCI
|
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x00000000|UINT32|0x00000029
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x00000000|UINT32|0x00000028
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x00000000|UINT32|0x00000029
|
#
|
||||||
|
# BDS - Boot Manager
|
||||||
#
|
#
|
||||||
# BDS - Boot Manager
|
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Platform"|VOID*|0x00000019
|
||||||
#
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Default Boot Device"|VOID*|0x0000000C
|
||||||
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Platform"|VOID*|0x00000019
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L""|VOID*|0x0000000D
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Default Boot Device"|VOID*|0x0000000C
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootInitrdPath|L""|VOID*|0x0000000E
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L""|VOID*|0x0000000D
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|""|VOID*|0x000000F
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootInitrdPath|L""|VOID*|0x0000000E
|
# PcdDefaultBootType define the type of the binary pointed by PcdDefaultBootDevicePath:
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|""|VOID*|0x000000F
|
# - 0 = an EFI application
|
||||||
# PcdDefaultBootType define the type of the binary pointed by PcdDefaultBootDevicePath:
|
# - 1 = a Linux kernel with ATAG support
|
||||||
# - 0 = an EFI application
|
# - 2 = a Linux kernel with FDT support
|
||||||
# - 1 = a Linux kernel with ATAG support
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|0|UINT32|0x00000010
|
||||||
# - 2 = a Linux kernel with FDT support
|
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L""|VOID*|0x00000011
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|0|UINT32|0x00000010
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L""|VOID*|0x00000011
|
## Timeout value for displaying progressing bar in before boot OS.
|
||||||
|
# According to UEFI 2.0 spec, the default TimeOut should be 0xffff.
|
||||||
## Timeout value for displaying progressing bar in before boot OS.
|
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|0xffff|UINT16|0x0000001A
|
||||||
# According to UEFI 2.0 spec, the default TimeOut should be 0xffff.
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|0xffff|UINT16|0x0000001A
|
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L""|VOID*|0x0000001B
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L""|VOID*|0x0000001C
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L""|VOID*|0x0000001B
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L""|VOID*|0x0000001C
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +1,41 @@
|
|||||||
#/* @file
|
#/* @file
|
||||||
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
#
|
#
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
#*/
|
#*/
|
||||||
|
|
||||||
[Defines]
|
[Defines]
|
||||||
INF_VERSION = 0x00010005
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = ArmRealViewEbLib
|
BASE_NAME = ArmRealViewEbLib
|
||||||
FILE_GUID = 736343a0-1d96-11e0-aaaa-0002a5d5c51b
|
FILE_GUID = 736343a0-1d96-11e0-aaaa-0002a5d5c51b
|
||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = BASE
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = ArmPlatformLib
|
LIBRARY_CLASS = ArmPlatformLib
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
EmbeddedPkg/EmbeddedPkg.dec
|
||||||
ArmPkg/ArmPkg.dec
|
ArmPkg/ArmPkg.dec
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
ArmPlatformPkg/ArmPlatformPkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
IoLib
|
IoLib
|
||||||
ArmLib
|
ArmLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
|
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
ArmRealViewEb.c
|
ArmRealViewEb.c
|
||||||
ArmRealViewEbMem.c
|
ArmRealViewEbMem.c
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
ArmRealViewEbHelper.asm | RVCT
|
||||||
ArmRealViewEbHelper.S | GCC
|
ArmRealViewEbHelper.S | GCC
|
||||||
|
|
||||||
[FeaturePcd]
|
[FeaturePcd]
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
||||||
|
@ -142,6 +142,8 @@ LcdPlatformGetVram (
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
||||||
|
|
||||||
|
Status = EFI_SUCCESS;
|
||||||
|
|
||||||
// Is it on the motherboard or on the daughterboard?
|
// Is it on the motherboard or on the daughterboard?
|
||||||
switch(PL111_CLCD_SITE) {
|
switch(PL111_CLCD_SITE) {
|
||||||
|
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
UefiDriverEntryPoint
|
UefiDriverEntryPoint
|
||||||
DebugLib
|
DebugLib
|
||||||
PrintLib
|
PrintLib
|
||||||
|
BaseLib
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiFileSystemInfoGuid
|
gEfiFileSystemInfoGuid
|
||||||
|
@ -239,7 +239,7 @@ GenerateDeviceDescriptionName (
|
|||||||
//TODO: Fixme. we must find the best langague
|
//TODO: Fixme. we must find the best langague
|
||||||
Status = ComponentName2Protocol->GetDriverName (ComponentName2Protocol,"en",&DriverName);
|
Status = ComponentName2Protocol->GetDriverName (ComponentName2Protocol,"en",&DriverName);
|
||||||
if (!EFI_ERROR(Status)) {
|
if (!EFI_ERROR(Status)) {
|
||||||
StrnCpy (Description,DriverName,BOOT_DEVICE_DESCRIPTION_MAX);
|
StrnCpy (Description, DriverName, BOOT_DEVICE_DESCRIPTION_MAX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +254,7 @@ GenerateDeviceDescriptionName (
|
|||||||
DevicePathNode = GetLastDevicePathNode (DevicePathProtocol);
|
DevicePathNode = GetLastDevicePathNode (DevicePathProtocol);
|
||||||
Status = gBS->LocateProtocol (&gEfiDevicePathToTextProtocolGuid, NULL, (VOID **)&DevicePathToTextProtocol);
|
Status = gBS->LocateProtocol (&gEfiDevicePathToTextProtocolGuid, NULL, (VOID **)&DevicePathToTextProtocol);
|
||||||
ASSERT_EFI_ERROR(Status);
|
ASSERT_EFI_ERROR(Status);
|
||||||
DevicePathTxt = DevicePathToTextProtocol->ConvertDevicePathToText(DevicePathNode,TRUE,TRUE);
|
DevicePathTxt = DevicePathToTextProtocol->ConvertDevicePathToText (DevicePathNode, TRUE, TRUE);
|
||||||
StrnCpy (Description, DevicePathTxt, BOOT_DEVICE_DESCRIPTION_MAX);
|
StrnCpy (Description, DevicePathTxt, BOOT_DEVICE_DESCRIPTION_MAX);
|
||||||
FreePool (DevicePathTxt);
|
FreePool (DevicePathTxt);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,9 @@
|
|||||||
|
|
||||||
#define IS_ARM_BDS_BOOTENTRY(ptr) (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) == ARM_BDS_OPTIONAL_DATA_SIGNATURE)
|
#define IS_ARM_BDS_BOOTENTRY(ptr) (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) == ARM_BDS_OPTIONAL_DATA_SIGNATURE)
|
||||||
|
|
||||||
|
#define UPDATE_BOOT_ENTRY L"Update entry: "
|
||||||
|
#define DELETE_BOOT_ENTRY L"Delete entry: "
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BDS_LOADER_EFI_APPLICATION = 0,
|
BDS_LOADER_EFI_APPLICATION = 0,
|
||||||
BDS_LOADER_KERNEL_LINUX_ATAG,
|
BDS_LOADER_KERNEL_LINUX_ATAG,
|
||||||
|
@ -315,7 +315,7 @@ BootMenuRemoveBootOption (
|
|||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
BDS_LOAD_OPTION_ENTRY* BootOptionEntry;
|
BDS_LOAD_OPTION_ENTRY* BootOptionEntry;
|
||||||
|
|
||||||
Status = BootMenuSelectBootOption (BootOptionsList, L"Delete entry: ", FALSE, &BootOptionEntry);
|
Status = BootMenuSelectBootOption (BootOptionsList, DELETE_BOOT_ENTRY, FALSE, &BootOptionEntry);
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
@ -352,7 +352,7 @@ BootMenuUpdateBootOption (
|
|||||||
UINTN InitrdSize;
|
UINTN InitrdSize;
|
||||||
UINTN CmdLineSize;
|
UINTN CmdLineSize;
|
||||||
|
|
||||||
Status = BootMenuSelectBootOption (BootOptionsList, L"Update entry: ", TRUE, &BootOptionEntry);
|
Status = BootMenuSelectBootOption (BootOptionsList, UPDATE_BOOT_ENTRY, TRUE, &BootOptionEntry);
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
@ -476,8 +476,7 @@ BootMenuManager (
|
|||||||
BootManagerEntries[OptionSelected-1].Callback (BootOptionsList);
|
BootManagerEntries[OptionSelected-1].Callback (BootOptionsList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Should never go here
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -619,6 +618,5 @@ BootMenuMain (
|
|||||||
Status = BootOptionStart (BootOption);
|
Status = BootOptionStart (BootOption);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Should never go here
|
||||||
return Status;
|
|
||||||
}
|
}
|
||||||
|
@ -209,7 +209,7 @@ BootDeviceGetDeviceSupport (
|
|||||||
|
|
||||||
// Find which supported device is the most appropriate
|
// Find which supported device is the most appropriate
|
||||||
for (Index = 0; Index < BDS_DEVICE_MAX; Index++) {
|
for (Index = 0; Index < BDS_DEVICE_MAX; Index++) {
|
||||||
if (BdsLoadOptionSupportList[Index].IsSupported(BootOption)) {
|
if (BdsLoadOptionSupportList[Index].IsSupported (BootOption)) {
|
||||||
*DeviceSupport = &BdsLoadOptionSupportList[Index];
|
*DeviceSupport = &BdsLoadOptionSupportList[Index];
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -29,16 +29,16 @@
|
|||||||
|
|
||||||
#include <Drivers/SP804Timer.h>
|
#include <Drivers/SP804Timer.h>
|
||||||
|
|
||||||
#define SP804_TIMER_PERIODIC_BASE (UINTN)PcdGet32 (PcdSP804TimerPeriodicBase)
|
#define SP804_TIMER_PERIODIC_BASE ((UINTN)PcdGet32 (PcdSP804TimerPeriodicBase))
|
||||||
#define SP804_TIMER_METRONOME_BASE (UINTN)PcdGet32 (PcdSP804TimerMetronomeBase)
|
#define SP804_TIMER_METRONOME_BASE ((UINTN)PcdGet32 (PcdSP804TimerMetronomeBase))
|
||||||
#define SP804_TIMER_PERFORMANCE_BASE (UINTN)PcdGet32 (PcdSP804TimerPerformanceBase)
|
#define SP804_TIMER_PERFORMANCE_BASE ((UINTN)PcdGet32 (PcdSP804TimerPerformanceBase))
|
||||||
|
|
||||||
// The notification function to call on every timer interrupt.
|
// The notification function to call on every timer interrupt.
|
||||||
volatile EFI_TIMER_NOTIFY mTimerNotifyFunction = (EFI_TIMER_NOTIFY)NULL;
|
EFI_TIMER_NOTIFY mTimerNotifyFunction = (EFI_TIMER_NOTIFY)NULL;
|
||||||
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
|
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
|
||||||
|
|
||||||
// The current period of the timer interrupt
|
// The current period of the timer interrupt
|
||||||
volatile UINT64 mTimerPeriod = 0;
|
UINT64 mTimerPeriod = 0;
|
||||||
|
|
||||||
// Cached copy of the Hardware Interrupt protocol instance
|
// Cached copy of the Hardware Interrupt protocol instance
|
||||||
EFI_HARDWARE_INTERRUPT_PROTOCOL *gInterrupt = NULL;
|
EFI_HARDWARE_INTERRUPT_PROTOCOL *gInterrupt = NULL;
|
||||||
@ -78,10 +78,10 @@ TimerInterruptHandler (
|
|||||||
|
|
||||||
// If the interrupt is shared then we must check if this interrupt source is the one associated to this Timer
|
// If the interrupt is shared then we must check if this interrupt source is the one associated to this Timer
|
||||||
if (MmioRead32 (SP804_TIMER_PERIODIC_BASE + SP804_TIMER_MSK_INT_STS_REG) != 0) {
|
if (MmioRead32 (SP804_TIMER_PERIODIC_BASE + SP804_TIMER_MSK_INT_STS_REG) != 0) {
|
||||||
// clear the periodic interrupt
|
// Clear the periodic interrupt
|
||||||
MmioWrite32 (SP804_TIMER_PERIODIC_BASE + SP804_TIMER_INT_CLR_REG, 0);
|
MmioWrite32 (SP804_TIMER_PERIODIC_BASE + SP804_TIMER_INT_CLR_REG, 0);
|
||||||
|
|
||||||
// signal end of interrupt early to help avoid losing subsequent ticks from long duration handlers
|
// Signal end of interrupt early to help avoid losing subsequent ticks from long duration handlers
|
||||||
gInterrupt->EndOfInterrupt (gInterrupt, Source);
|
gInterrupt->EndOfInterrupt (gInterrupt, Source);
|
||||||
|
|
||||||
if (mTimerNotifyFunction) {
|
if (mTimerNotifyFunction) {
|
||||||
@ -213,15 +213,13 @@ TimerDriverSetTimerPeriod (
|
|||||||
// Disable timer 0/1 interrupt for a TimerPeriod of 0
|
// Disable timer 0/1 interrupt for a TimerPeriod of 0
|
||||||
Status = gInterrupt->DisableInterruptSource (gInterrupt, gVector);
|
Status = gInterrupt->DisableInterruptSource (gInterrupt, gVector);
|
||||||
} else {
|
} else {
|
||||||
// Convert TimerPeriod into 1MHz clock counts (us units = 100ns units / 10)
|
// Convert TimerPeriod into 1MHz clock counts (us units = 100ns units * 10)
|
||||||
TimerTicks = DivU64x32 (TimerPeriod, 10);
|
TimerTicks = DivU64x32 (TimerPeriod, 10);
|
||||||
TimerTicks = MultU64x32 (TimerTicks, PcdGet32(PcdSP804TimerFrequencyInMHz));
|
TimerTicks = MultU64x32 (TimerTicks, PcdGet32(PcdSP804TimerFrequencyInMHz));
|
||||||
|
|
||||||
// if it's larger than 32-bits, pin to highest value
|
// if it's larger than 32-bits, pin to highest value
|
||||||
if (TimerTicks > 0xffffffff) {
|
if (TimerTicks > 0xffffffff) {
|
||||||
|
|
||||||
TimerTicks = 0xffffffff;
|
TimerTicks = 0xffffffff;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Program the SP804 timer with the new count value
|
// Program the SP804 timer with the new count value
|
||||||
|
@ -1,69 +1,69 @@
|
|||||||
//
|
//
|
||||||
// Copyright (c) 2011, ARM Limited. All rights reserved.
|
// Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||||
//
|
//
|
||||||
// This program and the accompanying materials
|
// This program and the accompanying materials
|
||||||
// are licensed and made available under the terms and conditions of the BSD License
|
// are licensed and made available under the terms and conditions of the BSD License
|
||||||
// which accompanies this distribution. The full text of the license may be found at
|
// which accompanies this distribution. The full text of the license may be found at
|
||||||
// http://opensource.org/licenses/bsd-license.php
|
// http://opensource.org/licenses/bsd-license.php
|
||||||
//
|
//
|
||||||
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
#include <AsmMacroIoLib.h>
|
||||||
#include <Base.h>
|
#include <Base.h>
|
||||||
#include <Library/PcdLib.h>
|
#include <Library/PcdLib.h>
|
||||||
#include <AutoGen.h>
|
#include <AutoGen.h>
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 3
|
.align 3
|
||||||
|
|
||||||
#global symbols referenced by this module
|
#global symbols referenced by this module
|
||||||
GCC_ASM_IMPORT(CEntryPoint)
|
GCC_ASM_IMPORT(CEntryPoint)
|
||||||
|
|
||||||
StartupAddr: .word CEntryPoint
|
StartupAddr: .word CEntryPoint
|
||||||
|
|
||||||
#make _ModuleEntryPoint as global
|
#make _ModuleEntryPoint as global
|
||||||
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
||||||
|
|
||||||
|
|
||||||
ASM_PFX(_ModuleEntryPoint):
|
ASM_PFX(_ModuleEntryPoint):
|
||||||
# Identify CPU ID
|
# Identify CPU ID
|
||||||
mrc p15, 0, r0, c0, c0, 5
|
mrc p15, 0, r0, c0, c0, 5
|
||||||
and r0, #0xf
|
and r0, #0xf
|
||||||
|
|
||||||
_SetupStack:
|
_SetupStack:
|
||||||
# Setup Stack for the 4 CPU cores
|
# Setup Stack for the 4 CPU cores
|
||||||
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresNonSecStackBase), r1)
|
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresNonSecStackBase), r1)
|
||||||
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresNonSecStackSize), r2)
|
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresNonSecStackSize), r2)
|
||||||
|
|
||||||
mov r3,r0 @ r3 = core_id
|
mov r3,r0 @ r3 = core_id
|
||||||
mul r3,r3,r2 @ r3 = core_id * stack_size = offset from the stack base
|
mul r3,r3,r2 @ r3 = core_id * stack_size = offset from the stack base
|
||||||
add r3,r3,r1 @ r3 = stack_base + offset
|
add r3,r3,r1 @ r3 = stack_base + offset
|
||||||
add r3,r3,r2,LSR #1 @ r3 = stack_offset + (stack_size/2) <-- the top half is for the heap
|
add r3,r3,r2,LSR #1 @ r3 = stack_offset + (stack_size/2) <-- the top half is for the heap
|
||||||
mov sp, r3
|
mov sp, r3
|
||||||
|
|
||||||
# Only allocate memory in top of the primary core stack
|
# Only allocate memory in top of the primary core stack
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne _PrepareArguments
|
bne _PrepareArguments
|
||||||
|
|
||||||
_AllocateGlobalPeiVariables:
|
_AllocateGlobalPeiVariables:
|
||||||
# Reserve top of the stack for Global PEI Variables (eg: PeiServicesTablePointer)
|
# Reserve top of the stack for Global PEI Variables (eg: PeiServicesTablePointer)
|
||||||
LoadConstantToReg (FixedPcdGet32(PcdPeiGlobalVariableSize), r1)
|
LoadConstantToReg (FixedPcdGet32(PcdPeiGlobalVariableSize), r1)
|
||||||
sub sp, sp, r1
|
sub sp, sp, r1
|
||||||
|
|
||||||
_PrepareArguments:
|
_PrepareArguments:
|
||||||
# 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(PcdNormalFvBaseAddress), r2)
|
LoadConstantToReg (FixedPcdGet32(PcdNormalFvBaseAddress), r2)
|
||||||
add r2, r2, #4
|
add r2, r2, #4
|
||||||
ldr r1, [r2]
|
ldr r1, [r2]
|
||||||
|
|
||||||
# move sec startup address into a data register
|
# move sec startup address into a data register
|
||||||
# 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 PrePeiCore 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
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
DebugAgentLib
|
DebugAgentLib
|
||||||
IoLib
|
IoLib
|
||||||
PrintLib
|
PrintLib
|
||||||
|
SerialPortLib
|
||||||
|
|
||||||
[Ppis]
|
[Ppis]
|
||||||
gEfiTemporaryRamSupportPpiGuid
|
gEfiTemporaryRamSupportPpiGuid
|
||||||
@ -62,6 +63,3 @@
|
|||||||
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase
|
gArmTokenSpaceGuid.PcdGicDistributorBase
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdNormalFvBaseAddress
|
|
||||||
gArmTokenSpaceGuid.PcdNormalFvSize
|
|
||||||
|
@ -1,99 +1,99 @@
|
|||||||
#/** @file
|
#/** @file
|
||||||
#
|
#
|
||||||
# Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>
|
# Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
#
|
#
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
#**/
|
#**/
|
||||||
|
|
||||||
[Defines]
|
[Defines]
|
||||||
INF_VERSION = 0x00010005
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = ArmPlatformPrePiMPCore
|
BASE_NAME = ArmPlatformPrePiMPCore
|
||||||
FILE_GUID = d959e387-7b91-452c-90e0-a1dbac90ddb8
|
FILE_GUID = d959e387-7b91-452c-90e0-a1dbac90ddb8
|
||||||
MODULE_TYPE = SEC
|
MODULE_TYPE = SEC
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
|
|
||||||
[Sources.ARM]
|
[Sources.ARM]
|
||||||
PrePi.c
|
PrePi.c
|
||||||
ModuleEntryPoint.S | GCC
|
ModuleEntryPoint.S | GCC
|
||||||
ModuleEntryPoint.asm | RVCT
|
ModuleEntryPoint.asm | RVCT
|
||||||
Exception.S | GCC
|
Exception.S | GCC
|
||||||
Exception.asm | RVCT
|
Exception.asm | RVCT
|
||||||
MainMPCore.c
|
MainMPCore.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
EmbeddedPkg/EmbeddedPkg.dec
|
||||||
ArmPkg/ArmPkg.dec
|
ArmPkg/ArmPkg.dec
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
ArmPlatformPkg/ArmPlatformPkg.dec
|
||||||
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
BaseLib
|
BaseLib
|
||||||
DebugLib
|
DebugLib
|
||||||
DebugAgentLib
|
DebugAgentLib
|
||||||
ArmLib
|
ArmLib
|
||||||
ArmMPCoreMailBoxLib
|
ArmMPCoreMailBoxLib
|
||||||
PL390GicNonSecLib
|
PL390GicNonSecLib
|
||||||
IoLib
|
IoLib
|
||||||
TimerLib
|
TimerLib
|
||||||
SerialPortLib
|
SerialPortLib
|
||||||
ExtractGuidedSectionLib
|
ExtractGuidedSectionLib
|
||||||
LzmaDecompressLib
|
LzmaDecompressLib
|
||||||
PeCoffGetEntryPointLib
|
PeCoffGetEntryPointLib
|
||||||
DebugAgentLib
|
DebugAgentLib
|
||||||
PrePiLib
|
PrePiLib
|
||||||
ArmPlatformLib
|
ArmPlatformLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
HobLib
|
HobLib
|
||||||
PrePiHobListPointerLib
|
PrePiHobListPointerLib
|
||||||
PlatformPeiLib
|
PlatformPeiLib
|
||||||
MemoryInitPeiLib
|
MemoryInitPeiLib
|
||||||
|
|
||||||
[FeaturePcd]
|
[FeaturePcd]
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob
|
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores
|
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores
|
||||||
|
|
||||||
[FixedPcd]
|
[FixedPcd]
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled
|
gArmTokenSpaceGuid.PcdVFPEnabled
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdNormalFdBaseAddress
|
gArmTokenSpaceGuid.PcdNormalFdBaseAddress
|
||||||
gArmTokenSpaceGuid.PcdNormalFdSize
|
gArmTokenSpaceGuid.PcdNormalFdSize
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdNormalFvBaseAddress
|
gArmTokenSpaceGuid.PcdNormalFvBaseAddress
|
||||||
gArmTokenSpaceGuid.PcdNormalFvSize
|
gArmTokenSpaceGuid.PcdNormalFvSize
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize
|
gArmPlatformTokenSpaceGuid.PcdPeiGlobalVariableSize
|
||||||
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset
|
gArmPlatformTokenSpaceGuid.PcdHobListPtrGlobalOffset
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase
|
gArmTokenSpaceGuid.PcdGicDistributorBase
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase
|
gArmTokenSpaceGuid.PcdSystemMemoryBase
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize
|
gArmTokenSpaceGuid.PcdSystemMemorySize
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdMPCoreMaxCores
|
gArmPlatformTokenSpaceGuid.PcdMPCoreMaxCores
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <PiPei.h>
|
#include <PiPei.h>
|
||||||
|
|
||||||
#include <Library/DebugAgentLib.h>
|
#include <Library/DebugAgentLib.h>
|
||||||
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/PrePiLib.h>
|
#include <Library/PrePiLib.h>
|
||||||
#include <Library/IoLib.h>
|
#include <Library/IoLib.h>
|
||||||
#include <Library/PrintLib.h>
|
#include <Library/PrintLib.h>
|
||||||
|
@ -1,112 +1,112 @@
|
|||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# ARM VE Entry point. Reset vector in FV header will brach to
|
# ARM VE Entry point. Reset vector in FV header will brach to
|
||||||
# _ModuleEntryPoint.
|
# _ModuleEntryPoint.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
# Copyright (c) 2011, ARM Limited. All rights reserved.
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
#
|
#
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
#include <AsmMacroIoLib.h>
|
||||||
#include <Base.h>
|
#include <Base.h>
|
||||||
#include <Library/PcdLib.h>
|
#include <Library/PcdLib.h>
|
||||||
#include <Library/ArmPlatformLib.h>
|
#include <Library/ArmPlatformLib.h>
|
||||||
#include <AutoGen.h>
|
#include <AutoGen.h>
|
||||||
|
|
||||||
#Start of Code section
|
#Start of Code section
|
||||||
.text
|
.text
|
||||||
.align 3
|
.align 3
|
||||||
|
|
||||||
#make _ModuleEntryPoint as global
|
#make _ModuleEntryPoint as global
|
||||||
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
GCC_ASM_EXPORT(_ModuleEntryPoint)
|
||||||
|
|
||||||
#global functions referenced by this module
|
#global functions referenced by this module
|
||||||
GCC_ASM_IMPORT(CEntryPoint)
|
GCC_ASM_IMPORT(CEntryPoint)
|
||||||
GCC_ASM_IMPORT(ArmPlatformIsMemoryInitialized)
|
GCC_ASM_IMPORT(ArmPlatformIsMemoryInitialized)
|
||||||
GCC_ASM_IMPORT(ArmPlatformInitializeBootMemory)
|
GCC_ASM_IMPORT(ArmPlatformInitializeBootMemory)
|
||||||
GCC_ASM_IMPORT(ArmDisableInterrupts)
|
GCC_ASM_IMPORT(ArmDisableInterrupts)
|
||||||
GCC_ASM_IMPORT(ArmDisableCachesAndMmu)
|
GCC_ASM_IMPORT(ArmDisableCachesAndMmu)
|
||||||
GCC_ASM_IMPORT(ArmWriteVBar)
|
GCC_ASM_IMPORT(ArmWriteVBar)
|
||||||
GCC_ASM_IMPORT(SecVectorTable)
|
GCC_ASM_IMPORT(SecVectorTable)
|
||||||
|
|
||||||
#if (FixedPcdGet32(PcdMPCoreSupport))
|
#if (FixedPcdGet32(PcdMPCoreSupport))
|
||||||
GCC_ASM_IMPORT(ArmIsScuEnable)
|
GCC_ASM_IMPORT(ArmIsScuEnable)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
StartupAddr: .word ASM_PFX(CEntryPoint)
|
StartupAddr: .word ASM_PFX(CEntryPoint)
|
||||||
SecVectorTableAddr: .word ASM_PFX(SecVectorTable)
|
SecVectorTableAddr: .word ASM_PFX(SecVectorTable)
|
||||||
|
|
||||||
ASM_PFX(_ModuleEntryPoint):
|
ASM_PFX(_ModuleEntryPoint):
|
||||||
#Set VBAR to the start of the exception vectors in Secure Mode
|
#Set VBAR to the start of the exception vectors in Secure Mode
|
||||||
ldr r0, SecVectorTableAddr
|
ldr r0, SecVectorTableAddr
|
||||||
bl ASM_PFX(ArmWriteVBar)
|
bl ASM_PFX(ArmWriteVBar)
|
||||||
|
|
||||||
# First ensure all interrupts are disabled
|
# First ensure all interrupts are disabled
|
||||||
bl ASM_PFX(ArmDisableInterrupts)
|
bl ASM_PFX(ArmDisableInterrupts)
|
||||||
|
|
||||||
# Ensure that the MMU and caches are off
|
# Ensure that the MMU and caches are off
|
||||||
bl ASM_PFX(ArmDisableCachesAndMmu)
|
bl ASM_PFX(ArmDisableCachesAndMmu)
|
||||||
|
|
||||||
_IdentifyCpu:
|
_IdentifyCpu:
|
||||||
# Identify CPU ID
|
# Identify CPU ID
|
||||||
bl ASM_PFX(ArmReadMpidr)
|
bl ASM_PFX(ArmReadMpidr)
|
||||||
and r5, r0, #0xf
|
and r5, r0, #0xf
|
||||||
|
|
||||||
#get ID of this CPU in Multicore system
|
#get ID of this CPU in Multicore system
|
||||||
cmp r5, #0
|
cmp r5, #0
|
||||||
# Only the primary core initialize the memory (SMC)
|
# Only the primary core initialize the memory (SMC)
|
||||||
beq _InitMem
|
beq _InitMem
|
||||||
|
|
||||||
#if (FixedPcdGet32(PcdMPCoreSupport))
|
#if (FixedPcdGet32(PcdMPCoreSupport))
|
||||||
# ... The secondary cores wait for SCU to be enabled
|
# ... The secondary cores wait for SCU to be enabled
|
||||||
_WaitForEnabledScu:
|
_WaitForEnabledScu:
|
||||||
bl ASM_PFX(ArmIsScuEnable)
|
bl ASM_PFX(ArmIsScuEnable)
|
||||||
tst r1, #1
|
tst r1, #1
|
||||||
beq _WaitForEnabledScu
|
beq _WaitForEnabledScu
|
||||||
b _SetupStack
|
b _SetupStack
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_InitMem:
|
_InitMem:
|
||||||
bl ASM_PFX(ArmPlatformIsMemoryInitialized)
|
bl ASM_PFX(ArmPlatformIsMemoryInitialized)
|
||||||
bne _SetupStack
|
bne _SetupStack
|
||||||
|
|
||||||
# Initialize Init Memory
|
# Initialize Init Memory
|
||||||
bl ASM_PFX(ArmPlatformInitializeBootMemory)
|
bl ASM_PFX(ArmPlatformInitializeBootMemory)
|
||||||
|
|
||||||
# Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
# Only Primary CPU could run this line (the secondary cores have jumped from _IdentifyCpu to _SetupStack)
|
||||||
mov r5, #0
|
mov r5, #0
|
||||||
|
|
||||||
_SetupStack:
|
_SetupStack:
|
||||||
# Setup Stack for the 4 CPU cores
|
# Setup Stack for the 4 CPU cores
|
||||||
#Read Stack Base address from PCD
|
#Read Stack Base address from PCD
|
||||||
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresSecStackBase), r1)
|
LoadConstantToReg (FixedPcdGet32(PcdCPUCoresSecStackBase), r1)
|
||||||
|
|
||||||
#read Stack size from PCD
|
#read Stack size from PCD
|
||||||
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecStackSize), r2)
|
LoadConstantToReg (FixedPcdGet32(PcdCPUCoreSecStackSize), r2)
|
||||||
|
|
||||||
#calcuate Stack Pointer reg value using Stack size and CPU ID.
|
#calcuate Stack Pointer reg value using Stack size and CPU ID.
|
||||||
mov r3,r5 @ r3 = core_id
|
mov r3,r5 @ r3 = core_id
|
||||||
mul r3,r3,r2 @ r3 = core_id * stack_size = offset from the stack base
|
mul r3,r3,r2 @ r3 = core_id * stack_size = offset from the stack base
|
||||||
add r3,r3,r1 @ r3 ldr= stack_base + offset
|
add r3,r3,r1 @ r3 ldr= stack_base + offset
|
||||||
mov sp, r3
|
mov sp, r3
|
||||||
|
|
||||||
# move sec startup address into a data register
|
# move sec startup address into a data register
|
||||||
# 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 r3, StartupAddr
|
ldr r3, StartupAddr
|
||||||
|
|
||||||
# Move the CoreId in r0 to be the first argument of the SEC Entry Point
|
# Move the CoreId in r0 to be the first argument of the SEC Entry Point
|
||||||
mov r0, r5
|
mov r0, r5
|
||||||
|
|
||||||
# jump to SEC C code
|
# jump to SEC C code
|
||||||
# r0 = core_id
|
# r0 = core_id
|
||||||
blx r3
|
blx r3
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,501 +1,501 @@
|
|||||||
#/** @file
|
#/** @file
|
||||||
# Beagle board package.
|
# Beagle board package.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
#
|
#
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
#**/
|
#**/
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Defines Section - statements that will be processed to create a Makefile.
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
[Defines]
|
[Defines]
|
||||||
PLATFORM_NAME = BeagleBoardPkg
|
PLATFORM_NAME = BeagleBoardPkg
|
||||||
PLATFORM_GUID = 91fa6c28-33df-46ac-aee6-292d6811ea31
|
PLATFORM_GUID = 91fa6c28-33df-46ac-aee6-292d6811ea31
|
||||||
PLATFORM_VERSION = 0.1
|
PLATFORM_VERSION = 0.1
|
||||||
DSC_SPECIFICATION = 0x00010005
|
DSC_SPECIFICATION = 0x00010005
|
||||||
OUTPUT_DIRECTORY = Build/BeagleBoard
|
OUTPUT_DIRECTORY = Build/BeagleBoard
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
SUPPORTED_ARCHITECTURES = ARM
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
BUILD_TARGETS = DEBUG|RELEASE
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
SKUID_IDENTIFIER = DEFAULT
|
||||||
FLASH_DEFINITION = BeagleBoardPkg/BeagleBoardPkg-next.fdf
|
FLASH_DEFINITION = BeagleBoardPkg/BeagleBoardPkg-next.fdf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
[LibraryClasses.common]
|
||||||
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
||||||
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
||||||
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
||||||
|
|
||||||
!if $(TARGET) == RELEASE
|
!if $(TARGET) == RELEASE
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
||||||
!else
|
!else
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
||||||
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
||||||
!endif
|
!endif
|
||||||
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
||||||
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
||||||
ArmPlatformLib|BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardLib.inf
|
ArmPlatformLib|BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardLib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
|
|
||||||
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
||||||
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
||||||
|
|
||||||
EfiResetSystemLib|BeagleBoardPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
EfiResetSystemLib|BeagleBoardPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
||||||
|
|
||||||
PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
|
PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
|
||||||
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
||||||
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
||||||
|
|
||||||
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
|
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
|
||||||
|
|
||||||
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
|
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
|
||||||
|
|
||||||
|
|
||||||
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
||||||
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
||||||
# into the command window to load symbols. We should be able to use a script to do this, but
|
# into the command window to load symbols. We should be able to use a script to do this, but
|
||||||
# the version of RVD I have does not support scipts accessing system memory.
|
# the version of RVD I have does not support scipts accessing system memory.
|
||||||
#
|
#
|
||||||
# PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
# PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
||||||
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
||||||
# PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
# PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||||
|
|
||||||
|
|
||||||
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
||||||
DefaultExceptioHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
||||||
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
||||||
|
|
||||||
SerialPortLib|Omap35xxPkg/Library/SerialPortLib/SerialPortLib.inf
|
SerialPortLib|Omap35xxPkg/Library/SerialPortLib/SerialPortLib.inf
|
||||||
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
||||||
|
|
||||||
RealTimeClockLib|Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.inf
|
RealTimeClockLib|Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.inf
|
||||||
|
|
||||||
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
||||||
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
||||||
|
|
||||||
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
||||||
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Assume everything is fixed at build
|
# Assume everything is fixed at build
|
||||||
#
|
#
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
|
||||||
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
||||||
|
|
||||||
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
||||||
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
|
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
|
||||||
|
|
||||||
|
|
||||||
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
||||||
|
|
||||||
TimerLib|Omap35xxPkg/Library/Omap35xxTimerLib/Omap35xxTimerLib.inf
|
TimerLib|Omap35xxPkg/Library/Omap35xxTimerLib/Omap35xxTimerLib.inf
|
||||||
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
|
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
|
||||||
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
|
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
|
||||||
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
||||||
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
||||||
|
|
||||||
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
||||||
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
||||||
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
||||||
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
[LibraryClasses.common.SEC]
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
||||||
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
||||||
LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
||||||
|
|
||||||
# Temp work around for Movt relocation issue.
|
# Temp work around for Movt relocation issue.
|
||||||
#PeCoffLib|ArmPkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
#PeCoffLib|ArmPkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
|
|
||||||
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
||||||
PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
||||||
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
||||||
PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
|
PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
|
||||||
MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
|
MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
|
||||||
|
|
||||||
# 1/123 faster than Stm or Vstm version
|
# 1/123 faster than Stm or Vstm version
|
||||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||||
|
|
||||||
# Uncomment to turn on GDB stub in SEC.
|
# Uncomment to turn on GDB stub in SEC.
|
||||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
||||||
|
|
||||||
[LibraryClasses.common.PEI_CORE]
|
[LibraryClasses.common.PEI_CORE]
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_CORE]
|
[LibraryClasses.common.DXE_CORE]
|
||||||
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
||||||
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
||||||
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
||||||
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
||||||
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_DRIVER]
|
[LibraryClasses.common.DXE_DRIVER]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_APPLICATION]
|
[LibraryClasses.common.UEFI_APPLICATION]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
[LibraryClasses.common.UEFI_DRIVER]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.ARM]
|
[LibraryClasses.ARM]
|
||||||
#
|
#
|
||||||
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
|
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
|
||||||
# This library provides the instrinsic functions generate by a given compiler.
|
# This library provides the instrinsic functions generate by a given compiler.
|
||||||
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
|
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
|
||||||
#
|
#
|
||||||
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
||||||
|
|
||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
XCODE:*_*_ARM_ARCHCC_FLAGS == -arch armv7 -march=armv7
|
XCODE:*_*_ARM_ARCHCC_FLAGS == -arch armv7 -march=armv7
|
||||||
XCODE:*_*_ARM_ARCHASM_FLAGS == -arch armv7
|
XCODE:*_*_ARM_ARCHASM_FLAGS == -arch armv7
|
||||||
XCODE:*_*_ARM_ARCHDLINK_FLAGS == -arch armv7
|
XCODE:*_*_ARM_ARCHDLINK_FLAGS == -arch armv7
|
||||||
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
GCC:*_*_ARM_ARCHCC_FLAGS == -march=armv7-a -mthumb
|
GCC:*_*_ARM_ARCHCC_FLAGS == -march=armv7-a -mthumb
|
||||||
GCC:*_*_ARM_ARCHASM_FLAGS == -march=armv7-a
|
GCC:*_*_ARM_ARCHASM_FLAGS == -march=armv7-a
|
||||||
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
RVCT:*_*_ARM_ARCHCC_FLAGS == --cpu Cortex-A8 --thumb
|
RVCT:*_*_ARM_ARCHCC_FLAGS == --cpu Cortex-A8 --thumb
|
||||||
RVCT:*_*_ARM_ARCHASM_FLAGS == --cpu Cortex-A8
|
RVCT:*_*_ARM_ARCHASM_FLAGS == --cpu Cortex-A8
|
||||||
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
[PcdsFeatureFlag.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# Control what commands are supported from the UI
|
# Control what commands are supported from the UI
|
||||||
# Turn these on and off to add features or save size
|
# Turn these on and off to add features or save size
|
||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
|
||||||
|
|
||||||
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
||||||
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
||||||
gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE
|
gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE
|
||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
[PcdsFixedAtBuild.common]
|
||||||
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"Beagle Board"
|
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"Beagle Board"
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"BeagleEdk2"
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"BeagleEdk2"
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
|
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
||||||
|
|
||||||
# DEBUG_ASSERT_ENABLED 0x01
|
# DEBUG_ASSERT_ENABLED 0x01
|
||||||
# DEBUG_PRINT_ENABLED 0x02
|
# DEBUG_PRINT_ENABLED 0x02
|
||||||
# DEBUG_CODE_ENABLED 0x04
|
# DEBUG_CODE_ENABLED 0x04
|
||||||
# CLEAR_MEMORY_ENABLED 0x08
|
# CLEAR_MEMORY_ENABLED 0x08
|
||||||
# ASSERT_BREAKPOINT_ENABLED 0x10
|
# ASSERT_BREAKPOINT_ENABLED 0x10
|
||||||
# ASSERT_DEADLOOP_ENABLED 0x20
|
# ASSERT_DEADLOOP_ENABLED 0x20
|
||||||
!if $(TARGET) == RELEASE
|
!if $(TARGET) == RELEASE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
||||||
!else
|
!else
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# DEBUG_INIT 0x00000001 // Initialization
|
# DEBUG_INIT 0x00000001 // Initialization
|
||||||
# DEBUG_WARN 0x00000002 // Warnings
|
# DEBUG_WARN 0x00000002 // Warnings
|
||||||
# DEBUG_LOAD 0x00000004 // Load events
|
# DEBUG_LOAD 0x00000004 // Load events
|
||||||
# DEBUG_FS 0x00000008 // EFI File system
|
# DEBUG_FS 0x00000008 // EFI File system
|
||||||
# DEBUG_POOL 0x00000010 // Alloc & Free's
|
# DEBUG_POOL 0x00000010 // Alloc & Free's
|
||||||
# DEBUG_PAGE 0x00000020 // Alloc & Free's
|
# DEBUG_PAGE 0x00000020 // Alloc & Free's
|
||||||
# DEBUG_INFO 0x00000040 // Verbose
|
# DEBUG_INFO 0x00000040 // Verbose
|
||||||
# DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
|
# DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
|
||||||
# DEBUG_VARIABLE 0x00000100 // Variable
|
# DEBUG_VARIABLE 0x00000100 // Variable
|
||||||
# DEBUG_BM 0x00000400 // Boot Manager
|
# DEBUG_BM 0x00000400 // Boot Manager
|
||||||
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
||||||
# DEBUG_NET 0x00004000 // SNI Driver
|
# DEBUG_NET 0x00004000 // SNI Driver
|
||||||
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
||||||
# DEBUG_LOADFILE 0x00020000 // UNDI Driver
|
# DEBUG_LOADFILE 0x00020000 // UNDI Driver
|
||||||
# DEBUG_EVENT 0x00080000 // Event messages
|
# DEBUG_EVENT 0x00080000 // Event messages
|
||||||
# DEBUG_ERROR 0x80000000 // Error
|
# DEBUG_ERROR 0x80000000 // Error
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
|
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0
|
gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0
|
gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optional feature to help prevent EFI memory map fragments
|
# Optional feature to help prevent EFI memory map fragments
|
||||||
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
||||||
# Values are in EFI Pages (4K). DXE Core will make sure that
|
# Values are in EFI Pages (4K). DXE Core will make sure that
|
||||||
# at least this much of each type of memory can be allocated
|
# at least this much of each type of memory can be allocated
|
||||||
# from a single memory range. This way you only end up with
|
# from a single memory range. This way you only end up with
|
||||||
# maximum of two fragements for each type in the memory map
|
# maximum of two fragements for each type in the memory map
|
||||||
# (the memory used, and the free memory that was prereserved
|
# (the memory used, and the free memory that was prereserved
|
||||||
# but not used).
|
# but not used).
|
||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|40
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|40
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|3000
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|3000
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|10
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|10
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Beagle board Specific PCDs
|
# Beagle board Specific PCDs
|
||||||
#
|
#
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase|0x87FE0000 # stack at top of memory
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackBase|0x87FE0000 # stack at top of memory
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize|0x20000 # 128K stack
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresNonSecStackSize|0x20000 # 128K stack
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x08000000
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x08000000
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 16MB)
|
# Size of the region used by UEFI in permanent memory (Reserved 16MB)
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x01000000
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x01000000
|
||||||
|
|
||||||
# Size of the region reserved for fixed address allocations (Reserved 32MB)
|
# Size of the region reserved for fixed address allocations (Reserved 32MB)
|
||||||
gArmTokenSpaceGuid.PcdArmLinuxKernelMaxOffset|0x02000000
|
gArmTokenSpaceGuid.PcdArmLinuxKernelMaxOffset|0x02000000
|
||||||
|
|
||||||
# Reserved to store the HobBase address (top of UEFI Memory Region)
|
# Reserved to store the HobBase address (top of UEFI Memory Region)
|
||||||
# = (PcdSystemMemoryBase + PcdSystemMemorySize) - sizeof(UINT32)
|
# = (PcdSystemMemoryBase + PcdSystemMemorySize) - sizeof(UINT32)
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x87FFFFFC
|
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x87FFFFFC
|
||||||
|
|
||||||
#gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000
|
#gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x80000000
|
gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x80000000
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemorySize|0x10000000
|
gEmbeddedTokenSpaceGuid.PcdMemorySize|0x10000000
|
||||||
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80008000
|
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80008000
|
||||||
gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000
|
gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
|
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterPeriodInNanoseconds|77
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterPeriodInNanoseconds|77
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|13000000
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|13000000
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM Pcds
|
# ARM Pcds
|
||||||
#
|
#
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SD"
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SD"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/zImage"
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/zImage"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|1
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|1
|
||||||
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|10
|
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|10
|
||||||
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/omap3-beagle.dtb"
|
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/omap3-beagle.dtb"
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM OS Loader
|
# ARM OS Loader
|
||||||
#
|
#
|
||||||
# BeagleBoard machine type (OMAP3_BEAGLE = 1546) required for ARM Linux:
|
# BeagleBoard machine type (OMAP3_BEAGLE = 1546) required for ARM Linux:
|
||||||
gArmTokenSpaceGuid.PcdArmMachineType|1546
|
gArmTokenSpaceGuid.PcdArmMachineType|1546
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
# Components Section - list of all EDK II Modules needed by this Platform
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
[Components.common]
|
[Components.common]
|
||||||
|
|
||||||
#
|
#
|
||||||
# SEC
|
# SEC
|
||||||
#
|
#
|
||||||
ArmPlatformPkg/PrePi/PeiUniCore.inf
|
ArmPlatformPkg/PrePi/PeiUniCore.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# DXE
|
# DXE
|
||||||
#
|
#
|
||||||
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
||||||
# NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
# NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
||||||
NULL|EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
|
NULL|EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
|
||||||
}
|
}
|
||||||
|
|
||||||
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||||
|
|
||||||
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
||||||
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
||||||
|
|
||||||
EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
|
EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
|
||||||
#
|
#
|
||||||
# This version uses semi-hosting console
|
# This version uses semi-hosting console
|
||||||
# EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf {
|
# EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf {
|
||||||
# <LibraryClasses>
|
# <LibraryClasses>
|
||||||
# SerialPortLib|ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
|
# SerialPortLib|ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
|
||||||
# }
|
# }
|
||||||
|
|
||||||
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
||||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
||||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Semi-hosting filesystem
|
# Semi-hosting filesystem
|
||||||
#
|
#
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# FAT filesystem + GPT/MBR partitioning
|
# FAT filesystem + GPT/MBR partitioning
|
||||||
#
|
#
|
||||||
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||||
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||||
FatPkg/EnhancedFatDxe/Fat.inf
|
FatPkg/EnhancedFatDxe/Fat.inf
|
||||||
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB
|
# USB
|
||||||
#
|
#
|
||||||
Omap35xxPkg/PciEmulation/PciEmulation.inf
|
Omap35xxPkg/PciEmulation/PciEmulation.inf
|
||||||
|
|
||||||
#NOTE: Open source EHCI stack doesn't work on Beagleboard.
|
#NOTE: Open source EHCI stack doesn't work on Beagleboard.
|
||||||
#NOTE: UsbBus and UsbMassStorage don't work using iPhone SDK tool chain.
|
#NOTE: UsbBus and UsbMassStorage don't work using iPhone SDK tool chain.
|
||||||
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf {
|
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf {
|
||||||
<PcdsFixedAtBuild>
|
<PcdsFixedAtBuild>
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
||||||
}
|
}
|
||||||
|
|
||||||
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
||||||
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Nand Flash
|
# Nand Flash
|
||||||
#
|
#
|
||||||
Omap35xxPkg/Flash/Flash.inf
|
Omap35xxPkg/Flash/Flash.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# MMC/SD
|
# MMC/SD
|
||||||
#
|
#
|
||||||
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
||||||
Omap35xxPkg/MmcHostDxe/MmcHostDxe.inf
|
Omap35xxPkg/MmcHostDxe/MmcHostDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C
|
# I2C
|
||||||
#
|
#
|
||||||
Omap35xxPkg/SmbusDxe/Smbus.inf
|
Omap35xxPkg/SmbusDxe/Smbus.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# SoC Drivers
|
# SoC Drivers
|
||||||
#
|
#
|
||||||
Omap35xxPkg/Gpio/Gpio.inf
|
Omap35xxPkg/Gpio/Gpio.inf
|
||||||
Omap35xxPkg/InterruptDxe/InterruptDxe.inf
|
Omap35xxPkg/InterruptDxe/InterruptDxe.inf
|
||||||
Omap35xxPkg/TimerDxe/TimerDxe.inf
|
Omap35xxPkg/TimerDxe/TimerDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power IC
|
# Power IC
|
||||||
#
|
#
|
||||||
Omap35xxPkg/TPS65950Dxe/TPS65950.inf
|
Omap35xxPkg/TPS65950Dxe/TPS65950.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Application
|
# Application
|
||||||
#
|
#
|
||||||
EmbeddedPkg/Ebl/Ebl.inf
|
EmbeddedPkg/Ebl/Ebl.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bds
|
# Bds
|
||||||
#
|
#
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
ArmPlatformPkg/Bds/Bds.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Example Application
|
# Example Application
|
||||||
#
|
#
|
||||||
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
||||||
|
|
||||||
|
@ -1,482 +1,482 @@
|
|||||||
#/** @file
|
#/** @file
|
||||||
# Beagle board package.
|
# Beagle board package.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
# which accompanies this distribution. The full text of the license may be found at
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
# http://opensource.org/licenses/bsd-license.php
|
# http://opensource.org/licenses/bsd-license.php
|
||||||
#
|
#
|
||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
#
|
#
|
||||||
#**/
|
#**/
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Defines Section - statements that will be processed to create a Makefile.
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
[Defines]
|
[Defines]
|
||||||
PLATFORM_NAME = BeagleBoardPkg
|
PLATFORM_NAME = BeagleBoardPkg
|
||||||
PLATFORM_GUID = 91fa6c28-33df-46ac-aee6-292d6811ea31
|
PLATFORM_GUID = 91fa6c28-33df-46ac-aee6-292d6811ea31
|
||||||
PLATFORM_VERSION = 0.1
|
PLATFORM_VERSION = 0.1
|
||||||
DSC_SPECIFICATION = 0x00010005
|
DSC_SPECIFICATION = 0x00010005
|
||||||
OUTPUT_DIRECTORY = Build/BeagleBoard
|
OUTPUT_DIRECTORY = Build/BeagleBoard
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
SUPPORTED_ARCHITECTURES = ARM
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
BUILD_TARGETS = DEBUG|RELEASE
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
SKUID_IDENTIFIER = DEFAULT
|
||||||
FLASH_DEFINITION = BeagleBoardPkg/BeagleBoardPkg.fdf
|
FLASH_DEFINITION = BeagleBoardPkg/BeagleBoardPkg.fdf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
[LibraryClasses.common]
|
||||||
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
||||||
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
||||||
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
||||||
|
|
||||||
!if $(TARGET) == RELEASE
|
!if $(TARGET) == RELEASE
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
||||||
!else
|
!else
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
||||||
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
||||||
!endif
|
!endif
|
||||||
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
||||||
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
PrePiHobListPointerLib|EmbeddedPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
PrePiHobListPointerLib|EmbeddedPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
||||||
|
|
||||||
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
||||||
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
||||||
|
|
||||||
EfiResetSystemLib|BeagleBoardPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
EfiResetSystemLib|BeagleBoardPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
||||||
|
|
||||||
PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
|
PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
|
||||||
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
||||||
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
||||||
|
|
||||||
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
|
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
|
||||||
|
|
||||||
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
|
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
|
||||||
|
|
||||||
|
|
||||||
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
||||||
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
||||||
# into the command window to load symbols. We should be able to use a script to do this, but
|
# into the command window to load symbols. We should be able to use a script to do this, but
|
||||||
# the version of RVD I have does not support scipts accessing system memory.
|
# the version of RVD I have does not support scipts accessing system memory.
|
||||||
#
|
#
|
||||||
# PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
# PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
||||||
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
||||||
# PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
# PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||||
|
|
||||||
|
|
||||||
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
||||||
DefaultExceptioHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
||||||
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
||||||
|
|
||||||
SerialPortLib|Omap35xxPkg/Library/SerialPortLib/SerialPortLib.inf
|
SerialPortLib|Omap35xxPkg/Library/SerialPortLib/SerialPortLib.inf
|
||||||
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
||||||
|
|
||||||
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
|
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
|
||||||
|
|
||||||
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
||||||
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
||||||
|
|
||||||
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
||||||
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Assume everything is fixed at build
|
# Assume everything is fixed at build
|
||||||
#
|
#
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
|
||||||
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
||||||
|
|
||||||
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
|
||||||
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
|
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
|
||||||
|
|
||||||
|
|
||||||
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
||||||
|
|
||||||
TimerLib|Omap35xxPkg/Library/Omap35xxTimerLib/Omap35xxTimerLib.inf
|
TimerLib|Omap35xxPkg/Library/Omap35xxTimerLib/Omap35xxTimerLib.inf
|
||||||
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
|
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
|
||||||
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
|
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
|
||||||
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
||||||
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
||||||
|
|
||||||
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
||||||
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
||||||
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
||||||
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
[LibraryClasses.common.SEC]
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
||||||
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
||||||
LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
||||||
|
|
||||||
# Temp work around for Movt relocation issue.
|
# Temp work around for Movt relocation issue.
|
||||||
PeCoffLib|ArmPkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
PeCoffLib|ArmPkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
|
|
||||||
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
||||||
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
||||||
|
|
||||||
# 1/123 faster than Stm or Vstm version
|
# 1/123 faster than Stm or Vstm version
|
||||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||||
|
|
||||||
# Uncomment to turn on GDB stub in SEC.
|
# Uncomment to turn on GDB stub in SEC.
|
||||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
||||||
|
|
||||||
[LibraryClasses.common.PEI_CORE]
|
[LibraryClasses.common.PEI_CORE]
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_CORE]
|
[LibraryClasses.common.DXE_CORE]
|
||||||
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
||||||
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
||||||
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
||||||
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
||||||
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_DRIVER]
|
[LibraryClasses.common.DXE_DRIVER]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_APPLICATION]
|
[LibraryClasses.common.UEFI_APPLICATION]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
[LibraryClasses.common.UEFI_DRIVER]
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
# PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
|
||||||
|
|
||||||
|
|
||||||
[LibraryClasses.ARM]
|
[LibraryClasses.ARM]
|
||||||
#
|
#
|
||||||
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
|
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
|
||||||
# This library provides the instrinsic functions generate by a given compiler.
|
# This library provides the instrinsic functions generate by a given compiler.
|
||||||
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
|
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
|
||||||
#
|
#
|
||||||
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
||||||
|
|
||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
XCODE:*_*_ARM_ARCHCC_FLAGS == -arch armv7 -march=armv7
|
XCODE:*_*_ARM_ARCHCC_FLAGS == -arch armv7 -march=armv7
|
||||||
XCODE:*_*_ARM_ARCHASM_FLAGS == -arch armv7
|
XCODE:*_*_ARM_ARCHASM_FLAGS == -arch armv7
|
||||||
XCODE:*_*_ARM_ARCHDLINK_FLAGS == -arch armv7
|
XCODE:*_*_ARM_ARCHDLINK_FLAGS == -arch armv7
|
||||||
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
GCC:*_*_ARM_ARCHCC_FLAGS == -march=armv7-a -mthumb
|
GCC:*_*_ARM_ARCHCC_FLAGS == -march=armv7-a -mthumb
|
||||||
GCC:*_*_ARM_ARCHASM_FLAGS == -march=armv7-a
|
GCC:*_*_ARM_ARCHASM_FLAGS == -march=armv7-a
|
||||||
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
RVCT:*_*_ARM_ARCHCC_FLAGS == --cpu Cortex-A8 --thumb
|
RVCT:*_*_ARM_ARCHCC_FLAGS == --cpu Cortex-A8 --thumb
|
||||||
RVCT:*_*_ARM_ARCHASM_FLAGS == --cpu Cortex-A8
|
RVCT:*_*_ARM_ARCHASM_FLAGS == --cpu Cortex-A8
|
||||||
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
[PcdsFeatureFlag.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
|
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# Control what commands are supported from the UI
|
# Control what commands are supported from the UI
|
||||||
# Turn these on and off to add features or save size
|
# Turn these on and off to add features or save size
|
||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
|
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
|
||||||
|
|
||||||
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
||||||
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
||||||
gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE
|
gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE
|
||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
[PcdsFixedAtBuild.common]
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"BeagleEdk2"
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"BeagleEdk2"
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|32
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|0
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
|
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
||||||
|
|
||||||
# DEBUG_ASSERT_ENABLED 0x01
|
# DEBUG_ASSERT_ENABLED 0x01
|
||||||
# DEBUG_PRINT_ENABLED 0x02
|
# DEBUG_PRINT_ENABLED 0x02
|
||||||
# DEBUG_CODE_ENABLED 0x04
|
# DEBUG_CODE_ENABLED 0x04
|
||||||
# CLEAR_MEMORY_ENABLED 0x08
|
# CLEAR_MEMORY_ENABLED 0x08
|
||||||
# ASSERT_BREAKPOINT_ENABLED 0x10
|
# ASSERT_BREAKPOINT_ENABLED 0x10
|
||||||
# ASSERT_DEADLOOP_ENABLED 0x20
|
# ASSERT_DEADLOOP_ENABLED 0x20
|
||||||
!if $(TARGET) == RELEASE
|
!if $(TARGET) == RELEASE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
||||||
!else
|
!else
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
# DEBUG_INIT 0x00000001 // Initialization
|
# DEBUG_INIT 0x00000001 // Initialization
|
||||||
# DEBUG_WARN 0x00000002 // Warnings
|
# DEBUG_WARN 0x00000002 // Warnings
|
||||||
# DEBUG_LOAD 0x00000004 // Load events
|
# DEBUG_LOAD 0x00000004 // Load events
|
||||||
# DEBUG_FS 0x00000008 // EFI File system
|
# DEBUG_FS 0x00000008 // EFI File system
|
||||||
# DEBUG_POOL 0x00000010 // Alloc & Free's
|
# DEBUG_POOL 0x00000010 // Alloc & Free's
|
||||||
# DEBUG_PAGE 0x00000020 // Alloc & Free's
|
# DEBUG_PAGE 0x00000020 // Alloc & Free's
|
||||||
# DEBUG_INFO 0x00000040 // Verbose
|
# DEBUG_INFO 0x00000040 // Verbose
|
||||||
# DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
|
# DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
|
||||||
# DEBUG_VARIABLE 0x00000100 // Variable
|
# DEBUG_VARIABLE 0x00000100 // Variable
|
||||||
# DEBUG_BM 0x00000400 // Boot Manager
|
# DEBUG_BM 0x00000400 // Boot Manager
|
||||||
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
||||||
# DEBUG_NET 0x00004000 // SNI Driver
|
# DEBUG_NET 0x00004000 // SNI Driver
|
||||||
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
||||||
# DEBUG_LOADFILE 0x00020000 // UNDI Driver
|
# DEBUG_LOADFILE 0x00020000 // UNDI Driver
|
||||||
# DEBUG_EVENT 0x00080000 // Event messages
|
# DEBUG_EVENT 0x00080000 // Event messages
|
||||||
# DEBUG_ERROR 0x80000000 // Error
|
# DEBUG_ERROR 0x80000000 // Error
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
|
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0
|
gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0
|
gEmbeddedTokenSpaceGuid.PcdFlashFvMainSize|0
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optional feature to help prevent EFI memory map fragments
|
# Optional feature to help prevent EFI memory map fragments
|
||||||
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
||||||
# Values are in EFI Pages (4K). DXE Core will make sure that
|
# Values are in EFI Pages (4K). DXE Core will make sure that
|
||||||
# at least this much of each type of memory can be allocated
|
# at least this much of each type of memory can be allocated
|
||||||
# from a single memory range. This way you only end up with
|
# from a single memory range. This way you only end up with
|
||||||
# maximum of two fragements for each type in the memory map
|
# maximum of two fragements for each type in the memory map
|
||||||
# (the memory used, and the free memory that was prereserved
|
# (the memory used, and the free memory that was prereserved
|
||||||
# but not used).
|
# but not used).
|
||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|40
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|40
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|3000
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|3000
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|10
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|10
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Beagle board Specific PCDs
|
# Beagle board Specific PCDs
|
||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000
|
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0x80001000
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0x87FE0000 # stack at top of memory
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0x20000 # 128K stack
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x80000000
|
gEmbeddedTokenSpaceGuid.PcdMemoryBase|0x80000000
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemorySize|0x10000000
|
gEmbeddedTokenSpaceGuid.PcdMemorySize|0x10000000
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x10000000
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x10000000
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80000000
|
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x80000000
|
||||||
gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000
|
gArmTokenSpaceGuid.PcdCpuResetAddress|0x80008000
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
|
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterPeriodInNanoseconds|77
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterPeriodInNanoseconds|77
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|13000000
|
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|13000000
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM Pcds
|
# ARM Pcds
|
||||||
#
|
#
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SD"
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SD"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/zImage"
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/zImage"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|1
|
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|1
|
||||||
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|10
|
gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|10
|
||||||
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/omap3-beagle.dtb"
|
gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L"VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/omap3-beagle.dtb"
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(6696936D-3637-467C-87CB-14EA8248948C)/Uart(115200,8,N,1)/VenPcAnsi()"
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM OS Loader
|
# ARM OS Loader
|
||||||
#
|
#
|
||||||
# BeagleBoard machine type (OMAP3_BEAGLE = 1546) required for ARM Linux:
|
# BeagleBoard machine type (OMAP3_BEAGLE = 1546) required for ARM Linux:
|
||||||
gArmTokenSpaceGuid.PcdArmMachineType|1546
|
gArmTokenSpaceGuid.PcdArmMachineType|1546
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
# Components Section - list of all EDK II Modules needed by this Platform
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
[Components.common]
|
[Components.common]
|
||||||
|
|
||||||
#
|
#
|
||||||
# SEC
|
# SEC
|
||||||
#
|
#
|
||||||
BeagleBoardPkg/Sec/Sec.inf
|
BeagleBoardPkg/Sec/Sec.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# DXE
|
# DXE
|
||||||
#
|
#
|
||||||
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
||||||
# NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
# NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
||||||
NULL|EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
|
NULL|EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
|
||||||
}
|
}
|
||||||
|
|
||||||
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||||
|
|
||||||
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
||||||
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
||||||
|
|
||||||
EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
|
EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
|
||||||
#
|
#
|
||||||
# This version uses semi-hosting console
|
# This version uses semi-hosting console
|
||||||
# EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf {
|
# EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf {
|
||||||
# <LibraryClasses>
|
# <LibraryClasses>
|
||||||
# SerialPortLib|ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
|
# SerialPortLib|ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
|
||||||
# }
|
# }
|
||||||
|
|
||||||
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
||||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
||||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Semi-hosting filesystem
|
# Semi-hosting filesystem
|
||||||
#
|
#
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# FAT filesystem + GPT/MBR partitioning
|
# FAT filesystem + GPT/MBR partitioning
|
||||||
#
|
#
|
||||||
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||||
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||||
FatPkg/EnhancedFatDxe/Fat.inf
|
FatPkg/EnhancedFatDxe/Fat.inf
|
||||||
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB
|
# USB
|
||||||
#
|
#
|
||||||
Omap35xxPkg/PciEmulation/PciEmulation.inf
|
Omap35xxPkg/PciEmulation/PciEmulation.inf
|
||||||
|
|
||||||
#NOTE: Open source EHCI stack doesn't work on Beagleboard.
|
#NOTE: Open source EHCI stack doesn't work on Beagleboard.
|
||||||
#NOTE: UsbBus and UsbMassStorage don't work using iPhone SDK tool chain.
|
#NOTE: UsbBus and UsbMassStorage don't work using iPhone SDK tool chain.
|
||||||
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf {
|
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf {
|
||||||
<PcdsFixedAtBuild>
|
<PcdsFixedAtBuild>
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
||||||
}
|
}
|
||||||
|
|
||||||
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
||||||
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Nand Flash
|
# Nand Flash
|
||||||
#
|
#
|
||||||
Omap35xxPkg/Flash/Flash.inf
|
Omap35xxPkg/Flash/Flash.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# MMC/SD
|
# MMC/SD
|
||||||
#
|
#
|
||||||
Omap35xxPkg/MMCHSDxe/MMCHS.inf {
|
Omap35xxPkg/MMCHSDxe/MMCHS.inf {
|
||||||
<PcdsFixedAtBuild>
|
<PcdsFixedAtBuild>
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800fffff
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# I2C
|
# I2C
|
||||||
#
|
#
|
||||||
Omap35xxPkg/SmbusDxe/Smbus.inf
|
Omap35xxPkg/SmbusDxe/Smbus.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# SoC Drivers
|
# SoC Drivers
|
||||||
#
|
#
|
||||||
Omap35xxPkg/Gpio/Gpio.inf
|
Omap35xxPkg/Gpio/Gpio.inf
|
||||||
Omap35xxPkg/InterruptDxe/InterruptDxe.inf
|
Omap35xxPkg/InterruptDxe/InterruptDxe.inf
|
||||||
Omap35xxPkg/TimerDxe/TimerDxe.inf
|
Omap35xxPkg/TimerDxe/TimerDxe.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Power IC
|
# Power IC
|
||||||
#
|
#
|
||||||
Omap35xxPkg/TPS65950Dxe/TPS65950.inf
|
Omap35xxPkg/TPS65950Dxe/TPS65950.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Application
|
# Application
|
||||||
#
|
#
|
||||||
EmbeddedPkg/Ebl/Ebl.inf
|
EmbeddedPkg/Ebl/Ebl.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bds
|
# Bds
|
||||||
#
|
#
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
ArmPlatformPkg/Bds/Bds.inf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Example Application
|
# Example Application
|
||||||
#
|
#
|
||||||
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
@param Argc Number of command arguments in Argv
|
@param Argc Number of command arguments in Argv
|
||||||
@param Argv Array of strings that represent the parsed command line.
|
@param Argv Array of strings that represent the parsed command line.
|
||||||
Argv[0] is the comamnd name
|
Argv[0] is the command name
|
||||||
|
|
||||||
@return EFI_SUCCESS
|
@return EFI_SUCCESS
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ EblSymbolTable (
|
|||||||
|
|
||||||
@param Argc Number of command arguments in Argv
|
@param Argc Number of command arguments in Argv
|
||||||
@param Argv Array of strings that represent the parsed command line.
|
@param Argv Array of strings that represent the parsed command line.
|
||||||
Argv[0] is the comamnd name
|
Argv[0] is the command name
|
||||||
|
|
||||||
@return EFI_SUCCESS
|
@return EFI_SUCCESS
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ CHAR8 *mTokenList[] = {
|
|||||||
|
|
||||||
@param Argc Number of command arguments in Argv
|
@param Argc Number of command arguments in Argv
|
||||||
@param Argv Array of strings that represent the parsed command line.
|
@param Argv Array of strings that represent the parsed command line.
|
||||||
Argv[0] is the comamnd name
|
Argv[0] is the command name
|
||||||
|
|
||||||
@return EFI_SUCCESS
|
@return EFI_SUCCESS
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
/**
|
/**
|
||||||
Dump memory
|
Dump memory
|
||||||
|
|
||||||
Argv[0] - "md"[.#] # is optiona width 1, 2, 4, or 8. Default 1
|
Argv[0] - "md"[.#] # is optional width 1, 2, 4, or 8. Default 1
|
||||||
Argv[1] - Hex Address to dump
|
Argv[1] - Hex Address to dump
|
||||||
Argv[2] - Number of hex bytes to dump (0x20 is default)
|
Argv[2] - Number of hex bytes to dump (0x20 is default)
|
||||||
|
|
||||||
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
@param Argc Number of command arguments in Argv
|
@param Argc Number of command arguments in Argv
|
||||||
@param Argv Array of strings that represent the parsed command line.
|
@param Argv Array of strings that represent the parsed command line.
|
||||||
Argv[0] is the comamnd name
|
Argv[0] is the command name
|
||||||
|
|
||||||
@return EFI_SUCCESS
|
@return EFI_SUCCESS
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
#include "Ebl.h"
|
||||||
|
|
||||||
#define CMD_SEPARATOR ';'
|
#define CMD_SEPARATOR ';'
|
||||||
#define MAX_ARGS 32
|
#define MAX_ARGS 32
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
#include "Ebl.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Entry point with Argc, Argv. Put your code here.
|
Entry point with Argc, Argv. Put your code here.
|
||||||
|
@ -172,9 +172,6 @@
|
|||||||
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0
|
gEmbeddedTokenSpaceGuid.PcdPrePiHobBase|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0
|
gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiTempMemorySize|0
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiBfvBaseAddress|0
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiBfvSize|0
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optinal feature to help prevent EFI memory map fragments
|
# Optinal feature to help prevent EFI memory map fragments
|
||||||
|
@ -195,7 +195,7 @@ BasicReadRegister (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** ‘p n’
|
/**
|
||||||
Reads the n-th register's value into an output buffer and sends it as a packet
|
Reads the n-th register's value into an output buffer and sends it as a packet
|
||||||
@param SystemContext Register content at time of the exception
|
@param SystemContext Register content at time of the exception
|
||||||
@param InBuffer Pointer to the input buffer received from gdb server
|
@param InBuffer Pointer to the input buffer received from gdb server
|
||||||
@ -225,7 +225,7 @@ ReadNthRegister (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** ‘g’
|
/**
|
||||||
Reads the general registers into an output buffer and sends it as a packet
|
Reads the general registers into an output buffer and sends it as a packet
|
||||||
@param SystemContext Register content at time of the exception
|
@param SystemContext Register content at time of the exception
|
||||||
**/
|
**/
|
||||||
@ -452,7 +452,7 @@ RemoveSingleStep (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** ‘c [addr ]’
|
/**
|
||||||
Continue. addr is Address to resume. If addr is omitted, resume at current
|
Continue. addr is Address to resume. If addr is omitted, resume at current
|
||||||
Address.
|
Address.
|
||||||
|
|
||||||
|
@ -132,9 +132,8 @@ GdbStubEntry (
|
|||||||
Status = DebugSupport->GetMaximumProcessorIndex (DebugSupport, &gMaxProcessorIndex);
|
Status = DebugSupport->GetMaximumProcessorIndex (DebugSupport, &gMaxProcessorIndex);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
// Make this an EFI_D_INFO after we get everything debugged.
|
DEBUG ((EFI_D_INFO, "Debug Support Protocol ISA %x\n", DebugSupport->Isa));
|
||||||
DEBUG ((EFI_D_ERROR, "Debug Support Protocol ISA %x\n", DebugSupport->Isa));
|
DEBUG ((EFI_D_INFO, "Debug Support Protocol Processor Index %d\n", gMaxProcessorIndex));
|
||||||
DEBUG ((EFI_D_ERROR, "Debug Support Protocol Processor Index %d\n", gMaxProcessorIndex));
|
|
||||||
|
|
||||||
// Call processor-specific init routine
|
// Call processor-specific init routine
|
||||||
InitializeProcessor();
|
InitializeProcessor();
|
||||||
|
@ -210,7 +210,7 @@ BasicReadRegister (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** ‘p n’
|
/**
|
||||||
Reads the n-th register's value into an output buffer and sends it as a packet
|
Reads the n-th register's value into an output buffer and sends it as a packet
|
||||||
@param SystemContext Register content at time of the exception
|
@param SystemContext Register content at time of the exception
|
||||||
@param InBuffer Pointer to the input buffer received from gdb server
|
@param InBuffer Pointer to the input buffer received from gdb server
|
||||||
@ -240,7 +240,7 @@ ReadNthRegister (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** ‘g’
|
/**
|
||||||
Reads the general registers into an output buffer and sends it as a packet
|
Reads the general registers into an output buffer and sends it as a packet
|
||||||
@param SystemContext Register content at time of the exception
|
@param SystemContext Register content at time of the exception
|
||||||
**/
|
**/
|
||||||
@ -390,7 +390,7 @@ WriteGeneralRegisters (
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** ‘c [addr ]’
|
/**
|
||||||
Continue. addr is Address to resume. If addr is omitted, resume at current
|
Continue. addr is Address to resume. If addr is omitted, resume at current
|
||||||
Address.
|
Address.
|
||||||
|
|
||||||
|
@ -678,7 +678,6 @@ GdbFWrite (
|
|||||||
|
|
||||||
case 'F':
|
case 'F':
|
||||||
return;
|
return;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,11 +37,11 @@ SerialPortInitialize (
|
|||||||
/**
|
/**
|
||||||
Write data to serial device.
|
Write data to serial device.
|
||||||
|
|
||||||
@param Buffer Point of data buffer which need to be writed.
|
@param Buffer Point of data buffer which need to be written.
|
||||||
@param NumberOfBytes Number of output bytes which are cached in Buffer.
|
@param NumberOfBytes Number of output bytes which are cached in Buffer.
|
||||||
|
|
||||||
@retval 0 Write data failed.
|
@retval 0 Write data failed.
|
||||||
@retval !0 Actual number of bytes writed to serial device.
|
@retval !0 Actual number of bytes written to serial device.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
@ -56,13 +56,13 @@ SerialPortWrite (
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Read data from serial device and save the datas in buffer.
|
Read data from serial device and save the data in buffer.
|
||||||
|
|
||||||
@param Buffer Point of data buffer which need to be writed.
|
@param Buffer Point of data buffer which need to be written.
|
||||||
@param NumberOfBytes Number of output bytes which are cached in Buffer.
|
@param NumberOfBytes Number of output bytes which are cached in Buffer.
|
||||||
|
|
||||||
@retval 0 Read data failed.
|
@retval 0 Read data failed.
|
||||||
@retval !0 Aactual number of bytes read from serial device.
|
@retval !0 Actual number of bytes read from serial device.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
|
@ -25,121 +25,146 @@
|
|||||||
CHAR16* mLogBuffer = NULL;
|
CHAR16* mLogBuffer = NULL;
|
||||||
UINTN mLogRemainChar = 0;
|
UINTN mLogRemainChar = 0;
|
||||||
|
|
||||||
CHAR16* DiagnosticInitLog(UINTN MaxBufferChar) {
|
CHAR16*
|
||||||
mLogRemainChar = MaxBufferChar;
|
DiagnosticInitLog (
|
||||||
mLogBuffer = AllocatePool ((UINTN)MaxBufferChar * sizeof(CHAR16));
|
UINTN MaxBufferChar
|
||||||
return mLogBuffer;
|
)
|
||||||
|
{
|
||||||
|
mLogRemainChar = MaxBufferChar;
|
||||||
|
mLogBuffer = AllocatePool ((UINTN)MaxBufferChar * sizeof(CHAR16));
|
||||||
|
return mLogBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINTN DiagnosticLog(CONST CHAR16* Str) {
|
UINTN
|
||||||
UINTN len = StrLen (Str);
|
DiagnosticLog (
|
||||||
if (len <= mLogRemainChar) {
|
CONST CHAR16* Str
|
||||||
mLogRemainChar -= len;
|
)
|
||||||
StrCpy (mLogBuffer, Str);
|
{
|
||||||
mLogBuffer += len;
|
UINTN len = StrLen (Str);
|
||||||
return len;
|
if (len <= mLogRemainChar) {
|
||||||
} else {
|
mLogRemainChar -= len;
|
||||||
return 0;
|
StrCpy (mLogBuffer, Str);
|
||||||
}
|
mLogBuffer += len;
|
||||||
|
return len;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID GenerateRandomBuffer(VOID* Buffer, UINTN BufferSize) {
|
VOID
|
||||||
UINT64 i;
|
GenerateRandomBuffer (
|
||||||
UINT64* Buffer64 = (UINT64*)Buffer;
|
VOID* Buffer,
|
||||||
|
UINTN BufferSize
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINT64 i;
|
||||||
|
UINT64* Buffer64 = (UINT64*)Buffer;
|
||||||
|
|
||||||
for (i = 0; i < (BufferSize >> 3); i++) {
|
for (i = 0; i < (BufferSize >> 3); i++) {
|
||||||
*Buffer64 = i | (~i << 32);
|
*Buffer64 = i | (~i << 32);
|
||||||
Buffer64++;
|
Buffer64++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN CompareBuffer(VOID *BufferA, VOID *BufferB, UINTN BufferSize) {
|
BOOLEAN
|
||||||
UINTN i;
|
CompareBuffer (
|
||||||
UINT64* BufferA64 = (UINT64*)BufferA;
|
VOID *BufferA,
|
||||||
UINT64* BufferB64 = (UINT64*)BufferB;
|
VOID *BufferB,
|
||||||
|
UINTN BufferSize
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINTN i;
|
||||||
|
UINT64* BufferA64 = (UINT64*)BufferA;
|
||||||
|
UINT64* BufferB64 = (UINT64*)BufferB;
|
||||||
|
|
||||||
for (i = 0; i < (BufferSize >> 3); i++) {
|
for (i = 0; i < (BufferSize >> 3); i++) {
|
||||||
if (*BufferA64 != *BufferB64) {
|
if (*BufferA64 != *BufferB64) {
|
||||||
DEBUG((EFI_D_ERROR, "CompareBuffer: Error at %i", i));
|
DEBUG((EFI_D_ERROR, "CompareBuffer: Error at %i", i));
|
||||||
DEBUG((EFI_D_ERROR, "(0x%lX) != (0x%lX)\n", *BufferA64, *BufferB64));
|
DEBUG((EFI_D_ERROR, "(0x%lX) != (0x%lX)\n", *BufferA64, *BufferB64));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
|
||||||
BufferA64++;
|
|
||||||
BufferB64++;
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
BufferA64++;
|
||||||
|
BufferB64++;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS MmcReadWriteDataTest(MMC_HOST_INSTANCE *MmcHostInstance, EFI_LBA Lba, UINTN BufferSize) {
|
EFI_STATUS
|
||||||
VOID *BackBuffer;
|
MmcReadWriteDataTest (
|
||||||
VOID *WriteBuffer;
|
MMC_HOST_INSTANCE *MmcHostInstance,
|
||||||
VOID *ReadBuffer;
|
EFI_LBA Lba,
|
||||||
EFI_STATUS Status;
|
UINTN BufferSize
|
||||||
|
)
|
||||||
// Check if a Media is Present
|
{
|
||||||
if (!MmcHostInstance->BlockIo.Media->MediaPresent) {
|
VOID *BackBuffer;
|
||||||
DiagnosticLog(L"ERROR: No Media Present\n");
|
VOID *WriteBuffer;
|
||||||
return EFI_NO_MEDIA;
|
VOID *ReadBuffer;
|
||||||
}
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (MmcHostInstance->State != MmcTransferState) {
|
// Check if a Media is Present
|
||||||
DiagnosticLog(L"ERROR: Not ready for Transfer state\n");
|
if (!MmcHostInstance->BlockIo.Media->MediaPresent) {
|
||||||
return EFI_NOT_READY;
|
DiagnosticLog (L"ERROR: No Media Present\n");
|
||||||
}
|
return EFI_NO_MEDIA;
|
||||||
|
}
|
||||||
|
|
||||||
BackBuffer = AllocatePool(BufferSize);
|
if (MmcHostInstance->State != MmcTransferState) {
|
||||||
WriteBuffer = AllocatePool(BufferSize);
|
DiagnosticLog (L"ERROR: Not ready for Transfer state\n");
|
||||||
ReadBuffer = AllocatePool(BufferSize);
|
return EFI_NOT_READY;
|
||||||
|
}
|
||||||
|
|
||||||
// Read (and save) buffer at a specific location
|
BackBuffer = AllocatePool (BufferSize);
|
||||||
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,BackBuffer);
|
WriteBuffer = AllocatePool (BufferSize);
|
||||||
if (Status != EFI_SUCCESS) {
|
ReadBuffer = AllocatePool (BufferSize);
|
||||||
DiagnosticLog(L"ERROR: Fail to Read Block (1)\n");
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write buffer at the same location
|
// Read (and save) buffer at a specific location
|
||||||
GenerateRandomBuffer(WriteBuffer,BufferSize);
|
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,BackBuffer);
|
||||||
Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,WriteBuffer);
|
if (Status != EFI_SUCCESS) {
|
||||||
if (Status != EFI_SUCCESS) {
|
DiagnosticLog (L"ERROR: Fail to Read Block (1)\n");
|
||||||
DiagnosticLog(L"ERROR: Fail to Write Block (1)\n");
|
return Status;
|
||||||
return Status;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Read the buffer at the same location
|
// Write buffer at the same location
|
||||||
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,ReadBuffer);
|
GenerateRandomBuffer (WriteBuffer,BufferSize);
|
||||||
if (Status != EFI_SUCCESS) {
|
Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,WriteBuffer);
|
||||||
DiagnosticLog(L"ERROR: Fail to Read Block (2)\n");
|
if (Status != EFI_SUCCESS) {
|
||||||
return Status;
|
DiagnosticLog (L"ERROR: Fail to Write Block (1)\n");
|
||||||
}
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
// Check that is conform
|
// Read the buffer at the same location
|
||||||
if (!CompareBuffer(ReadBuffer,WriteBuffer,BufferSize)) {
|
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,ReadBuffer);
|
||||||
DiagnosticLog(L"ERROR: Fail to Read/Write Block (1)\n");
|
if (Status != EFI_SUCCESS) {
|
||||||
return EFI_INVALID_PARAMETER;
|
DiagnosticLog (L"ERROR: Fail to Read Block (2)\n");
|
||||||
}
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
// Restore content at the original location
|
// Check that is conform
|
||||||
Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,BackBuffer);
|
if (!CompareBuffer (ReadBuffer,WriteBuffer,BufferSize)) {
|
||||||
if (Status != EFI_SUCCESS) {
|
DiagnosticLog (L"ERROR: Fail to Read/Write Block (1)\n");
|
||||||
DiagnosticLog(L"ERROR: Fail to Write Block (2)\n");
|
return EFI_INVALID_PARAMETER;
|
||||||
return Status;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Read the restored content
|
// Restore content at the original location
|
||||||
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,ReadBuffer);
|
Status = MmcWriteBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,BackBuffer);
|
||||||
if (Status != EFI_SUCCESS) {
|
if (Status != EFI_SUCCESS) {
|
||||||
DiagnosticLog(L"ERROR: Fail to Read Block (3)\n");
|
DiagnosticLog (L"ERROR: Fail to Write Block (2)\n");
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the content is correct
|
// Read the restored content
|
||||||
if (!CompareBuffer(ReadBuffer,BackBuffer,BufferSize)) {
|
Status = MmcReadBlocks (&(MmcHostInstance->BlockIo), MmcHostInstance->BlockIo.Media->MediaId,Lba,BufferSize,ReadBuffer);
|
||||||
DiagnosticLog(L"ERROR: Fail to Read/Write Block (2)\n");
|
if (Status != EFI_SUCCESS) {
|
||||||
return EFI_INVALID_PARAMETER;
|
DiagnosticLog (L"ERROR: Fail to Read Block (3)\n");
|
||||||
}
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
// Check the content is correct
|
||||||
|
if (!CompareBuffer (ReadBuffer,BackBuffer,BufferSize)) {
|
||||||
|
DiagnosticLog (L"ERROR: Fail to Read/Write Block (2)\n");
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -155,55 +180,55 @@ MmcDriverDiagnosticsRunDiagnostics (
|
|||||||
OUT CHAR16 **Buffer
|
OUT CHAR16 **Buffer
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LIST_ENTRY *CurrentLink;
|
LIST_ENTRY *CurrentLink;
|
||||||
MMC_HOST_INSTANCE *MmcHostInstance;
|
MMC_HOST_INSTANCE *MmcHostInstance;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (Language == NULL ||
|
if ((Language == NULL) ||
|
||||||
ErrorType == NULL ||
|
(ErrorType == NULL) ||
|
||||||
Buffer == NULL ||
|
(Buffer == NULL) ||
|
||||||
ControllerHandle == NULL ||
|
(ControllerHandle == NULL) ||
|
||||||
BufferSize == NULL) {
|
(BufferSize == NULL)) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
*ErrorType = NULL;
|
*ErrorType = NULL;
|
||||||
*BufferSize = DIAGNOSTIC_LOGBUFFER_MAXCHAR;
|
*BufferSize = DIAGNOSTIC_LOGBUFFER_MAXCHAR;
|
||||||
*Buffer = DiagnosticInitLog(DIAGNOSTIC_LOGBUFFER_MAXCHAR);
|
*Buffer = DiagnosticInitLog (DIAGNOSTIC_LOGBUFFER_MAXCHAR);
|
||||||
|
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics\n");
|
DiagnosticLog (L"MMC Driver Diagnostics\n");
|
||||||
|
|
||||||
// For each MMC instance
|
// For each MMC instance
|
||||||
CurrentLink = mMmcHostPool.ForwardLink;
|
CurrentLink = mMmcHostPool.ForwardLink;
|
||||||
while (CurrentLink != NULL && CurrentLink != &mMmcHostPool && (Status == EFI_SUCCESS)) {
|
while (CurrentLink != NULL && CurrentLink != &mMmcHostPool && (Status == EFI_SUCCESS)) {
|
||||||
MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK(CurrentLink);
|
MmcHostInstance = MMC_HOST_INSTANCE_FROM_LINK(CurrentLink);
|
||||||
ASSERT(MmcHostInstance != NULL);
|
ASSERT(MmcHostInstance != NULL);
|
||||||
|
|
||||||
// LBA=1 Size=BlockSize
|
// LBA=1 Size=BlockSize
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics - Test: First Block\n");
|
DiagnosticLog (L"MMC Driver Diagnostics - Test: First Block\n");
|
||||||
Status = MmcReadWriteDataTest(MmcHostInstance, 1, MmcHostInstance->BlockIo.Media->BlockSize);
|
Status = MmcReadWriteDataTest (MmcHostInstance, 1, MmcHostInstance->BlockIo.Media->BlockSize);
|
||||||
|
|
||||||
// LBA=2 Size=BlockSize
|
// LBA=2 Size=BlockSize
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics - Test: Second Block\n");
|
DiagnosticLog (L"MMC Driver Diagnostics - Test: Second Block\n");
|
||||||
Status = MmcReadWriteDataTest(MmcHostInstance, 2, MmcHostInstance->BlockIo.Media->BlockSize);
|
Status = MmcReadWriteDataTest (MmcHostInstance, 2, MmcHostInstance->BlockIo.Media->BlockSize);
|
||||||
|
|
||||||
// LBA=10 Size=BlockSize
|
// LBA=10 Size=BlockSize
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics - Test: Any Block\n");
|
DiagnosticLog (L"MMC Driver Diagnostics - Test: Any Block\n");
|
||||||
Status = MmcReadWriteDataTest(MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock >> 1, MmcHostInstance->BlockIo.Media->BlockSize);
|
Status = MmcReadWriteDataTest (MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock >> 1, MmcHostInstance->BlockIo.Media->BlockSize);
|
||||||
|
|
||||||
// LBA=LastBlock Size=BlockSize
|
// LBA=LastBlock Size=BlockSize
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics - Test: Last Block\n");
|
DiagnosticLog (L"MMC Driver Diagnostics - Test: Last Block\n");
|
||||||
Status = MmcReadWriteDataTest(MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock, MmcHostInstance->BlockIo.Media->BlockSize);
|
Status = MmcReadWriteDataTest (MmcHostInstance, MmcHostInstance->BlockIo.Media->LastBlock, MmcHostInstance->BlockIo.Media->BlockSize);
|
||||||
|
|
||||||
// LBA=1 Size=2*BlockSize
|
// LBA=1 Size=2*BlockSize
|
||||||
DiagnosticLog(L"MMC Driver Diagnostics - Test: First Block / 2 BlockSSize\n");
|
DiagnosticLog (L"MMC Driver Diagnostics - Test: First Block / 2 BlockSSize\n");
|
||||||
Status = MmcReadWriteDataTest(MmcHostInstance, 1, 2*MmcHostInstance->BlockIo.Media->BlockSize);
|
Status = MmcReadWriteDataTest (MmcHostInstance, 1, 2*MmcHostInstance->BlockIo.Media->BlockSize);
|
||||||
|
|
||||||
CurrentLink = CurrentLink->ForwardLink;
|
CurrentLink = CurrentLink->ForwardLink;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -43,9 +43,6 @@
|
|||||||
IoLib
|
IoLib
|
||||||
ArmLib
|
ArmLib
|
||||||
|
|
||||||
[Guids]
|
|
||||||
|
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gHardwareInterruptProtocolGuid
|
gHardwareInterruptProtocolGuid
|
||||||
gEfiCpuArchProtocolGuid
|
gEfiCpuArchProtocolGuid
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
@param Argc Number of command arguments in Argv
|
@param Argc Number of command arguments in Argv
|
||||||
@param Argv Array of strings that represent the parsed command line.
|
@param Argv Array of strings that represent the parsed command line.
|
||||||
Argv[0] is the comamnd name
|
Argv[0] is the command name
|
||||||
|
|
||||||
@return EFI_SUCCESS
|
@return EFI_SUCCESS
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user