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
- Add RISCV64 ProcessorBind.h
- Add RISCV64 to Makefiles
Signed-off-by: Nikita Ermakov <sh1r4s3@mail.si-head.nl>
---
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=ARM
endif
+ ifneq (,$(findstring riscv64,$(uname_m)))
+ HOST_ARCH=RISCV64
+ 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 <stdint.h>
+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=ARM
endif
+ ifneq (,$(findstring riscv64,$(uname_m)))
+ HOST_ARCH=RISCV64
+ 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 = -I $(MAKEROOT)/Include/Arm/
else ifeq ($(HOST_ARCH), AARCH64)
ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/
+else ifeq ($(HOST_ARCH), RISCV64)
+ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/
+
else
$(error Bad HOST_ARCH)
endif
--
2.28.0
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#65443): https://edk2.groups.io/g/devel/message/65443
Mute This Topic: https://groups.io/mt/77011297/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Acked-by: Abner Chang <abner.chang@hpe.com> > -----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 <sh1r4s3@mail.si-head.nl> > Subject: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding > > - Add RISCV64 ProcessorBind.h > > - Add RISCV64 to Makefiles > > Signed-off-by: Nikita Ermakov <sh1r4s3@mail.si-head.nl> > --- > 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=ARM > endif > + ifneq (,$(findstring riscv64,$(uname_m))) > + HOST_ARCH=RISCV64 > + 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 > +<stdint.h> > +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=ARM > endif > + ifneq (,$(findstring riscv64,$(uname_m))) > + HOST_ARCH=RISCV64 > + 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 = -I $(MAKEROOT)/Include/Arm/ else > ifeq ($(HOST_ARCH), AARCH64) ARCH_INCLUDE = -I > $(MAKEROOT)/Include/AArch64/ > > +else ifeq ($(HOST_ARCH), RISCV64) > +ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ > + > else > $(error Bad HOST_ARCH) > endif > -- > 2.28.0 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65571): https://edk2.groups.io/g/devel/message/65571 Mute This Topic: https://groups.io/mt/77011297/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Pull request is created. https://github.com/tianocore/edk2/pull/969 > -----邮件原件----- > 发件人: bounce+27952+65571+4905953+8761045@groups.io > <bounce+27952+65571+4905953+8761045@groups.io> 代表 Abner Chang > 发送时间: 2020年9月24日 22:14 > 收件人: devel@edk2.groups.io; sh1r4s3@mail.si-head.nl > 主题: Re: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding > > Acked-by: Abner Chang <abner.chang@hpe.com> > > > -----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 <sh1r4s3@mail.si-head.nl> > > Subject: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding > > > > - Add RISCV64 ProcessorBind.h > > > > - Add RISCV64 to Makefiles > > > > Signed-off-by: Nikita Ermakov <sh1r4s3@mail.si-head.nl> > > --- > > 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=ARM > > endif > > + ifneq (,$(findstring riscv64,$(uname_m))) > > + HOST_ARCH=RISCV64 > > + 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 > > +<stdint.h> > > +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=ARM > > endif > > + ifneq (,$(findstring riscv64,$(uname_m))) > > + HOST_ARCH=RISCV64 > > + 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 = -I $(MAKEROOT)/Include/Arm/ else > > ifeq ($(HOST_ARCH), AARCH64) ARCH_INCLUDE = -I > > $(MAKEROOT)/Include/AArch64/ > > > > +else ifeq ($(HOST_ARCH), RISCV64) > > +ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ > > + > > else > > $(error Bad HOST_ARCH) > > endif > > -- > > 2.28.0 > > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65704): https://edk2.groups.io/g/devel/message/65704 Mute This Topic: https://groups.io/mt/77189624/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On 29 Sep 2020, at 06:15, gaoliming <gaoliming@byosoft.com.cn> wrote: > > Pull request is created. https://github.com/tianocore/edk2/pull/969 > Thanks! >> -----邮件原件----- >> 发件人: bounce+27952+65571+4905953+8761045@groups.io >> <bounce+27952+65571+4905953+8761045@groups.io> 代表 Abner Chang >> 发送时间: 2020年9月24日 22:14 >> 收件人: devel@edk2.groups.io; sh1r4s3@mail.si-head.nl >> 主题: Re: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding >> >> Acked-by: Abner Chang <abner.chang@hpe.com> >> >>> -----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 <sh1r4s3@mail.si-head.nl> >>> Subject: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding >>> >>> - Add RISCV64 ProcessorBind.h >>> >>> - Add RISCV64 to Makefiles >>> >>> Signed-off-by: Nikita Ermakov <sh1r4s3@mail.si-head.nl> >>> --- >>> 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=ARM >>> endif >>> + ifneq (,$(findstring riscv64,$(uname_m))) >>> + HOST_ARCH=RISCV64 >>> + 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 >>> +<stdint.h> >>> +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=ARM >>> endif >>> + ifneq (,$(findstring riscv64,$(uname_m))) >>> + HOST_ARCH=RISCV64 >>> + 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 = -I $(MAKEROOT)/Include/Arm/ else >>> ifeq ($(HOST_ARCH), AARCH64) ARCH_INCLUDE = -I >>> $(MAKEROOT)/Include/AArch64/ >>> >>> +else ifeq ($(HOST_ARCH), RISCV64) >>> +ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ >>> + >>> else >>> $(error Bad HOST_ARCH) >>> endif >>> — >>> 2.28.0 >>> >>> >>> >>> >>> Thanks, Nikita B8 00 4C CD 21 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65708): https://edk2.groups.io/g/devel/message/65708 Mute This Topic: https://groups.io/mt/77190415/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Ack-by: Liming Gao <gaoliming@byosoft.com.cn> > -----邮件原件----- > 发件人: bounce+27952+65443+4905953+8761045@groups.io > <bounce+27952+65443+4905953+8761045@groups.io> 代表 Nikita > 发送时间: 2020年9月22日 18:38 > 收件人: devel@edk2.groups.io > 抄送: Nikita Ermakov <sh1r4s3@mail.si-head.nl> > 主题: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding > > - Add RISCV64 ProcessorBind.h > > - Add RISCV64 to Makefiles > > Signed-off-by: Nikita Ermakov <sh1r4s3@mail.si-head.nl> > --- > 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=ARM > > endif > > + ifneq (,$(findstring riscv64,$(uname_m))) > > + HOST_ARCH=RISCV64 > > + 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 <stdint.h> > > +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=ARM > > endif > > + ifneq (,$(findstring riscv64,$(uname_m))) > > + HOST_ARCH=RISCV64 > > + 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 = -I $(MAKEROOT)/Include/Arm/ > else ifeq ($(HOST_ARCH), AARCH64) > > ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/ > > > > +else ifeq ($(HOST_ARCH), RISCV64) > > +ARCH_INCLUDE = -I $(MAKEROOT)/Include/RiscV64/ > > + > > else > > $(error Bad HOST_ARCH) > > endif > > -- > 2.28.0 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#65443): https://edk2.groups.io/g/devel/message/65443 > Mute This Topic: https://groups.io/mt/77011297/4905953 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub > [gaoliming@byosoft.com.cn] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65553): https://edk2.groups.io/g/devel/message/65553 Mute This Topic: https://groups.io/mt/77050397/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.