From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.si-head.nl (mail.si-head.nl [37.252.121.114]) by mx.groups.io with SMTP id smtpd.web10.13686.1601354598284932377 for ; Mon, 28 Sep 2020 21:43:18 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: mail.si-head.nl, ip: 37.252.121.114, mailfrom: sh1r4s3@mail.si-head.nl) Received: from [IPv6:::1] (si-head.tilaa.cloud [37.252.121.114]) by mail.si-head.nl (Postfix) with ESMTPSA id B742AC16A0; Tue, 29 Sep 2020 07:43:15 +0300 (MSK) Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\)) Subject: Re: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding From: "Nikita" In-Reply-To: <002601d6960e$d8edcce0$8ac966a0$@byosoft.com.cn> Date: Tue, 29 Sep 2020 07:43:14 +0300 Cc: devel@edk2.groups.io Message-Id: <63A7BBAA-AB91-46CD-9F50-F530EB8D18AD@mail.si-head.nl> References: <20200922103824.27161-1-sh1r4s3@mail.si-head.nl> <002601d6960e$d8edcce0$8ac966a0$@byosoft.com.cn> To: gaoliming , abner.chang@hpe.com X-Mailer: Apple Mail (2.3608.120.23.2.1) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 29 Sep 2020, at 06:15, gaoliming wrote: >=20 > Pull request is created. https://github.com/tianocore/edk2/pull/969 >=20 Thanks! >> -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- >> =E5=8F=91=E4=BB=B6=E4=BA=BA: = bounce+27952+65571+4905953+8761045@groups.io >> =E4=BB=A3=E8=A1=A8 = Abner Chang >> =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2020=E5=B9=B49=E6=9C=8824=E6=97=A5= 22:14 >> =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; = sh1r4s3@mail.si-head.nl >> =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH] BaseTools: Add RISCV64 = binding >>=20 >> Acked-by: Abner Chang >>=20 >>> -----Original Message----- >>> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf = Of >>> Nikita >>> Sent: Tuesday, September 22, 2020 6:38 PM >>> To: devel@edk2.groups.io >>> Cc: Nikita Ermakov >>> Subject: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding >>>=20 >>> - Add RISCV64 ProcessorBind.h >>>=20 >>> - Add RISCV64 to Makefiles >>>=20 >>> Signed-off-by: Nikita Ermakov >>> --- >>> BaseTools/Source/C/GNUmakefile | 3 + >>> .../Source/C/Include/RiscV64/ProcessorBind.h | 85 >> +++++++++++++++++++ >>> BaseTools/Source/C/Makefiles/header.makefile | 6 ++ >>> 3 files changed, 94 insertions(+) >>> create mode 100644 = BaseTools/Source/C/Include/RiscV64/ProcessorBind.h >>>=20 >>> diff --git a/BaseTools/Source/C/GNUmakefile >>> b/BaseTools/Source/C/GNUmakefile index df4eb64ea9..464f432774 100644 >>> --- a/BaseTools/Source/C/GNUmakefile >>> +++ b/BaseTools/Source/C/GNUmakefile >>> @@ -26,6 +26,9 @@ ifndef HOST_ARCH >>> else ifneq (,$(findstring arm,$(uname_m))) >>> HOST_ARCH=3DARM >>> endif >>> + ifneq (,$(findstring riscv64,$(uname_m))) >>> + HOST_ARCH=3DRISCV64 >>> + endif >>> ifndef HOST_ARCH >>> $(info Could not detected HOST_ARCH from uname results) >>> $(error HOST_ARCH is not defined!) >>> diff --git a/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h >>> b/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h >>> new file mode 100644 >>> index 0000000000..1612d6ea7f >>> --- /dev/null >>> +++ b/BaseTools/Source/C/Include/RiscV64/ProcessorBind.h >>> @@ -0,0 +1,85 @@ >>> +/** @file >>> + Processor or Compiler specific defines and types for RISC-V. >>> + >>> + SPDX-License-Identifier: BSD-2-Clause-Patent >>> + >>> +**/ >>> + >>> +#ifndef __PROCESSOR_BIND_H__ >>> +#define __PROCESSOR_BIND_H__ >>> + >>> +// >>> +// Define the processor type so other code can make processor based >>> +choices // #define MDE_CPU_RISCV64 >>> + >>> +// >>> +// Make sure we are using the correct packing rules per EFI >>> +specification // #ifndef __GNUC__ #pragma pack() #endif >>> + >>> +// >>> +// Use ANSI C 2000 stdint.h integer width declarations // #include >>> + >>> +typedef uint8_t BOOLEAN; >>> +typedef int8_t INT8; >>> +typedef uint8_t UINT8; >>> +typedef int16_t INT16; >>> +typedef uint16_t UINT16; >>> +typedef int32_t INT32; >>> +typedef uint32_t UINT32; >>> +typedef int64_t INT64; >>> +typedef uint64_t UINT64; >>> +typedef char CHAR8; >>> +typedef uint16_t CHAR16; >>> + >>> +// >>> +// Unsigned value of native width. (4 bytes on supported 32-bit >>> +processor instructions, // 8 bytes on supported 64-bit processor >>> +instructions) // typedef UINT64 UINTN; >>> + >>> +// >>> +// Signed value of native width. (4 bytes on supported 32-bit >>> +processor instructions, // 8 bytes on supported 64-bit processor >>> +instructions) // >>> +typedef INT64 INTN; >>> + >>> +// >>> +// Processor specific defines >>> +// >>> + >>> +// >>> +// A value of native width with the highest bit set. >>> +// >>> +#define MAX_BIT 0x8000000000000000 >>> + >>> +// >>> +// A value of native width with the two highest bits set. >>> +// >>> +#define MAX_2_BITS 0xC000000000000000 >>> + >>> +// >>> +// The stack alignment required for RISC-V // #define >>> +CPU_STACK_ALIGNMENT 16 >>> + >>> +// >>> +// Modifier to ensure that all protocol member functions and EFI >>> +intrinsics // use the correct C calling convention. All protocol = member >>> +functions and // EFI intrinsics are required to modify their member >>> functions with EFIAPI. >>> +// >>> +#define EFIAPI >>> + >>> +#if defined(__GNUC__) >>> + // >>> + // For GNU assembly code, .global or .globl can declare global > symbols. >>> + // Define this macro to unify the usage. >>> + // >>> + #define ASM_GLOBAL .globl >>> +#endif >>> + >>> +#endif >>> diff --git a/BaseTools/Source/C/Makefiles/header.makefile >>> b/BaseTools/Source/C/Makefiles/header.makefile >>> index 1c105ee7d4..0df728f327 100644 >>> --- a/BaseTools/Source/C/Makefiles/header.makefile >>> +++ b/BaseTools/Source/C/Makefiles/header.makefile >>> @@ -28,6 +28,9 @@ ifndef HOST_ARCH >>> else ifneq (,$(findstring arm,$(uname_m))) >>> HOST_ARCH=3DARM >>> endif >>> + ifneq (,$(findstring riscv64,$(uname_m))) >>> + HOST_ARCH=3DRISCV64 >>> + endif >>> ifndef HOST_ARCH >>> $(info Could not detected HOST_ARCH from uname results) >>> $(error HOST_ARCH is not defined!) >>> @@ -64,6 +67,9 @@ ARCH_INCLUDE =3D -I $(MAKEROOT)/Include/Arm/ else >>> ifeq ($(HOST_ARCH), AARCH64) ARCH_INCLUDE =3D -I >>> $(MAKEROOT)/Include/AArch64/ >>>=20 >>> +else ifeq ($(HOST_ARCH), RISCV64) >>> +ARCH_INCLUDE =3D -I $(MAKEROOT)/Include/RiscV64/ >>> + >>> else >>> $(error Bad HOST_ARCH) >>> endif >>> =E2=80=94 >>> 2.28.0 >>>=20 >>>=20 >>>=20 >>>=20 >>>=20 Thanks, Nikita B8 00 4C CD 21