From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from loongson.cn (loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web08.9462.1664277269729470793 for ; Tue, 27 Sep 2022 04:14:30 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lichao@loongson.cn) Received: from code-server.gen (unknown [10.2.9.245]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Cxrmv02jJjirsiAA--.49762S20; Tue, 27 Sep 2022 19:14:28 +0800 (CST) From: "Chao Li" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao , Yuwei Chen , Baoqi Zhang Subject: [PATCH v3 18/34] BaseTools: Add LoongArch64 binding. Date: Tue, 27 Sep 2022 19:13:38 +0800 Message-Id: <20220927111354.4107719-19-lichao@loongson.cn> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220927111354.4107719-1-lichao@loongson.cn> References: <20220927111354.4107719-1-lichao@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8Cxrmv02jJjirsiAA--.49762S20 X-Coremail-Antispam: 1UD129KBjvJXoWxXFWxZr43JFWUKr1rWrWkCrg_yoW5uF47pa nI9F4fG3y0grW3CryfKFW5Wr4fGr40kayxtrWSv343ArWDKw1xW34agF4UGFWUJwsYg34r XF1Yg3W7tasrA3DanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQACCGMxll4dbgAbs5 Content-Transfer-Encoding: quoted-printable REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4053 Add LoongArch64 ProcessorBin.h and add LoongArch to Makefiles. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Chao Li Co-authored-by: Baoqi Zhang Reviewed-by: Liming Gao --- BaseTools/Source/C/GNUmakefile | 3 + .../C/Include/LoongArch64/ProcessorBind.h | 80 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile index 8c191e0c38..5275f657ef 100644 --- a/BaseTools/Source/C/GNUmakefile +++ b/BaseTools/Source/C/GNUmakefile @@ -29,6 +29,9 @@ ifndef HOST_ARCH ifneq (,$(findstring riscv64,$(uname_m)))=0D HOST_ARCH=3DRISCV64=0D endif=0D + ifneq (,$(findstring loongarch64,$(uname_m)))=0D + HOST_ARCH=3DLOONGARCH64=0D + endif=0D ifndef HOST_ARCH=0D $(info Could not detected HOST_ARCH from uname results)=0D $(error HOST_ARCH is not defined!)=0D diff --git a/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h b/BaseT= ools/Source/C/Include/LoongArch64/ProcessorBind.h new file mode 100644 index 0000000000..0267859dee --- /dev/null +++ b/BaseTools/Source/C/Include/LoongArch64/ProcessorBind.h @@ -0,0 +1,80 @@ +/** @file=0D + Processor or Compiler specific defines and types for LoongArch=0D +=0D + Copyright (c) 2022, Loongson Technology Corporation Limited. All rights = reserved.
=0D +=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +#ifndef PROCESSOR_BIND_H_=0D +#define PROCESSOR_BIND_H_=0D +=0D +//=0D +// Define the processor type so other code can make processor based choice= s=0D +//=0D +#define MDE_CPU_LOONGARCH64=0D +=0D +#define EFIAPI=0D +=0D +//=0D +// Make sure we are using the correct packing rules per EFI specification= =0D +//=0D +#ifndef __GNUC__=0D +#pragma pack()=0D +#endif=0D +=0D +//=0D +// Use ANSI C 2000 stdint.h integer width declarations=0D +//=0D +#include =0D +typedef uint8_t BOOLEAN;=0D +typedef int8_t INT8;=0D +typedef uint8_t UINT8;=0D +typedef int16_t INT16;=0D +typedef uint16_t UINT16;=0D +typedef int32_t INT32;=0D +typedef uint32_t UINT32;=0D +typedef int64_t INT64;=0D +typedef uint64_t UINT64;=0D +typedef char CHAR8;=0D +typedef uint16_t CHAR16;=0D +=0D +//=0D +// Unsigned value of native width. (4 bytes on supported 32-bit processor= instructions,=0D +// 8 bytes on supported 64-bit processor instructions)=0D +//=0D +typedef UINT64 UINTN;=0D +=0D +//=0D +// Signed value of native width. (4 bytes on supported 32-bit processor i= nstructions,=0D +// 8 bytes on supported 64-bit processor instructions)=0D +//=0D +typedef INT64 INTN;=0D +=0D +//=0D +// Processor specific defines=0D +//=0D +=0D +//=0D +// A value of native width with the highest bit set.=0D +//=0D +#define MAX_BIT 0x8000000000000000ULL=0D +//=0D +// A value of native width with the two highest bits set.=0D +//=0D +#define MAX_2_BITS 0xC000000000000000ULL=0D +=0D +#if defined (__GNUC__)=0D +//=0D +// For GNU assembly code, .global or .globl can declare global symbols.=0D +// Define this macro to unify the usage.=0D +//=0D +#define ASM_GLOBAL .globl=0D +#endif=0D +=0D +//=0D +// The stack alignment required for LoongArch=0D +//=0D +#define CPU_STACK_ALIGNMENT 16=0D +=0D +#endif=0D --=20 2.27.0