gitlab.arm.com will be in the maintainance mode on Wednesday June 29th 01:00 - 10:00 (UTC+1). Repositories is read only during the maintainance.

Commit a635152c authored by Daniel Schaefer's avatar Daniel Schaefer Committed by Barton Gao
Browse files

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: default avatarDaniel Schaefer <daniel.schaefer@hpe.com>
Reviewed-by: default avatarAbner Chang <abner.chang@hpe.com>
Reviewed-by: Sunny Wang's avatarSunny Wang <sunny.wang@arm.com>
parent 044af044
......@@ -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
--*/
......
......@@ -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
......@@ -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);
}
/** @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;
......
......@@ -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 (
......
/** @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
......@@ -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;
}
......@@ -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;
......@@ -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
--*/
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment