From: "Sunny Wang" <Sunny.Wang@arm.com>
To: "Schaefer, Daniel" <daniel.schaefer@hpe.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: G Edhaya Chandran <Edhaya.Chandran@arm.com>,
Barton Gao <gaojie@byosoft.com.cn>,
Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>,
Eric Jin <eric.jin@intel.com>, Arvin Chen <arvinx.chen@intel.com>,
Leif Lindholm <leif@nuviainc.com>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
"Chang, Abner (HPS SW/FW Technologist)" <abner.chang@hpe.com>,
Sunny Wang <Sunny.Wang@arm.com>
Subject: Re: [edk2-test PATCHv3 2/5] SctPkg: Adapt Aarch64 sources for Riscv64
Date: Tue, 30 Mar 2021 12:25:58 +0000 [thread overview]
Message-ID: <DB8PR08MB39932F37CAD247CA8982AD24857D9@DB8PR08MB3993.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20210304032116.24357-3-daniel.schaefer@hpe.com>
Looks good to me.
Same comment as patch 1/5. This only affects RISCV. Therefore, as long as you build and run SCT on the RISCV platform, this change should be fine.
Reviewed-by: Sunny Wang <sunny.wang@arm.com>
-----Original Message-----
From: Schaefer, Daniel <daniel.schaefer@hpe.com>
Sent: Thursday, March 4, 2021 11:21 AM
To: devel@edk2.groups.io
Cc: G Edhaya Chandran <Edhaya.Chandran@arm.com>; Barton Gao <gaojie@byosoft.com.cn>; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Eric Jin <eric.jin@intel.com>; Arvin Chen <arvinx.chen@intel.com>; Leif Lindholm <leif@nuviainc.com>; Heinrich Schuchardt <xypron.glpk@gmx.de>; Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>
Subject: [edk2-test PATCHv3 2/5] SctPkg: Adapt Aarch64 sources for Riscv64
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3042
Cc: G Edhaya Chandran <Edhaya.Chandran@arm.com>
Cc: Barton Gao <gaojie@byosoft.com.cn>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Cc: Eric Jin <eric.jin@intel.com>
Cc: Arvin Chen <arvinx.chen@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Abner Chang <abner.chang@hpe.com>
Signed-off-by: Daniel Schaefer <daniel.schaefer@hpe.com>
---
uefi-sct/SctPkg/Library/SctLib/Riscv64/SctLibPlat.h | 3 +-
uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/GoVirtual.S | 9 ++--
uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/VirtualMemory.c | 16 +++----
uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Debug.c | 22 +++------
uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.c | 7 +--
uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.h | 48 --------------------
uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/DebugSupportBBTestExceptionCallbackFunction.c | 12 ++---
uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/PlatformIsa.c | 4 +-
uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/Riscv64/EntsLibPlat.h | 3 +-
9 files changed, 32 insertions(+), 92 deletions(-)
diff --git a/uefi-sct/SctPkg/Library/SctLib/Riscv64/SctLibPlat.h b/uefi-sct/SctPkg/Library/SctLib/Riscv64/SctLibPlat.h
index ee7c656b..69e7f904 100644
--- a/uefi-sct/SctPkg/Library/SctLib/Riscv64/SctLibPlat.h
+++ b/uefi-sct/SctPkg/Library/SctLib/Riscv64/SctLibPlat.h
@@ -2,6 +2,7 @@
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -20,7 +21,7 @@ Module Name:
Abstract:
- AArch64 specific defines
+ RISCV64 specific defines
--*/
diff --git a/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/GoVirtual.S b/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/GoVirtual.S
index d223b36b..ae33da18 100644
--- a/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/GoVirtual.S
+++ b/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/GoVirtual.S
@@ -2,6 +2,7 @@
#
# Copyright 2010 - 2012 Unified EFI, Inc.<BR>
# Copyright (c) 2012, ARM Ltd. All rights reserved.<BR>
+# Copyright (c) 2021, Hewlett Packard Enterprise Development LP.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -23,8 +24,6 @@
#--*/
#start of the code section
.text
-/* FIXME: Should alignment be different on Aarch64? */
-.align 3
.global JumpToTestFunc
.type JumpToTestFunc, %function
@@ -37,8 +36,8 @@
# )
#
JumpToTestFunc:
- mov x2, x0
- mov x0, x1
+ mv x2, x0
+ mv x0, x1
// Jump to Virtual function
- blr x2
+ jalr x2
diff --git a/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/VirtualMemory.c b/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/VirtualMemory.c
index 397b3514..00b59594 100644
--- a/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/VirtualMemory.c
+++ b/uefi-sct/SctPkg/SCRT/SCRTApp/Riscv64/VirtualMemory.c
@@ -2,6 +2,7 @@
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
Copyright (c) 2012, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -22,9 +23,6 @@ Module Name:
#include "SCRTApp.h"
-#define VIRT_TO_PHYS_OFFSET (0x80000000) //2G
-
-BOOLEAN HighAddress = FALSE;
UINTN PageTable = 0;
@@ -49,11 +47,10 @@ Returns:
--*/
{
- /*Note: It is presumed that on ARM v5, V6 and V7 architectures
- * the MMU is configured and enabled in PEI phase. As VirtualFunc
- * is already mapped to virtual memory, don't have to do anything here.
+ /* Note: It is presumed that on RISCV architectures the MMU is configured and
+ * enabled in PEI phase. As VirtualFunc is already mapped to virtual memory,
+ * don't have to do anything here.
*/
- /* FIXME: Is it the same on ARM v8? */
}
@@ -174,9 +171,8 @@ Returns:
--*/
{
//
- // Note: It is assumed that the MMU and page tables are configured on ARM platforms
- // based on ARM v5 v6 and v7 architecture.
+ // Note: It is assumed that the MMU and page tables are configured on RISC-V
+ // platforms.
//
- /* FIXME: Is it the same on ARM v8? */
JumpToTestFunc(VirtualFunc, HandOffAddr);
}
diff --git a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Debug.c b/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Debug.c
index 6161d596..2991935a 100644
--- a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Debug.c
+++ b/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Debug.c
@@ -1,7 +1,8 @@
/** @file
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
- Copyright (c) 2011 - 2012 ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2011 - 2012 ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021 Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -24,7 +25,6 @@ Module Name:
#include "SCRTDriver.h"
UINTN mHandOffPtr = 0;
-EFI_PHYSICAL_ADDRESS mIoPortSpaceAddress = 0;
EFI_STATUS
@@ -42,18 +42,10 @@ ConsumeHandOff (
HandOffPtr = (RUNTIME_HANDOFF*)mHandOffPtr;
*ConfigData = HandOffPtr->ConfigureInfo;
- if (!HandOffPtr->DebuggerInfo.MmioFlag){
- //
- // If debug port is I/O mapped, fix IoBase Address.
- //
- FixAddress(&HandOffPtr->DebuggerInfo.IoBase);
- mIoPortSpaceAddress = HandOffPtr->DebuggerInfo.IoBase;
- } else {
- //
- // If debug port is MMIO, fix MmioBase Address.
- //
- FixAddress(&HandOffPtr->DebuggerInfo.MmioBase);
- }
+ //
+ // Fix MmioBase Address.
+ //
+ FixAddress(&HandOffPtr->DebuggerInfo.MmioBase);
return EFI_SUCCESS;
}
@@ -65,7 +57,7 @@ Send2UART (
)
{
//
- // TODO: On ARM platforms use platform specific functions to
+ // TODO: On RISC-V platforms use platform specific functions to
// write the data to UART.
//
return EFI_SUCCESS;
diff --git a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.c b/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.c
index b925e151..255cb9a6 100644
--- a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.c
+++ b/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.c
@@ -2,6 +2,7 @@
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
Copyright (c) 2011 - 2012 ARM Ltd. All rights reserved.<BR>
+ (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -21,7 +22,7 @@ Module Name:
--*/
-#include "Io.h"
+#include "SCRTDriver.h"
EFI_STATUS
EFIAPI
@@ -119,11 +120,11 @@ FixAddress (
)
{
//
- //Note: On ARM platforms don't have to do this as all the functions are virtually mapped.
+ //Note: On RISC-V platforms don't have to do this as all the functions are virtually mapped.
//
}
-// Quick port to ARM
+// Quick port to RISC-V. It doesn't have traditional I/O-Port 80h POST Codes
VOID
Port80 (
diff --git a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.h b/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.h
deleted file mode 100644
index 1e78b3e4..00000000
--- a/uefi-sct/SctPkg/SCRT/SCRTDriver/Riscv64/Io.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/** @file
-
- Copyright 2006 - 2012 Unified EFI, Inc.<BR>
- Copyright (c) 2011 - 2012 ARM Ltd. All rights reserved.<BR>
-
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-/*++
-
-Module Name:
-
- Debug.h
-
---*/
-
-#ifndef _IA32_IO_ACCESS_H
-#define _IA32_IO_ACCESS_H
-
-#include "SCRTDriver.h"
-
-#define IA32_MAX_IO_ADDRESS 0xFFFF
-
-#define IA32API
-
-
-typedef union {
- UINT8 VOLATILE *buf;
- UINT8 VOLATILE *ui8;
- UINT16 VOLATILE *ui16;
- UINT32 VOLATILE *ui32;
- UINT64 VOLATILE *ui64;
- UINTN VOLATILE ui;
-} PTR;
-
-// This address is assuming a pure PC architecture. Not required?
-#define VIRT_TO_PHYS_OFFSET (0x80000000) //2G
-
-
-
-#endif
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/DebugSupportBBTestExceptionCallbackFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/DebugSupportBBTestExceptionCallbackFunction.c
index c27c0c0c..c6e72806 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/DebugSupportBBTestExceptionCallbackFunction.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/DebugSupportBBTestExceptionCallbackFunction.c
@@ -2,6 +2,7 @@
Copyright 2006 - 2016 Unified EFI, Inc.<BR>
Copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -37,7 +38,7 @@ SoftwareBreak (
void
)
{
- // Not ported to ARM yet
+ // Not ported to RISC-V yet
ASSERT (FALSE);
}
@@ -99,9 +100,7 @@ BBTestRegisterExceptionCallbackFunctionManualTest (
// Invoke RegisterExceptionCallback() to install an interrupt handler function.
//
InvokedExceptionCallback = FALSE;
- // FIXME: Is it normal that we use EXCEPT_IA32_BREAKPOINT here?
- // Shouldn't we define proper constants for ARM exceptions in DebugSupportProtocol.h file?
- Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, ExceptionCallback, EXCEPT_IA32_BREAKPOINT);
+ Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, ExceptionCallback, EXCEPT_RISCV_BREAKPOINT);
if ((Status == EFI_SUCCESS) || (Status == EFI_ALREADY_STARTED)) {
AssertionType = EFI_TEST_ASSERTION_PASSED;
@@ -205,7 +204,7 @@ BBTestRegisterExceptionCallbackFunctionManualTest (
// Assertion Point 3.4.2.3
// Invoke RegisterExceptionCallback() to install another interrupt handler function.
//
- Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, ExceptionCallback1, EXCEPT_IA32_BREAKPOINT);
+ Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, ExceptionCallback1, EXCEPT_RISCV_BREAKPOINT);
if (Status != EFI_ALREADY_STARTED) {
AssertionType = EFI_TEST_ASSERTION_FAILED;
@@ -228,7 +227,7 @@ BBTestRegisterExceptionCallbackFunctionManualTest (
// Assertion Point 3.4.2.4
// Invoke RegisterExceptionCallback() to unstall the interrupt handler function.
//
- Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, NULL, EXCEPT_IA32_BREAKPOINT);
+ Status = DebugSupport->RegisterExceptionCallback (DebugSupport, 0, NULL, EXCEPT_RISCV_BREAKPOINT);
if (EFI_ERROR(Status)) {
AssertionType = EFI_TEST_ASSERTION_FAILED;
@@ -273,4 +272,3 @@ BBTestRegisterExceptionCallbackFunctionManualTest (
return EFI_SUCCESS;
}
-
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/PlatformIsa.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/PlatformIsa.c
index 8334f601..8b23d91b 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/PlatformIsa.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/DebugSupport/BlackBoxTest/Riscv64/PlatformIsa.c
@@ -2,6 +2,7 @@
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
Copyright (c) 2011 - 2012, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -26,5 +27,4 @@ Abstract:
#include "DebugSupportBBTestMain.h"
-EFI_INSTRUCTION_SET_ARCHITECTURE PlatformIsa = IsaAArch64;
-
+EFI_INSTRUCTION_SET_ARCHITECTURE PlatformIsa = IsaRiscv64;
diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/Riscv64/EntsLibPlat.h b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/Riscv64/EntsLibPlat.h
index ff781aee..144f812a 100644
--- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/Riscv64/EntsLibPlat.h
+++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Framework/ENTS/EasLib/Riscv64/EntsLibPlat.h
@@ -2,6 +2,7 @@
Copyright 2006 - 2012 Unified EFI, Inc.<BR>
Copyright (c) 2010 - 2012, ARM Ltd. All rights reserved.<BR>
+ Copyright (c) 2021 Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -20,7 +21,7 @@ Module Name:
Abstract:
- AArch64 specific defines
+ RISCV64 specific defines
--*/
--
2.30.0
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
next prev parent reply other threads:[~2021-03-30 12:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-04 3:21 [edk2-test PATCHv3 0/5] Port SCT to RISCV64 Daniel Schaefer
2021-03-04 3:21 ` [edk2-test PATCHv3 1/5] SctPkg: Add RISCV64 support by using Aarch64 sources Daniel Schaefer
2021-03-30 12:25 ` Sunny Wang
2021-03-04 3:21 ` [edk2-test PATCHv3 2/5] SctPkg: Adapt Aarch64 sources for Riscv64 Daniel Schaefer
2021-03-04 7:50 ` Abner Chang
2021-03-30 12:25 ` Sunny Wang [this message]
2021-03-04 3:21 ` [edk2-test PATCHv3 3/5] SctPkg: Add RISCV64 build support Daniel Schaefer
2021-03-30 12:26 ` [edk2-devel] " Sunny Wang
2021-03-04 3:21 ` [edk2-test PATCHv3 4/5] SctPkg: Unify CC_FLAGS for all GCC platforms Daniel Schaefer
2021-03-04 7:50 ` Abner Chang
2021-03-30 12:26 ` [edk2-devel] " Sunny Wang
2021-03-04 3:21 ` [edk2-test PATCHv3 5/5] SctPkg: Remove trailing whitespace Daniel Schaefer
2021-03-04 7:51 ` Abner Chang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DB8PR08MB39932F37CAD247CA8982AD24857D9@DB8PR08MB3993.eurprd08.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox