[edk2-devel] [edk2-staging/RISC-V PATCH v1 8/14]: RiscVPkg/Universal: Remove stale moudles
Abner Chang
abner.chang at hpe.com
Tue Aug 27 06:00:26 UTC 2019
- Remove Timer DXE driver from RISC-V package becasue it is platform level driver has platform-specific implementation.
- Remove SEC module from RISC-V package because this is RISC-V processor-implementation specific. RISC-V platform code should provide this module.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Abner Chang <abner.chang at hpe.com>
---
RiscVPkg/Universal/Sec/Riscv64/SecEntry.s | 109 ------
RiscVPkg/Universal/Sec/SecMain.c | 563 -----------------------------
RiscVPkg/Universal/Sec/SecMain.h | 56 ---
RiscVPkg/Universal/Sec/SecMain.inf | 72 ----
RiscVPkg/Universal/Sec/TrapHandler.c | 99 -----
RiscVPkg/Universal/TimerDxe/Timer.c | 288 ---------------
RiscVPkg/Universal/TimerDxe/Timer.h | 179 ---------
RiscVPkg/Universal/TimerDxe/Timer.uni | Bin 1678 -> 0 bytes
RiscVPkg/Universal/TimerDxe/TimerDxe.inf | 54 ---
RiscVPkg/Universal/TimerDxe/TimerExtra.uni | Bin 1374 -> 0 bytes
10 files changed, 1420 deletions(-)
delete mode 100644 RiscVPkg/Universal/Sec/Riscv64/SecEntry.s
delete mode 100644 RiscVPkg/Universal/Sec/SecMain.c
delete mode 100644 RiscVPkg/Universal/Sec/SecMain.h
delete mode 100644 RiscVPkg/Universal/Sec/SecMain.inf
delete mode 100644 RiscVPkg/Universal/Sec/TrapHandler.c
delete mode 100644 RiscVPkg/Universal/TimerDxe/Timer.c
delete mode 100644 RiscVPkg/Universal/TimerDxe/Timer.h
delete mode 100644 RiscVPkg/Universal/TimerDxe/Timer.uni
delete mode 100644 RiscVPkg/Universal/TimerDxe/TimerDxe.inf
delete mode 100644 RiscVPkg/Universal/TimerDxe/TimerExtra.uni
diff --git a/RiscVPkg/Universal/Sec/Riscv64/SecEntry.s b/RiscVPkg/Universal/Sec/Riscv64/SecEntry.s
deleted file mode 100644
index cc4ca6d..0000000
--- a/RiscVPkg/Universal/Sec/Riscv64/SecEntry.s
+++ /dev/null
@@ -1,109 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// RISC-V Sec module.
-//
-// Copyright (c) 2016-2017, 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
-// 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.
-//
-//------------------------------------------------------------------------------
-#include <Base.h>
-#include <RiscV.h>
-
-.data
-
-.text
-.align 3
-
-.global ASM_PFX(_ModuleEntryPoint)
-
-.dword ASM_PFX(TrapFromUserModeHandler)
-.align 3
-.dword ASM_PFX(TrapFromSupervisorModeHandler)
-.align 3
-.dword ASM_PFX(TrapFromHypervisorModeHandler)
-.align 3
-.dword ASM_PFX(TrapFromMachineModeHandler)
-.align 3
-.dword ASM_PFX(NmiHandler)
-.align 3
-ASM_PFX(_ModuleEntryPoint):
- //
- // Set vector base to.
- //
-// li a0, 0xfffffec0
-// csrrw a1, 0x301, a0 // Machine vector base.
-// li a0, 0xfffffe80
-// csrrw a1, 0x201, a0 // Hypervisor vector base.
-// li a0, 0xfffffe40
-// csrrw a1, 0x101, a0 // Supervisor vector base.
- li a0, 0xfffffe00
- csrrw a1, RISCV_CSR_MACHINE_MTVEC, a0 // Machine vector base.
-
- //
- // Platform SEC PEI temporary memory init.
- //
- call RiscVPlatformTemporaryMemInit
- //
- // Set up temporary memory for SEC and PEI phase.
- // PcdOvmfSecPeiTempRamBase and PcdOvmfSecPeiTempRamSize
- // map to the specific region within system memory.
- //
- li a0, FixedPcdGet32 (PcdRiscVSecPeiTempRamBase)
- li a1, FixedPcdGet32 (PcdRiscVSecPeiTempRamSize)
- add a2, a0, a1 // a2 is top of temporary memory.
- add sp, a0, a1 // Set stack pointer to top of temporary memory.
-
- //
- // Call startup with stack
- //
- li a1, 0x20
- sub sp, sp, a1
- li a0, FixedPcdGet32 (PcdRiscVPeiFvBase) // Load boot FV in a0.
- add a1, a2, 0 // Load top of stack in a1.
- call SecCoreStartupWithStack
- //
- // Never return here.
- //
-
-//
-// User mode trap handler.
-//
-ASM_PFX(TrapFromUserModeHandler):
- call RiscVUserModeTrapHandler
- mret
-
-//
-//Supervisor mode trap handler.
-//
-ASM_PFX(TrapFromSupervisorModeHandler):
- call RiscVSupervisorModeTrapHandler
- mret
-
-//
-// Hypervisor mode trap handler.
-//
-ASM_PFX(TrapFromHypervisorModeHandler):
- call RiscVHypervisorModeTrapHandler
- mret
-
-//
-// Machine mode trap handler.
-//
-ASM_PFX(TrapFromMachineModeHandler):
- call RiscVMachineModeTrapHandler
- mret
-
-//
-// NMI trap handler.
-//
-ASM_PFX(NmiHandler):
- call RiscVNmiHandler
- mret
-
diff --git a/RiscVPkg/Universal/Sec/SecMain.c b/RiscVPkg/Universal/Sec/SecMain.c
deleted file mode 100644
index be87ce1..0000000
--- a/RiscVPkg/Universal/Sec/SecMain.c
+++ /dev/null
@@ -1,563 +0,0 @@
-/** @file
- RISC-V SEC phase module.
-
- Copyright (c) 2016, 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
- 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.
-**/
-
-#include "SecMain.h"
-
-EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI mTemporaryRamSupportPpi = {
- TemporaryRamMigration
-};
-
-EFI_PEI_TEMPORARY_RAM_DONE_PPI mTemporaryRamDonePpi = {
- TemporaryRamDone
-};
-
-EFI_PEI_PPI_DESCRIPTOR mPrivateDispatchTable[] = {
- {
- EFI_PEI_PPI_DESCRIPTOR_PPI,
- &gEfiTemporaryRamSupportPpiGuid,
- &mTemporaryRamSupportPpi
- },
- {
- (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
- &gEfiTemporaryRamDonePpiGuid,
- &mTemporaryRamDonePpi
- },
-};
-
-/**
- Locates a section within a series of sections
- with the specified section type.
-
- The Instance parameter indicates which instance of the section
- type to return. (0 is first instance, 1 is second...)
-
- @param[in] Sections The sections to search
- @param[in] SizeOfSections Total size of all sections
- @param[in] SectionType The section type to locate
- @param[in] Instance The section instance number
- @param[out] FoundSection The FFS section if found
-
- @retval EFI_SUCCESS The file and section was found
- @retval EFI_NOT_FOUND The file and section was not found
- @retval EFI_VOLUME_CORRUPTED The firmware volume was corrupted
-
-**/
-EFI_STATUS
-FindFfsSectionInstance (
- IN VOID *Sections,
- IN UINTN SizeOfSections,
- IN EFI_SECTION_TYPE SectionType,
- IN UINTN Instance,
- OUT EFI_COMMON_SECTION_HEADER **FoundSection
- )
-{
- EFI_PHYSICAL_ADDRESS CurrentAddress;
- UINT32 Size;
- EFI_PHYSICAL_ADDRESS EndOfSections;
- EFI_COMMON_SECTION_HEADER *Section;
- EFI_PHYSICAL_ADDRESS EndOfSection;
-
- //
- // Loop through the FFS file sections within the PEI Core FFS file
- //
- EndOfSection = (EFI_PHYSICAL_ADDRESS)(UINTN) Sections;
- EndOfSections = EndOfSection + SizeOfSections;
- for (;;) {
- if (EndOfSection == EndOfSections) {
- break;
- }
- CurrentAddress = (EndOfSection + 3) & ~(3ULL);
- if (CurrentAddress >= EndOfSections) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- Section = (EFI_COMMON_SECTION_HEADER*)(UINTN) CurrentAddress;
-
- Size = SECTION_SIZE (Section);
- if (Size < sizeof (*Section)) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- EndOfSection = CurrentAddress + Size;
- if (EndOfSection > EndOfSections) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- //
- // Look for the requested section type
- //
- if (Section->Type == SectionType) {
- if (Instance == 0) {
- *FoundSection = Section;
- return EFI_SUCCESS;
- } else {
- Instance--;
- }
- }
- }
-
- return EFI_NOT_FOUND;
-}
-
-/**
- Locates a section within a series of sections
- with the specified section type.
-
- @param[in] Sections The sections to search
- @param[in] SizeOfSections Total size of all sections
- @param[in] SectionType The section type to locate
- @param[out] FoundSection The FFS section if found
-
- @retval EFI_SUCCESS The file and section was found
- @retval EFI_NOT_FOUND The file and section was not found
- @retval EFI_VOLUME_CORRUPTED The firmware volume was corrupted
-
-**/
-EFI_STATUS
-FindFfsSectionInSections (
- IN VOID *Sections,
- IN UINTN SizeOfSections,
- IN EFI_SECTION_TYPE SectionType,
- OUT EFI_COMMON_SECTION_HEADER **FoundSection
- )
-{
- return FindFfsSectionInstance (
- Sections,
- SizeOfSections,
- SectionType,
- 0,
- FoundSection
- );
-}
-
-/**
- Locates a FFS file with the specified file type and a section
- within that file with the specified section type.
-
- @param[in] Fv The firmware volume to search
- @param[in] FileType The file type to locate
- @param[in] SectionType The section type to locate
- @param[out] FoundSection The FFS section if found
-
- @retval EFI_SUCCESS The file and section was found
- @retval EFI_NOT_FOUND The file and section was not found
- @retval EFI_VOLUME_CORRUPTED The firmware volume was corrupted
-
-**/
-EFI_STATUS
-FindFfsFileAndSection (
- IN EFI_FIRMWARE_VOLUME_HEADER *Fv,
- IN EFI_FV_FILETYPE FileType,
- IN EFI_SECTION_TYPE SectionType,
- OUT EFI_COMMON_SECTION_HEADER **FoundSection
- )
-{
- EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS CurrentAddress;
- EFI_PHYSICAL_ADDRESS EndOfFirmwareVolume;
- EFI_FFS_FILE_HEADER *File;
- UINT32 Size;
- EFI_PHYSICAL_ADDRESS EndOfFile;
-
- if (Fv->Signature != EFI_FVH_SIGNATURE) {
- DEBUG ((EFI_D_ERROR, "FV at %p does not have FV header signature\n", Fv));
- return EFI_VOLUME_CORRUPTED;
- }
-
- CurrentAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) Fv;
- EndOfFirmwareVolume = CurrentAddress + Fv->FvLength;
-
- //
- // Loop through the FFS files in the Boot Firmware Volume
- //
- for (EndOfFile = CurrentAddress + Fv->HeaderLength; ; ) {
-
- CurrentAddress = (EndOfFile + 7) & ~(7ULL);
- if (CurrentAddress > EndOfFirmwareVolume) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- File = (EFI_FFS_FILE_HEADER*)(UINTN) CurrentAddress;
- Size = *(UINT32*) File->Size & 0xffffff;
- if (Size < (sizeof (*File) + sizeof (EFI_COMMON_SECTION_HEADER))) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- EndOfFile = CurrentAddress + Size;
- if (EndOfFile > EndOfFirmwareVolume) {
- return EFI_VOLUME_CORRUPTED;
- }
-
- //
- // Look for the request file type
- //
- if (File->Type != FileType) {
- continue;
- }
-
- Status = FindFfsSectionInSections (
- (VOID*) (File + 1),
- (UINTN) EndOfFile - (UINTN) (File + 1),
- SectionType,
- FoundSection
- );
- if (!EFI_ERROR (Status) || (Status == EFI_VOLUME_CORRUPTED)) {
- return Status;
- }
- }
-}
-
-/**
- Locates the PEI Core entry point address
-
- @param[in] Fv The firmware volume to search
- @param[out] PeiCoreEntryPoint The entry point of the PEI Core image
-
- @retval EFI_SUCCESS The file and section was found
- @retval EFI_NOT_FOUND The file and section was not found
- @retval EFI_VOLUME_CORRUPTED The firmware volume was corrupted
-
-**/
-EFI_STATUS
-FindPeiCoreImageBaseInFv (
- IN EFI_FIRMWARE_VOLUME_HEADER *Fv,
- OUT EFI_PHYSICAL_ADDRESS *PeiCoreImageBase
- )
-{
- EFI_STATUS Status;
- EFI_COMMON_SECTION_HEADER *Section;
-
- Status = FindFfsFileAndSection (
- Fv,
- EFI_FV_FILETYPE_PEI_CORE,
- EFI_SECTION_PE32,
- &Section
- );
- if (EFI_ERROR (Status)) {
- Status = FindFfsFileAndSection (
- Fv,
- EFI_FV_FILETYPE_PEI_CORE,
- EFI_SECTION_TE,
- &Section
- );
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "Unable to find PEI Core image\n"));
- return Status;
- }
- }
- DEBUG ((EFI_D_ERROR, "PeiCoreImageBase found\n"));
- *PeiCoreImageBase = (EFI_PHYSICAL_ADDRESS)(UINTN)(Section + 1);
- return EFI_SUCCESS;
-}
-
-/**
- Reads 8-bits of CMOS data.
-
- Reads the 8-bits of CMOS data at the location specified by Index.
- The 8-bit read value is returned.
-
- @param Index The CMOS location to read.
-
- @return The value read.
-
-**/
-STATIC
-UINT8
-CmosRead8 (
- IN UINTN Index
- )
-{
- IoWrite8 (0x70, (UINT8) Index);
- return IoRead8 (0x71);
-}
-
-STATIC
-BOOLEAN
-IsS3Resume (
- VOID
- )
-{
- return (CmosRead8 (0xF) == 0xFE);
-}
-
-/**
- Locates the PEI Core entry point address
-
- @param[in,out] Fv The firmware volume to search
- @param[out] PeiCoreEntryPoint The entry point of the PEI Core image
-
- @retval EFI_SUCCESS The file and section was found
- @retval EFI_NOT_FOUND The file and section was not found
- @retval EFI_VOLUME_CORRUPTED The firmware volume was corrupted
-
-**/
-VOID
-FindPeiCoreImageBase (
- IN OUT EFI_FIRMWARE_VOLUME_HEADER **BootFv,
- OUT EFI_PHYSICAL_ADDRESS *PeiCoreImageBase
- )
-{
- *PeiCoreImageBase = 0;
-
- if (IsS3Resume ()) {
- DEBUG ((EFI_D_VERBOSE, "SEC: S3 resume not supported.\n"));
- ASSERT (FALSE);
- } else {
- DEBUG ((EFI_D_VERBOSE, "SEC: Normal boot\n"));
- }
- DEBUG ((EFI_D_INFO, "FindPeiCoreImageBaseInFv\n"));
- FindPeiCoreImageBaseInFv (*BootFv, PeiCoreImageBase);
-}
-
-/*
- Find and return Pei Core entry point.
-
- It also find SEC and PEI Core file debug inforamtion. It will report them if
- remote debug is enabled.
-
-**/
-VOID
-FindAndReportEntryPoints (
- IN EFI_FIRMWARE_VOLUME_HEADER **BootFirmwareVolumePtr,
- OUT EFI_PEI_CORE_ENTRY_POINT *PeiCoreEntryPoint
- )
-{
- EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS PeiCoreImageBase;
-
- DEBUG ((EFI_D_INFO, "FindAndReportEntryPoints\n"));
-
- FindPeiCoreImageBase (BootFirmwareVolumePtr, &PeiCoreImageBase);
- //
- // Find PEI Core entry point
- //
- Status = PeCoffLoaderGetEntryPoint ((VOID *) (UINTN) PeiCoreImageBase, (VOID**) PeiCoreEntryPoint);
- if (EFI_ERROR(Status)) {
- *PeiCoreEntryPoint = 0;
- }
- DEBUG ((EFI_D_INFO, "PeCoffLoaderGetEntryPoint success: %x\n", *PeiCoreEntryPoint));
-
- return;
-}
-
-VOID
-EFIAPI
-SecCoreStartupWithStack (
- IN EFI_FIRMWARE_VOLUME_HEADER *BootFv,
- IN VOID *TopOfCurrentStack
- )
-{
- EFI_SEC_PEI_HAND_OFF SecCoreData;
- RISCV_MACHINE_MODE_CONTEXT *RiscvContext;
-
- ProcessLibraryConstructorList (NULL, NULL);
- DEBUG ((EFI_D_INFO,
- "SecCoreStartupWithStack(0x%x, 0x%x)\n",
- (UINT32)(UINTN)BootFv,
- (UINT32)(UINTN)TopOfCurrentStack
- ));
-
- //
- // Initialize SEC hand-off state
- //
- SecCoreData.DataSize = sizeof(EFI_SEC_PEI_HAND_OFF);
-
- //
- // Temporary memory usage
- //
- // (TemporaryRamBase + TemporaryRamSize) = --> |==============================
- // | ^
- // | |
- // | 1/2 * (TemporaryRamSize - RISCV_MACHINE_MODE_CONTEXT)
- // | |
- // | v
- // StackBase = --> |==============================
- // | ^
- // | |
- // | 1/2 * (TemporaryRamSize - RISCV_MACHINE_MODE_CONTEXT)
- // | |
- // | v
- // PeiTemporaryRamBase ----> |==============================
- // |
- //TemporaryRamBase = RISCV_MACHINE_MODE_CONTEXT-> ==============================
-
- SecCoreData.TemporaryRamSize = (UINTN) PcdGet32 (PcdRiscVSecPeiTempRamSize) - RISCV_MACHINE_CONTEXT_SIZE;
- SecCoreData.TemporaryRamBase = (VOID*)((UINT8 *)TopOfCurrentStack - SecCoreData.TemporaryRamSize);
-
- SecCoreData.PeiTemporaryRamBase = SecCoreData.TemporaryRamBase;
- SecCoreData.PeiTemporaryRamSize = SecCoreData.TemporaryRamSize >> 1;
-
- SecCoreData.StackBase = (UINT8 *)SecCoreData.TemporaryRamBase +
- (SecCoreData.TemporaryRamSize >> 1);
- SecCoreData.StackSize = (SecCoreData.TemporaryRamSize >> 1);
-
- SecCoreData.BootFirmwareVolumeBase = BootFv;
- SecCoreData.BootFirmwareVolumeSize = (UINTN) BootFv->FvLength;
-
- //
- // Setup RISCV_MACHINE_MODE_CONTEXT.
- //
- RiscvContext = (RISCV_MACHINE_MODE_CONTEXT *)(SecCoreData.TemporaryRamBase - RISCV_MACHINE_CONTEXT_SIZE);
- RiscvContext->MachineModeTrapHandler = (EFI_PHYSICAL_ADDRESS)(UINTN)SecMachineModeTrapHandler;
- RiscVSetScratch (RiscvContext);
- DEBUG ((DEBUG_INFO, "RISC-V Machine mode context at %x\n", RiscVGetScratch ()));
-
- //
- // Initialize Debug Agent to support source level debug in SEC/PEI phases before memory ready.
- //
- InitializeDebugAgent(DEBUG_AGENT_INIT_PREMEM_SEC, &SecCoreData, SecStartupPhase2);
-}
-
-/**
- Caller provided function to be invoked at the end of InitializeDebugAgent().
-
- Entry point to the C language phase of SEC. After the SEC assembly
- code has initialized some temporary memory and set up the stack,
- the control is transferred to this function.
-
- @param[in] Context The first input parameter of InitializeDebugAgent().
-
-**/
-VOID
-EFIAPI
-SecStartupPhase2(
- IN VOID *Context
- )
-{
- EFI_SEC_PEI_HAND_OFF *SecCoreData;
- EFI_FIRMWARE_VOLUME_HEADER *BootFv;
- EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint;
-
- DEBUG ((EFI_D_INFO, "SecStartupPhase2\n"));
-
- SecCoreData = (EFI_SEC_PEI_HAND_OFF *) Context;
-
- //
- // Find PEI Core entry point. It will report SEC and Pei Core debug information if remote debug
- // is enabled.
- //
- BootFv = (EFI_FIRMWARE_VOLUME_HEADER *)SecCoreData->BootFirmwareVolumeBase;
- FindAndReportEntryPoints (&BootFv, &PeiCoreEntryPoint);
- SecCoreData->BootFirmwareVolumeBase = BootFv;
- SecCoreData->BootFirmwareVolumeSize = (UINTN) BootFv->FvLength;
-
- DEBUG ((EFI_D_INFO, "Transfer the control to the PEI core BootFv:%x , FvLength:%x\n", BootFv, BootFv->FvLength));
- //
- // Transfer the control to the PEI core
- //
- (*PeiCoreEntryPoint) (SecCoreData, (EFI_PEI_PPI_DESCRIPTOR *)&mPrivateDispatchTable);
-
- //
- // If we get here then the PEI Core returned, which is not recoverable.
- //
- ASSERT (FALSE);
- //CpuDeadLoop ();
-}
-
-EFI_STATUS
-EFIAPI
-TemporaryRamMigration (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
- IN UINTN CopySize
- )
-{
- VOID *OldHeap;
- VOID *NewHeap;
- VOID *OldStack;
- VOID *NewStack;
- DEBUG_AGENT_CONTEXT_POSTMEM_SEC DebugAgentContext;
- BOOLEAN OldStatus;
- BASE_LIBRARY_JUMP_BUFFER JumpBuffer;
-
- DEBUG ((EFI_D_INFO,
- "TemporaryRamMigration(0x%Lx, 0x%Lx, 0x%Lx)\n",
- TemporaryMemoryBase,
- PermanentMemoryBase,
- (UINT64)CopySize
- ));
-
- OldHeap = (VOID*)(UINTN)TemporaryMemoryBase;
- NewHeap = (VOID*)((UINTN)PermanentMemoryBase + (CopySize >> 1));
-
- OldStack = (VOID*)((UINTN)TemporaryMemoryBase + (CopySize >> 1));
- NewStack = (VOID*)(UINTN)PermanentMemoryBase;
-
- DebugAgentContext.HeapMigrateOffset = (UINTN)NewHeap - (UINTN)OldHeap;
- DebugAgentContext.StackMigrateOffset = (UINTN)NewStack - (UINTN)OldStack;
-
- OldStatus = SaveAndSetDebugTimerInterrupt (FALSE);
- InitializeDebugAgent (DEBUG_AGENT_INIT_POSTMEM_SEC, (VOID *) &DebugAgentContext, NULL);
-
- CopyMem (NewHeap, OldHeap, CopySize >> 1); // Migrate Heap
- CopyMem (NewStack, OldStack, CopySize >> 1); // Migrate Stack
-
- //
- // Use SetJump()/LongJump() to switch to a new stack.
- //
- if (SetJump (&JumpBuffer) == 0) {
- DEBUG ((EFI_D_INFO,"Return from SetJump\n"));
- JumpBuffer.SP = JumpBuffer.SP + DebugAgentContext.StackMigrateOffset;
- LongJump (&JumpBuffer, (UINTN)-1);
- //
- // LongJump will return to before TemporaryRamMigration.
- //
- }
-
- SaveAndSetDebugTimerInterrupt (OldStatus);
-
- return EFI_SUCCESS;
-}
-
-EFI_STATUS
-EFIAPI
-TemporaryRamDone (
- VOID
- )
-{
- EFI_PEI_SERVICES **PeiServices;
- EFI_STATUS Status;
- RISCV_MACHINE_MODE_CONTEXT *MachineModeContext;
- RISCV_MACHINE_MODE_CONTEXT *OldMachineModeContext;
- EFI_HOB_GUID_TYPE *HobGuid;
-
- DEBUG ((EFI_D_INFO, "TemporaryRamDone\n"));
-
- OldMachineModeContext = (RISCV_MACHINE_MODE_CONTEXT *)(UINTN)RiscVGetScratch ();
- PeiServices = (EFI_PEI_SERVICES **)(UINTN)OldMachineModeContext->PeiService;
-
- //
- // Copy RISCV_MACHINE_MODE_CONTEXT to HOB.
- //
- Status = (*PeiServices)->CreateHob (
- (const EFI_PEI_SERVICES**)PeiServices,
- EFI_HOB_TYPE_GUID_EXTENSION,
- sizeof (EFI_HOB_GUID_TYPE) + sizeof (RISCV_MACHINE_MODE_CONTEXT),
- (VOID **)&HobGuid
- );
- ASSERT (!EFI_ERROR (Status));
- HobGuid->Name = gUefiRiscVMachineContextGuid;
- OldMachineModeContext = (RISCV_MACHINE_MODE_CONTEXT *)(UINTN)RiscVGetScratch ();
- MachineModeContext = (RISCV_MACHINE_MODE_CONTEXT *)(HobGuid + 1);
- CopyMem (MachineModeContext, OldMachineModeContext, sizeof (RISCV_MACHINE_MODE_CONTEXT));
- RiscVSetScratch (MachineModeContext);
- DEBUG ((DEBUG_INFO, "New RISCV_MACHINE_MODE_CONTEXT at %x.\n", RiscVGetScratch ()));
-
- //
- // Platform temporary memory done.
- //
- //RiscVPlatformTemporaryRamDone ();
- return EFI_SUCCESS;
-}
diff --git a/RiscVPkg/Universal/Sec/SecMain.h b/RiscVPkg/Universal/Sec/SecMain.h
deleted file mode 100644
index 5863351..0000000
--- a/RiscVPkg/Universal/Sec/SecMain.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @file
- RISC-V SEC phase module definitions..
-
- Copyright (c) 2016, 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
- 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.
-**/
-#include <PiPei.h>
-#include <Library/PeimEntryPoint.h>
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/PeiServicesLib.h>
-#include <Library/PcdLib.h>
-#include <Library/DebugAgentLib.h>
-#include <Library/IoLib.h>
-#include <Library/PeCoffLib.h>
-#include <Library/PeCoffGetEntryPointLib.h>
-#include <Library/PeCoffExtraActionLib.h>
-#include <Library/ExtractGuidedSectionLib.h>
-#include <Library/HobLib.h>
-#include <Ppi/TemporaryRamSupport.h>
-#include <Ppi/TemporaryRamDone.h>
-#include <Library/RiscVCpuLib.h>
-
-VOID
-SecMachineModeTrapHandler (
- IN VOID
- );
-
-VOID
-EFIAPI
-SecStartupPhase2 (
- IN VOID *Context
- );
-
-EFI_STATUS
-EFIAPI
-TemporaryRamMigration (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS TemporaryMemoryBase,
- IN EFI_PHYSICAL_ADDRESS PermanentMemoryBase,
- IN UINTN CopySize
- );
-
-EFI_STATUS
-EFIAPI
-TemporaryRamDone (
- VOID
- );
diff --git a/RiscVPkg/Universal/Sec/SecMain.inf b/RiscVPkg/Universal/Sec/SecMain.inf
deleted file mode 100644
index cb678a5..0000000
--- a/RiscVPkg/Universal/Sec/SecMain.inf
+++ /dev/null
@@ -1,72 +0,0 @@
-## @file
-# RISC-V SEC module.
-#
-# Copyright (c) 2016, 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
-# 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.
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = SecMain
- FILE_GUID = df1ccef6-f301-4a63-9661-fc6030dcc880
- MODULE_TYPE = SEC
- VERSION_STRING = 1.0
- ENTRY_POINT = SecMain
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = RISCV64 RISCV32 EBC
-#
-
-[Sources]
- SecMain.c
- TrapHandler.c
-
-[Sources.RISCV32]
-
-[Sources.RISCV64]
- Riscv64/SecEntry.s
-
-[Packages]
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- OvmfPkg/OvmfPkg.dec
- RiscVPkg/RiscVPkg.dec
- RiscVVirtPkg/RiscVVirtPkg.dec
-
-[LibraryClasses]
- BaseLib
- DebugLib
- BaseMemoryLib
- PcdLib
- DebugAgentLib
- IoLib
- PeCoffLib
- PeCoffGetEntryPointLib
- PeCoffExtraActionLib
- ExtractGuidedSectionLib
- RiscVPlatformTempMemoryInitLib
- RiscVCpuLib
-
-[Ppis]
- gEfiTemporaryRamSupportPpiGuid # PPI ALWAYS_PRODUCED
- gEfiTemporaryRamDonePpiGuid # PPI ALWAYS_PRODUCED
-
-[Guids]
- gUefiRiscVMachineContextGuid
-
-[Pcd]
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVPeiFvBase
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVPeiFvSize
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVSecPeiTempRamSize
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVSecPeiTempRamBase
-
diff --git a/RiscVPkg/Universal/Sec/TrapHandler.c b/RiscVPkg/Universal/Sec/TrapHandler.c
deleted file mode 100644
index 6783501..0000000
--- a/RiscVPkg/Universal/Sec/TrapHandler.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/** @file
- RISC-V trap handler.
-
- Copyright (c) 2016, 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
- 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.
-
-**/
-
-#include "SecMain.h"
-
-/**
- RISC-V User mode trap handler.
-
-**/
-VOID
-RiscVUserModeTrapHandler (
- VOID
- )
-{
- DEBUG ((EFI_D_INFO, "Enter RISC-V User Mode Trap Handler.\n"));
- //while (TRUE);
-}
-
-/**
- RISC-V Supervisor mode trap handler.
-
-**/
-VOID
-RiscVSupervisorModeTrapHandler (
- VOID
- )
-{
- DEBUG ((EFI_D_INFO, "Enter RISC-V Supervisor Mode Trap Handler.\n"));
- //while (TRUE);
-}
-
-/**
- RISC-V Hypervisor mode trap handler.
-
-**/
-VOID
-RiscVHypervisorModeTrapHandler (
- VOID
- )
-{
- DEBUG ((EFI_D_INFO, "Enter RISC-V Hypervisor Mode Trap Handler.\n"));
- //while (TRUE);
-}
-
-/**
- RISC-V Machine mode trap handler.
-
-**/
-VOID
-RiscVMachineModeTrapHandler (
- VOID
- )
-{
- RISCV_TRAP_HANDLER TrapHandle;
- RISCV_MACHINE_MODE_CONTEXT *Context;
-
- //DEBUG ((EFI_D_INFO, "Enter RISC-V Machine Mode Trap Handler.\n"));
- Context = (RISCV_MACHINE_MODE_CONTEXT *)(UINTN)RiscVGetScratch ();
- TrapHandle = (RISCV_TRAP_HANDLER)(UINTN)Context->MachineModeTrapHandler;
- TrapHandle ();
-}
-
-/**
- RISC-V NMI trap handler.
-
-**/
-VOID
-RiscVNmiHandler (
- VOID
- )
-{
- DEBUG ((EFI_D_INFO, "Enter RISC-V NMI Trap Handler.\n"));
- //while (TRUE);
-}
-
-/**
- SEC RISC-V Machine mode trap handler.
-
-**/
-VOID
-SecMachineModeTrapHandler (
- IN VOID
- )
-{
- //DEBUG ((EFI_D_INFO, "SEC RISC-V Machine Mode Trap Handler.\n"));
- //while (TRUE);
-}
diff --git a/RiscVPkg/Universal/TimerDxe/Timer.c b/RiscVPkg/Universal/TimerDxe/Timer.c
deleted file mode 100644
index 1a454c2..0000000
--- a/RiscVPkg/Universal/TimerDxe/Timer.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/** @file
- RISC-V Timer Architectural Protocol as defined in the DXE CIS
-
- Copyright (c) 2016, 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
- 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.
-**/
-
-#include "Timer.h"
-
-//
-// The handle onto which the Timer Architectural Protocol will be installed
-//
-EFI_HANDLE mTimerHandle = NULL;
-
-//
-// The Timer Architectural Protocol that this driver produces
-//
-EFI_TIMER_ARCH_PROTOCOL mTimer = {
- TimerDriverRegisterHandler,
- TimerDriverSetTimerPeriod,
- TimerDriverGetTimerPeriod,
- TimerDriverGenerateSoftInterrupt
-};
-
-//
-// Pointer to the CPU Architectural Protocol instance
-//
-EFI_CPU_ARCH_PROTOCOL *mCpu;
-
-//
-// The notification function to call on every timer interrupt.
-// A bug in the compiler prevents us from initializing this here.
-//
-EFI_TIMER_NOTIFY mTimerNotifyFunction;
-
-//
-// The current period of the timer interrupt
-//
-volatile UINT64 mTimerPeriod = 0;
-
-/**
- 8254 Timer #0 Interrupt Handler.
-
- @param InterruptType The type of interrupt that occured
- @param SystemContext A pointer to the system context when the interrupt occured
-**/
-VOID
-EFIAPI
-TimerInterruptHandler (
- IN EFI_EXCEPTION_TYPE InterruptType,
- IN EFI_SYSTEM_CONTEXT SystemContext
- )
-{
- EFI_TPL OriginalTPL;
- UINT32 RiscvTimer;
-
- OriginalTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL);
- if (mTimerPeriod == 0) {
- gBS->RestoreTPL (OriginalTPL);
- return;
- }
- if (mTimerNotifyFunction != NULL) {
- mTimerNotifyFunction (mTimerPeriod);
- }
- RiscvTimer = RiscVReadMachineTimer();
- RiscvTimer += ((mTimerPeriod * 100) / PcdGet64 (PcdRiscVMachineTimerTickInNanoSecond));
- RiscVSetMachineTimerCmp (RiscvTimer); // Clear previous interrupt status and also set another timer.
- gBS->RestoreTPL (OriginalTPL);
-}
-
-/**
-
- This function registers the handler NotifyFunction so it is called every time
- the timer interrupt fires. It also passes the amount of time since the last
- handler call to the NotifyFunction. If NotifyFunction is NULL, then the
- handler is unregistered. If the handler is registered, then EFI_SUCCESS is
- returned. If the CPU does not support registering a timer interrupt handler,
- then EFI_UNSUPPORTED is returned. If an attempt is made to register a handler
- when a handler is already registered, then EFI_ALREADY_STARTED is returned.
- If an attempt is made to unregister a handler when a handler is not registered,
- then EFI_INVALID_PARAMETER is returned. If an error occurs attempting to
- register the NotifyFunction with the timer interrupt, then EFI_DEVICE_ERROR
- is returned.
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param NotifyFunction The function to call when a timer interrupt fires. This
- function executes at TPL_HIGH_LEVEL. The DXE Core will
- register a handler for the timer interrupt, so it can know
- how much time has passed. This information is used to
- signal timer based events. NULL will unregister the handler.
-
- @retval EFI_SUCCESS The timer handler was registered.
- @retval EFI_UNSUPPORTED The platform does not support timer interrupts.
- @retval EFI_ALREADY_STARTED NotifyFunction is not NULL, and a handler is already
- registered.
- @retval EFI_INVALID_PARAMETER NotifyFunction is NULL, and a handler was not
- previously registered.
- @retval EFI_DEVICE_ERROR The timer handler could not be registered.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverRegisterHandler (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- IN EFI_TIMER_NOTIFY NotifyFunction
- )
-{
- DEBUG ((DEBUG_INFO, "TimerDriverRegisterHandler\n"));
- mTimerNotifyFunction = NotifyFunction;
- return EFI_SUCCESS;
-}
-
-/**
-
- This function adjusts the period of timer interrupts to the value specified
- by TimerPeriod. If the timer period is updated, then the selected timer
- period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
- If an error occurs while attempting to update the timer period, then the
- timer hardware will be put back in its state prior to this call, and
- EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
- is disabled. This is not the same as disabling the CPU's interrupts.
- Instead, it must either turn off the timer hardware, or it must adjust the
- interrupt controller so that a CPU interrupt is not generated when the timer
- interrupt fires.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param TimerPeriod The rate to program the timer interrupt in 100 nS units. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is
- returned. If the timer is programmable, then the timer period
- will be rounded up to the nearest timer period that is supported
- by the timer hardware. If TimerPeriod is set to 0, then the
- timer interrupts will be disabled.
-
- @retval EFI_SUCCESS The timer period was changed.
- @retval EFI_UNSUPPORTED The platform cannot change the period of the timer interrupt.
- @retval EFI_DEVICE_ERROR The timer period could not be changed due to a device error.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverSetTimerPeriod (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- IN UINT64 TimerPeriod
- )
-{
- UINT32 RiscvTimer;
-
- TimerPeriod = 10 *1000 * 50;
- mTimerPeriod = TimerPeriod;
- if (TimerPeriod == 0) {
- return EFI_SUCCESS;
- }
- RiscvTimer = RiscVReadMachineTimer();
- RiscvTimer += ((TimerPeriod * 100) / PcdGet64 (PcdRiscVMachineTimerTickInNanoSecond));
- RiscVSetMachineTimerCmp (RiscvTimer);
- return EFI_SUCCESS;
-}
-
-/**
-
- This function retrieves the period of timer interrupts in 100 ns units,
- returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
- is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
- returned, then the timer is currently disabled.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param TimerPeriod A pointer to the timer period to retrieve in 100 ns units. If
- 0 is returned, then the timer is currently disabled.
-
- @retval EFI_SUCCESS The timer period was returned in TimerPeriod.
- @retval EFI_INVALID_PARAMETER TimerPeriod is NULL.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverGetTimerPeriod (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- OUT UINT64 *TimerPeriod
- )
-{
- DEBUG ((DEBUG_INFO, "TimerDriverGetTimerPeriod\n"));
- *TimerPeriod = mTimerPeriod;
- return EFI_SUCCESS;
-}
-
-/**
-
- This function generates a soft timer interrupt. If the platform does not support soft
- timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
- If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
- service, then a soft timer interrupt will be generated. If the timer interrupt is
- enabled when this service is called, then the registered handler will be invoked. The
- registered handler should not be able to distinguish a hardware-generated timer
- interrupt from a software-generated timer interrupt.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
-
- @retval EFI_SUCCESS The soft timer interrupt was generated.
- @retval EFI_UNSUPPORTEDT The platform does not support the generation of soft timer interrupts.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverGenerateSoftInterrupt (
- IN EFI_TIMER_ARCH_PROTOCOL *This
- )
-{
- return EFI_SUCCESS;
-}
-
-/**
- Initialize the Timer Architectural Protocol driver
-
- @param ImageHandle ImageHandle of the loaded driver
- @param SystemTable Pointer to the System Table
-
- @retval EFI_SUCCESS Timer Architectural Protocol created
- @retval EFI_OUT_OF_RESOURCES Not enough resources available to initialize driver.
- @retval EFI_DEVICE_ERROR A device error occured attempting to initialize the driver.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
-
- //
- // Initialize the pointer to our notify function.
- //
- mTimerNotifyFunction = NULL;
-
- //
- // Make sure the Timer Architectural Protocol is not already installed in the system
- //
- ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiTimerArchProtocolGuid);
-
- //
- // Find the CPU architectural protocol.
- //
- Status = gBS->LocateProtocol (&gEfiCpuArchProtocolGuid, NULL, (VOID **) &mCpu);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Force the timer to be disabled
- //
- Status = TimerDriverSetTimerPeriod (&mTimer, 0);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Install interrupt handler for RISC-V Timer.
- //
- Status = mCpu->RegisterInterruptHandler (mCpu, EXCEPT_RISCV_TIMER_INT, TimerInterruptHandler);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Force the timer to be enabled at its default period
- //
- Status = TimerDriverSetTimerPeriod (&mTimer, DEFAULT_TIMER_TICK_DURATION);
- ASSERT_EFI_ERROR (Status);
-
- //
- // Install the Timer Architectural Protocol onto a new handle
- //
- Status = gBS->InstallMultipleProtocolInterfaces (
- &mTimerHandle,
- &gEfiTimerArchProtocolGuid, &mTimer,
- NULL
- );
- ASSERT_EFI_ERROR (Status);
-
- return Status;
-}
-
diff --git a/RiscVPkg/Universal/TimerDxe/Timer.h b/RiscVPkg/Universal/TimerDxe/Timer.h
deleted file mode 100644
index cae30b6..0000000
--- a/RiscVPkg/Universal/TimerDxe/Timer.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/** @file
- RISC-V Timer Architectural Protocol definitions.
-
- Copyright (c) 2016, 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
- 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.
-**/
-
-#ifndef _TIMER_H_
-#define _TIMER_H_
-
-#include <PiDxe.h>
-
-#include <Protocol/Cpu.h>
-#include <Protocol/Timer.h>
-
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/BaseLib.h>
-#include <Library/DebugLib.h>
-#include <Library/IoLib.h>
-#include <Library/RiscVCpuLib.h>
-
-//
-// RISC-V use 100us timer.
-// The default timer tick duration is set to 10 ms = 10 * 1000 * 10 100 ns units
-//
-#define DEFAULT_TIMER_TICK_DURATION 100000
-
-extern VOID RiscvSetTimerPeriod (UINT32 TimerPeriod);
-
-//
-// Function Prototypes
-//
-/**
- Initialize the Timer Architectural Protocol driver
-
- @param ImageHandle ImageHandle of the loaded driver
- @param SystemTable Pointer to the System Table
-
- @retval EFI_SUCCESS Timer Architectural Protocol created
- @retval EFI_OUT_OF_RESOURCES Not enough resources available to initialize driver.
- @retval EFI_DEVICE_ERROR A device error occured attempting to initialize the driver.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-;
-
-/**
-
- This function adjusts the period of timer interrupts to the value specified
- by TimerPeriod. If the timer period is updated, then the selected timer
- period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
- If an error occurs while attempting to update the timer period, then the
- timer hardware will be put back in its state prior to this call, and
- EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
- is disabled. This is not the same as disabling the CPU's interrupts.
- Instead, it must either turn off the timer hardware, or it must adjust the
- interrupt controller so that a CPU interrupt is not generated when the timer
- interrupt fires.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param NotifyFunction The rate to program the timer interrupt in 100 nS units. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is
- returned. If the timer is programmable, then the timer period
- will be rounded up to the nearest timer period that is supported
- by the timer hardware. If TimerPeriod is set to 0, then the
- timer interrupts will be disabled.
-
- @retval EFI_SUCCESS The timer period was changed.
- @retval EFI_UNSUPPORTED The platform cannot change the period of the timer interrupt.
- @retval EFI_DEVICE_ERROR The timer period could not be changed due to a device error.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverRegisterHandler (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- IN EFI_TIMER_NOTIFY NotifyFunction
- )
-;
-
-/**
-
- This function adjusts the period of timer interrupts to the value specified
- by TimerPeriod. If the timer period is updated, then the selected timer
- period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
- If an error occurs while attempting to update the timer period, then the
- timer hardware will be put back in its state prior to this call, and
- EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
- is disabled. This is not the same as disabling the CPU's interrupts.
- Instead, it must either turn off the timer hardware, or it must adjust the
- interrupt controller so that a CPU interrupt is not generated when the timer
- interrupt fires.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param TimerPeriod The rate to program the timer interrupt in 100 nS units. If
- the timer hardware is not programmable, then EFI_UNSUPPORTED is
- returned. If the timer is programmable, then the timer period
- will be rounded up to the nearest timer period that is supported
- by the timer hardware. If TimerPeriod is set to 0, then the
- timer interrupts will be disabled.
-
- @retval EFI_SUCCESS The timer period was changed.
- @retval EFI_UNSUPPORTED The platform cannot change the period of the timer interrupt.
- @retval EFI_DEVICE_ERROR The timer period could not be changed due to a device error.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverSetTimerPeriod (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- IN UINT64 TimerPeriod
- )
-;
-
-/**
-
- This function retrieves the period of timer interrupts in 100 ns units,
- returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
- is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
- returned, then the timer is currently disabled.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
- @param TimerPeriod A pointer to the timer period to retrieve in 100 ns units. If
- 0 is returned, then the timer is currently disabled.
-
- @retval EFI_SUCCESS The timer period was returned in TimerPeriod.
- @retval EFI_INVALID_PARAMETER TimerPeriod is NULL.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverGetTimerPeriod (
- IN EFI_TIMER_ARCH_PROTOCOL *This,
- OUT UINT64 *TimerPeriod
- )
-;
-
-/**
-
- This function generates a soft timer interrupt. If the platform does not support soft
- timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
- If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
- service, then a soft timer interrupt will be generated. If the timer interrupt is
- enabled when this service is called, then the registered handler will be invoked. The
- registered handler should not be able to distinguish a hardware-generated timer
- interrupt from a software-generated timer interrupt.
-
-
- @param This The EFI_TIMER_ARCH_PROTOCOL instance.
-
- @retval EFI_SUCCESS The soft timer interrupt was generated.
- @retval EFI_UNSUPPORTEDT The platform does not support the generation of soft timer interrupts.
-
-**/
-EFI_STATUS
-EFIAPI
-TimerDriverGenerateSoftInterrupt (
- IN EFI_TIMER_ARCH_PROTOCOL *This
- )
-;
-
-#endif
diff --git a/RiscVPkg/Universal/TimerDxe/Timer.uni b/RiscVPkg/Universal/TimerDxe/Timer.uni
deleted file mode 100644
index 173c8f47c316cbff43773e0f44d7c373f0bca3bb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1678
zcmd6nPjAye5XI+=#CNdL3!pXu4jd3dB*Z{OsiV}Pa6<WC3nxK|Ny(Q7es4C8n<_{>
zBFnq8yR&cJyq(=YzZ=%Di2n&+WN&P0ndLUIhxUNk#=eiNXC1q=w{~Wq at l5fX<F~?Y
z(vIvJ>j&1-3jPs)&di$83g3mzu<Lug5<dcQ$-b?7%|I#G^@#nC>7UzEduA`}6#E0w
zZk$`;K3yB&^__NQW7cD06wXL2GNMhGZPRY}bB`j%@`~)-y08)V+<9t8h`wfag`f7X
zeD4^~SJpy-*GKrLa8|T3`x(0iXcN&coLPZ~xQMTGnUk;9wmV%SW(GU%8CDKjrH}H{
z?i}wC*20-7;}T!H$GZp{Y at Oi1hP2xE(^-U*DwzbG=FYlA5i{}4V3N75oR(BX#7xMb
zMFq4OpC53kxZb!Hp%(6Do54ni!U}pRR#_iIc$RT>E~>B)bIM9MBeDL4*IibJ$^<pH
zcnv-ODLDiUq*!rFS=Cy>S-kX0R}}_z<*$mKaPCX28S95J*31myKIS$YuGB%f=C3rV
ztdts#;nk&*5_?bEv`>t6uT-h(Q@>{|>tn^Pb>A-NW9FqvK&Z~4!~KczxOC(MOEs;w
zMlW2U*63S4*68#WyDQd(ns~&>uJGzPvkT at spb8`L=siZ_t~td_ at s*FF2CsMcD*9LY
zkF1Ef?ryw`60(Tx%O0mf at 1RAO%2Les(U(GRRCtl3ss59F{pfv(U?Kg!fs}yJ2Q6mQ
zB=@k=M6DFRe|;yMrtZUx3K-Dp{-`F-z!K9M=u)tJ1y!--D>$Z7GJh}hCaTI+ZRM-5
lVNG{*&CLDY&YEX<|14D_VkU;&{ka^=^nc2-j;7^l{srBn12O;r
diff --git a/RiscVPkg/Universal/TimerDxe/TimerDxe.inf b/RiscVPkg/Universal/TimerDxe/TimerDxe.inf
deleted file mode 100644
index 406994b..0000000
--- a/RiscVPkg/Universal/TimerDxe/TimerDxe.inf
+++ /dev/null
@@ -1,54 +0,0 @@
-## @file
-# RISC-V Timer Arch protocol module.
-#
-# Copyright (c) 2016, 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
-# 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.
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = Timer
- MODULE_UNI_FILE = Timer.uni
- FILE_GUID = f2765dec-6b41-11d5-8e71-00902707b35e
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
-
- ENTRY_POINT = TimerDriverInitialize
-
-[Packages]
- MdePkg/MdePkg.dec
- RiscVPkg/RiscVPkg.dec
-
-[LibraryClasses]
- UefiBootServicesTableLib
- BaseLib
- DebugLib
- UefiDriverEntryPoint
- IoLib
- RiscVCpuLib
-
-[Sources]
- Timer.h
- Timer.c
-
-[Protocols]
- gEfiCpuArchProtocolGuid ## CONSUMES
- gEfiTimerArchProtocolGuid ## PRODUCES
-
-[Pcd]
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVMachineTimerTickInNanoSecond
- gUefiRiscVPkgTokenSpaceGuid.PcdRiscVMachineTimerFrequencyInHerz
-
-[Depex]
- gEfiCpuArchProtocolGuid
-
-[UserExtensions.TianoCore."ExtraFiles"]
- TimerExtra.uni
diff --git a/RiscVPkg/Universal/TimerDxe/TimerExtra.uni b/RiscVPkg/Universal/TimerDxe/TimerExtra.uni
deleted file mode 100644
index 0db560f27965e588e37f60f42ff6a9910786c80a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1374
zcmZXUTW=Ck6ovP*iT`0jU(~dqKKNja5z1(ZElenQd1?k|=|m`Gz*hY6>bLgHnW31;
zoXftfz0Nv&=I@`DwJhR&!4ugByRpm`c5P4X30C<=Se96F*5|gesij0 at _8Z#_+of&s
zWp-zC+pter$$m=g9lmQH174U5|Jrt*JGWaRBYOt=bLQ9f(q7pcJ7#?b!h>_#dQ3uv
zsr_Kgy-r+K$!+ae8{#ADGT!qpV6k at o;-V8I)?{wuSul%vQC-|~GL)Zt?u^KH*0G_z
zuk@(-kKmm7iB)$6N)D$bC_#ZO5#l1gQzDiyk#AS36=6wTA+eCEo2rho#3sU;ku4R)
zOv(m)WzWhA_pEhusZAJ__md2Hb#H-*ZX>7a{ymAAA~T{gU(36q6Y9JUx7=la{)kJh
z#e-`xW&HoN88w9{4uxK-wPCMQPv9Bq>R!}ug=#l=iaQePUql_UdaO*L=8mWd at e%x2
zr3T`(-BVV*w&gC~dWWk&3Uw8qyVgx|b8fVCp#BES1nx6CIq)<=x#bO-gjwe~vlu=J
zeKfF7jBUGM-$PUNspb*Z9-TI36}!@7>odpLYlQk1dVF0m5toiUV5N at M*kBf}P#er0
z-)nbVaf|FLe(@T3MeW;E60<(`9;m_?c=aJWahFXsM?@(`Rg0*P#47VU^JhF_t}iz(
zs}!e*?OTOYqxaAvp|4c4%l8&^3v=Xurk2}fJE}TI{~P^%q}^4iZUV}%I>8m#15n4{
z$HequdBG}jv?Fd%U(%dgPZ`xS>Vp&F#ZT25ph>$^tY5J0{|mdEM_66&WBqG#;*}NN
EfA`naA^-pY
--
2.7.4
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#46422): https://edk2.groups.io/g/devel/message/46422
Mute This Topic: https://groups.io/mt/33043366/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list