From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.3851.1587450628309015381 for ; Mon, 20 Apr 2020 23:30:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=EMG2Qbxm; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: zhiguang.liu@intel.com) IronPort-SDR: MnZzaK2LkHu3oECvCN/pXaMOj0qfQ13/tnxKF9bMuaVMUKWo42yWdYaEBYFn7rpr/DJbxdi2C/ JD8VJtEvWm4Q== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2020 23:30:27 -0700 IronPort-SDR: 4DcD+cDKJp8Re4XRRy9UABRbZu3eOIt28SRGbRb6liV4vvE8EWH4IVzqETc04+HZW7efN73/fT dW+yc7Z1tmyA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,409,1580803200"; d="scan'208";a="291504884" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by orsmga008.jf.intel.com with ESMTP; 20 Apr 2020 23:30:27 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 20 Apr 2020 23:30:27 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 20 Apr 2020 23:30:26 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 20 Apr 2020 23:30:26 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 20 Apr 2020 23:30:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=baqeTaY7cc+/SMdQUxNyBUZBIwTFbXNRVqbU1UDyTYh7osi1o0PYtzAx/hjMtPgOGxeqeGv4dObGz3/L0SHEkYvs44Vc7UH9oSz7i5MX9xI8WvX/Fr9yclC1vvWBMd4628pmaAy1MFajdVuQCrDQ8stUGPaTISdnMEUa1aWP7QcFF9nY8PJxvFgG6t4WAzAKk1UHc3ZDt6ru9CrPC2py3AqsTIvvcuv7R3Nma5aaoPqCGPA6PW83AH9GrpB+Acy6MWTivBuuBI+lqe9aquCaqdEYWzn6VXJyTswx2Runr/PLAJU9bP+jYHV1T5E+++77HA50/IW4hKsUtCZU4Z+uoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9g2mtsrlAI0U/DczK1W5pzgBFgzKK3anyAT/MhmIwkk=; b=BQB2OKhjCFlWSwjRHlzuyrfnNskgSCvHv77GdN6MimVk5w6IHcYa+5aXzujFsB8Jcex/Wygq9mm4ymnXA9EJH7LNSWSdGSaiPGAs7UpfScxETxsuUg1X1aaB+Qbn32b2LdlwIXIcNNWorP+t78IJcKSuA7qbuOXgHLXhTfKSt4y4dA634MyNQptdHCE0vtjPn+FS8QIZ/n0lz+8BjylNu9NLCQX4dwayGEsIlof9TCwTlyYlELKYICauO3fDXZa+Gmr6xEGcZVfHS/zq08GXrNjVOVg0Bm9BxUCU2wQCTclLdzPq/XVt3ZZzUMdx62nLLr91dLTkEBufKeZzimHaww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9g2mtsrlAI0U/DczK1W5pzgBFgzKK3anyAT/MhmIwkk=; b=EMG2QbxmUZjZP6fKhZk6ZjgXqa8hCmWgZl2Bp1FyVLUyuFDUm8W3ksfGr45qJDxFaHOtWoVJ2+jzQZQJCV4yra9GSnAZB/888cA6rBNfzxQMVTENjj80bcPe7ARtUGMKEl+P8+TAz3jpq6MPvNB3Qdmn4kL3uaFXkePn1Q2iStc= Received: from BN7PR11MB2804.namprd11.prod.outlook.com (2603:10b6:406:ac::12) by BN7PR11MB2722.namprd11.prod.outlook.com (2603:10b6:406:b8::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.26; Tue, 21 Apr 2020 06:30:21 +0000 Received: from BN7PR11MB2804.namprd11.prod.outlook.com ([fe80::79e2:ed1f:4d6b:532c]) by BN7PR11MB2804.namprd11.prod.outlook.com ([fe80::79e2:ed1f:4d6b:532c%7]) with mapi id 15.20.2921.030; Tue, 21 Apr 2020 06:30:21 +0000 From: "Zhiguang Liu" To: "devel@edk2.groups.io" , "abner.chang@hpe.com" CC: Gilbert Chen , Leif Lindholm , "Kinney, Michael D" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v1 1/9] MdePkg: RISC-V RV64 binding in MdePkg Thread-Topic: [edk2-devel] [PATCH v1 1/9] MdePkg: RISC-V RV64 binding in MdePkg Thread-Index: AQHWDw3u9wDYqNWEL0CRXQq3EMohM6iDLoTw Date: Tue, 21 Apr 2020 06:30:21 +0000 Message-ID: References: <20200410072112.7310-1-abner.chang@hpe.com> <20200410072112.7310-2-abner.chang@hpe.com> In-Reply-To: <20200410072112.7310-2-abner.chang@hpe.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiguang.liu@intel.com; x-originating-ip: [192.102.204.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: efd796ad-a0b8-422b-bfa5-08d7e5bd77e8 x-ms-traffictypediagnostic: BN7PR11MB2722: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 038002787A x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN7PR11MB2804.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(396003)(366004)(376002)(39860400002)(136003)(346002)(4326008)(316002)(55016002)(110136005)(53546011)(9686003)(26005)(2906002)(5660300002)(19627235002)(6506007)(86362001)(107886003)(54906003)(7696005)(81156014)(8936002)(186003)(76116006)(52536014)(71200400001)(33656002)(966005)(478600001)(45080400002)(66946007)(66446008)(66476007)(64756008)(66556008)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YDAgSOrW5pQsOGVQz2zmmPk+uhPPqpRbMMCg9YX60PeeZ+OC878UrUJbWmB4jpgatFBFX1+/SbORq2GP18sUROLvE4diD1IKytnG+LjI8rbN3d4FIR0J4c8WVZXbLBMGzo+/xKTgFmUWOS8JiwdYcwGYyb7I8f9+CN/j1riWBMPgLOsBnqxzy4QrrnU53UnbLW1Muiw3ST82R5JNNn1MrUuHM4IySIoGCUerRm/RZb1Zi/KLa/in+LQ1ncaFhfGq+H8waPzbBMxNf2Wx4mC4JwMnxqhApwUylrgPIvEA1BhC157HTXFknexqh+23bhq/6X4mU/L3sLYA5l/RT+vkD/NqNr+sYaB/uVucZmH7ooG0+A8wFK+E2cK+HJctuJ61WTsyMSZT5/rkKfcIjjL4LtFYX2oOWpOz5eY/qR1Sv/b8WY9NjcLL3M0NklboTxYqnYIoR4VRxXrClZryuzCoKwgDA28PwfH3I3uYONBJNZxrYg/9mmMMDkUf/O9ryxT7hB51Xij1RPiD96SkfXJ6SA== x-ms-exchange-antispam-messagedata: R+/laSS/e7HEDo3TPgj/o6q+yRcTKSEWFc/FF+sbpz6+NRb+6GMkF6AMCGItT2rVR63I5r+6Q8wEnHU/pCSyhl/XO6oZCCZ7gUhVTTTM8yoPYMEkB7pGZW6ZrY3jBtY8xwvQb3oq6Xe1gs9VeBaLQw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: efd796ad-a0b8-422b-bfa5-08d7e5bd77e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2020 06:30:21.7497 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: buyFKJYb6MvSRiMWfiw0YWKtYz7KG7fvI0jkdBafscfcXNp7YCvQ8cVGPQXE8oJJVe/+p1UDqsLYhpTR7kt99Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2722 Return-Path: zhiguang.liu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Zhiguang Liu -----Original Message----- From: devel@edk2.groups.io On Behalf Of Abner Chang Sent: Friday, April 10, 2020 3:21 PM To: devel@edk2.groups.io Cc: abner.chang@hpe.com; Gilbert Chen ; Leif Lindholm= ; Kinney, Michael D = ; Gao, Liming Subject: [edk2-devel] [PATCH v1 1/9] MdePkg: RISC-V RV64 binding in MdePkg Add RISCV64 sections in MdePkg.dec and RISCV64 ProcessorBind.h Signed-off-by: Abner Chang Co-authored-by: Gilbert Chen Reviewed-by: Leif Lindholm Cc: Michael D Kinney Cc: Liming Gao Cc: Leif Lindholm Cc: Gilbert Chen --- MdePkg/MdePkg.dec | 5 +- MdePkg/MdePkg.dsc | 3 +- MdePkg/Include/RiscV64/ProcessorBind.h | 173 +++++++++++++++++++++++++ 3 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 MdePkg/Include/RiscV64/ProcessorBind.h diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec index 6c37c2181c..0b9c4bc40a 100644 --- a/MdePkg/MdePkg.dec +++ b/MdePkg/MdePkg.dec @@ -6,7 +6,7 @@ # # Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
-# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
+# (C) Copyright 2016 - 2020 Hewlett Packard Enterprise Development LP
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -39,6 +39,9 @@ [Includes.AARCH64] Include/AArch64 =20 +[Includes.RISCV64] + Include/RiscV64 + [LibraryClasses] ## @libraryclass Provides most usb APIs to support the Hid requests de= fined in Usb Hid 1.1 spec # and the standard requests defined in Usb 1.1 spec. diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc index 2b2d5981e8..6cd38e7ec3 100644 --- a/MdePkg/MdePkg.dsc +++ b/MdePkg/MdePkg.dsc @@ -3,6 +3,7 @@ # # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+# (C) Copyright 2020 Hewlett Packard Enterprise Development LP
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -14,7 +15,7 @@ PLATFORM_VERSION =3D 1.08 DSC_SPECIFICATION =3D 0x00010005 OUTPUT_DIRECTORY =3D Build/Mde - SUPPORTED_ARCHITECTURES =3D IA32|X64|EBC|ARM|AARCH64 + SUPPORTED_ARCHITECTURES =3D IA32|X64|EBC|ARM|AARCH64|RISCV64 BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT SKUID_IDENTIFIER =3D DEFAULT =20 diff --git a/MdePkg/Include/RiscV64/ProcessorBind.h b/MdePkg/Include/RiscV6= 4/ProcessorBind.h new file mode 100644 index 0000000000..2b11f041ea --- /dev/null +++ b/MdePkg/Include/RiscV64/ProcessorBind.h @@ -0,0 +1,173 @@ +/** @file + Processor or Compiler specific defines and types for RISC-V + + Copyright (c) 2016 - 2020, Hewlett Packard Enterprise Development LP. Al= l rights reserved.
+ + 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 choic= es +/// +#define MDE_CPU_RISCV64 + +// +// Make sure we are using the correct packing rules per EFI specification +// +#if !defined(__GNUC__) +#pragma pack() +#endif + +/// +/// 8-byte unsigned value +/// +typedef unsigned long long UINT64 __attribute__ ((aligned (8))); +/// +/// 8-byte signed value +/// +typedef long long INT64 __attribute__ ((aligned (8))); +/// +/// 4-byte unsigned value +/// +typedef unsigned int UINT32 __attribute__ ((aligned (4))); +/// +/// 4-byte signed value +/// +typedef int INT32 __attribute__ ((aligned (4))); +/// +/// 2-byte unsigned value +/// +typedef unsigned short UINT16 __attribute__ ((aligned (2))); +/// +/// 2-byte Character. Unless otherwise specified all strings are stored i= n the +/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 sta= ndards. +/// +typedef unsigned short CHAR16 __attribute__ ((aligned (2))); +/// +/// 2-byte signed value +/// +typedef short INT16 __attribute__ ((aligned (2))); +/// +/// Logical Boolean. 1-byte value containing 0 for FALSE or a 1 for TRUE.= Other +/// values are undefined. +/// +typedef unsigned char BOOLEAN; +/// +/// 1-byte unsigned value +/// +typedef unsigned char UINT8; +/// +/// 1-byte Character +/// +typedef char CHAR8; +/// +/// 1-byte signed value +/// +typedef signed char INT8; +/// +/// Unsigned value of native width. (4 bytes on supported 32-bit processo= r instructions, +/// 8 bytes on supported 64-bit processor instructions) +/// +typedef UINT64 UINTN __attribute__ ((aligned (8))); +/// +/// Signed value of native width. (4 bytes on supported 32-bit processor = instructions, +/// 8 bytes on supported 64-bit processor instructions) +/// +typedef INT64 INTN __attribute__ ((aligned (8))); + +// +// Processor specific defines +// + +/// +/// A value of native width with the highest bit set. +/// +#define MAX_BIT 0x8000000000000000ULL +/// +/// A value of native width with the two highest bits set. +/// +#define MAX_2_BITS 0xC000000000000000ULL + +/// +/// Maximum legal RV64 address +/// +#define MAX_ADDRESS 0xFFFFFFFFFFFFFFFFULL + +/// +/// Maximum usable address at boot time (48 bits using 4 KB pages in Super= visor mode) +/// +#define MAX_ALLOC_ADDRESS 0xFFFFFFFFFFFFULL + +/// +/// Maximum legal RISC-V INTN and UINTN values. +/// +#define MAX_INTN ((INTN)0x7FFFFFFFFFFFFFFFULL) +#define MAX_UINTN ((UINTN)0xFFFFFFFFFFFFFFFFULL) + +/// +/// The stack alignment required for RISC-V +/// +#define CPU_STACK_ALIGNMENT 16 + +/// +/// Page allocation granularity for RISC-V +/// +#define DEFAULT_PAGE_ALLOCATION_GRANULARITY (0x1000) +#define RUNTIME_PAGE_ALLOCATION_GRANULARITY (0x1000) + +// +// Modifier to ensure that all protocol member functions and EFI intrinsic= s +// use the correct C calling convention. All protocol member functions and +// EFI intrinsics are required to modify their member functions with EFIAP= I. +// +#ifdef EFIAPI + /// + /// If EFIAPI is already defined, then we use that definition. + /// +#elif defined(__GNUC__) + /// + /// Define the standard calling convention regardless of optimization le= vel + /// The GCC support assumes a GCC compiler that supports the EFI ABI. Th= e EFI + /// ABI is much closer to the x64 Microsoft* ABI than standard x64 (x86-= 64) + /// GCC ABI. Thus a standard x64 (x86-64) GCC compiler can not be used f= or + /// x64. Warning the assembly code in the MDE x64 does not follow the co= rrect + /// ABI for the standard x64 (x86-64) GCC. + /// + #define EFIAPI +#else + /// + /// The default for a non Microsoft* or GCC compiler is to assume the EF= I ABI + /// is the standard. + /// + #define EFIAPI +#endif + +#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 + +/** + Return the pointer to the first instruction of a function given a functi= on pointer. + On x64 CPU architectures, these two pointer values are the same, + so the implementation of this macro is very simple. + + @param FunctionPointer A pointer to a function. + + @return The pointer to the first instruction of a function given a funct= ion pointer. + +**/ +#define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPoin= ter) + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ +#endif + +#endif --=20 2.25.0 -=3D-=3D-=3D-=3D-=3D-=3D Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57192): https://edk2.groups.io/g/devel/message/57192 Mute This Topic: https://groups.io/mt/72916359/1779286 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [zhiguang.liu@intel.com] -=3D-=3D-=3D-=3D-=3D-=3D