[edk2-devel] [PATCH] BaseTools: Add RISCV64 binding

Nikita sh1r4s3 at mail.si-head.nl
Tue Sep 29 04:43:14 UTC 2020


On 29 Sep 2020, at 06:15, gaoliming <gaoliming at byosoft.com.cn> wrote:
> 
> Pull request is created. https://github.com/tianocore/edk2/pull/969
> 

Thanks!

>> -----邮件原件-----
>> 发件人: bounce+27952+65571+4905953+8761045 at groups.io
>> <bounce+27952+65571+4905953+8761045 at groups.io> 代表 Abner Chang
>> 发送时间: 2020年9月24日 22:14
>> 收件人: devel at edk2.groups.io; sh1r4s3 at mail.si-head.nl
>> 主题: Re: [edk2-devel] [PATCH] BaseTools: Add RISCV64 binding
>> 
>> Acked-by: Abner Chang <abner.chang at hpe.com>
>> 
>>> -----Original Message-----
>>> From: devel at edk2.groups.io [mailto:devel at edk2.groups.io] On Behalf Of
>>> Nikita
>>> Sent: Tuesday, September 22, 2020 6:38 PM
>>> To: devel at edk2.groups.io
>>> Cc: Nikita Ermakov <sh1r4s3 at 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 at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list