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 <WebServer.h>
|
||||||
#include <Library/MtrrLib.h>
|
#include <Library/MtrrLib.h>
|
||||||
#include <Register/Msr.h>
|
|
||||||
|
|
||||||
#define VARIABLE_MTRR_VALID 0x800
|
#define VARIABLE_MTRR_VALID 0x800
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <Guid/EventGroup.h>
|
#include <Guid/EventGroup.h>
|
||||||
|
|
||||||
|
#include <Register/Msr.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/MemoryAllocationLib.h>
|
#include <Library/MemoryAllocationLib.h>
|
||||||
|
@ -141,6 +141,7 @@
|
|||||||
ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
|
ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
|
||||||
ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
||||||
ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
|
ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
|
||||||
|
ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
||||||
ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||||
ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/** @file
|
/** @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
|
* This program and the accompanying materials
|
||||||
* are licensed and made available under the terms and conditions of the BSD License
|
* are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -467,7 +467,7 @@ GicV3DxeInitialize (
|
|||||||
|
|
||||||
// Route the SPIs to the primary CPU. SPIs start at the INTID 32
|
// Route the SPIs to the primary CPU. SPIs start at the INTID 32
|
||||||
for (Index = 0; Index < (mGicNumInterrupts - 32); Index++) {
|
for (Index = 0; Index < (mGicNumInterrupts - 32); Index++) {
|
||||||
MmioWrite64 (
|
MmioWrite32 (
|
||||||
mGicDistributorBase + ARM_GICD_IROUTER + (Index * 8),
|
mGicDistributorBase + ARM_GICD_IROUTER + (Index * 8),
|
||||||
CpuTarget
|
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
|
EFIAPI
|
||||||
ArmReplaceLiveTranslationEntry (
|
ArmReplaceLiveTranslationEntry (
|
||||||
IN UINT64 *Entry,
|
IN UINT64 *Entry,
|
||||||
IN UINT64 Value,
|
IN UINT64 Value
|
||||||
IN UINT64 RegionStart
|
|
||||||
);
|
);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
|
@ -124,15 +124,15 @@ ASM_FUNC(ArmSetMAIR)
|
|||||||
// IN VOID *MVA // X1
|
// IN VOID *MVA // X1
|
||||||
// );
|
// );
|
||||||
ASM_FUNC(ArmUpdateTranslationTableEntry)
|
ASM_FUNC(ArmUpdateTranslationTableEntry)
|
||||||
dsb nshst
|
dc civac, x0 // Clean and invalidate data line
|
||||||
lsr x1, x1, #12
|
dsb sy
|
||||||
EL1_OR_EL2_OR_EL3(x0)
|
EL1_OR_EL2_OR_EL3(x0)
|
||||||
1: tlbi vaae1, x1 // TLB Invalidate VA , EL1
|
1: tlbi vaae1, x1 // TLB Invalidate VA , EL1
|
||||||
b 4f
|
b 4f
|
||||||
2: tlbi vae2, x1 // TLB Invalidate VA , EL2
|
2: tlbi vae2, x1 // TLB Invalidate VA , EL2
|
||||||
b 4f
|
b 4f
|
||||||
3: tlbi vae3, x1 // TLB Invalidate VA , EL3
|
3: tlbi vae3, x1 // TLB Invalidate VA , EL3
|
||||||
4: dsb nsh
|
4: dsb sy
|
||||||
isb
|
isb
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -129,14 +129,13 @@ STATIC
|
|||||||
VOID
|
VOID
|
||||||
ReplaceLiveEntry (
|
ReplaceLiveEntry (
|
||||||
IN UINT64 *Entry,
|
IN UINT64 *Entry,
|
||||||
IN UINT64 Value,
|
IN UINT64 Value
|
||||||
IN UINT64 RegionStart
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (!ArmMmuEnabled ()) {
|
if (!ArmMmuEnabled ()) {
|
||||||
*Entry = Value;
|
*Entry = Value;
|
||||||
} else {
|
} else {
|
||||||
ArmReplaceLiveTranslationEntry (Entry, Value, RegionStart);
|
ArmReplaceLiveTranslationEntry (Entry, Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,8 +296,7 @@ GetBlockEntryListFromAddress (
|
|||||||
|
|
||||||
// Fill the BlockEntry with the new TranslationTable
|
// Fill the BlockEntry with the new TranslationTable
|
||||||
ReplaceLiveEntry (BlockEntry,
|
ReplaceLiveEntry (BlockEntry,
|
||||||
(UINTN)TranslationTable | TableAttributes | TT_TYPE_TABLE_ENTRY,
|
((UINTN)TranslationTable & TT_ADDRESS_MASK_DESCRIPTION_TABLE) | TableAttributes | TT_TYPE_TABLE_ENTRY);
|
||||||
RegionStart);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (IndexLevel != PageLevel) {
|
if (IndexLevel != PageLevel) {
|
||||||
@ -377,8 +375,6 @@ UpdateRegionMapping (
|
|||||||
*BlockEntry &= BlockEntryMask;
|
*BlockEntry &= BlockEntryMask;
|
||||||
*BlockEntry |= (RegionStart & TT_ADDRESS_MASK_BLOCK_ENTRY) | Attributes | Type;
|
*BlockEntry |= (RegionStart & TT_ADDRESS_MASK_BLOCK_ENTRY) | Attributes | Type;
|
||||||
|
|
||||||
ArmUpdateTranslationTableEntry (BlockEntry, (VOID *)RegionStart);
|
|
||||||
|
|
||||||
// Go to the next BlockEntry
|
// Go to the next BlockEntry
|
||||||
RegionStart += BlockEntrySize;
|
RegionStart += BlockEntrySize;
|
||||||
RegionLength -= BlockEntrySize;
|
RegionLength -= BlockEntrySize;
|
||||||
@ -386,7 +382,7 @@ UpdateRegionMapping (
|
|||||||
|
|
||||||
// Break the inner loop when next block is a table
|
// Break the inner loop when next block is a table
|
||||||
// Rerun GetBlockEntryListFromAddress to avoid page table memory leak
|
// Rerun GetBlockEntryListFromAddress to avoid page table memory leak
|
||||||
if (TableLevel != 3 && BlockEntry <= LastBlockEntry &&
|
if (TableLevel != 3 &&
|
||||||
(*BlockEntry & TT_TYPE_MASK) == TT_TYPE_TABLE_ENTRY) {
|
(*BlockEntry & TT_TYPE_MASK) == TT_TYPE_TABLE_ENTRY) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -491,6 +487,9 @@ ArmSetMemoryAttributes (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Invalidate all TLB entries so changes are synced
|
||||||
|
ArmInvalidateTlb ();
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -513,6 +512,9 @@ SetMemoryRegionAttribute (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Invalidate all TLB entries so changes are synced
|
||||||
|
ArmInvalidateTlb ();
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,14 +32,13 @@
|
|||||||
dmb sy
|
dmb sy
|
||||||
dc ivac, x0
|
dc ivac, x0
|
||||||
|
|
||||||
// flush translations for the target address from the TLBs
|
// flush the TLBs
|
||||||
lsr x2, x2, #12
|
|
||||||
.if \el == 1
|
.if \el == 1
|
||||||
tlbi vaae1, x2
|
tlbi vmalle1
|
||||||
.else
|
.else
|
||||||
tlbi vae\el, x2
|
tlbi alle\el
|
||||||
.endif
|
.endif
|
||||||
dsb nsh
|
dsb sy
|
||||||
|
|
||||||
// re-enable the MMU
|
// re-enable the MMU
|
||||||
msr sctlr_el\el, x8
|
msr sctlr_el\el, x8
|
||||||
@ -49,20 +48,19 @@
|
|||||||
//VOID
|
//VOID
|
||||||
//ArmReplaceLiveTranslationEntry (
|
//ArmReplaceLiveTranslationEntry (
|
||||||
// IN UINT64 *Entry,
|
// IN UINT64 *Entry,
|
||||||
// IN UINT64 Value,
|
// IN UINT64 Value
|
||||||
// IN UINT64 Address
|
|
||||||
// )
|
// )
|
||||||
ASM_FUNC(ArmReplaceLiveTranslationEntry)
|
ASM_FUNC(ArmReplaceLiveTranslationEntry)
|
||||||
|
|
||||||
// disable interrupts
|
// disable interrupts
|
||||||
mrs x4, daif
|
mrs x2, daif
|
||||||
msr daifset, #0xf
|
msr daifset, #0xf
|
||||||
isb
|
isb
|
||||||
|
|
||||||
// clean and invalidate first so that we don't clobber
|
// clean and invalidate first so that we don't clobber
|
||||||
// adjacent entries that are dirty in the caches
|
// adjacent entries that are dirty in the caches
|
||||||
dc civac, x0
|
dc civac, x0
|
||||||
dsb nsh
|
dsb ish
|
||||||
|
|
||||||
EL1_OR_EL2_OR_EL3(x3)
|
EL1_OR_EL2_OR_EL3(x3)
|
||||||
1:__replace_entry 1
|
1:__replace_entry 1
|
||||||
@ -71,7 +69,7 @@ ASM_FUNC(ArmReplaceLiveTranslationEntry)
|
|||||||
b 4f
|
b 4f
|
||||||
3:__replace_entry 3
|
3:__replace_entry 3
|
||||||
|
|
||||||
4:msr daif, x4
|
4:msr daif, x2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ASM_GLOBAL ASM_PFX(ArmReplaceLiveTranslationEntrySize)
|
ASM_GLOBAL ASM_PFX(ArmReplaceLiveTranslationEntrySize)
|
||||||
|
@ -135,11 +135,6 @@ PopulateLevel2PageTable (
|
|||||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
||||||
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_BACK;
|
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_BACK;
|
||||||
break;
|
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_WRITE_THROUGH:
|
||||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
|
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
|
||||||
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_THROUGH;
|
PageAttributes = TT_DESCRIPTOR_PAGE_WRITE_THROUGH;
|
||||||
@ -244,10 +239,6 @@ FillTranslationTable (
|
|||||||
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK:
|
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK:
|
||||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(0);
|
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(0);
|
||||||
break;
|
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:
|
case ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH:
|
||||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(0);
|
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(0);
|
||||||
break;
|
break;
|
||||||
@ -260,10 +251,6 @@ FillTranslationTable (
|
|||||||
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_BACK:
|
||||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);
|
Attributes = TT_DESCRIPTOR_SECTION_WRITE_BACK(1);
|
||||||
break;
|
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:
|
case ARM_MEMORY_REGION_ATTRIBUTE_NONSECURE_WRITE_THROUGH:
|
||||||
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(1);
|
Attributes = TT_DESCRIPTOR_SECTION_WRITE_THROUGH(1);
|
||||||
break;
|
break;
|
||||||
@ -294,8 +281,8 @@ FillTranslationTable (
|
|||||||
PhysicalBase += TT_DESCRIPTOR_SECTION_SIZE;
|
PhysicalBase += TT_DESCRIPTOR_SECTION_SIZE;
|
||||||
RemainLength -= TT_DESCRIPTOR_SECTION_SIZE;
|
RemainLength -= TT_DESCRIPTOR_SECTION_SIZE;
|
||||||
} else {
|
} else {
|
||||||
PageMapLength = MIN (RemainLength, TT_DESCRIPTOR_SECTION_SIZE -
|
PageMapLength = MIN (RemainLength, TT_DESCRIPTOR_SECTION_SIZE) -
|
||||||
(PhysicalBase % TT_DESCRIPTOR_SECTION_SIZE));
|
(PhysicalBase % TT_DESCRIPTOR_SECTION_SIZE);
|
||||||
|
|
||||||
// Case: Physical address aligned on the Section Size (1MB) && the length
|
// Case: Physical address aligned on the Section Size (1MB) && the length
|
||||||
// does not fill a section
|
// does not fill a section
|
||||||
@ -744,11 +731,6 @@ ArmSetMemoryAttributes (
|
|||||||
UINT64 ChunkLength;
|
UINT64 ChunkLength;
|
||||||
BOOLEAN FlushTlbs;
|
BOOLEAN FlushTlbs;
|
||||||
|
|
||||||
if (BaseAddress > (UINT64)MAX_ADDRESS) {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
Length = MIN (Length, (UINT64)MAX_ADDRESS - BaseAddress + 1);
|
|
||||||
if (Length == 0) {
|
if (Length == 0) {
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -49,4 +49,6 @@
|
|||||||
|
|
||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-lto
|
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
|
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 <Uefi.h>
|
||||||
|
#include <Library/ArmLib.h>
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
@ -282,6 +283,12 @@ InitializeDebugAgent (
|
|||||||
EFI_FFS_FILE_HEADER *FfsHeader;
|
EFI_FFS_FILE_HEADER *FfsHeader;
|
||||||
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
|
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
|
// We use InitFlag to know if DebugAgent has been initialized from
|
||||||
// Sec (DEBUG_AGENT_INIT_PREMEM_SEC) or PrePi (DEBUG_AGENT_INIT_POSTMEM_SEC)
|
// Sec (DEBUG_AGENT_INIT_PREMEM_SEC) or PrePi (DEBUG_AGENT_INIT_POSTMEM_SEC)
|
||||||
// modules
|
// modules
|
||||||
|
@ -22,13 +22,22 @@
|
|||||||
[Sources.common]
|
[Sources.common]
|
||||||
DebugAgentSymbolsBaseLib.c
|
DebugAgentSymbolsBaseLib.c
|
||||||
|
|
||||||
|
[Sources.ARM]
|
||||||
|
Arm/DebugAgentException.asm | RVCT
|
||||||
|
Arm/DebugAgentException.S | GCC
|
||||||
|
|
||||||
|
[Sources.AARCH64]
|
||||||
|
AArch64/DebugAgentException.S
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
ArmPkg/ArmPkg.dec
|
ArmPkg/ArmPkg.dec
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
|
ArmLib
|
||||||
DebugLib
|
DebugLib
|
||||||
|
DefaultExceptionHandlerLib
|
||||||
PcdLib
|
PcdLib
|
||||||
PeCoffExtraActionLib
|
PeCoffExtraActionLib
|
||||||
PeCoffLib
|
PeCoffLib
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include <Library/PrintLib.h>
|
#include <Library/PrintLib.h>
|
||||||
#include <Library/ArmDisassemblerLib.h>
|
#include <Library/ArmDisassemblerLib.h>
|
||||||
#include <Library/SerialPortLib.h>
|
#include <Library/SerialPortLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
|
|
||||||
#include <Guid/DebugImageInfoTable.h>
|
#include <Guid/DebugImageInfoTable.h>
|
||||||
#include <Protocol/DebugSupport.h>
|
#include <Protocol/DebugSupport.h>
|
||||||
@ -160,21 +159,14 @@ DefaultExceptionHandler (
|
|||||||
INT32 Offset;
|
INT32 Offset;
|
||||||
|
|
||||||
if (mRecursiveException) {
|
if (mRecursiveException) {
|
||||||
STATIC CHAR8 CONST Message[] = "\nRecursive exception occurred while dumping the CPU state\n";
|
CharCount = AsciiSPrint (Buffer, sizeof (Buffer),"\nRecursive exception occurred while dumping the CPU state\n");
|
||||||
|
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||||
SerialPortWrite ((UINT8 *)Message, sizeof Message - 1);
|
|
||||||
if (gST->ConOut != NULL) {
|
|
||||||
AsciiPrint (Message);
|
|
||||||
}
|
|
||||||
CpuDeadLoop ();
|
CpuDeadLoop ();
|
||||||
}
|
}
|
||||||
mRecursiveException = TRUE;
|
mRecursiveException = TRUE;
|
||||||
|
|
||||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n\n%a Exception at 0x%016lx\n", gExceptionTypeString[ExceptionType], SystemContext.SystemContextAArch64->ELR);
|
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n\n%a Exception at 0x%016lx\n", gExceptionTypeString[ExceptionType], SystemContext.SystemContextAArch64->ELR);
|
||||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||||
if (gST->ConOut != NULL) {
|
|
||||||
AsciiPrint (Buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
CHAR8 *Pdb, *PrevPdb;
|
CHAR8 *Pdb, *PrevPdb;
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
#include <Library/PrintLib.h>
|
#include <Library/PrintLib.h>
|
||||||
#include <Library/ArmDisassemblerLib.h>
|
#include <Library/ArmDisassemblerLib.h>
|
||||||
#include <Library/SerialPortLib.h>
|
#include <Library/SerialPortLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
|
|
||||||
#include <Guid/DebugImageInfoTable.h>
|
#include <Guid/DebugImageInfoTable.h>
|
||||||
|
|
||||||
@ -197,9 +195,6 @@ DefaultExceptionHandler (
|
|||||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n%a Exception PC at 0x%08x CPSR 0x%08x ",
|
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n%a Exception PC at 0x%08x CPSR 0x%08x ",
|
||||||
gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
||||||
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
SerialPortWrite ((UINT8 *) Buffer, CharCount);
|
||||||
if (gST->ConOut != NULL) {
|
|
||||||
AsciiPrint (Buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
CHAR8 *Pdb;
|
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
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = DefaultExceptionHandlerLib
|
BASE_NAME = DefaultExceptionHandlerLib
|
||||||
FILE_GUID = EACDB354-DF1A-4AF9-A171-499737ED818F
|
FILE_GUID = EACDB354-DF1A-4AF9-A171-499737ED818F
|
||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = UEFI_DRIVER
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = DefaultExceptionHandlerLib|DXE_CORE DXE_DRIVER
|
LIBRARY_CLASS = DefaultExceptionHandlerLib
|
||||||
|
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
DefaultExceptionHandlerUefi.c
|
DefaultExceptionHandlerUefi.c
|
||||||
@ -42,7 +42,6 @@
|
|||||||
PeCoffGetEntryPointLib
|
PeCoffGetEntryPointLib
|
||||||
ArmDisassemblerLib
|
ArmDisassemblerLib
|
||||||
SerialPortLib
|
SerialPortLib
|
||||||
UefiBootServicesTableLib
|
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiDebugImageInfoTableGuid
|
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]
|
[Defines]
|
||||||
DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F
|
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]
|
[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
|
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
|
||||||
@ -173,6 +174,7 @@
|
|||||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||||
|
|
||||||
DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
||||||
|
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
||||||
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.inf
|
||||||
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
||||||
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
||||||
@ -270,8 +272,13 @@
|
|||||||
[PcdsFeatureFlag.common]
|
[PcdsFeatureFlag.common]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE
|
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
|
gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
|
||||||
|
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||||
|
|
||||||
[PcdsFeatureFlag.AARCH64]
|
[PcdsFeatureFlag.AARCH64]
|
||||||
#
|
#
|
||||||
# Activate AcpiSdtProtocol
|
# Activate AcpiSdtProtocol
|
||||||
@ -283,6 +290,8 @@
|
|||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
||||||
|
|
||||||
# DEBUG_ASSERT_ENABLED 0x01
|
# DEBUG_ASSERT_ENABLED 0x01
|
||||||
@ -317,9 +326,7 @@
|
|||||||
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
# DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
|
||||||
# // significantly impact boot performance
|
# // significantly impact boot performance
|
||||||
# DEBUG_ERROR 0x80000000 // Error
|
# DEBUG_ERROR 0x80000000 // Error
|
||||||
!if $(TARGET) != RELEASE
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL)
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optional feature to help prevent EFI memory map fragments
|
# 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
|
# Values are in EFI Pages (4K). DXE Core will make sure that
|
||||||
# at least this much of each type of memory can be allocated
|
# at least this much of each type of memory can be allocated
|
||||||
# from a single memory range. This way you only end up with
|
# from a single memory range. This way you only end up with
|
||||||
# maximum of two 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
|
# (the memory used, and the free memory that was prereserved
|
||||||
# but not used).
|
# but not used).
|
||||||
#
|
#
|
||||||
@ -347,6 +354,18 @@
|
|||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
|
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
|
# Enable strict image permissions for all images. (This applies
|
||||||
# only to images that were built with >= 4 KB section alignment.)
|
# only to images that were built with >= 4 KB section alignment.)
|
||||||
@ -360,6 +379,11 @@
|
|||||||
#
|
#
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
||||||
|
#
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
||||||
|
|
||||||
[Components.common]
|
[Components.common]
|
||||||
#
|
#
|
||||||
# Ramdisk support
|
# Ramdisk support
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
# Defines for default states. These can be changed on the command line.
|
# Defines for default states. These can be changed on the command line.
|
||||||
# -D FLAG=VALUE
|
# -D FLAG=VALUE
|
||||||
#
|
#
|
||||||
DEFINE TTY_TERMINAL = FALSE
|
|
||||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||||
DEFINE NETWORK_IP6_ENABLE = FALSE
|
DEFINE NETWORK_IP6_ENABLE = FALSE
|
||||||
DEFINE HTTP_BOOT_ENABLE = FALSE
|
DEFINE HTTP_BOOT_ENABLE = FALSE
|
||||||
@ -58,7 +57,6 @@
|
|||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||||
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||||
PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
|
|
||||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||||
@ -70,9 +68,6 @@
|
|||||||
[LibraryClasses.common.PEIM]
|
[LibraryClasses.common.PEIM]
|
||||||
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
|
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_DRIVER]
|
|
||||||
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
[LibraryClasses.common.UEFI_DRIVER]
|
||||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
|
|
||||||
@ -91,9 +86,8 @@
|
|||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
[PcdsFixedAtBuild.common]
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||||
!if $(ARCH) == AARCH64
|
!if $(ARCH) == AARCH64
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||||
!endif
|
!endif
|
||||||
@ -106,6 +100,9 @@
|
|||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||||
|
|
||||||
|
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
||||||
|
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM PrimeCell
|
# ARM PrimeCell
|
||||||
#
|
#
|
||||||
@ -117,8 +114,6 @@
|
|||||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||||
!if $(TTY_TERMINAL) == TRUE
|
!if $(TTY_TERMINAL) == TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
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
|
!else
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
||||||
!endif
|
!endif
|
||||||
@ -147,20 +142,6 @@
|
|||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
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]
|
[PcdsFixedAtBuild.AARCH64]
|
||||||
# Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
|
# 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
|
# if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
|
||||||
@ -310,11 +291,6 @@
|
|||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
|
|
||||||
#
|
|
||||||
# Status Code Routing
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Platform Driver
|
# Platform Driver
|
||||||
#
|
#
|
||||||
|
@ -91,11 +91,6 @@ READ_LOCK_STATUS = TRUE
|
|||||||
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||||
|
|
||||||
#
|
|
||||||
# Status Code Routing
|
|
||||||
#
|
|
||||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Platform Driver
|
# Platform Driver
|
||||||
#
|
#
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
# Defines for default states. These can be changed on the command line.
|
# Defines for default states. These can be changed on the command line.
|
||||||
# -D FLAG=VALUE
|
# -D FLAG=VALUE
|
||||||
#
|
#
|
||||||
DEFINE TTY_TERMINAL = FALSE
|
|
||||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||||
DEFINE NETWORK_IP6_ENABLE = FALSE
|
DEFINE NETWORK_IP6_ENABLE = FALSE
|
||||||
DEFINE HTTP_BOOT_ENABLE = FALSE
|
DEFINE HTTP_BOOT_ENABLE = FALSE
|
||||||
@ -58,7 +57,6 @@
|
|||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||||
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||||
PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
|
|
||||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||||
@ -67,9 +65,6 @@
|
|||||||
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
||||||
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_DRIVER]
|
|
||||||
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
[LibraryClasses.common.UEFI_DRIVER]
|
||||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
|
|
||||||
@ -97,13 +92,13 @@
|
|||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
[PcdsFixedAtBuild.common]
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||||
!if $(ARCH) == AARCH64
|
!if $(ARCH) == AARCH64
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
||||||
@ -111,6 +106,9 @@
|
|||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||||
|
|
||||||
|
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
||||||
|
gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE
|
||||||
|
|
||||||
#
|
#
|
||||||
# ARM PrimeCell
|
# ARM PrimeCell
|
||||||
#
|
#
|
||||||
@ -122,8 +120,6 @@
|
|||||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||||
!if $(TTY_TERMINAL) == TRUE
|
!if $(TTY_TERMINAL) == TRUE
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
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
|
!else
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
|
||||||
!endif
|
!endif
|
||||||
@ -146,15 +142,6 @@
|
|||||||
#
|
#
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
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]
|
[PcdsPatchableInModule.common]
|
||||||
#
|
#
|
||||||
# This will be overridden in the code
|
# This will be overridden in the code
|
||||||
@ -294,11 +281,6 @@
|
|||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
|
|
||||||
#
|
|
||||||
# Status Code Routing
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Platform Driver
|
# Platform Driver
|
||||||
#
|
#
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
||||||
# Copyright (c) 2014, Linaro 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -74,6 +74,8 @@
|
|||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
[PcdsFixedAtBuild.common]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
|
||||||
|
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
||||||
!if $(ARCH) == AARCH64
|
!if $(ARCH) == AARCH64
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||||
!endif
|
!endif
|
||||||
@ -90,15 +92,14 @@
|
|||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
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
|
## Default Terminal Type
|
||||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
||||||
|
|
||||||
#
|
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
||||||
# Make VariableRuntimeDxe work at emulated non-volatile variable mode.
|
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
|
|
||||||
|
|
||||||
[PcdsPatchableInModule.common]
|
[PcdsPatchableInModule.common]
|
||||||
#
|
#
|
||||||
@ -125,6 +126,9 @@
|
|||||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
||||||
|
|
||||||
|
## PL031 RealTimeClock
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -168,10 +172,7 @@
|
|||||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
|
|
||||||
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
|
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
||||||
# Copyright (c) 2014, Linaro 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -137,7 +137,7 @@ READ_LOCK_STATUS = TRUE
|
|||||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.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/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @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) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
Copyright (c) 2014, Linaro Ltd. 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
|
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
|
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
|
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
|
and 16-bit PCI configuration read cycles may be used at the beginning and the
|
||||||
end of the range.
|
end of the range.
|
||||||
|
|
||||||
@ -1338,7 +1338,7 @@ PciExpressReadBuffer (
|
|||||||
Size from the buffer specified by Buffer. This function only allows the PCI
|
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
|
configuration registers from a single PCI function to be written. Size is
|
||||||
returned. When possible 32-bit PCI configuration write cycles are used to
|
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
|
8-bit and 16-bit PCI configuration write cycles may be used at the beginning
|
||||||
and the end of the range.
|
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.
|
data bits, and stop bits on a serial device.
|
||||||
|
|
||||||
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
||||||
device's default interface speed.
|
device's default interface speed.
|
||||||
On output, the value actually set.
|
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
|
serial interface. A ReceiveFifoDepth value of 0 will use
|
||||||
the device's default FIFO depth.
|
the device's default FIFO depth.
|
||||||
On output, the value actually set.
|
On output, the value actually set.
|
||||||
@ -253,7 +253,7 @@ SerialPortGetControl (
|
|||||||
DefaultParity will use the device's default parity value.
|
DefaultParity will use the device's default parity value.
|
||||||
On output, the value actually set.
|
On output, the value actually set.
|
||||||
@param DataBits The number of data bits to use on the serial device. A DataBits
|
@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.
|
On output, the value actually set.
|
||||||
@param StopBits The number of stop bits to use on this serial device. A StopBits
|
@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
|
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.
|
data bits, and stop bits on a serial device.
|
||||||
|
|
||||||
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
@param BaudRate The requested baud rate. A BaudRate value of 0 will use the
|
||||||
device's default interface speed.
|
device's default interface speed.
|
||||||
On output, the value actually set.
|
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
|
serial interface. A ReceiveFifoDepth value of 0 will use
|
||||||
the device's default FIFO depth.
|
the device's default FIFO depth.
|
||||||
On output, the value actually set.
|
On output, the value actually set.
|
||||||
@ -175,7 +175,7 @@ SerialPortPoll (
|
|||||||
DefaultParity will use the device's default parity value.
|
DefaultParity will use the device's default parity value.
|
||||||
On output, the value actually set.
|
On output, the value actually set.
|
||||||
@param DataBits The number of data bits to use on the serial device. A DataBits
|
@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.
|
On output, the value actually set.
|
||||||
@param StopBits The number of stop bits to use on this serial device. A StopBits
|
@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
|
value of DefaultStopBits will use the device's default number of
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
#include <Library/BootLogoLib.h>
|
#include <Library/BootLogoLib.h>
|
||||||
#include <Library/DevicePathLib.h>
|
#include <Library/DevicePathLib.h>
|
||||||
#include <Library/PcdLib.h>
|
#include <Library/PcdLib.h>
|
||||||
#include <Library/PlatformBmPrintScLib.h>
|
|
||||||
#include <Library/QemuBootOrderLib.h>
|
#include <Library/QemuBootOrderLib.h>
|
||||||
#include <Library/UefiBootManagerLib.h>
|
#include <Library/UefiBootManagerLib.h>
|
||||||
#include <Protocol/DevicePath.h>
|
#include <Protocol/DevicePath.h>
|
||||||
@ -780,11 +779,11 @@ PlatformBootManagerBeforeConsole (
|
|||||||
Do the platform specific action after the console is ready
|
Do the platform specific action after the console is ready
|
||||||
Possible things that can be done in PlatformBootManagerAfterConsole:
|
Possible things that can be done in PlatformBootManagerAfterConsole:
|
||||||
> Console post action:
|
> 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
|
> Signal console ready platform customized event
|
||||||
> Run diagnostics like memory testing
|
> Run diagnostics like memory testing
|
||||||
> Connect certain devices
|
> Connect certain devices
|
||||||
> Dispatch additional option roms
|
> Dispatch aditional option roms
|
||||||
> Special boot: e.g.: USB boot, enter UI
|
> Special boot: e.g.: USB boot, enter UI
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -834,8 +833,6 @@ PlatformBootManagerAfterConsole (
|
|||||||
|
|
||||||
RemoveStaleFvFileOptions ();
|
RemoveStaleFvFileOptions ();
|
||||||
SetBootOrderFromQemu ();
|
SetBootOrderFromQemu ();
|
||||||
|
|
||||||
PlatformBmPrintScRegisterHandler ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,7 +50,6 @@
|
|||||||
DevicePathLib
|
DevicePathLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
PcdLib
|
PcdLib
|
||||||
PlatformBmPrintScLib
|
|
||||||
PrintLib
|
PrintLib
|
||||||
QemuBootOrderLib
|
QemuBootOrderLib
|
||||||
QemuFwCfgLib
|
QemuFwCfgLib
|
||||||
|
@ -83,6 +83,8 @@
|
|||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize
|
||||||
|
|
||||||
|
gArmPlatformTokenSpaceGuid.PcdCoreCount
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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]
|
# 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
|
# -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
|
# ExceptionList if a tool takes an argument with a / add it to the exception list
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
#!/usr/bin/env bash
|
||||||
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
|
||||||
|
|
||||||
# If a ${PYTHON_COMMAND} command is available, use it in preference to python
|
# If a python2 command is available, use it in preference to python
|
||||||
if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then
|
if command -v python2 >/dev/null 2>&1; then
|
||||||
python_exe=${PYTHON_COMMAND}
|
python_exe=python2
|
||||||
fi
|
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
|
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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@set ToolName=%~n0%
|
||||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@set ToolName=%~n0%
|
||||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@set ToolName=%~n0%
|
||||||
@set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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
|
@setlocal
|
||||||
@set ToolName=%~n0%
|
@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">
|
<xs:documentation xml:lang="en-us">
|
||||||
The UserExtensions section is used to disseminate processing
|
The UserExtensions section is used to disseminate processing
|
||||||
instructions that may be custom to the content provided by the distribution. This section
|
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:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:element>
|
</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
|
important to reflect the present state of the matter
|
||||||
</xs:documentation>
|
</xs:documentation>
|
||||||
<xs:documentation xml:lang="en-us">
|
<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
|
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
|
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
|
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:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<!-- End of PackageSurfaceArea PackageIncludes element. -->
|
<!-- End of PackageSurfaceArea PackageIncluces element. -->
|
||||||
|
|
||||||
<xs:element minOccurs="0" maxOccurs="1" name="Modules">
|
<xs:element minOccurs="0" maxOccurs="1" name="Modules">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
@ -962,8 +962,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation xml:lang="en-us">
|
<xs:documentation xml:lang="en-us">
|
||||||
The PCD must be within a
|
The PCD must be within a
|
||||||
specified range of numeric values. Restricted to C style
|
specifed range of numeric values. Restricted to C style
|
||||||
Relational, Equality and Logical Operators and parenthesis
|
Relational, Equality and Logicial Operators and parenthesis
|
||||||
are valid. Only the CName for this PCD is permitted in the
|
are valid. Only the CName for this PCD is permitted in the
|
||||||
ValidValueRange expression. All other values must be
|
ValidValueRange expression. All other values must be
|
||||||
numeric.
|
numeric.
|
||||||
@ -1006,7 +1006,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<xs:documentation xml:lang="en-us">
|
<xs:documentation xml:lang="en-us">
|
||||||
This string should be
|
This string should be
|
||||||
defined by specifications. There are pre-defined error
|
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:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
@ -1452,7 +1452,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation xml:lang="en-us">
|
<xs:documentation xml:lang="en-us">
|
||||||
The module will change the
|
The module will change the
|
||||||
boot mode on some execution paths.
|
boot mode on some exection paths.
|
||||||
</xs:documentation>
|
</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
</xs:enumeration>
|
</xs:enumeration>
|
||||||
@ -2835,7 +2835,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
<xs:anyAttribute processContents="lax"/>
|
<xs:anyAttribute processContents="lax"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</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:element name="HelpText">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
# $(FV_DIR) Directory to store flash image files
|
# $(FV_DIR) Directory to store flash image files
|
||||||
# $(INC) Search path of current module
|
# $(INC) Search path of current module
|
||||||
# $(NASM_INC) Search nasm file 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
|
# $(LIBS) Static library files of current module
|
||||||
# $(<tool>_FLAGS) Tools flags of current module
|
# $(<tool>_FLAGS) Tools flags of current module
|
||||||
# $(MODULE_NAME) Current module name
|
# $(MODULE_NAME) Current module name
|
||||||
@ -131,7 +131,7 @@
|
|||||||
<Command.MSFT, Command.INTEL>
|
<Command.MSFT, Command.INTEL>
|
||||||
"$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
|
"$(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
|
# For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
|
||||||
"$(CC)" $(CC_FLAGS) -c -o ${dst} $(INC) ${src}
|
"$(CC)" $(CC_FLAGS) -c -o ${dst} $(INC) ${src}
|
||||||
|
|
||||||
@ -148,7 +148,7 @@
|
|||||||
<OutputFile>
|
<OutputFile>
|
||||||
$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
|
$(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}
|
"$(CC)" $(CC_FLAGS) $(CC_XIPFLAGS) -c -o ${dst} $(INC) ${src}
|
||||||
|
|
||||||
[C-Header-File]
|
[C-Header-File]
|
||||||
@ -163,7 +163,7 @@
|
|||||||
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
||||||
?.asm, ?.Asm, ?.ASM
|
?.asm, ?.Asm, ?.ASM
|
||||||
|
|
||||||
<InputFile.GCC>
|
<InputFile.GCC, InputFile.GCCLD>
|
||||||
?.S, ?.s
|
?.S, ?.s
|
||||||
|
|
||||||
<ExtraDependency>
|
<ExtraDependency>
|
||||||
@ -177,7 +177,7 @@
|
|||||||
Trim --source-code --convert-hex --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
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
|
"$(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
|
"$(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
|
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
|
# For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
|
||||||
@ -188,7 +188,7 @@
|
|||||||
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
<InputFile.MSFT, InputFile.INTEL, InputFile.RVCT>
|
||||||
?.asm, ?.Asm, ?.ASM
|
?.asm, ?.Asm, ?.ASM
|
||||||
|
|
||||||
<InputFile.GCC>
|
<InputFile.GCC, InputFile.GCCLD>
|
||||||
?.S, ?.s
|
?.S, ?.s
|
||||||
|
|
||||||
<ExtraDependency>
|
<ExtraDependency>
|
||||||
@ -207,7 +207,7 @@
|
|||||||
Trim --source-code --trim-long -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
|
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
|
"$(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
|
"$(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
|
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
|
# For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
|
||||||
@ -269,7 +269,7 @@
|
|||||||
<Command.MSFT, Command.INTEL>
|
<Command.MSFT, Command.INTEL>
|
||||||
"$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST)
|
"$(SLINK)" $(SLINK_FLAGS) /OUT:${dst} @$(OBJECT_FILES_LIST)
|
||||||
|
|
||||||
<Command.GCC>
|
<Command.GCC, Command.GCCLD>
|
||||||
$(RM) ${dst}
|
$(RM) ${dst}
|
||||||
"$(SLINK)" cr ${dst} $(SLINK_FLAGS) @$(OBJECT_FILES_LIST)
|
"$(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)
|
"$(DLINK)" -o ${dst} $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(CC_FLAGS) $(DLINK2_FLAGS)
|
||||||
"$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
|
"$(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>
|
<Command.RVCT>
|
||||||
"$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
|
"$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
|
||||||
|
|
||||||
@ -343,6 +347,9 @@
|
|||||||
<Command.GCC>
|
<Command.GCC>
|
||||||
"$(DLINK)" $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS)
|
"$(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>
|
<Command.RVCT>
|
||||||
"$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
|
"$(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) ${dst} $(BIN_DIR)(+)$(MODULE_NAME_GUID).efi
|
||||||
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
-$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
|
||||||
-$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR)
|
-$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR)
|
||||||
<Command.GCC>
|
<Command.GCC, Command.GCCLD>
|
||||||
$(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
|
$(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
|
||||||
$(OBJCOPY) --strip-unneeded -R .eh_frame ${src}
|
$(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}
|
-$(OBJCOPY) $(OBJCOPY_ADDDEBUGFLAG) ${src}
|
||||||
-$(CP) $(DEBUG_DIR)(+)$(MODULE_NAME).debug $(BIN_DIR)(+)$(MODULE_NAME_GUID).debug
|
-$(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
|
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
|
"$(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}
|
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
|
"$(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
|
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
|
"$(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)
|
"$(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}
|
"$(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
|
"$(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)
|
"$(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
|
"$(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)
|
"$(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}
|
"$(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
|
"$(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)
|
"$(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
|
"$(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},,,,
|
"$(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
|
"$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
|
||||||
Trim --source-code -o ${d_path}(+)${s_base}.iii ${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
|
"$(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)
|
"$(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
|
"$(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)
|
"$(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}
|
"$(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
|
# One, or more, of the following, IA32, IPF, X64, EBC, ARM
|
||||||
# or AArch64.
|
# or AArch64.
|
||||||
# Multiple values can be specified on a single line, using
|
# 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,
|
# during the parsing of a platform description file,
|
||||||
# restricting the build output target(s.)
|
# restricting the build output target(s.)
|
||||||
# The Build Target ARCH is determined by (precedence high to low):
|
# 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.
|
# TAGNAME List Optional Specify the name(s) of the tools_def.txt TagName to use.
|
||||||
# If not specified, all applicable TagName tools will be
|
# If not specified, all applicable TagName tools will be
|
||||||
# used for the build. The list uses space character separation.
|
# 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
|
# MAX_CONCURRENT_THREAD_NUMBER NUMBER Optional The number of concurrent threads. If not specified or set
|
||||||
# to zero, tool automatically detect number of processor
|
# 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
|
all: c
|
||||||
|
|
||||||
c :
|
c :
|
||||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(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
|
||||||
@if not defined PYTHON_COMMAND $(PYTHON_HOME)\python.exe $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $(BASE_TOOLS_PATH)\Source\C
|
|
||||||
|
|
||||||
|
|
||||||
subdirs: $(SUBDIRS)
|
subdirs: $(SUBDIRS)
|
||||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py all $**
|
@$(PYTHON_HOME)\python.exe $(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 $**
|
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py clean $(SUBDIRS)
|
$(PYTHON_HOME)\python.exe $(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)
|
|
||||||
|
|
||||||
.PHONY: cleanall
|
.PHONY: cleanall
|
||||||
cleanall:
|
cleanall:
|
||||||
@if defined PYTHON_COMMAND $(PYTHON_COMMAND) $(BASE_TOOLS_PATH)\Source\C\Makefiles\NmakeSubdirs.py cleanall $(SUBDIRS)
|
$(PYTHON_HOME)\python.exe $(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)
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
This directory contains the next generation of EDK II build tools and template files.
|
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
|
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
|
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.
|
1. Build step to generate the binary tools.
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ class parser_lst(object):
|
|||||||
tmp_dict[offset] = tmp_name
|
tmp_dict[offset] = tmp_name
|
||||||
pcdname_num = int(pcdname_num_re.findall(t_name)[0],10)
|
pcdname_num = int(pcdname_num_re.findall(t_name)[0],10)
|
||||||
uint = int(unit_num.findall(uint)[0],10)
|
uint = int(unit_num.findall(uint)[0],10)
|
||||||
bit = uint // 8
|
bit = uint / 8
|
||||||
for i in range(1, pcdname_num):
|
for i in range(1, pcdname_num):
|
||||||
offset += bit
|
offset += bit
|
||||||
tmp_name = pcdname2_re.findall(t_name)[0] + '[%s]' % i
|
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
|
import os, sys, logging, traceback, subprocess
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
from plugins.EdkPlugins.edk2.model import baseobject
|
import plugins.EdkPlugins.edk2.model.baseobject as baseobject
|
||||||
from plugins.EdkPlugins.edk2.model import doxygengen
|
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',
|
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',
|
'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')
|
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',
|
parser.add_option('-o', '--output', action='store', dest='OutputPath',
|
||||||
help='Specify the document output path. For example: c:\\docoutput')
|
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')
|
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'],
|
parser.add_option('-m', '--mode', action='store', dest='DocumentMode', choices=['CHM', 'HTML'],
|
||||||
help='Specify the document mode from : CHM or HTML')
|
help='Specify the document mode from : CHM or HTML')
|
||||||
|
@ -18,8 +18,8 @@ import os, sys, wx, logging
|
|||||||
import wx.stc
|
import wx.stc
|
||||||
import wx.lib.newevent
|
import wx.lib.newevent
|
||||||
import wx.lib.agw.genericmessagedialog as GMD
|
import wx.lib.agw.genericmessagedialog as GMD
|
||||||
from plugins.EdkPlugins.edk2.model import baseobject
|
import plugins.EdkPlugins.edk2.model.baseobject as baseobject
|
||||||
from plugins.EdkPlugins.edk2.model import doxygengen
|
import plugins.EdkPlugins.edk2.model.doxygengen as doxygengen
|
||||||
|
|
||||||
if hasattr(sys, "frozen"):
|
if hasattr(sys, "frozen"):
|
||||||
appPath = os.path.abspath(os.path.dirname(sys.executable))
|
appPath = os.path.abspath(os.path.dirname(sys.executable))
|
||||||
@ -720,7 +720,7 @@ class ProgressDialog(wx.Dialog):
|
|||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
f.close()
|
f.close()
|
||||||
bfound = False
|
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:
|
if lines[index].find('<a class="el" href="files.html" target="basefrm">File List</a>') != -1:
|
||||||
lines[index] = "<!-- %s" % lines[index]
|
lines[index] = "<!-- %s" % lines[index]
|
||||||
bfound = True
|
bfound = True
|
||||||
@ -969,7 +969,7 @@ class ProgressDialog(wx.Dialog):
|
|||||||
fd = open(path, 'r')
|
fd = open(path, 'r')
|
||||||
text = fd.read()
|
text = fd.read()
|
||||||
fd.close()
|
fd.close()
|
||||||
except Exception as e:
|
except Exception, e:
|
||||||
self.LogMessage (" <<<Fail to open file %s" % path)
|
self.LogMessage (" <<<Fail to open file %s" % path)
|
||||||
return
|
return
|
||||||
text = text.replace ('.s.dox', '.s')
|
text = text.replace ('.s.dox', '.s')
|
||||||
@ -982,7 +982,7 @@ class ProgressDialog(wx.Dialog):
|
|||||||
fd = open(path, 'w')
|
fd = open(path, 'w')
|
||||||
fd.write(text)
|
fd.write(text)
|
||||||
fd.close()
|
fd.close()
|
||||||
except Exception as e:
|
except Exception, e:
|
||||||
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
||||||
return
|
return
|
||||||
self.LogMessage(' >>> Finish to fixup .dox postfix for file %s \n' % path)
|
self.LogMessage(' >>> Finish to fixup .dox postfix for file %s \n' % path)
|
||||||
@ -993,7 +993,7 @@ class ProgressDialog(wx.Dialog):
|
|||||||
fd = open(path, 'r')
|
fd = open(path, 'r')
|
||||||
lines = fd.readlines()
|
lines = fd.readlines()
|
||||||
fd.close()
|
fd.close()
|
||||||
except Exception as e:
|
except Exception, e:
|
||||||
self.LogMessage (" <<<Fail to open file %s" % path)
|
self.LogMessage (" <<<Fail to open file %s" % path)
|
||||||
return
|
return
|
||||||
for line in lines:
|
for line in lines:
|
||||||
@ -1004,7 +1004,7 @@ class ProgressDialog(wx.Dialog):
|
|||||||
fd = open(path, 'w')
|
fd = open(path, 'w')
|
||||||
fd.write("".join(lines))
|
fd.write("".join(lines))
|
||||||
fd.close()
|
fd.close()
|
||||||
except Exception as e:
|
except Exception, e:
|
||||||
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
self.LogMessage (" <<<Fail to fixup file %s" % path)
|
||||||
return
|
return
|
||||||
self.LogMessage(' >>> Finish to fixup .decdoxygen postfix for file %s \n' % path)
|
self.LogMessage(' >>> Finish to fixup .decdoxygen postfix for file %s \n' % path)
|
||||||
|
@ -67,7 +67,7 @@ class Page(BaseDoxygeItem):
|
|||||||
|
|
||||||
def AddSection(self, section):
|
def AddSection(self, section):
|
||||||
self.mSections.append(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):
|
def Generate(self):
|
||||||
if self.mIsMainPage:
|
if self.mIsMainPage:
|
||||||
@ -80,7 +80,7 @@ class Page(BaseDoxygeItem):
|
|||||||
self.mText.append(self.mDescription)
|
self.mText.append(self.mDescription)
|
||||||
endIndex = len(self.mText)
|
endIndex = len(self.mText)
|
||||||
|
|
||||||
self.mSections.sort(key=lambda x: x.mName.lower())
|
self.mSections.sort()
|
||||||
for sect in self.mSections:
|
for sect in self.mSections:
|
||||||
self.mText += sect.Generate()
|
self.mText += sect.Generate()
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ class Page(BaseDoxygeItem):
|
|||||||
self.mText.insert(endIndex, '<ul>')
|
self.mText.insert(endIndex, '<ul>')
|
||||||
endIndex += 1
|
endIndex += 1
|
||||||
if self.mIsSort:
|
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:
|
for page in self.mSubPages:
|
||||||
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))
|
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))
|
||||||
endIndex += 1
|
endIndex += 1
|
||||||
|
@ -25,7 +25,7 @@ class BaseINIFile(object):
|
|||||||
@return: instance of this class
|
@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]
|
filename = args[0]
|
||||||
parent = None
|
parent = None
|
||||||
if len(args) > 1:
|
if len(args) > 1:
|
||||||
@ -33,7 +33,7 @@ class BaseINIFile(object):
|
|||||||
|
|
||||||
key = os.path.normpath(filename)
|
key = os.path.normpath(filename)
|
||||||
if key not in cls._objs.keys():
|
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:
|
if parent is not None:
|
||||||
cls._objs[key].AddParent(parent)
|
cls._objs[key].AddParent(parent)
|
||||||
|
@ -10,10 +10,10 @@
|
|||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
from plugins.EdkPlugins.basemodel import ini
|
import plugins.EdkPlugins.basemodel.ini as ini
|
||||||
from plugins.EdkPlugins.edk2.model import dsc
|
import plugins.EdkPlugins.edk2.model.dsc as dsc
|
||||||
from plugins.EdkPlugins.edk2.model import inf
|
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||||
from plugins.EdkPlugins.edk2.model import dec
|
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||||
import os
|
import os
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ class SurfaceObject(object):
|
|||||||
@return: instance of this class
|
@return: instance of this class
|
||||||
|
|
||||||
"""
|
"""
|
||||||
obj = object.__new__(cls)
|
obj = object.__new__(cls, *args, **kwargs)
|
||||||
if "None" not in cls._objs:
|
if "None" not in cls._objs:
|
||||||
cls._objs["None"] = []
|
cls._objs["None"] = []
|
||||||
cls._objs["None"].append(obj)
|
cls._objs["None"].append(obj)
|
||||||
@ -655,13 +655,13 @@ class Package(SurfaceObject):
|
|||||||
return self._pcds
|
return self._pcds
|
||||||
|
|
||||||
def GetPpis(self):
|
def GetPpis(self):
|
||||||
return list(self._ppis.values())
|
return self._ppis.values()
|
||||||
|
|
||||||
def GetProtocols(self):
|
def GetProtocols(self):
|
||||||
return list(self._protocols.values())
|
return self._protocols.values()
|
||||||
|
|
||||||
def GetGuids(self):
|
def GetGuids(self):
|
||||||
return list(self._guids.values())
|
return self._guids.values()
|
||||||
|
|
||||||
def Destroy(self):
|
def Destroy(self):
|
||||||
for pcd in self._pcds.values():
|
for pcd in self._pcds.values():
|
||||||
@ -846,7 +846,7 @@ class SurfaceItem(object):
|
|||||||
ErrorMsg("%s item is duplicated defined in packages: %s and %s" %
|
ErrorMsg("%s item is duplicated defined in packages: %s and %s" %
|
||||||
(name, parent.GetFilename(), cls._objs[name].GetParent().GetFilename()))
|
(name, parent.GetFilename(), cls._objs[name].GetParent().GetFilename()))
|
||||||
return None
|
return None
|
||||||
obj = object.__new__(cls)
|
obj = object.__new__(cls, *args, **kwargs)
|
||||||
cls._objs[name] = obj
|
cls._objs[name] = obj
|
||||||
return obj
|
return obj
|
||||||
elif issubclass(parent.__class__, Module):
|
elif issubclass(parent.__class__, Module):
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# 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
|
import re, os
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
"""This file produce action class to generate doxygen document for edk2 codebase.
|
"""This file produce action class to generate doxygen document for edk2 codebase.
|
||||||
The action classes are shared by GUI and command line tools.
|
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
|
import os
|
||||||
try:
|
try:
|
||||||
import wx
|
import wx
|
||||||
@ -24,8 +24,8 @@ try:
|
|||||||
except:
|
except:
|
||||||
gInGui = False
|
gInGui = False
|
||||||
import re
|
import re
|
||||||
from plugins.EdkPlugins.edk2.model import inf
|
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||||
from plugins.EdkPlugins.edk2.model import dec
|
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
_ignore_dir = ['.svn', '_svn', 'cvs']
|
_ignore_dir = ['.svn', '_svn', 'cvs']
|
||||||
@ -376,10 +376,9 @@ class PackageDocumentAction(DoxygenAction):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(path, 'r') as f:
|
f = open(path, 'r')
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
except UnicodeDecodeError:
|
f.close()
|
||||||
return
|
|
||||||
except IOError:
|
except IOError:
|
||||||
ErrorMsg('Fail to open file %s' % path)
|
ErrorMsg('Fail to open file %s' % path)
|
||||||
return
|
return
|
||||||
@ -387,7 +386,7 @@ class PackageDocumentAction(DoxygenAction):
|
|||||||
configFile.AddFile(path)
|
configFile.AddFile(path)
|
||||||
|
|
||||||
no = 0
|
no = 0
|
||||||
for no in range(len(lines)):
|
for no in xrange(len(lines)):
|
||||||
if len(lines[no].strip()) == 0:
|
if len(lines[no].strip()) == 0:
|
||||||
continue
|
continue
|
||||||
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
||||||
@ -1001,7 +1000,7 @@ class PackageDocumentAction(DoxygenAction):
|
|||||||
#file = textfile.TextFile(path)
|
#file = textfile.TextFile(path)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
file = open(path, 'r')
|
file = open(path, 'rb')
|
||||||
except (IOError, OSError) as msg:
|
except (IOError, OSError) as msg:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
from plugins.EdkPlugins.basemodel import doxygen
|
import plugins.EdkPlugins.basemodel.doxygen as doxygen
|
||||||
import os
|
import os
|
||||||
try:
|
try:
|
||||||
import wx
|
import wx
|
||||||
@ -21,8 +21,8 @@ try:
|
|||||||
except:
|
except:
|
||||||
gInGui = False
|
gInGui = False
|
||||||
import re
|
import re
|
||||||
from plugins.EdkPlugins.edk2.model import inf
|
import plugins.EdkPlugins.edk2.model.inf as inf
|
||||||
from plugins.EdkPlugins.edk2.model import dec
|
import plugins.EdkPlugins.edk2.model.dec as dec
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
_ignore_dir = ['.svn', '_svn', 'cvs']
|
_ignore_dir = ['.svn', '_svn', 'cvs']
|
||||||
@ -388,7 +388,7 @@ class PackageDocumentAction(DoxygenAction):
|
|||||||
configFile.AddFile(path)
|
configFile.AddFile(path)
|
||||||
return
|
return
|
||||||
no = 0
|
no = 0
|
||||||
for no in range(len(lines)):
|
for no in xrange(len(lines)):
|
||||||
if len(lines[no].strip()) == 0:
|
if len(lines[no].strip()) == 0:
|
||||||
continue
|
continue
|
||||||
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
if lines[no].strip()[:2] in ['##', '//', '/*', '*/']:
|
||||||
@ -1003,7 +1003,7 @@ class PackageDocumentAction(DoxygenAction):
|
|||||||
#file = textfile.TextFile(path)
|
#file = textfile.TextFile(path)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
file = open(path, 'r')
|
file = open(path, 'rb')
|
||||||
except (IOError, OSError) as msg:
|
except (IOError, OSError) as msg:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# 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
|
import re, os
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
# 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
|
import re, os
|
||||||
from plugins.EdkPlugins.basemodel.message import *
|
from plugins.EdkPlugins.basemodel.message import *
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# This script will modife the C/Include/Common/BuildVersion.h file and the two
|
# 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.
|
# 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
|
# 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>
|
# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
@ -73,7 +73,7 @@ def ParseOptions():
|
|||||||
|
|
||||||
|
|
||||||
def ShellCommandResults(CmdLine, Opt):
|
def ShellCommandResults(CmdLine, Opt):
|
||||||
""" Execute the command, returning the output content """
|
""" Execute the comand, returning the output content """
|
||||||
file_list = NamedTemporaryFile(delete=False)
|
file_list = NamedTemporaryFile(delete=False)
|
||||||
filename = file_list.name
|
filename = file_list.name
|
||||||
Results = []
|
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
|
IN UINT64 Adjust
|
||||||
);
|
);
|
||||||
|
|
||||||
|
RETURN_STATUS
|
||||||
|
PeCoffLoaderRelocateIpfImage (
|
||||||
|
IN UINT16 *Reloc,
|
||||||
|
IN OUT CHAR8 *Fixup,
|
||||||
|
IN OUT CHAR8 **FixupData,
|
||||||
|
IN UINT64 Adjust
|
||||||
|
);
|
||||||
|
|
||||||
RETURN_STATUS
|
RETURN_STATUS
|
||||||
PeCoffLoaderRelocateArmImage (
|
PeCoffLoaderRelocateArmImage (
|
||||||
@ -177,6 +184,7 @@ Returns:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ImageContext->Machine != EFI_IMAGE_MACHINE_IA32 && \
|
if (ImageContext->Machine != EFI_IMAGE_MACHINE_IA32 && \
|
||||||
|
ImageContext->Machine != EFI_IMAGE_MACHINE_IA64 && \
|
||||||
ImageContext->Machine != EFI_IMAGE_MACHINE_X64 && \
|
ImageContext->Machine != EFI_IMAGE_MACHINE_X64 && \
|
||||||
ImageContext->Machine != EFI_IMAGE_MACHINE_ARMT && \
|
ImageContext->Machine != EFI_IMAGE_MACHINE_ARMT && \
|
||||||
ImageContext->Machine != EFI_IMAGE_MACHINE_EBC && \
|
ImageContext->Machine != EFI_IMAGE_MACHINE_EBC && \
|
||||||
@ -217,7 +225,7 @@ Returns:
|
|||||||
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER && \
|
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER && \
|
||||||
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER) {
|
ImageContext->ImageType != EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER) {
|
||||||
//
|
//
|
||||||
// unsupported PeImage subsystem type
|
// upsupported PeImage subsystem type
|
||||||
//
|
//
|
||||||
return RETURN_UNSUPPORTED;
|
return RETURN_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
@ -483,7 +491,7 @@ Returns:
|
|||||||
// In Te image header there is not a field to describe the ImageSize.
|
// In Te image header there is not a field to describe the ImageSize.
|
||||||
// Actually, the ImageSize equals the RVA plus the VirtualSize of
|
// Actually, the ImageSize equals the RVA plus the VirtualSize of
|
||||||
// the last section mapped into memory (Must be rounded up to
|
// 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
|
// section headers in the Section Table must appear in order of the RVA
|
||||||
// values for the corresponding sections. So the ImageSize can be determined
|
// values for the corresponding sections. So the ImageSize can be determined
|
||||||
// by the RVA and the VirtualSize of the last section header in the
|
// by the RVA and the VirtualSize of the last section header in the
|
||||||
@ -808,6 +816,9 @@ Returns:
|
|||||||
case EFI_IMAGE_MACHINE_ARMT:
|
case EFI_IMAGE_MACHINE_ARMT:
|
||||||
Status = PeCoffLoaderRelocateArmImage (&Reloc, Fixup, &FixupData, Adjust);
|
Status = PeCoffLoaderRelocateArmImage (&Reloc, Fixup, &FixupData, Adjust);
|
||||||
break;
|
break;
|
||||||
|
case EFI_IMAGE_MACHINE_IA64:
|
||||||
|
Status = PeCoffLoaderRelocateIpfImage (Reloc, Fixup, &FixupData, Adjust);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Status = RETURN_UNSUPPORTED;
|
Status = RETURN_UNSUPPORTED;
|
||||||
break;
|
break;
|
||||||
@ -1308,14 +1319,15 @@ PeCoffLoaderGetPdbPointer (
|
|||||||
Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
|
Magic = EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC;
|
||||||
break;
|
break;
|
||||||
case EFI_IMAGE_MACHINE_X64:
|
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;
|
Magic = EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//
|
//
|
||||||
// For unknown Machine field, use Magic in optional Header
|
// For unknow Machine field, use Magic in optional Header
|
||||||
//
|
//
|
||||||
Magic = Hdr.Pe32->OptionalHeader.Magic;
|
Magic = Hdr.Pe32->OptionalHeader.Magic;
|
||||||
}
|
}
|
||||||
|
@ -2057,13 +2057,13 @@ IsHexStr (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// skip preceding white space
|
// skip preceeding white space
|
||||||
//
|
//
|
||||||
while ((*Str != 0) && *Str == L' ') {
|
while ((*Str != 0) && *Str == L' ') {
|
||||||
Str ++;
|
Str ++;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// skip preceding zeros
|
// skip preceeding zeros
|
||||||
//
|
//
|
||||||
while ((*Str != 0) && *Str == L'0') {
|
while ((*Str != 0) && *Str == L'0') {
|
||||||
Str ++;
|
Str ++;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @file
|
||||||
CalculateCrc32 routine.
|
CalcuateCrc32 routine.
|
||||||
|
|
||||||
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
@ -288,7 +288,7 @@ Routine Description:
|
|||||||
|
|
||||||
Arguments:
|
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
|
DataSize - The size of data to be processed
|
||||||
CrcOut - A pointer to the caller allocated UINT32 that on
|
CrcOut - A pointer to the caller allocated UINT32 that on
|
||||||
contains the CRC32 checksum of Data
|
contains the CRC32 checksum of Data
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Header file for CalculateCrc32 routine
|
Header file for CalcuateCrc32 routine
|
||||||
|
|
||||||
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
@ -31,7 +31,7 @@ Routine Description:
|
|||||||
|
|
||||||
Arguments:
|
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
|
DataSize - The size of data to be processed
|
||||||
CrcOut - A pointer to the caller allocated UINT32 that on
|
CrcOut - A pointer to the caller allocated UINT32 that on
|
||||||
contains the CRC32 checksum of Data
|
contains the CRC32 checksum of Data
|
||||||
|
@ -747,7 +747,7 @@ Arguments:
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_SUCCESS - Decompression is successful
|
EFI_SUCCESS - Decompression is successfull
|
||||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
@ -902,7 +902,7 @@ Arguments:
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_SUCCESS - Decompression is successful
|
EFI_SUCCESS - Decompression is successfull
|
||||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
@ -937,7 +937,7 @@ Arguments:
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_SUCCESS - Decompression is successful
|
EFI_SUCCESS - Decompression is successfull
|
||||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
|
@ -70,7 +70,7 @@ Arguments:
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_SUCCESS - Decompression is successful
|
EFI_SUCCESS - Decompression is successfull
|
||||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||||
|
|
||||||
**/
|
**/
|
||||||
@ -128,7 +128,7 @@ Arguments:
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_SUCCESS - Decompression is successful
|
EFI_SUCCESS - Decompression is successfull
|
||||||
EFI_INVALID_PARAMETER - The source data is corrupted
|
EFI_INVALID_PARAMETER - The source data is corrupted
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -396,7 +396,7 @@ Routine Description:
|
|||||||
|
|
||||||
Allocate memory spaces for data structures used in compression process
|
Allocate memory spaces for data structures used in compression process
|
||||||
|
|
||||||
Arguments: (VOID)
|
Argements: (VOID)
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
@ -652,7 +652,7 @@ Returns: (VOID)
|
|||||||
|
|
||||||
//
|
//
|
||||||
// We have just got a long match, the target tree
|
// 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.
|
// from bottom up to get to a proper starting point.
|
||||||
// The usage of PERC_FLAG ensures proper node deletion
|
// The usage of PERC_FLAG ensures proper node deletion
|
||||||
// in DeleteNode() later.
|
// in DeleteNode() later.
|
||||||
@ -1281,7 +1281,7 @@ Routine Description:
|
|||||||
|
|
||||||
Outputs rightmost n bits of x
|
Outputs rightmost n bits of x
|
||||||
|
|
||||||
Arguments:
|
Argments:
|
||||||
|
|
||||||
n - the rightmost n bits of the data is used
|
n - the rightmost n bits of the data is used
|
||||||
x - the data
|
x - the data
|
||||||
|
@ -21,7 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include "EfiUtilityMsgs.h"
|
#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.
|
// name and other settings.
|
||||||
//
|
//
|
||||||
STATIC STATUS mStatus = STATUS_SUCCESS;
|
STATIC STATUS mStatus = STATUS_SUCCESS;
|
||||||
@ -61,7 +61,7 @@ Arguments:
|
|||||||
at least something valid is not specified.
|
at least something valid is not specified.
|
||||||
|
|
||||||
FileName - name of the file or application. If not specified, then the
|
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.
|
earlier) is used. Otherwise "Unknown utility" is used.
|
||||||
|
|
||||||
LineNumber - the line number of error, typically used by parsers. If the
|
LineNumber - the line number of error, typically used by parsers. If the
|
||||||
@ -384,7 +384,7 @@ Routine Description:
|
|||||||
Arguments:
|
Arguments:
|
||||||
Type - "warning" or "error" string to insert into the message to be
|
Type - "warning" or "error" string to insert into the message to be
|
||||||
printed. The first character of this string (converted to uppercase)
|
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
|
FileName - name of the file where the warning was detected, or the name
|
||||||
of the application that detected the warning
|
of the application that detected the warning
|
||||||
@ -597,7 +597,7 @@ Routine Description:
|
|||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
UtilityName - name of the utility, which will be printed with all
|
UtilityName - name of the utility, which will be printed with all
|
||||||
error/warning/debug messages.
|
error/warning/debug messags.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
NA
|
NA
|
||||||
|
@ -318,7 +318,7 @@ Routine Description:
|
|||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
FileType Type of file to search for.
|
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.
|
File Return pointer. In the case of an error, contents are undefined.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
@ -505,7 +505,7 @@ Arguments:
|
|||||||
|
|
||||||
File The file to search.
|
File The file to search.
|
||||||
SectionType Type of file to search for.
|
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.
|
Section Return pointer. In the case of an error, contents are undefined.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
@ -228,7 +228,7 @@ Routine Description:
|
|||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
OldPath Path name of replace the final segment
|
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:
|
Returns:
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user