Signed-off-by: Abner Chang <[email protected]>
Cc: Daniel Schaefer <[email protected]>
Cc: Sunil V L <[email protected]>
---
.../RISC-V/ProcessorPkg/RiscVProcessorPkg.dec | 2 ++
.../RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc | 4 ++--
.../RiscVFirmwareContextSbiLib.inf | 2 +-
.../Include/Library/MachineModeTimerLib.h | 15 +++++++++++++
.../Include/Library/RiscVPlatformTimerLib.h | 21 +++++++++++++++++++
.../ProcessorPkg/Include/OpensbiTypes.h | 6 +++---
.../Include/ProcessorSpecificHobData.h | 8 +++----
.../CpuExceptionHandlerLib.h | 2 +-
.../Universal/SmbiosDxe/RiscVSmbiosDxe.c | 12 +++++------
.../RISC-V/ProcessorPkg/RiscVProcessorPkg.uni | 18 +++++++++++++++-
10 files changed, 72 insertions(+), 18 deletions(-)
create mode 100644
Silicon/RISC-V/ProcessorPkg/Include/Library/MachineModeTimerLib.h
create mode 100644
Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVPlatformTimerLib.h
diff --git a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dec
b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dec
index 9c8b57cce3..045fc55212 100644
--- a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dec
+++ b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dec
@@ -26,6 +26,8 @@
RiscVCpuLib|Include/Library/RiscVCpuLib.h
RiscVEdk2SbiLib|Include/Library/RiscVEdk2SbiLib.h
RiscVFirmwareContextLib|Include/Library/RiscVFirmwareContextLib.h
+ RiscVPlatformTimerLib|Include/Library/RiscVPlatformTimerLib.h
+ MachineModeTimerLib|Include/Library/MachineModeTimerLib.h
[Guids]
gUefiRiscVPkgTokenSpaceGuid = { 0x4261e9c8, 0x52c0, 0x4b34, { 0x85, 0x3d,
0x48, 0x46, 0xea, 0xd3, 0xb7, 0x2c}}
diff --git a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc
b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc
index 563b9e7088..0591cd6a6c 100644
--- a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc
+++ b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc
@@ -1,11 +1,11 @@
-#/** @file
+## @file
# RISC-V processor package.
#
# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights
reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
-#**/
+#
################################################################################
#
diff --git
a/Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
b/Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
index 168b705453..0edf781149 100644
---
a/Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
+++
b/Silicon/RISC-V/ProcessorPkg/Library/RiscVFirmwareContextSbiLib/RiscVFirmwareContextSbiLib.inf
@@ -12,7 +12,7 @@
[Defines]
INF_VERSION = 0x0001001b
BASE_NAME = RiscVFirmwareContextSbiLib
- FILE_GUID = 3709E048-6794-427A-B728-BFE3FFD6D461
+ FILE_GUID = 308117C0-400A-79C5-6ED4-AB9763A202E5
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
LIBRARY_CLASS = RiscVFirmwareContextLib|PEIM PEI_CORE
diff --git a/Silicon/RISC-V/ProcessorPkg/Include/Library/MachineModeTimerLib.h
b/Silicon/RISC-V/ProcessorPkg/Include/Library/MachineModeTimerLib.h
new file mode 100644
index 0000000000..a27391cca3
--- /dev/null
+++ b/Silicon/RISC-V/ProcessorPkg/Include/Library/MachineModeTimerLib.h
@@ -0,0 +1,15 @@
+/** @file
+ RISC-V Machine Mode Timer Library Definition
+
+ Copyright (c) 2022, Hewlett Packard Enterprise Development LP. All rights
reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MACHINE_MODE_TIMER_LIB_H_
+#define MACHINE_MODE_TIMER_LIB_H_
+
+UINT64
+RiscVReadMachineTimerInterface (VOID);
+
+#endif
diff --git
a/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVPlatformTimerLib.h
b/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVPlatformTimerLib.h
new file mode 100644
index 0000000000..dcd8734eb5
--- /dev/null
+++ b/Silicon/RISC-V/ProcessorPkg/Include/Library/RiscVPlatformTimerLib.h
@@ -0,0 +1,21 @@
+/** @file
+ RISC-V Platform Timer library definitions.
+
+ Copyright (c) 2022, Hewlett Packard Enterprise Development LP. All rights
reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef RISCV_PLATFORM_TIMER_LIB_H_
+#define RISCV_PLATFORM_TIMER_LIB_H_
+
+UINT64
+RiscVReadMachineTimer (VOID);
+
+VOID
+RiscVSetMachineTimerCmp (UINT64);
+
+UINT64
+RiscVReadMachineTimerCmp(VOID);
+
+#endif
diff --git a/Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h
b/Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h
index bbf74e2a82..8a6ea97708 100644
--- a/Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h
+++ b/Silicon/RISC-V/ProcessorPkg/Include/OpensbiTypes.h
@@ -44,8 +44,8 @@ typedef UINT64 virtual_size_t;
typedef UINT64 physical_addr_t;
typedef UINT64 physical_size_t;
-#define true TRUE
-#define false FALSE
+#define true TRUE
+#define false FALSE
#define __packed __attribute__((packed))
#define __noreturn __attribute__((noreturn))
@@ -70,7 +70,7 @@ typedef UINT64 physical_size_t;
const typeof(((type *)0)->member) * __mptr = (ptr); \
(type *)((char *)__mptr - offsetof(type, member)); })
-#define array_size(x) (sizeof(x) / sizeof((x)[0]))
+#define array_size(x) (sizeof(x) / sizeof((x)[0]))
#define CLAMP(a, lo, hi) MIN(MAX(a, lo), hi)
#define ROUNDUP(a, b) ((((a)-1) / (b) + 1) * (b))
diff --git a/Silicon/RISC-V/ProcessorPkg/Include/ProcessorSpecificHobData.h
b/Silicon/RISC-V/ProcessorPkg/Include/ProcessorSpecificHobData.h
index 2f5847e53e..97285289f7 100644
--- a/Silicon/RISC-V/ProcessorPkg/Include/ProcessorSpecificHobData.h
+++ b/Silicon/RISC-V/ProcessorPkg/Include/ProcessorSpecificHobData.h
@@ -1,7 +1,7 @@
/** @file
Definition of Processor Specific Data HOB.
- Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights
reserved.<BR>
+ Copyright (c) 2019-2022, Hewlett Packard Enterprise Development LP. All
rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -24,7 +24,7 @@
/// RISC-V processor specific data HOB
///
typedef struct {
- EFI_GUID ParentPrcessorGuid;
+ EFI_GUID ParentProcessorGuid;
UINTN ParentProcessorUid;
EFI_GUID CoreGuid;
VOID *Context; // The additional information of this core which
@@ -37,7 +37,7 @@ typedef struct {
/// RISC-V SMBIOS type 4 (Processor) GUID data HOB
///
typedef struct {
- EFI_GUID PrcessorGuid;
+ EFI_GUID ProcessorGuid;
UINTN ProcessorUid;
SMBIOS_TABLE_TYPE4 SmbiosType4Processor;
UINT16 EndingZero;
@@ -75,7 +75,7 @@ typedef struct {
/// RISC-V SMBIOS type 7 (Cache) GUID data HOB
///
typedef struct {
- EFI_GUID PrcessorGuid;
+ EFI_GUID ProcessorGuid;
UINTN ProcessorUid;
SMBIOS_TABLE_TYPE7 SmbiosType7Cache;
UINT16 EndingZero;
diff --git
a/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.h
b/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.h
index 3e480e9b09..b316510020 100644
---
a/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.h
+++
b/Silicon/RISC-V/ProcessorPkg/Library/RiscVExceptionLib/CpuExceptionHandlerLib.h
@@ -1,4 +1,4 @@
-/**@file
+/** @file
RISC-V Exception Handler library definition file.
diff --git a/Silicon/RISC-V/ProcessorPkg/Universal/SmbiosDxe/RiscVSmbiosDxe.c
b/Silicon/RISC-V/ProcessorPkg/Universal/SmbiosDxe/RiscVSmbiosDxe.c
index b30f9d7f6a..14f62c4036 100644
--- a/Silicon/RISC-V/ProcessorPkg/Universal/SmbiosDxe/RiscVSmbiosDxe.c
+++ b/Silicon/RISC-V/ProcessorPkg/Universal/SmbiosDxe/RiscVSmbiosDxe.c
@@ -1,7 +1,7 @@
/** @file
RISC-V generic SMBIOS DXE driver to build up SMBIOS type 4, type 7 and type
44 records.
- Copyright (c) 2019, Hewlett Packard Enterprise Development LP. All rights
reserved.<BR>
+ Copyright (c) 2019-2022, Hewlett Packard Enterprise Development LP. All
rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -33,7 +33,7 @@ BuildSmbiosType7 (
EFI_STATUS Status;
SMBIOS_HANDLE Handle;
- if (!CompareGuid (&Type4HobData->PrcessorGuid, &Type7DataHob->PrcessorGuid)
||
+ if (!CompareGuid (&Type4HobData->ProcessorGuid,
&Type7DataHob->ProcessorGuid) ||
Type4HobData->ProcessorUid != Type7DataHob->ProcessorUid) {
return EFI_INVALID_PARAMETER;
}
@@ -48,7 +48,7 @@ BuildSmbiosType7 (
return Status;
}
DEBUG ((DEBUG_INFO, "SMBIOS Type 7 was added. SMBIOS Handle: 0x%x\n",
Handle));
- DEBUG ((DEBUG_VERBOSE, " Cache belone to processor GUID: %g\n",
&Type7DataHob->PrcessorGuid));
+ DEBUG ((DEBUG_VERBOSE, " Cache belone to processor GUID: %g\n",
&Type7DataHob->ProcessorGuid));
DEBUG ((DEBUG_VERBOSE, " Cache belone processor UID: %d\n",
Type7DataHob->ProcessorUid));
DEBUG ((DEBUG_VERBOSE, " ==============================\n"));
DEBUG ((DEBUG_VERBOSE, " Socket Designation: %d\n",
Type7DataHob->SmbiosType7Cache.SocketDesignation));
@@ -90,7 +90,7 @@ BuildSmbiosType4 (
EFI_STATUS Status;
DEBUG ((DEBUG_INFO, "Building Type 4.\n"));
- DEBUG ((DEBUG_INFO, " Processor GUID: %g\n",
&Type4HobData->PrcessorGuid));
+ DEBUG ((DEBUG_INFO, " Processor GUID: %g\n",
&Type4HobData->ProcessorGuid));
DEBUG ((DEBUG_INFO, " Processor UUID: %d\n", Type4HobData->ProcessorUid));
Type4HobData->SmbiosType4Processor.L1CacheHandle =
RISC_V_CACHE_INFO_NOT_PROVIDED;
@@ -193,7 +193,7 @@ BuildSmbiosType44 (
EFI_STATUS Status;
DEBUG ((DEBUG_INFO, "Building Type 44 for...\n"));
- DEBUG ((DEBUG_VERBOSE, " Processor GUID: %g\n",
&Type4HobData->PrcessorGuid));
+ DEBUG ((DEBUG_VERBOSE, " Processor GUID: %g\n",
&Type4HobData->ProcessorGuid));
DEBUG ((DEBUG_VERBOSE, " Processor UUID: %d\n",
Type4HobData->ProcessorUid));
GuidHob = (EFI_HOB_GUID_TYPE *)GetFirstGuidHob ((EFI_GUID
*)PcdGetPtr(PcdProcessorSpecificDataGuidHobGuid));
@@ -206,7 +206,7 @@ BuildSmbiosType44 (
//
do {
ProcessorSpecificData = (RISC_V_PROCESSOR_SPECIFIC_HOB_DATA
*)GET_GUID_HOB_DATA (GuidHob);
- if (!CompareGuid (&ProcessorSpecificData->ParentPrcessorGuid,
&Type4HobData->PrcessorGuid) ||
+ if (!CompareGuid (&ProcessorSpecificData->ParentProcessorGuid,
&Type4HobData->ProcessorGuid) ||
ProcessorSpecificData->ParentProcessorUid != Type4HobData->ProcessorUid)
{
GuidHob = GetNextGuidHob((EFI_GUID
*)PcdGetPtr(PcdProcessorSpecificDataGuidHobGuid), GET_NEXT_HOB(GuidHob));
if (GuidHob == NULL) {
diff --git a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.uni
b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.uni
index 83da92fe40..db519c42dd 100644
--- a/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.uni
+++ b/Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.uni
@@ -8,6 +8,22 @@
// **/
#string STR_PACKAGE_ABSTRACT #language en-US "Provides UEFI
compatible RISC-V processor modules and libraries"
-
#string STR_PACKAGE_DESCRIPTION #language en-US "This Package provides
UEFI compatible RISC-V processor modules and libraries."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSpecificDataGuidHobGuid_PROMPT
#language en-US "Processor Specific Data HOB GUID"
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSpecificDataGuidHobGuid_HELP
#language en-US "This is the GUID definition of HOB that passes the "
+
"processor specific data to DXE phase."
+#string STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosGuidHobGuid_PROMPT
#language en-US "RISC-V SMBIOS Data HOB GUID"
+#string STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosGuidHobGuid_HELP
#language en-US "This is the GUID definition of HOB that passes RISC-V
SMBIOS "
+
"Data to DXE phase."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosType4GuidHobGuid_PROMPT
#language en-US "RISC-V SMBIOS Type 4 Data HOB GUID"
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosType4GuidHobGuid_HELP
#language en-US "This is the GUID definition of HOB that passes RISC-V SMBIOS "
+
"Type 4 information to DXE phase for building up SMBIOS record."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosType7GuidHobGuid_PROMPT
#language en-US "RISC-V SMBIOS Type 7 Data HOB GUID"
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdProcessorSmbiosType7GuidHobGuid_HELP
#language en-US "This is the GUID definition of HOB that passes RISC-V SMBIOS "
+
"Type 7 information to DXE phase for building up SMBIOS record."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdRiscVMachineTimerTickInNanoSecond_PROMPT
#language en-US "RISC-V Machine Mode Timer Duration"
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdRiscVMachineTimerTickInNanoSecond_HELP
#language en-US "RISC-V Machine Mode Timer Duration in nanosecond."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdRiscVMachineTimerFrequencyInHerz_PROMPT
#language en-US "RISC-V Machine Mode Timer frequency."
+#string
STR_gUefiRiscVPkgTokenSpaceGuid_PcdRiscVMachineTimerFrequencyInHerz_HELP
#language en-US "RISC-V Machine Mode Timer frequency in Hertz"
+
--
2.31.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85954): https://edk2.groups.io/g/devel/message/85954
Mute This Topic: https://groups.io/mt/88601629/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-