From nobody Sat May 18 21:00:40 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+97855+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+97855+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1672723893; cv=none; d=zohomail.com; s=zohoarc; b=T3J5v+4Z5WKMnS3uNoxQl2YeqNuoiktvFaF3pADvXS4IHhiKRk92xmpn/NwXfyKQFZwHxrdSEPlHaDBj0mkNMM34HH4PuPUUBu/A4QsRobVuWY1XpCKVVlZgiEz+m8M2SKBHmhP+GaWP3aYX69DTzwjXyP27sTAqq5BasJ1TeR4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1672723893; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=o7ZJT+YLh1Q0vkI+upvLyuToH+IDCGKmA1h9RGzuMZo=; b=Xxc2aZc/ptIeg/iGYDOJ+MK1rS+nCgLTia1E0wSzhmlSL89V68o3ThfVKcvLfcnPRd79KCccUT2S0xoBPncbTzo+x8NfvdfFl0ExB+oDrX9nxJSig4Kixe9C6eHzApK3VccwiDoYEH1HHGFNEsXSGUeGSQhKyYKwXHJ5zJsYhrQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+97855+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1672723893259515.1503827604946; Mon, 2 Jan 2023 21:31:33 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id zvHFYY1788612xoBplw8x6eF; Mon, 02 Jan 2023 21:31:32 -0800 X-Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web11.57156.1672723889858298602 for ; Mon, 02 Jan 2023 21:31:32 -0800 X-Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 527A5CD1F88A for ; Tue, 3 Jan 2023 13:31:24 +0800 (CST) X-Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 4CA3CCD1F886 for ; Tue, 3 Jan 2023 13:31:24 +0800 (CST) X-Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 2469CCD1F880 for ; Tue, 3 Jan 2023 13:31:24 +0800 (CST) X-Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id B77ABCD1F886 for ; Tue, 3 Jan 2023 13:31:19 +0800 (CST) X-Received: from DESKTOP6Q83COE ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Tue, 03 Jan 2023 13:31:10 +0800 X-WM-Sender: gaojie@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaojie@byosoft.com.cn From: "Gao Jie via groups.io" To: , Cc: "'G Edhaya Chandran'" , "'Carolyn Gjertsen'" , "'Samer El-Haj-Mahmoud'" , "'Eric Jin'" , "'Supreeth Venkatesh'" References: <20221214083658.432422-1-lichao@loongson.cn> <20221214083658.432422-3-lichao@loongson.cn> In-Reply-To: <20221214083658.432422-3-lichao@loongson.cn> Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDIvMl0gdWVmaS1zY3QvU2N0UGtnOiBFbmFibGUgTG9vbmdBcmNoNjQgYnVpbGRpbmc=?= Date: Tue, 3 Jan 2023 13:31:10 +0800 Message-ID: <000001d91f34$966e1ee0$c34a5ca0$@byosoft.com.cn> MIME-Version: 1.0 Thread-Index: AQKQ7Z7bD/B5fiRr9Vohvnjd0UIqrgHjtLp0rQ1wNyA= Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,gaojie@byosoft.com.cn X-Gm-Message-State: 1YfYwoYiTe01PgKXVzgFwQrCx1787277AA= Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1672723892; bh=Xq1ezcBUCwsD7GdGdJpJIK7iiWQvjUI2I21x+RsmwU0=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=T4+POjpeyAWCZdijQIVFQaXz8hrAIbP/V0bg/GSNTu4qrMwKgOjPGAt0g+RxfIpAhmu QREmwoRofr8i1N2WGwOY+Wxj14aPYvSV0/ulzSXDvn+bsKhR8742tlk96XQ9N9/UAQzL8 9WLkNiaVfpBkV/jxmLP+IJ19p1gEt/Rfy1w= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1672723893811100001 Content-Type: text/plain; charset="utf-8" Reviewed-by: Barton Gao Thanks Barton -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Chao Li =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2022=E5=B9=B412=E6=9C=8814=E6=97=A5 1= 6:37 =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io =E6=8A=84=E9=80=81: G Edhaya Chandran ; Barton Gao ; Carolyn Gjertsen ; Samer El-Haj-Mahmoud ; Eric Jin ; Supreeth Venkatesh =E4=B8=BB=E9=A2=98: [edk2-devel] [PATCH v1 2/2] uefi-sct/SctPkg: Enable Loo= ngArch64 building BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4192 Cc: G Edhaya Chandran Cc: Barton Gao Cc: Carolyn Gjertsen Cc: Samer El-Haj-Mahmoud Cc: Eric Jin Cc: Supreeth Venkatesh Signed-off-by: Chao Li --- .../Application/InstallSct/InstallSctDef.h | 4 + uefi-sct/SctPkg/Library/SctLib/SctLib.inf | 6 ++ uefi-sct/SctPkg/SCRT/SCRTApp/SCRTApp.inf | 5 + .../SctPkg/SCRT/SCRTDriver/SCRTDriver.inf | 6 ++ .../BlackBoxTest/DebugSupportBBTest.inf | 6 ++ .../Usb2Hc/BlackBoxTest/Usb2HcTest.inf | 4 + .../Protocol/UsbHc/BlackBoxTest/UsbHcTest.inf | 4 + .../SCT/Framework/ENTS/EasLib/EntsLib.inf | 5 + .../SctPkg/Tools/Source/GenBin/GNUmakefile | 4 + uefi-sct/SctPkg/UEFI/IHV_SCT.dsc | 12 ++- uefi-sct/SctPkg/UEFI/Protocol/DebugSupport.h | 101 +++++++++++++++++- uefi-sct/SctPkg/UEFI/UEFI_SCT.dsc | 15 ++- uefi-sct/SctPkg/build.sh | 10 +- 13 files changed, 176 insertions(+), 6 deletions(-) diff --git a/uefi-sct/SctPkg/Application/InstallSct/InstallSctDef.h b/uefi-sct/SctPkg/Application/InstallSct/InstallSctDef.h index 02f0283e..f7974bf6 100644 --- a/uefi-sct/SctPkg/Application/InstallSct/InstallSctDef.h +++ b/uefi-sct/SctPkg/Application/InstallSct/InstallSctDef.h @@ -4,6 +4,7 @@ Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.
Portions copyright (c) 2014, ARM Ltd. All rights reserved.
(C) Copyright 2021 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
=20 This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -36,6 +37,9 @@ #elif defined(EFIRISCV64) #define INSTALL_SCT_PLATFORM_SHORT_NAME L"riscv64" #define INSTALL_SCT_PLATFORM_NAME L"RISCV64" +#elif defined(EFILOONGARCH64) + #define INSTALL_SCT_PLATFORM_SHORT_NAME L"loongarch64" + #define INSTALL_SCT_PLATFORM_NAME L"LOONGARCH64" #else #error "Architecture not supported" #endif diff --git a/uefi-sct/SctPkg/Library/SctLib/SctLib.inf b/uefi-sct/SctPkg/Library/SctLib/SctLib.inf index 7527b203..44cb6357 100644 --- a/uefi-sct/SctPkg/Library/SctLib/SctLib.inf +++ b/uefi-sct/SctPkg/Library/SctLib/SctLib.inf @@ -4,6 +4,7 @@ # Copyright (c) 2013 - 2014, ARM Ltd. All rights reserved.
# Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -68,6 +69,11 @@ Riscv64/initplat.c Math.c =20 +[sources.LOONGARCH64] + LoongArch64/SctLibPlat.h + LoongArch64/initplat.c + Math.c + [sources.ia32] ia32/SctLibPlat.h ia32/initplat.c diff --git a/uefi-sct/SctPkg/SCRT/SCRTApp/SCRTApp.inf b/uefi-sct/SctPkg/SCRT/SCRTApp/SCRTApp.inf index 8104a4ef..fc46f3a1 100644 --- a/uefi-sct/SctPkg/SCRT/SCRTApp/SCRTApp.inf +++ b/uefi-sct/SctPkg/SCRT/SCRTApp/SCRTApp.inf @@ -3,6 +3,7 @@ # Copyright 2006 - 2016 Unified EFI, Inc.
# Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -44,6 +45,10 @@ Riscv64/VirtualMemory.c Riscv64/GoVirtual.S | GCC =20 +[sources.LOONGARCH64] + LoongArch64/VirtualMemory.c + LoongArch64/GoVirtual.S | GCC + [sources.ia32] ia32/VirtualMemory.c ia32/GoVirtual.asm | MSFT diff --git a/uefi-sct/SctPkg/SCRT/SCRTDriver/SCRTDriver.inf b/uefi-sct/SctPkg/SCRT/SCRTDriver/SCRTDriver.inf index a3ef454e..fe905508 100644 --- a/uefi-sct/SctPkg/SCRT/SCRTDriver/SCRTDriver.inf +++ b/uefi-sct/SctPkg/SCRT/SCRTDriver/SCRTDriver.inf @@ -3,6 +3,7 @@ # Copyright 2006 - 2016 Unified EFI, Inc.
# Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -75,6 +76,11 @@ Riscv64/Dump.c Riscv64/Debug.c =20 +[sources.LOONGARCH64] + LoongArch64/Io.c + LoongArch64/Dump.c + LoongArch64/Debug.c + [sources.common] Guid.h Guid.c diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Debug SupportBBTest.inf b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Debug SupportBBTest.inf index 03bf7ccf..9127ee5f 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Debug SupportBBTest.inf +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Debug SupportBBTest.inf @@ -4,6 +4,7 @@ # Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
# Copyright (c) 2019, ARM Ltd. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -73,6 +74,11 @@ Riscv64/DebugSupportBBTestExceptionCallbackFunction.c Riscv64/DebugSupportBBTestCacheFunction.c =20 +[sources.LOONGARCH64] + LoongArch64/PlatformIsa.c + LoongArch64/DebugSupportBBTestExceptionCallbackFunction.c + LoongArch64/DebugSupportBBTestCacheFunction.c + [Packages] SctPkg/SctPkg.dec SctPkg/UEFI/UEFI.dec diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/Usb2Hc/BlackBoxTest/Usb2HcTest. inf b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/Usb2Hc/BlackBoxTest/Usb2HcTest. inf index 95ae593e..451c41c9 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/Usb2Hc/BlackBoxTest/Usb2HcTest. inf +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/Usb2Hc/BlackBoxTest/Usb2HcTest. inf @@ -3,6 +3,7 @@ # Copyright 2006 - 2016 Unified EFI, Inc.
# Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -59,6 +60,9 @@ #[sources.Riscv64] # IPF/TimerInterrupt.c =20 +#[sources.LOONGARCH64] +# IPF/TimerInterrupt.c + [Packages] MdePkg/MdePkg.dec SctPkg/SctPkg.dec diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UsbHc/BlackBoxTest/UsbHcTest.in f b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UsbHc/BlackBoxTest/UsbHcTest. inf index d3bcd5ce..8ec6ef3b 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UsbHc/BlackBoxTest/UsbHcTest.in f +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UsbHc/BlackBoxTest/UsbHcTest.in f @@ -3,6 +3,7 @@ # Copyright 2006 - 2012 Unified EFI, Inc.
# Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -59,6 +60,9 @@ [sources.RISCV64] Riscv64/TimerInterrupt.c =20 +[sources.LOONGARCH64] + LoongArch64/TimerInterrupt.c + [Packages] MdePkg/MdePkg.dec SctPkg/SctPkg.dec diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/EntsLib.inf b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/EntsLib.inf index b60e90b2..9165bc1f 100644 --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/EntsLib.inf +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/EntsLib.inf @@ -4,6 +4,7 @@ # Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
# Copyright (c) 2019, ARM Ltd. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -71,6 +72,10 @@ Riscv64/EntsLibPlat.h Riscv64/InitPlat.c =20 +[sources.LOONGARCH64] + LoongArch64/EntsLibPlat.h + LoongArch64/InitPlat.c + [Packages] MdePkg/MdePkg.dec SctPkg/SctPkg.dec diff --git a/uefi-sct/SctPkg/Tools/Source/GenBin/GNUmakefile b/uefi-sct/SctPkg/Tools/Source/GenBin/GNUmakefile index c492d441..44089903 100644 --- a/uefi-sct/SctPkg/Tools/Source/GenBin/GNUmakefile +++ b/uefi-sct/SctPkg/Tools/Source/GenBin/GNUmakefile @@ -2,6 +2,7 @@ # Copyright 2006 - 2010 Unified EFI, Inc.
# Copyright (c) 2010 Intel Corporation. All rights reserved.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -35,6 +36,9 @@ ifndef ARCH ifneq (,$(findstring riscv64,$(uname_m))) ARCH=3DRISCV64 endif + ifneq (,$(findstring loongarch64,$(uname_m))) + ARCH=3DLOONGARCH64 + endif ifndef ARCH $(info Could not detected ARCH from uname results) $(error ARCH is not defined!) diff --git a/uefi-sct/SctPkg/UEFI/IHV_SCT.dsc b/uefi-sct/SctPkg/UEFI/IHV_SCT.dsc index 7a4393e0..ce55c35f 100644 --- a/uefi-sct/SctPkg/UEFI/IHV_SCT.dsc +++ b/uefi-sct/SctPkg/UEFI/IHV_SCT.dsc @@ -4,6 +4,7 @@ # Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
# Copyright (c) 2019,Microchip Technology Inc.
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -43,7 +44,7 @@ PLATFORM_VERSION =3D 0.1 DSC_SPECIFICATION =3D 0x00010005 OUTPUT_DIRECTORY =3D Build/IhvSct - SUPPORTED_ARCHITECTURES =3D IA32|X64|ARM|AARCH64|RISCV64 + SUPPORTED_ARCHITECTURES =3D IA32|X64|ARM|AARCH64|RISCV64|LOONGARC= H64 BUILD_TARGETS =3D DEBUG|RELEASE SKUID_IDENTIFIER =3D DEFAULT =20 @@ -116,6 +117,12 @@ *_*_RISCV64_APP_FLAGS =3D -D EFIRISCV64 $(GCC_VER_MACRO) *_*_RISCV64_PP_FLAGS =3D -D EFIRISCV64 $(GCC_VER_MACRO) =20 + *_*_LOONGARCH64_CC_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + GCC:*_*_LOONGARCH64_CC_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) -ffreestanding -nostdinc -nostdlib -Wno-error=3Dunused-function -Wno-error=3Dunused-but-set-variable -Wno-error + *_*_LOONGARCH64_VFRPP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + *_*_LOONGARCH64_APP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + *_*_LOONGARCH64_PP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + DEBUG_*_*_CC_FLAGS =3D -DEFI_DEBUG RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG =20 @@ -134,6 +141,9 @@ [Libraries.RISCV64] ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf =20 +[Libraries.LOONGARCH64] + ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf + [Libraries.IA32,Libraries.X64] =20 !include MdePkg/MdeLibs.dsc.inc diff --git a/uefi-sct/SctPkg/UEFI/Protocol/DebugSupport.h b/uefi-sct/SctPkg/UEFI/Protocol/DebugSupport.h index 1963d619..1793f27d 100644 --- a/uefi-sct/SctPkg/UEFI/Protocol/DebugSupport.h +++ b/uefi-sct/SctPkg/UEFI/Protocol/DebugSupport.h @@ -662,6 +662,98 @@ typedef struct { UINT64 X31; } EFI_SYSTEM_CONTEXT_RISCV64; =20 +// +// LoongArch processor exception types. +// +#define EXCEPT_LOONGARCH_INT 0 +#define EXCEPT_LOONGARCH_PIL 1 +#define EXCEPT_LOONGARCH_PIS 2 +#define EXCEPT_LOONGARCH_PIF 3 +#define EXCEPT_LOONGARCH_PME 4 +#define EXCEPT_LOONGARCH_PNR 5 +#define EXCEPT_LOONGARCH_PNX 6 +#define EXCEPT_LOONGARCH_PPI 7 +#define EXCEPT_LOONGARCH_ADE 8 +#define EXCEPT_LOONGARCH_ALE 9 +#define EXCEPT_LOONGARCH_BCE 10 +#define EXCEPT_LOONGARCH_SYS 11 +#define EXCEPT_LOONGARCH_BRK 12 +#define EXCEPT_LOONGARCH_INE 13 +#define EXCEPT_LOONGARCH_IPE 14 +#define EXCEPT_LOONGARCH_FPD 15 +#define EXCEPT_LOONGARCH_SXD 16 +#define EXCEPT_LOONGARCH_ASXD 17 +#define EXCEPT_LOONGARCH_FPE 18 +#define EXCEPT_LOONGARCH_TBR 64 // For code only, there is no such type in the ISA spec, the TLB refill is defined for an independent exception. + +// +// LoongArch processor Interrupt types. +// +#define EXCEPT_LOONGARCH_INT_SIP0 0 +#define EXCEPT_LOONGARCH_INT_SIP1 1 +#define EXCEPT_LOONGARCH_INT_IP0 2 +#define EXCEPT_LOONGARCH_INT_IP1 3 +#define EXCEPT_LOONGARCH_INT_IP2 4 +#define EXCEPT_LOONGARCH_INT_IP3 5 +#define EXCEPT_LOONGARCH_INT_IP4 6 +#define EXCEPT_LOONGARCH_INT_IP5 7 +#define EXCEPT_LOONGARCH_INT_IP6 8 +#define EXCEPT_LOONGARCH_INT_IP7 9 +#define EXCEPT_LOONGARCH_INT_PMC 10 +#define EXCEPT_LOONGARCH_INT_TIMER 11 +#define EXCEPT_LOONGARCH_INT_IPI 12 + +// +// For coding convenience, define the maximum valid +// LoongArch interrupt. +// +#define MAX_LOONGARCH_INTERRUPT 14 + +typedef struct { + UINT64 R0; + UINT64 R1; + UINT64 R2; + UINT64 R3; + UINT64 R4; + UINT64 R5; + UINT64 R6; + UINT64 R7; + UINT64 R8; + UINT64 R9; + UINT64 R10; + UINT64 R11; + UINT64 R12; + UINT64 R13; + UINT64 R14; + UINT64 R15; + UINT64 R16; + UINT64 R17; + UINT64 R18; + UINT64 R19; + UINT64 R20; + UINT64 R21; + UINT64 R22; + UINT64 R23; + UINT64 R24; + UINT64 R25; + UINT64 R26; + UINT64 R27; + UINT64 R28; + UINT64 R29; + UINT64 R30; + UINT64 R31; + + UINT64 CRMD; // CuRrent MoDe information + UINT64 PRMD; // PRe-exception MoDe information + UINT64 EUEN; // Extended component Unit ENable + UINT64 MISC; // MISCellaneous controller + UINT64 ECFG; // Exception ConFiGuration + UINT64 ESTAT; // Exception STATus + UINT64 ERA; // Exception Return Address + UINT64 BADV; // BAD Virtual address + UINT64 BADI; // BAD Instruction +} EFI_SYSTEM_CONTEXT_LOONGARCH64; + // // Universal EFI_SYSTEM_CONTEXT definition // @@ -674,6 +766,7 @@ union { EFI_SYSTEM_CONTEXT_ARM *SystemContextArm; EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64; EFI_SYSTEM_CONTEXT_RISCV64 *SystemContextRiscV64; + EFI_SYSTEM_CONTEXT_LOONGARCH64 *SystemContextLoongArch64; } EFI_SYSTEM_CONTEXT; =20 // @@ -702,6 +795,7 @@ VOID #define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED 0x01c2 #define IMAGE_FILE_MACHINE_ARM64 0xAA64 #define IMAGE_FILE_MACHINE_RISCV64 0x5064 +#define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264 =20 =20 typedef @@ -710,9 +804,10 @@ enum { IsaX64 =3D IMAGE_FILE_MACHINE_X64, =09 IsaIpf =3D IMAGE_FILE_MACHINE_IA64, IsaEbc =3D IMAGE_FILE_MACHINE_EBC, - IsaArm =3D IMAGE_FILE_MACHINE_ARMTHUMB_MIXED, ///< 0x01c2 - IsaAArch64 =3D IMAGE_FILE_MACHINE_ARM64, ///< 0xAA64 - IsaRiscv64 =3D IMAGE_FILE_MACHINE_RISCV64 ///< 0x5064 + IsaArm =3D IMAGE_FILE_MACHINE_ARMTHUMB_MIXED, ///< 0x01c2 + IsaAArch64 =3D IMAGE_FILE_MACHINE_ARM64, ///< 0xAA64 + IsaRiscv64 =3D IMAGE_FILE_MACHINE_RISCV64, ///< 0x5064 + IsaLoongArch64 =3D IMAGE_FILE_MACHINE_LOONGARCH64 ///< 0x6264 } EFI_INSTRUCTION_SET_ARCHITECTURE; =20 typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL;; diff --git a/uefi-sct/SctPkg/UEFI/UEFI_SCT.dsc b/uefi-sct/SctPkg/UEFI/UEFI_SCT.dsc index 88d7a317..58f35ce4 100644 --- a/uefi-sct/SctPkg/UEFI/UEFI_SCT.dsc +++ b/uefi-sct/SctPkg/UEFI/UEFI_SCT.dsc @@ -3,6 +3,7 @@ # Copyright 2006 - 2017 Unified EFI, Inc.
# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
# (C) Copyright 2017 - 2021 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -42,7 +43,7 @@ PLATFORM_VERSION =3D 0.1 DSC_SPECIFICATION =3D 0x00010005 OUTPUT_DIRECTORY =3D Build/UefiSct - SUPPORTED_ARCHITECTURES =3D IA32|X64|ARM|AARCH64|RISCV64 + SUPPORTED_ARCHITECTURES =3D IA32|X64|ARM|AARCH64|RISCV64|LOONGARC= H64 BUILD_TARGETS =3D DEBUG|RELEASE SKUID_IDENTIFIER =3D DEFAULT =20 @@ -118,6 +119,12 @@ *_*_RISCV64_APP_FLAGS =3D -D EFIRISCV64 $(GCC_VER_MACRO) *_*_RISCV64_PP_FLAGS =3D -D EFIRISCV64 $(GCC_VER_MACRO) =20 + *_*_LOONGARCH64_CC_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + GCC:*_*_LOONGARCH64_CC_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) -ffreestanding -nostdinc -nostdlib -Wno-error=3Dunused-function -Wno-error=3Dunused-but-set-variable -Wno-error + *_*_LOONGARCH64_VFRPP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + *_*_LOONGARCH64_APP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + *_*_LOONGARCH64_PP_FLAGS =3D -D EFILOONGARCH64 $(GCC_VER_MACRO) + DEBUG_*_*_CC_FLAGS =3D -DEFI_DEBUG RELEASE_*_*_CC_FLAGS =3D -DMDEPKG_NDEBUG =20 @@ -138,6 +145,9 @@ [Libraries.RISCV64] ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf =20 +[Libraries.LOONGARCH64] + ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf + !include MdePkg/MdeLibs.dsc.inc =20 [LibraryClasses.common] @@ -171,6 +181,9 @@ [LibraryClasses.RISCV64] NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf =20 +[LibraryClasses.LOONGARCH64] + NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf + =20 ############################################################################ ### # # These are the components that will be built by the master makefile diff --git a/uefi-sct/SctPkg/build.sh b/uefi-sct/SctPkg/build.sh index 79cb69c0..901bdc06 100755 --- a/uefi-sct/SctPkg/build.sh +++ b/uefi-sct/SctPkg/build.sh @@ -25,6 +25,8 @@ function get_build_arch BUILD_ARCH=3DAARCH64;; riscv64*) BUILD_ARCH=3DRISCV64;; + loongarch64*) + BUILD_ARCH=3DLOONGARCH64;; *) BUILD_ARCH=3Dother;; esac @@ -56,6 +58,12 @@ function set_cross_compile else TEMP_CROSS_COMPILE=3Driscv64-unknown-elf- fi + elif [ "$SCT_TARGET_ARCH" =3D=3D "LOONGARCH64" ]; then + if [ X"$CROSS_COMPILE_64" !=3D X"" ]; then + TEMP_CROSS_COMPILE=3D"$CROSS_COMPILE_64" + else + TEMP_CROSS_COMPILE=3Dloongarch64-unknown-linux-gnu- + fi else echo "Unsupported target architecture '$SCT_TARGET_ARCH'!" >&2 fi @@ -119,7 +127,7 @@ PrintUsage() { #Print Help # echo "Usage:" - echo " $0 \ + echo " $0 \ \ [build type (RELEASE OR DEBUG, DEFAULT: DEBUG)]" } --=20 2.27.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#97855): https://edk2.groups.io/g/devel/message/97855 Mute This Topic: https://groups.io/mt/96023733/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-