Ok, I will add them in the V2. Thanks, Chao -------- On 9月 13 2022, at 12:33 凌晨, "Kinney, Michael D" wrote: > Please add these links to the commit messages for each change. > > Thanks, > Mike > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Chao Li > > Sent: Saturday, September 10, 2022 9:15 PM > > To: devel@edk2.groups.io; Kinney, Michael D > > Cc: Gao, Liming ; Liu, Zhiguang > > Subject: Re: [edk2-devel] [PATCH v1 22/34] MdePkg/Include: LoongArch definitions. > > > > > > Hi Mike, > > Okay, I can provide it to you. > > 1. For the Http boot and PXE boot types seeing this URL section "Processor Architecture Type" for the LOONGARCH values: > > https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#ieee-80221-service-type. > > 2. For definitions of PE/COFF and LOONGARCH relocation types, see the "Machine Types" and "Basic Relocation Types" sections of > > this URL for LOONGARCH values: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format. > > 3. For the register definitions of exceptions context, see the UEFI V2.10 18.2.2, 18.2.4 and 18.2.5 sections of this URL for > > LOONGARCH definitions: https://uefi.org/specs/UEFI/2.10/18_Protocols_Debugger_Support.html. > > > > Thanks, > > Chao > > > > > -----原始邮件----- > > > 发件人: "Michael D Kinney" > > > 发送时间:2022-09-10 01:18:18 (星期六) > > > 收件人: "Chao Li" , "devel@edk2.groups.io" , "Kinney, Michael D" > > > > > 抄送: "Gao, Liming" , "Liu, Zhiguang" > > > 主题: Re: [edk2-devel] [PATCH v1 22/34] MdePkg/Include: LoongArch definitions. > > > > > > Can you provide the links to the specs that provide the structures and defines? > > > > > > Thanks, > > > > > > Mike > > > > > > > -----Original Message----- > > > > From: Chao Li > > > > Sent: Wednesday, September 7, 2022 9:52 PM > > > > To: devel@edk2.groups.io > > > > Cc: Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang > > > > > > > > Subject: [PATCH v1 22/34] MdePkg/Include: LoongArch definitions. > > > > > > > > Add LoongArch processor related definitions. > > > > > > > > Cc: Michael D Kinney > > > > Cc: Liming Gao > > > > Cc: Zhiguang Liu > > > > > > > > Signed-off-by: Chao Li > > > > --- > > > > MdePkg/Include/IndustryStandard/PeImage.h | 9 ++ > > > > MdePkg/Include/Protocol/DebugSupport.h | 107 ++++++++++++++++++++-- > > > > MdePkg/Include/Protocol/PxeBaseCode.h | 3 + > > > > MdePkg/Include/Uefi/UefiBaseType.h | 14 +++ > > > > MdePkg/Include/Uefi/UefiSpec.h | 16 ++-- > > > > 5 files changed, 136 insertions(+), 13 deletions(-) > > > > > > > > diff --git a/MdePkg/Include/IndustryStandard/PeImage.h b/MdePkg/Include/IndustryStandard/PeImage.h > > > > index 3109dc20f8..dd4cc25483 100644 > > > > --- a/MdePkg/Include/IndustryStandard/PeImage.h > > > > +++ b/MdePkg/Include/IndustryStandard/PeImage.h > > > > @@ -10,6 +10,7 @@ > > > > Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> > > > > > > > Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
> > > > > > > > Portions Copyright (c) 2016 - 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
> > > > > > > > +Portions Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
> > > > > > > > > > > > > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > > > > > > > > > > > @@ -38,6 +39,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > > > #define IMAGE_FILE_MACHINE_RISCV32 0x5032 > > > > > > > > #define IMAGE_FILE_MACHINE_RISCV64 0x5064 > > > > > > > > #define IMAGE_FILE_MACHINE_RISCV128 0x5128 > > > > > > > > +#define IMAGE_FILE_MACHINE_LOONGARCH32 0x6232 > > > > > > > > +#define IMAGE_FILE_MACHINE_LOONGARCH64 0x6264 > > > > > > > > > > > > > > > > // > > > > > > > > // EXE file formats > > > > > > > > @@ -503,6 +506,12 @@ typedef struct { > > > > #define EFI_IMAGE_REL_BASED_RISCV_LOW12I 7 > > > > > > > > #define EFI_IMAGE_REL_BASED_RISCV_LOW12S 8 > > > > > > > > > > > > > > > > +// > > > > > > > > +// Relocation types of LoongArch processor. > > > > > > > > +// > > > > > > > > +#define EFI_IMAGE_REL_BASED_LOONGARCH32_MARK_LA 8 > > > > > > > > +#define EFI_IMAGE_REL_BASED_LOONGARCH64_MARK_LA 8 > > > > > > > > + > > > > > > > > /// > > > > > > > > /// Line number format. > > > > > > > > /// > > > > > > > > diff --git a/MdePkg/Include/Protocol/DebugSupport.h b/MdePkg/Include/Protocol/DebugSupport.h > > > > index ec5b92a5c5..2b0ae2d157 100644 > > > > --- a/MdePkg/Include/Protocol/DebugSupport.h > > > > +++ b/MdePkg/Include/Protocol/DebugSupport.h > > > > @@ -654,17 +654,110 @@ typedef struct { > > > > UINT64 X31; > > > > > > > > } EFI_SYSTEM_CONTEXT_RISCV64; > > > > > > > > > > > > > > > > +// > > > > > > > > +// 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. > > > > > > > > /// > > > > > > > > typedef union { > > > > > > > > - EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc; > > > > > > > > - EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32; > > > > > > > > - EFI_SYSTEM_CONTEXT_X64 *SystemContextX64; > > > > > > > > - EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf; > > > > > > > > - EFI_SYSTEM_CONTEXT_ARM *SystemContextArm; > > > > > > > > - EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64; > > > > > > > > - EFI_SYSTEM_CONTEXT_RISCV64 *SystemContextRiscV64; > > > > > > > > + EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc; > > > > > > > > + EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32; > > > > > > > > + EFI_SYSTEM_CONTEXT_X64 *SystemContextX64; > > > > > > > > + EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf; > > > > > > > > + EFI_SYSTEM_CONTEXT_ARM *SystemContextArm; > > > > > > > > + EFI_SYSTEM_CONTEXT_AARCH64 *SystemContextAArch64; > > > > > > > > + EFI_SYSTEM_CONTEXT_RISCV64 *SystemContextRiscV64; > > > > > > > > + EFI_SYSTEM_CONTEXT_LOONGARCH64 *SystemContextLoongArch64; > > > > > > > > } EFI_SYSTEM_CONTEXT; > > > > > > > > > > > > > > > > // > > > > > > > > diff --git a/MdePkg/Include/Protocol/PxeBaseCode.h b/MdePkg/Include/Protocol/PxeBaseCode.h > > > > index 11872d602d..6787941a5d 100644 > > > > --- a/MdePkg/Include/Protocol/PxeBaseCode.h > > > > +++ b/MdePkg/Include/Protocol/PxeBaseCode.h > > > > @@ -4,6 +4,7 @@ > > > > > > > > > > > > Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> > > > > > > > Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
> > > > > > > > +Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
> > > > > > > > > > > > > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > > > > > > > > > > > @@ -158,6 +159,8 @@ typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT; > > > > #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000B > > > > > > > > #elif defined (MDE_CPU_RISCV64) > > > > > > > > #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x001B > > > > > > > > +#elif defined (MDE_CPU_LOONGARCH64) > > > > > > > > +#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0027 > > > > > > > > #endif > > > > > > > > > > > > > > > > /// > > > > > > > > diff --git a/MdePkg/Include/Uefi/UefiBaseType.h b/MdePkg/Include/Uefi/UefiBaseType.h > > > > index 4a34ce8e25..83975a08eb 100644 > > > > --- a/MdePkg/Include/Uefi/UefiBaseType.h > > > > +++ b/MdePkg/Include/Uefi/UefiBaseType.h > > > > @@ -4,6 +4,7 @@ > > > > Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
> > > > > > > > Portions copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.
> > > > > > > > Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
> > > > > > > > +Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
> > > > > > > > > > > > > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > > > > > > > > > > > @@ -246,6 +247,12 @@ typedef union { > > > > #define EFI_IMAGE_MACHINE_RISCV64 0x5064 > > > > > > > > #define EFI_IMAGE_MACHINE_RISCV128 0x5128 > > > > > > > > > > > > > > > > +/// > > > > > > > > +/// PE32+ Machine type for LoongArch 32/64 images. > > > > > > > > +/// > > > > > > > > +#define EFI_IMAGE_MACHINE_LOONGARCH32 0x6232 > > > > > > > > +#define EFI_IMAGE_MACHINE_LOONGARCH64 0x6264 > > > > > > > > + > > > > > > > > #if !defined (EFI_IMAGE_MACHINE_TYPE_VALUE) && !defined (EFI_IMAGE_MACHINE_CROSS_TYPE_VALUE) > > > > > > > > #if defined (MDE_CPU_IA32) > > > > > > > > > > > > > > > > @@ -278,6 +285,13 @@ typedef union { > > > > #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \ > > > > > > > > ((Machine) == EFI_IMAGE_MACHINE_RISCV64) > > > > > > > > > > > > > > > > +#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) > > > > > > > > + > > > > > > > > + #elif defined (MDE_CPU_LOONGARCH64) > > > > > > > > + > > > > > > > > +#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \ > > > > > > > > + ((Machine) == EFI_IMAGE_MACHINE_LOONGARCH64) > > > > > > > > + > > > > > > > > #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) > > > > > > > > > > > > > > > > #elif defined (MDE_CPU_EBC) > > > > > > > > diff --git a/MdePkg/Include/Uefi/UefiSpec.h b/MdePkg/Include/Uefi/UefiSpec.h > > > > index 2b38b100f6..3abebbb8d9 100644 > > > > --- a/MdePkg/Include/Uefi/UefiSpec.h > > > > +++ b/MdePkg/Include/Uefi/UefiSpec.h > > > > @@ -7,6 +7,7 @@ > > > > > > > > > > > > Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
> > > > > > > > Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.
> > > > > > > > +Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
> > > > > > > > > > > > > > > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > > > > > > > > > > > > > @@ -2195,12 +2196,13 @@ typedef struct { > > > > // > > > > > > > > // EFI File location to boot from on removable media devices > > > > > > > > // > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI" > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI" > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI" > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI" > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI" > > > > > > > > -#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 L"\\EFI\\BOOT\\BOOTIA32.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64 L"\\EFI\\BOOT\\BOOTIA64.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_X64 L"\\EFI\\BOOT\\BOOTX64.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI" > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI" > > > > > > > > > > > > > > > > #if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME) > > > > > > > > #if defined (MDE_CPU_IA32) > > > > > > > > @@ -2214,6 +2216,8 @@ typedef struct { > > > > #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 > > > > > > > > #elif defined (MDE_CPU_RISCV64) > > > > > > > > #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 > > > > > > > > + #elif defined (MDE_CPU_LOONGARCH64) > > > > > > > > +#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 > > > > > > > > #else > > > > > > > > #error Unknown Processor Type > > > > > > > > #endif > > > > > > > > -- > > > > 2.27.0 > > > > > > > > > > > > > > > > > > > > > > > > 本邮件及其附件含有龙芯中科的商业秘密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分 > > 地泄露、复制或散发)本邮件及其附件中的信息。如果您错收本邮件,请您立即电话或邮件通知发件人并删除本邮件。 > > This email and its attachments contain confidential information from Loongson Technology , which is intended only for the > > person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not > > limited to, total or partial disclosure, reproduction or dissemination) by persons other than the intended recipient(s) is > > prohibited. If you receive this email in error, please notify the sender by phone or email immediately and delete it. > > > > > > >