From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web10.12572.1601349359114264255 for ; Mon, 28 Sep 2020 20:16:00 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Tue, 29 Sep 2020 11:15:55 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , References: <20200922103824.27161-1-sh1r4s3@mail.si-head.nl> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEFkZCBSSVNDVjY0IGJpbmRpbmc=?= Date: Tue, 29 Sep 2020 11:15:56 +0800 Message-ID: <002601d6960e$d8edcce0$8ac966a0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQLhp3mC8Q+sZSuHSz4Fi4fZkRbSywGbR6K4p1vwxoA= Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Pull request is created. https://github.com/tianocore/edk2/pull/969 > -----=D3=CA=BC=FE=D4=AD=BC=FE----- > =B7=A2=BC=FE=C8=CB: bounce+27952+65571+4905953+8761045@groups.io > =B4=FA=B1=ED Abner Chang > =B7=A2=CB=CD=CA=B1=BC=E4: 2020=C4=EA9=D4=C224=C8=D5 22:14 > =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io; sh1r4s3@mail.si-head.nl > =D6=F7=CC=E2: 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 > > > > - Add RISCV64 ProcessorBind.h > > > > - Add RISCV64 to Makefiles > > > > 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 > > > > 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 memb= er > > +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/ > > > > +else ifeq ($(HOST_ARCH), RISCV64) > > +ARCH_INCLUDE =3D -I $(MAKEROOT)/Include/RiscV64/ > > + > > else > > $(error Bad HOST_ARCH) > > endif > > -- > > 2.28.0 > > > > > > > > > > >=20 >=20 >=20 >=20 >=20