1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Miscellaneous ARCS PROM routines. 7 * 8 * Copyright (C) 1996 David S. Miller (davem@davemloft.net) 9 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) 10 * Copyright (C) 1999 Silicon Graphics, Inc. 11 */ 12 #include <linux/compiler.h> 13 #include <linux/init.h> 14 #include <linux/kernel.h> 15 #include <linux/irqflags.h> 16 17 #include <asm/bcache.h> 18 19 #include <asm/fw/arc/types.h> 20 #include <asm/sgialib.h> 21 #include <asm/bootinfo.h> 22 23 VOID __noreturn 24 ArcHalt(VOID) 25 { 26 bc_disable(); 27 local_irq_disable(); 28 ARC_CALL0(halt); 29 30 unreachable(); 31 } 32 33 VOID __noreturn 34 ArcPowerDown(VOID) 35 { 36 bc_disable(); 37 local_irq_disable(); 38 ARC_CALL0(pdown); 39 40 unreachable(); 41 } 42 43 /* XXX is this a soft reset basically? XXX */ 44 VOID __noreturn 45 ArcRestart(VOID) 46 { 47 bc_disable(); 48 local_irq_disable(); 49 ARC_CALL0(restart); 50 51 unreachable(); 52 } 53 54 VOID __noreturn 55 ArcReboot(VOID) 56 { 57 bc_disable(); 58 local_irq_disable(); 59 ARC_CALL0(reboot); 60 61 unreachable(); 62 } 63 64 VOID __noreturn 65 ArcEnterInteractiveMode(VOID) 66 { 67 bc_disable(); 68 local_irq_disable(); 69 ARC_CALL0(imode); 70 71 unreachable(); 72 } 73 74 LONG 75 ArcSaveConfiguration(VOID) 76 { 77 return ARC_CALL0(cfg_save); 78 } 79 80 struct linux_sysid * 81 ArcGetSystemId(VOID) 82 { 83 return (struct linux_sysid *) ARC_CALL0(get_sysid); 84 } 85 86 VOID __init 87 ArcFlushAllCaches(VOID) 88 { 89 ARC_CALL0(cache_flush); 90 } 91 92 DISPLAY_STATUS * __init ArcGetDisplayStatus(ULONG FileID) 93 { 94 return (DISPLAY_STATUS *) ARC_CALL1(GetDisplayStatus, FileID); 95 } 96