/* * 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); }