158 lines
2.3 KiB
C
158 lines
2.3 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1991 Microsoft Corporation
|
|||
|
Copyright (c) 1993 Digital Equipment Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
jxreboot.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module contains the Firmware Termination Functions.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Lluis Abello (lluis) 4-Sep-1991
|
|||
|
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
11-June-1992 John DeRosa [DEC]
|
|||
|
|
|||
|
Added Alpha/Jensen modifications.
|
|||
|
|
|||
|
--*/
|
|||
|
#include "fwp.h"
|
|||
|
#include "fwstring.h"
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
ResetSystem (
|
|||
|
IN VOID
|
|||
|
)
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This effectively resets the system by restarting the firmware
|
|||
|
at the beginning of the firmware PALcode.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
AlphaInstHalt();
|
|||
|
}
|
|||
|
|
|||
|
VOID
|
|||
|
FwRestart(
|
|||
|
IN VOID
|
|||
|
)
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine implements the Firmware Restart termination function.
|
|||
|
It generates a soft reset to the system.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
Does not return to the caller.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
ResetSystem();
|
|||
|
}
|
|||
|
|
|||
|
VOID
|
|||
|
FwReboot(
|
|||
|
IN VOID
|
|||
|
)
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine implements the Firmware Reboot termination function.
|
|||
|
It generates a soft reset to the system.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
Does not return to the caller.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
ResetSystem();
|
|||
|
}
|
|||
|
|
|||
|
VOID
|
|||
|
FwEnterInteractiveMode(
|
|||
|
IN VOID
|
|||
|
)
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
This routine implements the Firmware EnterInteractiveMode function.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
FwMonitor(3);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
VOID
|
|||
|
FwTerminationInitialize(
|
|||
|
IN VOID
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
//
|
|||
|
// Initialize the termination function entry points in the transfer vector
|
|||
|
//
|
|||
|
This routine initializes the termination function entry points
|
|||
|
in the transfer vector.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
(PARC_HALT_ROUTINE)SYSTEM_BLOCK->FirmwareVector[HaltRoutine] = FwHalt;
|
|||
|
(PARC_POWERDOWN_ROUTINE)SYSTEM_BLOCK->FirmwareVector[PowerDownRoutine] = FwHalt;
|
|||
|
(PARC_RESTART_ROUTINE)SYSTEM_BLOCK->FirmwareVector[RestartRoutine] = FwRestart;
|
|||
|
(PARC_REBOOT_ROUTINE)SYSTEM_BLOCK->FirmwareVector[RebootRoutine] = FwReboot;
|
|||
|
(PARC_INTERACTIVE_MODE_ROUTINE)SYSTEM_BLOCK->FirmwareVector[InteractiveModeRoutine] = FwEnterInteractiveMode;
|
|||
|
// (PARC_RETURN_FROM_MAIN_ROUTINE)SYSTEM_BLOCK->FirmwareVector[ReturnFromMainRoutine] = FwReturnFromMain;
|
|||
|
}
|