From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web10.394.1591116726775454166 for ; Tue, 02 Jun 2020 09:52:06 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=042218950f=daniel.schaefer@hpe.com) Received: from pps.filterd (m0148663.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 052Gmksj003712; Tue, 2 Jun 2020 16:52:06 GMT Received: from g4t3426.houston.hpe.com (g4t3426.houston.hpe.com [15.241.140.75]) by mx0a-002e3701.pphosted.com with ESMTP id 31ds0x8y7n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 02 Jun 2020 16:52:06 +0000 Received: from G4W9121.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.210.21.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g4t3426.houston.hpe.com (Postfix) with ESMTPS id 99EA65F; Tue, 2 Jun 2020 16:52:05 +0000 (UTC) Received: from G9W8453.americas.hpqcorp.net (2002:10d8:a0d3::10d8:a0d3) by G4W9121.americas.hpqcorp.net (2002:10d2:1510::10d2:1510) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 16:52:05 +0000 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (15.241.52.10) by G9W8453.americas.hpqcorp.net (16.216.160.211) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 2 Jun 2020 16:52:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E4rhQ7jTxX0C2f8jGzxgD4s/66yEH+v2ednAfZBNuEmvozpz1XKYUumxARgY8c668PfduNvk37cQi+NhFvlo6EKrDDNCoew9jg7hYKnMHx3cAFYfNBuFRTn6UeCiXqaE7h32eLsYHHezkszc+/s6cC4ZIo8xP5hJ7cZTBVI7VtsHelUgCIIoi+13maoe/PCdVNJNfhQGcaFwhZmY0uZdE8kbmSnUHfyjlxhOiLZ5wuyoN6kYrU1Oj0mcRgh9UN6j2C1A7dPaUZPvCxWaSPRQu33lMvidgZJbPxpz1Wd6tM3FroF8yzuaka9MHv4420f3yUDocefg7dpZD+GiJvnRNA== 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=8ARo2fko8mIbGyVlKgdntt0cnqgBndKn4OA+JkN2IGs=; b=OkXeJLEQyuIL45ep8ZpLljKit//IU8/xLwJEBj4OyMMqESLgImYjxAp/2WLkESfvm8QZthdVRSLkM7v+uvEN1OyUO0LJOJC/fmFi/kpxq0hKlHwV31fTjXorX3AbFjVrUCdmGloUwfPuDfcZ7AIOsCPvjA9bOUrhHKgRohUoIEHRgM+PmSlo5NLbsySZ9/N5EH3XJjJKDIAi7GZy5YQvfVEKUUkOIB3v7KOgfBHUh9jPnnwjMh9oKQUkBjB+nKHibsJ//LBpN77x3wgkN0PSnB8byyLk7dOtzIYmqN2XtQeHgHDJ8F1584r6GU6/8UScu+n+upCGUWYRs0mZqIQxiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=hpe.com; Received: from AT5PR8401MB0466.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:741f::10) by AT5PR8401MB0548.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:741d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.22; Tue, 2 Jun 2020 16:52:03 +0000 Received: from AT5PR8401MB0466.NAMPRD84.PROD.OUTLOOK.COM ([fe80::70f2:6970:9f7e:6ab6]) by AT5PR8401MB0466.NAMPRD84.PROD.OUTLOOK.COM ([fe80::70f2:6970:9f7e:6ab6%10]) with mapi id 15.20.3066.018; Tue, 2 Jun 2020 16:52:03 +0000 From: "Daniel Schaefer" To: CC: Leif Lindholm , Gilbert Chen , Abner Chang , "Michael D . Kinney" Subject: [PATCH v4 0/1] New RISC-V Patches Date: Tue, 2 Jun 2020 18:51:51 +0200 Message-ID: <20200602165152.9823-1-daniel.schaefer@hpe.com> X-Mailer: git-send-email 2.26.1 X-ClientProxiedBy: SN6PR08CA0003.namprd08.prod.outlook.com (2603:10b6:805:66::16) To AT5PR8401MB0466.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:741f::10) X-MS-Exchange-MessageSentRepresentingType: 1 Received: from x360-nix.fritz.box (93.215.222.127) by SN6PR08CA0003.namprd08.prod.outlook.com (2603:10b6:805:66::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18 via Frontend Transport; Tue, 2 Jun 2020 16:52:01 +0000 X-Mailer: git-send-email 2.26.1 X-Originating-IP: [93.215.222.127] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 32f1cf36-49b7-4f94-ddd4-08d80715466f X-MS-TrafficTypeDiagnostic: AT5PR8401MB0548: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-Forefront-PRVS: 0422860ED4 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: phoNAUB3cmFncpvn0Ovlr6vwr8OUVOuXOlKKnFs9C4jRdiRtPhGTTjTvctpM+oRPH2EkTe852kxQgtt+LiZcFHf6ocCf9l5I1RyUjgSV2gMJn7Of1vANjDoKnXtEwWBHBDLp8P0EQOWB/f40/hoYZIbsAztof6tvexdg5RTKdPbdGG9Q1cwtRa8Z39GppvyJpqRlpuofJeKHZK+mMsJdUbopgzycccdGLj03DYQkD227JTFRqN/10ocPETzhvkyemX0yF+j5WWHxp6EwKA9XJUIHFf0bGWvZ4Nw1jP6WLuIr7AZhOi5xdYAQAcIQ/Auu9ebwTTawO564g2VR1IgL5h8usJyL3tsIay+QqFi/mQQayi0MlO58p7X2x8YFpSBYBz4kW7KzjDBphJcMS3x4pA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AT5PR8401MB0466.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFTY:;SFS:(136003)(376002)(39860400002)(346002)(366004)(396003)(6512007)(83380400001)(54906003)(52116002)(966005)(478600001)(316002)(86362001)(8936002)(6486002)(4326008)(8676002)(1076003)(30864003)(66946007)(2616005)(26005)(66476007)(5660300002)(956004)(6506007)(66556008)(6916009)(44832011)(36756003)(2906002)(6666004)(186003)(16526019);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData: xg3myzsUoosPy4WDjJ2GOiIiarU0sFqrMft1UBTq35d/Fx/0Psd3H3CnXRqfeK7sRlGeLEC6bioZVzXR2eS8yZorpI3sRcTZq8FqJ2qudt4WFCAt5fJZU8h24rqivxtWfiajUKI4wSx600L01VQ9ajIUVurarMurmhTE8d6+pvC1qbpP2TkddKGqS559zjhOtYQNeE4scMgzim+vo1vq+9vGG3sGi8teKhNLcCcgtO6BDE+bFc0tJDjtv1z7dzJGbbNr4JsQ2ZtAHggBqMZ+nooelTbntQU3gToWQQNOZTx0GSUzSzOFAEL1kcX/BXwtl2eOUlwRSUEFGC3vgEc4LZR9PnCUqtqNIDHH+rFMeiwyAdL/0cNK5CmdJbiBjakIxUXDmXThY+tGPU2P1f13QqdiSEFXidz9ivi1a9owMh4KGmiky7ws2+1Vngwbi/yLtJ/7iDOQKKSNC4XOMrqV8EAkyuP8wOwK3fZMbD/xwZZlZa9i6rfwhC2n9NdiDE6W X-MS-Exchange-CrossTenant-Network-Message-Id: 32f1cf36-49b7-4f94-ddd4-08d80715466f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2020 16:52:03.4547 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mPKCYwKujqtYLBZ55lrxZNCTM5QXFIzPNzFlMN5ikMnlGztBL9A+xPJ50EiL+BZcyGmvReaX2MKPSvnBAh7CvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR8401MB0548 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.687 definitions=2020-06-02_13:2020-06-02,2020-06-02 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 mlxlogscore=999 impostorscore=0 cotscore=-2147483648 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006020120 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, here's the latest version of the RiscVEdk2SbiLib patch. The other commits f= rom the last series haven't changed, so I'm not resending them to reduce the no= ise. Below in this email, I included a patch showing the differences betwen the = last patchset and this one. The branch is at https://github.com/changab/edk2-platforms/tree/devel-riscv= platforms and I made another repo, to easily try out booting to EFI Shell on RISC-V: https://github.com/JohnAZoidberg/riscv-edk2-docker Other TODOs for upstreaming RISC-V: - Deduplicating SMBIOS code -> I am doing that currently - Figuring out in which repo to put the code -> Discussion is still going on Cheers, Daniel Cc: Leif Lindholm Cc: Gilbert Chen Cc: Abner Chang Cc: Michael D. Kinney Daniel Schaefer (1): ProcessorPkg/Library: Add RiscVEdk2SbiLib Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.inf | = 28 + Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2SbiLib.h | = 563 ++++++++++++ Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c | = 897 ++++++++++++++++++++ 3 files changed, 1488 insertions(+) create mode 100644 Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/Ris= cVEdk2SbiLib.inf create mode 100644 Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVEdk2Sb= iLib.h create mode 100644 Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/Ris= cVEdk2SbiLib.c -- diff --git i/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2S= biLib.c w/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiL= ib.c index d26adaa37ce7..0df505d2675b 100644 --- i/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c +++ w/Silicon/RISC-V/ProcessorPkg/Library/RiscVEdk2SbiLib/RiscVEdk2SbiLib.c @@ -16,8 +16,10 @@ - SbiLegacyShutdown -> Wait for new System Reset extension=0D =0D Copyright (c) 2020, Hewlett Packard Development LP. All rights reserved.=
=0D -=0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D + @par Revision Reference:=0D + - OpenSBI Version 0.6=0D **/=0D =0D #include =0D @@ -30,12 +32,22 @@ #include =0D =0D =0D +//=0D +// Maximum arguments for SBI ecall=0D +// It's possible to pass more but no SBI call uses more as of SBI 0.2.=0D +// The additional arguments would have to be passed on the stack instead o= f as=0D +// registers, like it's done now.=0D +//=0D +#define SBI_CALL_MAX_ARGS 6=0D +=0D /**=0D Call SBI call using ecall instruction.=0D =0D + Asserts when NumArgs exceeds SBI_CALL_MAX_ARGS.=0D +=0D @param[in] ExtId SBI extension ID.=0D @param[in] FuncId SBI function ID.=0D - @param[in] NumAargs Number of arguments to pass to the ecall.=0D + @param[in] NumArgs Number of arguments to pass to the ecall.=0D @param[in] ... Argument list for the ecall.=0D =0D @retval Returns SbiRet structure with value and error code.=0D @@ -49,16 +61,19 @@ SbiCall( IN UINTN FuncId,=0D IN UINTN NumArgs,=0D ...=0D -) {=0D + )=0D +{=0D UINTN I;=0D SbiRet Ret;=0D - UINTN Args[6];=0D + UINTN Args[SBI_CALL_MAX_ARGS];=0D VA_LIST ArgList;=0D - VA_START(ArgList, NumArgs);=0D + VA_START (ArgList, NumArgs);=0D =0D - for (I =3D 0; I < 6; I++) {=0D + ASSERT (NumArgs <=3D SBI_CALL_MAX_ARGS);=0D +=0D + for (I =3D 0; I < SBI_CALL_MAX_ARGS; I++) {=0D if (I < NumArgs) {=0D - Args[I] =3D VA_ARG(ArgList, UINTN);=0D + Args[I] =3D VA_ARG (ArgList, UINTN);=0D } else {=0D // Default to 0 for all arguments that are not given=0D Args[I] =3D 0;=0D @@ -95,8 +110,9 @@ STATIC EFI_STATUS=0D EFIAPI=0D TranslateError(=0D - IN UINTN SbiError=0D - ) {=0D + IN UINTN SbiError=0D + )=0D +{=0D switch (SbiError) {=0D case SBI_SUCCESS:=0D return EFI_SUCCESS;=0D @@ -129,7 +145,7 @@ TranslateError( }=0D =0D //=0D -// OpenSBI libraary interface function for the base extension=0D +// OpenSBI library interface function for the base extension=0D //=0D =0D /**=0D @@ -150,7 +166,7 @@ SbiGetSpecVersion ( SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_SPEC_VERSION, 0);= =0D =0D if (!Ret.Error) {=0D - *SpecVersion =3D (UINTN) Ret.Value;=0D + *SpecVersion =3D (UINTN)Ret.Value;=0D }=0D }=0D =0D @@ -169,7 +185,7 @@ SbiGetImplId ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_IMP_ID, 0);=0D - *ImplId =3D (UINTN) Ret.Value;=0D + *ImplId =3D (UINTN)Ret.Value;=0D }=0D =0D /**=0D @@ -187,7 +203,7 @@ SbiGetImplVersion ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_IMP_VERSION, 0);= =0D - *ImplVersion =3D (UINTN) Ret.Value;=0D + *ImplVersion =3D (UINTN)Ret.Value;=0D }=0D =0D /**=0D @@ -207,7 +223,7 @@ SbiProbeExtension ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_PROBE_EXT, 0);=0D - *ProbeResult =3D (UINTN) Ret.Value;=0D + *ProbeResult =3D (UINTN)Ret.Value;=0D }=0D =0D /**=0D @@ -224,7 +240,7 @@ SbiGetMachineVendorId ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_MVENDORID, 0);=0D - *MachineVendorId =3D (UINTN) Ret.Value;=0D + *MachineVendorId =3D (UINTN)Ret.Value;=0D }=0D =0D /**=0D @@ -241,7 +257,7 @@ SbiGetMachineArchId ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_MARCHID, 0);=0D - *MachineArchId =3D (UINTN) Ret.Value;=0D + *MachineArchId =3D (UINTN)Ret.Value;=0D }=0D =0D /**=0D @@ -258,7 +274,7 @@ SbiGetMachineImplId ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_BASE, SBI_EXT_BASE_GET_MIMPID, 0);=0D - *MachineImplId =3D (UINTN) Ret.Value;=0D + *MachineImplId =3D (UINTN)Ret.Value;=0D }=0D =0D //=0D @@ -296,13 +312,15 @@ SbiHartStart ( IN UINTN Priv=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_HSM,=0D - SBI_EXT_HSM_HART_START,=0D - 3,=0D - HartId,=0D - StartAddr,=0D - Priv);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_HSM,=0D + SBI_EXT_HSM_HART_START,=0D + 3,=0D + HartId,=0D + StartAddr,=0D + Priv=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -320,7 +338,7 @@ SbiHartStop ( )=0D {=0D SbiRet Ret =3D SbiCall (SBI_EXT_HSM, SBI_EXT_HSM_HART_STOP, 0);=0D - return TranslateError(Ret.Error);=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -350,10 +368,10 @@ SbiHartGetStatus ( SbiRet Ret =3D SbiCall (SBI_EXT_HSM, SBI_EXT_HSM_HART_GET_STATUS, 1, Har= tId);=0D =0D if (!Ret.Error) {=0D - *HartStatus =3D (UINTN) Ret.Value;=0D + *HartStatus =3D (UINTN)Ret.Value;=0D }=0D =0D - return TranslateError(Ret.Error);=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -380,12 +398,14 @@ SbiSendIpi ( IN UINTN HartMaskBase=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_IPI,=0D - SBI_EXT_IPI_SEND_IPI,=0D - 2,=0D - (UINTN) HartMask,=0D - HartMaskBase);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_IPI,=0D + SBI_EXT_IPI_SEND_IPI,=0D + 2,=0D + (UINTN)HartMask,=0D + HartMaskBase=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -408,12 +428,14 @@ SbiRemoteFenceI ( IN UINTN HartMaskBase=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_FENCE_I,=0D - 2,=0D - (UINTN) HartMask,=0D - HartMaskBase);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_FENCE_I,=0D + 2,=0D + (UINTN)HartMask,=0D + HartMaskBase=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -446,14 +468,16 @@ SbiRemoteSfenceVma ( IN UINTN Size=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_SFENCE_VMA,=0D - 4,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_SFENCE_VMA,=0D + 4,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -488,15 +512,17 @@ SbiRemoteSfenceVmaAsid ( IN UINTN Asid=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID,=0D - 5,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size,=0D - Asid);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID,=0D + 5,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size,=0D + Asid=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -535,15 +561,17 @@ SbiRemoteHFenceGvmaVmid ( IN UINTN Vmid=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA,=0D - 5,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size,=0D - Vmid);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA,=0D + 5,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size,=0D + Vmid=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -580,14 +608,16 @@ SbiRemoteHFenceGvma ( IN UINTN Size=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID,=0D - 4,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID,=0D + 4,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -626,15 +656,17 @@ SbiRemoteHFenceVvmaAsid ( IN UINTN Asid=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA,=0D - 5,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size,=0D - Asid);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA,=0D + 5,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size,=0D + Asid=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D /**=0D @@ -671,14 +703,16 @@ SbiRemoteHFenceVvma ( IN UINTN Size=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EXT_RFENCE,=0D - SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID,=0D - 4,=0D - (UINTN) HartMask,=0D - HartMaskBase,=0D - StartAddr,=0D - Size);=0D - return TranslateError(Ret.Error);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EXT_RFENCE,=0D + SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID,=0D + 4,=0D + (UINTN)HartMask,=0D + HartMaskBase,=0D + StartAddr,=0D + Size=0D + );=0D + return TranslateError (Ret.Error);=0D }=0D =0D //=0D @@ -689,14 +723,13 @@ SbiRemoteHFenceVvma ( Call a function in a vendor defined SBI extension=0D =0D ASSERT() if the ExtensionId is not in the designated SBI Vendor Extensio= n=0D - Space.=0D + Space or NumArgs exceeds SBI_CALL_MAX_ARGS.=0D =0D @param[in] ExtensionId The SBI vendor extension ID.=0D @param[in] FunctionId The function ID to call in this extensi= on.=0D @param[in] NumArgs How many arguments are passed.=0D @param[in] ... Actual Arguments to the function.=0D @retval EFI_SUCCESS if the SBI function was called and it was successful= =0D - @retval EFI_INVALID_PARAMETER if NumArgs exceeds 6=0D @retval others if the called SBI function returns an error=0D **/=0D EFI_STATUS=0D @@ -710,39 +743,41 @@ SbiVendorCall ( {=0D SbiRet Ret;=0D VA_LIST Args;=0D - VA_START(Args, NumArgs);=0D + VA_START (Args, NumArgs);=0D =0D - ASSERT (ExtensionId >=3D 0x09000000 && ExtensionId <=3D 0x09FFFFFF);=0D + ASSERT (ExtensionId >=3D SBI_EXT_VENDOR_START && ExtensionId <=3D SBI_= EXT_VENDOR_END);=0D + ASSERT (NumArgs <=3D SBI_CALL_MAX_ARGS);=0D =0D switch (NumArgs) {=0D case 0:=0D Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs);=0D break;=0D case 1:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN));=0D break;=0D case 2:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN),=0D - VA_ARG(Args, UINTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN),=0D + VA_ARG (Args, UINTN));=0D break;=0D case 3:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN));=0D break;=0D case 4:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN), VA_ARG(Ar= gs, UINTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN),=0D + VA_ARG (Args, UINTN));=0D break;=0D case 5:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN));=0D break;=0D case 6:=0D - Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG(Args, UI= NTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN),=0D - VA_ARG(Args, UINTN), VA_ARG(Args, UINTN),=0D - VA_ARG(Args, UINTN));=0D + Ret =3D SbiCall (ExtensionId, FunctionId, NumArgs, VA_ARG (Args, U= INTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN),=0D + VA_ARG (Args, UINTN), VA_ARG (Args, UINTN),=0D + VA_ARG (Args, UINTN));=0D break;=0D default:=0D // Too many args. In theory SBI can handle more arguments when the= y are=0D @@ -752,7 +787,7 @@ SbiVendorCall ( }=0D =0D VA_END(Args);=0D - return TranslateError(Ret.Error);=0D + return TranslateError (Ret.Error);=0D }=0D =0D //=0D @@ -777,7 +812,7 @@ SbiGetMscratch ( SbiRet Ret =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, 0);=0D =0D if (!Ret.Error) {=0D - *ScratchSpace =3D (SBI_SCRATCH *) Ret.Value;=0D + *ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;=0D }=0D =0D return EFI_SUCCESS;=0D @@ -797,13 +832,15 @@ SbiGetMscratchHartid ( OUT SBI_SCRATCH **ScratchSpace=0D )=0D {=0D - SbiRet Ret =3D SbiCall (SBI_EDK2_FW_EXT,=0D - SBI_EXT_FW_MSCRATCH_HARTID_FUNC,=0D - 1,=0D - HartId);=0D + SbiRet Ret =3D SbiCall (=0D + SBI_EDK2_FW_EXT,=0D + SBI_EXT_FW_MSCRATCH_HARTID_FUNC,=0D + 1,=0D + HartId=0D + );=0D =0D if (!Ret.Error) {=0D - *ScratchSpace =3D (SBI_SCRATCH *) Ret.Value;=0D + *ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;=0D }=0D =0D return EFI_SUCCESS;=0D @@ -826,9 +863,9 @@ SbiGetFirmwareContext ( SbiRet Ret =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, 0);=0D =0D if (!Ret.Error) {=0D - ScratchSpace =3D (SBI_SCRATCH *) Ret.Value;=0D - SbiPlatform =3D (SBI_PLATFORM *) sbi_platform_ptr(ScratchSpace);=0D - *FirmwareContext =3D (EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *) SbiPlatfor= m->firmware_context;=0D + ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;=0D + SbiPlatform =3D (SBI_PLATFORM *)sbi_platform_ptr(ScratchSpace);=0D + *FirmwareContext =3D (EFI_RISCV_OPENSBI_FIRMWARE_CONTEXT *)SbiPlatform= ->firmware_context;=0D }=0D =0D return EFI_SUCCESS;=0D @@ -851,9 +888,9 @@ SbiSetFirmwareContext ( SbiRet Ret =3D SbiCall (SBI_EDK2_FW_EXT, SBI_EXT_FW_MSCRATCH_FUNC, 0);=0D =0D if (!Ret.Error) {=0D - ScratchSpace =3D (SBI_SCRATCH *) Ret.Value;=0D - SbiPlatform =3D (SBI_PLATFORM *) sbi_platform_ptr(ScratchSpace);=0D - SbiPlatform->firmware_context =3D (UINTN) FirmwareContext;=0D + ScratchSpace =3D (SBI_SCRATCH *)Ret.Value;=0D + SbiPlatform =3D (SBI_PLATFORM *)sbi_platform_ptr (ScratchSpace);=0D + SbiPlatform->firmware_context =3D (UINTN)FirmwareContext;=0D }=0D =0D return EFI_SUCCESS;=0D --=20 2.26.1