| /* | |
| * This file is subject to the terms and conditions of the GNU General Public | |
| * License. See the file "COPYING" in the main directory of this archive | |
| * for more details. | |
| * | |
| * Miscellaneous ARCS PROM routines. | |
| * | |
| * Copyright (C) 1996 David S. Miller (davem@davemloft.net) | |
| * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) | |
| * Copyright (C) 1999 Silicon Graphics, Inc. | |
| */ | |
| #include <linux/compiler.h> | |
| #include <linux/init.h> | |
| #include <linux/kernel.h> | |
| #include <linux/irqflags.h> | |
| #include <asm/bcache.h> | |
| #include <asm/fw/arc/types.h> | |
| #include <asm/sgialib.h> | |
| #include <asm/bootinfo.h> | |
| VOID __noreturn | |
| ArcHalt(VOID) | |
| { | |
| bc_disable(); | |
| local_irq_disable(); | |
| ARC_CALL0(halt); | |
| unreachable(); | |
| } | |
| VOID __noreturn | |
| ArcPowerDown(VOID) | |
| { | |
| bc_disable(); | |
| local_irq_disable(); | |
| ARC_CALL0(pdown); | |
| unreachable(); | |
| } | |
| /* XXX is this a soft reset basically? XXX */ | |
| VOID __noreturn | |
| ArcRestart(VOID) | |
| { | |
| bc_disable(); | |
| local_irq_disable(); | |
| ARC_CALL0(restart); | |
| unreachable(); | |
| } | |
| VOID __noreturn | |
| ArcReboot(VOID) | |
| { | |
| bc_disable(); | |
| local_irq_disable(); | |
| ARC_CALL0(reboot); | |
| unreachable(); | |
| } | |
| VOID __noreturn | |
| ArcEnterInteractiveMode(VOID) | |
| { | |
| bc_disable(); | |
| local_irq_disable(); | |
| ARC_CALL0(imode); | |
| unreachable(); | |
| } | |
| LONG | |
| ArcSaveConfiguration(VOID) | |
| { | |
| return ARC_CALL0(cfg_save); | |
| } | |
| struct linux_sysid * | |
| ArcGetSystemId(VOID) | |
| { | |
| return (struct linux_sysid *) ARC_CALL0(get_sysid); | |
| } | |
| VOID __init | |
| ArcFlushAllCaches(VOID) | |
| { | |
| ARC_CALL0(cache_flush); | |
| } | |
| DISPLAY_STATUS * __init ArcGetDisplayStatus(ULONG FileID) | |
| { | |
| return (DISPLAY_STATUS *) ARC_CALL1(GetDisplayStatus, FileID); | |
| } |