Compare commits
86 Commits
edk2-stabl
...
system76-c
Author | SHA1 | Date | |
---|---|---|---|
f40dc199c2 | |||
3f54e8f57a | |||
55849a4a46 | |||
74f2015276 | |||
6dff36c9b2 | |||
814c0fa862 | |||
a05aa4aff0 | |||
30c84e8277 | |||
2ba9869baa | |||
826b9d30cf | |||
b0e7e3919f | |||
976842130a | |||
52d5d1b2c5 | |||
7050fc3a26 | |||
0eca9e3c1a | |||
19304f2144 | |||
b062ed0c86 | |||
d9cf95c6a2 | |||
75a5161506 | |||
d193b18023 | |||
061df3962f | |||
f6e7c15556 | |||
95fb70f34d | |||
900debdeec | |||
33006e4f4e | |||
b8fbf69c16 | |||
ba13872223 | |||
eb1e7a0284 | |||
eba6c7c6ce | |||
a5f556c37b | |||
e9023ae655 | |||
cdd43b2533 | |||
d1a6917813 | |||
81e096bda1 | |||
42f99de779 | |||
a03327088a | |||
4ba839c5c8 | |||
6bd9d60b41 | |||
964f80253a | |||
47794944e6 | |||
8f008298cc | |||
783f22ecc3 | |||
81a93fb3a9 | |||
30dc65997f | |||
93f8c4a6d5 | |||
51be9d0425 | |||
31a4e13c19 | |||
9d32ca34d2 | |||
0f9b597012 | |||
19e12d66fe | |||
9332332724 | |||
239e19e391 | |||
c8a3cdb675 | |||
40147bbf14 | |||
cf2bde63a1 | |||
f6f2ff4904 | |||
a26aad44d1 | |||
3596140a69 | |||
9b7ce3b9a1 | |||
147c02d66e | |||
768fe7365f | |||
0f6978e314 | |||
0a8abc3c4d | |||
54b26ae48f | |||
9d72e4b922 | |||
7f094cdf45 | |||
b0f8ea3c9c | |||
731869826b | |||
a49a99ef5e | |||
d06545cd3d | |||
575764deeb | |||
ed1cf61e3e | |||
091f5d689f | |||
d944c24078 | |||
bdd22050f6 | |||
0286bfae44 | |||
735fae0452 | |||
8de2a8523d | |||
e4fc0fbacb | |||
fceee0d621 | |||
d67d692ee2 | |||
927fc0e4b5 | |||
04515ff368 | |||
439e7d2556 | |||
0554ac9dd0 | |||
0a679652e8 |
@ -15,7 +15,6 @@
|
||||
|
||||
#include <WebServer.h>
|
||||
#include <Library/MtrrLib.h>
|
||||
#include <Register/Msr.h>
|
||||
|
||||
#define VARIABLE_MTRR_VALID 0x800
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include <Guid/EventGroup.h>
|
||||
|
||||
#include <Register/Msr.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
|
@ -141,6 +141,7 @@
|
||||
ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
|
||||
ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
||||
ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
|
||||
ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
||||
ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||
ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/** @file
|
||||
*
|
||||
* Copyright (c) 2011-2018, ARM Limited. All rights reserved.
|
||||
* Copyright (c) 2011-2017, ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* are licensed and made available under the terms and conditions of the BSD License
|
||||
@ -467,7 +467,7 @@ GicV3DxeInitialize (
|
||||
|
||||
// Route the SPIs to the primary CPU. SPIs start at the INTID 32
|
||||
for (Index = 0; Index < (mGicNumInterrupts - 32); Index++) {
|
||||
MmioWrite64 (
|
||||
MmioWrite32 (
|
||||
mGicDistributorBase + ARM_GICD_IROUTER + (Index * 8),
|
||||
CpuTarget
|
||||
);
|
||||
|
161
ArmPkg/Include/IndustryStandard/ArmTrustZoneSmc.h
Normal file
161
ArmPkg/Include/IndustryStandard/ArmTrustZoneSmc.h
Normal file
@ -0,0 +1,161 @@
|
||||
/** @file
|
||||
*
|
||||
* Copyright (c) 2012-2013, ARM Limited. All rights reserved.
|
||||
*
|
||||
* This program and the accompanying materials
|
||||
* 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
|
||||
* http://opensource.org/licenses/bsd-license.php
|
||||
*
|
||||
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
*
|
||||
**/
|
||||
|
||||
#ifndef __ARM_TRUSTZONE_SMC_H__
|
||||
#define __ARM_TRUSTZONE_SMC_H__
|
||||
|
||||
#define ARM_TRUSTZONE_UID_4LETTERID 0x1
|
||||
#define ARM_TRUSTZONE_UID_MD5 0x2
|
||||
|
||||
#define ARM_TRUSTZONE_ARM_UID 0x40524d48 // "ARMH"
|
||||
|
||||
#define IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,Region) (((UINTN)(Rx) >= (UINTN)ARM_TRUSTZONE_##Region##_SMC_ID_START) && ((UINTN)(Rx) <= (UINTN)ARM_TRUSTZONE_##Region##_SMC_ID_END))
|
||||
|
||||
#define IS_ARM_TRUSTZONE_DEPRECIATED_SMC(Rx) ((UINTN)(Rx) <= (UINTN)ARM_TRUSTZONE_DEPRECIATED_SMC_ID_END)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_OS)
|
||||
#define IS_ARM_TRUSTZONE_ARM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,ARM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_SIP_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,SIP_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ODM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,ODM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_OEM_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,OEM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_USER_FAST)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC(Rx,TRUSTED_OS_FAST)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,Region) ((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_PRESENCE)
|
||||
#define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,Region) (((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID) || \
|
||||
((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+1) || \
|
||||
((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+2) || \
|
||||
((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+3) || \
|
||||
((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_UID+4))
|
||||
#define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,Region) (((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_REVISION) || \
|
||||
((Rx) == ARM_TRUSTZONE_##Region##_SMC_ID_REVISION+1))
|
||||
#define IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,Region) (((Rx) >= ARM_TRUSTZONE_##Region##_SMC_ID_RPC_START) && \
|
||||
((Rx) <= ARM_TRUSTZONE_##Region##_SMC_ID_RPC_END))
|
||||
|
||||
#define ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_UID)
|
||||
#define ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_REVISION)
|
||||
#define ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,Region) ((Rx) - ARM_TRUSTZONE_##Region##_SMC_ID_RPC_START)
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_OS)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,ARM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,ARM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,ARM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,ARM_FAST)
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,ARM_FAST)
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,ARM_FAST)
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,ARM_FAST)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,ODM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,ODM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,ODM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,ODM_FAST)
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,ODM_FAST)
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,ODM_FAST)
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,ODM_FAST)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,OEM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,OEM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,OEM_FAST)
|
||||
#define IS_ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,OEM_FAST)
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,OEM_FAST)
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,OEM_FAST)
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,OEM_FAST)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,SIP_FAST)
|
||||
#define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,SIP_FAST)
|
||||
#define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,SIP_FAST)
|
||||
#define IS_ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,SIP_FAST)
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,SIP_FAST)
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,SIP_FAST)
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,SIP_FAST)
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_USER_FAST)
|
||||
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_PRESENCE(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_PRESENCE(Rx,TRUSTED_OS_FAST)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID(Rx,TRUSTED_OS_FAST)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION(Rx,TRUSTED_OS_FAST)
|
||||
#define IS_ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC(Rx) IS_ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC(Rx,TRUSTED_OS_FAST)
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_UID_INDEX(Rx,TRUSTED_OS_FAST)
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_REVISION_INDEX(Rx,TRUSTED_OS_FAST)
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_INDEX(Rx) ARM_TRUSTZONE_SUPPORTED_SMC_ID_RPC_INDEX(Rx,TRUSTED_OS_FAST)
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_DEPRECIATED_SMC_ID_START 0x00000000
|
||||
#define ARM_TRUSTZONE_DEPRECIATED_SMC_ID_END 0x01FFFFFF
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_START 0x02000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_END 0x1FFFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_START 0x02000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_SMC_ID_RPC_END 0x1FFFFFFF
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_START 0x80000000
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_END 0x80FFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_START 0x80000000
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_RPC_END 0x80FFFEFF
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_PRESENCE 0x80FFFF00
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_UID 0x80FFFF10
|
||||
#define ARM_TRUSTZONE_ARM_FAST_SMC_ID_REVISION 0x80FFFF20
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_START 0x81000000
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_END 0x81FFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_START 0x81000000
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_RPC_END 0x81FFFEFF
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_PRESENCE 0x81FFFF00
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_UID 0x81FFFF10
|
||||
#define ARM_TRUSTZONE_SIP_FAST_SMC_ID_REVISION 0x81FFFF20
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_START 0x82000000
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_END 0x82FFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_START 0x82000000
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_RPC_END 0x82FFFEFF
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_PRESENCE 0x82FFFF00
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_UID 0x82FFFF10
|
||||
#define ARM_TRUSTZONE_ODM_FAST_SMC_ID_REVISION 0x82FFFF20
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_START 0x83000000
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_END 0x83FFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_START 0x83000000
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_RPC_END 0x83FFFEFF
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_PRESENCE 0x83FFFF00
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_UID 0x83FFFF10
|
||||
#define ARM_TRUSTZONE_OEM_FAST_SMC_ID_REVISION 0x83FFFF20
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_START 0xF0000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_END 0xF1FFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_START 0xF0000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_USER_FAST_SMC_ID_RPC_END 0xF1FFFEFF
|
||||
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_START 0xF2000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_END 0xFFFFFFFF
|
||||
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_START 0xF2000000
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_RPC_END 0xFFFFFEFF
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_PRESENCE 0xF2FFFF00
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_UID 0xF2FFFF10
|
||||
#define ARM_TRUSTZONE_TRUSTED_OS_FAST_SMC_ID_REVISION 0xF2FFFF20
|
||||
|
||||
#endif
|
@ -59,8 +59,7 @@ VOID
|
||||
EFIAPI
|
||||
ArmReplaceLiveTranslationEntry (
|
||||
IN UINT64 *Entry,
|
||||
IN UINT64 Value,
|
||||
IN UINT64 RegionStart
|
||||
IN UINT64 Value
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
|
@ -124,15 +124,15 @@ ASM_FUNC(ArmSetMAIR)
|
||||
// IN VOID *MVA // X1
|
||||
// );
|
||||
ASM_FUNC(ArmUpdateTranslationTableEntry)
|
||||
dsb nshst
|
||||
lsr x1, x1, #12
|
||||
dc civac, x0 // Clean and invalidate data line
|
||||
dsb sy
|
||||
EL1_OR_EL2_OR_EL3(x0)
|
||||
1: tlbi vaae1, x1 // TLB Invalidate VA , EL1
|
||||
b 4f
|
||||
2: tlbi vae2, x1 // TLB Invalidate VA , EL2
|
||||
b 4f
|
||||
3: tlbi vae3, x1 // TLB Invalidate VA , EL3
|
||||
4: dsb nsh
|
||||
4: dsb sy
|
||||
isb
|
||||
ret
|
||||
|
||||
|
@ -129,14 +129,13 @@ STATIC
|
||||
VOID
|
||||
ReplaceLiveEntry (
|
||||
IN UINT64 *Entry,
|
||||
IN UINT64 Value,
|
||||
IN UINT64 RegionStart
|
||||
IN UINT64 Value
|
||||
)
|
||||
{
|
||||
if (!ArmMmuEnabled ()) {
|
||||
*Entry = Value;
|
||||
} else {
|
||||
ArmReplaceLiveTranslationEntry (Entry, Value, RegionStart);
|
||||
ArmReplaceLiveTranslationEntry (Entry, Value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -297,8 +296,7 @@ GetBlockEntryListFromAddress (
|
||||
|
||||
// Fill the BlockEntry with the new TranslationTable
|
||||
ReplaceLiveEntry (BlockEntry,
|
||||
(UINTN)TranslationTable | TableAttributes | TT_TYPE_TABLE_ENTRY,
|
||||
RegionStart);
|
||||
((UINTN)TranslationTable & TT_ADDRESS_MASK_DESCRIPTION_TABLE) | TableAttributes | TT_TYPE_TABLE_ENTRY);
|
||||
}
|
||||
} else {
|
||||
if (IndexLevel != PageLevel) {
|
||||
@ -377,8 +375,6 @@ UpdateRegionMapping (
|
||||
*BlockEntry &= BlockEntryMask;
|
||||
*BlockEntry |= (RegionStart & TT_ADDRESS_MASK_BLOCK_ENTRY) | Attributes | Type;
|
||||
|
||||
ArmUpdateTranslationTableEntry (BlockEntry, (VOID *)RegionStart);
|
||||
|
||||
// Go to the next BlockEntry
|
||||
RegionStart += BlockEntrySize;
|
||||
RegionLength -= BlockEntrySize;
|
||||
@ -386,7 +382,7 @@ UpdateRegionMapping (
|
||||
|
||||
// Break the inner loop when next block is a table
|
||||
// Rerun GetBlockEntryListFromAddress to avoid page table memory leak
|
||||
if (TableLevel != 3 && BlockEntry <= LastBlockEntry &&
|
||||
if (TableLevel != 3 &&
|
||||
(*BlockEntry & TT_TYPE_MASK) == TT_TYPE_TABLE_ENTRY) {
|
||||
break;
|
||||
}
|
||||
@ -491,6 +487,9 @@ ArmSetMemoryAttributes (
|
||||
return Status;
|
||||
}
|
||||
|
||||
// Invalidate all TLB entries so changes are synced
|
||||
ArmInvalidateTlb ();
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
@ -513,6 +512,9 @@ SetMemoryRegionAttribute (
|
||||
return Status;
|
||||
}
|
||||
|
||||
// Invalidate all TLB entries so changes are synced
|
||||
ArmInvalidateTlb ();
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -32,14 +32,13 @@
|
||||
dmb sy
|
||||
dc ivac, x0
|
||||
|
||||
// flush translations for the target address from the TLBs
|
||||
lsr x2, x2, #12
|
||||
// flush the TLBs
|
||||
.if \el == 1
|
||||
tlbi vaae1, x2
|
||||
tlbi vmalle1
|
||||
.else
|
||||
tlbi vae\el, x2
|
||||
tlbi alle\el
|
||||
.endif
|
||||
dsb nsh
|
||||
dsb sy
|
||||
|
||||
// re-enable the MMU
|
||||
msr sctlr_el\el, x8
|
||||
@ -49,20 +48,19 @@
|
||||
//VOID
|
||||
//ArmReplaceLiveTranslationEntry (
|
||||
// IN UINT64 *Entry,
|
||||
// IN UINT64 Value,
|
||||
// IN UINT64 Address
|
||||
// IN UINT64 Value
|
||||
// )
|
||||
ASM_FUNC(ArmReplaceLiveTranslationEntry)
|
||||
|
||||
// disable interrupts
|
||||
mrs x4, daif
|
||||
mrs x2, daif
|
||||
msr daifset, #0xf
|
||||
isb
|
||||
|
||||
// clean and invalidate first so that we don't clobber
|
||||
// adjacent entries that are dirty in the caches
|
||||
dc civac, x0
|
||||
dsb nsh
|
||||
dsb ish
|
||||
|
||||
EL1_OR_EL2_OR_EL3(x3)
|
||||
1:__replace_entry 1
|
||||
@ -71,7 +69,7 @@ ASM_FUNC(ArmReplaceLiveTranslationEntry)
|
||||
b 4f
|
||||
3:__replace_entry 3
|
||||
|
||||
4:msr daif, x4
|
||||
4:msr daif, x2
|
||||
ret
|
||||
|
||||
ASM_GLOBAL ASM_PFX(ArmReplaceLiveTranslationEntrySize)
|
||||
|
@ -135,11 +135,6 @@ PopulateLevel2PageTable (
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
||||
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_BACK;
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK_NONSHAREABLE:
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK_NONSHAREABLE:
|
||||
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_BACK;
|
||||
PageAttributes &= ~TT_DESCRIPTOR_PAGE_S_SHARED;
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH:
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
|
||||
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_THROUGH;
|
||||
@ -244,10 +239,6 @@ FillTranslationTable (
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(0);
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK_NONSHAREABLE:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(0);
|
||||
Attributes &= ~TT_DESCRIPTOR_SECTION_S_SHARED;
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(0);
|
||||
break;
|
||||
@ -260,10 +251,6 @@ FillTranslationTable (
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK_NONSHAREABLE:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);
|
||||
Attributes &= ~TT_DESCRIPTOR_SECTION_S_SHARED;
|
||||
break;
|
||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
|
||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(1);
|
||||
break;
|
||||
@ -294,8 +281,8 @@ FillTranslationTable (
|
||||
PhysicalBase += TT_DESCRIPTOR_SECTION_SIZE;
|
||||
RemainLength -= TT_DESCRIPTOR_SECTION_SIZE;
|
||||
} else {
|
||||
PageMapLength = MIN (RemainLength, TT_DESCRIPTOR_SECTION_SIZE -
|
||||
(PhysicalBase % TT_DESCRIPTOR_SECTION_SIZE));
|
||||
PageMapLength = MIN (RemainLength, TT_DESCRIPTOR_SECTION_SIZE) -
|
||||
(PhysicalBase % TT_DESCRIPTOR_SECTION_SIZE);
|
||||
|
||||
// Case: Physical address aligned on the Section Size (1MB) && the length
|
||||
// does not fill a section
|
||||
@ -744,11 +731,6 @@ ArmSetMemoryAttributes (
|
||||
UINT64 ChunkLength;
|
||||
BOOLEAN FlushTlbs;
|
||||
|
||||
if (BaseAddress > (UINT64)MAX_ADDRESS) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
Length = MIN (Length, (UINT64)MAX_ADDRESS - BaseAddress + 1);
|
||||
if (Length == 0) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
@ -49,4 +49,6 @@
|
||||
|
||||
[BuildOptions]
|
||||
GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-lto
|
||||
*_GCC46_*_CC_FLAGS = -fno-tree-vrp
|
||||
*_GCC47_*_CC_FLAGS = -fno-tree-vrp
|
||||
RVCT:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC
|
||||
|
@ -0,0 +1,96 @@
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# 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
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#include <Chipset/AArch64.h>
|
||||
|
||||
GCC_ASM_IMPORT(DefaultExceptionHandler)
|
||||
|
||||
.text
|
||||
VECTOR_BASE(DebugAgentVectorTable)
|
||||
|
||||
//
|
||||
// Current EL with SP0 : 0x0 - 0x180
|
||||
//
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SP0_SYNC)
|
||||
ASM_PFX(SynchronousExceptionSP0):
|
||||
b ASM_PFX(SynchronousExceptionSP0)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SP0_IRQ)
|
||||
ASM_PFX(IrqSP0):
|
||||
b ASM_PFX(IrqSP0)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SP0_FIQ)
|
||||
ASM_PFX(FiqSP0):
|
||||
b ASM_PFX(FiqSP0)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SP0_SERR)
|
||||
ASM_PFX(SErrorSP0):
|
||||
b ASM_PFX(SErrorSP0)
|
||||
|
||||
//
|
||||
// Current EL with SPx: 0x200 - 0x380
|
||||
//
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SPx_SYNC)
|
||||
ASM_PFX(SynchronousExceptionSPx):
|
||||
b ASM_PFX(SynchronousExceptionSPx)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SPx_IRQ)
|
||||
ASM_PFX(IrqSPx):
|
||||
b ASM_PFX(IrqSPx)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SPx_FIQ)
|
||||
ASM_PFX(FiqSPx):
|
||||
b ASM_PFX(FiqSPx)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_CUR_SPx_SERR)
|
||||
ASM_PFX(SErrorSPx):
|
||||
b ASM_PFX(SErrorSPx)
|
||||
|
||||
/* Lower EL using AArch64 : 0x400 - 0x580 */
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A64_SYNC)
|
||||
ASM_PFX(SynchronousExceptionA64):
|
||||
b ASM_PFX(SynchronousExceptionA64)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A64_IRQ)
|
||||
ASM_PFX(IrqA64):
|
||||
b ASM_PFX(IrqA64)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A64_FIQ)
|
||||
ASM_PFX(FiqA64):
|
||||
b ASM_PFX(FiqA64)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A64_SERR)
|
||||
ASM_PFX(SErrorA64):
|
||||
b ASM_PFX(SErrorA64)
|
||||
|
||||
//
|
||||
// Lower EL using AArch32 : 0x600 - 0x780
|
||||
//
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A32_SYNC)
|
||||
ASM_PFX(SynchronousExceptionA32):
|
||||
b ASM_PFX(SynchronousExceptionA32)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A32_IRQ)
|
||||
ASM_PFX(IrqA32):
|
||||
b ASM_PFX(IrqA32)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A32_FIQ)
|
||||
ASM_PFX(FiqA32):
|
||||
b ASM_PFX(FiqA32)
|
||||
|
||||
VECTOR_ENTRY(DebugAgentVectorTable, ARM_VECTOR_LOW_A32_SERR)
|
||||
ASM_PFX(SErrorA32):
|
||||
b ASM_PFX(SErrorA32)
|
||||
|
||||
VECTOR_END(DebugAgentVectorTable)
|
@ -0,0 +1,277 @@
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
||||
# Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# 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
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
#include <Library/PcdLib.h>
|
||||
|
||||
/*
|
||||
|
||||
This is the stack constructed by the exception handler (low address to high address)
|
||||
# R0 - IFAR is EFI_SYSTEM_CONTEXT for ARM
|
||||
Reg Offset
|
||||
=== ======
|
||||
R0 0x00 # stmfd SP!,{R0-R12}
|
||||
R1 0x04
|
||||
R2 0x08
|
||||
R3 0x0c
|
||||
R4 0x10
|
||||
R5 0x14
|
||||
R6 0x18
|
||||
R7 0x1c
|
||||
R8 0x20
|
||||
R9 0x24
|
||||
R10 0x28
|
||||
R11 0x2c
|
||||
R12 0x30
|
||||
SP 0x34 # reserved via adding 0x20 (32) to the SP
|
||||
LR 0x38
|
||||
PC 0x3c
|
||||
CPSR 0x40
|
||||
DFSR 0x44
|
||||
DFAR 0x48
|
||||
IFSR 0x4c
|
||||
IFAR 0x50
|
||||
|
||||
LR 0x54 # SVC Link register (we need to restore it)
|
||||
|
||||
LR 0x58 # pushed by srsfd
|
||||
CPSR 0x5c
|
||||
|
||||
*/
|
||||
|
||||
GCC_ASM_EXPORT(DebugAgentVectorTable)
|
||||
GCC_ASM_IMPORT(DefaultExceptionHandler)
|
||||
|
||||
.text
|
||||
.syntax unified
|
||||
#if !defined(__APPLE__)
|
||||
.fpu neon @ makes vpush/vpop assemble
|
||||
#endif
|
||||
.align 5
|
||||
|
||||
|
||||
//
|
||||
// This code gets copied to the ARM vector table
|
||||
// ExceptionHandlersStart - ExceptionHandlersEnd gets copied
|
||||
//
|
||||
ASM_PFX(DebugAgentVectorTable):
|
||||
b ASM_PFX(ResetEntry)
|
||||
b ASM_PFX(UndefinedInstructionEntry)
|
||||
b ASM_PFX(SoftwareInterruptEntry)
|
||||
b ASM_PFX(PrefetchAbortEntry)
|
||||
b ASM_PFX(DataAbortEntry)
|
||||
b ASM_PFX(ReservedExceptionEntry)
|
||||
b ASM_PFX(IrqEntry)
|
||||
b ASM_PFX(FiqEntry)
|
||||
|
||||
ASM_PFX(ResetEntry):
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
@ We are already in SVC mode
|
||||
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#0 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(UndefinedInstructionEntry):
|
||||
sub LR, LR, #4 @ Only -2 for Thumb, adjust in CommonExceptionEntry
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#1 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(SoftwareInterruptEntry):
|
||||
sub LR, LR, #4 @ Only -2 for Thumb, adjust in CommonExceptionEntry
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
@ We are already in SVC mode
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#2 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(PrefetchAbortEntry):
|
||||
sub LR,LR,#4
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#3 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(DataAbortEntry):
|
||||
sub LR,LR,#8
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#4
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(ReservedExceptionEntry):
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#5
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(IrqEntry):
|
||||
sub LR,LR,#4
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
|
||||
mov R0,#6 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
ASM_PFX(FiqEntry):
|
||||
sub LR,LR,#4
|
||||
srsdb #0x13! @ Store return state on SVC stack
|
||||
cps #0x13 @ Switch to SVC for common stack
|
||||
stmfd SP!,{LR} @ Store the link register for the current mode
|
||||
sub SP,SP,#0x20 @ Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} @ Store the register state
|
||||
@ Since we have already switch to SVC R8_fiq - R12_fiq
|
||||
@ never get used or saved
|
||||
mov R0,#7 @ ExceptionType
|
||||
ldr R1,ASM_PFX(CommonExceptionEntry)
|
||||
bx R1
|
||||
|
||||
//
|
||||
// This gets patched by the C code that patches in the vector table
|
||||
//
|
||||
ASM_PFX(CommonExceptionEntry):
|
||||
.word ASM_PFX(AsmCommonExceptionEntry)
|
||||
|
||||
ASM_PFX(ExceptionHandlersEnd):
|
||||
|
||||
//
|
||||
// This code runs from CpuDxe driver loaded address. It is patched into
|
||||
// CommonExceptionEntry.
|
||||
//
|
||||
ASM_PFX(AsmCommonExceptionEntry):
|
||||
mrc p15, 0, R1, c6, c0, 2 @ Read IFAR
|
||||
str R1, [SP, #0x50] @ Store it in EFI_SYSTEM_CONTEXT_ARM.IFAR
|
||||
|
||||
mrc p15, 0, R1, c5, c0, 1 @ Read IFSR
|
||||
str R1, [SP, #0x4c] @ Store it in EFI_SYSTEM_CONTEXT_ARM.IFSR
|
||||
|
||||
mrc p15, 0, R1, c6, c0, 0 @ Read DFAR
|
||||
str R1, [SP, #0x48] @ Store it in EFI_SYSTEM_CONTEXT_ARM.DFAR
|
||||
|
||||
mrc p15, 0, R1, c5, c0, 0 @ Read DFSR
|
||||
str R1, [SP, #0x44] @ Store it in EFI_SYSTEM_CONTEXT_ARM.DFSR
|
||||
|
||||
ldr R1, [SP, #0x5c] @ srsdb saved pre-exception CPSR on the stack
|
||||
str R1, [SP, #0x40] @ Store it in EFI_SYSTEM_CONTEXT_ARM.CPSR
|
||||
|
||||
add R2, SP, #0x38 @ Make R2 point to EFI_SYSTEM_CONTEXT_ARM.LR
|
||||
and R3, R1, #0x1f @ Check CPSR to see if User or System Mode
|
||||
cmp R3, #0x1f @ if ((CPSR == 0x10) || (CPSR == 0x1df))
|
||||
cmpne R3, #0x10 @
|
||||
stmdaeq R2, {lr}^ @ save unbanked lr
|
||||
@ else
|
||||
stmdane R2, {lr} @ save SVC lr
|
||||
|
||||
|
||||
ldr R5, [SP, #0x58] @ PC is the LR pushed by srsfd
|
||||
@ Check to see if we have to adjust for Thumb entry
|
||||
sub r4, r0, #1 @ if (ExceptionType == 1 || ExceptionType ==2)) {
|
||||
cmp r4, #1 @ // UND & SVC have different LR adjust for Thumb
|
||||
bhi NoAdjustNeeded
|
||||
|
||||
tst r1, #0x20 @ if ((CPSR & T)) == T) { // Thumb Mode on entry
|
||||
addne R5, R5, #2 @ PC += 2@
|
||||
str R5,[SP,#0x58] @ Update LR value pused by srsfd
|
||||
|
||||
NoAdjustNeeded:
|
||||
|
||||
str R5, [SP, #0x3c] @ Store it in EFI_SYSTEM_CONTEXT_ARM.PC
|
||||
|
||||
sub R1, SP, #0x60 @ We pused 0x60 bytes on the stack
|
||||
str R1, [SP, #0x34] @ Store it in EFI_SYSTEM_CONTEXT_ARM.SP
|
||||
|
||||
@ R0 is ExceptionType
|
||||
mov R1,SP @ R1 is SystemContext
|
||||
|
||||
#if (FixedPcdGet32(PcdVFPEnabled))
|
||||
vpush {d0-d15} @ save vstm registers in case they are used in optimizations
|
||||
#endif
|
||||
|
||||
/*
|
||||
VOID
|
||||
EFIAPI
|
||||
DefaultExceptionHandler (
|
||||
IN EFI_EXCEPTION_TYPE ExceptionType, R0
|
||||
IN OUT EFI_SYSTEM_CONTEXT SystemContext R1
|
||||
)
|
||||
|
||||
*/
|
||||
blx ASM_PFX(DefaultExceptionHandler) @ Call exception handler
|
||||
|
||||
#if (FixedPcdGet32(PcdVFPEnabled))
|
||||
vpop {d0-d15}
|
||||
#endif
|
||||
|
||||
ldr R1, [SP, #0x4c] @ Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
|
||||
mcr p15, 0, R1, c5, c0, 1 @ Write IFSR
|
||||
|
||||
ldr R1, [SP, #0x44] @ sRestore EFI_SYSTEM_CONTEXT_ARM.DFSR
|
||||
mcr p15, 0, R1, c5, c0, 0 @ Write DFSR
|
||||
|
||||
ldr R1,[SP,#0x3c] @ EFI_SYSTEM_CONTEXT_ARM.PC
|
||||
str R1,[SP,#0x58] @ Store it back to srsfd stack slot so it can be restored
|
||||
|
||||
ldr R1,[SP,#0x40] @ EFI_SYSTEM_CONTEXT_ARM.CPSR
|
||||
str R1,[SP,#0x5c] @ Store it back to srsfd stack slot so it can be restored
|
||||
|
||||
add R3, SP, #0x54 @ Make R3 point to SVC LR saved on entry
|
||||
add R2, SP, #0x38 @ Make R2 point to EFI_SYSTEM_CONTEXT_ARM.LR
|
||||
and R1, R1, #0x1f @ Check to see if User or System Mode
|
||||
cmp R1, #0x1f @ if ((CPSR == 0x10) || (CPSR == 0x1f))
|
||||
cmpne R1, #0x10 @
|
||||
ldmibeq R2, {lr}^ @ restore unbanked lr
|
||||
@ else
|
||||
ldmibne R3, {lr} @ restore SVC lr, via ldmfd SP!, {LR}
|
||||
|
||||
ldmfd SP!,{R0-R12} @ Restore general purpose registers
|
||||
@ Exception handler can not change SP
|
||||
|
||||
add SP,SP,#0x20 @ Clear out the remaining stack space
|
||||
ldmfd SP!,{LR} @ restore the link register for this context
|
||||
rfefd SP! @ return from exception via srsfd stack slot
|
||||
|
@ -0,0 +1,273 @@
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
||||
// Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
|
||||
//
|
||||
// This program and the accompanying materials
|
||||
// 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
|
||||
// http://opensource.org/licenses/bsd-license.php
|
||||
//
|
||||
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <Library/PcdLib.h>
|
||||
|
||||
/*
|
||||
|
||||
This is the stack constructed by the exception handler (low address to high address)
|
||||
# R0 - IFAR is EFI_SYSTEM_CONTEXT for ARM
|
||||
Reg Offset
|
||||
=== ======
|
||||
R0 0x00 # stmfd SP!,{R0-R12}
|
||||
R1 0x04
|
||||
R2 0x08
|
||||
R3 0x0c
|
||||
R4 0x10
|
||||
R5 0x14
|
||||
R6 0x18
|
||||
R7 0x1c
|
||||
R8 0x20
|
||||
R9 0x24
|
||||
R10 0x28
|
||||
R11 0x2c
|
||||
R12 0x30
|
||||
SP 0x34 # reserved via adding 0x20 (32) to the SP
|
||||
LR 0x38
|
||||
PC 0x3c
|
||||
CPSR 0x40
|
||||
DFSR 0x44
|
||||
DFAR 0x48
|
||||
IFSR 0x4c
|
||||
IFAR 0x50
|
||||
|
||||
LR 0x54 # SVC Link register (we need to restore it)
|
||||
|
||||
LR 0x58 # pushed by srsfd
|
||||
CPSR 0x5c
|
||||
|
||||
*/
|
||||
|
||||
EXPORT DebugAgentVectorTable
|
||||
IMPORT DefaultExceptionHandler
|
||||
|
||||
PRESERVE8
|
||||
AREA DebugAgentException, CODE, READONLY, CODEALIGN, ALIGN=5
|
||||
|
||||
//
|
||||
// This code gets copied to the ARM vector table
|
||||
// ExceptionHandlersStart - ExceptionHandlersEnd gets copied
|
||||
//
|
||||
DebugAgentVectorTable FUNCTION
|
||||
b ResetEntry
|
||||
b UndefinedInstructionEntry
|
||||
b SoftwareInterruptEntry
|
||||
b PrefetchAbortEntry
|
||||
b DataAbortEntry
|
||||
b ReservedExceptionEntry
|
||||
b IrqEntry
|
||||
b FiqEntry
|
||||
ENDFUNC
|
||||
|
||||
ResetEntry
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
; We are already in SVC mode
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#0 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
UndefinedInstructionEntry
|
||||
sub LR, LR, #4 ; Only -2 for Thumb, adjust in CommonExceptionEntry
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#1 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry;
|
||||
bx R1
|
||||
|
||||
SoftwareInterruptEntry
|
||||
sub LR, LR, #4 ; Only -2 for Thumb, adjust in CommonExceptionEntry
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
; We are already in SVC mode
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#2 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
PrefetchAbortEntry
|
||||
sub LR,LR,#4
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#3 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
DataAbortEntry
|
||||
sub LR,LR,#8
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#4 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
ReservedExceptionEntry
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#5 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
IrqEntry
|
||||
sub LR,LR,#4
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
|
||||
mov R0,#6 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
FiqEntry
|
||||
sub LR,LR,#4
|
||||
srsfd #0x13! ; Store return state on SVC stack
|
||||
cps #0x13 ; Switch to SVC for common stack
|
||||
stmfd SP!,{LR} ; Store the link register for the current mode
|
||||
sub SP,SP,#0x20 ; Save space for SP, LR, PC, IFAR - CPSR
|
||||
stmfd SP!,{R0-R12} ; Store the register state
|
||||
; Since we have already switch to SVC R8_fiq - R12_fiq
|
||||
; never get used or saved
|
||||
mov R0,#7 ; ExceptionType
|
||||
ldr R1,CommonExceptionEntry
|
||||
bx R1
|
||||
|
||||
//
|
||||
// This gets patched by the C code that patches in the vector table
|
||||
//
|
||||
CommonExceptionEntry
|
||||
dcd AsmCommonExceptionEntry
|
||||
|
||||
ExceptionHandlersEnd
|
||||
|
||||
//
|
||||
// This code runs from CpuDxe driver loaded address. It is patched into
|
||||
// CommonExceptionEntry.
|
||||
//
|
||||
AsmCommonExceptionEntry
|
||||
mrc p15, 0, R1, c6, c0, 2 ; Read IFAR
|
||||
str R1, [SP, #0x50] ; Store it in EFI_SYSTEM_CONTEXT_ARM.IFAR
|
||||
|
||||
mrc p15, 0, R1, c5, c0, 1 ; Read IFSR
|
||||
str R1, [SP, #0x4c] ; Store it in EFI_SYSTEM_CONTEXT_ARM.IFSR
|
||||
|
||||
mrc p15, 0, R1, c6, c0, 0 ; Read DFAR
|
||||
str R1, [SP, #0x48] ; Store it in EFI_SYSTEM_CONTEXT_ARM.DFAR
|
||||
|
||||
mrc p15, 0, R1, c5, c0, 0 ; Read DFSR
|
||||
str R1, [SP, #0x44] ; Store it in EFI_SYSTEM_CONTEXT_ARM.DFSR
|
||||
|
||||
ldr R1, [SP, #0x5c] ; srsfd saved pre-exception CPSR on the stack
|
||||
str R1, [SP, #0x40] ; Store it in EFI_SYSTEM_CONTEXT_ARM.CPSR
|
||||
|
||||
add R2, SP, #0x38 ; Make R2 point to EFI_SYSTEM_CONTEXT_ARM.LR
|
||||
and R3, R1, #0x1f ; Check CPSR to see if User or System Mode
|
||||
cmp R3, #0x1f ; if ((CPSR == 0x10) || (CPSR == 0x1df))
|
||||
cmpne R3, #0x10 ;
|
||||
stmeqed R2, {lr}^ ; save unbanked lr
|
||||
; else
|
||||
stmneed R2, {lr} ; save SVC lr
|
||||
|
||||
|
||||
ldr R5, [SP, #0x58] ; PC is the LR pushed by srsfd
|
||||
; Check to see if we have to adjust for Thumb entry
|
||||
sub r4, r0, #1 ; if (ExceptionType == 1 || ExceptionType ==2)) {
|
||||
cmp r4, #1 ; // UND & SVC have different LR adjust for Thumb
|
||||
bhi NoAdjustNeeded
|
||||
|
||||
tst r1, #0x20 ; if ((CPSR & T)) == T) { // Thumb Mode on entry
|
||||
addne R5, R5, #2 ; PC += 2;
|
||||
str R5,[SP,#0x58] ; Update LR value pused by srsfd
|
||||
|
||||
NoAdjustNeeded
|
||||
|
||||
str R5, [SP, #0x3c] ; Store it in EFI_SYSTEM_CONTEXT_ARM.PC
|
||||
|
||||
sub R1, SP, #0x60 ; We pused 0x60 bytes on the stack
|
||||
str R1, [SP, #0x34] ; Store it in EFI_SYSTEM_CONTEXT_ARM.SP
|
||||
|
||||
; R0 is ExceptionType
|
||||
mov R1,SP ; R1 is SystemContext
|
||||
|
||||
#if (FixedPcdGet32(PcdVFPEnabled))
|
||||
vpush {d0-d15} ; save vstm registers in case they are used in optimizations
|
||||
#endif
|
||||
|
||||
/*
|
||||
VOID
|
||||
EFIAPI
|
||||
DefaultExceptionHandler (
|
||||
IN EFI_EXCEPTION_TYPE ExceptionType, R0
|
||||
IN OUT EFI_SYSTEM_CONTEXT SystemContext R1
|
||||
)
|
||||
|
||||
*/
|
||||
blx DefaultExceptionHandler ; Call exception handler
|
||||
|
||||
#if (FixedPcdGet32(PcdVFPEnabled))
|
||||
vpop {d0-d15}
|
||||
#endif
|
||||
|
||||
ldr R1, [SP, #0x4c] ; Restore EFI_SYSTEM_CONTEXT_ARM.IFSR
|
||||
mcr p15, 0, R1, c5, c0, 1 ; Write IFSR
|
||||
|
||||
ldr R1, [SP, #0x44] ; sRestore EFI_SYSTEM_CONTEXT_ARM.DFSR
|
||||
mcr p15, 0, R1, c5, c0, 0 ; Write DFSR
|
||||
|
||||
ldr R1,[SP,#0x3c] ; EFI_SYSTEM_CONTEXT_ARM.PC
|
||||
str R1,[SP,#0x58] ; Store it back to srsfd stack slot so it can be restored
|
||||
|
||||
ldr R1,[SP,#0x40] ; EFI_SYSTEM_CONTEXT_ARM.CPSR
|
||||
str R1,[SP,#0x5c] ; Store it back to srsfd stack slot so it can be restored
|
||||
|
||||
add R3, SP, #0x54 ; Make R3 point to SVC LR saved on entry
|
||||
add R2, SP, #0x38 ; Make R2 point to EFI_SYSTEM_CONTEXT_ARM.LR
|
||||
and R1, R1, #0x1f ; Check to see if User or System Mode
|
||||
cmp R1, #0x1f ; if ((CPSR == 0x10) || (CPSR == 0x1f))
|
||||
cmpne R1, #0x10 ;
|
||||
ldmeqed R2, {lr}^ ; restore unbanked lr
|
||||
; else
|
||||
ldmneed R3, {lr} ; restore SVC lr, via ldmfd SP!, {LR}
|
||||
|
||||
ldmfd SP!,{R0-R12} ; Restore general purpose registers
|
||||
; Exception handler can not change SP
|
||||
|
||||
add SP,SP,#0x20 ; Clear out the remaining stack space
|
||||
ldmfd SP!,{LR} ; restore the link register for this context
|
||||
rfefd SP! ; return from exception via srsfd stack slot
|
||||
|
||||
END
|
@ -14,6 +14,7 @@
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
@ -282,6 +283,12 @@ InitializeDebugAgent (
|
||||
EFI_FFS_FILE_HEADER *FfsHeader;
|
||||
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
|
||||
|
||||
// Now we've got UART, check the Debug Agent Vector Table
|
||||
// Note: The AArch64 Vector table must be 2k-byte aligned - if this assertion fails ensure
|
||||
// 'Align=4K' is defined into your FDF for this module.
|
||||
ASSERT (((UINTN)DebugAgentVectorTable & ARM_VECTOR_TABLE_ALIGNMENT) == 0);
|
||||
ArmWriteVBar ((UINTN)DebugAgentVectorTable);
|
||||
|
||||
// We use InitFlag to know if DebugAgent has been initialized from
|
||||
// Sec (DEBUG_AGENT_INIT_PREMEM_SEC) or PrePi (DEBUG_AGENT_INIT_POSTMEM_SEC)
|
||||
// modules
|
||||
|
@ -22,13 +22,22 @@
|
||||
[Sources.common]
|
||||
DebugAgentSymbolsBaseLib.c
|
||||
|
||||
[Sources.ARM]
|
||||
Arm/DebugAgentException.asm | RVCT
|
||||
Arm/DebugAgentException.S | GCC
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/DebugAgentException.S
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
ArmPkg/ArmPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
ArmLib
|
||||
DebugLib
|
||||
DefaultExceptionHandlerLib
|
||||
PcdLib
|
||||
PeCoffExtraActionLib
|
||||
PeCoffLib
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/ArmDisassemblerLib.h>
|
||||
#include <Library/SerialPortLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
|
||||
#include <Guid/DebugImageInfoTable.h>
|
||||
#include <Protocol/DebugSupport.h>
|
||||
@ -160,21 +159,14 @@ DefaultExceptionHandler (
|
||||
INT32 Offset;
|
||||
|
||||
if (mRecursiveException) {
|
||||
STATIC CHAR8 CONST Message[] = "\nRecursive exception occurred while dumping the CPU state\n";
|
||||
|
||||
SerialPortWrite ((UINT8 *)Message, sizeof Message - 1);
|
||||
if (gST->ConOut != NULL) {
|
||||
AsciiPrint (Message);
|
||||
}
|
||||
CharCount = AsciiSPrint (Buffer, sizeof (Buffer),"\nRecursive exception occurred while dumping the CPU state\n");
|
||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
mRecursiveException = TRUE;
|
||||
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n\n%a Exception at 0x%016lx\n", gExceptionTypeString[ExceptionType], SystemContext.SystemContextAArch64->ELR);
|
||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||
if (gST->ConOut != NULL) {
|
||||
AsciiPrint (Buffer);
|
||||
}
|
||||
|
||||
DEBUG_CODE_BEGIN ();
|
||||
CHAR8 *Pdb, *PrevPdb;
|
||||
|
@ -21,8 +21,6 @@
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/ArmDisassemblerLib.h>
|
||||
#include <Library/SerialPortLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/UefiLib.h>
|
||||
|
||||
#include <Guid/DebugImageInfoTable.h>
|
||||
|
||||
@ -196,10 +194,7 @@ DefaultExceptionHandler (
|
||||
|
||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n%a Exception PC at 0x%08x CPSR 0x%08x ",
|
||||
gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
||||
SerialPortWrite ((UINT8 *)Buffer, CharCount);
|
||||
if (gST->ConOut != NULL) {
|
||||
AsciiPrint (Buffer);
|
||||
}
|
||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||
|
||||
DEBUG_CODE_BEGIN ();
|
||||
CHAR8 *Pdb;
|
||||
|
@ -0,0 +1,35 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2012, ARM Ltd. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials
|
||||
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
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include <Base.h>
|
||||
|
||||
/**
|
||||
|
||||
@param FaultAddress Address to find PE/COFF image for.
|
||||
@param ImageBase Return load address of found image
|
||||
@param PeCoffSizeOfHeaders Return the size of the PE/COFF header for the image that was found
|
||||
|
||||
@retval NULL FaultAddress not in a loaded PE/COFF image.
|
||||
@retval Path and file name of PE/COFF image.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
GetImageName (
|
||||
IN UINTN FaultAddress,
|
||||
OUT UINTN *ImageBase,
|
||||
OUT UINTN *PeCoffSizeOfHeaders
|
||||
)
|
||||
{
|
||||
return NULL;
|
||||
}
|
@ -17,9 +17,9 @@
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = DefaultExceptionHandlerLib
|
||||
FILE_GUID = EACDB354-DF1A-4AF9-A171-499737ED818F
|
||||
MODULE_TYPE = BASE
|
||||
MODULE_TYPE = UEFI_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = DefaultExceptionHandlerLib|DXE_CORE DXE_DRIVER
|
||||
LIBRARY_CLASS = DefaultExceptionHandlerLib
|
||||
|
||||
[Sources.common]
|
||||
DefaultExceptionHandlerUefi.c
|
||||
@ -42,7 +42,6 @@
|
||||
PeCoffGetEntryPointLib
|
||||
ArmDisassemblerLib
|
||||
SerialPortLib
|
||||
UefiBootServicesTableLib
|
||||
|
||||
[Guids]
|
||||
gEfiDebugImageInfoTableGuid
|
||||
|
@ -0,0 +1,45 @@
|
||||
#/** @file
|
||||
#
|
||||
# Copyright (c) 2012, ARM Ltd. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# 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
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
#
|
||||
#**/
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = DefaultExceptionHandlerBaseLib
|
||||
FILE_GUID = 3d5261d5-5eb7-4559-98e7-475aa9d0dc42
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = DefaultExceptionHandlerLib
|
||||
|
||||
[Sources.common]
|
||||
DefaultExceptionHandlerBase.c
|
||||
|
||||
[Sources.ARM]
|
||||
Arm/DefaultExceptionHandler.c
|
||||
|
||||
[Sources.AARCH64]
|
||||
AArch64/DefaultExceptionHandler.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
ArmPkg/ArmPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
PrintLib
|
||||
DebugLib
|
||||
PeCoffGetEntryPointLib
|
||||
ArmDisassemblerLib
|
||||
SerialPortLib
|
||||
|
||||
[Guids]
|
||||
gEfiDebugImageInfoTableGuid
|
@ -15,6 +15,7 @@
|
||||
|
||||
[Defines]
|
||||
DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
|
||||
DEFINE TTY_TERMINAL = FALSE
|
||||
|
||||
[BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION]
|
||||
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
|
||||
@ -173,6 +174,7 @@
|
||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||
|
||||
DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
||||
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
||||
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
||||
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
||||
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
||||
@ -270,8 +272,13 @@
|
||||
[PcdsFeatureFlag.common]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE
|
||||
|
||||
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
||||
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
||||
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||
|
||||
[PcdsFeatureFlag.AARCH64]
|
||||
#
|
||||
# Activate AcpiSdtProtocol
|
||||
@ -283,6 +290,8 @@
|
||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
||||
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
||||
|
||||
# DEBUG_ASSERT_ENABLED 0x01
|
||||
@ -317,9 +326,7 @@
|
||||
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
||||
# // significantly impact boot performance
|
||||
# DEBUG_ERROR 0x80000000 // Error
|
||||
!if $(TARGET) != RELEASE
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Optional feature to help prevent EFI memory map fragments
|
||||
@ -327,7 +334,7 @@
|
||||
# Values are in EFI Pages (4K). DXE Core will make sure that
|
||||
# at least this much of each type of memory can be allocated
|
||||
# from a single memory range. This way you only end up with
|
||||
# maximum of two fragments 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
|
||||
# but not used).
|
||||
#
|
||||
@ -347,6 +354,18 @@
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
||||
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
# override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
||||
!endif
|
||||
|
||||
!if $(TTY_TERMINAL) == TRUE
|
||||
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
||||
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
||||
!endif
|
||||
|
||||
#
|
||||
# Enable strict image permissions for all images. (This applies
|
||||
# only to images that were built with >= 4 KB section alignment.)
|
||||
@ -360,6 +379,11 @@
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
|
||||
|
||||
#
|
||||
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
||||
|
||||
[Components.common]
|
||||
#
|
||||
# Ramdisk support
|
||||
|
@ -33,7 +33,6 @@
|
||||
# Defines for default states. These can be changed on the command line.
|
||||
# -D FLAG=VALUE
|
||||
#
|
||||
DEFINE TTY_TERMINAL = FALSE
|
||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||
DEFINE NETWORK_IP6_ENABLE = FALSE
|
||||
DEFINE HTTP_BOOT_ENABLE = FALSE
|
||||
@ -58,7 +57,6 @@
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||
PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||
@ -70,9 +68,6 @@
|
||||
[LibraryClasses.common.PEIM]
|
||||
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
|
||||
|
||||
[LibraryClasses.common.DXE_DRIVER]
|
||||
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||
|
||||
[LibraryClasses.common.UEFI_DRIVER]
|
||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||
|
||||
@ -91,9 +86,8 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||
|
||||
[PcdsFixedAtBuild.common]
|
||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||
!if $(ARCH) == AARCH64
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
!endif
|
||||
@ -106,6 +100,9 @@
|
||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||
|
||||
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
||||
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
|
||||
|
||||
#
|
||||
# ARM PrimeCell
|
||||
#
|
||||
@ -117,8 +114,6 @@
|
||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||
!if $(TTY_TERMINAL) == TRUE
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
||||
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
||||
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
||||
!else
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
||||
!endif
|
||||
@ -147,20 +142,6 @@
|
||||
#
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
||||
|
||||
#
|
||||
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
||||
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
# override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
||||
!endif
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3
|
||||
|
||||
[PcdsFixedAtBuild.AARCH64]
|
||||
# Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
|
||||
# if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
|
||||
@ -310,11 +291,6 @@
|
||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
#
|
||||
# Status Code Routing
|
||||
#
|
||||
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
||||
#
|
||||
# Platform Driver
|
||||
#
|
||||
|
@ -91,11 +91,6 @@ READ_LOCK_STATUS = TRUE
|
||||
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
|
||||
#
|
||||
# Status Code Routing
|
||||
#
|
||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
||||
#
|
||||
# Platform Driver
|
||||
#
|
||||
|
@ -33,7 +33,6 @@
|
||||
# Defines for default states. These can be changed on the command line.
|
||||
# -D FLAG=VALUE
|
||||
#
|
||||
DEFINE TTY_TERMINAL = FALSE
|
||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||
DEFINE NETWORK_IP6_ENABLE = FALSE
|
||||
DEFINE HTTP_BOOT_ENABLE = FALSE
|
||||
@ -58,7 +57,6 @@
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||
PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||
@ -67,9 +65,6 @@
|
||||
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
||||
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
||||
|
||||
[LibraryClasses.common.DXE_DRIVER]
|
||||
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||
|
||||
[LibraryClasses.common.UEFI_DRIVER]
|
||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||
|
||||
@ -97,13 +92,13 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||
|
||||
[PcdsFixedAtBuild.common]
|
||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||
!if $(ARCH) == AARCH64
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
!endif
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
||||
@ -111,6 +106,9 @@
|
||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||
|
||||
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
||||
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
|
||||
|
||||
#
|
||||
# ARM PrimeCell
|
||||
#
|
||||
@ -122,8 +120,6 @@
|
||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||
!if $(TTY_TERMINAL) == TRUE
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
||||
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
||||
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
||||
!else
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
||||
!endif
|
||||
@ -146,15 +142,6 @@
|
||||
#
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
||||
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
# override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
||||
!endif
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3
|
||||
|
||||
[PcdsPatchableInModule.common]
|
||||
#
|
||||
# This will be overridden in the code
|
||||
@ -294,11 +281,6 @@
|
||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
#
|
||||
# Status Code Routing
|
||||
#
|
||||
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
||||
#
|
||||
# Platform Driver
|
||||
#
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
||||
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@ -74,6 +74,8 @@
|
||||
|
||||
[PcdsFixedAtBuild.common]
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||
!if $(ARCH) == AARCH64
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
!endif
|
||||
@ -90,15 +92,14 @@
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
||||
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
|
||||
|
||||
## Default Terminal Type
|
||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
||||
|
||||
#
|
||||
# Make VariableRuntimeDxe work at emulated non-volatile variable mode.
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
|
||||
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
||||
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
||||
|
||||
[PcdsPatchableInModule.common]
|
||||
#
|
||||
@ -125,6 +126,9 @@
|
||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
||||
|
||||
## PL031 RealTimeClock
|
||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
||||
|
||||
################################################################################
|
||||
@ -168,10 +172,7 @@
|
||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
|
||||
}
|
||||
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
||||
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@ -137,7 +137,7 @@ READ_LOCK_STATUS = TRUE
|
||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||
|
||||
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
||||
|
||||
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** @file
|
||||
HOB Library implementation for Dxe Phase with DebugLib dependency removed
|
||||
HOB Library implemenation for Dxe Phase with DebugLib dependency removed
|
||||
|
||||
Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
|
||||
|
@ -1238,7 +1238,7 @@ PciExpressBitFieldAndThenOr32 (
|
||||
Size into the buffer specified by Buffer. This function only allows the PCI
|
||||
configuration registers from a single PCI function to be read. Size is
|
||||
returned. When possible 32-bit PCI configuration read cycles are used to read
|
||||
from StartAddress to StartAddress + Size. Due to alignment restrictions, 8-bit
|
||||
from StartAdress to StartAddress + Size. Due to alignment restrictions, 8-bit
|
||||
and 16-bit PCI configuration read cycles may be used at the beginning and the
|
||||
end of the range.
|
||||
|
||||
@ -1338,7 +1338,7 @@ PciExpressReadBuffer (
|
||||
Size from the buffer specified by Buffer. This function only allows the PCI
|
||||
configuration registers from a single PCI function to be written. Size is
|
||||
returned. When possible 32-bit PCI configuration write cycles are used to
|
||||
write from StartAddress to StartAddress + Size. Due to alignment restrictions,
|
||||
write from StartAdress to StartAddress + Size. Due to alignment restrictions,
|
||||
8-bit and 16-bit PCI configuration write cycles may be used at the beginning
|
||||
and the end of the range.
|
||||
|
||||
|
@ -234,13 +234,13 @@ SerialPortGetControl (
|
||||
}
|
||||
|
||||
/**
|
||||
Sets the baud rate, receive FIFO depth, transmit/receive time out, parity,
|
||||
Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
|
||||
data bits, and stop bits on a serial device.
|
||||
|
||||
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
||||
device's default interface speed.
|
||||
On output, the value actually set.
|
||||
@param ReceiveFifoDepth The requested depth of the FIFO on the receive side of the
|
||||
@param ReveiveFifoDepth The requested depth of the FIFO on the receive side of the
|
||||
serial interface. A ReceiveFifoDepth value of 0 will use
|
||||
the device's default FIFO depth.
|
||||
On output, the value actually set.
|
||||
@ -253,7 +253,7 @@ SerialPortGetControl (
|
||||
DefaultParity will use the device's default parity value.
|
||||
On output, the value actually set.
|
||||
@param DataBits The number of data bits to use on the serial device. A DataBits
|
||||
value of 0 will use the device's default data bit setting.
|
||||
vaule of 0 will use the device's default data bit setting.
|
||||
On output, the value actually set.
|
||||
@param StopBits The number of stop bits to use on this serial device. A StopBits
|
||||
value of DefaultStopBits will use the device's default number of
|
||||
|
@ -156,13 +156,13 @@ SerialPortPoll (
|
||||
}
|
||||
|
||||
/**
|
||||
Sets the baud rate, receive FIFO depth, transmit/receive time out, parity,
|
||||
Sets the baud rate, receive FIFO depth, transmit/receice time out, parity,
|
||||
data bits, and stop bits on a serial device.
|
||||
|
||||
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
||||
device's default interface speed.
|
||||
On output, the value actually set.
|
||||
@param ReceiveFifoDepth The requested depth of the FIFO on the receive side of the
|
||||
@param ReveiveFifoDepth The requested depth of the FIFO on the receive side of the
|
||||
serial interface. A ReceiveFifoDepth value of 0 will use
|
||||
the device's default FIFO depth.
|
||||
On output, the value actually set.
|
||||
@ -175,7 +175,7 @@ SerialPortPoll (
|
||||
DefaultParity will use the device's default parity value.
|
||||
On output, the value actually set.
|
||||
@param DataBits The number of data bits to use on the serial device. A DataBits
|
||||
value of 0 will use the device's default data bit setting.
|
||||
vaule of 0 will use the device's default data bit setting.
|
||||
On output, the value actually set.
|
||||
@param StopBits The number of stop bits to use on this serial device. A StopBits
|
||||
value of DefaultStopBits will use the device's default number of
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include <Library/BootLogoLib.h>
|
||||
#include <Library/DevicePathLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/PlatformBmPrintScLib.h>
|
||||
#include <Library/QemuBootOrderLib.h>
|
||||
#include <Library/UefiBootManagerLib.h>
|
||||
#include <Protocol/DevicePath.h>
|
||||
@ -780,11 +779,11 @@ PlatformBootManagerBeforeConsole (
|
||||
Do the platform specific action after the console is ready
|
||||
Possible things that can be done in PlatformBootManagerAfterConsole:
|
||||
> Console post action:
|
||||
> Dynamically switch output mode from 100x31 to 80x25 for certain scenario
|
||||
> Dynamically switch output mode from 100x31 to 80x25 for certain senarino
|
||||
> Signal console ready platform customized event
|
||||
> Run diagnostics like memory testing
|
||||
> Connect certain devices
|
||||
> Dispatch additional option roms
|
||||
> Dispatch aditional option roms
|
||||
> Special boot: e.g.: USB boot, enter UI
|
||||
**/
|
||||
VOID
|
||||
@ -834,8 +833,6 @@ PlatformBootManagerAfterConsole (
|
||||
|
||||
RemoveStaleFvFileOptions ();
|
||||
SetBootOrderFromQemu ();
|
||||
|
||||
PlatformBmPrintScRegisterHandler ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -50,7 +50,6 @@
|
||||
DevicePathLib
|
||||
MemoryAllocationLib
|
||||
PcdLib
|
||||
PlatformBmPrintScLib
|
||||
PrintLib
|
||||
QemuBootOrderLib
|
||||
QemuFwCfgLib
|
||||
|
@ -83,6 +83,8 @@
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdCoreCount
|
||||
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
|
||||
|
||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -18,7 +18,7 @@
|
||||
#
|
||||
# armcc_wrapper.py ToolToExec [command line to convert]
|
||||
#
|
||||
# anything with the / will be converted via cygpath cygwin call or manually.
|
||||
# anthing with the / will be converted via cygpath cygwin call or manually.
|
||||
# -I/cygpath/c/example is a special case as you can not pass -I to cygpath
|
||||
#
|
||||
# ExceptionList if a tool takes an argument with a / add it to the exception list
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
1
BaseTools/Bin/externals.txt
Normal file
1
BaseTools/Bin/externals.txt
Normal file
@ -0,0 +1 @@
|
||||
Win32 https://svn.code.sf.net/p/edk2-toolbinaries/code/trunk/Win32
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||
|
||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
||||
python_exe=${PYTHON_COMMAND}
|
||||
# If a python2 command is available, use it in preference to python
|
||||
if command -v python2 >/dev/null 2>&1; then
|
||||
python_exe=python2
|
||||
fi
|
||||
|
||||
full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
|
||||
|
@ -1,4 +1,4 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
||||
@%PYTHON_COMMAND% -m %ToolName%.%ToolName% %*
|
||||
@%PYTHON_HOME%\python.exe -m %ToolName%.%ToolName% %*
|
||||
|
@ -1,4 +1,4 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
||||
@%PYTHON_COMMAND% -m %ToolName%.EccMain %*
|
||||
@%PYTHON_HOME%\python.exe -m %ToolName%.EccMain %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\AutoGen\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\AutoGen\%ToolName%.py %*
|
||||
|
@ -1,4 +1,4 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
||||
@%PYTHON_COMMAND% -m %ToolName%.%ToolName% %*
|
||||
@%PYTHON_HOME%\python.exe -m %ToolName%.%ToolName% %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1 +1 @@
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\Capsule\GenerateCapsule.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\Capsule\GenerateCapsule.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1 +1 @@
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\Rsa2048Sha256Sign\Rsa2048Sha256GenerateKeys.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
@ -1,3 +1,3 @@
|
||||
@setlocal
|
||||
@set ToolName=%~n0%
|
||||
@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
@%PYTHON_HOME%\python.exe %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %*
|
||||
|
83
BaseTools/BuildNotes.txt
Normal file
83
BaseTools/BuildNotes.txt
Normal file
@ -0,0 +1,83 @@
|
||||
Intel(R) Platform Innovation Framework for EFI
|
||||
BuildTools Project, BaseTools Sub-Project
|
||||
Root Package 1.00
|
||||
2007-08-31
|
||||
|
||||
Intel is a trademark or registered trademark of Intel Corporation or its
|
||||
subsidiaries in the United States and other countries.
|
||||
* Other names and brands may be claimed as the property of others.
|
||||
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Quick Start
|
||||
-----------
|
||||
|
||||
Windows:
|
||||
a) Go to the <buildtools_project>/BaseTools and run "toolsetup" script
|
||||
|
||||
Unix-like:
|
||||
a) make -C <buildtools_project>/BaseTools
|
||||
b) Look over https://github.com/tianocore/tianocore.github.io/wiki/Getting%20Started%20with%20EDK%20II
|
||||
for a helpful step-by-step guide for building 'Hello World' on
|
||||
various operating systems with edk2.
|
||||
|
||||
Supported build targets (toolsetup)
|
||||
-----------------------------------
|
||||
|
||||
build(or none) - Incremental Build of all C based tools. This is the default target
|
||||
rebuild - Clean all generated files and directories during build, and rebuild all tools
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Tools in Python
|
||||
---------------
|
||||
* Convert Python source to exe file
|
||||
|
||||
The tools written in Python can be converted into executable program which can
|
||||
be executed without installing a Python interpreter. (Generally it is easier
|
||||
to run the scripts from their source on operating systems other than Windows.)
|
||||
|
||||
For Windows and Linux, the conversion tool package is called cx_Freeze, its
|
||||
home page is:
|
||||
|
||||
http://sourceforge.net/projects/cx-freeze/
|
||||
|
||||
If you have installed cx_Freeze at c:\cx_Freeze-3.0.3. Use following command
|
||||
lines to convert MyBuild.py to MyBuild.exe (note this is an example, there is
|
||||
no MyBuild Python project in the BaseTools\Python tree.
|
||||
|
||||
set PYTHONPATH=<BaseToolsDirPath>\Source\Python
|
||||
c:\cx_Freeze-3.0.3\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_16_le,encodings.utf_8 --install-dir=.\mybuild MyBuild.py
|
||||
|
||||
The generated .exe (and .dll) files are put in "mybuild" subdirectory.
|
||||
|
||||
The following is a real example with the BuildTools/trunk/BaseTools project
|
||||
installed in: C:\Work\BaseTools
|
||||
|
||||
|
||||
C:\Work\BaseTools\Source\Python> set PYTHONPATH=C:\Work\BaseTools\Source\Python
|
||||
C:\Work\BaseTools\Source\Python> c:\cx_Freeze-3.0.3\FreezePython.exe --include-modules=encodings.cp437,encodings.gbk,encodings.utf_16,encodings.utf_16_le,encodings.utf_8 --install-dir=C:\Work\BaseTools\Bin\Win32 build\build.py
|
||||
|
||||
---------------
|
||||
* Execute tools written in Python without conversion
|
||||
|
||||
Unix-like systems:
|
||||
|
||||
The edk2/edksetup.sh script will setup everything which is needed to
|
||||
run the scripts from their source.
|
||||
|
||||
Windows:
|
||||
|
||||
The tools written in Python can be executed directly from its source directory
|
||||
as long as the Python interpreter (Python 2.5) has been installed. Before the execution,
|
||||
please make sure the environment variable PYTHONPATH is set to
|
||||
|
||||
<buildtools_project>/BaseTools/Source/Python
|
||||
|
||||
There're five tools written in Python. The entrance file of each tool is listed
|
||||
below.
|
||||
|
||||
build <buildtools_project>/BaseTools/Source/Python/build/build.py
|
||||
GenFds <buildtools_project>/BaseTools/Source/Python/GenFds/GenFds.py
|
||||
Trim <buildtools_project>/BaseTools/Source/Python/Trim/Trim.py
|
||||
MigrationMsa2Inf <buildtools_project>/BaseTools/Source/Python/MigrationMsa2Inf/MigrationMsa2Inf.py
|
||||
UPT <buildtools_project>/BaseTools/Source/Python/UPT/UPT.py
|
@ -145,7 +145,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
<xs:documentation xml:lang="en-us">
|
||||
The UserExtensions section is used to disseminate processing
|
||||
instructions that may be custom to the content provided by the distribution. This section
|
||||
contains information that is common to all aspects of this distribution.
|
||||
contains information that is common to all aspects of this disribution.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
@ -328,7 +328,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
important to reflect the present state of the matter
|
||||
</xs:documentation>
|
||||
<xs:documentation xml:lang="en-us">
|
||||
#2 Added definition/enumeration of UNDEFINED type 2 is
|
||||
#2 Added definition/enumeration of UNDEFIND type 2 is
|
||||
important since there is a large body of legacy code for which the GUID’s and other
|
||||
code/data objects were not decorated with their usage. This document will allow for
|
||||
importing today’s source artifacts and producing decorations using the ‘Undefined’ versus
|
||||
@ -696,7 +696,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- End of PackageSurfaceArea PackageIncludes element. -->
|
||||
<!-- End of PackageSurfaceArea PackageIncluces element. -->
|
||||
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Modules">
|
||||
<xs:complexType>
|
||||
@ -962,8 +962,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en-us">
|
||||
The PCD must be within a
|
||||
specified range of numeric values. Restricted to C style
|
||||
Relational, Equality and Logical Operators and parenthesis
|
||||
specifed range of numeric values. Restricted to C style
|
||||
Relational, Equality and Logicial Operators and parenthesis
|
||||
are valid. Only the CName for this PCD is permitted in the
|
||||
ValidValueRange expression. All other values must be
|
||||
numeric.
|
||||
@ -1006,7 +1006,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
<xs:documentation xml:lang="en-us">
|
||||
This string should be
|
||||
defined by specifications. There are pre-defined error
|
||||
number ranges in the UEFI/PI specification.
|
||||
number ranges in the UEFI/PI specificaiton.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
@ -1452,7 +1452,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
<xs:annotation>
|
||||
<xs:documentation xml:lang="en-us">
|
||||
The module will change the
|
||||
boot mode on some execution paths.
|
||||
boot mode on some exection paths.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
@ -2835,7 +2835,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
<xs:anyAttribute processContents="lax"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- The following elements are common definitions used with the ref attribute for elements. -->
|
||||
<!-- The following elsements are common definitions used with the ref attribute for elements. -->
|
||||
|
||||
<xs:element name="HelpText">
|
||||
<xs:complexType>
|
||||
|
@ -63,7 +63,7 @@
|
||||
# $(FV_DIR) Directory to store flash image files
|
||||
# $(INC) Search path of current module
|
||||
# $(NASM_INC) Search nasm file path of current module
|
||||
# $(INC_LIST) A file containing search paths of current module
|
||||
# $(INC_LIST) A file containing search pathes of current module
|
||||
# $(LIBS) Static library files of current module
|
||||
# $(<tool>_FLAGS) Tools flags of current module
|
||||
# $(MODULE_NAME) Current module name
|
||||
@ -131,7 +131,7 @@
|
||||
<Command.MSFT, Command.INTEL>
|
||||
"$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
|
||||
|
||||
<Command.GCC, Command.RVCT>
|
||||
<Command.GCC, Command.GCCLD, Command.RVCT>
|
||||
# For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
|
||||
"$(CC)" $(CC_FLAGS) -c -o ${dst} $(INC) ${src}
|
||||
|
||||
@ -148,7 +148,7 @@
|
||||
<OutputFile>
|
||||
$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
||||
|
||||
<Command.GCC, Command.RVCT>
|
||||
<Command.GCC, Command.GCCLD, Command.RVCT>
|
||||
"$(CC)" $(CC_FLAGS) $(CC_XIPFLAGS) -c -o ${dst} $(INC) ${src}
|
||||
|
||||
[C-Header-File]
|
||||
@ -163,7 +163,7 @@
|
||||
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
||||
?.asm, ?.Asm, ?.ASM
|
||||
|
||||
<InputFile.GCC>
|
||||
<InputFile.GCC, InputFile.GCCLD>
|
||||
?.S, ?.s
|
||||
|
||||
<ExtraDependency>
|
||||
@ -177,7 +177,7 @@
|
||||
Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
||||
"$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii
|
||||
|
||||
<Command.GCC, Command.RVCT>
|
||||
<Command.GCC, Command.GCCLD, Command.RVCT>
|
||||
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
|
||||
Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
||||
# For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
|
||||
@ -188,7 +188,7 @@
|
||||
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
||||
?.asm, ?.Asm, ?.ASM
|
||||
|
||||
<InputFile.GCC>
|
||||
<InputFile.GCC, InputFile.GCCLD>
|
||||
?.S, ?.s
|
||||
|
||||
<ExtraDependency>
|
||||
@ -207,7 +207,7 @@
|
||||
Trim --source-code --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
||||
"$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) ${d_path}(+)${s_base}.iii
|
||||
|
||||
<Command.GCC, Command.RVCT>
|
||||
<Command.GCC, Command.GCCLD, Command.RVCT>
|
||||
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
|
||||
Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
||||
# For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
|
||||
@ -269,7 +269,7 @@
|
||||
<Command.MSFT, Command.INTEL>
|
||||
"$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST)
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
$(RM) ${dst}
|
||||
"$(SLINK)" cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST)
|
||||
|
||||
@ -301,6 +301,10 @@
|
||||
"$(DLINK)" -o ${dst} $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(CC_FLAGS) $(DLINK2_FLAGS)
|
||||
"$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
|
||||
|
||||
<Command.GCCLD>
|
||||
"$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)
|
||||
"$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
|
||||
|
||||
<Command.RVCT>
|
||||
"$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
|
||||
|
||||
@ -343,6 +347,9 @@
|
||||
<Command.GCC>
|
||||
"$(DLINK)" $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS)
|
||||
|
||||
<Command.GCCLD>
|
||||
"$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)
|
||||
|
||||
<Command.RVCT>
|
||||
"$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
|
||||
|
||||
@ -367,12 +374,12 @@
|
||||
$(CP) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi
|
||||
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
||||
-$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR)
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
$(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
|
||||
$(OBJCOPY) --strip-unneeded -R .eh_frame ${src}
|
||||
|
||||
#
|
||||
#The below 2 lines are only needed for UNIXGCC tool chain, which generates PE image directly
|
||||
#The below 2 lines are only needed for UNIXGCC tool chain, which genereates PE image directly
|
||||
#
|
||||
-$(OBJCOPY) $(OBJCOPY_ADDDEBUGFLAG) ${src}
|
||||
-$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR)(+)$(MODULE_NAME_GUID).debug
|
||||
@ -423,7 +430,7 @@
|
||||
Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
|
||||
"$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src}
|
||||
"$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
|
||||
Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
|
||||
@ -444,7 +451,7 @@
|
||||
"$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
||||
"$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
"$(ASLCC)" -c -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}
|
||||
"$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
||||
"$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
|
||||
@ -464,7 +471,7 @@
|
||||
"$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
||||
"$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
"$(ASLCC)" -c -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}
|
||||
"$(ASLDLINK)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
||||
"$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)
|
||||
@ -493,7 +500,7 @@
|
||||
"$(ASM16)" /nologo /c /omf $(INC) /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj ${d_path}(+)${s_base}.iii
|
||||
"$(ASMLINK)" $(ASMLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj,${dst},,,,
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
|
||||
Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
||||
"$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii
|
||||
@ -638,7 +645,7 @@
|
||||
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiipackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
||||
"$(RC)" /Fo${dst} $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc
|
||||
|
||||
<Command.GCC>
|
||||
<Command.GCC, Command.GCCLD>
|
||||
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
||||
"$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}
|
||||
|
||||
|
@ -37,7 +37,7 @@ TARGET = DEBUG
|
||||
# One, or more, of the following, IA32, IPF, X64, EBC, ARM
|
||||
# or AArch64.
|
||||
# Multiple values can be specified on a single line, using
|
||||
# space characters to separate the values. These are used
|
||||
# space charaters to separate the values. These are used
|
||||
# during the parsing of a platform description file,
|
||||
# restricting the build output target(s.)
|
||||
# The Build Target ARCH is determined by (precedence high to low):
|
||||
@ -57,7 +57,7 @@ TOOL_CHAIN_CONF = Conf/tools_def.txt
|
||||
# TAGNAME List Optional Specify the name(s) of the tools_def.txt TagName to use.
|
||||
# If not specified, all applicable TagName tools will be
|
||||
# used for the build. The list uses space character separation.
|
||||
TOOL_CHAIN_TAG = VS2015x86
|
||||
TOOL_CHAIN_TAG = MYTOOLS
|
||||
|
||||
# MAX_CONCURRENT_THREAD_NUMBER NUMBER Optional The number of concurrent threads. If not specified or set
|
||||
# to zero, tool automatically detect number of processor
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -20,21 +20,17 @@ SUBDIRS = $(BASE_TOOLS_PATH)\Source\C $(BASE_TOOLS_PATH)\Source\Python
|
||||
all: c
|
||||
|
||||
c :
|
||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C
|
||||
@if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C
|
||||
@$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C
|
||||
|
||||
|
||||
subdirs: $(SUBDIRS)
|
||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $**
|
||||
@if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $**
|
||||
@$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $**
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS)
|
||||
@if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS)
|
||||
$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS)
|
||||
|
||||
.PHONY: cleanall
|
||||
cleanall:
|
||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS)
|
||||
@if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS)
|
||||
$(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
This directory contains the next generation of EDK II build tools and template files.
|
||||
Templates are located in the Conf directory, while the tools executables for
|
||||
Microsoft Windows 32-bit Operating Systems are located in the Bin\Win32 directory, other
|
||||
directory contains tools source.
|
||||
directory contatins tools source.
|
||||
|
||||
1. Build step to generate the binary tools.
|
||||
|
||||
|
@ -135,7 +135,7 @@ class parser_lst(object):
|
||||
tmp_dict[offset] = tmp_name
|
||||
pcdname_num = int(pcdname_num_re.findall(t_name)[0],10)
|
||||
uint = int(unit_num.findall(uint)[0],10)
|
||||
bit = uint // 8
|
||||
bit = uint / 8
|
||||
for i in range(1, pcdname_num):
|
||||
offset += bit
|
||||
tmp_name = pcdname2_re.findall(t_name)[0] + '[%s]' % i
|
||||
|
@ -16,8 +16,8 @@ from __future__ import print_function
|
||||
import os, sys, logging, traceback, subprocess
|
||||
from optparse import OptionParser
|
||||
|
||||
from plugins.EdkPlugins.edk2.model import baseobject
|
||||
from plugins.EdkPlugins.edk2.model import doxygengen
|
||||
import plugins.EdkPlugins.edk2.model.baseobject as baseobject
|
||||
import plugins.EdkPlugins.edk2.model.doxygengen as doxygengen
|
||||
|
||||
gArchMarcoDict = {'ALL' : 'MDE_CPU_IA32 MDE_CPU_X64 MDE_CPU_EBC MDE_CPU_IPF _MSC_EXTENSIONS __GNUC__ __INTEL_COMPILER',
|
||||
'IA32_MSFT': 'MDE_CPU_IA32 _MSC_EXTENSIONS',
|
||||
@ -38,7 +38,7 @@ def parseCmdArgs():
|
||||
help='Specify the absolute path of doxygen tools installation. For example: C:\\Program Files\\doxygen\bin\doxygen.exe')
|
||||
parser.add_option('-o', '--output', action='store', dest='OutputPath',
|
||||
help='Specify the document output path. For example: c:\\docoutput')
|
||||
parser.add_option('-a', '--arch', action='store', dest='Arch', choices=list(gArchMarcoDict.keys()),
|
||||
parser.add_option('-a', '--arch', action='store', dest='Arch', choices=gArchMarcoDict.keys(),
|
||||
help='Specify the architecture used in preprocess package\'s source. For example: -a IA32_MSFT')
|
||||
parser.add_option('-m', '--mode', action='store', dest='DocumentMode', choices=['CHM', 'HTML'],
|
||||
help='Specify the document mode from : CHM or HTML')
|
||||
|
@ -18,8 +18,8 @@ import os, sys, wx, logging
|
||||
import wx.stc
|
||||
import wx.lib.newevent
|
||||
import wx.lib.agw.genericmessagedialog as GMD
|
||||
from plugins.EdkPlugins.edk2.model import baseobject
|
||||
from plugins.EdkPlugins.edk2.model import doxygengen
|
||||
import plugins.EdkPlugins.edk2.model.baseobject as baseobject
|
||||
import plugins.EdkPlugins.edk2.model.doxygengen as doxygengen
|
||||
|
||||
if hasattr(sys, "frozen"):
|
||||
appPath = os.path.abspath(os.path.dirname(sys.executable))
|
||||
@ -720,7 +720,7 @@ class ProgressDialog(wx.Dialog):
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
bfound = False
|
||||
for index in range(len(lines)):
|
||||
for index in xrange(len(lines)):
|
||||
if lines[index].find('<a class="el" href="files.html" target="basefrm">File List</a>') != -1:
|
||||
lines[index] = "<!-- %s" % lines[index]
|
||||
bfound = True
|
||||
@ -969,7 +969,7 @@ class ProgressDialog(wx.Dialog):
|
||||
fd = open(path, 'r')
|
||||
text = fd.read()
|
||||
fd.close()
|
||||
except Exception as e:
|
||||
except Exception, e:
|
||||
self.LogMessage (" <<<Fail to open file %s" % path)
|
||||
return
|
||||
text = text.replace ('.s.dox', '.s')
|
||||
@ -982,7 +982,7 @@ class ProgressDialog(wx.Dialog):
|
||||
fd = open(path, 'w')
|
||||
fd.write(text)
|
||||
fd.close()
|
||||
except Exception as e:
|
||||
except Exception, e:
|
||||
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
||||
return
|
||||
self.LogMessage(' >>> Finish to fixup .dox postfix for file %s \n' % path)
|
||||
@ -993,7 +993,7 @@ class ProgressDialog(wx.Dialog):
|
||||
fd = open(path, 'r')
|
||||
lines = fd.readlines()
|
||||
fd.close()
|
||||
except Exception as e:
|
||||
except Exception, e:
|
||||
self.LogMessage (" <<<Fail to open file %s" % path)
|
||||
return
|
||||
for line in lines:
|
||||
@ -1004,7 +1004,7 @@ class ProgressDialog(wx.Dialog):
|
||||
fd = open(path, 'w')
|
||||
fd.write("".join(lines))
|
||||
fd.close()
|
||||
except Exception as e:
|
||||
except Exception, e:
|
||||
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
||||
return
|
||||
self.LogMessage(' >>> Finish to fixup .decdoxygen postfix for file %s \n' % path)
|
||||
|
@ -67,7 +67,7 @@ class Page(BaseDoxygeItem):
|
||||
|
||||
def AddSection(self, section):
|
||||
self.mSections.append(section)
|
||||
self.mSections.sort(key=lambda x: x.mName.lower())
|
||||
self.mSections.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
|
||||
def Generate(self):
|
||||
if self.mIsMainPage:
|
||||
@ -80,7 +80,7 @@ class Page(BaseDoxygeItem):
|
||||
self.mText.append(self.mDescription)
|
||||
endIndex = len(self.mText)
|
||||
|
||||
self.mSections.sort(key=lambda x: x.mName.lower())
|
||||
self.mSections.sort()
|
||||
for sect in self.mSections:
|
||||
self.mText += sect.Generate()
|
||||
|
||||
@ -92,7 +92,7 @@ class Page(BaseDoxygeItem):
|
||||
self.mText.insert(endIndex, '<ul>')
|
||||
endIndex += 1
|
||||
if self.mIsSort:
|
||||
self.mSubPages.sort(key=lambda x: x.mName.lower())
|
||||
self.mSubPages.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
for page in self.mSubPages:
|
||||
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))
|
||||
endIndex += 1
|
||||
|
@ -25,7 +25,7 @@ class BaseINIFile(object):
|
||||
@return: instance of this class
|
||||
|
||||
"""
|
||||
if len(args) == 0: return object.__new__(cls)
|
||||
if len(args) == 0: return object.__new__(cls, *args, **kwargs)
|
||||
filename = args[0]
|
||||
parent = None
|
||||
if len(args) > 1:
|
||||
@ -33,7 +33,7 @@ class BaseINIFile(object):
|
||||
|
||||
key = os.path.normpath(filename)
|
||||
if key not in cls._objs.keys():
|
||||
cls._objs[key] = object.__new__(cls)
|
||||
cls._objs[key] = object.__new__(cls, *args, **kwargs)
|
||||
|
||||
if parent is not None:
|
||||
cls._objs[key].AddParent(parent)
|
||||
|
@ -10,10 +10,10 @@
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
from plugins.EdkPlugins.basemodel import ini
|
||||
from plugins.EdkPlugins.edk2.model import dsc
|
||||
from plugins.EdkPlugins.edk2.model import inf
|
||||
from plugins.EdkPlugins.edk2.model import dec
|
||||
import plugins.EdkPlugins.basemodel.ini as ini
|
||||
import plugins.EdkPlugins.edk2.model.dsc as dsc
|
||||
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||
import os
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
@ -25,7 +25,7 @@ class SurfaceObject(object):
|
||||
@return: instance of this class
|
||||
|
||||
"""
|
||||
obj = object.__new__(cls)
|
||||
obj = object.__new__(cls, *args, **kwargs)
|
||||
if "None" not in cls._objs:
|
||||
cls._objs["None"] = []
|
||||
cls._objs["None"].append(obj)
|
||||
@ -655,13 +655,13 @@ class Package(SurfaceObject):
|
||||
return self._pcds
|
||||
|
||||
def GetPpis(self):
|
||||
return list(self._ppis.values())
|
||||
return self._ppis.values()
|
||||
|
||||
def GetProtocols(self):
|
||||
return list(self._protocols.values())
|
||||
return self._protocols.values()
|
||||
|
||||
def GetGuids(self):
|
||||
return list(self._guids.values())
|
||||
return self._guids.values()
|
||||
|
||||
def Destroy(self):
|
||||
for pcd in self._pcds.values():
|
||||
@ -846,7 +846,7 @@ class SurfaceItem(object):
|
||||
ErrorMsg("%s item is duplicated defined in packages: %s and %s" %
|
||||
(name, parent.GetFilename(), cls._objs[name].GetParent().GetFilename()))
|
||||
return None
|
||||
obj = object.__new__(cls)
|
||||
obj = object.__new__(cls, *args, **kwargs)
|
||||
cls._objs[name] = obj
|
||||
return obj
|
||||
elif issubclass(parent.__class__, Module):
|
||||
|
@ -11,7 +11,7 @@
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
from plugins.EdkPlugins.basemodel import ini
|
||||
import plugins.EdkPlugins.basemodel.ini as ini
|
||||
import re, os
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
"""This file produce action class to generate doxygen document for edk2 codebase.
|
||||
The action classes are shared by GUI and command line tools.
|
||||
"""
|
||||
from plugins.EdkPlugins.basemodel import doxygen
|
||||
import plugins.EdkPlugins.basemodel.doxygen as doxygen
|
||||
import os
|
||||
try:
|
||||
import wx
|
||||
@ -24,8 +24,8 @@ try:
|
||||
except:
|
||||
gInGui = False
|
||||
import re
|
||||
from plugins.EdkPlugins.edk2.model import inf
|
||||
from plugins.EdkPlugins.edk2.model import dec
|
||||
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
_ignore_dir = ['.svn', '_svn', 'cvs']
|
||||
@ -376,10 +376,9 @@ class PackageDocumentAction(DoxygenAction):
|
||||
return
|
||||
|
||||
try:
|
||||
with open(path, 'r') as f:
|
||||
lines = f.readlines()
|
||||
except UnicodeDecodeError:
|
||||
return
|
||||
f = open(path, 'r')
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
except IOError:
|
||||
ErrorMsg('Fail to open file %s' % path)
|
||||
return
|
||||
@ -387,7 +386,7 @@ class PackageDocumentAction(DoxygenAction):
|
||||
configFile.AddFile(path)
|
||||
|
||||
no = 0
|
||||
for no in range(len(lines)):
|
||||
for no in xrange(len(lines)):
|
||||
if len(lines[no].strip()) == 0:
|
||||
continue
|
||||
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
||||
@ -1001,7 +1000,7 @@ class PackageDocumentAction(DoxygenAction):
|
||||
#file = textfile.TextFile(path)
|
||||
|
||||
try:
|
||||
file = open(path, 'r')
|
||||
file = open(path, 'rb')
|
||||
except (IOError, OSError) as msg:
|
||||
return None
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
from plugins.EdkPlugins.basemodel import doxygen
|
||||
import plugins.EdkPlugins.basemodel.doxygen as doxygen
|
||||
import os
|
||||
try:
|
||||
import wx
|
||||
@ -21,8 +21,8 @@ try:
|
||||
except:
|
||||
gInGui = False
|
||||
import re
|
||||
from plugins.EdkPlugins.edk2.model import inf
|
||||
from plugins.EdkPlugins.edk2.model import dec
|
||||
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
_ignore_dir = ['.svn', '_svn', 'cvs']
|
||||
@ -388,7 +388,7 @@ class PackageDocumentAction(DoxygenAction):
|
||||
configFile.AddFile(path)
|
||||
return
|
||||
no = 0
|
||||
for no in range(len(lines)):
|
||||
for no in xrange(len(lines)):
|
||||
if len(lines[no].strip()) == 0:
|
||||
continue
|
||||
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
||||
@ -1003,7 +1003,7 @@ class PackageDocumentAction(DoxygenAction):
|
||||
#file = textfile.TextFile(path)
|
||||
|
||||
try:
|
||||
file = open(path, 'r')
|
||||
file = open(path, 'rb')
|
||||
except (IOError, OSError) as msg:
|
||||
return None
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
from plugins.EdkPlugins.basemodel import ini
|
||||
import plugins.EdkPlugins.basemodel.ini as ini
|
||||
import re, os
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
from plugins.EdkPlugins.basemodel import ini
|
||||
import plugins.EdkPlugins.basemodel.ini as ini
|
||||
import re, os
|
||||
from plugins.EdkPlugins.basemodel.message import *
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
# This script will modife the C/Include/Common/BuildVersion.h file and the two
|
||||
# Python scripts, Python/Common/BuildVersion.py and Python/UPT/BuildVersion.py.
|
||||
# If SVN is available, the tool will obtain the current checked out version of
|
||||
# the source tree for including the --version commands.
|
||||
# the source tree for including the the --version commands.
|
||||
|
||||
# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
@ -73,7 +73,7 @@ def ParseOptions():
|
||||
|
||||
|
||||
def ShellCommandResults(CmdLine, Opt):
|
||||
""" Execute the command, returning the output content """
|
||||
""" Execute the comand, returning the output content """
|
||||
file_list = NamedTemporaryFile(delete=False)
|
||||
filename = file_list.name
|
||||
Results = []
|
||||
|
79
BaseTools/Source/BinaryFiles.txt
Normal file
79
BaseTools/Source/BinaryFiles.txt
Normal file
@ -0,0 +1,79 @@
|
||||
## @file
|
||||
# This file lists all of the tool files that must be present in the Bin trees.
|
||||
#
|
||||
# This file is used by the EDK II Build Server that automatically builds the
|
||||
# BaseTools Win32 binaries.
|
||||
# When new tools are create, the tool executable must be listed in the [Bin.Win32]
|
||||
# section.
|
||||
# If a tool requires additional files, the developer must list those files in the
|
||||
# [ExtraFiles.Win32] section.
|
||||
# The [CxFreeze.Win32] section is maintained by the owner of the Build Server who
|
||||
# must ensure that files that are required by the cx_freeze frozen binaries are
|
||||
# present in the Bin\Win32 directory.
|
||||
#
|
||||
# Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials 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:
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
##
|
||||
|
||||
[Bin.Win32]
|
||||
build.exe
|
||||
BPDG.exe
|
||||
Common.PyUtility.pyd
|
||||
Ecc.exe
|
||||
EfiCompressor.pyd
|
||||
EfiRom.exe
|
||||
Eot.EfiCompressor.pyd
|
||||
Eot.LzmaCompressor.pyd
|
||||
GenCrc32.exe
|
||||
GenDepex.exe
|
||||
GenFds.exe
|
||||
GenFfs.exe
|
||||
GenFv.exe
|
||||
GenFw.exe
|
||||
GenPatchPcdTable.exe
|
||||
GenSec.exe
|
||||
ImportTool.bat
|
||||
LzmaCompress.exe
|
||||
LzmaF86Compress.bat
|
||||
PatchPcdValue.exe
|
||||
Rsa2048Sha256GenerateKeys.exe
|
||||
Rsa2048Sha256Sign.exe
|
||||
Split.exe
|
||||
TargetTool.exe
|
||||
TianoCompress.exe
|
||||
Trim.exe
|
||||
UPT.exe
|
||||
VfrCompile.exe
|
||||
VolInfo.exe
|
||||
Pkcs7Sign.exe
|
||||
DevicePath.exe
|
||||
|
||||
[ExtraFiles.Win32]
|
||||
TestSigningPrivateKey.pem
|
||||
config.ini
|
||||
exception.xml
|
||||
TestCert.pem
|
||||
TestCert.pub.pem
|
||||
TestRoot.pem
|
||||
TestRoot.pub.pem
|
||||
TestSub.pem
|
||||
TestSub.pub.pem
|
||||
|
||||
[CxFreeze.Win32]
|
||||
_ctypes.pyd
|
||||
_hashlib.pyd
|
||||
_socket.pyd
|
||||
_sqlite3.pyd
|
||||
_ssl.pyd
|
||||
pyexpat.pyd
|
||||
python27.dll
|
||||
select.pyd
|
||||
sqlite3.dll
|
@ -56,6 +56,13 @@ PeCoffLoaderRelocateIa32Image (
|
||||
IN UINT64 Adjust
|
||||
);
|
||||
|
||||
RETURN_STATUS
|
||||
PeCoffLoaderRelocateIpfImage (
|
||||
IN UINT16 *Reloc,
|
||||
IN OUT CHAR8 *Fixup,
|
||||
IN OUT CHAR8 **FixupData,
|
||||
IN UINT64 Adjust
|
||||
);
|
||||
|
||||
RETURN_STATUS
|
||||
PeCoffLoaderRelocateArmImage (
|
||||
@ -177,6 +184,7 @@ Returns:
|
||||
}
|
||||
|
||||
if (ImageContext->Machine != EFI_IMAGE_MACHINE_IA32 && \
|
||||
ImageContext->Machine != EFI_IMAGE_MACHINE_IA64 && \
|
||||
ImageContext->Machine != EFI_IMAGE_MACHINE_X64 && \
|
||||
ImageContext->Machine != EFI_IMAGE_MACHINE_ARMT && \
|
||||
ImageContext->Machine != EFI_IMAGE_MACHINE_EBC && \
|
||||
@ -217,7 +225,7 @@ Returns:
|
||||
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER && \
|
||||
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER) {
|
||||
//
|
||||
// unsupported PeImage subsystem type
|
||||
// upsupported PeImage subsystem type
|
||||
//
|
||||
return RETURN_UNSUPPORTED;
|
||||
}
|
||||
@ -483,7 +491,7 @@ Returns:
|
||||
// In Te image header there is not a field to describe the ImageSize.
|
||||
// Actually, the ImageSize equals the RVA plus the VirtualSize of
|
||||
// the last section mapped into memory (Must be rounded up to
|
||||
// a multiple of Section Alignment). Per the PE/COFF specification, the
|
||||
// a mulitple of Section Alignment). Per the PE/COFF specification, the
|
||||
// section headers in the Section Table must appear in order of the RVA
|
||||
// values for the corresponding sections. So the ImageSize can be determined
|
||||
// by the RVA and the VirtualSize of the last section header in the
|
||||
@ -808,6 +816,9 @@ Returns:
|
||||
case EFI_IMAGE_MACHINE_ARMT:
|
||||
Status = PeCoffLoaderRelocateArmImage (&Reloc, Fixup, &FixupData, Adjust);
|
||||
break;
|
||||
case EFI_IMAGE_MACHINE_IA64:
|
||||
Status = PeCoffLoaderRelocateIpfImage (Reloc, Fixup, &FixupData, Adjust);
|
||||
break;
|
||||
default:
|
||||
Status = RETURN_UNSUPPORTED;
|
||||
break;
|
||||
@ -1308,14 +1319,15 @@ PeCoffLoaderGetPdbPointer (
|
||||
Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
|
||||
break;
|
||||
case EFI_IMAGE_MACHINE_X64:
|
||||
case EFI_IMAGE_MACHINE_IPF:
|
||||
//
|
||||
// Assume PE32+ image with X64 Machine field
|
||||
// Assume PE32+ image with X64 or IPF Machine field
|
||||
//
|
||||
Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
|
||||
break;
|
||||
default:
|
||||
//
|
||||
// For unknown Machine field, use Magic in optional Header
|
||||
// For unknow Machine field, use Magic in optional Header
|
||||
//
|
||||
Magic = Hdr.Pe32->OptionalHeader.Magic;
|
||||
}
|
||||
|
@ -2057,13 +2057,13 @@ IsHexStr (
|
||||
)
|
||||
{
|
||||
//
|
||||
// skip preceding white space
|
||||
// skip preceeding white space
|
||||
//
|
||||
while ((*Str != 0) && *Str == L' ') {
|
||||
Str ++;
|
||||
}
|
||||
//
|
||||
// skip preceding zeros
|
||||
// skip preceeding zeros
|
||||
//
|
||||
while ((*Str != 0) && *Str == L'0') {
|
||||
Str ++;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** @file
|
||||
CalculateCrc32 routine.
|
||||
CalcuateCrc32 routine.
|
||||
|
||||
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
@ -288,7 +288,7 @@ Routine Description:
|
||||
|
||||
Arguments:
|
||||
|
||||
Data - The buffer containing the data to be processed
|
||||
Data - The buffer contaning the data to be processed
|
||||
DataSize - The size of data to be processed
|
||||
CrcOut - A pointer to the caller allocated UINT32 that on
|
||||
contains the CRC32 checksum of Data
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** @file
|
||||
Header file for CalculateCrc32 routine
|
||||
Header file for CalcuateCrc32 routine
|
||||
|
||||
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
@ -31,7 +31,7 @@ Routine Description:
|
||||
|
||||
Arguments:
|
||||
|
||||
Data - The buffer containing the data to be processed
|
||||
Data - The buffer contaning the data to be processed
|
||||
DataSize - The size of data to be processed
|
||||
CrcOut - A pointer to the caller allocated UINT32 that on
|
||||
contains the CRC32 checksum of Data
|
||||
|
@ -747,7 +747,7 @@ Arguments:
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression is successful
|
||||
EFI_SUCCESS - Decompression is successfull
|
||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||
|
||||
--*/
|
||||
@ -902,7 +902,7 @@ Arguments:
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression is successful
|
||||
EFI_SUCCESS - Decompression is successfull
|
||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||
|
||||
--*/
|
||||
@ -937,7 +937,7 @@ Arguments:
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression is successful
|
||||
EFI_SUCCESS - Decompression is successfull
|
||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||
|
||||
--*/
|
||||
|
@ -70,7 +70,7 @@ Arguments:
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression is successful
|
||||
EFI_SUCCESS - Decompression is successfull
|
||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||
|
||||
**/
|
||||
@ -128,7 +128,7 @@ Arguments:
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Decompression is successful
|
||||
EFI_SUCCESS - Decompression is successfull
|
||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||
|
||||
**/
|
||||
|
@ -396,7 +396,7 @@ Routine Description:
|
||||
|
||||
Allocate memory spaces for data structures used in compression process
|
||||
|
||||
Arguments: (VOID)
|
||||
Argements: (VOID)
|
||||
|
||||
Returns:
|
||||
|
||||
@ -652,7 +652,7 @@ Returns: (VOID)
|
||||
|
||||
//
|
||||
// We have just got a long match, the target tree
|
||||
// can be located by MatchPos + 1. Traverse the tree
|
||||
// can be located by MatchPos + 1. Travese the tree
|
||||
// from bottom up to get to a proper starting point.
|
||||
// The usage of PERC_FLAG ensures proper node deletion
|
||||
// in DeleteNode() later.
|
||||
@ -1281,7 +1281,7 @@ Routine Description:
|
||||
|
||||
Outputs rightmost n bits of x
|
||||
|
||||
Arguments:
|
||||
Argments:
|
||||
|
||||
n - the rightmost n bits of the data is used
|
||||
x - the data
|
||||
|
@ -21,7 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include "EfiUtilityMsgs.h"
|
||||
|
||||
//
|
||||
// Declare module globals for keeping track of the utility's
|
||||
// Declare module globals for keeping track of the the utility's
|
||||
// name and other settings.
|
||||
//
|
||||
STATIC STATUS mStatus = STATUS_SUCCESS;
|
||||
@ -61,7 +61,7 @@ Arguments:
|
||||
at least something valid is not specified.
|
||||
|
||||
FileName - name of the file or application. If not specified, then the
|
||||
utility name (as set by the utility calling SetUtilityName()
|
||||
utilty name (as set by the utility calling SetUtilityName()
|
||||
earlier) is used. Otherwise "Unknown utility" is used.
|
||||
|
||||
LineNumber - the line number of error, typically used by parsers. If the
|
||||
@ -384,7 +384,7 @@ Routine Description:
|
||||
Arguments:
|
||||
Type - "warning" or "error" string to insert into the message to be
|
||||
printed. The first character of this string (converted to uppercase)
|
||||
is used to precede the MessageCode value in the output string.
|
||||
is used to preceed the MessageCode value in the output string.
|
||||
|
||||
FileName - name of the file where the warning was detected, or the name
|
||||
of the application that detected the warning
|
||||
@ -597,7 +597,7 @@ Routine Description:
|
||||
|
||||
Arguments:
|
||||
UtilityName - name of the utility, which will be printed with all
|
||||
error/warning/debug messages.
|
||||
error/warning/debug messags.
|
||||
|
||||
Returns:
|
||||
NA
|
||||
|
@ -318,7 +318,7 @@ Routine Description:
|
||||
Arguments:
|
||||
|
||||
FileType Type of file to search for.
|
||||
Instance Instance of the file type to return.
|
||||
Instance Instace of the file type to return.
|
||||
File Return pointer. In the case of an error, contents are undefined.
|
||||
|
||||
Returns:
|
||||
@ -505,7 +505,7 @@ Arguments:
|
||||
|
||||
File The file to search.
|
||||
SectionType Type of file to search for.
|
||||
Instance Instance of the section to return.
|
||||
Instance Instace of the section to return.
|
||||
Section Return pointer. In the case of an error, contents are undefined.
|
||||
|
||||
Returns:
|
||||
|
@ -228,7 +228,7 @@ Routine Description:
|
||||
Arguments:
|
||||
|
||||
OldPath Path name of replace the final segment
|
||||
Peer The new path name to concatenate to become the peer path
|
||||
Peer The new path name to concatinate to become the peer path
|
||||
|
||||
Returns:
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user