From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web09.7136.1663223430475325907 for ; Wed, 14 Sep 2022 23:30:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@byosoft.com.cn header.s=cloud-union header.b=OcjLdn68; spf=pass (domain: byosoft.com.cn, ip: 101.227.64.242, mailfrom: gaoliming@byosoft.com.cn) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id B4FE9CD1F6B6 for ; Thu, 15 Sep 2022 14:30:27 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=byosoft.com.cn; s=cloud-union; t=1663223427; bh=IyBN5Ob94zGgjim3L4d/AUwreJQRURFb3jLmg8VK620=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=OcjLdn68A0DyYGgHL+K5QnrovojvMjt8tE1qUwmtqzfc0qnRSmn1OAoWOq0sf0xgk HTTiyZjCgv7YeXTrBo0uMYWYsAJj94n3iNcGxoRAH/gB0G9AHP4jIpJL4M9TWJdgoj +C0zYMZEJps9FE2h7p3tBV8EzjJTgQysn5MwPFfY= Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id B0E40CD1F699 for ; Thu, 15 Sep 2022 14:30:27 +0800 (CST) X-Virus-Scanned: by SpamTitan at intel-email.com Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 76F86CD1F685 for ; Thu, 15 Sep 2022 14:30:27 +0800 (CST) Authentication-Results: walk.intel-email.com; none Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id 9ACCDCD1F6B6 for ; Thu, 15 Sep 2022 14:30:20 +0800 (CST) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Thu, 15 Sep 2022 14:30:18 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: "'Chao Li'" , Cc: "'Bob Feng'" , "'Yuwei Chen'" , "'Baoqi Zhang'" References: <20220914094035.3696346-1-lichao@loongson.cn> In-Reply-To: <20220914094035.3696346-1-lichao@loongson.cn> Subject: =?UTF-8?B?5Zue5aSNOiBbUEFUQ0ggdjIgMTcvMzRdIEJhc2VUb29sczogQmFzZVRvb2xzIGNoYW5nZXMgZm9yIExvb25nQXJjaCBwbGF0Zm9ybS4=?= Date: Thu, 15 Sep 2022 14:30:20 +0800 Message-ID: <003b01d8c8cc$a0dc10d0$e2943270$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQL2Z2OZj0R8Pmti7kYTGhSQ5mHI6Kukyhug Sender: "gaoliming" Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Chao: This change is to update BaseTools build tool to support new LoongArch. Please update commit message title.=20 The code change is good to me. Reviewed-by: Liming Gao Thanks Liming > -----=D3=CA=BC=FE=D4=AD=BC=FE----- > =B7=A2=BC=FE=C8=CB: Chao Li > =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA9=D4=C214=C8=D5 17:41 > =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io > =B3=AD=CB=CD: Bob Feng ; Liming Gao > ; Yuwei Chen ; Baoqi > Zhang > =D6=F7=CC=E2: [PATCH v2 17/34] BaseTools: BaseTools changes for = LoongArch > platform. >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4053 >=20 > Python code changes for building EDK2 LoongArch platform. >=20 > Cc: Bob Feng > Cc: Liming Gao > Cc: Yuwei Chen >=20 > Signed-off-by: Chao Li > Co-authored-by: Baoqi Zhang > --- > BaseTools/Source/Python/Common/DataType.py | 21 > ++++++++++++++-- > .../Source/Python/UPT/Library/DataType.py | 24 > ++++++++++++++++++- > BaseTools/Source/Python/build/buildoptions.py | 3 ++- > 3 files changed, 44 insertions(+), 4 deletions(-) >=20 > diff --git a/BaseTools/Source/Python/Common/DataType.py > b/BaseTools/Source/Python/Common/DataType.py > index dc49623333..48dbf16495 100644 > --- a/BaseTools/Source/Python/Common/DataType.py > +++ b/BaseTools/Source/Python/Common/DataType.py > @@ -4,6 +4,7 @@ > # Copyright (c) 2007 - 2018, Intel Corporation. All rights = reserved.
>=20 > # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights = reserved.
>=20 > # Portions Copyright (c) 2020, Hewlett Packard Enterprise Development = LP. > All rights reserved.
>=20 > +# Portions Copyright (c) 2022, Loongson Technology Corporation = Limited. All > rights reserved.
>=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 >=20 > ## >=20 > @@ -52,10 +53,10 @@ TAB_ARCH_X64 =3D 'X64' > TAB_ARCH_ARM =3D 'ARM' >=20 > TAB_ARCH_EBC =3D 'EBC' >=20 > TAB_ARCH_AARCH64 =3D 'AARCH64' >=20 > - >=20 > TAB_ARCH_RISCV64 =3D 'RISCV64' >=20 > +TAB_ARCH_LOONGARCH64 =3D 'LOONGARCH64' >=20 >=20 >=20 > -ARCH_SET_FULL =3D {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_ARM, > TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_RISCV64, > TAB_ARCH_COMMON} >=20 > +ARCH_SET_FULL =3D {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_ARM, > TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_RISCV64, > TAB_ARCH_LOONGARCH64, TAB_ARCH_COMMON} >=20 >=20 >=20 > SUP_MODULE_BASE =3D 'BASE' >=20 > SUP_MODULE_SEC =3D 'SEC' >=20 > @@ -138,6 +139,7 @@ TAB_SOURCES_X64 =3D TAB_SOURCES + TAB_SPLIT + > TAB_ARCH_X64 > TAB_SOURCES_ARM =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_SOURCES_EBC =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_SOURCES_AARCH64 =3D TAB_SOURCES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_SOURCES_LOONGARCH64 =3D TAB_SOURCES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_BINARIES =3D 'Binaries' >=20 > TAB_BINARIES_COMMON =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -146,6 +148,7 @@ TAB_BINARIES_X64 =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_X64 > TAB_BINARIES_ARM =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_BINARIES_EBC =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_BINARIES_AARCH64 =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_BINARIES_LOONGARCH64 =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_INCLUDES =3D 'Includes' >=20 > TAB_INCLUDES_COMMON =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -154,6 +157,7 @@ TAB_INCLUDES_X64 =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_X64 > TAB_INCLUDES_ARM =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_INCLUDES_EBC =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_INCLUDES_AARCH64 =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_INCLUDES_LOONGARCH64 =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_GUIDS =3D 'Guids' >=20 > TAB_GUIDS_COMMON =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_COMMON >=20 > @@ -162,6 +166,7 @@ TAB_GUIDS_X64 =3D TAB_GUIDS + TAB_SPLIT + > TAB_ARCH_X64 > TAB_GUIDS_ARM =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_GUIDS_EBC =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_GUIDS_AARCH64 =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_GUIDS_LOONGARCH64 =3D TAB_GUIDS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PROTOCOLS =3D 'Protocols' >=20 > TAB_PROTOCOLS_COMMON =3D TAB_PROTOCOLS + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -170,6 +175,7 @@ TAB_PROTOCOLS_X64 =3D TAB_PROTOCOLS + > TAB_SPLIT + TAB_ARCH_X64 > TAB_PROTOCOLS_ARM =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PROTOCOLS_EBC =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PROTOCOLS_AARCH64 =3D TAB_PROTOCOLS + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_PROTOCOLS_LOONGARCH64 =3D TAB_PROTOCOLS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PPIS =3D 'Ppis' >=20 > TAB_PPIS_COMMON =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_COMMON >=20 > @@ -178,6 +184,7 @@ TAB_PPIS_X64 =3D TAB_PPIS + TAB_SPLIT + > TAB_ARCH_X64 > TAB_PPIS_ARM =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PPIS_EBC =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PPIS_AARCH64 =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PPIS_LOONGARCH64 =3D TAB_PPIS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_LIBRARY_CLASSES =3D 'LibraryClasses' >=20 > TAB_LIBRARY_CLASSES_COMMON =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -186,6 +193,7 @@ TAB_LIBRARY_CLASSES_X64 =3D > TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_X64 > TAB_LIBRARY_CLASSES_ARM =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_ARM >=20 > TAB_LIBRARY_CLASSES_EBC =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_EBC >=20 > TAB_LIBRARY_CLASSES_AARCH64 =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_LIBRARY_CLASSES_LOONGARCH64 =3D TAB_LIBRARY_CLASSES + > TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PACKAGES =3D 'Packages' >=20 > TAB_PACKAGES_COMMON =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -194,6 +202,7 @@ TAB_PACKAGES_X64 =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_X64 > TAB_PACKAGES_ARM =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PACKAGES_EBC =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PACKAGES_AARCH64 =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_PACKAGES_LOONGARCH64 =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS =3D 'Pcds' >=20 > TAB_PCDS_FIXED_AT_BUILD =3D 'FixedAtBuild' >=20 > @@ -221,6 +230,7 @@ TAB_PCDS_FIXED_AT_BUILD_X64 =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + T > TAB_PCDS_FIXED_AT_BUILD_ARM =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PCDS_FIXED_AT_BUILD_EBC =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PCDS_FIXED_AT_BUILD_AARCH64 =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PCDS_FIXED_AT_BUILD_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_NULL =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_COMMON =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_COMMON >=20 > @@ -229,6 +239,7 @@ TAB_PCDS_PATCHABLE_IN_MODULE_X64 =3D > TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + TAB > TAB_PCDS_PATCHABLE_IN_MODULE_ARM =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_EBC =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_AARCH64 =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PCDS_PATCHABLE_IN_MODULE_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS_FEATURE_FLAG_NULL =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG >=20 > TAB_PCDS_FEATURE_FLAG_COMMON =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_COMMON >=20 > @@ -237,6 +248,7 @@ TAB_PCDS_FEATURE_FLAG_X64 =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_A > TAB_PCDS_FEATURE_FLAG_ARM =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG > + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PCDS_FEATURE_FLAG_EBC =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + > TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PCDS_FEATURE_FLAG_AARCH64 =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PCDS_FEATURE_FLAG_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS_DYNAMIC_EX_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX >=20 > TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_EX_DEFAULT >=20 > @@ -248,6 +260,7 @@ TAB_PCDS_DYNAMIC_EX_X64 =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_ > TAB_PCDS_DYNAMIC_EX_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + > TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PCDS_DYNAMIC_EX_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + > TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_PCDS_DYNAMIC_EX_AARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX > + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PCDS_DYNAMIC_EX_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS_DYNAMIC_NULL =3D TAB_PCDS + TAB_PCDS_DYNAMIC >=20 > TAB_PCDS_DYNAMIC_DEFAULT_NULL =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_DEFAULT >=20 > @@ -259,6 +272,7 @@ TAB_PCDS_DYNAMIC_X64 =3D TAB_PCDS + > TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_X64 > TAB_PCDS_DYNAMIC_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC + > TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_PCDS_DYNAMIC_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT > + TAB_ARCH_EBC >=20 > TAB_PCDS_DYNAMIC_AARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC + > TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_PCDS_DYNAMIC_LOONGARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC > + TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE =3D > 'PcdLoadFixAddressPeiCodePageNumber' >=20 > TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE =3D > 'UINT32' >=20 > @@ -285,6 +299,7 @@ TAB_DEPEX_X64 =3D TAB_DEPEX + TAB_SPLIT + > TAB_ARCH_X64 > TAB_DEPEX_ARM =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_DEPEX_EBC =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_DEPEX_AARCH64 =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_AARCH64 >=20 > +TAB_DEPEX_LOONGARCH64 =3D TAB_DEPEX + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_SKUIDS =3D 'SkuIds' >=20 > TAB_DEFAULT_STORES =3D 'DefaultStores' >=20 > @@ -297,6 +312,7 @@ TAB_LIBRARIES_X64 =3D TAB_LIBRARIES + TAB_SPLIT + > TAB_ARCH_X64 > TAB_LIBRARIES_ARM =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM >=20 > TAB_LIBRARIES_EBC =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC >=20 > TAB_LIBRARIES_AARCH64 =3D TAB_LIBRARIES + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_LIBRARIES_LOONGARCH64 =3D TAB_LIBRARIES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_COMPONENTS =3D 'Components' >=20 > TAB_COMPONENTS_COMMON =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_COMMON >=20 > @@ -305,6 +321,7 @@ TAB_COMPONENTS_X64 =3D TAB_COMPONENTS + > TAB_SPLIT + TAB_ARCH_X64 > TAB_COMPONENTS_ARM =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_ARM >=20 > TAB_COMPONENTS_EBC =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_EBC >=20 > TAB_COMPONENTS_AARCH64 =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_AARCH64 >=20 > +TAB_COMPONENTS_LOONGARCH64 =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 >=20 >=20 > TAB_BUILD_OPTIONS =3D 'BuildOptions' >=20 >=20 >=20 > diff --git a/BaseTools/Source/Python/UPT/Library/DataType.py > b/BaseTools/Source/Python/UPT/Library/DataType.py > index 2033149aa6..0e47f35670 100644 > --- a/BaseTools/Source/Python/UPT/Library/DataType.py > +++ b/BaseTools/Source/Python/UPT/Library/DataType.py > @@ -2,6 +2,7 @@ > # This file is used to define class for data type structure >=20 > # >=20 > # Copyright (c) 2011 - 2018, Intel Corporation. All rights = reserved.
>=20 > +# Portions Copyright (c) 2022, Loongson Technology Corporation = Limited. All > rights reserved. >=20 > # >=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 >=20 > @@ -367,10 +368,11 @@ TAB_ARCH_IA32 =3D 'IA32' > TAB_ARCH_X64 =3D 'X64' >=20 > TAB_ARCH_IPF =3D 'IPF' >=20 > TAB_ARCH_ARM =3D 'ARM' >=20 > +TAB_ARCH_LOONGARCH64 =3D 'LOONGARCH64' >=20 > TAB_ARCH_EBC =3D 'EBC' >=20 >=20 >=20 > ARCH_LIST =3D \ >=20 > -[TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, > TAB_ARCH_EBC] >=20 > +[TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, > TAB_ARCH_LOONGARCH64, TAB_ARCH_EBC] >=20 >=20 >=20 > SUP_MODULE_BASE =3D 'BASE' >=20 > SUP_MODULE_SEC =3D 'SEC' >=20 > @@ -454,6 +456,7 @@ TAB_SOURCES_IA32 =3D TAB_SOURCES + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_SOURCES_X64 =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_SOURCES_IPF =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_SOURCES_ARM =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_SOURCES_LOONGARCH64 =3D TAB_SOURCES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_SOURCES_EBC =3D TAB_SOURCES + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_BINARIES =3D 'Binaries' >=20 > @@ -462,6 +465,7 @@ TAB_BINARIES_IA32 =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_BINARIES_X64 =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_BINARIES_IPF =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_BINARIES_ARM =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_BINARIES_LOONGARCH64 =3D TAB_BINARIES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_BINARIES_EBC =3D TAB_BINARIES + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_INCLUDES =3D 'Includes' >=20 > @@ -470,6 +474,7 @@ TAB_INCLUDES_IA32 =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_INCLUDES_X64 =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_INCLUDES_IPF =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_INCLUDES_ARM =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_INCLUDES_LOONGARCH64 =3D TAB_INCLUDES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_INCLUDES_EBC =3D TAB_INCLUDES + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_GUIDS =3D 'Guids' >=20 > @@ -478,6 +483,7 @@ TAB_GUIDS_IA32 =3D TAB_GUIDS + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_GUIDS_X64 =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_GUIDS_IPF =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_GUIDS_ARM =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_GUIDS_LOONGARCH64 =3D TAB_GUIDS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_GUIDS_EBC =3D TAB_GUIDS + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_PROTOCOLS =3D 'Protocols' >=20 > @@ -486,6 +492,7 @@ TAB_PROTOCOLS_IA32 =3D TAB_PROTOCOLS + > TAB_SPLIT + TAB_ARCH_IA32 > TAB_PROTOCOLS_X64 =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_PROTOCOLS_IPF =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_PROTOCOLS_ARM =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PROTOCOLS_LOONGARCH64 =3D TAB_PROTOCOLS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_PROTOCOLS_EBC =3D TAB_PROTOCOLS + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_PPIS =3D 'Ppis' >=20 > @@ -494,6 +501,7 @@ TAB_PPIS_IA32 =3D TAB_PPIS + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_PPIS_X64 =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_PPIS_IPF =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_PPIS_ARM =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PPIS_LOONGARCH64 =3D TAB_PPIS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_PPIS_EBC =3D TAB_PPIS + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_LIBRARY_CLASSES =3D 'LibraryClasses' >=20 > @@ -502,6 +510,7 @@ TAB_LIBRARY_CLASSES_IA32 =3D > TAB_LIBRARY_CLASSES + TAB_SPLIT + TAB_ARCH_IA32 > TAB_LIBRARY_CLASSES_X64 =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_X64 >=20 > TAB_LIBRARY_CLASSES_IPF =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_IPF >=20 > TAB_LIBRARY_CLASSES_ARM =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_ARM >=20 > +TAB_LIBRARY_CLASSES_LOONGARCH64 =3D TAB_LIBRARY_CLASSES + > TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 > TAB_LIBRARY_CLASSES_EBC =3D TAB_LIBRARY_CLASSES + TAB_SPLIT + > TAB_ARCH_EBC >=20 >=20 >=20 > TAB_PACKAGES =3D 'Packages' >=20 > @@ -510,6 +519,7 @@ TAB_PACKAGES_IA32 =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_PACKAGES_X64 =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_PACKAGES_IPF =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_PACKAGES_ARM =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PACKAGES_LOONGARCH64 =3D TAB_PACKAGES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_PACKAGES_EBC =3D TAB_PACKAGES + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_PCDS =3D 'Pcds' >=20 > @@ -548,6 +558,8 @@ TAB_PCDS_FIXED_AT_BUILD_IPF =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + \ > TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_PCDS_FIXED_AT_BUILD_ARM =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + \ >=20 > TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PCDS_FIXED_AT_BUILD_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + \ >=20 > +TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 > TAB_PCDS_FIXED_AT_BUILD_EBC =3D TAB_PCDS + > TAB_PCDS_FIXED_AT_BUILD + \ >=20 > TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > @@ -562,6 +574,8 @@ TAB_PCDS_PATCHABLE_IN_MODULE_IPF =3D > TAB_PCDS + TAB_PCDS_PATCHABLE_IN_MODULE + \ > TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_ARM =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + \ >=20 > TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PCDS_PATCHABLE_IN_MODULE_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + \ >=20 > +TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 > TAB_PCDS_PATCHABLE_IN_MODULE_EBC =3D TAB_PCDS + > TAB_PCDS_PATCHABLE_IN_MODULE + \ >=20 > TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > @@ -576,6 +590,8 @@ TAB_PCDS_FEATURE_FLAG_IPF =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \ > TAB_ARCH_IPF >=20 > TAB_PCDS_FEATURE_FLAG_ARM =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG > + TAB_SPLIT + \ >=20 > TAB_ARCH_ARM >=20 > +TAB_PCDS_FEATURE_FLAG_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_FEATURE_FLAG + TAB_SPLIT + \ >=20 > +TAB_ARCH_LOONGARCH64 >=20 > TAB_PCDS_FEATURE_FLAG_EBC =3D TAB_PCDS + TAB_PCDS_FEATURE_FLAG + > TAB_SPLIT + \ >=20 > TAB_ARCH_EBC >=20 >=20 >=20 > @@ -593,6 +609,8 @@ TAB_PCDS_DYNAMIC_EX_IPF =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \ > TAB_ARCH_IPF >=20 > TAB_PCDS_DYNAMIC_EX_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + > TAB_SPLIT + \ >=20 > TAB_ARCH_ARM >=20 > +TAB_PCDS_DYNAMIC_EX_LOONGARCH64 =3D TAB_PCDS + > TAB_PCDS_DYNAMIC_EX + TAB_SPLIT + \ >=20 > +TAB_ARCH_LOONGARCH64 >=20 > TAB_PCDS_DYNAMIC_EX_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC_EX + > TAB_SPLIT + \ >=20 > TAB_ARCH_EBC >=20 >=20 >=20 > @@ -606,6 +624,7 @@ TAB_PCDS_DYNAMIC_IA32 =3D TAB_PCDS + > TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_IA32 > TAB_PCDS_DYNAMIC_X64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT > + TAB_ARCH_X64 >=20 > TAB_PCDS_DYNAMIC_IPF =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT > + TAB_ARCH_IPF >=20 > TAB_PCDS_DYNAMIC_ARM =3D TAB_PCDS + TAB_PCDS_DYNAMIC + > TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_PCDS_DYNAMIC_LOONGARCH64 =3D TAB_PCDS + TAB_PCDS_DYNAMIC > + TAB_SPLIT + TAB_ARCH_LOONGARCH64 >=20 > TAB_PCDS_DYNAMIC_EBC =3D TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT > + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_PCD_DYNAMIC_TYPE_LIST =3D [TAB_PCDS_DYNAMIC_DEFAULT_NULL, \ >=20 > @@ -646,6 +665,7 @@ TAB_DEPEX_IA32 =3D TAB_DEPEX + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_DEPEX_X64 =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_DEPEX_IPF =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_DEPEX_ARM =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_DEPEX_LOONGARCH64 =3D TAB_DEPEX + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_DEPEX_EBC =3D TAB_DEPEX + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_SKUIDS =3D 'SkuIds' >=20 > @@ -656,6 +676,7 @@ TAB_LIBRARIES_IA32 =3D TAB_LIBRARIES + TAB_SPLIT + > TAB_ARCH_IA32 > TAB_LIBRARIES_X64 =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_X64 >=20 > TAB_LIBRARIES_IPF =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_LIBRARIES_ARM =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_ARM >=20 > +TAB_LIBRARIES_LOONGARCH64 =3D TAB_LIBRARIES + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_LIBRARIES_EBC =3D TAB_LIBRARIES + TAB_SPLIT + TAB_ARCH_EBC >=20 >=20 >=20 > TAB_COMPONENTS =3D 'Components' >=20 > @@ -664,6 +685,7 @@ TAB_COMPONENTS_IA32 =3D TAB_COMPONENTS + > TAB_SPLIT + TAB_ARCH_IA32 > TAB_COMPONENTS_X64 =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_X64 >=20 > TAB_COMPONENTS_IPF =3D TAB_COMPONENTS + TAB_SPLIT + TAB_ARCH_IPF >=20 > TAB_COMPONENTS_ARM =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_ARM >=20 > +TAB_COMPONENTS_LOONGARCH64 =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_LOONGARCH64 >=20 > TAB_COMPONENTS_EBC =3D TAB_COMPONENTS + TAB_SPLIT + > TAB_ARCH_EBC >=20 >=20 >=20 > TAB_BUILD_OPTIONS =3D 'BuildOptions' >=20 > diff --git a/BaseTools/Source/Python/build/buildoptions.py > b/BaseTools/Source/Python/build/buildoptions.py > index 39d92cff20..8334604b46 100644 > --- a/BaseTools/Source/Python/build/buildoptions.py > +++ b/BaseTools/Source/Python/build/buildoptions.py > @@ -4,6 +4,7 @@ > # Copyright (c) 2014, Hewlett-Packard Development Company, L.P.
>=20 > # Copyright (c) 2007 - 2021, Intel Corporation. All rights = reserved.
>=20 > # Copyright (c) 2018 - 2020, Hewlett Packard Enterprise Development, > L.P.
>=20 > +# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights > reserved.
>=20 > # >=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > # >=20 > @@ -41,7 +42,7 @@ class MyOptionParser(): > def GetOption(self): >=20 > Parser =3D OptionParser(description=3D__copyright__, > version=3D__version__, prog=3D"build.exe", usage=3D"%prog [options] > [all|fds|genc|genmake|clean|cleanall|cleanlib|modules|libraries|run]") >=20 > Parser.add_option("-a", "--arch", action=3D"append", > dest=3D"TargetArch", >=20 > - help=3D"ARCHS is one of list: IA32, X64, ARM, AARCH64, > RISCV64 or EBC, which overrides target.txt's TARGET_ARCH definition. = To > specify more archs, please repeat this option.") >=20 > + help=3D"ARCHS is one of list: IA32, X64, ARM, AARCH64, > RISCV64, LOONGARCH64 or EBC, which overrides target.txt's TARGET_ARCH > definition. To specify more archs, please repeat this option.") >=20 > Parser.add_option("-p", "--platform", action=3D"callback", > type=3D"string", dest=3D"PlatformFile", = callback=3DSingleCheckCallback, >=20 > help=3D"Build the platform specified by the DSC file name > argument, overriding target.txt's ACTIVE_PLATFORM definition.") >=20 > Parser.add_option("-m", "--module", action=3D"callback", > type=3D"string", dest=3D"ModuleFile", callback=3DSingleCheckCallback, >=20 > -- > 2.27.0